SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Modelagem De Banco De Dados
Modelagem De Banco De DadosModelagem De Banco De Dados
Modelagem De Banco De Dadosmgoberto
 
Banco de Dados Conceitos
Banco de Dados ConceitosBanco de Dados Conceitos
Banco de Dados ConceitosCleber Ramos
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Leinylson Fontinele
 
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...Leinylson Fontinele
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dadosinfo_cimol
 
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Leinylson Fontinele
 
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çãoLeinylson Fontinele
 
Psi-mod-13
Psi-mod-13Psi-mod-13
Psi-mod-13diogoa21
 
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)Leinylson Fontinele
 
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Leinylson Fontinele
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Leinylson Fontinele
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Leinylson Fontinele
 
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Leinylson Fontinele
 
Conceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosConceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosElaine Cecília Gatto
 
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Leinylson Fontinele
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Leinylson Fontinele
 

What's hot (20)

Modelagem De Banco De Dados
Modelagem De Banco De DadosModelagem De Banco De Dados
Modelagem De Banco De Dados
 
Modelagem de dados
Modelagem de dados Modelagem de dados
Modelagem de dados
 
Banco de Dados Conceitos
Banco de Dados ConceitosBanco de Dados Conceitos
Banco de Dados Conceitos
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
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
Banco de dadosBanco de dados
Banco de dados
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dados
 
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
 
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
 
Psi-mod-13
Psi-mod-13Psi-mod-13
Psi-mod-13
 
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 II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
 
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
 
Conceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dadosConceitos e arquitetura do sistema de banco de dados
Conceitos e arquitetura do sistema de banco de dados
 
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
 

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