18/2/2009
1
Modelagem de
Dados
Relacionamentos
Aula
04
1
Relacionamentos
• As entidades não são isoladas; elas estão relacionadas
com outras entidades.
• Quando passamos a trabalhar com mais de uma
entidade precisamos identificar os relacionamentos
entidade, precisamos identificar os relacionamentos
entre elas a fim de representar de maneira correta o
mundo real.
2
Relacionamento 1:m
• Um relacionamento um para muitos (1:m) ocorre
com freqüência em situações de negócio. No exem‐
plo anterior, temos um curso com um ou mais
alunos.
• A representação ficaria assim:
3
Relacionamento 1:m
OBS: A representação acima foi feita no Toad Data Modeler, uma ferramenta de modelagem de dados
freeware.
• A representação da chave primária que manualmenteA representação da chave primária que manualmente
é uma tralha (#), na ferramenta é usado a sigla PK
(primary key).
4
Relacionamento 1:m
• O nosso diagrama pode aumentar mais um pouco.
• Digamos que além do curso, o aluno tenha relaciona‐
mento com outras tabelas.
–Uma tabela turno,, p para identificar o turno queq o aluno está
estudando
–As tabelas disciplinas para armazenar todas as disciplinas
da escola e a tabela notas que irá armazenar todas as notas
do aluno em cada disciplina.
• O diagrama poderá ficar assim:
18/2/2009
2
Relacionamento 1:m
• Na tabela notas aconteceu algo inusitado: o campo
matricula que é chave primária na tabela ALUNO será
chave estrangeira na tabela NOTAS.
• Igualmente, o código da disciplina também é uma
chave primária na tabela DISCIPLINAS, mas na tabela
NOTAS é uma chave estrangeira. E ao mesmo tempo,
teremos uma chave primária composta entre a
matricula do aluno, ano e código da disciplina.
• Na representação acima vemos identificados as chaves
primárias com o símbolo PK e as secundárias com o
símbolo PFK. 7
Anomalias
• Anomalias de Inclusão : Não podemos incluir um
aluno de um determinado curso, antes que este
curso esteja cadastrado anteriormente. Como existe
um relacionamento entre as tabelas, uma depende
da outra da outra.
• A tabela CURSO não depende da tabela ALUNO, ou
seja, qualquer curso poderá ser cadastrado, haja
alunos ou não. Já a tabela ALUNO depende total‐
mente da tabela CURSO. Um aluno só poderá ser
cadastrado caso o curso que ele vá estudar esteja
previamente cadastrado na tabela CURSO.
8
Anomalias
• Anomalias de Exclusão : Caso tentemos excluir um
curso que tenha vários alunos cadastrados, podemos
perder vários registros destes alunos.
• Isso vai depender de que forma o banco de dados e a
tabela forem criadas fisicamente. Existem casos em
que o registro fica bloqueado para exclusão, caso
tenham dados relacionados.
9
Relacionamento m:m
• Muitos‐para‐muitos: Uma entidade em A está
associada a qualquer número de entidades em B, e
uma entidade em B está associada a qualquer
número de entidades em A.
• Considere o caso em que itens são vendidos.
Podemos identificar imediatamente duas entidades:
VENDA e ITEM.
• Uma venda pode consistir em muitos itens de
mercadorias e um item de mercadoria pode aparecer
em muitas vendas.
10
Relacionamento m:m
• Não estamos dizendo que um mesmo item possa ser
vendido muitas vezes, mas que o tipo específico de
item (por exemplo, uma bússola) pode ser vendido
muitas vezes; temos, portanto, um relacionamento
de muitos para muitos (m m) entre VENDA e ITEM
de muitos‐para‐muitos (m:m) entre VENDA e ITEM.
• Em um relacionamento m:m, criamos uma terceira
entidade para ligar as entidades por meio de dois
relacionamentos 1:m.
• Nesse exemplo, essa terceira entidade, geralmente
conhecida como entidade associativa, é chamada de
VENDA_MERCADORIA.
11
Relacionamento m:m
18/2/2009
3
Relacionamento m:m
13
Relacionamento m:m
• Cada uma das linhas que aparece no formulário do
pedido de vendas é, em geral, conhecida no varejo
como um item de linha, onde o código da
mercadoria é ligado a uma venda.
• Dizemos muitos para muitos porque há dois relacio‐
namentos: CODIGO DA MERCADORIA está relaciona‐
do com muitas VENDAS e VENDA está relacionada
com muitos CÓDIGOS DE MERCADORIA.
• No caso do nosso exemplo, a entidade associativa é a
VENDA_MERCADORIA.
14
Relacionamento m:m
• Por que criamos uma terceira entidade ?
• Quando temos um relacionamento m:m, criamos
uma entidade associativa para armazenar dados
sobre o relacionamento. Neste caso, armazenamos
d d b d i did
dados sobre as mercadorias vendidas.
• Não podemos armazenar estes dados em VENDAS,
pois uma venda pode ter muitos itens e uma entida‐
de só armazena ocorrências de valores simples. Da
mesma maneira, não podemos armazenar esses
dados em MERCADORIAS, porque um código de
mercadoria pode aparecer em muitas vendas.
15
Relacionamento 1:1
• São relacionamentos em que uma entidade em A
está associada no máximo a uma entidade em B e
uma entidade em B está associada no máximo a uma
entidade em A.
N l i lh l á b l
• Neste relacionamento, escolhemos qual será a tabela
que irá receber a chave estrangeira, e para cada valor
do campo na tabela A, há no máximo um valor na
tabela B.
16
Relacionamento 1:1
• No exemplo abaixo podemos entender melhor este
tipo de relacionamento, onde estaremos definindo
que um Gerente (e somente um) gerencia um (e
somente um) Departamento.
17
Condicionalidade de
Relacionamentos
• Relacionamentos Condicionais : Nem todos os ele‐
mentos da Entidade A estão ligados a entidade B.
• Num cadastro de alunos, cada aluno obrigatoria‐
mente deve possuir um responsável. E cada respon‐
sável deve estar associado obrigatoriamente a um
aluno.
18/2/2009
4
Condicionalidade de
Relacionamentos
• Relacionamentos Incondicionais : Todos os elemen‐
tos de uma entidade estão obrigatoriamente relacio‐
nados com um elemento, no mínimo, da outra
entidade.
• Num cadastro de horário, uma matéria pode estar
associada ou não ao cadastro de horário do aluno.
19
Exercício para ser
entregue em 19/03
• Uma Empresa pode ter várias filiais. Cada Filial de uma
empresa pode ter vários departamentos. Um departa‐
mento de uma filial pode ter vário empregados.
• Entidades:
•Filiais (código da filial, nome da filial)
•Departamento (código do departamento, nome do departamento) •Funcionário (matricula, nome, endereço, telefone, salário base,
código do departamento)
• Faça a demonstração das tabelas e seus relaciona‐
mentos por diagrama ER.
• Faça o dicionário de dados.