Você está na página 1de 45

1

Normalização

Processo que visa eliminar redundância de


dados em arquivos ou tabelas.

Teoria da Normalização: conjunto de


regras (formas normais) que determinam
formas adequadas, sem redundâncias, de
representação dos dados.
2

Normalização esquema Passagem


na FNBC a FNBC
Passagem esquema
a 4FN/5FN na 3FN
Passagem
a 3FN
esquema relacional
normalizado esquema
na 2FN

esquema de Passagem
arquivo ou a 2FN
documento
Representação esquema
como tabela na 1FN
ÑN Passagem
esquema não
normalizado a 1FN
3

Documento RELATÓRIO DE ALOCAÇÃO A PROJETO

CÓDIGO DO PROJETO: LSC001 TIPO: Novo Desenv.


DESCRIÇÃO: Sistema de Estoque
CÓDIGO DO NOME CATEGORIA SALÁRIO DATA DE TEMPO
EMPREGADO FUNCIONAL INÍCIO NO ALOCADO AO
PROJETO PROJETO

2146 João A1 4 1/11/91 24


3145 Sílvio A2 4 2/10/91 24
6126 José B1 9 3/10/92 18
1214 Carlos A2 4 4/10/92 18
8191 Mário A1 4 1/11/92 12

CÓDIGO DO PROJETO: PAG02 TIPO: Manutenção


DESCRIÇÃO: Sistema de RH
CÓDIGO DO NOME CATEGORIA SALÁRIO DATA DE TEMPO
EMPREGADO FUNCIONAL INÍCIO NO ALOCADO
PROJETO AO PROJETO

8191 Mário A1 4 1/05/93 12


4112 João A2 4 4/01/91 24
6126 José B1 9 1/11/92 12
4

Tabela Não-Normalizada (ÑN)


CódProj Tipo Descr Emp
CodEmp Nome Cat Sal DataIni TempAl

LSC001 Novo Desenv. Sistema de 2146 João A1 4 1/11/91 24


Estoque 3145 Sílvio A2 4 2/10/91 24
6126 José B1 9 3/10/92 18
1214 Carlos A2 4 4/10/92 18
8191 Mário A1 4 1/11/92 12
PAG02 Manutenção Sistema de 8191 Mário A1 4 1/05/93 12
RH 4112 João A2 4 4/01/91 24
6126 José B1 9 1/11/92 12

Tabela não-normalizada possui tabelas aninhadas,


grupos de repetição ou atributos multivalorados.
5

Tabela Não-Normalizada (ÑN)


CódProj Tipo Descr Emp
CodEmp Nome Cat Sal DataIni TempAl

LSC001 Novo Desenv. Sistema de 2146 João A1 4 1/11/91 24


Estoque 3145 Sílvio A2 4 2/10/91 24
6126 José B1 9 3/10/92 18
1214 Carlos A2 4 4/10/92 18
8191 Mário A1 4 1/11/92 12
PAG02 Manutenção Sistema de 8191 Mário A1 4 1/05/93 12
RH 4112 João A2 4 4/01/91 24
6126 José B1 9 1/11/92 12

