You are on page 1of 109

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

Engenharia reversa
de arquivos e documentos
Modelo ER
(conceitual)
Engenharia
reversa de
BD relacional
(Captulo 5)

Modelo relacional

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

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

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

Engenharia reversa - processo


modelo relacional integrado

integrao

modelo
relacional 1

modelo
relacional 2

normalizao

normalizao

esquema de
arquivo/documento 1

...

esquema de
arquivo/documento 2

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

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

Passagem
a 4FN

esquema
na 3FN

Normalizao
passos
Passagem
a 3FN

esquema
na 2FN
esquema relacional
normalizado
esquema de
arquivo ou
documento

Passagem
a 2FN

esquema
na 1FN
Representao
como tabela
N

esquema no
normalizado

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

Passagem
a 1FN

RELATRIO DE ALOCAO A PROJETO


CDIGO DO PROJETO: LSC001
DESCRIO: Sistema de Estoque
CDIGO DO
NOME CATEGORIA
EMPREGADO
FUNCIONAL

2146
3145
6126
1214
8191

Joo
Slvio
Jos
Carlos
Mrio

A1
A2
B1
A2
A1

CDIGO DO PROJETO: PAG02


DESCRIO: Sistema de RH
CDIGO DO
NOME CATEGORIA
EMPREGADO
FUNCIONAL

8191
4112
6126

Mrio
Joo
Jos

A1
A2
B1

Documento exemplo
TIPO: Novo Desenv.

SALRIO

4
4
9
4
4

DATA DE
TEMPO
INCIO NO ALOCADO AO
PROJETO
PROJETO
1/11/91
2/10/91
3/10/92
4/10/92
1/11/92

24
24
18
18
12

TIPO: Manuteno
SALRIO

4
4
9

TEMPO
DATA DE
ALOCADO
INCIO NO
PROJETO AO PROJETO
1/05/93
4/01/91
1/11/92

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

12
24
12
8

Passagem
a 4FN

esquema
na 3FN

Normalizao
1
passo
Passagem
a 3FN

esquema
na 2FN
esquema relacional
normalizado
esquema de
arquivo ou
documento

Passagem
a 2FN

esquema
na 1FN
Representao
como tabela
N

esquema no
normalizado

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

Passagem
a 1FN

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

10

Tabela aninhada
exemplo
CdProj

Tipo

Descr
CodEmp

Nome

Emp
Cat

Sal

DataIni

TempAl

LSC001

Novo Desenv.

Sistema de 2146
Estoque
3145
6126
1214
8191

Joo
Slvio
Jos
Carlos
Mrio

A1
A2
B1
A2
A1

4
4
9
4
4

1/11/91
2/10/91
3/10/92
4/10/92
1/11/92

24
24
18
18
12

PAG02

Manuteno

Sistema de 8191
RH
4112
6126

Mrio
Joo
Jos

A1
A2
B1

4
4
9

1/05/93
4/01/91
1/11/92

12
24
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

11

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

12

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

13

Arquivo em Cobol
FD
01

Arq-Alunos
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

14

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

15

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

16

Forma normal
Regra que uma tabela deve obeder por 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

17

Passagem
a 4FN

Primeira forma normal


esquema
1FN
Passagem
na 3FN

a 3FN

esquema
na 2FN
Passagem
a 2FN

esquema de
arquivo ou
documento

esquema
na 1FN
Representao
como tabela
N

esquema no
normalizado

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

Passagem
a 1FN

18

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

19

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

20

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

21

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

22

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

23

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

24

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

25

Passagem 1FN
criar tabela referente a tabela N
N
(CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN
(CodProj, Tipo, Descr)

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

26

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

27

Passagem 1FN
criar tabela referente a tabela aninhada
N
(CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

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

28

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

29

Passagem 1FN
definio de chave primria
N
(CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN

Tabela de nvel mais externo:


basta transcrever a chave

(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

30

Passagem 1FN
definio de chave primria
1FN
(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?

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
1FN
(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

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

32

Passagem a 1FN - exemplo


1FN
(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

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

33

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

2146

Joo

A1

1/11/91

24

3145
6126
1214
8191
8191

Slvio
Jos
Carlos
Mrio
Mrio

A2
B1
A2
A1
A1

4
9
4
4
4

2/10/91
3/10/92
4/10/92
1/11/92
1/05/93

24
18
18
12
12

4112
6126

Joo
Jos

A2
B1

4
9

4/01/91
1/11/92

24
12

LSC001
LSC001
LSC001
LSC001
LSC001
PAG02
PAG02
PAG02

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

34

Passagem 1FN
exemplo
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))

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

35

Passagem 1FN
decomposio em tabelas
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))

1FN
Cursos

(Cod-Curso, Nome-Curso, Numero-Vagas-Curso)

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
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))

1FN
Cursos
Candidatos

(Cod-Curso, Nome-Curso, Numero-Vagas-Curso)


(Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)

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

37

Passagem 1FN
definio da chave primria
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))

