Você está na página 1de 43

BANCO DE DADOS

Transformação de Conceitual para Relacional


Revisando....
◦ MER (Modelo Entidade Relacionamento)

◦ Entidades
◦ Relacionamentos
◦ Atributos
ETAPAS DO DESENVOLVIMENTO DE UM BD

◦ Especificação e Análise de Requisitos


◦ Os requisitos são documentados
◦ Projeto Conceitual
◦ Baseado nos requisitos
◦ Projeto Lógico
◦ Expresso em um modelo de dados, como o relacional
◦ Projeto Físico
◦ Especificações para armazenar e acessar o banco de dados
◦ Implementação do BD, inserção de dados reais e manutenção
TAREFAS PARA MODELAGEM
◦ Identificar os tipos de entidade

◦ Identificar atributos

◦ Identificar relacionamentos

◦ Criar e associar chaves

◦ Normalizar para reduzir redundância

◦ Desnormalizar para aumentar performance


MODELO/ESQUEMA CONCEITUAL
Usuários
Finais

▪ Descreve estrutura do Banco de Dados Visão Externa 1 Visão Externa 2 Visão Externa 2

◦ entidades, tipos de dados, relações, requisitos requisitos requisitos

restrições etc.
Modelo Conceitual

esquema conceitual

▪ Independente de implementação em Independente de SGBD


Modelo Lógico
SGBD Dependente de SGBD
esquema lógico
◦ oculta detalhes de armazenamento físico
Modelo Físico

esquema físico

Banco de Dados
MODELO/ESQUEMA LÓGICO
Usuários
Finais

▪ Dependente de um SGBD Visão Externa 1 Visão Externa 2 Visão Externa n

particular requisitos requisitos requisitos

▪ Associado a um “modelo de
Modelo Conceitual

esquema conceitual
dados de implementação”
Independente de SGBD
(Elmasri, 2005) Dependente de SGBD
Modelo Lógico

esquema lógico

Modelo Físico

esquema físico

Banco de Dados
MAPEAMENTO Visão Externa 1 Visão Externa 2 Visão Externa n

requisitos requisitos requisitos

Modelo Conceitual

esquema conceitual

Independente de SGBD
Modelo Lógico
Dependente de SGBD

esquema lógico

Modelo Físico

esquema físico

Banco de Dados
MAPEAMENTO
Modelo Lógico
◦ Mapeamento de um Modelo Conceitual (DER) para um Modelo
Lógico (Relacional)
◦ Tabelas
◦ Chaves
◦ Chave primária
◦ Chave estrangeira
◦ Regras de montagem do esquema de tabelas
Modelo Lógico - Mapeamento
◦ Todos os dados de um banco de dados relacional são
armazenados em relações (tabelas).
Modelo Lógico - Mapeamento
◦ Exemplo: PESSOA
◦ Na abordagem relacional, cada linha representa dados de
ocorrência de entidade
Modelo Lógico - Mapeamento
◦ Tabela

◦ Conjunto não ordenado de linhas (tuplas)


