Você está na página 1de 122

Projeto Lgico

2
Transformaes entre modelos
2
Modelo ER
(conceitual)
Modelo relacional
(lgico)
c
Projeto lgico
de BD relacional
3
Transformaes entre modelos
3
Modelo ER
(conceitual)
Modelo relacional
(lgico)
c
Projeto lgico
de BD relacional
Engenharia
reversa de
BD relacional
4
Transformaes entre modelos
4
Modelo ER
(conceitual)
Modelo relacional
(lgico)
c
Ciclo de
reengenharia
de BD
Projeto lgico
de BD relacional
Engenharia
reversa de
BD relacional
5
Projeto lgico
5
modelo ER
(nvel conceitual)
modelo relacional
(nvel lgico)
Conhecimento
sobre a
aplicao
Transformao
ER para
relacional
6
Projeto lgico
6
modelo ER
(nvel conceitual)
modelo relacional
(nvel lgico)
Conhecimento
sobre a
aplicao
Transformao
ER para
relacional
Refinamento
do modelo
relacional
7
Transformao ER para relacional
Regras gerais:
Aplicveis maioria dos casos;
Implementadas em ferramentas CASE.
H situaes em que:
por exigncias da aplicao, outros mapeamentos so usados.
Objetivos bsicos:
1. Boa performance
2. Simplificao do desenvolvimento
7
8
Princpios por trs das regras de traduo
1. Evitar junes desnecessrias
2. Diminuir o nmero de chaves
3. Evitar campos opcionais
8
9
Juno
9
Juno
Operao para buscar dados de
diversas linhas associadas pela
igualdade de campos
10
Juno
Exemplo:
buscar os dados de um empregado e os dados de seu departamento
(duas tabelas diferentes)
10
Juno
Operao para buscar dados de
diversas linhas associadas pela
igualdade de campos
11
Minimizar 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.
11
12
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 acessos a disco.
12
13
Diminuir o nmero de chaves
Usar implementaes com menos chaves.
Exemplo:
13
Cliente (CodCliente,Nome,NomeContato,Endereo,Telefone)
Cliente (CodCliente,Nome,NomeContato,Endereo,Telefone)
14
Diminuir o nmero de chaves
Usar implementaes com menos chaves.
Exemplo:
ou:
14
Cliente (CodCliente,Nome,NomeContato,Endereo,Telefone)
Cliente (CodCliente,Nome,NomeContato,Endereo,Telefone)
Cliente (CodCliente,Nome,NomeContato)
ClienteEnder (CodCliente,Endereo,Telefone)
CodCliente referencia Cliente
Cliente (CodCliente,Nome,NomeContato)
ClienteEnder (CodCliente,Endereo,Telefone)
CodCliente referencia Cliente
15
Campos opcionais
15
Campo opcional
campo que pode assumir o valor VAZIO
(NULL em SQL).
16
Campos opcionais
SGBD relacional no desperdia espao pelo fato de campos de uma
linha estarem vazios.
Campo opcional no tem influncia no desempenho.
16
Campo opcional
campo que pode assumir o valor VAZIO
(NULL em SQL).
17
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.
17
18
Passos da transformao
ER para relacional
1. Traduo inicial de entidades e respectivos atributos
2. Traduo de relacionamentos e respectivos atributos
3. Traduo de generalizaes/especializaes
18
19
Implementao inicial de entidades
1. Cada entidade traduzida para uma tabela.
2. Cada atributo da entidade define uma coluna desta tabela.
3. Atributos identificadores da entidade correspondem a chave primria
da tabela.
19
20
Implementao inicial de entidades
1. Cada entidade traduzida para uma tabela.
2. Cada atributo da entidade define uma coluna desta tabela.
3. Atributos identificadores da entidade correspondem a chave primria
da tabela.
Traduo inicial:
Passos que seguem podem fundir tabelas.
20
21
Implementao de entidade
exemplo
21
PESSOA
endereo
cdigo
nome
data de
nascimento
data de
admisso
22
Implementao de entidade
exemplo
22
PESSOA
PESSOA
endereo
cdigo
nome
data de
nascimento
data de
admisso
Pessoa (CodigoPess,Nome,Endereo,DataNasc,DataAdm)
Pessoa (CodigoPess,Nome,Endereo,DataNasc,DataAdm)
23
Traduo de entidade
relacionamento identificador
23
EMPREGADO
EMPREGADO
DEPENDENTE
DEPENDENTE
(1,1)
(0,n)
nome
sequncia
cdigo
nmero
nome
24
Traduo de entidade
relacionamento identificador
24
EMPREGADO
EMPREGADO
DEPENDENTE
DEPENDENTE
(1,1)
(0,n)
nome
sequncia
cdigo
nmero
nome
Dependente (CodigoEmp,NoSeq,Nome)
Dependente (CodigoEmp,NoSeq,Nome)
25
Traduo de entidade
relacionamento identificador
25
EMPREGADO
EMPREGADO
DEPENDENTE
DEPENDENTE
(1,1)
(0,n)
nome
sequncia
cdigo
nmero
nome
Dependente (CodigoEmp,NoSeq,Nome)
Dependente (CodigoEmp,NoSeq,Nome)
chave primria da tabela que
corresponde a EMPREGADO
26
Relacionamento identificador
recurso
26
GRUPO
GRUPO
EMPRESA
EMPRESA
(0,n)
EMPREGADO
EMPREGADO
(1,1)
(1,1)
(0,n)
cdigo
nmero da
empresa
nmero do
empregado
DEPENDENTE
DEPENDENTE
(1,1) (0,n)
nome
sequncia
nmero de
nome
nome
nome
27
Relacionamento identificador
recurso
27
Grupo (CodGrup,Nome)
Grupo (CodGrup,Nome)
GRUPO
GRUPO
EMPRESA
EMPRESA
(0,n)
EMPREGADO
EMPREGADO
(1,1)
(1,1)
(0,n)
cdigo
nmero da
empresa
nmero do
empregado
DEPENDENTE
DEPENDENTE
(1,1)
(0,n)
nome
sequncia
nmero de
nome
nome
nome
28
Relacionamento identificador
recurso
28
Empresa (
CodGrup,
NoEmpresa,
Nome)
Empresa (
CodGrup,
NoEmpresa,
Nome)
GRUPO
GRUPO
EMPRESA
EMPRESA
(0,n)
EMPREGADO
EMPREGADO
(1,1)
(1,1)
(0,n)
cdigo
nmero da
empresa
nmero do
empregado
DEPENDENTE
DEPENDENTE
(1,1)
(0,n)
nome
sequncia
nmero de
nome
nome
nome
29
Relacionamento identificador
recurso
29
Empregado(
CodGrup,
NoEmpresa,
NoEmpreg,
Nome)
Empregado(
CodGrup,
NoEmpresa,
NoEmpreg,
Nome)
GRUPO
GRUPO
EMPRESA
EMPRESA
(0,n)
EMPREGADO
EMPREGADO
(1,1)
(1,1)
(0,n)
cdigo
nmero da
empresa
nmero do
empregado
DEPENDENTE
DEPENDENTE
(1,1) (0,n)
nome
sequncia
nmero de
nome
nome
nome
30
Relacionamento identificador
recurso
30
Dependente (
CodGrup,
NoEmpresa,
NoEmpreg,
NoSeq,
Nome)
Dependente (
CodGrup,
NoEmpresa,
NoEmpreg,
NoSeq,
Nome)
GRUPO
GRUPO
EMPRESA
EMPRESA
(0,n)
EMPREGADO
EMPREGADO
(1,1)
(1,1)
(0,n)
cdigo
nmero da
empresa
nmero do
empregado
DEPENDENTE
DEPENDENTE
(1,1)
(0,n)
nome
sequncia
nmero de
nome
nome
nome
31
Nomes de colunas
Referenciados frequentemente 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.
31
32
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 a forma:
Pessoa.Nome
Exceo: chave primria (ver a seguir)
32
33
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
33
34
Implementao de relacionamento alternativas
1. Tabela prpria
2. Adio de colunas a uma das tabelas
3. Fuso de tabelas
34
35
Implementao de relacionamento alternativas
1. Tabela prpria
2. Adio de colunas a uma das tabelas
3. Fuso de tabelas
Alternativa depende da cardinalidade (mxima e mnima do
relacionamento)
35
36
Tabela prpria
36
ENGENHEIRO
ENGENHEIRO
ATUAO
ATUAO
PROJETO
PROJETO
(0,n)
(0,n)
Cdigo Nome Ttulo Funo Cdigo
37
Tabela prpria
37
ENGENHEIRO
ENGENHEIRO
ATUAO
ATUAO
PROJETO
PROJETO
(0,n)
(0,n)
Cdigo Nome Ttulo Funo Cdigo
Engenheiro (CodEng,Nome)
Projeto (CodProj,Ttulo)
Engenheiro (CodEng,Nome)
Projeto (CodProj,Ttulo)
traduo das
entidades
traduo das
entidades
38
Tabela prpria
38
ENGENHEIRO
ENGENHEIRO
ATUAO
ATUAO
PROJETO
PROJETO
(0,n)
(0,n)
Cdigo Nome Ttulo Funo Cdigo
Engenheiro (CodEng,Nome)
Projeto (CodProj,Ttulo)
Atuao (CodEng,CodProj,Funo)
CodEng referencia Engenheiro
CodProj referencia Projeto
Engenheiro (CodEng,Nome)
Projeto (CodProj,Ttulo)
Atuao (CodEng,CodProj,Funo)
CodEng referencia Engenheiro
CodProj referencia Projeto
traduo do
relacionamento
traduo do
relacionamento
39
Adio de colunas
39
DEPARTAMENTO
DEPARTAMENTO
LOTAO
LOTAO
EMPREGADO
EMPREGADO
(1,1)
(0,n)
Cdigo Nome Nome Data lotao Cdigo
40
Adio de colunas
40
DEPARTAMENTO
DEPARTAMENTO
LOTAO
LOTAO
EMPREGADO
EMPREGADO
(1,1)
(0,n)
Cdigo Nome Nome Data lotao Cdigo
Departamento (CodDept,Nome)
Empregado (CodEmp,Nome)
Departamento (CodDept,Nome)
Empregado (CodEmp,Nome)
traduo das
entidades
traduo das
entidades
41
Adio de colunas
41
DEPARTAMENTO
DEPARTAMENTO
LOTAO
LOTAO
EMPREGADO
EMPREGADO
(1,1)
(0,n)
Cdigo Nome Nome Data lotao Cdigo
Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,CodDept,DataLota)
CodDept referencia Departamento
Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,CodDept,DataLota)
CodDept referencia Departamento
traduo do
relacionamento
traduo do
relacionamento
42
Fuso de tabelas
42
CONFERNCIA
CONFERNCIA
ORGANIZAO
ORGANIZAO
COMISSO
ORGANIZADORA
COMISSO
ORGANIZADORA
(1,1)
(1,1)
Cdigo
Nome
Ender
Data Instalao
43
Fuso de tabelas
43
CONFERNCIA
CONFERNCIA
ORGANIZAO
ORGANIZAO
COMISSO
ORGANIZADORA
COMISSO
ORGANIZADORA
(1,1)
(1,1)
Cdigo
Nome
Ender
Data Instalao
Conferncia (CodConf,Nome,DataInstComOrg,EnderComOrg)
Conferncia (CodConf,Nome,DataInstComOrg,EnderComOrg)
44
Implementao de relacionamentos 1:1
44
(1,1) (1,1)
(0,1) (1,1)
(0,1) (0,1)

