bases de dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. um...

35
1 Bases de Dados Modelo Entidade-Associação Exemplo do banco account branch depositor customer borrower loan 2 IST DEI Bases de Dados

Upload: nguyenkhanh

Post on 13-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

1

Bases de Dados

Modelo Entidade-Associação

Exemplo do banco

account

branch

depositor

customerborrower

loan

2IST ▪ DEI ▪ Bases de Dados

Page 2: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

2

Exemplo do banco

account

branch

depositor

customerborrower

loan

3IST ▪ DEI ▪ Bases de Dados

Bases de Dados

Entidades

Page 3: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

3

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

5IST ▪ DEI ▪ Bases de Dados

Entidades

customer_idcustomer_name

customer_street customer_city

loan_numberamount

6IST ▪ DEI ▪ Bases de Dados

Page 4: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

4

Tipos de atributos

Atributos têm um domínio

Podem também ser• simples ou compostos

▫ p.ex. morada• de valor único ou valor múltiplo

▫ p.ex. telefone• derivados

7IST ▪ DEI ▪ Bases de Dados

• derivados▫ p.ex. idade, existindo já data_de_nascimento

Atributos compostos – exemplos

8IST ▪ DEI ▪ Bases de Dados

Page 5: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

5

Bases de Dados

Associações

Associações

As entidades podem ter associações entre si

Hayes depositor A 102Hayes depositor A-102entidade customer associação entidade account

Exemplo• (Hayes, A-102) ∈ depositor

10IST ▪ DEI ▪ Bases de Dados

Page 6: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

6

A associação borrower

11IST ▪ DEI ▪ Bases de Dados

Atributos descritivos em associações

12IST ▪ DEI ▪ Bases de Dados

Page 7: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

7

Grau de uma associação

Conjuntos de entidades que participam na associação

Associações entre 2 conjuntos de entidades chamam-se binárias

Associações entre mais do que 2 entidades• p.ex. ternárias (3 entidades)

f i á i dif t t f dif t

13IST ▪ DEI ▪ Bases de Dados

• funcionários com diferentes tarefas em diferentes agências

Cardinalidade de uma associação

Número de entidades com as quais outra entidade está associada• especialmente útil em associações binárias

Uma associação binária pode ser• um para um• um para muitos

it

14IST ▪ DEI ▪ Bases de Dados

• muitos para um• muitos para muitos

Page 8: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

8

Cardinalidade de uma associação

um para um um para muitos

15IST ▪ DEI ▪ Bases de Dados

(alguns elementos de A ou B podem não estar associados)

Cardinalidade de uma associação

muitos para um muitos para muitos

16IST ▪ DEI ▪ Bases de Dados

(alguns elementos de A ou B podem não estar associados)

Page 9: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

9

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 contas em titular é total

t d li t tê é ti

17IST ▪ DEI ▪ Bases de Dados

• nem todos os clientes têm empréstimos▫ a participação de cliente em devedor é parcial

Bases de Dados

Chaves de Entidades e Associações

Page 10: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

10

Chaves de entidades

A chave de uma entidade• super-chave

▫ conjunto de atributos que identificam univocamente

• chave candidata▫ conjunto mínimo de atributos

• chave primária▫ a chave candidata escolhida▫ normalmente prefere-se um atributo separado por si só

19IST ▪ DEI ▪ Bases de Dados

p p p◦ atenção aos atributos supostamente únicos

Chaves de associações

A combinação das chaves primárias descreve uma associação individual

primary_key(E1) U … U primary_key(En)

Se a associação tiver atributos descritivos {a1, a2,…,an}

primary_key(E1) U … U primary_key(En) U {a1, a2,…,an}

20IST ▪ DEI ▪ Bases de Dados

Em ambos os casos, uma super-chave é:

primary_key(E1) U … U primary_key(En)

Page 11: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

11

Chaves de associações

A chave primária depende da cardinalidade• seja (customer_id, account_number) ∈ depositor• se a associação for

▫ muitos para muitos: (customer_id, account_number)▫ muitos para um: (customer_id, account_number)▫ um para muitos: (customer_id, account_number)▫ um-para-um:

◦ (customer_id, account_number) ou

21IST ▪ DEI ▪ Bases de Dados

◦ (customer_id, account_number)

Bases de Dados

Diagramas Entidade-Associação

Page 12: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

12

Diagramas Entidade-Associação

Os diagramas E-A têm os seguintes elementos• entidades (rectângulos)• atributos (elipses)

▫ chave primária (sublinhado)▫ atributos multi-valor (elipses duplas)▫ atributos derivados (elipses a tracejado)

• associações (losangos)▫ participação total (linhas duplas)

23IST ▪ DEI ▪ Bases de Dados

p p ç ( p )▫ entidade “um” em um-para-muitos ou muitos-para-um

(seta)

Exemplo

24IST ▪ DEI ▪ Bases de Dados

Page 13: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

