SlideShare uma empresa Scribd logo
1 de 10
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).
 A tabela a seguir NÃO está na 1FN:
                                              Projeto
CodProj    DescProj    CodFunc        NomeFunc            CargoFunc          SalFunc        DtInicio
                      1001          Antonio             Analista Sr        1800        02/01/2005
11        Alfa
                      1004          Daniela             Analista Pl        1200        05/01/2005
12        Beta        1003          Claudio             Analista Sr        1800        10/02/2005


 Passando para a 1FN:

                                ProjFunc                                                Projeto
CodProj     CodFunc   NomeFunc       CargoFunc      SalFunc           DtInicio    CodProj     DescProj
11         1001       Antonio       Analista Sr     1800          02/01/2005      11          Alfa
11         1004       Daniela       Analista Pl     1200          05/01/2005      12          Beta
12         1003       Claudio       Analista Sr     1800          10/02/2005
2FN – Segunda Forma Normal:
Condição: Chave Primária (PK) composta por mais de uma coluna.
Todas as colunas que não fazem parte da PK dependem de todas as
colunas que compõem a PK.
A tabela a seguir NÃO está na 2FN:

                                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

Passando para a 2FN:
                  Funcionario                                           ProjFunc
 CodFunc    NomeFunc     CargoFunc        SalFunc          CodProj    CodFunc       DtInicio
 1001      Antonio      Analista Sr       1800             11         1001         02/01/2005
 1004      Daniela      Analista Pl       1200             11         1004         05/01/2005
 1003      Claudio      Analista Sr       1800             12         1003         10/02/2005
3FN – Terceira Forma Normal:
Não há dependências funcionais transitivas.
Cada coluna não PK depende DIRETAMENTE da PK.

A tabela a seguir NÃO está na 3FN:
                 Funcionario
 CodFunc   NomeFunc       CargoFunc     SalFunc         CodFunc  CargoFunc  SalFunc
 1001      Antonio        Analista Sr   1800
 1004      Daniela        Analista Pl   1200
 1003      Claudio        Analista Sr   1800             Dependência Funcional Transitiva


Passando para a 3FN:
            Funcionario                             CargoSalario
 CodFunc   NomeFunc       CargoFunc            CargoFunc     SalFunc
 1001      Antonio        Analista Sr          Analista Sr   1800
 1004      Daniela        Analista Pl          Analista Pl   1200
 1003      Claudio        Analista Sr
FNBC – F N Boyce e Codd:
Condição: Aplica-se a FNBC quando:
1. Encontramos duas ou mais chaves candidatas
2. As chaves candidatas apresentam mais de um atributo (são compostas)
3. Todas as chaves candidatas têm um atributo em comum
Exemplo:
Vamos assumir que um professor está associado a mais de uma escola e uma sala.
Aluno(NomeAluno,EndAluno,NomeEscola,NrSala,NomeProf)

Chaves Candidatas:                 Neste exemplo:
NomeAluno + EndAluno               1. Encontramos três chaves candidatas
NomeAluno + NrSala                 2. Todas são compostas
NomeAluno + NomeProf               3. Todas compartilham um mesmo atributo
Aplicando a FNBC: A tabela Aluno será dividida em duas tabelas: uma que contêm
todos os atributos que descrevem o aluno e outra que contêm os atributos que
designam 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.
A tabela a seguir NÃO está na 4FN:
          ProjFuncEquip
  CodProj CodFunc    CodEquip
  11       1001      A10
  11       1002      A10           CodProj  CodFunc
  11       1001      A20
  11       1002      A20
                                   CodProj  CodEquip
  12       1001      A10
  12       1001      A20


Passando para a 4FN:
        ProjFunc               ProjEquip
   CodProj CodFunc        CodProj CodEquip
   11       1001          11       A10
   11       1002          11       A20
   12       1001          12       A10
                          12       A20
5FN – Quinta Forma Normal:
Condição: Relacionamentos multiplos (ternários ... n-ários).
1º passo: Decompor a tabela através da operação de projeção.
2º passo: Reconstruir a tabela através da junção.
A tabela está na 5FN quando o seu conteúdo NÃO puder ser reconstruído
Através da junção das tabelas secundárias.
NÃO está na 5FN:            Está na 5FN:
       MatPedReq                 MatPed          PedReq          MatReq
 Mat      Ped      Req        Mat     Ped     Ped     Req      Mat    Req
 10      1001       1         10      1001    1001     1       10       1
 10      1002       2         10      1002    1002     2       10       2
 20      1001       2         20      1001    1001     2       20       2
 10      1001       2

Mais conteúdo relacionado

Mais procurados

Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacional
Hélio Martins
 
Normalização básica
Normalização básicaNormalização básica
Normalização básica
Nadia Habu
 

Mais procurados (20)

Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - Apresentação
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
 
Normalização Banco de Dados
Normalização Banco de DadosNormalização Banco de Dados
Normalização Banco de Dados
 
