Universidade do Vale do Paraíba
Faculdade de Engenharias, Arquitetura e
Urbanismo – FEAU
Graduação em Engenharia de Computação
10 Semestre de 2008
Disciplina: Banco de Dados II
Prof. Lineu Mialaret
Aula 8: Modelo Entidade Relacionamento (4)
Banco de Dados I
Aula 8 - 1
©Prof. Lineu Mialaret
Recursos de Extensão do MER
 Apesar de ser possível modelar os domínios de conhecimento com
os conceitos básicos do Modelo Entidade Relacionamento – MER
já apresentados, alguns aspectos semânticos desses domínios
podem ser expressos de modo mais adequado por meio de
extensões do MER.
 Há recursos de modelagem que estendem o MER, possibilitando
modelos mais precisos e adequados desses domínios.
 Tais recursos podem ser caracterizados como:
 Especialização e Generalização.
 Agregação.
Banco de Dados I
Aula 8 - 2
©Prof. Lineu Mialaret
Especialização (1)
 Um conjunto de entidades pode conter subgrupos de entidades, que
são, de alguma forma, diferentes das outras entidades do grupo.
 Ou seja, um subconjunto de entidades pode possuir atributos
específicos que não são compartilhados pelas demais entidades.
 Considere o conjunto de entidades conta, com os atributos
numero_conta e saldo. Uma entidade conta pode ser classificada
como sendo de um dos seguintes subgrupos de entidades:
 conta_poupança
 conta_movimento
 Cada um destes tipos de conta é descrito por um conjunto de
atributos, que além de conter todos os atributos da entidade conta,
possui outros atributos adicionais.
 Exemplo: a entidade conta_poupança pode conter o atributo adicional
taxa_juros, enquanto que a entidade conta_movimento pode conter o
atributo adicional limite_cheque_especial.
 Denomina-se
de especialização esse processo de projetar
subgrupos específicos dentro de um conjunto de entidades.
Banco de Dados I
Aula 8 - 3
©Prof. Lineu Mialaret
Especialização (2)
A entidade
conta pode ser
especializada
em outras
entidades
Banco de Dados I
Aula 8 - 4
©Prof. Lineu Mialaret
Especialização (3)
 O processo de especialização pode ser aplicado repetidamente,
para se refinar o MER.
 Por exemplo, um banco pode oferecer ainda três tipos de contas
movimento:
 Uma conta movimento do tipo padrão, com uma taxa de 3 reais
mensais e 25 folhas de cheque gratuitas por mês.
 Uma conta movimento do tipo especial, que exige um saldo mínimo de
1000 reais, paga taxa de juros de 2% e sem limite de emissão de
folhas de cheques.
 Uma conta movimento do tipo sênior, para clientes com mais de 65
anos de vida e sem limite de emissão de folhas de cheques.
 A especialização do conjunto de entidades conta_movimento cria
os seguintes subconjuntos de entidades:
 padrão, com o atributo numero_cheques.
 especial, com os atributos saldo_minimo e taxa_juros.
 sênior, com o atributo data_aniversario.
Banco de Dados I
Aula 8 - 5
©Prof. Lineu Mialaret
Especialização (4)
A entidade
conta_movimento pode
ainda ser especializada
em outras entidades
Exemplo de Especialização no MER.
Banco de Dados I
Aula 8 - 6
©Prof. Lineu Mialaret
Especialização (5)
 Em termos de MER, a especialização é representada pelo
triângulo rotulado de ISA.
 Esse rótulo padrão ISA (do inglês “is a” – é um) indica que uma
conta poupança é uma conta ou que uma conta movimento
também é uma conta.
 Esse relacionamento ISA também pode ser entendido como um
relacionamento de superclasse e subclasse (lembrar da orientação
a objetos).
 Os conjunto de entidades em nível superior (a entidade mais
genérica) e em nível inferior (a entidade mais especializada) são
representados de mesmo modo que os conjunto de entidades
normais, ou seja, com o uso de retângulos simples.
Banco de Dados I
Aula 8 - 7
©Prof. Lineu Mialaret
Especialização (6)
código
entidade de
nível superior
CLIENTE
nome
ISA
entidade de
nível inferior
PESSOA
FÍSICA
cpf
PESSOA
JURÍDICA
sexo
cgc
Outro Exemplo de Especialização no MER.
Banco de Dados I
Aula 8 - 8
©Prof. Lineu Mialaret
Generalização (1)
 O refinamento do conjunto de entidades em níveis sucessivos de
