SlideShare uma empresa Scribd logo
1 de 10
1 
Normalização de dados e as formas 
normais 
Normalização de dados e as formas normais. Primeira, segunda e terceira forma normal. 
Conheça este importante instrumento de projeto de banco de dados. 
Normalização de dados é o processo formal e passo a passo que examina os atributos de 
uma entidade, com o objetivo de evitar anomalias observadas na inclusão, exclusão e 
alteração de registros. 
O conceito de entidade é muito importante neste processo, ou seja, devemos identificar 
quais são as entidades que farão parte do projeto de banco de dados. Entidade é 
qualquer coisa, pessoa ou objeto que abstraído do mundo real torna-se uma tabela para 
armazenamento de dados. Normalmente usa-se o Modelo de Entidade e Relacionamento 
para criar o modelo do banco. 
Veja um exemplo de várias entidades já normalizadas: 
A regra de ouro que devemos observar no projeto de um banco de dados baseado no 
Modelo Relacional de Dados é a de "não misturar assuntos em uma mesma Tabela". Por 
exemplo: na Tabela Clientes devemos colocar somente campos relacionados com o 
assunto Clientes. Não devemos misturar campos relacionados com outros assuntos, tais 
como Pedidos, Produtos, etc. Essa "Mistura de Assuntos" em uma mesma tabela acaba 
por gerar repetição desnecessária dos dados bem como inconsistência dos dados.
2 
Figura 2: Veja outro exemplo com uma tabela não normalizada 
Normalmente após a aplicação das regras de normalização de dados, algumas tabelas 
acabam sendo divididas em duas ou mais tabelas, o que no final gera um número maior 
de tabelas do que o originalmente previsto. Este processo causa a simplificação dos 
atributos de uma tabela, colaborando significativamente para a estabilidade do modelo 
de dados, reduzindo-se consideravelmente as necessidades de manutenção. 
Veja a tabela acima após a aplicação da normalização. 
Figura 3: Tabela normalizada 
Os objetivos da normalização são muitos, entre eles destaco:
3 
 Minimização de redundâncias e inconsistências; 
 Facilidade de manipulações do banco de dados; 
 Ganho de performance no SGBD; 
 Facilidade de manutenção do sistema de Informação; 
 Entre outros. 
As formas normais 
O Processo de normalização aplica uma série de regras sobre as tabelas de um banco de 
dados, para verificar se estas estão corretamente projetadas. Embora existam cinco 
formas normais (ou regras de normalização), na prática usamos um conjunto de três 
Formas Normais. 
Vejamos as três primeiras formas normais do processo de normalização de dados. 
 Primeira Forma Normal (1FN) 
 Segunda Forma Normal (2FN) 
 Terceira Forma Normal (3FN) 
Apesar de existir outras formas normais como a quarta forma normal e quinta forma 
normal, apenas as três primeiras tem sido considerada atualmente. As formas normais 
são importantes instrumentos para resolver antecipadamente problemas na estrutura do 
banco de dados. 
Para aplicar a normalização de dados é necessário considerar a sequência das formas 
normais, isto é, para aplicar a segunda forma normal por exemplo, é necessário que seja 
aplicado a primeira forma normal. Da mesma forma, para aplicar a terceira forma 
normal é necessário que já tenha sido feita a normalização na segunda forma normal.
4 
Primeira Forma Normal 1FN - 
Normalização de dados 
Saiba o que é a Primeira Forma Normal, denominada 1FN e aplicada no processo de 
normalização de dados no processo de modelagem de banco de dados. 
A normalização de dados é um processo importante no processo de modelagem de 
dados. A primeira parte da normalização é chamada de 1FN ou primeira forma normal, 
em uma escala que vai até cinco. Veja o post normalização de dados e as formas 
normais que mostra o uso das principais formas normais. 
Uma relação estará na primeira forma normal 1FN, se não houver grupo de dados 
repetidos, isto é, se todos os valores forem únicos. Em outras palavras podemos definir 
que a primeira forma normal não admite repetições ou campos que tenha mais que um 
valor. 
Os procedimentos mais recomendados para aplicar a 1FN são os seguintes: 
 a) Identificar a chave primária da entidade; 
 b) Identificar o grupo repetitivo e removê-lo da entidade; 
 c) Criar uma nova entidade com a chave primária da entidade anterior e o grupo 
