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