subgrupos de entidades indica que ocorre um processo de
refinamento top-down (de cima para baixo), no qual as
diferenciações entre as entidades são realizadas de modo
explícito.
 Um outro modo de determinar subgrupos de entidades é realizar
esse processo de maneira bottom-up (de baixo para cima), ou
seja, no qual vários subgrupos de entidades são sintetizados em
um conjunto de entidades de mais alto nível, com base em
atributos comuns.
 Baseado no exemplo anterior da especialização, poderia ser
identificado numa primeira abordagem, a existência de um
conjunto de entidades conta_movimento, com os atributos
numero_conta, saldo e limite_cheque_especial e o conjunto de
entidades conta_poupança, com os atributos numero_conta, saldo
e taxa_juros.
 Há similaridades entre o conjunto de entidades conta_movimento
e o conjunto de entidades conta_poupança, já que ambos
possuem atributos comuns.
Banco de Dados I
Aula 8 - 9
©Prof. Lineu Mialaret
Generalização (2)
 Esse compartilhamento de atributos pode ser expresso pela




generalização, a qual exprime o relacionamento existente entre os
conjuntos de entidades de nível superior e um ou mais conjunto de
entidades de nível inferior.
No exemplo apresentado, conta é um conjunto de entidades de
nível superior e conta_poupança e conta_movimento são
conjuntos de entidades de nível inferior.
Na prática, a generalização é o inverso da especialização, e
ambos os processos são aplicáveis no desenvolvimento de um
MER.
A especialização parte de um único conjunto de entidades e
enfatiza as diferenças entre as entidades pertencentes ao conjunto
por meio do estabelecimento das diferenças expressas nos
conjuntos de entidades de nível inferior.
A generalização reconhece a existência de um número de
conjuntos de entidades que compartilham características comuns,
e procede a sintetização dessas entidades num conjunto de
entidades de nível superior.
Banco de Dados I
Aula 8 - 10
©Prof. Lineu Mialaret
Exemplo de Especialização/Generalização
Generalização
Especialização
Banco de Dados I
Aula 8 - 11
©Prof. Lineu Mialaret
Herança de Atributos (1)
 Um propriedade importante das entidades de nível superior e
inferior criadas pelos processos de especialização e generalização
é a herança de atributos.
 Ou seja, os atributos dos conjuntos de entidades de nível superior
são herdados pelos conjuntos de nível inferior.
 Exemplo: os conjuntos de entidades conta_poupança e
conta_movimento herdam os atributos do conjunto de entidades
conta. Assim a entidade conta_poupança é identificada por seus
atributos numero_conta, saldo e taxa_juros. A entidade
conta_movimento é identificada pelos atributos numero_conta, saldo e
limite_cheque_especial.
 Os conjuntos de entidades de nível inferior também herdam a
participação em conjuntos de relacionamentos.
 Exemplo: supondo que o conjunto de entidades conta participa (tem)
de um conjunto de relacionamentos depositante, os conjuntos de
entidades conta_poupança e conta_movimento também participam
desse conjunto de relacionamentos.
Banco de Dados I
Aula 8 - 12
©Prof. Lineu Mialaret
Herança de Atributos (2)
A entidade genérica Funcionario
tem um relacionamento lotado com
Departamento
Funcionario
Veiculo
dirige
lotado
Projeto
ISA
Motorista
Secretaria
Departamento
Engenheiro
participa
A entidade especializada Motorista herda atributos e
relacionamentos da entidade Funcionario e ainda tem
um relacionamento dirige com Veiculo
Banco de Dados I
Aula 8 - 13
©Prof. Lineu Mialaret
Restrições de Herança (1)
 Para a modelagem mais apurada da realidade, o projetista de
Banco de Dados pode optar por definir algumas restrições em uma
generalização/especialização em particular.
 O primeiro tipo de restrição envolve a determinação das entidades
que podem participar de um dado conjunto de entidades de nível
inferior.
 Tais escolhas podem ser:
 Definida por condição - um conjunto de entidades de nível inferior