Bancos de dados móveis
Bancos de dados móveisBancos de dados móveis
Bancos de dados móveis
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacional
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
C apítulo 1 livro navathe
C apítulo 1   livro navatheC apítulo 1   livro navathe
C apítulo 1 livro navathe
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Normalização básica
Normalização básicaNormalização básica
Normalização básica
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 

Normalização - Banco de Dados

  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 1FN – Primeira Forma Normal: Os atributos da tabela não contêm grupos de repetição (tabelas aninhadas). A tabela a seguir NÃO está na 1FN: Projeto CodProj DescProj CodFunc NomeFunc CargoFunc SalFunc DtInicio 1001 Antonio Analista Sr 1800 02/01/2005 11 Alfa 1004 Daniela Analista Pl 1200 05/01/2005 12 Beta 1003 Claudio Analista Sr 1800 10/02/2005 Passando para a 1FN: ProjFunc Projeto CodProj CodFunc NomeFunc CargoFunc SalFunc DtInicio CodProj DescProj 11 1001 Antonio Analista Sr 1800 02/01/2005 11 Alfa 11 1004 Daniela Analista Pl 1200 05/01/2005 12 Beta 12 1003 Claudio Analista Sr 1800 10/02/2005
  • 6. 2FN – Segunda Forma Normal: Condição: Chave Primária (PK) composta por mais de uma coluna. Todas as colunas que não fazem parte da PK dependem de todas as colunas que compõem a PK. A tabela a seguir NÃO está na 2FN: 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 Passando para a 2FN: Funcionario ProjFunc CodFunc NomeFunc CargoFunc SalFunc CodProj CodFunc DtInicio 1001 Antonio Analista Sr 1800 11 1001 02/01/2005 1004 Daniela Analista Pl 1200 11 1004 05/01/2005 1003 Claudio Analista Sr 1800 12 1003 10/02/2005
  • 7. 3FN – Terceira Forma Normal: Não há dependências funcionais transitivas. Cada coluna não PK depende DIRETAMENTE da PK. A tabela a seguir NÃO está na 3FN: Funcionario CodFunc NomeFunc CargoFunc SalFunc CodFunc  CargoFunc  SalFunc 1001 Antonio Analista Sr 1800 1004 Daniela Analista Pl 1200 1003 Claudio Analista Sr 1800 Dependência Funcional Transitiva Passando para a 3FN: Funcionario CargoSalario CodFunc NomeFunc CargoFunc CargoFunc SalFunc 1001 Antonio Analista Sr Analista Sr 1800 1004 Daniela Analista Pl Analista Pl 1200 1003 Claudio Analista Sr
  • 8. FNBC – F N Boyce e Codd: Condição: Aplica-se a FNBC quando: 1. Encontramos duas ou mais chaves candidatas 2. As chaves candidatas apresentam mais de um atributo (são compostas) 3. Todas as chaves candidatas têm um atributo em comum Exemplo: Vamos assumir que um professor está associado a mais de uma escola e uma sala. Aluno(NomeAluno,EndAluno,NomeEscola,NrSala,NomeProf) Chaves Candidatas: Neste exemplo: NomeAluno + EndAluno 1. Encontramos três chaves candidatas NomeAluno + NrSala 2. Todas são compostas NomeAluno + NomeProf 3. Todas compartilham um mesmo atributo Aplicando a FNBC: A tabela Aluno será dividida em duas tabelas: uma que contêm todos os atributos que descrevem o aluno e outra que contêm os atributos que designam um professor em uma determinada escola e número de sala. Aluno(NomeAluno,EndAluno,NomeEscola,NrSala) Professor(NomeEscola,NrSala,NomeProf)
  • 9. 4FN – Quarta Forma Normal: Uma tabela não deve possuir mais de uma dependência multivalorada. A tabela a seguir NÃO está na 4FN: ProjFuncEquip CodProj CodFunc CodEquip 11 1001 A10 11 1002 A10 CodProj  CodFunc 11 1001 A20 11 1002 A20 CodProj  CodEquip 12 1001 A10 12 1001 A20 Passando para a 4FN: ProjFunc ProjEquip CodProj CodFunc CodProj CodEquip 11 1001 11 A10 11 1002 11 A20 12 1001 12 A10 12 A20
  • 10. 5FN – Quinta Forma Normal: Condição: Relacionamentos multiplos (ternários ... n-ários). 1º passo: Decompor a tabela através da operação de projeção. 2º passo: Reconstruir a tabela através da junção. A tabela está na 5FN quando o seu conteúdo NÃO puder ser reconstruído Através da junção das tabelas secundárias. NÃO está na 5FN: Está na 5FN: MatPedReq MatPed PedReq MatReq Mat Ped Req Mat Ped Ped Req Mat Req 10 1001 1 10 1001 1001 1 10 1 10 1002 2 10 1002 1002 2 10 2 20 1001 2 20 1001 1001 2 20 2 10 1001 2