Normalização
• Tabela aninhada
• Coluna que, ao invés de conter valores atômicos, contém
tabelas aninhadas
• Grupo repetido
• Coluna multi-valorada
• Coluna não-atômica
Normalização
• Exemplo de tabela ÑN com tabela aninhada
• Esquema
Proj(CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni,
TempAl))
Normalização
• Há diversas formas normais, cada vez
mais rígidas, para verificar tabelas
relacionais:
• primeira forma normal (1FN),
• segunda forma normal (2FN),
• terceira forma normal (3FN),
• forma normal de Boyce-Codd (FNBC),
• quarta forma normal (4FN),
• quinta forma norma (5FN).
Normalização
• Representação gráfica da normalização
Normalização
• Conceito para cada forma normal
Normalização (1FN)
Normalização (1FN)
• Primeira forma normal (1FN)
• Uma tabela está na primeira forma normal, quando ela não
contém tabelas aninhadas
• Não possui colunas multi-valoradas (apenas colunas simples
e indivisíveis)
• É a correta
• Construir uma tabela para cada tabela aninhada
• Podem ser perdidas as relações entre os dados (iremos utilizar
essa notação para entender o esquema de normalização)
1º. Passo – Tabela Não Normalizada
• Construir uma tabela única com redundância
de dados. Escolher a chave primária
Ou
1ª Etapa
a) Relacionar todos os atributos
b) Escolher a chave primária
ProjEmpreg
(CodProj, Tipo, Descr, CodEmp, Nome, Categ, Salar, DtInicio)
2ª Etapa (1FN)
a) Isolar os atributos que não se repetem
b) criar uma nova tabela com os atributos que se repete, criando a PK
Proj(CodProj, Tipo, Descr)
ProjEmp(CodProj, CodEmp, Nome, Categ, Salar, DtInicio)
1a. Forma Normal
Como normalizar relações para 1a FN – atributos
multi-valorado
Ex:
Aluno = { RA, nome, idade, disciplinas}
Estrutura não-normalizada :
EMP-PROJ
CPF Num-Proj Horas Nome-Emp Nome-Proj Local-Proj
df1
df2
df3
• Dependência Funcional
Normalização (2FN)
• Passagem à 2FN
***Aluno colegial :
• Dados_Aluno(cod_aluno, nom_aluno,
periodo_aluno, val_mensalidade).
Limitações da Normalização
• O processo de normalização não conduz a
um modelo ER perfeito;
• A normalização elimina redundância de
dados detectados pelas formas normais
descritas;
• A decomposição até a 3FN é considerada
suficiente para muitos projetos de banco
de dados.
Normalização
• Para a maioria dos documentos e
arquivos:
• A decomposição até a 3FN é suficiente
• Na literatura, aparecem outras formas
normais:
• FNBC (Forma normal de Boyce/Codd). Utiliza a
Chave candidata. Substitui a 3FN (não
abordaremos!)
• 4FN
• 5FN
Normalização (4FN)
• Deverá estar na 3FN e as dependências
multivaloradas dependem da chave
• 3FN ou FNBC
Normalização (4FN)
• Resolução intuitiva
Normalização (5FN)
• De forma simplificada, pode-se dizer que uma relação
está em quinta forma normal quando seu conteúdo
não pode ser reconstituído a partir de várias outras
tabelas
Está na 1FN?
O que precisa?
Normalização – 1FN
Cliente Rua CPostal Cidade
João X 11 João
Pessoa
José Y 12 Cabedelo
Está na 1FN? ok Maria Z 13 Conde
Está na 2FN?
Cliente Filme Produtor Data Entrega
Está na 1FN? ok
Filme Produtor
Está na 2FN? Ok ET Spielberg
2001 Kubric
Está na 3FN?
Normalização – 3FN
Cliente Rua CPostal Cliente Filme Data Entrega
João ET 22/08/04 24/08/04
João X 11
João 2001 22/08/04 24/08/04
José Y 12
José ET 26/08/04 28/08/04
José 2001 26/08/04 28/08/04
CPostal Cidade
11 João
Pessoa Filme Realizador
12 Cabedelo ET Spielberg
2001 Kubric
Normalização
• Exercício 5.3. Normalizar
ÑN
paciente (nro_paciente, nome_paciente, nro_quarto,
descrição_quarto, nro_cômodos_quarto, (cod_médico, nome_médico,
fone_médico))
ÑN
aluno (nro_aluno, nome_aluno, nro_créditos, nro_depto, nome_depto,
(nro_curso, descrição_curso, ano_ingresso))
Referências Bibliográficas
• HEUSER, Carlos Alberto. Projeto de Banco de
Dados. Porto Alegre: Sagra Luzzatto, 2001.