definido por condição é selecionado com base na satisfação ou não de
condições ou predicados preestabelecidos.
 Exemplo - todos os clientes com idade acima de 65 anos são
membros do conjunto de entidades cliente_senior, e cliente_senior
ISA pessoa.
 Definida pelo usuário - um conjunto de entidades de nível inferior
definido pelo usuário não tem seus membros classificados por uma
condição, ou seja, as entidades são designadas a um determinado
conjunto de entidades especializado por usuários ou projetistas de BD.
Banco de Dados I
Aula 8 - 14
©Prof. Lineu Mialaret
Restrições de Herança (2)
 O segundo tipo de restrição determina se uma entidade pode ou
não pertencer a mais de um conjunto de entidades de nível inferior
dentro de uma generalização/especialização simples.
 Os conjuntos de entidades de nível inferior podem ser um dos
seguintes:
 Mutuamente exclusivos (disjunção) - restrições mutuamente
exclusivas exigem que uma entidade pertença a apenas um conjunto
de entidades de nível inferior. Usa-se a palavra-chave disjunto
(disjoint) próximo ao triângulo ISA para caracterizar esse tipo de
herança.
 Exemplo - numa hierarquia de membro da universidade, estudante,
professor e técnico de laboratório, cada membro da universidade
deve ser estudante, professor ou funcionário de laboratório.
 Sobrepostos (sobreposição) - uma mesma entidade pode pertencer a
mais de um conjunto de entidades de nível inferior.
 Exemplo - numa hierarquia de aluno, este pode ser aluno de
graduação e de aluno de pós-graduação ao mesmo tempo.
Banco de Dados I
Aula 8 - 15
©Prof. Lineu Mialaret
Restrições de Herança (3)
Na herança com disjunção,
cada
Membro
da
Universidade
da
da
universidade
deve
ser
Estudante, Professor ou
Técnico.
Membro da
Universidade
disjunto
ISA
Estudante
Professor
Aluno
Na
herança
com
sobreposição, um Aluno pode
ser Aluno de Graduação e de
Aluno de Pós-graduação ao
mesmo tempo
ISA
Graduação
Banco de Dados I
Técnico
Pós-Graduação
Aula 8 - 16
©Prof. Lineu Mialaret
Restrições de Herança (3)
 O terceiro tipo de restrição, a restrição de totalidade, determina se
uma entidade de nível superior pertence ou não, a no mínimo, um
dos conjuntos de entidades de nível inferior. Essa restrição pode
ser uma das seguintes:
 Total - cada entidade do conjunto de entidades de nível superior deve
pertencer a um conjunto de entidades de nível inferior (representada
pelo símbolo ||).
 Exemplo: numa hierarquia de automóvel, automóvel de passeio e
automóvel de trabalho, só há instâncias das entidades automóvel
de passeio ou automóvel de trabalho (uma instância de automóvel
é mapeada para automóvel de passeio ou automóvel de trabalho).
 Parcial - uma entidade de nível superior pode não pertencer a nenhum
dos conjuntos de entidades de nível inferior.
 Exemplo: numa hierarquia de automóvel, automóvel de passeio e
automóvel de trabalho, pode-se ter instâncias das entidades
automóvel de passeio e automóvel de trabalho, e instâncias de
automóvel.
Banco de Dados I
Aula 8 - 17
©Prof. Lineu Mialaret
Restrições de Herança (4)
Automóvel
Na herança total, só há
instâncias das entidades
Automóvel de Passeio ou
Automóvel de Trabalho
ISA
Automóvel de
Passeio
Automóvel de
Trabalho
Automóvel
Na herança parcial, há instâncias
das
entidades
Automóvel,
Automóvel
de
Passeio
ou
Automóvel de Trabalho
ISA
Automóvel de
Passeio
Banco de Dados I
Automóvel de
Trabalho
Aula 8 - 18
©Prof. Lineu Mialaret
Agregação (1)
 Uma das limitações do MER é que não é possível expressar
