2.7 Entidade genérica e especializada
A generalização ou especialização de uma entidade é um conceito e também uma técnica valiosa. Veja uma demonstração prática:
Figura 22 - Especialização e generalização
Para simplificar o entendimento, vamos inserir a Figura 22 em um contexto fictício:
A empresa fictícia TI na Rede possui uma base de dados de cadastro de clientes. Cada um de seus inestimáveis clientes possui uma Conta nessa empresa, e eles são divididos em dois grupos: Pessoa Física e Pessoa Jurídica. Além de compartilhar alguns atributos, cada grupo pode possuir dezenas de outros atributos próprios – isso é o que justifica a especialização.
Analisando o texto acima conseguimos identificar que a entidade Conta é uma entidade genérica, enquanto as entidades Pessoa Física e Pessoa Jurídica são entidades especializadas. O que isso significa? Que a entidade Pessoa Física é uma Conta, porém é uma Conta muito específica: além de ter atributos herdados como é o caso do atributo Saldo, possui atributos próprios como CPF e Nome. O mesmo entendimento se aplica à entidade Pessoa Jurídica.
Esse é um conceito que por muitas vezes pode passar batido, porém, se prestarmos atenção e conseguirmos de forma eficiente definir nosso modelo de dados, de forma a implementar ao pé da letra o conceito de generalização e especialização, teremos como resultado um banco de dados eficiente, fácil de ser compreendido e passível de algum tipo de implementação posterior sem dores de cabeça.
Considerando a Figura 22, no lugar da palavra tipo — destacada de vermelho — poderemos ter a representação de uma das seguintes letras: C, P, T e X, respectivamente representando as especializações do tipo Compartilhada, Parcial, Total ou Exclusiva.
Compartilhada
Indica que uma ocorrência da entidade genérica poderá se relacionar ao mesmo tempo com ocorrências de várias entidades especializadas.
Parcial
Indica que uma ocorrência da entidade genérica nem sempre irá se relacionar com ocorrências das entidades especializadas, ou seja, as ocorrências da entidade genérica poderão opcionalmente se relacionar com alguma entidade especializada.
Total
Indica que nenhum registro poderá ser uma simples entidade genérica, ou seja, cada ocorrência da entidade genérica precisa obrigatoriamente se relacionar com alguma entidade especializada.
Exclusiva
Indica que as ocorrências da entidade genérica irão se relacionar exclusivamente com no máximo uma entidade especializada.
Obviamente, essas especializações serão utilizadas conforme a necessidade de cada caso.
Para o cenário da Figura 22, você saberia informar qual tipo de especialização melhor se encaixa?
Se você escolheu a especialização exclusiva, parabenizo você por sua opção!
Vamos analisar cada especialização no contexto da Figura 22 para entender o motivo pelo qual a especialização exclusiva é a mais adequada para esse caso:
Especialização compartilhada: Uma conta poderá ser ao mesmo tempo uma conta pessoa física e jurídica.
Especialização parcial: Uma conta poderá ser somente uma conta, ou opcionalmente poderá ser uma conta pessoa física ou jurídica.
Especialização total: Uma conta precisa obrigatoriamente ser uma conta pessoa física e jurídica.
Especialização exclusiva: Uma conta precisa ser exclusivamente uma conta pessoa física ou jurídica. Para o meu cenário, essa é a especialização perfeita.
Se não prestarmos atenção ao cenário, fica muito fácil cair em erro ao tentar determinar uma especialização; os conceitos se aproximam bastante e chegam a ser uma “pegadinha” para mentes desatentas. Se ficou alguma dúvida, releia este tópico.
Mas calma! Se mesmo após uma releitura tudo continuar obscuro, não desanime. Com o tempo, o conceito fica mais claro e a prática leva quase à perfeição.