repetitivo. 
A chave primária da nova entidade será obtida pela concatenação da chave primária da 
entidade inicial e a do grupo repetitivo.
5 
Exemplo de normalização de dados. Primeira forma 
normal 
Considere a tabela cliente abaixo: 
Cliente 
Código_cliente 
Nome 
* Telefone 
Endereço 
Agora a tabela com os dados: 
Tabela desnormalizada, ou seja, não está na 1ª forma normal 
Analisando teremos: 
Todos os clientes possuem Rua, CEP e Bairro, e essas informações estão na mesma 
célula da tabela, logo ela não está na primeira forma normal. Para normalizar, 
deveremos colocar cada informação em uma coluna diferente, como no exemplo a 
seguir: 
Tabela ainda não está na primeira forma normal 
Mesmo com o ajuste acima, a tabela ainda não está na primeira forma normal, pois há 
clientes com mais de um telefone e os valores estão em uma mesma célula. Para 
normalizar será necessário criar uma nova tabela para armazenar os números dos 
telefones e o campo-chave da tabela cliente. Veja o resultado a seguir:
6 
Tabela na primeira forma normal 
Tabela na 1ª forma normal 
Na segunda tabela a chave primária está implícita, isto voe poderá encontrar algumas 
literaturas especializadas, onde nem sempre ela é especificada, mas ela deverá existir. 
No exemplo acima foi gerado uma segunda entidade para que a primeira forma normal 
fosse satisfeita, contudo é importante ressaltar que nem sempre encontramos banco de 
dados com tabelas normalizadas. Existem casos onde as repetições são poucas ou o 
cenário permite administrar as repetições sem trazer grandes consequências.
7 
Segunda Forma Normal 2FN - 
Normalização de dados 
O que é a Segunda Forma Normal 2FN - Normalização de dados 
Uma tabela está na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os 
atributos não chave forem totalmente dependentes da chave primária (dependente de 
toda a chave e não apenas de parte dela). 
Se o nome do produto já existe na tabela produtos, então não é necessário que ele exista 
na tabela de produtos. A segunda forma normal trata destas anomalias e evita que 
valores fiquem em redundâcia no banco de dados. 
Procedimentos: 
 a) Identificar os atributos que não são funcionalmente dependentes de toda a 
chave primária; 
 b) Remover da entidade todos esses atributos identificados e criar uma nova 
entidade com eles. 
A chave primária da nova entidade será o atributo do qual os atributos do qual os 
atributos removidos são funcionalmente dependentes. 
Exemplo de segunda forma normal 
Considere a tabela vendas abaixo: 
Vendas 
N_pedido 
Código_produto 
Produto 
Quant 
Valor_unit 
Subtotal 
Agora a tabela com os dados: 
Tabela não está na segunda forma normal 
Analisando teremos:
O nome do produto depende do código do produto, porém não depende de N_pedido 
que é a chave primária da tabela, portanto não está na segunda forma normal. Isto gera 
problemas com a manutenção dos dados, pois se houver alteração no nome do produto 
teremos que alterar em todos os registros da tabela venda. 
8 
Para normalizar esta tabela teremos de criar a tabela Produto que ficará com os atributos 
Código_produto e produto e na tabela Venda manteremos somente os atributos 
N_pedido, código_produto, quant, valor_unit e subtotal. Veja o resultado abaixo: 
Tabela na segunda forma normal 
Tabela na 2ª forma normal 
Conforme visto na Primeira forma normal, quando aplicamos normalização é comum 
gerar novas tabelas a fim de satisfazer as formas normais que estão sendo aplicadas.
9 
Terceira Forma Normal 3FN - 
Normalização de dados 
O que é a Terceira Forma Normal 3FN - Normalização de dadosUma tabela está na 
Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave 
depender de outra coluna não-chave. 
Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos 
pela equação de outros campos da mesma tabela. 
Procedimentos: 
 a) Identificar todos os atributos que são funcionalmente dependentes de outros 
