Você está na página 1de 109

Transformaes entre modelos

Captulo 5

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Transformaes entre modelos


Modelo ER
(conceitual)

Engenharia
reversa de
BD relacional

Ciclo de
re-engenharia
de BD

c
Projeto lgico
de BD relacional

Modelo relacional
(lgico)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Projeto lgico
modelo ER
(nvel conceitual)
Conhecimento
sobre a aplicao

Transformao
ER para
relacional

Refinamento
do modelo
relacional

modelo relacional
(nvel lgico)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Transformao ER para relacional


Regras gerais
Aplicveis maioria dos casos
H situaes
por exigncias da aplicao, outros mapeamentos
so usados

Implementadas em ferramentas CASE

Objetivos bsicos:
Boa performance
Simplificar o desenvolvimento

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Regras gerais de traduo


Evitar junes
Diminuir o nmero de chaves
Evitar campos opcionais

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Juno
Operao para buscar dados de diversas linhas
associadas pela igualdade de campos
Exemplo:
buscar os dados de um empregado e os dados de
seu departamento (duas tabelas diferentes)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Evitar junes
SGBD relacional normalmente armazena os
dados de uma linha contiguamente em disco
Juno envolve diversos acessos a disco
Prefervel
ter os dados necessrios a uma consulta em uma
nica linha

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Chave e ndice
Implementao eficiente do controle de chaves:
SGBD usa um ndice
ndices tendem a ocupar espao considervel em
disco

Insero e remoo de entradas em um ndice


Podem exigir diversos acesso a disco

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Diminuir o nmero de chaves


Usar implementaes com menos chaves
Exemplo
Cliente (CodCliente,Nome,NomeContato,Endereo,Telefone)
ou
Cliente (CodCliente,Nome,NomeContato)
ClienteEnder (CodCliente,Endereo,Telefone)
CodCliente referencia Cliente

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Campos opcionais
Campo opcional = campo que podem assumir o
valor VAZIO (NULL em SQL).
SGBD relacional no desperdia espao pelo fato
de campos de uma linha estarem vazios
Campo opcional no tem influncia na
performance

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

10

Evitar campos opcionais


Controle de campo opcional pode complicar
programao
Verificar quais campos podem estar vazios,
quando isto depende do tipo de linha

Regra mais "fraca" que as precedentes

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

11

Exerccio 5.1
Considere as seguintes alternativas de implementao de um
banco de dados relacional:
Alternativa 1:
Aluno (CodAl,Nome,CodCurso,Endereco)
Alternativa 2
Aluno (CodAl,Nome,CodCurso)
EnderecoAluno (CodAl,Endereco)
CodAl referencia Aluno
Em ambos casos est sendo representado um conjunto de alunos
e informaes (cdigo, nome, cdigo de curso, endereo) a ele
referentes. Discuta luz dos princpios que baseiam as regras de
traduo de diagramas ER para modelo relacional, qual das duas
alternativas prefervel.

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

12

Passos da transformao
ER para relacional
Traduo inicial de entidades e respectivos
atributos
Traduo de relacionamentos e respectivos
atributos
Traduo de generalizaes/especializaes

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

13

Implementao inicial de entidades


Cada entidade traduzida para uma tabela
Cada atributo da entidade define uma coluna
desta tabela
Atributos identificadores da entidade
correspondem a chave primria da tabela.
Ttraduo inicial:
Regras que seguem podem fundir tabelas

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

14

Implementao de entidade
exemplo
data de
admisso
data de
nascimento

PESSOA

cdigo
nome
endereo

Pessoa (CodigoPess,Nome,Endereo,DataNasc,DataAdm)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

15

Traduo de entidade
relacionamento identificador
nmero
seqncia

cdigo nome
EMPREGADO

(1,1)

(0,n)

nome

DEPENDENTE

Dependente (CodigoEmp,NoSeq,Nome)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

16

Relacionamento identificador
recurso
cdigo

nmero da
empresa

nome

GRUPO

Grupo (CodGrup,Nome)

(1,1)

Empresa (CodGrup,NoEmpresa,Nome)

(0,n)

Empregado
(CodGrup,NoEmpresa,NoEmpreg,
Nome)
nome

EMPRESA
(1,1)

Dependente
(CodGrup,NoEmpresa,NoEmpreg,NoSeq,
Nome)

(0,n)
nmero do
empregado

EMPREGADO

(1,1)

(0,n)

DEPENDENTE

nome
nmero de
seqncia
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

