Upload
trandan
View
219
Download
0
Embed Size (px)
Citation preview
Aspectos de projeto de entidade-relacionamento
• As noções de um conjunto de entidades e um conjunto de relacionamento não são precisas, e é possível definir um conjunto de entidades e os relacionamentos entre eles de diversas maneiras
Uso de conjunto de entidadesversus atributos
• Considere o conjunto:– Id_funcionario, nome_funcionario,
numero_telefone• numero_telefone pode ser uma entidade com seus
próprios atributos: numero_telefone e local (escritório, casa, etc...)
• Tratar telefone como entidade modela melhor uma situação em que se pode querer manter informações extras sobre o telefone
– local, tipo, pessoas que o compartilham
Uso de conjunto de entidadesversus atributos
• O que constitui um atributo? • O que constitui um conjunto de entidades?
– Depende!• Qual a estrutura da empresa real?• Qual o significado associado?
Uso de conjunto de entidades versus conjunto de relacionamentos
• Nem sempre é claro se um objeto é mais bem expresso por um conjunto de entidades ou por um conjunto de relacionamento– Em nosso exemplo do banco, o empréstimo poderia
ser uma relação entre cliente e agência• É satisfatório se um cliente puder fazer apenas um
empréstimo por agência e um empréstimo pertencer a apenas um cliente
• Caso contrário, é problemático
Conjunto de relacionamentos binários versus enários
• Alguns relacionamentos ternários são melhor representados por dois relacionamentos binários– Exemplo: relacionamento ternário pais,
relacionando um filho aos seus pais
Convertendo relacionamentos não binários para a forma binária
n Em geral, qualquer relacionamento não binário pode ser representado usando relacionamentos binários criando um conjunto de entidades artificial.l Substitua R entre os conjuntos de entidades A, B e C por um conjunto de
entidades E três conjuntos de relacionamento:1. RA, relacionando E e A2. RB, relacionando E e B3. RC, relacionando E e C
l Crie um atributo identificador especial para El Inclua quaisquer atributos de R em E l Para cada relacionamento (ai , bi , ci) em R,
1. crie uma nova entidade ei no conjunto de entidades E2. inclua (ei , ai ) em RA3. inclua (ei , bi ) em RB4. inclua (ei , ci ) em RC
Cardinalidades de mapeamento afetamo projeto ER
n Podemos tornar a data de acesso um atributo de conta, em vez de um atributo de relacionamento, se cada conta puder ter apenas um cliente l Ou seja, o relacionamento de conta para cliente é muitos-para-um ou,
equivalentemente, cliente para conta é um-para-muitos
Conjunto de Entidades Fracos• É um conjunto de entidades que não tem atributos suficientes para
formar uma chave primária• A existência de um conjunto de entidades fraco depende da
existência de um conjunto de entidades identificador (ou proprietário)– Ele precisa se relacionar com o conjunto de entidades identificador
através de um conjunto de relacionamento um-para-muitos total, do identificador para o conjunto de entidades fraco
– Relacionamento identificador descrito usando um losango duplo• O discriminador (ou chave parcial) de um conjunto de entidades
fraco é o conjunto de atributos que distingue entre todas as entidades de um conjunto de entidades fraco.
• A chave primária de um conjunto de entidades fraco é formada pela chave primária do conjunto de entidades forte em que o conjunto de entidades fraco é dependente de existência, mais o discriminador do conjunto de entidades fraco.
Conjuntos de Entidades Fracosn Representamos um conjunto de entidades fraco por retângulos duplos.n Sublinhamos o discriminador de um conjunto de entidades fraco com
uma linha tracejada.n número_pagamento — discriminador do conjunto de entidades
pagamento. n Chave primária para pagamento — (número_empréstimo,
número_pagamento)
Conjuntos de Entidades Fracosn Nota: A chave primária do conjunto de entidades forte não é
explicitamente armazenada com o conjunto de entidades fraco, jáque ela está implícita no relacionamento identificador.
n Se número_empréstimo fosse explicitamente armazenado, pagamento poderia se tornar uma entidade forte, mas, então, o relacionamento entre pagamento e empréstimo seria duplicado por um relacionamento implícito definido pelo atributo número_empréstimo comum a pagamento e empréstimo.
Especialização• Processo de projeto de cima para baixo: Designamos
subagrupamentos dentro de um conjunto de entidades que são distintivos de outras entidades no conjunto.
• Esses subagrupamentos se tornam conjuntos de entidades de nível inferior que possuem atributos ou participam em relacionamentos que não se aplicam ao conjunto de entidades de nível superior.
• Representada por um componente triângulo rotulado ISA (por exemplo, cliente “é uma” pessoa).
• Herança de atributo — Um conjunto de entidades de nível inferior herda todos os atributos e a participação de relacionamento do conjunto de entidades de nível superior ao qual está vinculado.
Generalização
• Combina vários conjuntos de entidades que compartilham os mesmos recursos em um conjunto de entidades de nível superior.
• A especialização e a generalização são simples inversões uma da outra; são representadas em um diagrama ER da mesma maneira.
• Os termos especialização e generalização são usados indistintamente.
Restrições em generalizações• Restrição sobre que entidades podem ser membros de um
determinado conjunto de entidades de nível inferior– Definido por condição
• Exemplo: Todos os clientes com mais de 65 anos são membros do conjunto de entidades cidadão_senior; cidadão_senior ISA pessoa.
– Definido pelo usuário• Restrição sobre se ou não as entidades podem pertencer a mais de
um conjunto de entidades de nível inferior dentro de uma única generalização.– Disjuntos
• uma entidade pode pertencer a não mais que um conjunto de entidades de nível inferior
• Indicados no diagrama ER pela inscrição de disjunto ao lado do triângulo ISA
– Superpostos• um conjunto de entidades pode pertencer a mais de um conjunto de
entidades de nível inferior
Restrições em generalizações
• Restrição de integralidade — Especifica se ou não uma entidade no conjunto de entidades de nível superior precisa pertencer a pelo menos um dos conjuntos de entidades de nível inferior dentro de uma generalização– total: Uma entidade precisa pertencer a um
conjunto de entidades de nível inferior– parcial: Uma entidade não precisa pertencer
a um conjunto de entidades de nível inferior
Agregação• Considere o relacionamento ternário trabalha_em, que
vimos anteriormente• Suponha que queremos registrar gerentes para tarefas
realizadas por um funcionário em uma agência
Agregação• Os conjuntos de relacionamento trabalha_em e gerencia
representam informações superpostas– Cada relacionamento gerencia corresponde a um relacionamento
trabalha_em– Entretanto, alguns relacionamentos trabalha_em podem não
corresponder a nenhum relacionamentos gerencia• Portanto, não podemos descartar o relacionamento trabalha_em
• Elimine essa redundância através da agregação– Trate relacionamento como uma entidade abstrata– Permite relacionamentos entre relacionamentos – Abstração de relacionamento em nova entidade
• Sem introduzir redundância, o diagrama a seguir representa:– Um funcionário trabalha em um cargo específico em uma agência
específica – Um funcionário, agência ou combinação de cargos pode ter um gerente
associado
Notação BRModelo
muitos-para-muitos
um-para-um
muitos-para-um
* Indicação de Cardinalidade mínima e máxima
Referências Bibliográficas
• SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de Banco de Dados. 5ª Ed. Campus, 2006
• PONTI JR, Moacir. Banco de Dados: Introdução - Notas de Aula. 2006.