atributos não chave; 
 b) Removê-los. 
A chave primária da nova entidade será o atributo do qual os atributos removidos são 
funcionalmente dependentes. 
Exemplo de normalização na terceira forma normal 
Considere a tabela abaixo: 
Tabela não está na terceira forma normal 
Considerando ainda a nossa tabela Venda, veremos que a mesma não está na terceira 
forma normal, pois o subtotal é o resultado da multiplicação Quant X Valor_unit, desta 
forma a coluna subtotal depende de outras colunas não-chave. 
Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna 
subtotal, como no exemplo a seguir: 
Tabela na terceira forma normal 
Conforme visto nos post primeira forma normal e segunda forma normal, a 
normalização torna a tabela mais otimizada e sem anomalias.
10

Mais conteúdo relacionado

Mais procurados

Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Git e Github para Iniciantes
Git e Github para IniciantesGit e Github para Iniciantes
Git e Github para IniciantesLoiane Groner
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalDaniel Brandão
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dadoselliando dias
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Rafael Barbolo
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
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
 
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 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)Leinylson Fontinele
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Elaine Cecília Gatto
 
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)Leinylson Fontinele
 
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Bdm   aula 5 - construindo modelos er e mapeamento er-relacionalBdm   aula 5 - construindo modelos er e mapeamento er-relacional
Bdm aula 5 - construindo modelos er e mapeamento er-relacionalTicianne Darin
 
Trabalho sobre a ISO/IEC 15504
Trabalho sobre a ISO/IEC 15504Trabalho sobre a ISO/IEC 15504
Trabalho sobre a ISO/IEC 15504Ricardo Zalla
 
GCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesGCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesMisael Santos
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoLeinylson Fontinele
 

Mais procurados (20)

Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Git e Github para Iniciantes
Git e Github para IniciantesGit e Github para Iniciantes
Git e Github para Iniciantes
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - Relacional
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
REVISAO-DP-900-V2
REVISAO-DP-900-V2REVISAO-DP-900-V2
REVISAO-DP-900-V2
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
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 ...
 
Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
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 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)
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
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)
 
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Bdm   aula 5 - construindo modelos er e mapeamento er-relacionalBdm   aula 5 - construindo modelos er e mapeamento er-relacional
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
 
Trabalho sobre a ISO/IEC 15504
Trabalho sobre a ISO/IEC 15504Trabalho sobre a ISO/IEC 15504
Trabalho sobre a ISO/IEC 15504
 
GCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesGCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de Versões
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
 

Semelhante a Normalização de dados: as três primeiras formas normais

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
 
BD I - Aula 06 B - Parte 2 - Teorico Formas Normais
BD I - Aula 06 B - Parte 2 - Teorico Formas NormaisBD I - Aula 06 B - Parte 2 - Teorico Formas Normais
BD I - Aula 06 B - Parte 2 - Teorico Formas NormaisRodrigo Kiyoshi Saito
 
Normalização Banco de Dados
Normalização Banco de DadosNormalização Banco de Dados
Normalização Banco de DadosKablo Skater Rail
 
Normalização de dados - Primeira forma normal
Normalização de dados - Primeira forma normalNormalização de dados - Primeira forma normal
Normalização de dados - Primeira forma normalvitorleyva
 
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
 
Normalização básica
Normalização básicaNormalização básica
Normalização básicaNadia Habu
 