nome
17

Nomes de colunas
Referenciados freqentemente em programas e
outras formas de texto em computador
Para diminuir o trabalho de programadores
manter os nomes de colunas curtos.

SGBD relacional
nome de uma coluna no pode conter brancos

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

18

Nomes de atributos
e nomes de colunas
No transcrever os nomes de atributos para
nomes de colunas.
Nomes de atributos compostos de diversas
palavras devem ser abreviados
Nomes de colunas no necessitam conter o
nome da tabela
Prefervel usar o nome de coluna Nome a usar os
nomes de coluna NomePess ou NomePessoa
SQL j exige muitas vezes forma
Pessoa.Nome
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

19

Nome da coluna chave primria


Chave primria
pode aparecer em outras tabelas na forma de
chave estrangeira

Recomendvel
nomes das colunas que compem a chave
primria
sufixados ou prefixados com o nome ou sigla da
tabela na qual aparecem como chave primria

Exemplo
CodigoPess

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

20

Implementao de relacionamento
alternativas
Tabela prpria
Adio de colunas a uma das tabelas
Fuso de tabelas
Alternativa depende da cardinalidade (mxima e
mnima do relacionamento)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

21

Tabela prpria
ENGENHEIRO
Cdigo Nome

(0,n)

ATUAO
Funo

(0,n)

PROJETO

Cdigo Ttulo

Engenheiro (CodEng,Nome)
Projeto (CodProj,Ttulo)
Atuao (CodEng,CopProj,Funo)
CodEng referencia Engenheiro
CodProj referencia Projeto
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

22

Adio de colunas
DEPARTAMENTO

Cdigo

Nome

(1,1)

LOTAO

Data lotao

(0,n)

EMPREGADO

Cdigo

Nome

Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,CodDept,DataLota)
CodDept referencia Departamento

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

23

Fuso de tabelas
CONFERNCIA
Cdigo Nome

(1,1)

ORGANIZAO

(1,1)

Data Instalao

COMISSO
Ender

Conferncia (CodConf,Nome,DataInstComOrg,EnderComOrg)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

24

Implementao de relacionamentos 1:1

Tipo de relacionamento

Regra de implementao
Tabela
Adio Fuso
prpria
coluna tabelas
4
5

(0,1)

(0,1)

(0,1)

(1,1)

(1,1)

(1,1)

Pode ser usada


4Alternativa preferida
5 No usar

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

25

1:1 - ambas entidades opcionais


exemplo

HOMEM

Identidade Nome

(0,1)

CASAMENTO

Data

Regime

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

(0,1)

MULHER

Identidade Nome

26

1:1 - ambas opcionais


adio de colunas
HOMEM

Identidade Nome

(0,1)

CASAMENTO

Data

Regime

(0,1)

MULHER

Identidade Nome

Mulher (IdentM,Nome,IdentH,Data,Regime)
IdentH referencia Homem
Homem (IdentH,Nome)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

27

1:1 - ambas opcionais


tabela prpria
HOMEM

(0,1)

Identidade Nome

CASAMENTO

Data

(0,1)

Regime

MULHER

Identidade Nome

Mulher (IdentM,Nome)
Homem (IdentH,Nome)
Casamento (IdentM,IdentH,Data,Regime)
IdentM referencia Mulher
IdentH referencia Homem
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

28

1:1 - ambas opcionais


fuso de tabelas
HOMEM

Identidade Nome

(0,1)

CASAMENTO

Data

Regime

(0,1)

MULHER

Identidade Nome

Casamento (IdentM,IdentH,Data,Regime,NomeH,NomeM)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

29

1:1 - ambas opcionais


discusso
Soluo por fuso de tabelas invivel
Chave primria artificial

Soluo por adio de colunas melhor


Menor nmero de junes
Menor nmero de chaves

Soluo por tabela prpria aceitvel

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

30

1:1 - Uma entidade opcional


outra obrigatria

CORRENTISTA
Cdigo

(1,1)

Nome

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

(0,1)

CARTO
MAGNTICO

Cdigo Data Exp.

31

1:1 - opcional/obrigatria
fuso de tabelas
CORRENTISTA
Cdigo

(1,1)

Nome

(0,1)

CARTO
MAGNTICO

Cdigo Data Exp.

Correntista (CodCorrent,Nome,CodCarto,DataExp)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

32

1:1 - opcional/obrigatria
adio de colunas
CORRENTISTA
Cdigo

(1,1)

Nome

(0,1)

