You are on page 1of 5

1

Normalização

 É um processo que consiste em uma série de testes sobre um


esquema para certificar se ele está ou não de acordo com
certas forma normais (FN), tendo em vista:
 eliminar redundâncias desnecessárias
 evitar problemas com a inserção, eliminação e
atualização de dados
 Uma relação está numa Forma Normal (FN) se satisfaz as
restrições definidas pela FN
 Vamos estudar 3 Formas normais, que são baseadas nas
dependências funcionais:
 Primeira Forma Normal (1FN)
 Segunda Forma Normal (2FN)
 Terceira Forma Normal (3FN)

• A passagem de uma forma normal para outra pode


implicar a decomposição da relação 2

1
Outros critérios de qualidade

 As FN consideradas isoladamente não garantem


um bom projeto.
 Como em geral é feita a decomposição de relações
para se chegar a uma FN, deve-se verificar
também:
 Junção sem perda (não aditiva)  para evitar
tuplas espúrias
 Preservação das dependências  todas as DFs
devem estar presentes em alguma das relações
normalizadas

Primeira Forma Normal (1FN)

 Obrigatória em um modelo normalizado


 Uma Relação está na primeira forma normal (1FN) quando
todos os seus atributos são elementares.
 Possui apenas valores atômicos (não possui atributo composto)
 Possui único valor (não possui atributos multivalorado)
 Exemplo:
A relação pessoa(RG,nome,endereço,fones) não está na 1FN se
endereço for atributo composto por rua, numero, cidade e/ou
fones for atributo multivalorado
Como normalizar?
Decompor a relação pessoa
 pessoa(RG,nome,rua,numero,cidade)  está na 1FN
 telefone(RG,fone)  está na 1FN

2
Segunda Forma Normal (2FN)

 Baseada em dependência funcional total.


 Utiliza o conceito de atributo não primo atributo que não faz
parte de qualquer chave candidata
 Definição: uma relação R está na 2FN se
• R esta na 1ª forma normal e
• Todo o atributo não primo R é totalmente dependente da chave
primária de R.
 Exemplo
Proprietario_C(RG, nome, placa-carro, data-aquisição)
F={RG nome; {RG,placa}  data-aquisição}
Proprietário_C está na 1FN, mas não está na 2FN pois nome é atributo
não primo e depende apenas de RG
Como normalizar?
Pessoa(RG, nome)
Proprietário (RG, placa-carro,data-aquisição)

Terceira Forma Normal (3FN)

 Baseada na dependência funcional transitiva


Uma DF XY é dita transitiva se ∃ Y não primo tal que XY e
Y Z
 Definição: uma relação R está na 3FN se
• R esta na 2ª forma normal e
• Nenhum atributo não primo é dependente transitivo da chave
primária de R (Não existe Y não primo tal que XY e YZ)
 Exemplo: empregado(RG, nomeE, numD, nomeD)
F={RG{nome, numD}; numD  nomeD}
 Está na 1FN  não exite atributo composto ou multivalorado
 Está na 2FN a chave só possui um atributo não é possível haver
dependência parcial da chave
 Não está na 3FN  RGnumD e numDnomeD e numD é não
primo
Como normalizar?
Empregado(RG,nomeE,numD) e Depto(numD, nomeD)
6

3
Terceira Forma Normal (3FN)
Outra definição

 Uma relação R está na 3FN se para toda DF XA em R temos:


(a) X é superchave de R, ou
(b) A é um atributo primo em R
Essa definição testa se R está na 3FN sem verificar se está na 2FN
 Exemplo
lote(id,cidade,nr-lote,cod-area)
F={id{cidade,nr-lote,cod-area}; (1)
{cidade, lote}  {id, cod-area}} (2)
cod-areacidade; (3)
Em (1) temos que id é chave superchave: ok
Em (2) temos que cidade + nr-lote é chave  superchave: ok
Em (3) temos que cod-area não é superchave, mas cidade é primo ok
Portanto, a relação lote está na 3FN.

Outros critérios de qualidade:


Preservação das dependências

 Seja H um conjunto de DFs de F que podem ser testadas


verificando-se apenas uma das relações resultante da decomposição
 A decomposição preserva as DFs se cada DF em F-H pode ser
inferida em H.
 Exemplo
Seja R(A, B, C, D) e a decomposição de R em:
R1(A, B) e R2 (B, C, D)
e seja F={A B; BC; DC; ABC}
Temos: H={AB; BC; DC}
F-H = {ABC}
Como AB+={A, B, C} sobre H, AB C pode ser
inferida sobre H, portanto a decomposição preserva
as dependências
8

4
Outros critérios de qualidade:
Junção sem perda

Dizemos que a junção é sem perda (de


integridade) quando ela não possibilita a
criação de tupla espúrias.
 Se R é uma relação com dependências funcionais F e se
D={R1,R2} é uma decomposição de R, dizemos que D
é sem perda se e somente se uma das seguintes DFs está
em F+
(R1∩R2)  (R1 – R2) ou (R1∩R2)  (R2- R1)
 Exemplo
R(A, B, C) e F {AB; AC) e D={R1(A,B), R2(B,C)}
Temos (R1∩R2) R1-R2 ⇒B A
(R1∩R2) R2-R1 ⇒ B  C
B+ = {B} sobre F. Assim, BA e B C não pertencem a F+
Portanto, a junção não é sem perda
9

Exercício
Considere a relação R (A, B, C, D, E, G, H, I, J, K, L}
com o seguinte conjunto de dependências funcionais
F= {ABC, BG, BE, CD, DEHIJ, GK,
IL}
a) Calcule (ABC)+
b) ABC é uma chave para R?
c) Quais são as chaves para R?
d) Considerando que todos os atributos são atômicos e não são
multivalorados, R está na 2.ª FN?
e) R está na 3.ª FN?
f) A decomposição R em R1(A, B, C, D, E) e
R2 ( B, G, H, I, J, K, L) é sem perda?
g) R1 e R2 é uma decomposição que preserva as DF´s?

10