Space Programmer.Com

Depois de criado o modelo Conceitual, o próximo passo é a criação do modelo lógico. Existe um processo conhecido como mapeamento que nos auxilia na passagem do modelo conceitual para o modelo lógico relacional de dados. Os conceitos servem para mapear, ou seja, mudar as representações do modelo de Entidade e Relacionamento para representações equivalentes no modelo relacional.

Regras gerais para mapeamentos de entidades

  1. Toda entidade vira uma relação.
  2. Atributo identificador se torna chave primária na relação.
  3. Atributos simples se tornam colunas (campos).
  4. Atributos compostos tornam-se atributos simples, mapeados em colunas, uma coluna para cada atributo.
  5. Atributos derivados não são mapeados.
  6. Atributos multi-valorados podem ser mapeados de duas formas:
    1. Como n colunas, onde n é o número máximo de valores do atributo.
    2. Criando-se uma nova relação

1° Exemplo (Atributo identificador e atributo composto):

Seguindo as regras, o mapeamento do exemplo acima fica assim:

► Cliente (cpf, nome, rua, bairro, cidade, estado)

O atributo identificador cpf, virou a chave primária na relação; o atributo composto endereco foi mapeado de maneira que os seus componentes se tornaram campos na relação, mas o atributo mais abstrato endereço não foi mapeado.

2° Exemplo (Atributo multi-valorado):

1° opção:

► Pessoa (identidade, nome, peso)

► Telefone (identidade, numero)

Nessa primeira alternativa, o atributo multi-valorado telefone foi mapeado em uma nova relação, que recebe a chave primária de pessoa identidade e o numero que é o número de telefone. A chave primária dessa nova relação Telefone, é uma chave composta, formada pela junção de identidade e numero.

2° opção:

► Pessoa (identidade, nome, peso, tel1, tel2, tel3)

Nessa segunda alternativa foram criados três campos na relação pessoa para receber os valores correspondentes a três telefones. Essa alternativa é adequada quando se estabelece um número fixo da quantidade de números de atributos. No entanto, quando não se sabe esse número, a 1° opção se torna mais adequada.

Mapeamento de entidades Fracas:

No exemplo acima, linha mais grossa que liga Dependente representa que Dependente é uma entidade fraca, ou seja, não existe se Sócio não existir. O seu mapeamento para o modelo lógico relacional de dados fica assim:

► Socio (id, nome, idade)

► Dependente (idSocio, codigo, nome)

A chave primária da relação Dependente é composta da chave primária de Socio mais a chave primaria de Dependente, que nesse caso é o codigo. Portanto, a chave primaria de entidades fracas será sempre chave composta.

Mapeando relacionamentos

Para determinar o tipo de relacionamento em relação a cardinalidade, observa-se os máximos da mesma. Veja o link a seguir com mais detalhes para compreender o conceito de cardinalidade/multiplicidade.

Relacionamentos binários 1:1

► Moto (placa, cor, modelo)

► Motor (codigo, tipo, placaMoto)

Em um relacionamento 1:1, de acordo com os passos acima, escolhe-se uma das relações para receber a chave estrangeira, essa que é a chave primária da relação que ocorre o relacionamento. Obs: Não é regra, mas geralmente, nesses casos, escolhe-se a relação que possui participação total no relacionamento. Nesse exemplo é o motor, pois é (1,1), ou seja irá sempre existir, enquanto moto (0,1) pode ou não existir.

Relacionamentos binários 1:N

► Pessoa (cpf, nome, idade)

► Moto (placa, modelo, cpfPessoa, data, preco)

Em um relacionamento 1:N, escolhe-se a relação “N” (no caso Moto) e inclui como chave estrangeira a chave primária da outra relação. Inclui também os atributos do relacionamento.

Relacionamentos binários N:N

► Funcionario (id, remuneracao, nome)

► Projeto (codigo, nome)

► Trabalha (idFuncionario, codigoProjeto, cargaHoraria)

Em um relacionamento N:N, cria-se uma nova relação e inclui como chave estrangeira, as chaves primarias das relações em que ocorre o relacionamento. A chave primaria dessa nova relação (no caso Trabalha) será uma chave composta. Por fim, carrega também os atributos do relacionamento.

Relacionamento n-ário

► Fornecedor (codigo, nome)

► Produto (codigo, nome)

► Salao (endereco, nome)

► Fornecimento (codigoFornecedor, codigoProduto, enderecoSalao, data, quantidade)

Auto-relacionamento

► Pessoa (cpf, nome, idade, idConjuge)

Generalização / especialização

► Atendente (id, nome, idioma)

► Tecnico (id, nome, curso)

► Analista (id, nome, tipo)

Neste post foram vistos os conceitos necessários para se fazer o correto mapeamento dos diagramas do modelo conceitual para as relações do modelo lógico relacional.

Se teve dúvida em alguns dos conceitos abordados veja o post anterior, que introduz os conceitos de chave primaria, estrangeira e outros: spaceprogrammer.com/bd/introducao-ao-modelo-logico-relacional


2 comentários

Joaquim Manhica · 05/11/2019 às 01:36

Valeu pela explicacao!
vai me ajudadar muito no teste…

Ifafe · 16/04/2020 às 18:49

Foi ótimo. Obrigado!

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Cupom 10% OFF
Experimente o criador de sites com inteligência artificial da Hostinger
SPACEPROGRAMMER10
Cupom 10% OFF
Experimente o criador de sites com inteligência artificial da Hostinger
SPACEPROGRAMMER10