banco de dados i - fabriciobreve.com · entidades e três conjuntos de relacionamento: 1. r a,...

25
Banco de Dados I Projeto de Banco de Dados e o Modelo E-R – Parte 2 Fabricio Breve

Upload: trandan

Post on 13-Dec-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Banco de Dados IProjeto de Banco de Dados e o

Modelo E-R – Parte 2

Fabricio Breve

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.

Exemplo de Especialização

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

Agregação

Exemplo de diagrama ER para

uma instituição bancária

Resumo dos símbolos usados na notação ER (Silberschatz)

Resumo dos símbolos (cont.)

Notações ER alternativas

Notação BRModelo

muitos-para-muitos

um-para-um

muitos-para-um

* Indicação de Cardinalidade mínima e máxima