Professional Documents
Culture Documents
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
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
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
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
2146
3145
6126
1214
8191
Joo
Slvio
Jos
Carlos
Mrio
A1
A2
B1
A2
A1
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
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
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
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
17
Passagem
a 4FN
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
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)
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)
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
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)
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)
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
32
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:
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
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
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))
1FN
Cursos
Candidatos
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
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
40
Passagem a 1FN
exemplo Pascal/COBOL
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
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.
43
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
(A,B) C
47
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
48
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
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,
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,
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
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 ,
57
Passagem 2FN
1FN
ProjEmp (
CodProj,
CodEmp ,
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
CodEmp,
Nome,
Cat,
Sal
Considerar
salrio (coluna Sal) determinado pela categoria
funcional (coluna Cat)
61
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
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
63
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
64
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
Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999
69
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
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
77
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
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
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))
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
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
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)
(2)
(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
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
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
95
Integrao de tabelas
com chaves contidas
No integrar quando tabela contm dados alm da
chave primria
AlunoSem
(Cod-Al,Sem-Disc, BolsaSimNao)
AlunoDiscSem
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
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
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,
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
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)
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