Banco de Dados

Propaganda
Banco de Dados
Prof. Cadoná
Prof. Edemar
Modelagem de Dados
• Modelo Conceitual
• Modelo Lógico
• Modelo Físico
Modelo Conceitual
Professor
Emprego
Universidade
Modelo Conceitual
Professor
Universidade
Entidades
Modelo Conceitual
Professor
Emprego
Relacionamento
Universidade
Modelo Conceitual
Professor
Emprega
Emprego
Trabalha
Universidade
Modelo Conceitual
Professor
Emprega
(0,N)
Emprego
Cardinalidade:
• Mínima
• Máxima
Trabalha
(1,1)
Universidade
Modelo Conceitual
Professor
Emprega
(0,N)
Código
Nome
Emprego
Trabalha
(1,1)
Universidade
Código
Nome
Atributos de uma entidade
Modelo Conceitual
Leitura da relação existente entre as entidades
Professor
Emprega
(0,N)
Código
Nome
Emprego
Trabalha
(1,1)
Universidade
Código
Nome
Modelo Conceitual
Leitura da relação existente entre as entidades
Professor
Emprega
(0,N)
Código
Nome
Emprego
Trabalha
(1,1)
Universidade
O professor trabalha
em no mínimo uma e
no máximo uma
Universidade
Código
Nome
Modelo Conceitual
Leitura da relação existente entre as entidades
Professor
Emprega
(0,N)
Código
Nome
Emprego
Trabalha
(1,1)
Universidade
Uma Universidade
emprega nenhum ou
vários professores
Código
Nome
Modelo Lógico
Criação de Chaves:
• Primárias
• Estrangeiras
Mapeamento ER - Relacional
} 
Implementação de relacionamentos 1:1 Entidades obrigatórias no relacionamento
EMPREGADO
código nome
(1,1)
ALOCAÇÃO
data alocação
(1,1)
TERMINAL
número
local
EMP-TERM (CÓDIGO, NOME, DATA, NÚMERO,
- - - - - - - - LOCAL)
Mapeamento ER - Relacional
} 
Implementação de relacionamentos 1:1 - Entidade
opcional no relacionamento
CORRENTISTA (COD-COR, NOME)
CARTÃO (COD_CART, DATA_EXP, COD-COR)
Mapeamento ER - Relacional
} 
Implementação de relacionamentos 1:1 Entidades opcionais no relacionamento
(0,1)
PESSOA
identidade nome
ALOCAÇÃO
data
regime
(0,1)
CARGO
nome
setor
PESSOA (IDENT, NOME)
CARGO (NOME, SETOR)
ALOCAÇÃO (IDENT, NOME, DATA, REGIME)
-----
Mapeamento ER - Relacional
} 
Implementação de relacionamentos 1:N - Entidade
obrigatória no relacionamento
DEP (COD-DEP, NOME)
EMP (COD-EMP, NOME, DATA-LOT, COD-DEP)
Mapeamento ER - Relacional
} 
Implementação de relacionamentos N:N
ENGENHEIRO
código
nome
(0,N)
ATUAÇÃO
função
(0,N)
PROJETO
código
título
Mapeamento ER - Relacional
} 
Implementação de relacionamentos N:N
ENGENHEIRO
código
nome
(0,N)
ATUAÇÃO
função
(0,N)
PROJETO
código
título
ENGENHEIRO (COD-ENG, NOME)
PROJETO (COD-PROJ,TITULO)
ATUAÇÃO (COD-ENG, COD-PROJ, FUNÇÃO)
Modelo Físico
• Modelo definido no
banco de dados
Exemplo de Questão ENADE
Um mercado que comercializa alimentos
hortifrutigranjeiros faz compras diárias de diversas
fazendas e enfrenta prejuízos decorrentes da falta de
controle relacionada ao prazo de validade de seus
produtos. Para resolver esse problema, o proprietário
resolve investir em informatização, que proporcionará o
controle do prazo de validade a partir da data da compra
do produto. A modelagem de dados proposta pelo
profissional contratado apresenta três tabelas, ilustradas
a seguir, sendo que o atributo Código nas tabelas Produto
e Fazenda são unívocos.
Exemplo de Questão ENADE
Exemplo de Questão ENADE
A partir das informações acima, é correto concluir que:
• A) o relacionamento entre as tabelas Produto e Estoque é do tipo
um-para-muitos.
• B) o campo Produto na tabela Estoque não pode fazer parte da
chave nesta tabela e corresponde ao campo Descrição na tabela
Produto.
• C) o campo Fazenda na tabela Estoque deverá ser a chave
primária nesta tabela e corresponde ao campo Código na tabela
Fazenda.
• D) o campo Código é chave primária na tabela Produto e identifica
a fazenda fornecedora do produto.
• E) a tupla {produto, fazenda} deverá ser usada como a chave
primária da tabela Estoque.
Exemplo de Questão ENADE
Considere o seguinte script SQL de
criação de um banco de dados.
SQL
CREATE TABLE PECAS (CODIGO NUMERIC(5) NOT NULL,
DESCRICAO VARCHAR(20) NOT NULL,
ESTOQUE NUMERIC(5) NOT NULL,
PRIMARY KEY(CODIGO));
CREATE TABLE FORNECEDORES
(COD_FORN NUMERIC(3) NOT NULL,
NOME VARCHAR(30) NOT NULL,
PRIMARY KEY(COD_FORN));
CREATE TABLE FORNECIMENTOS
(COD_PECA NUMERIC(5) NOT NULL,
COD_FORN NUMERIC(3) NOT NULL,
QUANTIDADE NUMERIC(4) NOT NULL,
PRIMARY KEY(COD_PECA, COD_FORN),
FOREIGN KEY (COD_PECA) REFERENCES PECAS,
FOREIGN KEY (COD_FORN) REFERENCES
FORNECEDORES);
Exemplo de Questão ENADE
A partir desse script, assinale a opção que
apresenta comando SQL que permite obter
uma lista que contenha o nome de cada
fornecedor que tenha fornecido alguma peça, o
código da peça fornecida, a descrição dessa
peça e a quantidade fornecida da referida
peça
A) SELECT * FROM PECAS, FORNECEDORES,
FORNECIMENTOS;
SQL
Exemplo de Questão ENADE
A partir desse script, assinale a opção que
apresenta comando SQL que permite obter
uma lista que contenha o nome de cada
fornecedor que tenha fornecido alguma peça, o
código da peça fornecida, a descrição dessa
peça e a quantidade fornecida da referida
peça
SQL
B) SELECT * FROM PECAS, FORNECEDORES,
FORNECIMENTOS WHERE
PECAS.CODIGO =FORNECIMENTOS.COD_PECA AND
FORNECEDORES.COD_FORN =FORNECIMENTOS.COD_FORN;
Exemplo de Questão ENADE
A partir desse script, assinale a opção que
apresenta comando SQL que permite obter
uma lista que contenha o nome de cada
fornecedor que tenha fornecido alguma peça, o
código da peça fornecida, a descrição dessa
peça e a quantidade fornecida da referida
peça
SQL
C) SELECT NOME, CODIGO, DESCRICAO, QUANTIDADE
FROM PECAS, FORNECEDORES, FORNECIMENTOS;
Exemplo de Questão ENADE
A partir desse script, assinale a opção que
apresenta comando SQL que permite obter
uma lista que contenha o nome de cada
fornecedor que tenha fornecido alguma peça, o
código da peça fornecida, a descrição dessa
peça e a quantidade fornecida da referida
peça
SQL
D) SELECT NOME, CODIGO, DESCRICAO, QUANTIDADE
FROM PECAS, FORNECEDORES, FORNECIMENTOS
WHERE PECAS.CODIGO = FORNECIMENTOS.COD_PECA
AND FORNECEDORES.COD_FORN =FORNECIMENTOS.COD_FORN;
Exemplo de Questão ENADE
A partir desse script, assinale a opção que
apresenta comando SQL que permite obter
uma lista que contenha o nome de cada
fornecedor que tenha fornecido alguma peça, o
código da peça fornecida, a descrição dessa
peça e a quantidade fornecida da referida
peça
SQL
E) SELECT DISTINCT NOME, CODIGO, DESCRICAO,
QUANTIDADE FROM PECAS, FORNECEDORES,
FORNECIMENTOS WHERE CODIGO = COD_PECA;
Funções -SQL
• max(<atributo>) retorna o maior elemento da coluna especificada
• min(<atributo>) retorna o menor elemento da coluna especificada
• avg(<atributo>) retorna a média dos elemento da coluna especificada
• sum(<atributo>) retorna a soma dos elemento da coluna especificada
• count(<atributo>) retorna a quantidade de elemento existente da
coluna especificada
SELECT - SQL
Select [distinct]<atributos de resposta> from <tabelas>
[inner join <tabela> on <relação>]
[where <condições>]
[having <condição do atributo>]
[group by <atributos>]
[order by <atributos> [desc]] ;
Download