(
◦ Cada linha é composta por uma série de campos (valor
( do atributo)
◦ Cada campo é identificado por nome de campo (nome
( do
atributo)
◦ O conjunto de campos das linhas de uma tabela que possuem o
mesmo nome formam uma coluna
Modelo Lógico - Mapeamento
◦ Tabela
Modelo Lógico - Mapeamento
◦ Chave primária
◦ É uma coluna ou uma combinação de colunas cujos valores
distinguem uma linha das demais dentro de uma tabela
Modelo Lógico - Mapeamento
◦ Chave estrangeira
◦ É uma coluna ou uma combinação de colunas cujos valores
aparecem necessariamente na chave primária de uma tabela
Transformação entre Modelos
◦ Regra 1: Entidades Fortes
◦ Regra 2: Entidades Fracas
◦ Regra 3: Relacionamentos 1:1
◦ Regra 4: Relacionamentos 1:N
◦ Regra 5: Relacionamentos M:N
◦ Regra 6: Atributos Multivalorados
◦ Regra 7: Relacionamentos N-ários
ários
◦ Regra 8: Generalização/Especialização
Regra 1:: entidades fortes
1. Para cada entidade forte do MER, cria-se uma
tabela.
 Cada atributo da entidade define uma coluna da tabela. Os
atributos identificadores da entidade correspondem às colunas
que compõem a chave primária da tabela.
tabela
 O nome da tabela pode ser o próprio nome da entidade;
 Não inclua o atributo composto;
Regra 1:: entidades fortes
2. Escolha uma chave primária

 Se a chave da entidade possuir dois ou mais atributos, então a


tabela deverá ter duas ou mais colunas como chave primária;
primária

se as colunas da tabela que são chaves primárias para


Sublinha-se
diferenciá-las
las de colunas que não são chaves primárias.

CHAVE PRIMÁRIA:: é uma coluna ou uma combinação de colunas cujos


valores distinguem um linha das demais dentro de uma tabela.
Regra 1:: entidades fortes
EMPREGADO código
nome
CPF
endereço

Empregado (cd_Empr, nm_Empr,


nm_Empr nr_Cpf_Empr, ds_Ender_Empr)
Regra 2:: entidades fracas
1. Para cada entidade fraca do DER,
DER cria-se uma tabela e
incluem-se
se todos atributos da entidade como atributos da tabela.
 Incluem-se
se também como chave estrangeira a chave primária da
tabela proprietária.

2. Incluem-se apenas os atributos mais simples de cada um dos


atributos compostos da entidade como colunas da tabela.
 Os atributos COMPOSTOS não são incluídos.
Regra 2:: entidades fracas
3. Esta entidade fraca depende de uma entidade forte.
 Pega-se
se as chaves primárias da entidade forte e exporta-se
exporta como colunas
da tabela da entidade fraca, surgindo o conceito de chave estrangeira.

CHAVE ESTRANGEIRA: é um atributo que estabelece a relação da tabela A


coma chave primária da tabela B, permitindo uma relação entre A e B
Regra 2:: entidades fracas
(1, 1) (0, n)
FUNCIONÁRIO possui DEPENDENTE sexo

nome nome
código código

Funcionário (cd_Funcion, nome_Funcion)


nome_Funcion
Dependente (cd_Funcion,cd_Depend
cd_Depend, nome_Depend, ds_Sexo)
cod_Funcion referencia Funcionário
Regra 3:: relacionamentos 1:1
Abordagem 1
1. Para relacionamentos 1:1 identificam-se
identificam as tabelas que participam do
relacionamento. Escolhe-se
se uma das tabelas e inclui-se
inclui como chave
estrangeira à chave primária da outra tabela.
tabela

(0, 1) (0, 1)
HOMEM CASAMENTO MULHER

nome data regime nome


CI CI

Homem (nr_CI_Homem, nm_Homem))


Mulher (nr_CI_Mulher,nm_Mulher,nr_CI_Homem
nr_CI_Homem, dt_Casam, R g_Casam)
nr_CI_Homem referencia Homem
Regra 3:: relacionamentos 1:1
Abordagem 2
1. Nesta abordagem gera-se
se uma tabela própria para o
relacionamento ou pode-se
se usar o relacionamento como um atributo
de uma das entidades (exemplo 1 e 2 )
(0, 1) (0, 1)
HOMEM CASAMENTO MULHER

nome data regime nome


CI CI

Homem (nr_CI_Homem, nm_Homem))


Mulher (nr_CI_Mulher, nm_Mulher)
Casamento (nr_CI_Homem,nr_CI_Mulher
nr_CI_Mulher,dt_Casam,ds_Rg_Casam)
nr_CI_Homem referencia Homem
nr_CI_Mulher referencia Mulher
Regra 3:: relacionamentos 1:1
Abordagem 2
CI nome Nr_CI_Ho Nr_CI_ Data Regime CI nome
mem Mulher
111 Paulo 111 555 03/02 Parcial 555 Ana
222 Luis 333 666 05/09 Total 666 Sofia
333 João 444 777 05/10 Parcial 777 Julia
444 Carlos 222 888 10/12 total 888 Emilly

Homem (nr_CI_Homem, nm_Homem))


