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

Categorias: Banco de Dados

Deixe uma resposta

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

Posts Relacionados

Banco de Dados

Conheça os melhores treinamentos de Banco de dados

Para um bom programador não só conhecer mas dominar a linguagem sql e junto, algum software famoso de gerenciamento de banco, é fundamental. Por isso, preparamos uma lista com quatro ótimos cursos. O primeiro, focado Leia mais…

Banco de Dados

Aprendendo as principais operações da Álgebra Relacional

Neste artigo serão abordados os conceitos básicos de álgebra relacional. Esta que está por trás de consultas relacionadas a bancos de dados relacionais. A linguagem SQL foi criada a partir da álgebra relacional e por Leia mais…

Banco de Dados

Os 8 comandos mais utilizados da linguagem SQL

A SQL ou Structured Query Language (linguagem estruturada para consulta) possui duas linguagens internas: DDL: é a linguagem de definição de dados, utilizada para a criação dos esquemas de bancos de dados. DML: é a Leia mais…