Unidade C - Modelo Lógico

6.3 Transformar um Modelo Conceitual em Modelo Relacional (modelo lógico)

O esquema de um Banco de dados relacional (modelo lógico) deve ter no mínimo as relações que formam o Banco, os atributos que as relações possuem e as restrições do modelo.

1º REGRA - TRANSFORMAR ENTIDADE REGULAR EM UM RELAÇÃO

Imagem

PARA CADA TIPO DE ENTIDADE REGULAR TRANSFORMAR EM UMA RELAÇÃO QUE INCLUA TODOS OS ATRIBUTOS SIMPLES

Em relação ao exemplo acima vamos fazer o primeiro regra para transformação, que é transformar toda entidade regular em uma relação que inclua todos os atributos simples, trata-se de uma tradução inicial que na seqüência poderá ser fundida com outra entidade.

Para representar o modelo lógico vamos utilizar as mesmas notações utilizadas na bibliografia do HEUSER que será explicado neste primeiro exemplo:

Pessoa (Codigo, Sexo, Nome)

Com isso a entidade PESSOA é transformada em uma tabela PESSOA e cada atributo da entidade é transformado em uma coluna da tabela sendo que o atributo chave primária será identificado com um sublinhado.

2º REGRA – TRANSFORMAR UMA ENTIDADE FRACA

Imagem

PARA CADA TIPO DE ENTIDADE FRACA TRANSFORMAR EM UMA RELAÇÃO QUE INCLUA TODOS OS ATRIBUTOS SIMPLES E MAIS A CHAVE PRIMÁRIA DA ENTIDADE DEPENDENTE. AMBAS PASSAM A SER A CHAVE PRIMÁRIA COMPOSTA DA RELAÇÃO DEPENDENTE.

Dependente(Numero, Codigo, Data_Nascimento, Nome)
 

3º REGRA – TRANSFORMAR RELACIONAMENTOS BINÁRIOS 1:1

Imagem

Quando temos este tipo de relação, há algumas opções para a transformação:

1º Opção: Escolher uma das tabelas e inserir nela como chave estrangeira a chave primária do outra tabela.

No nosso exemplo acima, temos a relação entre uma entidade pessoa e departamento.

Desta forma estamos apenas transformando as entidade regulares em tabelas:
Pessoa(Codigo, Nome, Sexo)
Departamento(Numero, Nome)

O próximo passo é analisar a relação existente. Como o relacionamento é binário 1:1 vamos usar a 1º opção e inserir em uma das entidades a chave primária da outra. É melhor escolher, entre as duas entidades, aquela com participação total, ou seja, a entidade de departamento que preve a obrigatoriedade de ter um gerente. Ainda na entidade escolhida para receber a chave estrangeria também inserimos os atributos do relacionamento.

Pessoa(Codigo, Nome, Sexo)
Departamento(Numero, Codigo, Nome, Data_Inicio)
Codigo referencia Pessoa

Observação da notação

Para representar a chave estrangeira, após a definição da relação que contém chave estrangeira descrevemos:
<nome da coluna ch. Estrangeira> referencia <nome da relação>

2º Opção: Nesta opção, pode-se fazer uma fusão entre as entidades participantes. Normalmente ocorre quando as duas entidades têm participação total, ou seja, a cardinalidade mínima nas duas entidades é 1.

Imagem

CongressoEquipe(Codigo, Nome, NomeEquipe, Data)

Neste exemplo, fizemos a fusão das duas entidades em uma única relação incluindo os atributos das duas entidades e do relacionamento. No exemplo acima tivemos que alterar o nome da equipe para NomeEquipe já que o atributo de congresso também estava identificado por Nome.

 

Nos exemplos estamos colocando como nome de coluna os nomes dos atributos. Para os exercícios é importante
que criemos uma nomenclatura para esta conversão. Por exemplo:
Codigo = Cod
Numero = No

A recomendação é que se use sempre a mesma abreviatura em todas as relações do Banco de Dados.

Imagem

Imagem

Tabela Proposta por: HEUSER, Carlos Alberto. Projeto de Banco de Dados. Porto Alegre: Sagra Luzato, 1999.

 

4º REGRA – TRANSFORMAR RELACIONAMENTOS BINÁRIOS 1:N

Para cada tipo de relacionamento Binário 1:N identificar a entidade participante do lado N e inserir como chave estrangeira a chave primária do outra entidade. Isso é feito porque cada instância de entidade do lado N está relacionada a no máximo uma instância do lado 1.

Imagem

Pessoa (Codigo,Nome, Sexo, Numero)
Numero referencia Departamento
Departamento(Numero, Nome)

No exemplo acima, inserimos a chave primária de departamento como chave estrangeira na relação Pessoa.

Imagem

Legenda

Tabela Proposta por: HEUSER, Carlos Alberto. Projeto de Banco de Dados. Porto Alegre: Sagra Luzato, 1999.

5º REGRA – TRANSFORMAR RELACIONAMENTOS BINÁRIOS N:M

Neste caso, para cada tipo de relacionamento cria-se uma tabela nova. Inserir como chave estrangeira as chaves primárias das duas tabelas que fazem parte e as duas chaves irão representar a chave primária da nova tabela.

Também devemos incluir todo tipo de atributo que tiver na relação entre as entidades.

Imagem

Pessoa(Codigo, Nome, Sexo)
Projeto(Numero, Nome)
Trabalha(Codigo, Numero, horas)
Código referencia Pessoa
Numero referencia Projeto

O Diagrama acima gerou 3 relações, uma para entidade pessoa outra para entidade projeto e outra para a relação trabalha.

A relação trabalha ficou composta de duas chaves primárias, código da entidade Pessoa e Numero da entidade Projeto. E ainda faz parte desta relação o atributo horas do relacionamento trabalha.

Imagem

6º REGRA – TRANSFORMAR RELACIONAMENTOS N-ário:

Para transformar relacionamentos n-ários deve seguir os seguir os seguintes passos:

  1. Transformar o relacionamento em uma entidade e esta entidade fica ligado através de um relacionamento binário com 1. as outras entidades.
  2. Aplicar as regras para os relacionamentos binários.2. Exemplo:

Imagem

Imagem

Seguindo os passos para a transformação acima, temos o seguinte modelo relacional:

Produto(CodProd, Nome)
Cidade(CodCid, Nome)
Distribuidor(CodDistr, Nome)
Distribuição(CodProd, CodCid,CodDistr, DataInicio)
CodProd referencia Produto
CodCid Referencia Cidade
CodDistr Referencia Distribuidor

7º REGRA – TRANSFORMAR GENERALIÇÕES / ESPECIALIZAÇÕES

Existem duas opções no caso de Generalização / Especialização:

1º) Utilizar uma tabela para cada entidade
2º) Utilizar uma tabela para toda Generalização / Especialização

Imagem

1º caso – Uma relação para cada entidade

Acrescentar à chave primária da tabela correspondente a entidade genérica, em cada tabela correspondente a uma entidade especializada.

Carro (Placa, Ano, Modelo, Marca)
Placa referencia Veiculo
Caminhao(Placa, Capacidade, Marca)
Placa referencia Veiculo

2º caso – Fusão em um única relação

Veiculo (Placa, Ano, Modelo, MarcaCarro, Capacidade, MarcaCaminhao)

No exemplo de modelo relacional acima temos a chave primária Placa que foi derivada da entidade Generalizada e todos os atributos das entidades especializadas se tornaram colunas na tabela.