Mulher (nr_CI_Mulher, nm_Mulher)
Casamento (nr_CI_Homem,nr_CI_Mulher
nr_CI_Mulher,dt_Casam,ds_Rg_Casam)
nr_CI_Homem referencia Homem
nr_CI_Mulher referencia Mulher
Regra 3:: relacionamentos 1:1
Abordagem 2
(0, 1) (0, 1)
PESSOA OCUPA COMPUTADOR

nome data hora modelo


código código

PESSOA(Código, Nome)

COMPUTADOR(Código, Modelo, Ocupante, Data, Hora)

PESSOA COMPUTADOR

Código Nome Telefone Código modelo Ocupante Data Hora


1525 Ana 5432-1098 1A Desktop 1637 03/08 10:20
1637 João 9876-5432 2A Notebook (nulo) (nulo) (nulo)
1701 Valeria 8765-4321 1B Netbook (nulo) (nulo) (nulo)
2042 Maria 7654-3210 2B Desktop 2111 03/08 11:45
2111 Paulo 6543-2109
Regra 4:: relacionamentos 1:N
1. Para cada relacionamento binário 1:N no MER, identifique a
entidade participante do lado N da relação.
relação A que fica do
lado N recebe a chave primária da outra tabela e mais os
possíveis atributos do relacionamento
relacionamento.

2. Inclua como CHAVE ESTRANGEIRA na tabela desta entidade a


chave primária da tabela que armazena os valores da
entidade do lado com cardinalidade 1.
 Isso ocorre porque cada registro desta tabela estará relacionado a
no MÁXIMO um registro da tabela que contém o lado 1 da relação.
Regra 4:: relacionamentos 1:N

(0, 1) (0, n) VENDA


FINANCEIRA FINANCIA

nome taxa_juros data


código n° parcelas id

Financeira (cd_Financ, nm_Financ)


Venda (nr_Id_Vend, dt_Vend, cd_Financ,
cd_Financ nr_Parc_Vend, vl_TxJuros)
cd_Financ referencia Financeira
Regra 5:: relacionamentos N:N
1. Para cada relacionamento binários N:N no DER, cria-se uma
nova tabela para representar este relacionamento N:N.
2. As chaves estrangeiras na nova tabela são as chaves
primárias das tabelas participantes, mais os atributos do
relacionamento.
3. A chave primária da nova tabela é combinação das chaves
estrangeiras.
Regra 5:: relacionamentos N:N
(0, n)
ENGENHEIRO (0, n) Atua PROJETO

nome título
código código

Engenheiro (cd_Engenh, nm_Engenh)


nm_Engenh
Projeto (cd_Projeto, ds_Projeto)
ds_Projeto
Atuação (cd_Engenh, cd_Projeto,
cd_Projeto ds_função)
Cd_Engenh referencia Engenheiro
Cd_Projeto referencia Projeto
Regra 6:: atributos multivalorados
1. Para cada atributo multivalorado A de uma entidade, crie
uma NOVA TABELA.
 Esta tabela conterá uma coluna correspondente ao atributo A (atributo
propriamente dito) e mais uma coluna que será uma CHAVE ESTRANGEIRA
 Esta chave estrangeira será proveniente da chave primária da tabela
onde guardamos os registros da entidade.

2. Caso o atributo multivalorado venha de uma relação, o


