Mapeamento MER - MR
1. 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), chamaremos esses atributos de "chaves candidatas". Isso ocorre porque escolheremos 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.
Vejamos um exemplo:
O tipo de entidade forte ALUNO possui os seguintes atributos: cpf, rga, nome e email. Desses, cpf e rga são atributos-chave no Modelo Entidade-Relacionamento. Escolheremos um deles para ser a chave primária da relação ALUNO, criada a partir do tipo de entidade de mesmo nome.
| cpf (PK 🔑) | rga | nome | |
|---|---|---|---|
| 123 | 2022101010 | Fulano da Silva | fulano@ufmt.br |
| 456 | 2022101011 | Beltrano Oliveira | beltrano@ufmt.br |
| 789 | 2022101012 | Cicrano Alves | cicrano@ufmt.br |
2. 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 ).
Vejamos um exemplo:
Considere um diagrama entidade-relacionamento com dois tipos de entidade: FUNCIONÁRIO (forte) e DEPENDENTE (fraca). Há um relacionamento de identificação entre FUNCIONÁRIO e DEPENDENTE, que envolve uma participação total de DEPENDENTE.
3. 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 . Além disso, a chave estrangeira em deve possuir restrição de unicidade (UNIQUE), de modo a garantir a cardinalidade 1:1 e impedir ocorrências múltiplas associadas ao mesmo elemento de .
- Mesclagem: quando o relacionamento entre dois tipos de entidade tiver cardinalidade
1:1e 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.
4. 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 em que a participação da entidade (que representa o lado ) é parcial, o campo da chave estrangeira pode receber o valor nulo. Para minimizarmos a existência de valores nulos 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á maior complexidade na recuperação dos dados.
5. 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 .
6. 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 . A chave primária de será composta pelo atributo que representa o conteúdo do atributo multivalorado mais a chave estrangeira de .
7. 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 () no relacionamento seja 1, a chave estrangeira de deixa de integrar a chave primária de .