CARTO
MAGNTICO

Cdigo Data Exp.

Correntista (CodCorrent,Nome)
Carto(CodCarto,DataExp,CodCorrent)
CodCorrent referencia Correntista

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

33

1:1 - opcional/obrigatria
tabela prpria
CORRENTISTA
Cdigo

(1,1)

Nome

(0,1)

CARTO
MAGNTICO

Cdigo Data Exp.

Correntista (CodCorrent,Nome)
Carto(CodCarto,DataExp)
CartoCorrentista(CodCarto,CodCorrent)
CodCorrent referencia Correntista
CodCarto referencia Carto

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

34

1:1 - opcional/obrigatria
discusso
Soluo por tabela prpria pior que a soluo
por adio de colunas
Maior nmero de junes
Maior nmero de ndices
Nenhum tm problema de campos opcionais

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

35

1:1 - opcional/obrigatria
discusso
Adio de colunas versus fuso de tabelas
Fuso de tabelas melhor em termos de nmero
de junes e nmero de chaves
Adico de colunas em melhor em termos de
campos opcionais
Fuso de tabelas considerada a melhor e adio
de colunas aceitvel

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

36

1:1 - Ambas entidades tem


participao obrigatria

CONFERNCIA
Cdigo Nome

(1,1)

ORGANIZAO

(1,1)

Data Instalao

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

COMISSO
Ender

37

1:1 - ambas obrigatrias


fuso de tabelas
CONFERNCIA
Cdigo Nome

(1,1)

ORGANIZAO

(1,1)

Data Instalao

COMISSO
Ender

Conferncia (CodConf,Nome,DataInstComOrg,EnderComOrg)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

38

1:1 - Ambas obrigatrias


Nenhuma das demais alternativas atende
plenamente
Em ambas
Entidades que participam do relacionamento
seriam representadas atravs de duas tabelas
distintas
Estas tabelas teriam a mesma chave primria e
relao um-para-um entre suas linhas
Maior nmero de junes
Maior nmero de chaves primrias

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

39

Relacionamentos 1:n

Tipo de relacionamento

Regra de implementao
Tabela
Adio Fuso
prpria
coluna tabelas
4
5

(0,1)

(0,n)

(0,1)

(1,n)

(1,1)

(0,n)

(1,1)

(1,n)

Pode ser usada


4Alternativa preferida
5 No usar
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

40

1:n - caso 1
A entidade que tem cardinalidade mxima 1
obrigatria
DEPARTAMENTO

Cdigo

Nome

(1,1)

LOTAO

Data lotao

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

(0,n)

EMPREGADO

Cdigo

Nome

41

1:n - caso 1
adio de colunas
DEPARTAMENTO

Cdigo

Nome

(1,1)

LOTAO

Data lotao

(0,n)

EMPREGADO

Cdigo

Nome

Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,CodDept,DataLota)
CodDept referencia Departamento

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

42

1:n - caso 1
tabela prpria
DEPARTAMENTO

Cdigo

Nome

(1,1)

LOTAO

Data lotao

(0,n)

EMPREGADO

Cdigo

Nome

Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,
Lotacao(CodEmp,CodDept,DataLota)
CodDept referencia Departamento
CodEmp referencia Empregado

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

43

1:n - caso 1
discusso
Fuso de tabelas
No se aplica
Implicaria em
redundncia de dados de departamento, ou
tabela aninhada

Adio de colunas melhor que tabela prpria


Menor nmero de chaves
Menor nmero de junes
No h o problema de campos opcionais

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

44

1:n - caso 2
A entidade que tem cardinalidade mxima 1
opcional
n de parcelas
FINANCEIRA
Cdigo Nome

(0,1)

FINACIAM

(0,n)

taxa de juros

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

VENDA
Id

Data

45

1:n - caso 2
adio de colunas
n de parcelas
FINANCEIRA
Cdigo

Nome

(0,1)

FINACIAM

(0,n)

taxa de juros

VENDA
Id

Data

Financeira (CodFin,Nome)
Venda (IdVend,Data,CodFin,NoParc,TxJuros)
CodFin referencia Financeira

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

46

1:n - caso 2
tabela prpria
n de parcelas
FINANCEIRA
Cdigo

Nome

(0,1)

FINACIAM

(0,n)

taxa de juros

VENDA
Id

Data

Financeira (CodFin,Nome)
Venda (IdVend,Data)
Fianciam (IdVend,CodFin,NoParc,TxJuros)
IdVend referencia Venda
CodFin referencia Financeira
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