procedimento é o mesmo.
Regra 6:: atributos multivalorados
PESSOA
Pessoa (cpf,
( nome
Telefone(cpf_Pessoa,
Telefone( telefone)
nome telefone
cpf

CPF Nome Cpf_Pessoa Telefone


111 Ana 111 321321212
222 Paulo 111 456121321
333 Roberto 222 242526271
444 Júlia 333 333231301
Regra 7:: Relacionamentos N-ários
1. Para cada relacionamentoN-ário
ário (ternário, quaternário, etc),
onde N>2, crie uma nova tabela para representar este
relacionamento, como é feito nos relacionamentos N:N

2. Como chaves estrangeiras desta tabela, coloque todas as


chaves primárias de cada entidade participante da relação.
Regra 7:: Relacionamentos N-ários
3. Inclua todos os atributos simples (e demais atributos simples de
cada atributo composto) da relação na tabela.

4. A chave primária desta nova tabela será a combinação de


chaves estrangeiras de cada entidade participante da
relação.
Regra 7:: Relacionamentos N-ários
FORNECEDOR n n PEÇA
FORNECE

nome nome
código n código
PROJETO nome
código

Fornecedor (cd_Fornecedor, nm_Fornecedor)


nm_Fornecedor
Peça (cd_Peça, nm_Peça)
Projeto (cd_Projeto, nm_Projeto)
Fornece (cd_Fornecedor, cd_Peça, cd_Projeto)
cd_Projeto
cd_Fornecedor referencia Fornecedor
cd_Peça referencia Peça
cd_Projeto referencia Projeto
Regra 8: Generalização - Abordagem 1
se na tabela que representa a entidade
1. Inclui-se
genérica um atributo para a categoria da entidade.

2. Cria-se também uma tabela para cada sub-entidade,


tendo como chave primária a chave da classe-base.
classe
Incluem-se
se nestas tabelas os atributos específicos
daquela subclasse.
Regra 8: Generalização - Abordagem 1
CONTA número
saldo

limite CONTA - POUPANÇA


máx_saque CORRENTE taxa_juros

Conta (nr_Conta, vl_Saldo_Conta)

Conta_Corrente (nr_Conta, vl_Limite_Cc,


vl_Limite_Cc vl_Saque_Max_Cc)
nr_Conta referencia Conta
Poupança (nr_Conta, vl_Taxa_Juros_Poup)
vl_Taxa_Juros_Poup
nr_Conta referencia Conta
Regra 8: Generalização – Abordagem 2
1. Criam-se
se apenas as tabelas correspondentes as sub-entidades,
sub
incluindo nestas os atributos da entidade genérica mais os
atributos próprios da entidade.
CONTA número
saldo

limite CONTA - POUPANÇA


máx_saque taxa_juros
CORRENTE

Conta_Corrente (nr_Conta, vl_Saldo_Cc,


vl_Saldo_Cc vl_Limite_Cc,
vl_saque_max_Cc)
vl_saque_max_Cc
Poupança (nr_Conta, vl_Saldo_Poup,
vl_Saldo_Poup vl_Taxa_Juros_Poup)
Domínios e valores vazios
 DOMÍNIO: quando a tabela do banco de dados é definida, para
cada coluna da tabela, deve ser especificado um conjunto de valores
(alfanumérico, numérico,...) que os campos da respectiva coluna
podem assumir.
 Este conjunto de valores é chamado de DOMÍNIO DA COLUNA ou DOMÍNIO DO
CAMPO

 Deve-sese especificar se os campos da coluna podem estar vazios


(“null” em inglês) ou não
Estar vazio indica que o campo não recebeu nenhum valor de seu domínio
Estar
As colunas que são admitidos valores vazios são chamadas de colunas obrigatórias
As
Domínios e valores vazios
 As colunas que podem acessar os campos vazios são
chamadas colunas opcionais
 Normalmente, os SGBD relacional exigem que todas colunas que compõem a
chave primária sejam obrigatórias.
 A mesma exigência não é feita para as demais chaves
Tipos - PostgreSQL
Principais SGBDs
Exercício 1
Mapeie o seguinte ER para
Relacional

nome identificador data

(0,1) (1,1)
Vírus possui Genoma

Você também pode gostar