NORMALIZACAO_DE_TABELAS.pdf
NORMALIZACAO_DE_TABELAS.pdfNORMALIZACAO_DE_TABELAS.pdf
NORMALIZACAO_DE_TABELAS.pdfFernando119516
 
Treinamento Excel Avançado
Treinamento Excel AvançadoTreinamento Excel Avançado
Treinamento Excel AvançadoLuis Dalmoneki
 
Apostila - Jornada do Excel aula 2.pdf
Apostila - Jornada do Excel aula 2.pdfApostila - Jornada do Excel aula 2.pdf
Apostila - Jornada do Excel aula 2.pdfandre94454
 
Business Intelligence com o microsoft sql server
Business Intelligence com o microsoft sql serverBusiness Intelligence com o microsoft sql server
Business Intelligence com o microsoft sql serverMilson
 
Data warehouse & olap
Data warehouse & olapData warehouse & olap
Data warehouse & olapBrian Supra
 
Sql apostila construcao de comandos
Sql   apostila construcao de comandosSql   apostila construcao de comandos
Sql apostila construcao de comandosrobinhoct
 
Training presentation create tables for a new database af102719985
Training presentation   create tables for a new database af102719985Training presentation   create tables for a new database af102719985
Training presentation create tables for a new database af102719985Brena De La Concepcion
 
Ig excel funcoes_estatisticas
Ig excel funcoes_estatisticasIg excel funcoes_estatisticas
Ig excel funcoes_estatisticasBráulio Alturas
 

Semelhante a Normalização de dados: as três primeiras formas normais (20)

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
 
BD I - Aula 06 B - Parte 2 - Teorico Formas Normais
BD I - Aula 06 B - Parte 2 - Teorico Formas NormaisBD I - Aula 06 B - Parte 2 - Teorico Formas Normais
BD I - Aula 06 B - Parte 2 - Teorico Formas Normais
 
Normalização Banco de Dados
Normalização Banco de DadosNormalização Banco de Dados
Normalização Banco de Dados
 
Normalização de dados - Primeira forma normal
Normalização de dados - Primeira forma normalNormalização de dados - Primeira forma normal
Normalização de dados - Primeira forma normal
 
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...
 
Normalização básica
Normalização básicaNormalização básica
Normalização básica
 
NORMALIZACAO_DE_TABELAS.pdf
NORMALIZACAO_DE_TABELAS.pdfNORMALIZACAO_DE_TABELAS.pdf
NORMALIZACAO_DE_TABELAS.pdf
 
Apostila Intensivo Python - Desafio 2.pdf
Apostila Intensivo Python - Desafio 2.pdfApostila Intensivo Python - Desafio 2.pdf
Apostila Intensivo Python - Desafio 2.pdf
 
Treinamento Excel Avançado
Treinamento Excel AvançadoTreinamento Excel Avançado
Treinamento Excel Avançado
 
Apostila - Jornada do Excel aula 2.pdf
Apostila - Jornada do Excel aula 2.pdfApostila - Jornada do Excel aula 2.pdf
Apostila - Jornada do Excel aula 2.pdf
 
Apostila basica sql
Apostila basica sqlApostila basica sql
Apostila basica sql
 
Business Intelligence com o microsoft sql server
Business Intelligence com o microsoft sql serverBusiness Intelligence com o microsoft sql server
Business Intelligence com o microsoft sql server
 
Data warehouse & olap
Data warehouse & olapData warehouse & olap
Data warehouse & olap
 
Sql apostila construcao de comandos
Sql   apostila construcao de comandosSql   apostila construcao de comandos
Sql apostila construcao de comandos
 
Excel avançado
Excel avançadoExcel avançado
Excel avançado
 
Apostila de Power BI - Aula 1.pdf
Apostila de Power BI - Aula 1.pdfApostila de Power BI - Aula 1.pdf
Apostila de Power BI - Aula 1.pdf
 
Training presentation create tables for a new database af102719985
Training presentation   create tables for a new database af102719985Training presentation   create tables for a new database af102719985
Training presentation create tables for a new database af102719985
 
