Normalização - Banco de Dados
-
Upload
roberto-grande -
Category
Documents
-
view
11.672 -
download
6
Transcript of Normalização - Banco de Dados
NORMALIZAÇÃO
NORMALIZAÇÃO
• Conceito introduzido em 1970 por E. F. Codd (1FN)
• Processo matemático formal fundamentado na teoria dos conjuntos
• Aplica uma série de regras sobre as tabelas de um banco de dados para verificar se estas foram corretamente projetadas
OBJETIVOS PRINCIPAIS
• Garantir a integridade dos dados, evitando que informações sem sentido sejam inseridas
• Organizar e dividir as tabelas da forma mais eficiente possível, diminuindo a redundância e permitindo a evolução do banco de dados
FORMAS NORMAIS:
• 1FN – 1ª Forma Normal• 2FN – 2ª Forma Normal• 3FN – 3ª Forma Normal• FNBC – Forma Normal de Boyce e Codd• 4FN – 4ª Forma Normal• 5FN – 5ª Forma Normal
1FN – Primeira Forma Normal:
Os atributos da tabela não contêm grupos de repetição (tabelas aninhadas).
Passando para a 1FN:
Projeto
CodProj DescProj CodFunc NomeFunc CargoFunc SalFunc DtInicio
11 Alfa1001 Antonio Analista Sr 1800 02/01/2005
1004 Daniela Analista Pl 1200 05/01/2005
12 Beta 1003 Claudio Analista Sr 1800 10/02/2005
ProjFunc
CodProj CodFunc NomeFunc CargoFunc SalFunc DtInicio
11 1001 Antonio Analista Sr 1800 02/01/2005
11 1004 Daniela Analista Pl 1200 05/01/2005
12 1003 Claudio Analista Sr 1800 10/02/2005
Projeto
CodProj DescProj
11 Alfa
12 Beta
A tabela a seguir NÃO está na 1FN:
2FN – Segunda Forma Normal:
Condição: Chave Primária (PK) composta por mais de uma coluna.
ProjFunc
CodProj CodFunc NomeFunc CargoFunc SalFunc DtInicio
11 1001 Antonio Analista Sr 1800 02/01/2005
11 1004 Daniela Analista Pl 1200 05/01/2005
12 1003 Claudio Analista Sr 1800 10/02/2005
Todas as colunas que não fazem parte da PK dependem de todas ascolunas que compõem a PK.
ProjFunc
CodProj CodFunc DtInicio
11 1001 02/01/2005
11 1004 05/01/2005
12 1003 10/02/2005
Funcionario
CodFunc NomeFunc CargoFunc SalFunc
1001 Antonio Analista Sr 1800
1004 Daniela Analista Pl 1200
1003 Claudio Analista Sr 1800
A tabela a seguir NÃO está na 2FN:
Passando para a 2FN:
3FN – Terceira Forma Normal:
Não há dependências funcionais transitivas.Cada coluna não PK depende DIRETAMENTE da PK.
Funcionario
CodFunc NomeFunc CargoFunc SalFunc
1001 Antonio Analista Sr 1800
1004 Daniela Analista Pl 1200
1003 Claudio Analista Sr 1800
A tabela a seguir NÃO está na 3FN:
Passando para a 3FN:
Funcionario
CodFunc NomeFunc CargoFunc
1001 Antonio Analista Sr
1004 Daniela Analista Pl
1003 Claudio Analista Sr
CargoSalario
CargoFunc SalFunc
Analista Sr 1800
Analista Pl 1200
CodFunc CargoFunc SalFunc
Dependência Funcional Transitiva
FNBC – F N Boyce e Codd:Condição: Aplica-se a FNBC quando:
1. Encontramos duas ou mais chaves candidatas2. As chaves candidatas apresentam mais de um atributo (são compostas)3. Todas as chaves candidatas têm um atributo em comum
Vamos assumir que um professor está associado a mais de uma escola e uma sala.
Aluno(NomeAluno,EndAluno,NomeEscola,NrSala,NomeProf)
Exemplo:
Chaves Candidatas:
NomeAluno + EndAlunoNomeAluno + NrSalaNomeAluno + NomeProf
Neste exemplo:
1. Encontramos três chaves candidatas2. Todas são compostas3. Todas compartilham um mesmo atributo
Aplicando a FNBC: A tabela Aluno será dividida em duas tabelas: uma que contêmtodos os atributos que descrevem o aluno e outra que contêm os atributos quedesignam um professor em uma determinada escola e número de sala.
Aluno(NomeAluno,EndAluno,NomeEscola,NrSala)Professor(NomeEscola,NrSala,NomeProf)
4FN – Quarta Forma Normal:
Uma tabela não deve possuir mais de uma dependência multivalorada.
Passando para a 4FN:
A tabela a seguir NÃO está na 4FN:
ProjFuncEquip
CodProj CodFunc CodEquip
11 1001 A10
11 1002 A10
11 1001 A20
11 1002 A20
12 1001 A10
12 1001 A20
ProjFunc
CodProj CodFunc
11 1001
11 1002
12 1001
ProjEquip
CodProj CodEquip
11 A10
11 A20
12 A10
12 A20
CodProj CodFunc
CodProj CodEquip
5FN – Quinta Forma Normal:
Condição: Relacionamentos multiplos (ternários ... n-ários).
NÃO está na 5FN:
MatPedReq
Mat Ped Req
10 1001 1
10 1002 2
20 1001 2
10 1001 2
MatPed
Mat Ped
10 1001
10 1002
20 1001
PedReq
Ped Req
1001 1
1002 2
1001 2
MatReq
Mat Req
10 1
10 2
20 2
Está na 5FN:
A tabela está na 5FN quando o seu conteúdo NÃO puder ser reconstruídoAtravés da junção das tabelas secundárias.
1º passo: Decompor a tabela através da operação de projeção.2º passo: Reconstruir a tabela através da junção.