Você está na página 1de 109

Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed.

Sagra&Luzzatto, Porto Alegre, 1999


1
Engenharia reversa
de arquivos e documentos
Captulo 6
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
2
Engenharia reversa
de arquivos e documentos
Modelo ER
(conceitual)
Modelo relacional
Engenharia
reversa de
BD relacional
(Captulo 5)
Esquema de arquivo
convencional ou
documento
Engenharia
reversa de
arquivos
convencionais
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
3
Engenharia reversa
de arquivos e normalizao
Entrada:
qualquer conjunto de dados para os quais se
disponha de uma descrio
documentos
arquivos manuais
arquivos convencionais em computador
bancos de dados gerenciados por SGBD no
relacional
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
4
Engenharia reversa de arquivos e
normalizao - motivao
Sistemas legados
Raramente documentados
Necessidade de modelo ER
Manuteno
Migrao para outro tipo de BD
Integrao com outros BD
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
5
Engenharia reversa - processo
modelo
relacional 1
esquema de
arquivo/documento 1
normalizao
modelo
relacional 2
esquema de
arquivo/documento 2
normalizao
...
modelo relacional integrado
integrao
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
6
Normalizao
Objetivo
Reagrupar informaes para
eliminar redundncias de dados
Reagrupar informaes para
eliminar estruturas inexistentes no modelo ER
(atributos multivalorados)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
7
Normalizao
passos
esquema de
arquivo ou
documento
Representao
como tabela
N
esquema no
normalizado
Passagem
a 1FN
esquema
na 1FN
Passagem
a 2FN
esquema
na 2FN
Passagem
a 3FN
Passagem
a 4FN
esquema
na 3FN
esquema relacional
normalizado
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
8
Documento exemplo
RELATRIO DE ALOCAO A PROJETO
CDIGO DO PROJETO: LSC001 TIPO: Novo Desenv.
DESCRIO: Sistema de Estoque
CDIGO DO
EMPREGADO
NOME CATEGORIA
FUNCIONAL
SALRIO DATA DE
INCIO NO
PROJETO
TEMPO
ALOCADO AO
PROJETO
2146 Joo A1 4 1/11/91 24
3145 Slvio A2 4 2/10/91 24
6126 Jos B1 9 3/10/92 18
1214 Carlos A2 4 4/10/92 18
8191 Mrio A1 4 1/11/92 12
CDIGO DO PROJETO: PAG02 TIPO: Manuteno
DESCRIO: Sistema de RH
CDIGO DO
EMPREGADO
NOME CATEGORIA
FUNCIONAL
SALRIO DATA DE
INCIO NO
PROJETO
TEMPO
ALOCADO
AO PROJETO
8191 Mrio A1 4 1/05/93 12
4112 Joo A2 4 4/01/91 24
6126 Jos B1 9 1/11/92 12
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
9
Normalizao
1 passo
esquema de
arquivo ou
documento
Representao
como tabela
N
esquema no
normalizado
Passagem
a 1FN
esquema
na 1FN
Passagem
a 2FN
esquema
na 2FN
Passagem
a 3FN
Passagem
a 4FN
esquema
na 3FN
esquema relacional
normalizado
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
10
Representao na forma de
tabela no normalizada
Tabela no-normalizada ou
tabela no-primeira-forma-normal
possui uma ou mais tabelas aninhadas
tabela aninhada ( ou grupo repetido ou coluna
multi-valorada oucoluna no atmica)
coluna que ao invs de conter valores atmicos,
contm tabelas aninhadas
Abreviatura: N
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
11
Tabela aninhada
exemplo
CdProj Tipo Descr
Emp
CodEmp Nome Cat Sal DataIni TempAl
LSC001 Novo Desenv. 2146 Joo A1 4 1/11/91 24 Sistema de
Estoque
3145 Slvio A2 4 2/10/91 24
6126 Jos B1 9 3/10/92 18
1214 Carlos A2 4 4/10/92 18
8191 Mrio A1 4 1/11/92 12
PAG02 Manuteno 8191 Mrio A1 4 1/05/93 12 Sistema de
RH
4112 Joo A2 4 4/01/91 24
6126 Jos B1 9 1/11/92 12
Tabela aninhada em uma linha de projeto
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
12
Tabela N
Esquema
Proj (CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
13
Arquivo em Pascal
type reg_aluno= record
cod_al: integer;
nome_al: char_60;
ingressos_cursos_al: array [1..10] of record
cod_curso: integer;
semestre_ingresso: integer
end;
disciplinas_cursadas_al: array [0..200] of record
cod_disc: integer;
semestres_cursados: array [1..20] of record
semestre_disc: integer;
nota_disc: integer
end
end
end;
arq_aluno= file of reg_aluno;
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
14
Arquivo em Cobol
FD Arq-Alunos
01 Reg-Al.
03 Cod-Al
03 Nome-Al
03 Ingr-Cursos-al OCCURS 1 TO 10
05 Cod-Curso
05 Sem-ingresso
03 Disc-Curs-Al OCCURS 0 to 200
05 Cod-Disc
05 Sem-Cursado OCCURS 1 TO 20
07 Sem-Disc-Cursada
07 Nota-Disc
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
15
Esquema N
para arquivos exemplo
Arq-Alunos (Cod-Al, Nome-Al,
(Cod-Curso, Sem-ingresso),
(Cod-Disc,
(Sem-Disc-Cursada, Nota-Disc)))
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
16
Representao em esquema
no normalizada
Nenhuma transformao foi feita no modelo do
documento
Apenas foi usada outra notao
Notao independe do tipo de
documento/arquivo usado como entrada do
processo de normalizao
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
17
Forma normal
Regra que uma tabela deve obedecer para ser
considerada bem projetada
H diversas formas normais, cada vez mais
rgidas, para verificar tabelas relacionais
Aqui tratadas
primeira forma normal (1FN)
segunda forma normal (2FN)
terceira forma normal (3FN)
quarta forma normal (4FN)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
18
Primeira forma normal
1FN
esquema de
arquivo ou
documento
Representao
como tabela
N
esquema no
normalizado
Passagem
a 1FN
esquema
na 1FN
Passagem
a 2FN
esquema
na 2FN
Passagem
a 3FN
Passagem
a 4FN
esquema
na 3FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
19
Passagem primeira forma normal
(1FN)
primeira forma normal (1FN)
=
diz-se que uma tabela est na primeira
forma normal, quando ela no contm
tabelas aninhadas
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
20
Passagem 1FN
alternativas
Construir uma nica tabela com redundncia de
dados
Construir uma tabela para cada tabela aninhada
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
21
Passagem 1FN
uma nica tabela
Uma tabela na qual os dados das linhas externas
tabela aninhada so repetidos para cada linha
da tabela aninhada
Exemplo
ProjEmp (CodProj, Tipo, Descr, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)
Dados do projeto aparecem repetidos para cada
empregado do projeto
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
22
Passagem 1FN
uma tabela para cada tabela aninhada
Cria-se uma tabela referente a prpria tabela que
est sendo normalizada e uma tabela para cada
tabela aninhada
Exemplo:
Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj,CodEmp, Nome, Cat, Sal, DataIni,
TempAl)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
23
Passagem 1FN
alternativas
Primeira alternativa (tabela nica) mais correta
Decompor uma tabela em vrias tabelas
(segunda alternativa)
podem ser perdidas relaes entre informaes
Ver exerccio
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
24
Passagem 1FN
alternativas
Para fins prticos
preferimos a segunda alternativa (decomposio
de tabelas)
Quando houver diversas tabelas aninhadas,
eventualmente com diversos nveis de
aninhamento, fica difcil visualizar a tabela na
1FN na alternativa de tabela nica
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
25
Passagem 1FN
passo (1)
Criar uma tabela na 1FN referente a tabela no
normalizada
A chave primria da tabela na 1FN idntica a
chave da tabela N
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
26
Passagem 1FN
criar tabela referente a tabela N
(CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
N
1FN
(CodProj, Tipo, Descr)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
27
Passagem 1FN
Passo (2)
Para cada tabela aninhada
criar uma tabela na 1FN composta pelas seguintes
colunas:
a chave primria de cada uma das tabelas na qual a
tabela em questo est aninhada
as colunas da prpria tabela aninhada
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
28
Passagem 1FN
criar tabela referente a tabela aninhada
(CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
N
1FN
(CodProj, Tipo, Descr)
(CodProj, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
29
Passagem 1FN
Passo (3)
Definir as chaves primrias das tabelas na 1FN
que correspondem a tabelas aninhadas.
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
30
Passagem 1FN
definio de chave primria
(CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
N
1FN
(CodProj, Tipo, Descr)
(CodProj, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)
Tabela de nvel mais externo:
basta transcrever a chave
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
31
Passagem 1FN
definio de chave primria
(CodProj, Tipo, Descr)
(CodProj, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)
Qual a chave primria desta tabela?
Pergunta a fazer:
um valor de CodEmp (chave da tabela
origem) aparece uma vez s no
documento ou vrias?
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
32
Passagem 1FN
definio de chave primria
(CodProj, Tipo, Descr)
(CodProj, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)
Como um valor de CodEmp aparece vrias
vezes, necessrio CodProj para distinguir
as vrias aparies
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
33
Passagem a 1FN - exemplo
(CodProj, Tipo, Descr)
(CodProj, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)
Caso cada empregado trabalhe em um
nico projeto apenas, ou seja
caso um valor de CodEmp aparea uma
nica vez na tabela
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
34
Passagem 1FN
exemplo
Proj:
CdProj Tipo Descr
LSC001 Novo Desenv. Sistema de Estoque
PAG02 Manuteno Sistema de RH
ProjEmp:
CdProj CodEmp Nome Cat Sal DataIni TempAl
LSC001
2146 Joo A1 4 1/11/91 24
LSC001 3145 Slvio A2 4 2/10/91 24
LSC001 6126 Jos B1 9 3/10/92 18
LSC001 1214 Carlos A2 4 4/10/92 18
LSC001 8191 Mrio A1 4 1/11/92 12
PAG02
8191 Mrio A1 4 1/05/93 12
PAG02 4112 Joo A2 4 4/01/91 24
PAG02 6126 Jos B1 9 1/11/92 12
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
35
Passagem 1FN
exemplo
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))
N
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
36
Passagem 1FN
decomposio em tabelas
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))
Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)
N
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
37
Passagem 1FN
decomposio em tabelas
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))
Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)
Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)
N
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
38
Passagem 1FN
definio da chave primria
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))
Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)
Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)
Tabela de nvel mais externo:
basta transcrever a chave
N
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
39
Passagem 1FN
definio da chave primria
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))
Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)
Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)
Qual a chave primria desta tabela?
Pergunta a fazer:
um valor de Cod-Cand (chave da tabela
origem) aparece uma s vez no
documento ou vrias?
N
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
40
Passagem 1FN
definio da chave primria
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))
Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)
Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)
Um cdigo de candidato aparece uma nica vez
N
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
41
Passagem a 1FN
exemplo Pascal/COBOL
Arq-Alunos (Cod-Al, Nome-Al,
(Cod-Curso, Sem-ingresso)
(Cod-Disc,
(Sem-Disc-Cursada, Nota-Disc)))
Alunos (Cod-Al, Nome-Al)
AlunoCurso (Cod-Al, Cod-Curso, Sem-ingresso)
AlunoDisc (Cod-Al, Cod-Disc)
AlunoDiscSem (Cod-Al, Cod-Disc, Sem-Disc-Cursada, Nota-Disc)
N
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
42
Passagem a 1FN
exemplo Pascal/COBOL
Arq-Alunos (Cod-Al, Nome-Al,
(Cod-Curso, Sem-ingresso)
(Cod-Disc,
(Sem-Disc-Cursada, Nota-Disc)))
Alunos (Cod-Al, Nome-Al)
AlunoCurso (Cod-Al, Cod-Curso, Sem-ingresso)
AlunoDisc (Cod-Al, Cod-Disc)
AlunoDiscSem (Cod-Al, Cod-Disc, Sem-Disc-Cursada, Nota-Disc)
N
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
43
Dependncia funcional
Para entender 2FN e 3FN
necessrio compreender o conceito de
dependncia funcional.
Em uma tabela relacional, diz-se que
uma coluna C
2
depende funcionalmente de uma
coluna C
1
(ou que a coluna C
1
determina a coluna
C
2
) quando,
em todas linhas da tabela, para cada valor de C
1
que aparece na tabela, aparece o mesmo valor de
C
2
.
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
44
Exemplo de dependncia funcional
Cdigo Salrio
E1 10
E3 10
E1 10
E2 5
E3 10
E2 5
E1 10
Cdigo Salrio
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
45
Dependncia funcional
exemplos
A B C D
B 5 2 20
C 4 2 15
B 6 7 20
B 5 2 20
C 2 2 15
C 4 2 15
A 10 5 18
A 12 3 18
A 10 5 18
B 5 2 20
C 4 2 15
A 10 5 18
C 4 2 15
Dependncia funcional
inexistente na tabela
A B
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
46
Dependncia funcional
exemplos
A B C D
B 5 2 20
C 4 2 15
B 6 7 20
B 5 2 20
C 2 2 15
C 4 2 15
A 10 5 18
A 12 3 18
A 10 5 18
B 5 2 20
C 4 2 15
A 10 5 18
C 4 2 15
Dependncia funcional
existente na tabela
A D
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
47
Dependncia funcional
exemplos
A B C D
B 5 2 20
C 4 2 15
B 6 7 20
B 5 2 20
C 2 2 15
C 4 2 15
A 10 5 18
A 12 3 18
A 10 5 18
B 5 2 20
C 4 2 15
A 10 5 18
C 4 2 15
Uma coluna pode
depender funcionalmente
de uma combinao de
mais de uma coluna
(A,B) C
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
48
Segunda forma normal
2FN
Objetiva eliminar um certo tipo de redundncia de
dados
Exemplo
Dados referentes a empregados (Nome, Cat e Sal)
Redundantes, para os empregados que trabalham
em mais de um projeto
(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
49
Segunda forma normal
2FN
ProjEmp:
CdProj CodEmp Nome Cat Sal DataIni TempAl
LSC001
2146 Joo A1 4 1/11/91 24
LSC001 3145 Slvio A2 4 2/10/91 24
LSC001 6126 Jos B1 9 3/10/92 18
LSC001 1214 Carlos A2 4 4/10/92 18
LSC001 8191 Mrio A1 4 1/11/92 12
PAG02
8191 Mrio A1 4 1/05/93 12
PAG02 4112 Joo A2 4 4/01/91 24
PAG02 6126 Jos B1 9 1/11/92 12
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
50
Passagem segunda forma normal
2FN
segunda forma normal (2FN)
=
uma tabela encontra-se na segunda forma normal,
quando, alm de estar na 1FN, no contm
dependncias parciais
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
51
Dependncia parcial
dependncia parcial
=
uma dependncia (funcional) parcial ocorre
quando uma coluna depende apenas de parte
de uma chave primria composta
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
52
Dependncias parciais
ProjEmp ( CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl )
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
53
Dependncias no parciais
ProjEmp ( CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl )
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
54
Passagem 2FN
Tabela 1FN e que possui apenas uma coluna
como chave primria
no contm dependncias parciais
impossvel uma coluna depender de uma parte
da chave primria, quando a chave primria no
composta por partes
Concluso
Toda tabela 1FN que possui apenas uma coluna
como chave primria j est na 2FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
55
(CodProj, Tipo, Descr)
(CodProj, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)
Passagem 2FN
Tabela com uma coluna na chave
1FN
(CodProj, Tipo, Descr)
2FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
56
Passagem 2FN
Tambm
Tabela que contenha apenas colunas chave
primria
Impossvel atributo no chave depender de parte
da chave (tabela no tem colunas no chave)
Tabela sem colunas no chave j est na 2FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
57
Passagem 2FN
ProjEmp ( CodProj, CodEmp , Nome, Cat, Sal, DataIni, TempAl )
Tabela que possui chave primria com vrias colunas
e possui colunas no chave deve ser examinada
Pergunta a fazer, para cada coluna no chave:
a coluna depende de toda a chave ou s de parte?
ou
para identificar um valor da coluna necessita de toda
chave ou s de parte dela?
1FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
58
Passagem 2FN
ProjEmp ( CodProj, CodEmp , Nome, Cat, Sal, DataIni, TempAl )
ProjEmp ( CodProj, CodEmp , DataIni, TempAl )
Emp ( CodEmp , Nome, Cat, Sal )
1FN
2FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
59
Tabelas na 2FN
Proj:
CdProj Tipo Descr
LSC001 Novo Desenv. Sistema de Estoque
PAG02 Manuteno Sistema de RH
ProjEmp:
CdProj CodEmp DataIni TempAl
LSC001
2146 1/11/91 24
LSC001 3145 2/10/91 24
LSC001 6126 3/10/92 18
LSC001 1214 4/10/92 18
LSC001 8191 1/11/92 12
PAG02
8191 1/05/93 12
PAG02 4112 4/01/91 24
PAG02 6126 1/11/92 12
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
60
Tabelas na 2FN
Emp:
CodEmp Nome Cat Sal
2146 Joo A1 4
3145 Slvio A2 4
1214 Carlos A2 4
8191 Mrio A1 4
4112 Joo A2 4
6126 Jos B1 9
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
61
Terceira forma normal (3FN)
Trata de um outro tipo de redundncia
Exemplo
Considerar
salrio (coluna Sal) determinado pela categoria
funcional (coluna Cat)
Salrio que pago a uma categoria funcional
armazenado tantas vezes quantos empregados
possui a categoria funcional
Emp ( CodEmp, Nome, Cat, Sal )
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
62
Terceira forma normal (3FN)
Emp:
CodEmp Nome Cat Sal
2146 Joo A1 4
3145 Slvio A2 4
6126 Jos B1 9
1214 Carlos A2 4
8191 Mrio A1 4
8191 Mrio A1 4
4112 Joo A2 4
6126 Jos B1 9
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
63
Dependncia transitiva
Emp ( CodEmp, Nome, Cat, Sal )
Dependncia funcional transitiva (indireta)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
64
Terceira forma normal
3FN
terceira forma normal (3FN)
=
uma tabela encontra-se na terceira forma
normal, quando, alm de estar na 2FN, no
contm dependncias transitivas
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
65
Normalizao do exemplo
3FN
Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj, CodEmp, DataIni, TempAl)
Emp (CodEmp, Nome, Cat)
Cat (Cat, Sal)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
66
Normalizao do exemplo
N
Proj (CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
1FN
Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl)
2FN
Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj, CodEmp, DataIni, TempAl)
Emp (CodEmp, Nome, Cat, Sal)
3FN
Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj, CodEmp, DataIni, TempAl)
Emp (CodEmp, Nome, Cat)
Cat (Cat, Sal)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
67
Tabelas na 3FN
Proj:
CdProj Tipo Descr
LSC001 Novo Desenv. Sistema de Estoque
PAG02 Manuteno Sistema de RH
ProjEmp:
CdProj CodEmp DataIni TempAl
LSC001
2146 1/11/91 24
LSC001 3145 2/10/91 24
LSC001 6126 3/10/92 18
LSC001 1214 4/10/92 18
LSC001 8191 1/11/92 12
PAG02
8191 1/05/93 12
PAG02 4112 4/01/91 24
PAG02 6126 1/11/92 12
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
68
Tabelas na 3FN
Emp:
NmEmp Nome Cat
2146 Joo A1
3145 Slvio A2
6126 Jos B1
1214 Carlos A2
8191 Mrio A1
8191 Mrio A1
4112 Joo A2
6126 Jos B1
Cat:
Cat Sal
A1 4
A2 4
B1 9
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
69
Passagem 4FN
Maioria dos documentos e arquivos
a decomposio at a 3FN suficiente
Na literatura aparecem outras formas normais
forma normal de Boyce/Codd
a 4FN
a 5FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
70
Exemplo para 4FN
Modelo original
cdigo
nome
EQUIPAMENTO PROJETO
EMPREGADO
UTILIZAO
cdigo
nome
cdigo
nome
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
71
Exemplo para 4FN
Requisitos alterados
cdigo
nome
Proj-Eq
EQUIPAMENTO
PROJETO
EMPREGADO
cdigo
nome
cdigo
nome
Proj-Emp
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
72
Tabela Utilizao
com requisitos alterados
CodProj CodEmp CodEquip
1 1 1
1 2 1
1 3 1
1 1 2
1 2 2
1 3 2
2 2 2
2 2 4
3 3 1
3 4 1
3 3 3
3 4 3
3 3 5
3 4 5
4 2 5
Verficar:
Quantas vezes cada empregado
do projeto 1 informado?
Quantas vezes cada
equipamento usado no projeto
1 informado?
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
73
Dependncias multivaloradas
CodProj CodEmp
CodProj CodEquip
CodProj CodEmp CodEquip
1 1 1
1 2 1
1 3 1
1 1 2
1 2 2
1 3 2
2 2 2
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
74
4FN
definio
quarta forma normal (4FN)
=
uma tabela encontra-se na quarta forma
normal, quando, alm de estar na 3FN,
no contm mais de uma dependncia
multi-valorada
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
75
4FN
ProjEmp (CodProj,CodEmp)
ProjEquip (CodProj,CodEquip)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
76
Problemas da normalizao
Chaves primrias omitidas ou incorretas
Atributos relevantes implicitamente
representados
Atributos irrelevantes, redundantes ou derivados
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
77
Chaves primrias omitidas ou
incorretas
Arquivos convencionais
o conceito de chave primria no obrigatrio
possvel encontrar arquivos que no possuem
chave primria
Quando um arquivo convencional no possui
chave primria ou quando a chave primria nele
usada difere da usual na organizao
deve-se proceder como se a chave primria
aparecesse no arquivo
deve-se inseri-la na forma N
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
78
Chaves primrias omitidas ou
incorretas exemplo
Arquivo com dados sobre empregados de uma
organizao enviado para fins de fiscalizao a
um rgo governamental
Identificador de empregado usado na
organizao omitido, j que este irrelevante
para o rgo fiscalizador
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
79
Chaves primrias
omitidas ou incorretas - exemplo
Outra situao
uso de uma chave alternativa, ao invs da chave
primria usual do arquivo
No caso mencionado acima
Se o rgo governamental fosse a receita federal
Arquivo poderia ter como chave primria o CIC do
empregado, ao invs da chave primria
normalmente usada na organizao.
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
80
Atributos relevantes
implicitamente representados
Arquivos convencionais podem conter atributos
de forma implcita
ordenao de registros ou de listas
ponteiros fsicos, etc
Deve-se proceder como se o atributo aparecesse
explicitamente no documento
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
81
Atributo implcito
Ordenao
Exemplo:
arquivo contm registros referentes a cursos em
um concurso vestibular
para cada curso, h um grupo repetido aninhado,
com as informaes dos candidatos ao curso em
questo
informaes dos candidatos ordenadas por
classificao no concurso
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
82
Atributo implcito
Ordenao
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand))
4FN
Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)
Candidatos (Cod-Curso,Cod-Cand, Nome-Cand)
Processo de normalizao resulta em:
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
83
Atributo implcito
Ordenao
Informao da classificao dos candidatos em um
curso foi perdida no processo de normalizao
Procedimento correto
incluir explicitamente na tabela, j na forma N, a
informao que aparece implicitamente no arquivo na
forma da ordenao dos registros (coluna Ordem-
Cand)
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand,Ordem-Cand))
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
84
Atributos
irrelevantes, redundantes ou derivados
Devem ser eliminados j quando da passagem a
forma no normalizada
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
85
Integrao de modelos
modelo
relacional 1
esquema de
arquivo/documento 1
normalizao
modelo
relacional 2
esquema de
arquivo/documento 2
normalizao
...
modelo relacional integrado
integrao
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
86
Integrao de modelos
Normalizao de cada um dos
arquivos/documentos
conduz definio de um conjunto de tabelas
Passo seguinte
integrar os modelos obtidos para cada arquivo no
modelo global do banco de dados
Processo conhecido por
integrao de vises
integrao de esquemas
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
87
Integrao de modelos
objetivos
Os atributos de uma mesma entidade (ou de um
mesmo relacionamento) podem estar
armazenados em diferentes arquivos
juntar as tabelas em uma nica tabela que
representa a entidade ou relacionamento em
questo
Tabelas de um modelo livres de redundncias
Tabelas de diferentes modelos podem ter
redundncias entre si
integrao elimina estas redundncias
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
88
Integrao de modelos
passos
(1) integrao de tabelas com a mesma chave
(2) integrao de tabelas com chave contida
(3) verificao de 3FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
89
Integrao de tabelas
com mesma chave
Juno de tabelas que possuem a mesma chave
primria.
mesma chave primria =
domnios e contedos das colunas que compem
a chave primria so iguais
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
90
Integrao de tabelas
com mesma chave - exemplo
Documento 1:
Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj, CodEmp, DataIni, TempAl)
Emp (CodEmp, Nome, Cat)
Cat (Cat, Sal)
Documento2:
Proj (CodProj, DataInicio, Descr, CodDepto)
Depto (CodDepto, NomeDepto)
ProjEquipamento (CodProj, CodEquipam, DataIni)
ProjEmp (CodProj, CodEmp, FunoEmpProj)
Equipamento (CodEquipam, Descrio)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
91
Integrao de tabelas
com mesma chave - exemplo
Modelo integrado:
Proj (CodProj, Tipo, Descr, DataInicio, CodDepto)
ProjEmp (CodProj, CodEmp, DataIni, TempAl, FunoEmpProj)
Emp (CodEmp, Nome, Cat)
Cat (Cat, Sal)
Depto (CodDepto, NomeDepto)
ProjEquipamento (CodProj, CodEquipam, DataIni)
Equipamento (CodEquipam, Descrio)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
92
Integrao de modelos
problemas
Processo baseia-se na comparao dos nomes
de colunas e de tabelas dentro dos diferentes
modelos
Problema :conflitos de nomes
Homnimos
Sinnimos
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
93
Integrao de tabelas
com chaves contidas
Tabelas so fundidas
uma tabela contm somente a chave primria e
a chave primria subconjunto da chave primria
de outra tabela
Chave primria est contida dentro da outra
chave primria deve ter o mesmo domnio e os
mesmos valores
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
94
Integrao de tabelas
com chaves contidas
Exemplo
AlunoDisc (Cod-Al,Cod-Disc)
AlunoDiscSem (Cod-Al, Cod-Disc, Sem-Disc-Cursada,
Nota-Disc)
Primeira tabela
informa que um aluno cursou uma disciplina,
Segunda tabela
informa a nota obtida pelo aluno em uma disciplina em
um semestre
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
95
Integrao de tabelas
com chaves contidas
AlunoDisc (Cod-Al,Cod-Disc)
AlunoDiscSem (Cod-Al, Cod-Disc, Sem-Disc-Cursada,
Nota-Disc)
Colunas Cod-Al e Cod-Disc da tabela AlunoDisc
contm os mesmo que as colunas Cod-Al e Cod-Disc
da tabela AlunoDiscSem
Informaes contidas na tabela AlunoDisc j esto
na tabela AlunoDiscSem
Tabela AlunoDisc redundante e pode ser eliminada
sem perda de informaes
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
96
Integrao de tabelas
com chaves contidas
No integrar quando tabela contm dados alm da
chave primria
AlunoSem (Cod-Al,Sem-Disc, BolsaSimNao)
AlunoDiscSem (Cod-Al, Cod-Disc,Sem-Disc, Nota-Disc)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
97
Integrao de tabelas
com chaves contidas
Garantir que primeira tabela efetivamente contida na
segunda
Exemplo
AlunoMatric (Cod-Al,Sem-Disc)
AlunoDiscSem (Cod-Al, Cod-Disc,Sem-Disc, Nota-Disc)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
98
Integrao de tabelas
com chaves contidas
AlunoMatric (Cod-Al,Sem-Disc)
AlunoDiscSem (Cod-Al, Cod-Disc,Sem-Disc, Nota-Disc)
AlunoMatric
representa o fato de o aluno estar matriculado em um
semestre
AlunoDiscSem
representa a nota que o aluno obteve em uma
disciplina em um semestre
Durante o semestre letivo
aluno matriculado mas sem nota
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
99
Volta 2FN
A integrao de dois modelos 4FN pode conduzir a
um modelo que est na 2FN mas no na 3FN.
Exemplo
Arquivo 1:
Departamento (CodDepto, NomeDepto, CodGerenteDepto)
Arquivo 2:
Departamento (CodDepto, LocalDepto,
NomeGerenteDepto)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
100
Volta 2FN
Integrao destes dois modelos resultaria no modelo
integrado abaixo mostrado.
Modelo integrado:
Departamento (CodDepto, NomeDepto,
CodGerenteDepto, LocalDepto, NomeGerenteDepto)
No est na 3FN
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
101
Construo do modelo ER e
Eliminao de Redundncias
Integrao dos modelos obtidos a partir dos
diversos arquivos e documentos normalizados,
segue a construo do modelo ER (ver ). Nesta
construo usam-se as regras apresentadas no
captulo anterior para transformao de modelos
relacionais em modelos ER.
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
102
Verificao do modelo ER
Limitaes da Normalizao
O processo de normalizao no conduz
necessariamente a um modelo ER perfeito
Normalizao apenas elimina
campos multivalorados e
redundncias de dados detectadas pelas formas
normais descritas
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
103
Verificao do modelo ER
Limitaes da Normalizao
Optamos pela alternativa de decompor tabelas na
passagem 1FN
alternativa, apesar de mais simples de tratar na
prtica, pode levar a imperfeies no modelo
H outras formas normais (Boyce/Codd e a
quinta forma normal)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
104
Construo do modelo ER
ltimo passo da engenharia reversa
construo do modelo ER atravs das regras para
engenharia reversa de modelos relacionais
verificao do modelo ER obtido, procurando
corrigir imperfeies ainda existentes
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
105
Exerccio 6.1
Mostrar a 2FN e 3FN do modelo abaixo (vendas)
ItemVenda (NmeroNF,CodigoTipoProd,NumeroProd,
DescricaoProd, DataVenda, CodReg, CodEmp,
QtdeItem,PreoItem,NomeEmp, DescricaoTipoProd)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
106
Exerccio 6.1
dependncias parciais
Dependncias funcionais parciais
(CodigoTipoProd,NumeroProd) DescricaoProd
CodigoTipoProd DescricaoTipoProd
NmeroNF DataVenda
NmeroNF CodReg
NmeroNF CodEmp
NmeroNF NomeEmp
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
107
Exerccio 6.1
2FN
N
ItemVenda (NmeroNF,CodigoTipoProd,NumeroProd,
DescricaoProd DataVenda, CodReg,
CodEmp, QtdeItem,PreoItem,
NomeEmp, DescricaoTipoProd)
2FN
ItemVenda (NmeroNF,CodigoTipoProd,NumeroProd, QtdeItem,PreoItem)
Produto (CodigoTipoProd,NumeroProd, DescricaoProd)
TipoProd (CodigoTipoProd, DescricaoTipoProd )
Venda (NmeroNF, DataVenda, CodReg, CodEmp, NomeEmp)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
108
Exerccio 6.1
dependncias transitivas
2FN contm uma dependncia transitiva
Na tabela Venda
CodEmp NomeEmp
2FN
ItemVenda (NmeroNF,CodigoTipoProd,NumeroProd, QtdeItem,PreoItem)
Produto (CodigoTipoProd,NumeroProd, DescricaoProd)
TipoProd (CodigoTipoProd, DescricaoTipoProd )
Venda (NmeroNF, DataVenda, CodReg, CodEmp, NomeEmp)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
109
Exerccio 6.1
3FN
2FN
ItemVenda (NmeroNF,CodigoTipoProd,NumeroProd, QtdeItem,PreoItem)
Produto (CodigoTipoProd,NumeroProd, DescricaoProd)
TipoProd (CodigoTipoProd, DescricaoTipoProd )
Venda (NmeroNF, DataVenda, CodReg, CodEmp, NomeEmp)
3FN
ItemVenda (NmeroNF,CodigoTipoProd,NumeroProd, QtdeItem,PreoItem)
Produto (CodigoTipoProd, NumeroProd, DescricaoProd)
TipoProd (CodigoTipoProd, DescricaoTipoProd )
Venda (NmeroNF, DataVenda, CodReg, CodEmp)
Empregado (CodEmp, NomeEmp)