diretamente relacionamentos de relacionamentos. Seja um BD que
descreve informações sobre clientes e seus empréstimos. Suponha
que cada par cliente e empréstimo (caracterizando o
relacionamento devedor) deve possuir um empregado, que vai ser
o responsável pelo acompanhamento de determinado empréstimo.
Banco de Dados I
Aula 8 - 19
©Prof. Lineu Mialaret
Agregação (3)
 O melhor modo de se modelar a situação descrita anteriormente é
usar o conceito de agregação, que se constitui numa abstração por
meio da qual relacionamentos são tratados como entidades.
 A agregação permite:
 Tratar o relacionamento como uma entidade.
 Relacionamentos entre relacionamentos
 Abstrair o relacionamento em nova entidade.
 No
exemplo apresentado, simboliza-se o conjunto de
relacionamentos devedor como um conjunto de entidades
denominado devedor.
Banco de Dados I
Aula 8 - 20
©Prof. Lineu Mialaret
Agregação (4)
Na agregação, o relacionamento
devedor se transforma numa
entidade.
Exemplo do Uso de Agregação.
Banco de Dados I
Aula 8 - 21
©Prof. Lineu Mialaret
Agregação (5)
consulta
Médico
Paciente
prescreve
Medicamento
Médico
aplica
Na
agregação,
o
relacionamento consulta se
transforma na entidade
Consulta.
Consulta
recebe
Paciente
prescreve
Medicamento
Banco de Dados I
Aula 8 - 22
©Prof. Lineu Mialaret
Atributo ou Entidade
 Uma questão que surge no desenvolvimento de um MER é entre
modelar algo como um atributo de uma entidade ou como uma
entidade autônoma.
 Critérios:
 Se o objeto da modelagem está vinculado a outras entidades ou
possui atributos importantes - modelar como entidade.
 Se há transações que alteram os valores do objeto - modelar como
entidade.
 Exemplo:
Carro
Carro
tem
Cor
dada
cor
Banco de Dados I
Neste contexto há um vínculo
do
atributo
com
uma
entidade.
Aula 8 - 23
Fabricante
©Prof. Lineu Mialaret
Atributo ou Generalização/Especialização
 Outra questão que surge no desenvolvimento de um MER é entre
modelar algo como um atributo de uma entidade ou como uma
especialização.
 Critério:
 Só utilizar especialização quando as entidades especializadas
possuem propriedades particulares (atributos e relacionamentos com
outras entidades, por exemplo).
 Exemplo:
Empregado
Veiculo
categoria
funcional
ISA
Motorista
Banco de Dados I
Empregado
Aula 8 - 24
Engenheiro
Técnico
©Prof. Lineu Mialaret
Atributo Multivalorados
 Uma questão que surge no desenvolvimento de um MER é quanto
a modelagem de atributos multivalorados.
 Critério:
 Depende do contexto.
 Exemplo:
Neste
contexto
só
há
necessidade do(s) nome(s)
do(s) dependentes
Empregado
tem
Empregado
nome
Dependente
data de
nascimento
dependente
Neste contexto há a necessidade
da(s) data(s) de nascimento do(s)
dependentes, além dos nome(s)
Banco de Dados I
Aula 8 - 25
©Prof. Lineu Mialaret
Atributo de Relacionamentos M:M (1)
 Um atributo pertence a um relacionamento de cardinalidade M:M
sempre que:
 Fixa-se um elemento da 1a entidade, e observa-se o valor do atributo
para cada mudança de elemento na 2a entidade.
 Se o valor do atributo mudar, então o atributo não pertence a 1a
entidade.
 Fixa-se um elemento da 2a entidade, e observa-se o valor do atributo
para cada mudança de elemento na 1a entidade.
 Se o valor do atributo mudar, então ele não pertence a 1ª entidade.
 Se o atributo não pertence as entidades envolvidas, e é relevante no
contexto do relacionamento, então ele é atributo do relacionamento M:M.
Banco de Dados I
Aula 8 - 26
©Prof. Lineu Mialaret
Atributo de Relacionamentos M:M (2)
 A quem pertence os atributos preco, quantidade e prazo?
Produto
preco
Banco de Dados I
Vende
quantidade
Aula 8 - 27
Fornecedor
prazo
©Prof. Lineu Mialaret
Atributo de Relacionamentos M:M (3)
 Os atributos preco, quantidade e prazo, não podem pertencer a