Tabela de nvel mais externo:


basta transcrever a chave

1FN
Cursos
Candidatos

(Cod-Curso, Nome-Curso, Numero-Vagas-Curso)


(Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)

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
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))

1FN
Cursos
Candidatos

(Cod-Curso, Nome-Curso, Numero-Vagas-Curso)


(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?
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
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand, Escore-Cand))

1FN
Cursos
Candidatos

(Cod-Curso, Nome-Curso, Numero-Vagas-Curso)


(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?
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

40

Passagem a 1FN
exemplo Pascal/COBOL

Arq-Alunos (Cod-Al, Nome-Al,


(Cod-Curso, Sem-ingresso)
(Cod-Disc,
(Sem-Disc-Cursada, Nota-Disc)))

1FN
Alunos
AlunoCurso
AlunoDisc
AlunoDiscSem

(Cod-Al, Nome-Al)
(Cod-Al, Cod-Curso, Sem-ingresso)
(Cod-Al, Cod-Disc)
(Cod-Al, 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

41

Passagem a 1FN
exemplo Pascal/COBOL

Arq-Alunos (Cod-Al, Nome-Al,


(Cod-Curso, Sem-ingresso)
(Cod-Disc,
(Sem-Disc-Cursada, Nota-Disc)))

1FN
Alunos
AlunoCurso
AlunoDisc
AlunoDiscSem

(Cod-Al, Nome-Al)
(Cod-Al, Cod-Curso, Sem-ingresso)
(Cod-Al, Cod-Disc)
(Cod-Al, 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

42

Dependncia funcional
Para entender 2FN e 3FN
necessrio compreender o conceito de
dependncia funcional.

Em uma tabela relacional, diz-se que


uma coluna C2 depende funcionalmente de uma
coluna C1 (ou que a coluna C1 determina a coluna
C2) quando,
em todas linhas da tabela, para cada valor de C1
que aparece na tabela, aparece o mesmo valor de
C2.
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

43

Exemplo de dependncia funcional

Cdigo

Salrio

E1

10

E3

10

E1

10

E2

E3

10

E2

E1

10

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

44

Dependncia funcional
exemplos
A

B
C
B
B
C
C
A
A
A
B
C
A
C

5
4
6
5
2
4
10
12
10
5
4
10
4

2
2
7
2
2
2
5
3
5
2
2
5
2

20
15
20
20
15
15
18
18
18
20
15
18
15

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

Dependncia funcional
inexistente na tabela

AB

45

Dependncia funcional
exemplos
A

B
C
B
B
C
C
A
A
A
B
C
A
C

5
4
6
5
2
4
10
12
10
5
4
10
4

2
2
7
2
2
2
5
3
5
2
2
5
2

20
15
20
20
15
15
18
18
18
20
15
18
15

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

Dependncia funcional
existente na tabela

AD

46

Dependncia funcional
exemplos
A

B
C
B
B
C
C
A
A
A
B
C
A
C

5
4
6
5
2
4
10
12
10
5
4
10
4

2
2
7
2
2
2
5
3
5
2
2
5
2

20
15
20
20
15
15
18
18
18
20
15
18
15

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

Uma coluna pode


depender funcionalmente
de uma combinao de
mais de uma coluna

(A,B) C

47

Segunda forma normal


2FN
Objetiva eliminar um certo tipo de redundncia de
dados
Exemplo
(CodProj, CodEmp, Nome, Cat,, Sal, DataIni, TempAl)

Dados referentes a empregados (Nome, Cat e Sal)


Redundantes, para os empregados que trabalham
em mais de um projeto

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
ProjEmp:

CdProj CodEmp Nome

Cat

Sal

DataIni

TempAl

2146

Joo

A1

1/11/91

24

3145
6126
1214
8191
8191

Slvio
Jos
Carlos
Mrio
Mrio

A2
B1
A2
A1
A1

4
9
4
4
4

2/10/91
3/10/92
4/10/92
1/11/92
1/05/93

24
18
18
12
12

4112
6126

Joo
Jos

A2
B1

4
9

4/01/91
1/11/92

24
12

LSC001
LSC001
LSC001
LSC001
LSC001
PAG02
PAG02
PAG02

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

49

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

50

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

51

Dependncias parciais

1FN
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

52

Dependncias no parciais

1FN
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

53

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

54

Passagem 2FN
Tabela com uma coluna na chave
1FN
(CodProj, Tipo, Descr)
(CodProj, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)

2FN
(CodProj, Tipo, Descr)

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

55

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

56

Passagem 2FN
1FN
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?
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999

57

Passagem 2FN
1FN
ProjEmp (

CodProj,

CodEmp ,

Nome, Cat, Sal, DataIni, TempAl

2FN
ProjEmp (
Emp (

CodProj,

CodEmp ,

CodEmp , DataIni,

Nome,

Cat,

Sal

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

TempAl

58

Tabelas na 2FN

Proj:

CdProj

Tipo

Descr

LSC001

Novo Desenv.

Sistema de Estoque

PAG02

Manuteno

Sistema de RH

ProjEmp:

CdProj

CodEmp

DataIni

TempAl

LSC001
LSC001
LSC001
LSC001
LSC001
PAG02
PAG02
PAG02

2146

1/11/91

24

3145
6126
1214
8191
8191

2/10/91
3/10/92
4/10/92
1/11/92
1/05/93

24
18
18
12
12

4112
6126

4/01/91
1/11/92

24
12

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

59

Tabelas na 2FN
Emp:
CodEmp

Nome

Cat

Sal

2146
3145
6126
1214
8191
8191
4112
6126

Joo
Slvio
Jos
Carlos
Mrio
Mrio
Joo
Jos

A1
A2
B1
A2
A1
A1
A2
B1

4
4
9
4
4
4
4
9

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

60

Terceira forma normal (3FN)


Trata de um outro tipo de redundncia
Exemplo
Emp (

CodEmp,

Nome,

Cat,

Sal

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
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)


Emp:
CodEmp

Nome

Cat

Sal

2146
3145
6126
1214
8191
8191
4112
6126

Joo
Slvio
Jos
Carlos
Mrio
Mrio
Joo
Jos

A1
A2
B1
A2
A1
A1
A2
B1

4
4
9
4
4
4
4
9

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

62

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

63

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

64

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

65

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

66

Tabelas na 3FN

Proj:

CdProj

Tipo

Descr

LSC001

Novo Desenv.

Sistema de Estoque

PAG02

Manuteno

Sistema de RH

ProjEmp:

CdProj

CodEmp

DataIni

TempAl

LSC001
LSC001
LSC001
LSC001
LSC001
PAG02
PAG02
PAG02

2146

1/11/91

24

3145
6126
1214
8191
8191

2/10/91
3/10/92
4/10/92
1/11/92
1/05/93

24
18
18
12
12

4112
6126

4/01/91
1/11/92

24
12

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

67

Tabelas na 3FN
Emp:
NmEmp

Nome

Cat

2146
3145
6126
1214
8191
8191
4112
6126

Joo
Slvio
Jos
Carlos
Mrio
Mrio
Joo
Jos

A1
A2
B1
A2
A1
A1
A2
B1

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

Cat:
Cat

Sal

A1
A2
B1

4
4
9

68

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

69

Exemplo para 4FN


Modelo original
EQUIPAMENTO

PROJETO
nome

nome

cdigo

cdigo
UTILIZAO
cdigo
nome
EMPREGADO

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

70

Exemplo para 4FN


Requisitos alterados
EQUIPAMENTO

PROJETO
nome

Proj-Eq

cdigo

nome
cdigo

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

71

Tabela Utilizao
com requisitos alterados
CodProj
1
1
1
1
1
1
2
2
3
3
3
3
3
3
4

CodEmp
1
2
3
1
2
3
2
2
3
4
3
4
3
4
2

CodEquip
1
1
1
2
2
2
2
4
1
1
3
3
5
5
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

72

Dependncias multivaloradas
CodProj
1
1
1
1
1
1
2

CodEmp
1
2
3
1
2
3
2

CodEquip
1
1
1
2
2
2
2

CodProj CodEmp
CodProj CodEquip

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

73

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

74

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

75

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

76

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

77

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

78

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

79

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

80

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

81

Atributo implcito
Ordenao
N
Arq-Candidatos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso,
(Cod-Cand, Nome-Cand))

Processo de normalizao resulta em:


4FN
Cursos
Candidatos

(Cod-Curso, Nome-Curso, Numero-Vagas-Curso)


(Cod-Curso,Cod-Cand, Nome-Cand)

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

82

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 OrdemCand)

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

83

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

84

Integrao de modelos
modelo relacional integrado

integrao

modelo
relacional 1

modelo
relacional 2

normalizao

normalizao

esquema de
arquivo/documento 1

...

esquema de
arquivo/documento 2

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

85

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

86

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

87

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

88

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

89

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

90

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

91

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

92

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

93

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

94

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

95

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

96

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

97

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

98

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

99

Volta 2FN
Integrao destes dois modelos resultaria no modelo
integrado abaixo mostrado.
Modelo integrado:
Departamento

(CodDepto, NomeDepto,

CodGerenteDepto, LocalDepto, NomeGerenteDepto)

No est na 2FN

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

100

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

101

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

102

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

103

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

104

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

105

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

106

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

107

Exerccio 6.1
dependncias transitivas
2FN
ItemVenda (NmeroNF,CodigoTipoProd,NumeroProd, QtdeItem,PreoItem)
Produto (CodigoTipoProd,NumeroProd, DescricaoProd)
TipoProd (CodigoTipoProd, DescricaoTipoProd )
Venda (NmeroNF, DataVenda, CodReg, CodEmp, NomeEmp)

2FN contm uma dependncia transitiva


Na tabela Venda
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
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)

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

109

You might also like