47

1:n - caso 2
discusso
Implementao por tabela prpria tambm
aceitvel
melhor em relao a campos opcionais
Perde em relao a junes e nmero de chaves

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

48

Relacionamentos n:n

Tipo de relacionamento

Regra de implementao
Tabela
Adio Fuso
prpria
coluna tabelas
4
5
5

(0,n)

(0,n)

(0,n)

(1,n)

(1,n)

(1,n)

4Alternativa preferida

5 No usar

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

49

Relacionamentos n:n
ENGENHEIRO
Cdigo Nome

(0,n)

ATUAO
Funo

(0,n)

PROJETO

Cdigo Ttulo

Engenheiro (CodEng,Nome)
Projeto (CodProj,Ttulo)
Atuao (CodEng,CodProj,Funo)
CodEng referencia Engenheiro
CodProj referencia Projeto
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

50

Relacionamento grau > dois


CIDADE
nome
cdigo

DISTRIBUIDOR

(0,n)

(0,1)

nome
cdigo

DISTRIBUIO
data de
incio

(0,n)

PRODUTO

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

cdigo
nome

51

Relacionamento grau>2
No so definidas regras especficas
O relacionamento transformado em uma entidade
So aplicadas regras de implementao
relacionamentos binrios

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

52

Relacionamento grau>2
CIDADE

DISTRIBUIDOR
(1,1)

nome
cdigo

(1,1)
nome
cdigo

(0,n) (0,n)
DISTRIBUIO
data de
incio

(0,n)
(1,1)
PRODUTO

cdigo
nome

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

53

Relacionamento grau>2

Produto (CodProd,Nome)
Cidade (CodCid,Nome)
Distribuidor (CodDistr,Nome)
Distribuio (CodProd,CodDistr,CodCid,DataInicio)
CodProd referencia Produto
CodDistr referencia Distribuidor
CodCid referencia Cidade

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

54

Implementao de
generalizao/especializao
Duas alternativas bsicas
uso de uma tabela para cada entidade
uso de uma nica tabela para toda hierarquia

Outra alternativa (extica)


Subdiviso de entidade genrica

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

55

Generalizao/especializao
exemplo

tipo de
empregado
nome
CIC

(0,n)

EMPREGADO
cdigo

(1,1)
LOTAO

DEPARTAMENTO
nome

cdigo

CREA
SECRETRIA
(1,n)

MOTORISTA
carteira de
habilitao

ENGENHEIRO

DOMNIO
(0,n)
PROCESSADOR
DE TEXTOS
cdigo nome

(0,n)

(0,n)

PARTICIPAO
(1,1)
RAMO DA
ENGENHARIA
cdigo

nome

(0,n)
PROJETO
cdigo nome

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

56

Uma tabela por hierarquia


Todas tabelas referentes s especializaes so fundidas
em uma nica tabela
Tabela contm:
Chave primria correspondente ao identificador da entidade
mais genrico
Caso no exista, adicionar uma coluna Tipo
Uma coluna para cada atributo da entidade genrica
Colunas referentes aos relacionamentos dos quais participa a
entidade genrica e que sejam implementados atravs da
alternativa de adicionar colunas tabela da entidade genrica

segue

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

57

Uma tabela por hierarquia


Tabela contm (continuao):
Uma coluna para cada atributo de cada entidade especializada
(opcional)
Colunas referentes aos relacionamentos dos quais participa
cada entidade especializada e que sejam implementados
atravs da alternativa de adicionar colunas tabela da
entidade (campo opcional)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

58

Uma tabela por hierarquia


Emp (CdigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CdigoRamo)
CdigoDept referencia Depto
CdigoRamo referencia Ramo
Depto (CdigoDept, Nome)
Ramo (CdigoRamo,Nome)
ProcessTexto (CdigoProc,Nome)
Domnio (CdigoEmp,CdigoProc)
CdigoEmp referencia Emp
CdigoProc referencia ProcessTexto
Projeto (CdigoProj,Nome)
Participao (CdigoEmp,CodigoProj)
CdigoEmp referencia Emp
CdigoProj referencia Projeto
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

59

Uma tabela por entidade especializada


Criar uma tabela para cada entidade que compe
a hierarquia
Incluir a chave primria da tabela correspondente
entidade genrica., em cada tabela
correspondente a uma entidade especializada

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

60