entidade Produto, pois se fosse assim todos os fornecedores
deveriam praticar o mesmo preço.
Produto Y
Produto
Vende
Fornecedor
Fornecedor X
Fornecedor Z
preco
Fornecedor W
quantidade
prazo
Banco de Dados I
Aula 8 - 28
©Prof. Lineu Mialaret
Atributo de Relacionamentos M:M (4)
 Os atributos preco, quantidade e prazo, não podem pertencer a
entidade Fornecedor, pois se fosse assim todos os produtos de um
fornecedor teriam o mesmo preço.
Fornecedor X
Produto
Fornecedor
Vende
Produto A
Produto B
Produto C
preco
quantidade
*Condições
prazo
Banco de Dados I
Aula 8 - 29
©Prof. Lineu Mialaret
Atributo de Relacionamentos M:M (5)
 Não pertencendo nem a entidade Produto ou a entidade Fornecedor,
e sendo relevante no relacionamento Vende, são atributos do
relacionamento.
Produto
Fornecedor
Vende
preco
quantidade
prazo
Banco de Dados I
Aula 8 - 30
©Prof. Lineu Mialaret
Conversão de Relacionamentos (1)
 Em
geral, qualquer relacionamento não binário pode ser
representado por relacionamentos binários, por meio da criação de
um conjunto artificial de entidades.
 Substitua o conjunto de relacionamentos R entre os conjuntos de
entidades A, B e C por um conjunto de entidades E e três conjuntos de
relacionamentos:
1. RA, relacionando E e A
2. RB, relacionando E e B
3. RC, relacionando E e C
 Opcionalmente, crie um atributo de identificação especial para E
 Adicione qualquer atributo de R para E
 Para cada relacionamento (ai , bi , ci) in R, crie
Banco de Dados I
1. uma nova entidade ei em E
2. adicione (ei , ai ) para RA
3. adicione (ei , bi ) para RB
4. adicione (ei , ci ) para RC
Aula 8 - 31
©Prof. Lineu Mialaret
Conversão de Relacionamentos (2)
 Algumas
ferramentas CASE, destinadas a modelagem, são
baseadas em variações do Modelo Entidade Relacionamento –
MER que admitem somente relacionamentos binários (ou seja, de
grau 2).
 Elas não permitem a modelagem de relacionamentos ternários (de
grau 3) ou maiores, por exemplo.
 Exemplo: a ferramenta PowerDesigner, da Sybase.
 Neste caso, a solução é transformar o relacionamento ternário em
vários relacionamentos binários, conforme já foi apresentado.
 Exemplo: considere o seguinte contexto entre um fornecedor que
fornece peças para projetos, conforme apresentado na transparência a
seguir.
Banco de Dados I
Aula 8 - 32
©Prof. Lineu Mialaret
Conversão de Relacionamentos (3)
Exemplo de um
Relacionamento
Ternário.
Banco de Dados I
Aula 8 - 33
©Prof. Lineu Mialaret
Conversão de Relacionamentos (4)
Fornecedor
a1
a2
Fornece
Projeto

r1

c1

c2

c3

r2
r3
Peça
r5
b1

b2

b3
Banco de Dados I
r4

r6
r7
Aula 8 - 34
Grafo de Ocorrências de
um Relacionamento
Ternário.
©Prof. Lineu Mialaret
Conversão de Relacionamentos (5)
 Neste contexto, a solução para essa transformação é representar o
relacionamento fornece como um tipo de entidade fraca, sem
nenhuma ou alguma chave parcial (identificador) e com três
relacionamentos identificadores (lembrar do conceito de entidade
fraca e relacionamento identificador), conforme apresentado na
transparência a seguir.
 Os três tipos de entidades participantes Fornecedor, Peça e Projeto
são conjuntamente as entidades proprietárias.
 Dessa forma a entidade fraca Fornece é identificada por meio da
combinação de suas entidades proprietárias Fornecedor, Peça e
Projeto.
Banco de Dados I
Aula 8 - 35
©Prof. Lineu Mialaret
Conversão de Relacionamentos (6)
Relacionamento ternário
transformado em vários
relacionamentos Binários.
Banco de Dados I
Aula 8 - 36
©Prof. Lineu Mialaret
Download

Aula 7 - Lineu FS Mialaret