Modelagem com Entidade-Relacionamento Estendido Luiz

Propaganda
Roteiro
Modelagem com Entidade-Relacionamento
Estendido
Luiz Henrique de Campos Merschmann
Posicionamento
Revisão
Modelo Entidade-Relacionamento Estendido
Departamento de Computação
Universidade Federal de Ouro Preto
[email protected]
www.decom.ufop.br/luiz
Subclasses, Superclasses e Herança
Especialização e Generalização
Modelagem de Tipos União Usando Categorias
Conceitos de Abstração de Dados
BCC321 - Banco de Dados I
Ementa
1. Conceitos básicos em sistemas de banco de dados.
2. Conceitos e arquitetura de sistemas de banco de dados.
3. Modelagem conceitual de dados.
4. Modelo Relacional: conceitos básicos e restrições de
integridade.
5. Linguagens: álgebra e cálculo relacional.
6. A linguagem SQL e o uso de APIs.
7. Projeto de banco de dados.
8. Normalização de banco de dados.
9. Noções de processamento de transações, concorrência e
recuperação de falhas.
10. Aspectos de implementação de banco de dados.
Processo de Projeto de Banco de Dados
Introdução
O modelo EER
I Os conceitos de modelagem ER discutidos até o momento
são sucientes para a representação de muitos esquemas
para várias aplicações de bancos de dados.
I
Conceitos adicionais foram incorporados aos modelos de
O modelo ER foi expandido para incluir esses conceitos
ER estendido
⇒
I Um tipo de entidade pode ter subgrupos de entidades, que
são signicativos e necessitam ser representados
explicitamente.
Exemplo:
As entidades que são membros do tipo de entidade
FUNCIONARIO podem ser agrupadas em:
I
I
I
I
I Herança de atributo e relacionamento.
ou EER.
Subclasses, Superclasses e Herança
I
I Especialização e generalização.
I Categoria ou tipo união.
dados conceituais.
I
O modelo EER engloba também os seguintes conceitos:
I Subclasse e superclasse.
I Para bancos de dados que têm requisitos mais complexos:
SECRETARIA
TECNICO
ENGENHEIRO
Cada um desses subgrupos é uma subclasse do tipo de
entidade FUNCIONARIO (superclasse para cada uma
dessas subclasses).
Subclasses e Superclasses
Subclasses e Superclasses
São chamados de
/subclasse:
Instâncias de Subclasses e Superclasses
relacionamento superclasse
I FUNCIONARIO/SECRETARIA
I FUNCIONARIO/TECNICO
I FUNCIONARIO/ENGENHEIRO
I Um membro de uma subclasse é a mesma entidade da
superclasse.
I Uma entidade não pode existir apenas por ser membro de
uma subclasse; ela precisa ser também membro de uma
superclasse.
I Uma entidade pode ser membro de várias subclasses.
I Não é necessário que toda entidade de uma superclasse seja
também membro de alguma subclasse.
Herança
Uma entidade que é membro de uma subclasse herda:
I Todos os atributos da entidade como um membro da
superclasse.
I Todos os relacionamentos dos quais a superclasse participa.
Exemplo:
I No exemplo a seguir, SECRETARIA herda todos os
atributos de FUNCIONARIO (Nome, Cpf,
Data_nascimento e Endereço).
Subclasses e Superclasses
Especialização
Subclasses e Superclasses
I É o processo de denir um conjunto de subclasses de um
tipo de entidade.
I O conjunto de subclasses é denido com base em algumas
características de distinção das entidades da superclasse.
Exemplo:
I
O conjunto {SECRETARIA,ENGENHEIRO,TECNICO} é
uma especialização da superclasse FUNCIONARIO,
baseada no tipo de trabalho de cada entidade funcionário.
I Podemos ter diversas especializações para o mesmo tipo de
entidade.
Especialização
Resumindo...
I Atributos que se aplicam apenas às entidades de uma
subclasse em particular
atributos locais.
⇒
atributos especícos ou
I
Atributo VelocidadeDigitacao de SECRETARIA.
I Uma subclasse pode participar de
relacionamento especícos.
tipos de
Exemplo:
I
O processo de especialização nos permite:
I Denir um conjunto de subclasses de um tipo de entidade.
Exemplo:
A subclasse FUNCIONARIO_HORISTA participa do
relacionamento PERTENCE_A.
I Estabelecer atributos especícos (adicionais) para cada
subclasse.
I Estabelecer tipos de relacionamento especícos (adicionais)
para as subclasses.
Generalização
Características da Especialização e Generalização
I Subclasses denidas por predicado: se pudermos determinar
I Generalização é o processo contrário da especialização.
I Vários tipos de entidade com atributos comuns são
generalizadas em uma única superclasse.
I Exemplo:
exatamente as entidades que vão se tornar membros de
cada subclasse (uma condição no valor de algum atributo
da superclasse).
I Especialização denida por atributo: se
todas as subclasses
da especialização têm sua condição determinada pelo
mesmo atributo da superclasse.
I Subclasse denida pelo usuário: quando
não temos uma
condição que determine que a entidade seja membro de
uma subclasse.
Restrições na Especialização e Generalização
Restrição de Disjunção
I Subclasses disjuntas: uma entidade pode ser membro de, no
máximo, uma das subclasses da especialização.
Restrições na Especialização e Generalização
Restrição de Completude
I Cobertura total: especica que toda entidade na superclasse
deve ser membro de pelo menos uma das subclasses.
I Cobertura parcial: admite-se que entidades da superclasse
d=disjunção
Um FUNCIONARIO é:
- SECRETARIA ou
- TECNICO ou
- ENGENHEIRO
não pertençam a nenhuma das subclasses.
PARCIAL
I Subclasses sobrepostas: uma mesma entidade pode ser
membro de mais de uma subclasse da especialização.
o=sobreposição
Uma PECA é:
- PECA_FABRICADA e/ou
- PECA_COMPRADA
TOTAL
Todo FUNCIONARIO é
FUNCIONARIO_MENSAL ou
FUNCIONARIO_HORISTA
Hierarquias e Reticulados de Especialização e Generalização
Hierarquias e Reticulados de Especialização e
Generalização
Uma subclasse pode ter subclasses próprias, formando uma
hierarquia ou um reticulado.
I Hierarquia
I
Toda subclasse participa como uma subclasse em apenas
um relacionamento superclasse/subclasse.
I Reticulado
I
Uma subclasse pode participar em mais de um
relacionamento superclasse/subclasse.
I Uma subclasse com mais de uma superclasse é chamada de
subclasse compartilhada.
I Em uma especialização hierárquica ou reticulada uma
subclasse herda os atributos de todas as superclasses
predecessoras.
I Herança múltipla: a subclasse compartilhada herda,
diretamente, os atributos e relacionamentos de múltiplas
classes.
Reticulado de especialização, com a subclasse GERENTE_ENGENHARIA
compartilhada.
Hierarquias e Reticulados de Especialização e Generalização
Tipos União
I Cada
relacionamento superclasse/subclasse visto até o
momento têm uma superclasse única.
I Pode surgir a necessidade de modelar um único
relacionamento superclasse/subclasse com mais de uma
superclasse.
I
A subclasse (tipo união ou categoria) representará uma
coleção de objetos que é um subconjunto da UNIÃO de
diferentes tipos de entidade.
I Na gura a seguir temos 2 categorias:
I
PROPRIETARIO é uma subclasse da união de PESSOA,
BANCO E EMPRESA.
I
VEICULO_REGISTRADO é uma subclasse da união de
CARRO e CAMINHAO.
Categorias: PROPRIETARIO e VEICULO_REGISTRADO
Observações Sobre Tipos União
Qual a diferença entre a categoria PROPRIETARIO e a
subclasse compartilhada GERENTE_ENGENHARIA?
I GERENTE_ENGENHARIA é um subconjunto da
interseção das três superclasses ENGENHEIRO,GERENTE
e FUNCIONARIO_MENSAL.
I PROPRIETARIO é um subconjunto da união das
superclasses PESSOA, BANCO e EMPRESA.
I Herança de atributos em categorias é mais seletiva.
I
Exemplo: cada entidade PROPRIETARIO herda os
atributos da PESSOA, do BANCO ou da EMPRESA,
dependendo da superclasse à qual a entidade pertence.
Observações Sobre Tipos União
Observações Sobre Tipos União
Qual a diferença entre a categoria
VEICULO_REGISTRADO e a superclasse generalizada
VEICULO?
I Uma categoria pode ser:
I
Total: a categoria mantém a união de todas as entidades em
suas superclasses.
I
I Na generalização, todo CARRO e todo CAMINHAO
refere-se a um VEICULO.
I A categoria VEICULO_REGISTRADO inclui alguns
carros e caminhões, mas não necessariamente todos eles.
I Se a generalização fosse parcial, entidades como
motocicleta poderiam ser membros de VEICULO. Isso
não pode acontecer em uma categoria como
VEICULO_REGISTRADO.
Parcial: a categoria pode manter um subconjunto da união.
Agregação
Agregação
I Uma das limitações do modelo ER é que não é possível
Desejado (mas não permitido em ER)...
expressar relacionamentos entre relacionamentos.
I Agregação é uma abstração através da qual relacionamentos
são tratados como entidades de nível superior.
I Vejamos a necessidade desse tipo de construtor a seguir:
I No diagrama a seguir, suponha que algumas entrevistas
resultem em ofertas de emprego, enquanto outras não.
I
Como modelar?
Usando a agregação (não permitido em ER, mas permitido por
algumas ferramentas de modelagem)
Seria essa a maneira de modelar?
Agregação
Perguntas?
Finalmente, a representação correta em ER...
FIM
Download