Emp (CdigoEmp,Tipo,Nome,CIC,CdigoDept)
CdigoDept referencia Depto
Motorista(CdigoEmp,CartHabil)
CdigoEmp referencia Emp
Engenheiro(CdigoEmp,CREA,CdigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Depto (CdigoDept, Nome)
Ramo (CdigoRamo,Nome)
ProcessTexto (CdigoProc,Nome)
Domnio (CdigoEmp,CdigoProc)
CdigoEmp referencia Emp
Cdigo Proc referencia ProcessTexto
Projeto (CdigoProj,Nome)
Participao (CdigoEmp,CdigoProj)
CdigoEmp referencia Emp
CdigoProj referencia Projeto

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Uma tabela
por entidade
especializada

61

Vantagens da implementao
com tabela nica
Dados referentes entidade genrica + dados
referentes s especializaes
em uma nica linha

Minimiza junes
Menor nmero de chaves

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

62

Vantagens da implementao com


uma tabela por entidade especializada
Colunas opcionais
apenas aquelas referentes a atributos que podem
ser vazios do ponto de vista da aplicao.

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

63

Subdiviso da entidade genrica


Uma tabela para cada entidade especializada que
no possua outra especializao (entidade folha
da rvore)
Tabela contm
dados da entidade especializada +
dados da entidade genrica

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

64

Subdiviso da entidade genrica


EmpOutros (CdigoEmp,Tipo,Nome,CIC,CdigoDept)
CdigoDept referencia Depto
Motorista(CdigoEmp, Nome,CIC,CdigoDept,CartHabil)
Engenheiro(CdigoEmp, Nome,CIC,CdigoDept, CREA,CdigoRamo)
CdigoRamo referencia Ramo
Depto (CdigoDept, Nome)
Ramo (CdigoRamo,Nome)
ProcessTexto (CdigoProc,Nome)
Domnio (CdigoEmp,CdigoProc)
Cdigo Proc referencia ProcessTexto
Projeto (CdigoProj,Nome)
Participao (CdigoEmp,CdigoProj)
CdigoProj referencia Projeto
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

65

Subdiviso da entidade genrica

Desvantagem:
Unicidade da chave primria
no garantida pelo SGBD
deve ser garantida pela aplicao

No h como especificar ao SGBD restries de


integridade referenciais, que faam referncia ao
conjunto de empregados como um todo

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

66

Refinamento do modelo relacional


Projeto (engenharia) em geral
compromisso entre o ideal e o realizvel dentro
das restries de recursos impostas pelas prtica

Projeto de banco de dados


compromisso entre o
ideal (regras de implementao)
eo
alcanvel frente a limitaes de performance

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

67

Refinamento do modelo relacional


Algumas vezes
esquema de BD criado atravs do uso das regras
acima no atende requisitos de performance
impostos ao sistema

Necessrio buscar alternativa que resulte em


melhor performance do sistema
Alternativas somente devem ser tentadas em
ltimo caso
Do ponto de vista da programao so sempre
piores

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

68

Refinamento do modelo relacional


Relacionamentos mutuamente exclusivos
Simulao de atributos multivalorados
Informaes redundantes

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

69

Relacionamentos
mutuamente exclusivos
CIC

nome

PESSOA
FSICA

(0,1)

(0,n)

data
VENDA

(0,n)

(0,1)
PESSOA
JURDICA
CGC
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

razo
social
70

Relacionamentos
mutuamente exclusivos
Implementao pelas regras
PessFis(CIC,Nome)
PessJur(CGC,RazSoc)
Venda(No,data,CIC,CGC)
CIC referencia PessFis
CGC referencia PessJur

colunas CIC e CGC em Venda so especificadas


como opcionais

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

71

Relacionamentos
mutuamente exclusivos
Implementao alternativa
criar uma nica coluna na qual aparece o CIC ou o
CGC do comprador
PessFis(CIC,Nome)
PessJur(CGC,RazSoc)
Venda(No,data,CIC/CGC,TipoCompr)

Desvantagem
No possvel especificar ao SGBD que o campo
CIC/CGC chave estrangeira
no referencia uma nica tabela
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

72

Tratamento de
atributos multivalorados
nome

cdigo

CLIENTE
nome

cdigo
(1,1)

CLIENTE
nmero de
telefone (0,n)

(0,n)
TELEFONE
nmero

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

73

Atributos multivalorados
implementao padro

Cliente (CodCli,Nome)
Telefone (CodCli,Nmero)
CodCli referencia Cliente

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

74

Atributos multivalorados
alternativa
Condies de contorno:
Raros clientes possuem mais que dois telefones.
Quando isso ocorrer
suficiente armazenarmos apenas dois nmeros.

No h consultas ao banco de dados usando o


nmero de telefone como critrio de seleo
Nmeros de telefone so apenas exibidos ou
impressos juntos s demais informaes de
cliente

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

75

Simulao de atributos multivalorados


Implementao desnormalizada
Cliente (CodCli,Nome,NumTel1,NumTel2)

Simular uma coluna multi-valorada atravs da


criao de diversas colunas NumTel sufixadas
por um nmero

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

76

Simulao de atributos multivalorados


Permite que os telefones de um cliente sejam
obtidos mais rapidamente
Implica em menos espao ocupado
no necessria chave primria da tabela Telefone

Inconveniente
Consulta usando o nmero de telefone como
critrio de busca torna-se mais complicada
Manter os telefones "alinhados esquerda" exige
rotina complexa

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

77

Informaes redundantes
Exemplo:
atributos que resultam de uma operao que
envolve diversas entidades do banco de dados
valor destes atributos
deve ser obtido com freqncia ou
serve freqentemente como critrio de busca de
informaes no banco de dados

Pode ser mais eficiente (performance global do


sistema)
armazenar redundantemente o atributo derivado

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

78

Informaes redundantes
Exemplo
roteiro
nmero
de
reservas

cdigo

VO
(1,1)
(0,n)

passageiro
RESERVA
nmero

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

79

Exerccio 5.2
DER
FABRICANTE

(0,n)

(1,1)

PRODUTO
t

MEDICAMENTO

PERFUMARIA

(0,n)

(0,n)

(1,n)
(0,n)
RECEITA
MDICA

(0,1)

VENDA

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

80

Exerccio 5.2
atributos
Produto (Nmero, NomeComercial, TipoEmbalagem,
Quantidade, PreoUnitrio)
Fabricante (CGC,Nome,Endereo)
Medicamento(Tarja,Frmula)
Perfumaria(Tipo)
Venda(Data,NmeroNota,NomeCliente,CidadeCliente)
PerfumariaVenda(Quantidade,Imposto)
MedicamentoReceitaVenda(Quantidade,Imposto)
ReceitaMdica(CRM,Nmero,Data)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

81

Exerccio 5.2
soluo
Produto (CGC, NmeroProd, NomeComercial, TipoEmbalagem,
Quantidade, PreoUnitrio, TipoProd, Tarja,Frmula, Tipo)
CGC referencia Fabricante
Fabricante (CGC,Nome,Endereo)
Venda(Data,NmeroNota,NomeCliente,CidadeCliente)
PerfumariaVenda(CGC, NmeroProd, NmeroNota,Quantidade,Imposto)
(CGC,NmeroProd) referencia Produto
NmeroNota referencia Venda
MedicamentoVenda(CGC, NmeroProd, NmeroNota,
Quantidade,Imposto, CRM, Nmero)
(CGC,NmeroProd) referencia Produto
NmeroNota referencia Venda
(CRM, Nmero) referencia ReceitaMdica
ReceitaMdica(CRM,Nmero,Data)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

82

Exerccio 5.3
DER

ESCRITRIO
(1,1)

(0,n)
CONTRATO
ALUGUEL

(0,n)

(1,1)

VECULO
(0,n)

(1,n)

(1,1)
TIPO DE
VECULO

(1,1)
CLIENTE
AUTOMVEL

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

(0,n)
similaridade
(0,n)

NIBUS

83

Exerccio 5.3
atributos
Escritrio (Nmero, Local)
Cliente (NmeroCartMotorista, EstadoCartMotorista,
Nome, Endereo, Telefone)
Contrato aluguel (Nmero, Data, Durao)
Veculo (Nmero, DataPrximaManuteno, Placa)
Tipo de Veculo (Cdigo, Nome, ArCondicionado)
Automvel (NmeroPortas, DireoHidrulica, CmbioAutomtico, Rdio)
nibus (NmeroPassageiros, Leito, Sanitrio)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

84

Exerccio 5.3
soluo

Escritrio (NmeroEscr, Local)


Contrato aluguel (NmeroEscr, NmeroContr, Data, Durao,
NmeroVeic, NmeroCarMotorista, EstadoCarMotorista)
NmeroEscr referencia Escritrio
NmeroVeic referencia Veculo
Cliente (NmeroCartMotorista, EstadoCartMotorista, Nome, Endereo, Telefone)
Veculo (Nmero, DataPrximaManuteno, Placa, CdigoTipo)
CdigoTipo referencia TipoVeiculo
TipoVeculo (CdigoTipo, Nome, ArCondicionado)
Similaridade (CdigoTipo, CdigoTipoSimilar)
CdigoTipo referencia TipoVeculo
CdigoTipoSimilar referencia TipoVeculo
Automvel (CdigoTipo, NmeroPortas, DireoHidrulica,
CmbioAutomtico, Rdio)
CdigoTipo referencia TipoVeculo
nibus (CdigoTipo, NmeroPassageiros, Leito, Sanitrio)
CdigoTipo referencia TipoVeculo
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

85

Engenharia reversa
de modelos relacionais
Engenharia reversa
parte de modelo de implementao
obtm modelo de especificao (modelo
conceitual)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

86

Engenharia reversa
Modelo ER
(conceitual)

Engenharia
reversa de
BD relacional

Projeto lgico
de BD relacional

Modelo relacional
(lgico)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

87

Engenharia reversa de modelo


relacional
Passos:
Identificao da construo ER correspondente a
cada tabela
Definio de relacionamentos 1:n e 1:1
Definio de atributos
Definio de identificadores de entidades e
relacionamentos

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

88

Esquema relacional
para engenharia reversa
Disciplina (CodDisc,NomeDisc)
Curso (CodCr,NomeCr)
Curric (CodCr,CodDisc,Obr/Opc)
CodCr referencia Curso
CodDisc referencia Disciplina
Sala (CodPr,CodSl,Capacidade)
CodPr referencia Prdio
Prdio (CodPr,Endereo)
Turma (Anosem,CodDisc,SiglaTur,Capacidade,CodPr,CodSl)
CodDisc referencia Disciplina
(CodPr,CodSl) referencia Sala
Laboratrio ( CodPr,CodSl, Equipam)
(CodPr,CodSl) referencia Sala
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

89

Identificao da construo ER
correspondente a cada tabela
Uma tabela pode corresponder a:
uma entidade
um relacionamento n:n
uma entidade especializada

Fator determinante
composio de sua chave primria

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

90

Tipos de tabelas para


identificao de construo ER
Composio da

Construo ER

chave primria

correspondente

Mltiplas chaves

Relacionamento n:n

estrangeiras
Toda chave primria

Especializao

uma chave estrangeira


Demais casos

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

Entidade

91

Construes identificadas
Disciplina (CodDisc,NomeDisc) entidade
Curso (CodCr,NomeCr) entidade
Curric (CodCr,CodDisc,Obr/Opc) relacionamento n:n
CodCr referencia Curso
CodDisc referencia Disciplina
Sala (CodPr,CodSl,Capacidade) entidade
CodPr referencia Prdio
Prdio (CodPr,Endereo) entidade
Turma (Anosem,CodDisc,SiglaTur,Capacidade,CodPr,CodSl) entidade
CodDisc referencia Disciplina
(CodPr,CodSl) referencia Sala
Laboratrio ( CodPr,CodSl, Equipam) especializao
(CodPr,CodSl) referencia Sala
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

92

Construes identificadas
DISCIPLINA

TURMA

n
CURRCULO
n
CURSO

SALA

PRDIO

LABORATRIO

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

93

Identificao de
relacionamentos 1:n ou 1:1
Chave estrangeira que no se enquadra nas
regras acima
representa
relacionamento 1:n
ou
relacionamento 1:1

Esquema no informa se 1:1 ou 1:n

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

94

Identificao de
relacionamentos 1:n ou 1:1
Disciplina (CodDisc,NomeDisc)
Curso (CodCr,NomeCr)
Chaves estrangeiras
Curric (CodCr,CodDisc,Obr/Opc)
por tratar indicadas
CodCr referencia Curso
em vermelho
CodDisc referencia Disciplina
Sala (CodPr,CodSl,Capacidade)
CodPr referencia Prdio
Prdio (CodPr,Endereo)
Turma (Anosem,CodDisc,SiglaTur,Capacidade,CodPr,CodSl)
CodDisc referencia Disciplina
(CodPr,CodSl) referencia Sala
Laboratrio ( CodPr,CodSl, Equipam)
(CodPr,CodSl) referencia Sala
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

95

Identificao de
relacionamentos 1:n ou 1:1
TURMA
n

DISCIPLINA
n
CURRCULO
n

CURSO

SALA
n

1
PRDIO

LABORATRIO

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

96

Definio de atributos
Cada coluna no chave estrangeira
um atributo na entidade/relacionamento
correspondente tabela

As colunas chave estrangeira no correspondem


a atributos
correspondem a relacionamentos
j foram tratadas nas etapas anteriores

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

97

capacidade sigla

ano/sem

TURMA
n

nome
n

DISCIPLINA

1
cdigo

Definio
de
atributos

CURRCULO

obrig/opc
SALA

cdigo

n
capacidade

CURSO

n
cdigo

nome

1
PRDIO
cdigo endereo

LABORATRIO
equipamento

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

98

Definio de
identificadores de entidades
Coluna da chave primria que no chave
estrangeira
corresponde a um atributo identificador da
entidade ou relacionamento.

Coluna da chave primria que chave


estrangeira
corresponde a um relacionamento identificador da
entidade

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

99

capacidade sigla

ano/sem

TURMA
n

nome
n

DISCIPLINA

n
CURRCULO

obrig/opc

1
cdigo

SALA

cdigo

Definio de
identificadores
de entidades

capacidade

CURSO

n
cdigo

nome

1
PRDIO
cdigo endereo

LABORATRIO
equipamento

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

100

Exerccio
Produto (CodigoTipoProd,NumeroProd,DescricaoProd,PreoProd)
5.4
CodigoTipoProd referencia TipoProd

Similaridade (CodigoTipoProd,NumeroProd,
CodigoTipoProdSim,NumeroProdSim)
(CodigoTipoProd,NumeroProd) referencia Produto
(CodigoTipoProdsim,NumeroProdSim) referencia Produto
TipoProd (CodigoTipoProd,DescricaoTipoProd)
Venda (NmeroNF,DataVenda,CodReg,CodEmp)
(CodigoReg) referencia Registradora
(CodEmo) referencia Empregado
ItemVenda (NmeroNF,CodigoTipoProd,NumeroProd, QtdeItem,PreoItem)
(NmeroNF) referencia Venda
(CodigoTipoProd,NumeroProd) referencia Produto
Registradora (CodReg, SaldoReg)
Empregado (CodEmp, NomeEmp, SenhaEmp)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

101

TIPO DE
PRODUTO

Exerccio 5.4
passo 1
PRODUTO
n

SIMILAR

ITEM
VENDA
n
VENDA

EMPREGADO

REGISTRADORA
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

102

TIPO DE
PRODUTO

Exerccio 5.4
passo 2

(1,1)

n
PRODUTO
n

SIMILAR

ITEM
VENDA
n
VENDA

EMPREGADO

1
REGISTRADORA
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

103

TIPO DE
PRODUTO

Exerccio 5.4
DER final

(1,1)

n
PRODUTO
n

SIMILAR

ITEM
VENDA
n
VENDA

EMPREGADO

1
REGISTRADORA
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

104

Exerccio 5.4
atributos
Produto (NumeroProd,DescricaoProd,PreoProd)
TipoProd (CodigoTipoProd,DescricaoTipoProd)
Venda (NmeroNF,DataVenda)
ItemVenda (QtdeItem,PreoItem)
Registradora (CodReg, SaldoReg)
Empregado (CodEmp, NomeEmp, SenhaEmp)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

105

Exerccio 5.5
Pessoa (PessID, PessNome, NascLocID, DataNasc, FalecLocID,
DataFalec, ProfID, FilhoCasamID, Sexo)
NascLocID referencia Local
FalecLocID referencia Local
ProfID referencia Profiss
FilhoCasamID referencia Casam
Local (LocID,Cidade,Pas)
Profiss (ProfID,ProfNome)
Casam (CasamID, MaridoPessID, EsposaPessID,
DataCasam, CasamLocID)
MaridoPessID referencia Pessoa
EsposaPessID referencia Pessoa
CasamLocID referencia Local
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

106

Exerccio 5.5
passo 1
PROFISSO

LOCAL

PESSOA

CASAMENTO
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

107

Exerccio 5.5
passo 2
PROFISSO
1

NASCIM
PESSOA

LOCAL
1

FALECIM
MARIDO

1
ESPOSA

FILHO
1

CASAMENTO
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

108

Exerccio 5.5
atributos

Pessoa (PessID, PessNome, DataNasc, DataFalec, Sexo)


Local (LocID, Cidade, Pas)
Profisso (ProfID, ProfNome)
Casamento (CasamID, DataCasam)

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

109