21
1 Bases de Dados Modelo Entidade-Associação 2 Exemplo do banco IST DEI ▪ Bases de Dados

Modelo Entidade-Associaçãoweb.ist.utl.pt/~diogo.ferreira/bd/2011-2012/02modeloea.pdf · Entidade cujos atributos não chegam para formar uma chave Exemplo: empréstimos e pagamentos

  • Upload
    ngominh

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

1

Bases de Dados

Modelo Entidade-Associação

2

Exemplo do banco

IST ▪ DEI ▪ Bases de Dados

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

21

41IST ▪ DEI ▪ Bases de Dados

Diagrama E-A

42

Sumário da notação

IST ▪ DEI ▪ Bases de Dados