DB2 - Banco de dados - Generalização e Especialização - www.cadcobol.com.br



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

Generalização e Especialização

Introdução

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 um 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, 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.



    © Copyright Professor Fernando De Siqueira - Banco de Dados I