Você está na página 1de 36

Banco de Dados I

Modelo ER Estendido (EER)

Jorge Cavalcanti Fonsêca (jorge.fonseca@upe.br)


Agenda
 Conceitos de especialização e generalização

 Modelo ER Estendido

 Mapeamento EER  Relacional


Modelo ER
 Modelo ER
 Consegue representar muitos esquemas de BD para
aplicações tradicionais

 Mas... E esquemas de BD mais precisos?


 Propriedades de dados
 Restrições com mais precisão

 Melhoria do Modelo ER
 Modelo Entidade-Relacionamento Estendido (EER)
Herança
Funcionário
Supertipo / superclasse
Entidade de nível superior

É um É um É um

Secretária Programador Diretor


Subconjunto / subagrupamento
Herança
Funcionário
Supertipo / superclasse
Herança de tipo Entidade de nível superior

Atributos Relacionamentos

É um É um É um

Secretária Programador Diretor

Subtipo / subclasse
Entidade de nível inferior
Especialização
 O que é se especializar?

 Um subconjunto de entidades pode não compartilhar


atributos por todas as entidades

Nome Salário
Pessoa

rua Avaliação
Crédito
Cidade
Especialização
 O que é se especializar?

 Um subconjunto de entidades pode não compartilhar


atributos por todas as entidades
Funcionário

Nome Salário
Pessoa

rua Avaliação
Crédito
Cidade

Cliente
Especialização
 É o processo de definir um conjunto de subclasses
de um tipo de entidade
 Designar subagrupamentos dentro de um conjunto de
entidades
Especialização-Exemplos

Número Conta Saldo

É uma É uma

Conta_Corrente Conta_Poupança

Qtd_saque
descoberto
Taxa_juros

Quantos atributos cada conta tem?


Especialização-Exemplos
Especialização-Exemplos
Modelo EER
 A especialização representa um processo:
 Top-Down (de cima para baixo)

 Porém...

Bottom-UP

É um É um É um
Generalização
 É o processo de identificar atributos que são
conceitualmente os mesmo e generalizar em uma
entidade de nível superior

1 1
3 3

2 2
Generalização
Especialização
 Objetivo principal
 Enfatiza diferenças dentro de um conjunto criando
conjuntos de entidade de nível inferior distintos.

 Razão principal para que um Projetista aplique a


especialização
 Ex. Se cliente e funcionário não tiverem atributos nem
relacionamentos que as entidades pessoa não tenham  não
precisa especializar
 E o futuro?
Herança
 Especialização / Generalização
 Herança de atributos e relacionamentos

1. Um conjunto de entidades de nível superior com


atributos e relacionamentos que se aplica a todos os
seus conjuntos de entidades de nível inferior.

2. Conjuntos de entidades de nível inferior com recursos


distintivos que se aplicam apenas dentro de um
determinado conjunto de entidades de nível inferior.
Restrições
 Definida por atributo
 Se todas as subclasses em uma especialização tiverem sua condição
de membro no mesmo atributo da superclasses
 Um atributo que o seu valor diferencia o tipo da entidade

 Definida pelo usuário


 Ex. Funcionário vs. Equipe de trabalho
Restrições (Disjunção x Sobreposição)
 Entidades disjuntas
 Uma entidade superior pertence a apenas uma entidade
de nível inferior
Restrições (Disjunção x Sobreposição)
 Entidades sobrepostas
 A mesma entidade pode pertencer a mais de um conjunto

 Outro exemplo: Funcionário vs. Equipe de trabalho


Restrição de Integralidade
 Uma entidade de nível superior precisa ou não
pertencer a pelo menos um dos conjuntos de
entidades de nível inferior

 Total
 Cada entidade de nível superior  Pertence a um conjunto de
nível inferior
 Ex. Conta

 Parcial
 Um entidade de nível superior pode ou não pertencer a um
conjunto de nível inferior
 Ex. Funcionário
Especialização/Generalização
 Inserção e Remoção
Herança

 Herança Simples
 Entidade participa apenas de um relacionamento ISA
 Esquema é chamado de Hierarquia

 Herança Múltipla
 Entidade participa de mais de um relacionamento ISA
 Esquema é chamado de Reticulado
Mapeamento EER  Relacional
 Capítulo 9 – Apresenta um
algoritmo de mapeamento

 7 Etapas + 1 etapa

 Especialização/Generalização
Etapa 8: Especialização/Generalização
 Superclasse: C – com atributos {ch, a1, a2, a3... an}
 Subclasses: {S1, S2, S3, S4... Sm}

ch a1 a2 a3 an

ISA

S1 S2 S3 S4 Sm
Opção 8A: Especialização/Generalização

Relação L
Atrs(L) = {ch, a1, a2, a3...,an}
Pk(L) = {ch}
ch a1 a2 a3 an

Relação Ri
Atrs(Ri) = {ch} U {atributos de Si}
ISA
Pk(Ri) = {ch}

1≤i≤m
S1 S2 S3 S4 Sm
Opção 8A: Especialização/Generalização
Opção 8B: Especialização/Generalização
Relação Ri
Atrs(Ri) = {atributos de Si} U {ch, a1, a2, a3...,an}
Pk(Ri) = {ch}

Não existe mais uma relação para entidade C

ch a1 a2 a3 an

ISA

S1 S2 S3 S4 Sm

Vocês acham que essa opção “funciona”?


Opção 8B: Especialização/Generalização

Se a especialização for sobreposta? Informação redudante


Opção 8B: Especialização/Generalização

Se a especialização for parcial? Perde informação


Opção 8B: Especialização/Generalização

Opção 8B: só se a especialização for total e disjunta


Opção 8C: Especialização/Generalização
Relação L
Atrs(L) = {ch, a1, a2, a3...,an} U {atributos de S1} U ... U {atributos de Sm} U { t }
Pk(L) = {ch}
Atributo de tipo
Uma única relação para toda a especialização
(ou discriminador)
ch a1 a2 a3 an

ISA

S1 S2 S3 S4 Sm

Vocês acham que essa opção “funciona”?


Opção 8C: Especialização/Generalização

Definida por atributo


(condição)

substitui o
atributo { t }

Se a especialização for sobreposta? Inviável


Se tivermos várias atributos nas entidades de nível inferior? Vários NULLs
Otimiza as consultas (melhora a performance) (Disjunta)
Opção 8D: Especialização/Generalização
Relação L
Atrs(L) = {ch, a1, a2, a3...,an} U {atributos de S1} U ... U {atributos de Sm} U { t1, t2, t3 ... tn }
Pk(L) = {ch}
Tipo booleano
(sim ou não)
ch a1 a2 a3 an

ISA

S1 S2 S3 S4 Sm

Viabiliza também especializações sobrepostas


Opção 8D: Especialização/Generalização
Exercício (Mapeamento EER Relacional)

Antes de fazer o
mapeamento, tente
“ler” o diagrama
Banco de Dados I
Modelo ER Estendido (EER)

Jorge Cavalcanti Fonsêca (jorge.fonseca@upe.br)

Você também pode gostar