Proj (CodProj, Tipo, Descr,


(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
6

Primeira Forma Normal (1FN)

Uma tabela encontra-se na primeira forma normal


quando não possui tabelas aninhadas
(grupos de repetição, atributos multivalorados).
7

Passagem à 1FN
ÑN
Proj (CodProj, Tipo, Descr,
(CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN
Proj (CodProj, Tipo, Descr)

ProjEmp ( CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl )

CodProj tem que fazer parte da chave pois cada


empregado pode participar de mais de um projeto.
8

Passagem à 1FN
Proj:
CódProj Tipo Descr
LSC001 Novo Desenv. Sistema de Estoque
PAG02 Manutenção Sistema de RH

ProjEmp:
CódProj CodEmp Nome Cat Sal DataIni TempAl

LSC001 2146 João A1 4 1/11/91 24


LSC001 3145 Sílvio 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 Mário A1 4 1/11/92 12
PAG02 8191 Mário A1 4 1/05/93 12
PAG02 4112 João A2 4 4/01/91 24
PAG02 6126 José B1 9 1/11/92 12
9

Passagem à 1FN
Ñ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)
Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)

Cada candidato participa de apenas um concurso.


10

Dependência Funcional
Um atributo C2 depende funcionalmente de
um atributo C1 (ou C1 determina C2) quando,
em todas as tuplas da tabela, cada valor de C1
está sempre associado ao mesmo valor de C2.

Mais formalmente, C1 determina C2, quando


para quaisquer duas tuplas X e Y da tabela, se
X[C1] = Y[C1] então X[C2] = Y[C2].

Representação: C1 → C2
11

Dependência Funcional

… Cargo … Salário …
E1 10
E3 10
E1 10
E2 5
E3 10
E2 5
E1 10

Cargo → Salário
12

Dependência Funcional
A B C D
B 5 2 20
C 4 2 15 A não determina B: A  B
B 6 7 20
B 5 2 20
C 2 2 15 A determina D: A  D
C 4 2 15
A 10 5 18 O par (A,B) determina C: (A,B)  C
A 12 3 18
A 10 5 18
B 5 2 20
C 4 2 15
A 10 5 18
C 4 2 15
13

Segunda Forma Normal (2FN)


ProjEmp:
CódProj CodEmp Nome Cat Sal DataIni TempAl

LSC001 2146 João A1 4 1/11/91 24


LSC001 3145 Sílvio 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 Mário A1 4 1/11/92 12
PAG02 8191 Mário A1 4 1/05/93 12
PAG02 4112 João A2 4 4/01/91 24
PAG02 6126 José B1 9 1/11/92 12
14

Dependência Parcial

Uma dependência (funcional) parcial ocorre


quando um atributo não-chave depende de
parte da chave primária.

Nesse caso, a chave primária é composta


(formada por mais de um atributo).

Atributos não-chave são aqueles que não


fazem parte da chave primária.
15

Dependência Parcial
ProjEmp:
CódProj CodEmp Nome Cat Sal DataIni TempAl

LSC001 2146 João A1 4 1/11/91 24


LSC001 3145 Sílvio 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 Mário A1 4 1/11/92 12
PAG02 8191 Mário A1 4 1/05/93 12
PAG02 4112 João A2 4 4/01/91 24
PAG02 6126 José B1 9 1/11/92 12

Dependências funcionais parciais:


CodEmp → Nome
CodEmp → Cat
CodEmp → Sal
16

Segunda Forma Normal (2FN)

Uma tabela encontra-se na segunda forma normal


quando, além de estar na 1FN, cada atributo não-
chave não for dependente de parte da chave
primária (dependência parcial).

Todos os atributos não-chave devem depender


totalmente da chave primária (dependência total).

Atributos não-chave são aqueles que não fazem


parte da chave primária.
17

Segunda Forma Normal (2FN)


ProjEmp:
CódProj CodEmp Nome Cat Sal DataIni TempAl

LSC001 2146 João A1 4 1/11/91 24


LSC001 3145 Sílvio 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 Mário A1 4 1/11/92 12
PAG02 8191 Mário A1 4 1/05/93 12
PAG02 4112 João A2 4 4/01/91 24
PAG02 6126 José B1 9 1/11/92 12

A tabela ProjEmp não está na 2FN.


18

Segunda Forma Normal (2FN)


dependências não parciais (totais)

1FN
ProjEmp ( CodProj, CodEmp,
CodEmp Nome, Cat, Sal, DataIni, TempAl )

dependências parciais
19

Passagem à 2FN
1FN
ProjEmp ( CodProj, CodEmp,
CodEmp Nome, Cat, Sal, DataIni, TempAl )

2FN

ProjEmp ( CodProj, CodEmp , DataIni, TempAl )

Emp ( CodEmp , Nome, Cat, Sal )


20

Tabelas na 2FN
21

Definição mais geral da 2FN

Uma tabela encontra-se na segunda forma normal


quando, além de estar na 1FN, cada atributo não-
chave não é dependente de parte de nenhuma
chave candidata (dependência parcial).

Todos os atributos não-chave devem depender


totalmente de todas as chaves candidatas.

Atributos não-chave são aqueles que não fazem


parte de nenhuma chave candidata.
22

Terceira Forma Normal (3FN)


23

Dependência Transitiva

Uma dependência (funcional) transitiva X→Z


ocorre quando existe um atributo Y tal que
X→Y e Y→Z.
24

Dependência Transitiva

Dependência transitiva:
CodEmp → Cat
CodEmp → Sal CodEmp → Cat → Sal
Cat → Sal
25

Terceira Forma Normal (3FN)

Uma tabela encontra-se na terceira forma normal


quando, além de estar na 2FN, nenhum atributo
não-chave depende da chave primária de forma
transitiva.
26

Terceira Forma Normal (3FN)

A tabela Emp não está na 3FN.


27

Terceira Forma Normal (3FN)

Emp ( CodEmp, Nome, Cat, Sal )

Sal depende de CodEmp também por transitividade


(de forma indireta).
28

Passagem à 3FN
2FN

Emp ( CodEmp, Nome, Cat, Sal )

3FN

Emp ( CodEmp, Nome, Cat ) Cat ( Cat, Sal )


29

Tabelas na 3FN
30

Definição mais geral da 3FN

Uma tabela encontra-se na terceira forma normal


quando, além de estar na 2FN, nenhum atributo
não-chave depende de alguma chave candidata de
forma transitiva.
31

Normalização 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)
32

Forma Normal Boyce/Codd (FNBC)

Peça ( Código, Nome, Cor, Forma, Preço )

Peça ( Código, Nome, Cor, Forma, Preço )

Código e Nome são atributos determinantes.


33

Forma Normal Boyce/Codd (FNBC)

Uma tabela encontra-se na forma normal


Boyce/Codd quando todo determinante for
uma chave.
34

Passagem à FNBC

Ñ FNBC
Peça ( Código, Nome, Cor, Forma, Preço )

FNBC
Peça ( Código, Nome, Cor, Preço )

Forma ( Nome, Forma )


35

Quarta Forma Normal (4FN)

PROJETO EQUIPAMENTO

Proj-Eq
nome nome
código código

Proj-Emp
código
nome

EMPREGADO
36

Quarta Forma Normal (4FN)


CodProj CodEmp CodEquip
em 1 trabalham {1,2,3} e são usados {A,B}
1 1 A
1 2 A
1 3 A em 2 trabalha {2} e são usados {B,D}
1 1 B
1 2 B em 3 trabalham {3,4} e são usados {A,C,E}
1 3 B
2 2 B em 4 trabalha {2} e é usado {E}
2 2 D
3 3 A
3 4 A
3 3 C CodProj multidetermina CodEmp
3 4 C
3 3 E CodProj multidetermina CodEquip
3 4 E
4 2 E
37

Quarta Forma Normal (4FN)


CodProj CodEmp CodEquip
1 1 A CodProj multidetermina CodEmp
1 2 A
1 3 A CodProj multidetermina CodEquip
1 1 B
1 2 B
1 3 B
2 2 B CodProj →→ CodEmp
2 2 D CodProj →→ CodEquip
3 3 A
3 4 A
3 3 C
3 4 C
3 3 E Dependência Multivalorada
3 4 E
4 2 E
38

Quarta Forma Normal (4FN)

Uma tabela encontra-se na quarta forma normal


quando, além de estar na 3FN, não possui
dependências multivaloradas.
39

Passagem à 4FN

3FN
Utiliz ( CodProj, CodEmp, CodEquip )
CodProj →→ CodEmp
CodProj →→ CodEquip

4FN
ProjEmp ( CodProj, CodEmp )

ProjEquip ( CodProj, CodEquip )


40

Passagem à 4FN

3FN
Utiliz ( CodProj, CodEmp, CodEquip )
CodProj →→ CodEmp
CodProj →→ CodEquip

4FN
ProjEmp ( CodProj, CodEmp )

ProjEquip ( CodProj, CodEquip )


41

Quinta Forma Normal (5FN)


ESQUEMA DESEJADO

FORNECEDOR PEÇA

FORNEC PEÇA

PROJETO
PROJETO
ESQUEMA IMPLEMENTADO
42
43
44
45

Você também pode gostar