Modelos de dados

Mapeamento MER - MR

  1. Migrando uma entidade regular E para uma relação R

Se a entidade EE do Modelo Entidade-Relacionamento for um tipo de entidade forte, o processo é bastante simples: criamos um relação RR contendo todos os atributos de EE.

Se EE tiver vários atributos chave (ou seja, vários atributos atômicos classificados como atributo chave), escolhemos um deles como chave primária de RR. Se EE tiver um atributo chave composto, ou seja, formado por vários atributos atômicos, esse conjunto de atributos formará a chave primária de RR.

Note que, no Modelo Entidade-Relacionamento, uma entidade pode ter vários atributos chave. Agora, no Modelo Relacional, escolhemos apenas uma chave primária (mesmo que ela seja composta). Elmasri e Navathe (2011) mencionam que, mesmo com o processo de escolha, informações sobre as demais chaves tendem a ser mantidas para fins de indexação.

  1. Mapeando uma entidade fraca

Sendo FF um tipo de entidade fraca e EE a sua entidade proprietária, executamos a seguinte operação: criamos uma relação RR, que representará o tipo de entidade EE. Em seguida, criamos uma outra relação, SS, que representará o tipo de entidade fraca FF.

SS deve incorporar, como chave estrangeira, a chave primária de RR. A chave primária de SS, por sua vez, será formada pela combinação entre a chave estrangeira (de RR) e a chave parcial de SS).

  1. Mapeando relacionamentos 1:1

O mapeamento de relacionamentos com cardinalidade 1:11:1 tem três possibilidades.

  • Chave estrangeira: se o relacionamento envolve duas relações, RR e SS, inclua em RR a chave primária de SS. Para o papel de RR, priorize a relação que, enquanto tipo de entidade, possuía participação total no relacionamento. Se o relacionamento possuía atributos, estes devem ser transferidos para RR.
  • Mesclagem: quando o relacionamento entre dois tipos de entidade tiver cardinalidade 1:1 e participação total de ambos os tipos, cria-se apenas uma relação RR, que contém os atributos de ambos os tipos de entidade.
  • Relação de referência cruzada: neste caso, criamos uma relação TT para representar os relacionamentos entre RR e SS. TT é chamada de relação de relacionamento (ou tabela de pesquisa). A relação TT terá chaves estrangeiras para RR e SS. A chave primária de TT será uma das chaves estrangeiras. A outra chave estrangeira será usada como chave única, para evitar repetições do par.
  1. Relacionamento 1:N

Aqui o processo é bastante simples: se um relacionamento envolve os tipos de entidade EE e FF, com cardinalidade respectiva de 1:N1:N, e esses tipos de entidade são mapeados para relações RR e SS, então SS deve conter uma chave estrangeira de RR. Em outras palavras: o lado NN sempre recebe a chave do lado 11.

Nos casos que a participação de EE é parcial, o campo pode receber o valor NULL. Para minimizarmos a existência de valores NULL em uma relação, podemos usar outra estratégia: criar uma relação TT, que contém chaves estrangeiras para RR e SS. A chave primária de TT deve ser composta pela chave de SS, ou seja, o lado NN. Essa estrutura garante que cada elemento do lado NN se relacione com no máximo um do lado 11, preservando a cardinalidade 1:N1:N. Note, porém, que isso implicará em maior complexidade na recuperação dos dados.

  1. Relacionamento N:M

Aqui, inevitavelmente, precisamos criar uma relação de relacionamento TT, que terá chaves estrangeiras para RR e SS. Os atributos do relacionamento também serão incorporados à TT. A chave-primária será uma chave composta pelas chaves estrangeiras de RR e SS.

  1. Atributos multivalorados.

Se uma relação RR possuir atributos multivalorados, deve-se criar uma relação SS para cada atributo, cada uma contendo os valores possíveis para o atributo equivalente. Na relação RR, deve ser inserida uma chave estrangeira para SS.

  1. Mapeamento de relacionamentos n-ários

Se um relacionamento envolver mais de duas entidades, cria-se uma relação RR com chaves estrangeiras para cada uma das relações que participam desse relacionamento. Em geral, a chave primária de RR será composta, formada pelas chaves estrangeiras das demais relações.

Caso a cardinalidade de alguma relação (S)norelacionamentoseja1,achaveestrangeiradeS) no relacionamento seja 1, a chave estrangeira de Sdeixadeintegrarachaveprimaˊriadedeixa de integrar a chave primária deR$.