Conveno:
- alternativa preferida
- pode ser usada 1 opo
- pode ser usada 2 opo
- no cabe
Conveno:
- alternativa preferida
- pode ser usada 1 opo
- pode ser usada 2 opo
- no cabe

45
1:1 ambas entidades opcionais
exemplo
45
HOMEM
HOMEM
CASAMENTO
CASAMENTO
MULHER
MULHER
(0,1)
(0,1)
Identidade
Nome Identidade Data Regime Nome
46
1:1 - ambas opcionais
adio de colunas
46
Mulher (IdentM,Nome)
Homem (IdentH,Nome)
Mulher (IdentM,Nome)
Homem (IdentH,Nome)
HOMEM
HOMEM
CASAMENTO
CASAMENTO
MULHER
MULHER
(0,1)
(0,1)
Identidade
Nome Identidade Data Regime Nome
traduo das
entidades
traduo das
entidades
47
1:1 - ambas opcionais
adio de colunas
47
Mulher (IdentM,Nome,IdentH,Data,Regime)
IdentH referencia Homem
Homem (IdentH,Nome)
Mulher (IdentM,Nome,IdentH,Data,Regime)
IdentH referencia Homem
Homem (IdentH,Nome)
HOMEM
HOMEM
CASAMENTO
CASAMENTO
MULHER
MULHER
(0,1)
(0,1)
Identidade
Nome Identidade
Data
Regime
Nome
traduo do
relacionamento
traduo do
relacionamento
48
1:1 - ambas opcionais
tabela prpria
48
Mulher (IdentM,Nome)
Homem (IdentH,Nome)
Casamento (IdentM,IdentH,Data,Regime)
IdentM referencia Mulher
IdentH referencia Homem
Mulher (IdentM,Nome)
Homem (IdentH,Nome)
Casamento (IdentM,IdentH,Data,Regime)
IdentM referencia Mulher
IdentH referencia Homem
HOMEM
HOMEM
CASAMENTO
CASAMENTO
MULHER
MULHER
(0,1)
(0,1)
Identidade
Nome Identidade Data Regime
Nome
traduo do
relacionamento
traduo do
relacionamento
49
1:1 - ambas opcionais
fuso de tabelas
49
Casamento (IdentH, NomeH, Data,Regime, IdentM,NomeM)
Casamento (IdentH, NomeH, Data,Regime, IdentM,NomeM)
HOMEM
HOMEM
CASAMENTO
CASAMENTO
MULHER
MULHER
(0,1)
(0,1)
Identidade
Nome Identidade
Data
Regime
Nome
qual a chave
primria desta
tabela?
50
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.
50
51
Implementao de relacionamentos 1:1
51
(1,1) (1,1)
(0,1) (1,1)
(0,1) (0,1)

