Sei sulla pagina 1di 19

Normalizao

-Engenharia reversa -1FN, 2FN, 3FN

Definio
Regras que uma tabela deve obedecer para ser considerada bem projetada Estas normas so definidas com base nas chaves das relaes e nas dependncias funcionais entre seus atributos Estudaremos a 1FN, 2FN e 3FN embora hajam outras

Primeira Forma Normal (1FN)


Diz-se que uma tabela est na 1FN quando ela no contm tabelas aninhadas

Exemplo de tabela no-normalizada

Passagem 1FN
Passo a passo: 1) Criar uma tabela referente a tabela aninhada
A chave primria da nova tabela idntica a da tabela no-normalizada

2) Compor as colunas
Chave primria da tabela no-normalizada mais as novas colunas (da tabela aninhada)

3) Definir as chaves primrias da tabela resultante


5

Exemplo
No-normalizada
(CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl))

1FN: 1 passo
(CodProj, Tipo, Descr)

2 passo
(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl)

3 passo
(CodProj, Tipo, Descr) (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl)
6

Resultado

Dependncia Funcional
Por definio temos que:
Uma coluna C2 depende funcionalmente de uma coluna C1 (ou ainda, que a coluna C1 determina a coluna C2) quando em todas as linhas da tabela, para cada valor de C1 que aparece na tabela, aparece o mesmo valor de C2.

Exemplo
Entre as colunas A e B no existe dependncia funcional Porm, a coluna D depende da coluna A, ou ainda, A coluna A determina a coluna D

Segunda Forma Normal (2FN)

Uma tabela encontra-se na segunda forma normal, quando, alm de estar na 1FN, no contm dependncias parciais
Uma coluna est em dependncia parcial quando depende de apenas uma parte da chave primria composta

10

Passagem a 2FN
Objetiva eliminar um redundncia de dados Exemplo certo tipo de

(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl)

Dados referentes a empregados (Nome, Cat e Sal)


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

11

Exemplo

12

Analisando as dependncias

Dependncias parciais

Dependncias no parciais
13

Resultado da 2FN
1FN:
ProjEmp(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl)

2FN: 1 passo: Manuteno dos campos com dependncia total (no parcial)
ProjEmp(CodProj, CodEmp, DataIni, TempoAl)

2FN: 2 passo: Nova tabela com chave primria e seus dependentes


Emp(CodEmp, Nome, Cat, Sal)

14

Casos especiais
Se uma tabela possui apenas chaves simples (no compostas) a tabela dita que j est na 2FN Se uma tabela s possui campos chaves, ento tambm j est de acordo com a 2FN e a normalizao no mais necessria

15

Terceira Forma Normal (3FN)


Alm de estar na 2FN, Eliminar redundncia de dados causadas por dependncias transitivas
Um campo repetido tantas vezes quantas outro campo de outra coluna

16

Dependncia transitiva

17

Passagem a 3FN
Na tabela EMPREGADO (Emp) o campo Sal ser repetido em funo do valor do campo Cat Devemos extrair a coluna Sal para uma nova tabela, resultando o projeto final em

18

Revisando...
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
1FN + ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat, Sal)

3FN
2FN + Emp (CodEmp, Nome, Cat) Cat (Cat, Sal)
19

Potrebbero piacerti anche