Mapeamento MER - MR
- Migrando uma entidade regular E para uma relação R
Se a entidade do Modelo Entidade-Relacionamento for um tipo de entidade forte, o processo é bastante simples: criamos um relação contendo todos os atributos de .
Se tiver vários atributos chave (ou seja, vários atributos atômicos classificados como atributo chave), escolhemos um deles como chave primária de . Se tiver um atributo chave composto, ou seja, formado por vários atributos atômicos, esse conjunto de atributos formará a chave primária de .
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.
- Mapeando uma entidade fraca
Sendo um tipo de entidade fraca e a sua entidade proprietária, executamos a seguinte operação: criamos uma relação , que representará o tipo de entidade . Em seguida, criamos uma outra relação, , que representará o tipo de entidade fraca .
deve incorporar, como chave estrangeira, a chave primária de . A chave primária de , por sua vez, será formada pela combinação entre a chave estrangeira (de ) e a chave parcial de ).
- Mapeando relacionamentos 1:1
O mapeamento de relacionamentos com cardinalidade tem três possibilidades.
- Chave estrangeira: se o relacionamento envolve duas relações, e , inclua em a chave primária de . Para o papel de , 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 .
- 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 , que contém os atributos de ambos os tipos de entidade. - Relação de referência cruzada: neste caso, criamos uma relação para representar os relacionamentos entre e . é chamada de relação de relacionamento (ou tabela de pesquisa). A relação terá chaves estrangeiras para e . A chave primária de será uma das chaves estrangeiras. A outra chave estrangeira será usada como chave única, para evitar repetições do par.
- Relacionamento 1:N
Aqui o processo é bastante simples: se um relacionamento envolve os tipos de entidade e , com cardinalidade respectiva de , e esses tipos de entidade são mapeados para relações e , então deve conter uma chave estrangeira de . Em outras palavras: o lado sempre recebe a chave do lado .
Nos casos que a participação de é 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 , que contém chaves estrangeiras para e . A chave primária de deve ser composta pela chave de , ou seja, o lado . Essa estrutura garante que cada elemento do lado se relacione com no máximo um do lado , preservando a cardinalidade . Note, porém, que isso implicará em maior complexidade na recuperação dos dados.
- Relacionamento N:M
Aqui, inevitavelmente, precisamos criar uma relação de relacionamento , que terá chaves estrangeiras para e . Os atributos do relacionamento também serão incorporados à . A chave-primária será uma chave composta pelas chaves estrangeiras de e .
- Atributos multivalorados.
Se uma relação possuir atributos multivalorados, deve-se criar uma relação para cada atributo, cada uma contendo os valores possíveis para o atributo equivalente. Na relação , deve ser inserida uma chave estrangeira para .
- Mapeamento de relacionamentos n-ários
Se um relacionamento envolver mais de duas entidades, cria-se uma relação com chaves estrangeiras para cada uma das relações que participam desse relacionamento. Em geral, a chave primária de será composta, formada pelas chaves estrangeiras das demais relações.
Caso a cardinalidade de alguma relação (SR$.