Conveno:
- alternativa preferida
- pode ser usada 1 opo
- pode ser usada 2 opo
- no cabe
Conveno:
- alternativa preferida
- pode ser usada 1 opo
- pode ser usada 2 opo
- no cabe

52
1:1 - uma entidade opcional,
outra obrigatria
52
CORRENTISTA
CORRENTISTA
CARTO
MAGNTICO
CARTO
MAGNTICO
(1,1)
(0,1)
Cdigo Nome
Cdigo Data Exp.
53
1:1 - opcional/obrigatria
fuso de tabelas
53
Correntista (CodCorrent,Nome,CodCarto,DataExp)
Correntista (CodCorrent,Nome,CodCarto,DataExp)
CORRENTISTA
CORRENTISTA
CARTO
MAGNTICO
CARTO
MAGNTICO
(1,1)
(0,1)
Cdigo Nome
Cdigo Data Exp.
54
1:1 - opcional/obrigatria
adio de colunas
54
Correntista (CodCorrent,Nome)
Carto(CodCarto,DataExp)
Correntista (CodCorrent,Nome)
Carto(CodCarto,DataExp)
traduo das
entidades
traduo das
entidades
CORRENTISTA
CORRENTISTA
CARTO
MAGNTICO
CARTO
MAGNTICO
(1,1)
(0,1)
Cdigo Nome
Cdigo Data Exp.
55
1:1 - opcional/obrigatria
adio de colunas
55
Correntista (CodCorrent,Nome)
Carto(CodCarto,DataExp,CodCorrent)
CodCorrent referencia Correntista
Correntista (CodCorrent,Nome)
Carto(CodCarto,DataExp,CodCorrent)
CodCorrent referencia Correntista
CORRENTISTA
CORRENTISTA
CARTO
MAGNTICO
CARTO
MAGNTICO
(1,1)
(0,1)
Cdigo Nome
Cdigo Data Exp.
traduo do
relacionamento
traduo do
relacionamento
56
1:1 - opcional/obrigatria
tabela prpria
56
Correntista (CodCorrent,Nome)
Carto(CodCarto,DataExp)
CartoCorrentista(CodCarto,CodCorrent)
CodCorrent referencia Correntista
CodCarto referencia Carto
Correntista (CodCorrent,Nome)
Carto(CodCarto,DataExp)
CartoCorrentista(CodCarto,CodCorrent)
CodCorrent referencia Correntista
CodCarto referencia Carto
CORRENTISTA
CORRENTISTA
CARTO
MAGNTICO
CARTO
MAGNTICO
(1,1)
(0,1)
Cdigo Nome
Cdigo Data Exp.
traduo do
relacionamento
traduo do
relacionamento
57
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;
Nenhuma tem problema de campos opcionais.
57
58
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 melhor em termos de campos opcionais;
Fuso de tabelas considerada a melhor e adio de colunas
aceitvel.
58
59
Implementao de relacionamentos 1:1
59
(1,1) (1,1)
(0,1) (1,1)
(0,1) (0,1)

