Académique Documents
Professionnel Documents
Culture Documents
Captulo 5
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
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
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
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
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
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
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
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
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
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)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
25
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
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
(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
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
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
30
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
31
1:1 - opcional/obrigatria
fuso de tabelas
CORRENTISTA
Cdigo
(1,1)
Nome
(0,1)
CARTO
MAGNTICO
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
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
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
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)
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
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)
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
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
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
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
segue
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
57
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
58
59
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
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
63
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
64
65
Desvantagem:
Unicidade da chave primria
no garantida pelo SGBD
deve ser garantida pela aplicao
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
66
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
67
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
68
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
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.
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
75
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
76
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
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
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
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
Construo ER
chave primria
correspondente
Mltiplas chaves
Relacionamento n:n
estrangeiras
Toda chave primria
Especializao
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
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
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.
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
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
109