Neste artigo, aprenderemos a identificar entidades e relacionamentos, além dos conceitos de generalização/especialização e entidade associativa.

Para deixarmos o modelo de entidade e relacionamentos mais preciso, é necessário que haja uma forma de distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade. Sendo assim, cada entidade deve possuir um identificador. Há várias formas de identificarmos entidades. Observe o modelo abaixo:

19-06pic7.JPG 

Neste caso, a entidade aluno possui um único identificador (código). Em outras palavras, cada aluno deve possuir um código diferente.

Existem situações onde é necessário mais de um atributo para identificar determinada entidade. Observe:

19-06pic8.JPG 

Imagine uma biblioteca onde os livros ficam armazenados em prateleiras. Estas prateleiras encontram-se organizadas em corredores. Dessa forma, para identificar uma prateleira é necessário conhecer seu número, além do número do corredor correspondente. Observe o modelo abaixo:

19-06pic9.JPG 

Aqui, o identificador da entidade dependente é composto do atributo NÚMERO SEQÜÊNCIA, além do empregado ao qual o dependente está relacionado. Neste caso, estamos diante de um relacionamento identificador. O relacionamento identificador é identificado por uma linha mais densa.

Vimos que o identificador de entidade corresponde a um conjunto de atributos e relacionamentos cujos valores diferenciam cada ocorrência de entidade. No caso de relacionamentos, em geral a identificação ocorre através das ocorrências das entidades que fazem parte dele. Observe o exemplo:

19-06pic10.JPG 

O modelo mostra que para cada par (analista, projeto) há no máximo um relacionamento de alocação.

No entanto, há casos onde pode ser necessário relacionar ocorrências de mesmas entidades mais de uma vez. Por exemplo, em um modelo de consultas médicas, determinado paciente pode realizar consultas mais de uma vez com o mesmo médico. Neste caso, podemos utilizar um atributo identificador no relacionamento (data/hora). 

19-06pic11.JPG

Generalização /Especialização:

No mecanismo de generalização, atributos comuns a entidades de mais baixo nível são representados uma única vez na entidade de mais alto nível. Observe os exemplos. 

19-06pic12.JPG
19-06pic13.JPG

Existem dois tipos de generalização/especialização: Total (representada pela letra T) e Parcial (representada pela letra P):

• na Total, para cada ocorrência da entidade genérica existe sempre ocorrência em uma das entidades especializadas;

• na Parcial, nem toda ocorrência da entidade genérica corresponde a uma entidade especializada.

Entidade associativa:

Em alguns casos, é necessário que associemos uma entidade com a ocorrência de um relacionamento. O modelo de entidades e relacionamentos não permite relacionamentos entre relacionamentos, somente entre entidades. A idéia da entidade associativa é tratar um relacionamento como se ele fosse uma entidade. Observe o modelo abaixo:

19-06pic14.JPG
 

Se desejarmos controlar os medicamentos receitados pelo médico em determinada consulta, temos que relacionar a entidade medicamento com o fato de ter havido uma consulta (relacionamento consulta).

19-06pic15.JPG
 

Como não podemos fazer isso diretamente, indicamos que o relacionamento consulta é uma entidade associativa, através de um retângulo em volta do relacionamento.

19-06pic16.JPG
 

Neste caso, para determinada consulta, pode haver ou não a emissão de medicamentos.

Bibliografia consultada:
Projeto de Banco de Dados
Carlos Alberto Heuser
Editora Sagra Luzzato

Nesta série de três artigos, vimos, de forma resumida, alguns conceitos da área de banco de dados, além dos componentes do modelo de entidade e relacionamento. É necessário que você saiba diferenciar os elementos do modelo de entidade e relacionamento para assim compreender melhor a atividade de mapear corretamente conceitos do mundo real para o diagrama.

Espero ter contribuído para seu aprendizado!!

Até a próxima !

Leia a primeira parte deste artigo em:
//www.devmedia.com.br/visualizacomponente.aspx?comp=1660

Leia a segunda parte deste artigo em:
//www.devmedia.com.br/visualizacomponente.aspx?comp=1871