Conveno:
- alternativa preferida
- pode ser usada 1 opo
- pode ser usada 2 opo
- no cabe
Conveno:
- alternativa preferida
- pode ser usada 1 opo
- pode ser usada 2 opo
- no cabe

60
1:1 - ambas entidades obrigatrias
60
CONFERNCIA
CONFERNCIA
ORGANIZAO
ORGANIZAO
COMISSO
ORGANIZADORA
COMISSO
ORGANIZADORA
(1,1)
(1,1)
Cdigo
Nome
Ender
Data Instalao
61
1:1 - ambas obrigatrias
fuso de tabelas
61
Conferncia (CodConf,Nome,DataInstComOrg,EnderComOrg)
Conferncia (CodConf,Nome,DataInstComOrg,EnderComOrg)
CONFERNCIA
CONFERNCIA
ORGANIZAO
ORGANIZAO
COMISSO
ORGANIZADORA
COMISSO
ORGANIZADORA
(1,1)
(1,1)
Cdigo
Nome
Ender
Data Instalao
62
1:1 - Ambas obrigatrias
Demais alternativas (adio de colunas, tabela prpria).
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.
62
63
Implementao de relacionamentos 1:1
63
(1,1) (1,1)
(0,1) (1,1)
(0,1) (0,1)

Conveno:
- alternativa preferida
- pode ser usada 1 opo
- pode ser usada 2 opo
- no cabe
Conveno:
- alternativa preferida
- pode ser usada 1 opo
- pode ser usada 2 opo
- no cabe