13

Atributos compostos, multi-valor e derivados

25IST ▪ DEI ▪ Bases de Dados

Associações com atributos

26IST ▪ DEI ▪ Bases de Dados

Page 14: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

14

Cardinalidade da associação

Seta indica entidade “um” em associações• um para muitos• muitos para um• um para um

27IST ▪ DEI ▪ Bases de Dados

“um para muitos”

Papéis (roles)

Se as entidades participantes não forem distintas• papéis ajudam a clarificar

28IST ▪ DEI ▪ Bases de Dados

Page 15: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

15

Participação na associação

Linha dupla assinala participação total• cada entidade desse tipo participa em pelo menos

uma associação

29IST ▪ DEI ▪ Bases de Dados

Limites de cardinalidade e participação

Cardinalidade pode ser expressa na forma min..max▫ valor mínimo 0 → participação parcial▫ valor mínimo 1 → participação total▫ valor mínimo 1 → participação total▫ valor máximo 1 → numa única associação▫ valor máximo * → ilimitado▫ 1..* → equivale a linha dupla

30IST ▪ DEI ▪ Bases de Dados

Page 16: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

16

Limites de cardinalidade e participação – atenção!

?

31IST ▪ DEI ▪ Bases de Dados

“um para muitos!”

Cardinalidade em associações não binárias

Exemplo: funcionários com diferentes tarefas em diferentes agências

32IST ▪ DEI ▪ Bases de Dados

• cada empregado só pode fazer uma tarefa em cada agência▫ seta para job

Page 17: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

17

Bases de Dados

Entidades fracas

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)

34IST ▪ DEI ▪ Bases de Dados

número sequencial para cada empréstimo (1, 2, 3, …)

Page 18: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

18

Associação e entidade identificadoras

Associação identificadora

35IST ▪ DEI ▪ Bases de Dados

• um para muitos• participação total

Associação identificadora

payment_number é um atributo discriminador

36IST ▪ DEI ▪ Bases de Dados

• chave primária é loan_number e payment_number

Page 19: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

19

Associação identificadora

A associação identificadora não deve ter atributos

37IST ▪ DEI ▪ Bases de Dados

• podem ser colocados na entidade fraca

Bases de Dados

Especialização / Generalização

Page 20: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

20

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

39IST ▪ DEI ▪ Bases de Dados

Representação com "is a"

Especialização / generalização

40IST ▪ DEI ▪ Bases de Dados

Page 21: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

21

Especialização / generalização

Atributos comuns entre entidades• p.ex. entre funcionário e clientep

▫ ambos tem nome e morada – criar uma entidade pessoa▫ funcionário e cliente têm atributos específicos adicionais

Entidades específicas herdam das genéricas• atributos

41IST ▪ DEI ▪ Bases de Dados

• participação em associações

Especialização / generalização

42IST ▪ DEI ▪ Bases de Dados

Page 22: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

22

Especialização / generalização

Especialização sucessiva• funcionário e cliente subclasses de pessoa• funcionário_permanente e funcionário_temporário

subclasses de funcionário

Herança múltipla• quando são várias as entidades de onde herda

43IST ▪ 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 funcionário que é também cliente do banco

44IST ▪ DEI ▪ Bases de Dados

Page 23: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

23

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 funcionário que não pertence a equipa nenhuma

45IST ▪ DEI ▪ Bases de Dados

Condições de especialização

Impacto das modificações à BD• atenção às inserções e remoções

▫ p.ex. remover de super-classe▫ p.ex. inserir em sub-classe

• efeitos dependem das condições de especialização

46IST ▪ DEI ▪ Bases de Dados

Page 24: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

24

Bases de Dados

Agregação

Agregação

Gestão das tarefas dos funcionários nas agências• gestor para cada triplo (funcionário, tarefa, agência)

48IST ▪ DEI ▪ Bases de Dados

Page 25: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

25

Agregação

Solução: agregação!• uma associação passa a ser uma entidade

49IST ▪ DEI ▪ Bases de Dados

Bases de Dados

Construção do Modelo E-A

Page 26: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

26

Descrição do domínio

1. O banco está organizado em agências. Cada agência está localizada numa cidade e é identificada por um nome único.

51IST ▪ DEI ▪ Bases de Dados

Descrição do domínio

2. Os clientes do banco são identificados pelo seu customer_id. O banco guarda o nome do cliente e gua da o o e do c e te ea rua e cidade onde vive. Os clientes podem ter contas e podem contrair empréstimos. O cliente pode estar associado com um funcionário na qualidade de “gestor de empréstimo”

52IST ▪ DEI ▪ Bases de Dados

de gestor de empréstimo ou “gestor de conta”.

Page 27: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

27

Descrição do domínio

