Post on 03-Jan-2019
2
3
Exemplo do banco
IST ▪ DEI ▪ Bases de Dados
Entidade
Associação
4
Exemplo do banco
� Conceptualmente
IST ▪ DEI ▪ Bases de Dados
branch account depositor
customerborrowerloan
3
5
Exemplo do banco
� Conceptualmente
IST ▪ DEI ▪ Bases de Dados
branch account depositor
customerborrowerloan
6
Exemplo do banco
� Conceptualmente
IST ▪ DEI ▪ Bases de Dados
branch account depositor
customerborrowerloan
4
7
Modelo Entidade-Associação
� Uma base de dados é modelada como
• conjunto de entidades
• associações entre entidades
� Entidade = objecto distinto de outros objectos
• com existência física ou não
• com um conjunto de atributos específicos
• e um valor para cada um desses atributos
IST ▪ DEI ▪ Bases de Dados
8
Exemplo
� Entidades customer e loan
• cada uma com os seus atributos
• ligadas pela associação borrower
IST ▪ DEI ▪ Bases de Dados
5
9IST ▪ DEI ▪ Bases de Dados
Tipos de atributos
� Atributos podem ser
• simples ou compostos
▫ p.ex. morada
• de valor único ou valor múltiplo
▫ p.ex. telefone
• derivados
▫ p.ex. idade, se já existir data_de_nascimento
10IST ▪ DEI ▪ Bases de Dados
Atributos compostos, multi-valor e derivados
6
11IST ▪ DEI ▪ Bases de Dados
Associações também podem ter atributos
customer_id account_number access_date
c1 a1 20/09/2011
c2 a1 19/09/2011
c2 a2 01/06/2011
12IST ▪ DEI ▪ Bases de Dados
Cardinalidade de uma associação
� Cardinalidade = tipo de associação
• especialmente útil em associações binárias
� Uma associação binária pode ser
• um para um
• um para muitos
• muitos para um
• muitos para muitos
7
13IST ▪ DEI ▪ Bases de Dados
Cardinalidade de uma associação
� Seta indica entidade “um” em associações
um para muitos
14IST ▪ DEI ▪ Bases de Dados
Cardinalidade de uma associação
� Seta indica entidade “um” em associações
muitos para um
8
15IST ▪ DEI ▪ Bases de Dados
Papéis (roles)
� Associações entre a mesma entidade
• papéis ajudam a clarificar
16IST ▪ DEI ▪ Bases de Dados
Cardinalidade de uma associação
account_number customer_id
a1 c1
a2 c2
a3 c3
account_number customer_id
a1 c1
a1 c2
a2 c3
account_number customer_id
a1 c1
a2 c1
a3 c2
account_number customer_id
a1 c1
a1 c2
a2 c2
9
17IST ▪ DEI ▪ Bases de Dados
Chaves de associações
� A chave da associação depende da cardinalidade
• se a associação for
▫ muitos para muitos: (account_number , customer_id)
▫ um para muitos: (account_number , customer_id)
▫ muitos para um: (account_number , customer_id)
▫ um-para-um:
◦ (account_number, customer_id) ou
◦ (account_number, customer_id)
▫ no modelo E-A não se representa a chave de associações;
conclui-se a partir do diagrama
18IST ▪ DEI ▪ Bases de Dados
Grau de uma associação
� Grau = nº de entidades que participam na associação
� Associações entre 2 entidades chamam-se binárias
� Associações entre mais do que 2 entidades
• p.ex. ternárias (3 entidades)
10
19IST ▪ DEI ▪ Bases de Dados
Exemplo
� Se houver empregados com diferentes tarefas em
diferentes agências
• e se cada empregado só pode fazer uma tarefa em
cada agência?
▫ seta para job
20IST ▪ DEI ▪ Bases de Dados
Exemplo
� Se houver empregados com diferentes tarefas em
diferentes agências
• e se cada empregado só pode fazer uma tarefa em
cada agência...
• ...a combinação (employee_id, branch_name) não
se repete e serve como chave
employee_id branch_name title
e1 b1 j1
e1 b2 j2
e2 b1 j1
11
21IST ▪ DEI ▪ Bases de Dados
Chaves
� A chave pode ser
• super-chave
▫ qualquer conjunto de atributos que identificam
univocamente (p.ex. todos)
• chave candidata
▫ conjunto mínimo de atributos
• chave primária
▫ a chave candidata escolhida
▫ normalmente prefere-se um atributo separado por si só,
mas há chaves compostas por vários atributos
22IST ▪ DEI ▪ Bases de Dados
Participação nas associações
� A participação de um entidade pode ser
• total
• parcial
� Exemplos
• todos as contas têm um titular
▫ a participação de account em depositor é total
• nem todos os clientes têm empréstimos
▫ a participação de customer em borrower é parcial
account depositor
customer borrower
12
23IST ▪ DEI ▪ Bases de Dados
Participação na associação
� Linha dupla assinala participação total
• cada entidade desse tipo participa pelo menos uma
vez na associação
24IST ▪ DEI ▪ Bases de Dados
Limites de cardinalidade e participação
� Notação alternativa a setas e linhas duplas: min..max
▫ valor mínimo 0 → participação parcial
▫ valor mínimo 1 → participação total
▫ valor máximo 1 → numa única associação
▫ valor máximo * → ilimitado
▫ 1..* → equivale a linha dupla
13
25IST ▪ DEI ▪ Bases de Dados
Limites de cardinalidade e participação – atenção!
um para muitos
?
customer_id loan_number
c1 l1
c1 l2
c2 l3
Bases de Dados
Entidades fracas
14
27IST ▪ DEI ▪ Bases de Dados
Entidade fraca
� Entidade cujos atributos não chegam para formar uma
chave
� Exemplo: empréstimos e pagamentos de empréstimo
payment (payment_number, payment_date, payment_amount )
número sequencial
para cada empréstimo
(1, 2, 3, 6)
28IST ▪ DEI ▪ Bases de Dados
Associação e entidade identificadoras
� Associação identificadora
• um para muitos
• participação total
15
29IST ▪ DEI ▪ Bases de Dados
Associação identificadora
� payment_number é um atributo discriminador
• chave é loan_number e payment_number
30IST ▪ DEI ▪ Bases de Dados
Associação identificadora
� A associação identificadora não deve ter atributos
• podem ser colocados na entidade fraca
16
Bases de Dados
Especialização / Generalização
32IST ▪ DEI ▪ Bases de Dados
Especialização / generalização
� Especialização
• vista de cima para baixo (top-down)
• a partir da super-classe encontram-se sub-classes
� Generalização
• vista de baixo para cima (bottom-up)
• a partir das sub-classes identifica-se a super-classe
17
33
� Representação com "is a"
IST ▪ DEI ▪ Bases de Dados
Especialização / generalização
34IST ▪ DEI ▪ Bases de Dados
Especialização / generalização
� Atributos comuns entre entidades
• p.ex. entre empregado e cliente
▫ ambos tem nome e morada – criar uma entidade pessoa
▫ empregado e cliente têm atributos específicos adicionais
� Entidades específicas herdam das genéricas
• atributos
• participação em associações
18
35IST ▪ DEI ▪ Bases de Dados
Condições de especialização
� Disjunta
• quando só pode pertencer a uma das sub-classes
▫ p.ex. conta ser ou “conta à ordem” ou “conta a prazo”
� Sobreposta
• quando pode estar presente em várias sub-classes
▫ p.ex. o empregado que é também cliente do banco
36IST ▪ DEI ▪ Bases de Dados
Condições de especialização
� Total
• quando tem que pertencer a uma das sub-classes
▫ p.ex. conta ser uma de “conta à ordem” ou “conta a prazo”
� Parcial
• quando pode pertencer apenas à super-classe
▫ p.ex. o empregado que não pertence a equipa nenhuma
19
Bases de Dados
Agregação
38IST ▪ DEI ▪ Bases de Dados
Cardinalidade em associações não binárias
� Exemplo anterior: empregados com diferentes tarefas
em diferentes agências
• e se houver um gestor para cada tarefa
desempenhada por um empregado numa agência?
20
39IST ▪ DEI ▪ Bases de Dados
Agregação
� Solução: agregação!
• uma associação passa a ser uma entidade
Bases de Dados
Exemplo de Modelo E-A