64
Relacionamentos 1:n
64
(0,1) (_,n)
(1,1) (_,n)
Conveno:
- alternativa preferida
- pode ser usada
- no cabe
Conveno:
- alternativa preferida
- pode ser usada
- no cabe
65
A entidade que tem
cardinalidade mxima
1 opcional
1:n - caso 1
65
FINANCEIRA
FINANCEIRA
FINACIAM
FINACIAM VENDA
VENDA
(0,1)
taxa de juros
(_,n)
n de parcelas
Cdigo Nome
Id
Data
66
1:n - caso 1
adio de colunas
66
Financeira (CodFin,Nome)
Venda (IdVend,Data,CodFin,NoParc,TxJuros)
CodFin referencia Financeira
Financeira (CodFin,Nome)
Venda (IdVend,Data,CodFin,NoParc,TxJuros)
CodFin referencia Financeira
FINANCEIRA
FINANCEIRA
FINACIAM
FINACIAM VENDA
VENDA
(0,1)
taxa de juros
(_,n)
n de parcelas
Cdigo Nome
Id
Data
traduo do
relacionamento
traduo do
relacionamento
67
1:n - caso 1
tabela prpria
67
Financeira (CodFin,Nome)
Venda (IdVend,Data)
Fianciam (IdVend,CodFin,NoParc,TxJuros)
IdVend referencia Venda
CodFin referencia Financeira
Financeira (CodFin,Nome)
Venda (IdVend,Data)
Fianciam (IdVend,CodFin,NoParc,TxJuros)
IdVend referencia Venda
CodFin referencia Financeira
FINANCEIRA
FINANCEIRA
FINACIAM
FINACIAM VENDA
VENDA
(0,1)
taxa de juros
(_,n)
n de parcelas
Cdigo Nome
Id
Data
traduo do
relacionamento
traduo do
relacionamento
68
1:n - caso 1
discusso
Implementao por tabela prpria tambm aceitvel:
melhor em relao a campos opcionais;
Perde em relao a junes e nmero de chaves.
68
69
Relacionamentos 1:n
69
(0,1) (_,n)
(1,1) (_,n)
Conveno:
- alternativa preferida
- pode ser usada
- no cabe
Conveno:
- alternativa preferida
- pode ser usada
- no cabe
70
1:n - caso 2
70
DEPARTAMENTO
DEPARTAMENTO
LOTAO
LOTAO
EMPREGADO
EMPREGADO
(1,1) (_,n)
Cdigo Nome Nome Data lotao Cdigo
A entidade que tem
cardinalidade mxima
1 obrigatria
71
1:n - caso 2
adio de colunas
71
Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,CodDept,DataLota)
CodDept referencia Departamento
Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,CodDept,DataLota)
CodDept referencia Departamento
DEPARTAMENTO
DEPARTAMENTO
LOTAO
LOTAO
EMPREGADO
EMPREGADO
(1,1) (_,n)
Cdigo Nome Nome Data lotao Cdigo
traduo do
relacionamento
traduo do
relacionamento
72
1:n - caso 2
tabela prpria
72
Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,
Lotacao(CodEmp,CodDept,DataLota)
CodDept referencia Departamento
CodEmp referencia Empregado
Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,
Lotacao(CodEmp,CodDept,DataLota)
CodDept referencia Departamento
CodEmp referencia Empregado
DEPARTAMENTO
DEPARTAMENTO
LOTAO
LOTAO
EMPREGADO
EMPREGADO
(1,1) (_,n)
Cdigo Nome Nome Data lotao Cdigo
traduo do
relacionamento
traduo do
relacionamento
73
1:n - caso 2
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.
Consegue garantir a obrigatoriedade do relacionamento.
73
74
Relacionamentos 1:n
74
(0,1) (_,n)
(1,1) (_,n)
Conveno:
- alternativa preferida
- pode ser usada
- no cabe
Conveno:
- alternativa preferida
- pode ser usada
- no cabe
75
Relacionamentos n:n
75
(_n) (_,n)
Conveno:
- alternativa preferida
- no cabe
Conveno:
- alternativa preferida
- no cabe
76
Relacionamentos n:n
76
ENGENHEIRO
ENGENHEIRO
ATUAO
ATUAO
PROJETO
PROJETO
(0,n)
(0,n)
Cdigo Nome Ttulo Funo Cdigo
Engenheiro (CodEng,Nome)
Projeto (CodProj,Ttulo)
Atuao (CodEng,CodProj,Funo)
CodEng referencia Engenheiro
CodProj referencia Projeto
Engenheiro (CodEng,Nome)
Projeto (CodProj,Ttulo)
Atuao (CodEng,CodProj,Funo)
CodEng referencia Engenheiro
CodProj referencia Projeto
traduo do
relacionamento
traduo do
relacionamento
77
Relacionamento grau > dois
77
nome nome
DISTRIBUIDOR
DISTRIBUIDOR
CIDADE
CIDADE
PRODUTO
PRODUTO
DISTRIBUIO
DISTRIBUIO
(0,1)
(0,n)
(0,n)
cdigo
cdigo
cdigo
nome
data de
incio
78
Relacionamento grau>2
No so definidas regras especficas.
O relacionamento transformado em uma entidade.
So aplicadas as regras de implementao de relacionamentos
binrios.
78
79
Relacionamento transformado em entidade
79
nome nome
DISTRIBUIDOR
DISTRIBUIDOR
CIDADE
CIDADE
PRODUTO
PRODUTO
DISTRIBUIO
DISTRIBUIO
(0,1)
(0,n)
(0,n)
cdigo
cdigo
cdigo
nome
data de
incio
80
Relacionamento transformado em entidade
80
nome nome
DISTRIBUIDOR
DISTRIBUIDOR
CIDADE
CIDADE
PRODUTO
PRODUTO
DISTRIBUIO
DISTRIBUIO
(0,1)
(0,n)
(0,n)
cdigo
cdigo
cdigo
nome
data de
incio
nome
nome
DISTRIBUIDOR
DISTRIBUIDOR
CIDADE
CIDADE
PRODUTO
PRODUTO
cdigo
cdigo
cdigo
nome
(0,n)
DISTRIBUIO
(1,1)
(1,1)
(1,1)
(0,n)
(0,n)
data de
incio
81
Relacionamento transformado em entidade
81
nome
nome
DISTRIBUIDOR
DISTRIBUIDOR
CIDADE
CIDADE
PRODUTO
PRODUTO
cdigo
cdigo
cdigo
nome
(0,n)
DISTRIBUIO
(1,1)
(1,1)
(1,1)
(0,n)
(0,n)
data de
incio
observar os
identificadores da
entidade criada
82
Relacionamento transformado em entidade
82
nome
nome
DISTRIBUIDOR
DISTRIBUIDOR
CIDADE
CIDADE
PRODUTO
PRODUTO
cdigo
cdigo
cdigo
nome
(0,n)
DISTRIBUIO
(1,1)
(1,1)
(1,1)
(0,n)
(0,n)
data de
incio
nome nome
DISTRIBUIDOR
DISTRIBUIDOR
CIDADE
CIDADE
DISTRIBUIO
DISTRIBUIO
(0,1)
(0,n)
(0,n)
cdigo
cdigo
cdigo
nome
data de
incio
PRODUTO
PRODUTO
observar os
identificadores da
entidade criada
-
vm da cardinalidade
mxima do
relacionamento
83
Modelo lgico correspondente
83
nome
nome
DISTRIBUIDOR
DISTRIBUIDOR
CIDADE
CIDADE
PRODUTO
PRODUTO
cdigo
cdigo
cdigo
nome
(0,n)
DISTRIBUIO
(1,1)
(1,1)
(1,1)
(0,n)
(0,n)
data de
incio
Produto (CodProd,Nome)
Cidade (CodCid,Nome)
Distribuidor (CodDistr,Nome)
Distribuio (CodProd,CodDistr,CodCid,
DataInicio)
CodProd referencia Produto
CodDistr referencia Distribuidor
CodCid referencia Cidade
Produto (CodProd,Nome)
Cidade (CodCid,Nome)
Distribuidor (CodDistr,Nome)
Distribuio (CodProd,CodDistr,CodCid,
DataInicio)
CodProd referencia Produto
CodDistr referencia Distribuidor
CodCid referencia Cidade
84
Implementao de generalizao/especializao
1. Duas alternativas bsicas:
a) uso de uma tabela para cada entidade
b) uso de uma nica tabela para toda hierarquia
2. Outra alternativa (extica):
a) Subdiviso de entidade genrica
84
85
Generalizao/especializao
exemplo
85
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
86
Uma tabela por hierarquia
1. Todas tabelas referentes s especializaes so fundidas em uma
nica tabela.
2. Tabela contm:
a) Chave primria correspondente ao identificador da entidade mais
genrica
b) Caso no exista, uma coluna Tipo
c) Uma coluna para cada atributo da entidade genrica
d) Colunas referentes aos relacionamentos dos quais participa a
entidade genrica e que sejam implementados atravs da alternativa
de adicionar colunas tabela da entidade genrica
e) Uma coluna para cada atributo de cada entidade especializada
(opcional)
f) 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)
86
87
Implementao das entidades relacionadas
87
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
i
m
p
l
e
m
e
n
t
a

