Você está na página 1de 30

Banco de Dados I

4º Período - 2008/02
UNIPAC - Ipatinga
Prof. Christiano Colen Venancio
NORMALIZAÇÃO
Objetivos
■ Reagrupar informações para:
– eliminar redundância de dados;
– eliminar estruturas inexistentes no modelo ER
(atributos multivalorados).

Christiano Colen
3
Unipac - 2008
Normalização

Christiano Colen
4
Unipac - 2008
Representação na forma de tabela
não normalizada
•Tabela Não-normalizada ou tabela não-primeira-forma-
normal
•possui uma ou mais tabelas aninhadas
•tabela aninhada (ou grupo repetido ou coluna multi-
valorada ou coluna não atômica)
•Abreviatura: ÑN

Christiano Colen
5
Unipac - 2008
Tabela Aninhada - exemplo

Proj(CodProj, Tipo, Descr,


(CodEmp, Nome, Cat, Sal, DataIni,
TempAL)) Christiano Colen 6
Unipac - 2008
Forma Normal

Regra que uma tabela deve obedecer para poder ser considerada
“bem projetada”;
Há diversas formas normais, cada vez mais rígidas, para verificar
tabelas relacionais;
Aqui tratadas:
primeira forma normal (1FN);
segunda forma normal (2FN);
terceira forma normal (3FN);
quarta forma normal (4FN);

Christiano Colen
7
Unipac - 2008
Primeira Forma Normal (1FN)
■ Diz-se que uma tabela está na primeira
forma normal, quando ela não contém
tabelas aninhadas.

■ Alternativas:
– Construir uma única tabela com redundância de
dados;
– Construir uma tabela para cada tabela aninhada;
Christiano Colen
8
Unipac - 2008
Primeira Forma Normal (1FN) -
Uma única tabela
■ Uma tabela na qual os dados das linhas
externas à tabela aninhada são repetidos
para cada linha da tabela aninhada.
■ Exemplo: ProjEmp(CodProj, Tipo, Descr,
ComEmp, Nome, Cat, Sal, Dataini,
TempAl)
■ Dados do projeto aparecem repetidos para
cada empregado do projeto.
Christiano Colen
9
Unipac - 2008
Primeira Forma Normal (1FN) -
1 tabela para cada aninhada
■ Cria-se uma tabela referente a própria
tabela que está sendo normalizada e uma
tabela para cada tabela aninhada.
■ Exemplo:
– Proj(CodProj, tipo, Descr);
– ProjEmp(CodProj, CodEmp, Nome, Cat, Sal,
Dataini, TempAI);

Christiano Colen
10
Unipac - 2008
Passagem à 1FN
■ Passo 1:
– Criar uma tabela na 1FN referente à tabela não
normalizada;
– A chave primária da tabela na 1FN é idêntica a
chave da tabela ÑN
■ Passo 2:
– para cada tabela aninhada:
■ Criaruma tabela na 1FN composta pelas seguintes
colunas:
– a chave primária de cada uma das tabelas na qual a
tabela em questão está aninhada;
– as colunas da própria tabela aninhada.
Christiano Colen
11
Unipac - 2008
Christiano Colen
12
Unipac - 2008
Passagem à 1FN
■ Passo 3:
– Definir as chaves primárias das tabelas na 1FN
que correspondem a tabelas aninhadas

Christiano Colen
13
Unipac - 2008
Passagem à 1FN

Christiano Colen
14
Unipac - 2008
Passagem à 1FN

Christiano Colen
15
Unipac - 2008
Passagem à 1FN

Christiano Colen
16
Unipac - 2008
Dependência Funcional
■ Para entender 2FN e 3FN é necessário
compreender o conceito de dependência
funcional.
■ Em uma tabela relacional, diz-se que : uma
coluna C2 depende funcionalmente de uma
coluna C1 (ou qua 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
Christiano Colen valor de C2. 17
Unipac - 2008
Dependência Funcional

Christiano Colen
18
Unipac - 2008
Dependência Funcional

Christiano Colen
19
Unipac - 2008
Segunda Forma Normal
■ Objetiva eliminar um certo tipo de
redundância de dados.
■ Exemplo: (CodProj, CodEmp, Nome, Cat,
Sal, DataIni, TempAl)

■ Dados referentes a empregados (Nome,


Cat, Sal)
– Redundantes para os empregados que
trabalham em mais de um projeto.
Christiano Colen
20
Unipac - 2008
Segunda Forma Normal

Christiano Colen
21
Unipac - 2008
Passagem a 2FN
■ Uma tabela está na 2FN quando: Além de estar
na 1 FN, não contém dependências parciais.
– Dependência parcial: Ocorre quando uma coluna
depende apenas de parte de uma chave primária
composta.

Christiano Colen
22
Unipac - 2008
Passagem à 2 FN
■ Tabela 1Fn e que possui apenas uma coluna
como chave primária (não contém
dependências parciais);
■ É impossível uma coluna depender de uma
parte da chave primária, quando a chave
primária não é composta por partes.

■ Toda tabela 1FN que possui apenas uma


coluna como chave primária já está na 2FN
Christiano Colen
23
Unipac - 2008
Exemplo:

Christiano Colen
24
Unipac - 2008
Terceira Forma Normal
■ Trata de um outro tipo de dependência.
Exemplo:
– Emp (CodEmp, Nome, Cat, Sal)

■ Considerar :
– Salário (coluna Sal) é determinado pela
categoria funcional (coluna Cat)
– Salário que é pago a uma categoria funcional é
armazenado tantas vezes quantos empregados
possuam a categoria funcional
Christiano Colen
25
Unipac - 2008
Terceira Forma Normal

Christiano Colen
26
Unipac - 2008
Terceira Forma Normal

Christiano Colen
27
Unipac - 2008
Terceira Forma Normal
■ Uma tabela encontra-se na 3FN quando,
além de estar na 2FN, não contém
dependências transitivas

Christiano Colen
28
Unipac - 2008
Normalização

Christiano Colen
29
Unipac - 2008
Problemas da Normalização
■ Chaves primárias omitidas ou incorretas;
■ Atributos relevantes implicitamente
representados;
■ Atributos irrelevantes, redundantes ou
derivados.

Christiano Colen
30
Unipac - 2008

Você também pode gostar