Generalização e Especialização (Entidades)

0
15970

Última Atualização 21 de março de 2021

Carlos Alberto Dornelles e Fernando de Siqueira ensinam que:

A generalização e a especialização são conceitos usados para representar objetos do mundo real que possuem os mesmos atributos e que podem ser categorizados e que podem ser representados em uma hierarquia que mostra as dependências entre entidades de uma mesma categoria.

Imagine uma empresa de seguros que vende seguros para seus clientes que podem ser tanto cidadãos como empresas. Neste caso teríamos a situação abaixo:

– CLIENTE

– PESSOA JURÍDICA

– PESSOA FÍSICA

No Diagrama Entidade e Relacionamentos este conceito pode ser representado assim:

 

Em uma empresa de Planos de Saúde poderíamos ter a seguinte situação:

  • PACIENTE

  • MEDICO

  • MEDICO RESIDENTE

  • MEDICO EFETIVO

Cada uma dessas categorias (subclasses), além de características comuns, possui atributos distintos.

GENERALIZAÇÃO/ESPECIALIZAÇÃO

Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica ou entidade Pai.

Herança de propriedades: cada ocorrência da entidade especializada possui, além de seus próprios atributos e relacionamentos, todos os atributos da entidade generalizada.

TIPOS DE GENERALIZAÇÃO/ESPECIALIZAÇÃO

A Generalização/Especialização pode ser classificada em dois tipos: 

Parcial: nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada.

 

No exemplo acima, nem todo funcionário é motorista e nem todo funcionário é secretária. Podem haver funcionários que não sejam nem motorista e nem secretária.

Total: para toda ocorrência da entidade genérica existe sempre uma ocorrência em uma das entidades especializadas.

No exemplo acima, todo cliente ou é uma pessoa física ou uma pessoa jurídica. Não existe a possibilidade de haver um cliente que não seja pessoa física OU pessoa jurídica.

USO DE GENERALIZAÇÃO/ESPECIALIZAÇÃO

O uso da Generalização é indicado quando existe algum atributo que seja aplicável a mais de uma entidade no Modelo Entidade Relacionamento. Se existe, devemos usar a generalização e criar uma entidade mãe que contenha os atributos comuns às outras entidades especializadas.

Uso da Especialização é indicado quando temos atributos específicos para um determinado sub-conjunto de ocorrências dentro de uma Entidade. Por exemplo, na entidade CLIENTES temos clientes que são empresas e outros clientes são pessoas físicas. Os clientes que são empresas possuem atributos específicos como CNPJ e Inscrição Estadual. Neste caso podemos promover uma especialização e criar a entidade CLIENTE-EMPRESA que especializa a entidade CLIENTE e que possui atributos específicos de uma empresa.

Não devemos usar Generalização/Especialização caso não existam atributos ou relacionamentos que justifiquem uma entidade especializada ou uma entidade mãe. Caso contrário, estaremos “poluindo” o modelo com a inserção de detalhes desnecessários. Ou seja, não faz sentido ter uma entidade especializada que não possui atributos específicos ou que não tenha um relacionamento específico com outra entidade.

QUESTÃO CERTA: Considere o seguinte MER associado a um banco de dados.

Duas características desse MER são expressas a seguir.

I – Resultado da união de dois ou mais conjuntos CLIENTE de entidades de nível mais baixo, o que produz um conjunto de entidades de nível mais alto.

II – Resultado da separação de um conjunto de entidades de nível mais alto, o que forma um conjunto de entidades de nível mais baixo.

As características I e II são denominadas, respectivamente: generalização e especialização.

QUESTÃO CERTA: Considerando o modelo entidade‐relacionamento acima e as informações nele contidas, assinale a alternativa correta: No modelo em questão, há a presença de uma estrutura conhecida como generalização/especialização.

QUESTÃO ERRADA: O diagrama ER a seguir ilustra um modelo ER, conforme concebido por Chen. Nesse diagrama, os retângulos representam entidades, o triângulo representa o conceito de generalização/especialização e o losango representa um relacionamento entre entidades.

Na verdade, notação do modelo ER baseada na UML possui o conceito de generalização/especialização, representado pelo triângulo, como na figura. Porém, a notação do modelo ER original de Peter Chen não trazia tal conceito. Por isso a questão está errada.

QUESTÃO ERRADA: Com base no diagrama entidade-relacionamento acima, julgue o item a seguir.

Uma ocorrência da entidade TÉCNICO é resultado de uma generalização da ocorrência das entidades PROFESSOR e ALUNO.

Uma ocorrência da entidade TÉCNICO é resultado de uma especialização da ocorrência da entidade PESSOA.

QUESTÃO CERTA: Em um Projeto de Banco de Dados Relacional, pode-se destacar os seguintes conceitos sobre a camada conceitual implementada com abordagem Entidade-Relacionamento Estendido:

I – Cada ocorrência da entidade especializada possui, além de suas próprias propriedades (atributos, relacionamentos e generalização/especialização), também as propriedades da ocorrência da entidade genérica correspondente.

II – Resultado da união de dois ou mais conjuntos de entidades de nível inferior produzindo uma entidade de nível superior.