o

d
a
s

e
n
t
i
d
a
d
e
s

r
e
l
a
c
i
o
n
a
d
a
s
88
Implementao de relacionamentos n:n
88
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
i
m
p
l
e
m
e
n
t
a

o


d
o
s

r
e
l
a
c
i
o
n
a
m
e
n
t
o
s

n
:
n
89
Tabela para a hierarquia
89
DEPARTAMENTO
DEPARTAMENTO
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
implementao
da hierarquia
90
Identificador da entidade raiz
90
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
c
h
a
v
e
p
r
im

r
ia
v
e
m

d
o
id
e
n
tific
a
d
o
r
d
a

e
n
t
id
a
d
e
r
a
iz
91
Incluso de coluna de tipo
91
DEPARTAMENTO
DEPARTAMENTO
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
t
a
b
e
la

d
e
v
e
r

t
e
r

u
m
a
c
o
l
u
n
a

d
e

t
ip
o
d
e

e
n
t
i
d
a
d
e
92
Atributos da entidade genrica
92
DEPARTAMENTO
DEPARTAMENTO
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
c
o
lu
n
a
s
p
a
ra
a
trib
u
to
s

d
a
e
n
tid
a
d
e
g
e
n

ric
a
93
Relacionamentos 1:n da entidade genrica
93
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
i
m
p
l
e
m
e
n
t
a

