logo

Generalização, Especialização e Agregação no Modelo ER

Usar o modelo ER para dados maiores cria muita complexidade ao projetar um modelo de banco de dados. Portanto, para minimizar a complexidade, a generalização, a especialização e a agregação foram introduzidas no modelo ER. Eles foram usados ​​para abstração de dados. Em que um mecanismo de abstração é utilizado para ocultar detalhes de um conjunto de objetos. 

Generalização

Generalização é o processo de extrair propriedades comuns de um conjunto de entidades e criar a partir dele uma entidade generalizada. É uma abordagem bottom-up na qual duas ou mais entidades podem ser generalizadas para uma entidade de nível superior se tiverem alguns atributos em comum.

Generalização, Especialização e Agregação no Modelo ER' title=Generalização

Exemplo: ESTUDANTE e PROFESSOR podem ser generalizados para uma entidade de nível superior chamada PESSOA, conforme mostrado no diagrama abaixo. Neste caso, atributos comuns como P_NAME e P_ADD tornam-se parte de um nível superior entidade (PESSOA) e especializado atributos como a S_FEE passam a fazer parte de uma entidade especializada (ESTUDANTE). 



Especialização

Na especialização, uma entidade é dividida em subentidades com base nas suas características. É uma abordagem de cima para baixo, onde a entidade de nível superior é especializada em duas ou mais entidades de nível inferior. entidades .

autômatos finitos não determinísticos
Generalização, Especialização e Agregação no Modelo ER' loading='lazy' title=Especialização

Exemplo: uma entidade EMPLOYEE em um sistema de gerenciamento de funcionários pode ser especializada em DEVELOPER TESTER etc. Neste caso, atributos comuns como E_NAME E_SAL etc. tornam-se parte de uma entidade superior (EMPLOYEE) e atributos especializados como TES_TYPE tornam-se parte de uma entidade especializada (TESTER). 

Herança

É uma característica importante de generalização e especialização. Na especialização, uma entidade de nível superior é dividida em subentidades de nível inferior que herdam seus atributos. Na generalização, entidades semelhantes de nível inferior são combinadas em uma entidade de nível superior que possui atributos comuns. Em ambos os casos, a herança permite que subentidades reutilizem as propriedades da entidade pai.

  1. Herança de atributos: Permite que entidades de nível inferior herdem os atributos de entidades de nível superior e vice-versa. No diagrama, a entidade Carro é uma herança da entidade Veículo. Portanto, Carro pode adquirir atributos de Veículo. Exemplo: Carro pode adquirir o atributo Modelo de Veículo.
  2. Herança de relacionamento : as subentidades também herdam relacionamentos da entidade pai.
  3. Substituindo herança : as subentidades podem substituir ou adicionar seus próprios atributos ou comportamentos diferentes do pai.
  4. Herança de participação: A herança de participação na modelagem ER refere-se à herança de restrições de participação de uma entidade de nível superior (superclasse) para uma entidade de nível inferior (subclasse). Ele garante que as subclasses sigam as mesmas regras de participação nos relacionamentos, embora os próprios atributos e relacionamentos sejam herdados de forma diferente.
Generalização, Especialização e Agregação no Modelo ER' loading='lazy' title=Exemplo de relação

Exemplo: No diagrama, a entidade Veículo tem um relacionamento com a entidade Ciclo, mas não adquiriria automaticamente o relacionamento com a entidade Veículo. A herança de participação refere-se apenas à herança de restrições de participação e não aos relacionamentos reais entre entidades.

Agregação

  • Um diagrama ER não é capaz de representar o relacionamento entre uma entidade e um relacionamento que pode ser necessário em alguns cenários.
  • Nesses casos, uma relação com as suas entidades correspondentes é agregada numa entidade de nível superior.
  • Agregação é uma abstração através da qual podemos representar relacionamentos como conjuntos de entidades de nível superior.
Generalização, Especialização e Agregação no Modelo ER' loading='lazy' title=Agregação

Exemplo: um funcionário trabalhando em um projeto pode exigir algumas máquinas. Portanto, o relacionamento REQUIRE é necessário entre o relacionamento WORKS_FOR e a entidade MACHINERY. Usando a agregação o relacionamento WORKS_FOR com suas entidades EMPLOYEE e PROJECT é agregado em uma única entidade e o relacionamento REQUIRE é criado entre a entidade agregada e MACHINERY.

Representando agregação via esquema

Para representar a agregação em um esquema relacional, siga estas etapas:

1. Crie um esquema para o relacionamento agregado

  • Isso será tratado como um conjunto de entidades.
  • Inclui as chaves primárias das entidades participantes do relacionamento base.
  • Também inclui quaisquer atributos descritivos do relacionamento base.

2. Crie um esquema para o relacionamento de nível superior (agregação)

  • Este esquema inclui: A chave primária do esquema de relacionamento agregado.
  • A chave primária da entidade associada à qual se relaciona.
  • Quaisquer atributos descritivos adicionais deste relacionamento de nível superior.