Ig excel funcoes_estatisticas
Ig excel funcoes_estatisticasIg excel funcoes_estatisticas
Ig excel funcoes_estatisticas
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Apostila excel-avancado
Apostila excel-avancadoApostila excel-avancado
Apostila excel-avancado
 

Normalização de dados: as três primeiras formas normais

  • 1. 1 Normalização de dados e as formas normais Normalização de dados e as formas normais. Primeira, segunda e terceira forma normal. Conheça este importante instrumento de projeto de banco de dados. Normalização de dados é o processo formal e passo a passo que examina os atributos de uma entidade, com o objetivo de evitar anomalias observadas na inclusão, exclusão e alteração de registros. O conceito de entidade é muito importante neste processo, ou seja, devemos identificar quais são as entidades que farão parte do projeto de banco de dados. Entidade é qualquer coisa, pessoa ou objeto que abstraído do mundo real torna-se uma tabela para armazenamento de dados. Normalmente usa-se o Modelo de Entidade e Relacionamento para criar o modelo do banco. Veja um exemplo de várias entidades já normalizadas: A regra de ouro que devemos observar no projeto de um banco de dados baseado no Modelo Relacional de Dados é a de "não misturar assuntos em uma mesma Tabela". Por exemplo: na Tabela Clientes devemos colocar somente campos relacionados com o assunto Clientes. Não devemos misturar campos relacionados com outros assuntos, tais como Pedidos, Produtos, etc. Essa "Mistura de Assuntos" em uma mesma tabela acaba por gerar repetição desnecessária dos dados bem como inconsistência dos dados.
  • 2. 2 Figura 2: Veja outro exemplo com uma tabela não normalizada Normalmente após a aplicação das regras de normalização de dados, algumas tabelas acabam sendo divididas em duas ou mais tabelas, o que no final gera um número maior de tabelas do que o originalmente previsto. Este processo causa a simplificação dos atributos de uma tabela, colaborando significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manutenção. Veja a tabela acima após a aplicação da normalização. Figura 3: Tabela normalizada Os objetivos da normalização são muitos, entre eles destaco:
  • 3. 3  Minimização de redundâncias e inconsistências;  Facilidade de manipulações do banco de dados;  Ganho de performance no SGBD;  Facilidade de manutenção do sistema de Informação;  Entre outros. As formas normais O Processo de normalização aplica uma série de regras sobre as tabelas de um banco de dados, para verificar se estas estão corretamente projetadas. Embora existam cinco formas normais (ou regras de normalização), na prática usamos um conjunto de três Formas Normais. Vejamos as três primeiras formas normais do processo de normalização de dados.  Primeira Forma Normal (1FN)  Segunda Forma Normal (2FN)  Terceira Forma Normal (3FN) Apesar de existir outras formas normais como a quarta forma normal e quinta forma normal, apenas as três primeiras tem sido considerada atualmente. As formas normais são importantes instrumentos para resolver antecipadamente problemas na estrutura do banco de dados. Para aplicar a normalização de dados é necessário considerar a sequência das formas normais, isto é, para aplicar a segunda forma normal por exemplo, é necessário que seja aplicado a primeira forma normal. Da mesma forma, para aplicar a terceira forma normal é necessário que já tenha sido feita a normalização na segunda forma normal.
  • 4. 4 Primeira Forma Normal 1FN - Normalização de dados Saiba o que é a Primeira Forma Normal, denominada 1FN e aplicada no processo de normalização de dados no processo de modelagem de banco de dados. A normalização de dados é um processo importante no processo de modelagem de dados. A primeira parte da normalização é chamada de 1FN ou primeira forma normal, em uma escala que vai até cinco. Veja o post normalização de dados e as formas normais que mostra o uso das principais formas normais. Uma relação estará na primeira forma normal 1FN, se não houver grupo de dados repetidos, isto é, se todos os valores forem únicos. Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor. Os procedimentos mais recomendados para aplicar a 1FN são os seguintes:  a) Identificar a chave primária da entidade;  b) Identificar o grupo repetitivo e removê-lo da entidade;  c) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo. A chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo.
  • 5. 5 Exemplo de normalização de dados. Primeira forma normal Considere a tabela cliente abaixo: Cliente Código_cliente Nome * Telefone Endereço Agora a tabela com os dados: Tabela desnormalizada, ou seja, não está na 1ª forma normal Analisando teremos: Todos os clientes possuem Rua, CEP e Bairro, e essas informações estão na mesma célula da tabela, logo ela não está na primeira forma normal. Para normalizar, deveremos colocar cada informação em uma coluna diferente, como no exemplo a seguir: Tabela ainda não está na primeira forma normal Mesmo com o ajuste acima, a tabela ainda não está na primeira forma normal, pois há clientes com mais de um telefone e os valores estão em uma mesma célula. Para normalizar será necessário criar uma nova tabela para armazenar os números dos telefones e o campo-chave da tabela cliente. Veja o resultado a seguir:
  • 6. 6 Tabela na primeira forma normal Tabela na 1ª forma normal Na segunda tabela a chave primária está implícita, isto voe poderá encontrar algumas literaturas especializadas, onde nem sempre ela é especificada, mas ela deverá existir. No exemplo acima foi gerado uma segunda entidade para que a primeira forma normal fosse satisfeita, contudo é importante ressaltar que nem sempre encontramos banco de dados com tabelas normalizadas. Existem casos onde as repetições são poucas ou o cenário permite administrar as repetições sem trazer grandes consequências.
  • 7. 7 Segunda Forma Normal 2FN - Normalização de dados O que é a Segunda Forma Normal 2FN - Normalização de dados Uma tabela está na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela). Se o nome do produto já existe na tabela produtos, então não é necessário que ele exista na tabela de produtos. A segunda forma normal trata destas anomalias e evita que valores fiquem em redundâcia no banco de dados. Procedimentos:  a) Identificar os atributos que não são funcionalmente dependentes de toda a chave primária;  b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. A chave primária da nova entidade será o atributo do qual os atributos do qual os atributos removidos são funcionalmente dependentes. Exemplo de segunda forma normal Considere a tabela vendas abaixo: Vendas N_pedido Código_produto Produto Quant Valor_unit Subtotal Agora a tabela com os dados: Tabela não está na segunda forma normal Analisando teremos:
  • 8. O nome do produto depende do código do produto, porém não depende de N_pedido que é a chave primária da tabela, portanto não está na segunda forma normal. Isto gera problemas com a manutenção dos dados, pois se houver alteração no nome do produto teremos que alterar em todos os registros da tabela venda. 8 Para normalizar esta tabela teremos de criar a tabela Produto que ficará com os atributos Código_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, código_produto, quant, valor_unit e subtotal. Veja o resultado abaixo: Tabela na segunda forma normal Tabela na 2ª forma normal Conforme visto na Primeira forma normal, quando aplicamos normalização é comum gerar novas tabelas a fim de satisfazer as formas normais que estão sendo aplicadas.
  • 9. 9 Terceira Forma Normal 3FN - Normalização de dados O que é a Terceira Forma Normal 3FN - Normalização de dadosUma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equação de outros campos da mesma tabela. Procedimentos:  a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave;  b) Removê-los. A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes. Exemplo de normalização na terceira forma normal Considere a tabela abaixo: Tabela não está na terceira forma normal Considerando ainda a nossa tabela Venda, veremos que a mesma não está na terceira forma normal, pois o subtotal é o resultado da multiplicação Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas não-chave. Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir: Tabela na terceira forma normal Conforme visto nos post primeira forma normal e segunda forma normal, a normalização torna a tabela mais otimizada e sem anomalias.
  • 10. 10