o

d
a

r
e
l
a
c
i
o
n
a
m
e
n
t
o
s
1
:
n

d
a

e
n
t
i
d
a
d
e

g
e
n

r
i
c
a
94
Atributos das especializaes
94
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
DEPARTAMENTO
DEPARTAMENTO
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
c
o
l
u
n
a
s

p
a
r
a

a
t
r
i
b
u
t
o
s

d
a
s

e
n
t
i
d
a
d
e
s

e
s
p
e
c
i
a
l
i
z
a
d
a
s
95
Atributos das especializaes
95
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
c
o
l
u
n
a
s

p
a
r
a

a
t
r
i
b
u
t
o
s

d
a
s

e
n
t
i
d
a
d
e

e
s
p
e
c
i
a
l
i
z
a
d
a
s
96
Relacionamentos 1:n das especializaes
96
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
i
m
p
l
e
m
e
n
t
a

o

d
e

r
e
l
a
c
i
o
n
a
m
e
n
t
o
s

1
:
n

d
a
s

e
s
p
e
c
i
a
l
i
z
a

e
s
97
Uma tabela por hierarquia - resultado
97
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
98
Uma tabela por entidade especializada
1. Criar uma tabela para cada entidade que compe a hierarquia.
2. Incluir a chave primria da tabela correspondente entidade genrica,
em cada tabela correspondente a uma entidade especializada.
98
99
Raiz da hieraquia
99
DEPARTAMENTO
DEPARTAMENTO
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CdigoDept referencia Depto
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CdigoDept referencia Depto
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
implementao da
raiz da hierarquia
100
Entidade especializada
100
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
implementao de
especializao
101
Entidade especializada
101
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
chave primria
vem da entidade
genrica
102
Entidade especializada
102
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
chave primria
estrangeira da
tabela genrica
103
Entidade especializada
103
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Engenheiro(CodigoEmp,CREA,CodigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Engenheiro(CodigoEmp,CREA,CodigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
implementao de
especializao
104
Relacionamento n:n com
entidade especializada
104
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Engenheiro(CodigoEmp,CREA,CodigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Engenheiro(CodigoEmp,CREA,CodigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
implementao de
especializao observar
o relacionamento n:n
105
Entidade especializada
105
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Engenheiro(CodigoEmp,CREA,CodigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Engenheiro(CodigoEmp,CREA,CodigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
SECRETRIA no tem atributos,
nem relacionamentos a
implementar por adio de
chaves

no h tabela para esta entidade
106
Uma tabela por entidade especializada
resultado
106
cdigo
nome
cdigo nome
CREA
EMPREGADO
EMPREGADO
DEPARTAMENTO
DEPARTAMENTO
SECRETRIA
SECRETRIA
ENGENHEIRO
ENGENHEIRO
PROCESSADOR
DE TEXTOS
PROCESSADOR
DE TEXTOS PROJETO
PROJETO
DOMNIO
DOMNIO
PARTICIPAO
PARTICIPAO
LOTAO
LOTAO
tipo de
empregado
nome
carteira de
habilitao
CIC
(1,1)
(0,n)
(1,n)
(0,n)
(0,n)
(0,n)
px
RAMO DA
ENGENHARIA
RAMO DA
ENGENHARIA
(0,n)
(1,1)
MOTORISTA
MOTORISTA
cdigo
cdigo
nome
cdigo nome
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Engenheiro(CodigoEmp,CREA,CodigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Emp (CodigoEmp,Tipo,Nome,CIC,CdigoDept)
CodigoDept referencia Depto
Motorista(CodigoEmp,CartHabil)
CodigoEmp referencia Emp
Engenheiro(CodigoEmp,CREA,CodigoRamo)
CdigoEmp referencia Emp
CdigoRamo referencia Ramo
Domnio (CodigoEmp,CodigoProc)
CdigoEmp referencia Emp
CdigoProc
referencia ProcessTexto
Participao (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
t
a
b
e
l
a

c
o
m

t
o
d
o
s

o
s

d
a
d
o
s

d
o
s

e
n
g
e
n
h
e
i
r
o
s
107
Vantagens da implementao
com tabela nica
Dados referentes entidade genrica + dados referentes s
especializaes:
em uma nica linha.
Minimiza junes.
Menor nmero de chaves.
107
108
Vantagens da implementao com uma tabela por
entidade especializada
Colunas opcionais:
apenas aquelas referentes a atributos opcionais.
108
109
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)
e o
alcanvel frente a limitaes de performance.
109
110
Refinamento do modelo relacional
Algumas vezes:
esquema de BD criado atravs do uso das regras acima no atende
requisitos de desempenho impostos ao sistema.
Necessrio buscar alternativa que resulte em melhor desempenho do
sistema.
Alternativas somente devem ser tentadas em ltimo caso:
Do ponto de vista da programao so normalmente piores.
110
111
Refinamento do modelo relacional
Exemplos de alternativas de projeto:
1. Relacionamentos mutuamente exclusivos
2. Simulao de atributos multivalorados
3. Informaes redundantes
111
112
Relacionamentos
mutuamente exclusivos
112
PESSOA
FSICA
PESSOA
FSICA
VENDA
VENDA
PESSOA
JURDICA
PESSOA
JURDICA
(0,n)
(0,1)
(0,n) (0,1)
CIC nome
N data
CGC razo
social
113
Relacionamentos
mutuamente exclusivos
Implementao pelas regras:
As colunas CIC e CGC em Venda so especificadas como opcionais.
113
PessFis(CIC,Nome)
PessJur(CGC,RazSoc)
Venda(No,data,CIC,CGC)
CIC referencia PessFis
CGC referencia PessJur
PessFis(CIC,Nome)
PessJur(CGC,RazSoc)
Venda(No,data,CIC,CGC)
CIC referencia PessFis
CGC referencia PessJur
114
Relacionamentos
mutuamente exclusivos
Implementao alternativa:
Criar uma nica coluna na qual aparece o CIC ou o CGC do
comprador:
Desvantagem:
No possvel especificar ao SGBD que o campo CIC/CGC
chave estrangeira:
seria referncia a duas tabelas.
114
PessFis(CIC,Nome)
PessJur(CGC,RazSoc)
Venda(No,data,CIC/CGC,TipoCompr)
PessFis(CIC,Nome)
PessJur(CGC,RazSoc)
Venda(No,data,CIC/CGC,TipoCompr)
115
Tratamento de
atributos multivalorados
115
cdigo nom
e
CLIENTE
CLIENTE
nmero de
telefone (0,n)
cdigo
nome
CLIENTE
CLIENTE
TELEFONE
TELEFONE
(1,1)
(0,n)
nmero
116
Atributos multivalorados
implementao padro
116
Cliente (CodCli,Nome)
Telefone (CodCli,Nmero)
CodCli referencia Cliente
Cliente (CodCli,Nome)
Telefone (CodCli,Nmero)
CodCli referencia Cliente
117
Atributos multivalorados
alternativa
Condies de contorno:
Raros clientes possuem mais que dois telefones.
Quando isso ocorrer:
suficiente armazenar 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.
117
118
Simulao de atributos multivalorados
Implementao desnormalizada:
Simular uma coluna multivalorada, atravs da criao de diversas
colunas NumTel sufixadas por um nmero.
118
Cliente (CodCli,Nome,NumTel1,NumTel2)
Cliente (CodCli,Nome,NumTel1,NumTel2)
119
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.
Somente podero ser armazenados no mximo dois nmeros de
telefone por cliente.
119
120
Informaes redundantes
Exemplo:
atributos que resultam de uma operao que envolve diversas
entidades do banco de dados;
valor destes atributos:
deve ser obtido com frequncia ou
serve frequentemente como critrio de busca de informaes no
banco de dados.
Pode ser mais eficiente (desempenho global do sistema)
armazenar redundantemente o atributo derivado.
120
121
Informaes redundantes
Exemplo
121
nmero
de
reservas
passageiro
cdigo roteiro
VOO
VOO
RESERVA
(1,1)
(0,n)
nmero
a
t
r
i
b
u
t
o

r
e
d
u
n
d
a
n
t
e
122
Exerccios
Exerccio Para todos os modelos dos exerccios presentes em
Modelo Conceitual ER.pdf, realize o projeto lgico.
122