3. Os funcionários do banco estão identificados por um employee_id. A administração do banco guarda o nome e número de telefone de cada funcionário, os nomes dos dependentes desse funcionário, e o employee id do gestor depe de tes desse u c o á o, e o e p oyee_ d do gestodesse funcionário.O banco também registaa data de entrada dofuncionário ao serviçobem como a respectivaduração

53IST ▪ DEI ▪ Bases de Dados

duração.

Descrição do domínio

4. O banco oferece 2 tipos de contas – à ordem e a prazo. As contas podem ter vários titulares e um cliente á os t tu a es e u c e tepode ter várias contas. Cada conta tem um número único e um saldo. Contas a prazo têm um taxa de juro. Contas à ordem têm um limite de débito

54IST ▪ DEI ▪ Bases de Dados

débito.

Page 28: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

28

Descrição do domínio

5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes. O empréstimo é identificado por um loan_number. O banco mantém um registo da quantia em dívida e dos pagamentos do empréstimo identificados por um número e dos paga e tos do e p ést o de t cados po u ú e osequencial. A data e quantia de cada pagamento são registadas.

55IST ▪ DEI ▪ Bases de Dados

Descrição do domínio - associações

borrower – muitos clientes para muitos empréstimos

loan branch – muitos empréstimos para uma agência_ p p g

loan_payment – muitos pagamentos para um

empréstimo

depositor – muitos clientes para muitas contas

cust banker muitos clientes para um funcionário

56IST ▪ DEI ▪ Bases de Dados

cust_banker – muitos clientes para um funcionário

works_for – um gestor para muitos funcionários

Page 29: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

29

Diagrama E-A

57IST ▪ DEI ▪ Bases de Dados

Bases de Dados

Dilemas ao criar o Modelo E-A

Page 30: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

30

Dilema #1 – atributos ou entidades?

Dada a entidade

employee(employee_id, employee_name, …, telephone_number)

• será que telephone não podia ser uma entidade?

telephone(telephone_number, location)

59IST ▪ DEI ▪ Bases de Dados

• implicaria também associação emp_telephone

Dilema #1 – atributos ou entidades?

60IST ▪ DEI ▪ Bases de Dados

Page 31: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

31

Dilema #1 – atributos ou entidades?

Solução do dilema• depende do domínio e das operações pretendidas• evitar demasiada complexidade

Cuidados a ter• não usar a chave primária de uma entidade como

atributo de outra (errado em E-A)ã i l i i ã h i á i

61IST ▪ DEI ▪ Bases de Dados

• não incluir numa associação as chaves primárias das associações participantes (já lá estão implicitamente)

Dilema #2 – entidades ou associações?

Um empréstimo é uma entidade ou uma associação entre cliente e agência?...

62IST ▪ DEI ▪ Bases de Dados

Page 32: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

32

Dilema #2 – entidades ou associações?

Problema: situação em que vários clientes contraem empréstimos conjuntamente• implicaria replicação de dados

Solução do dilema• associações com atributos são fortes candidatas a

entidades

63IST ▪ DEI ▪ Bases de Dados

Dilema #3 – onde colocar os atributos?

Posição dos atributos de uma associação• podem ser colocados na entidade “muitos” de

▫ um para muitos▫ muitos para um

• ou em qualquerdas entidadesnuma

64IST ▪ DEI ▪ Bases de Dados

numaassociação“um para um”

Page 33: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

33

Dilema #3 – onde colocar os atributos?

Seja depositor uma associação um-para-muitos

65IST ▪ DEI ▪ Bases de Dados

Dilema #3 – onde colocar os atributos?

Problemas• e se uma conta for movimentada por vários

clientes? (e quisermos guardar qual deles)

Solução do dilema• se houver possibilidade de a associação ser

muitos-para-muitos, colocar os atributos na própria associação

66IST ▪ DEI ▪ Bases de Dados

associação

Page 34: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

34

Dilema #4 – associações binárias ou n-árias?

Conversão de associações n-árias para binárias• criar n associações binárias auxiliares• criar uma entidade auxiliar

67IST ▪ DEI ▪ Bases de Dados

Dilema #4 – associações binárias ou n-árias?

Em vez de (ai, bi, ci) passamos a ter:• (ai, ei) em RA

• (bi, ei) em RB

• (ci, ei) em RC

68IST ▪ DEI ▪ Bases de Dados

Page 35: Bases de Dados - web.ist.utl.ptweb.ist.utl.pt/~diogo.ferreira/bd/2009-2010/02modeloea.pdf · 5. Um empréstimo é criado numa agência e pode ser contraído por um ou mais clientes

35

Dilema #4 – associações binárias ou n-árias?

Problemas• desenho fica mais complexo e menos claro• se a associação for muitos-para-um, perde-se essa

restrição no E-A▫ p.ex. se for muitos-para-um de A e B para C

Solução do dilema• converter para binárias sempre que possível

69IST ▪ DEI ▪ Bases de Dados

• converter para binárias sempre que possível

Sumário da notação

70IST ▪ DEI ▪ Bases de Dados