III – Resultado da separação de entidades de nível superior, formando um conjunto de entidades de nível inferior.

Os conceitos da ERR indicados em I, II e III, são, respectivamente: Herança, Generalização e Especialização.

QUESTÃO ERRADA: em uma generalização/especialização parcial, para cada ocorrência da entidade genérica, existe sempre uma ocorrência em uma das entidades especializ adas.

Advertisement

Negativo. Nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada.

QUESTÃO CERTA: O modelo Entidade Relacionamento Estendido (EER ou modelo Entidade Relacionamento Aprimorado) inclui os conceitos de modelagem da ER (Entidade Relacionamento) e outros conceitos, como: subclasse e superclasse, especialização e generalização, categoria ou tipo de união. Baseando-se nessas considerações, assinale a alternativa correta: Inserir uma entidade em uma superclasse implica obrigatoriamente na inserção em todas as subclasses definidas por predicada (ou definidas por atributos) para as quais a entidade satisfaz o predicado de definição.

Melhor explicar com um exemplo. O que está sendo dito é que inserir uma entidade neurologista, por exemplo, na superclasse Pessoa, implica obrigatoriamente que ela será inserida também na subclasse Médica, pois satisfaz a definição através de atributos específicos que somente esta classe possui. Mas não seria inserida por exemplo na subclasse Enfermeira, pois ela não possuiria os atributos específicos para isso.

QUESTÃO ERRADA: A generalização é o resultado da separação de um tipo-entidade de nível mais alto — superclasse — e forma vários tipos-entidades de nível mais baixo — subclasse.

Errada, o conceito apresentado é o de especialização e não de generalização.

QUESTÃO ERRADA: Uma entidade, que é membro de uma subclasse, nem sempre herda todos os atributos da entidade como um membro da superclasse.

Errada, uma subclasse herda todos os atributos da superclasse.

QUESTÃO CERTA: Uma restrição de disjunção pode ser aplicada a uma especialização, na qual deve ser especificado que as subclasses da especialização devem ser mutuamente exclusivas.

Correta, as restrições podem ser de disjunção (disjoint, overlap) ou de completude (total, parcial).

QUESTÃO ERRADA: Acerca do modelo entidade-relacionamento estendido, assinale a opção correta. O modelo em questão incorpora conceitos de modelagem entidade-relacionamento, herança, encapsulamento e polimorfismo.

Errada, o modelo entidade relacionamento estendido não incorpora encapsulamento e polimorfismo (estas propriedades são pertinentes às linguagens de programação orientadas a objetos); no início do tópico estão listados os conceitos abrangidos.

QUESTÃO ERRADA: Acerca do modelo entidade-relacionamento estendido, assinale a opção correta. A simbologia do referido modelo é a mesma do modelo entidade-relacionamento, não havendo novas representações.

Errada, com a introdução de novos conceitos, houve acréscimo na simbologia.

QUESTÃO ERRADA: Considerando o diagrama ilustrado na figura acima, julgue os itens que se seguem. No diagrama apresentado, o triângulo representa uma generalização/especialização e indica que a entidade Cliente é dividida em dois subconjuntos, as entidades Pessoa física e Pessoa jurídica. No conceito de generalização/especialização, a ideia de dependência de propriedades significa que cada ocorrência da entidade especializada possui, além de suas propriedades, as propriedades da entidade genérica correspondente.

Não é dependência de propriedades, mas herança de propriedades!

Segundo Silberchatz, 2006: Uma propriedade fundamental das entidades de nível superior e inferior criadas pela especialização e generalização é a herança de atributos. Dizemos q os atributos dos conjuntos de entidades de nível superior são herdados pelos conjuntos de entidades de nível inferior.

QUESTÃO CERTA: As entidades pessoa física e pessoa jurídica são exemplos de generalização/especialização, conceito que envolve a ideia de herança de propriedades. Herdar propriedades significa que cada ocorrência da entidade especializada possui, além de suas propriedades (atributos, relacionamentos e generalizações ou especializações), também as propriedades de ocorrência da entidade genérica correspondente.

QUESTÃO CERTA: Sobre herança na programação orientada a objetos, é correto afirmar que: tem como um dos principais objetivos permitir o reaproveitamento de código, já que diversas classes podem herdar métodos públicos centralizados em uma única classe.

QUESTÃO CERTA: Especialização e Generalização definem um relacionamento de contenção entre um conjunto de entidades de nível superior e um ou mais conjuntos de entidades de nível inferior.

QUESTÃO CERTA: No modelo representado no diagrama acima, a implementação de hierarquias de generalização na abordagem relacional pode ser feita usando-se uma tabela para cada entidade ou uma única tabela para toda a hierarquia de generalização/especialização.

Há três maneiras de se implementar a generalização na abordagem relacional:

1° Cria-se uma tabela para todas as entidades (Pessoa, Pessoa física e Pessoa jurídica)

2° Cria-se uma tabela somente para es entidades especializadas (Pessoa física e Pessoa jurídica)

3° Cria-se uma única tabela para toda a hierarquia.