You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today.

Normalização de Bancos de Dados: As 3 Primeiras Formas Normais

< Bruno Couty > atualizado em 22/02/2020


As Formas Normais, definidas na teoria de bancos de dados relacional, representam diretrizes, "regras", que convencionam como as informações deverão ser organizadas no banco de dados (independente do banco, desde que seja relacional).

A correta utilização das FN (Formas Normais) possibilita que evitemos anomalias e inconsistências no banco de dados. Na minha opinião, um banco de dados perfeito trabalha sob as FN de maneira a facilitar e organizar a lógica obtenção e manipulação dos dados armazenados no banco.

Dito isso, vamos conhecer as 3 Primeiras Formas Normais.

1ª Forma Normal - 1FN

De acordo com o que define a Primeira Forma Normal, todas as ocorrências de um registro devem conter os mesmos números de campos. A 1FN não admite repetições ou campos que contém mais de um valor. Observe o exemplo:

Image

Neste caso, para realizar a completa normalização, seguindo a 1FN, teríamos as seguintes entidades / tabelas:

Image

Observe que os telefones ficaram separados, por haver a possibilidade de uma tupla / registro possuír mais de um número de telefone, o que, se cadastrado na mesma tabela, ocasionaria a “desnormalização” dos dados. Semelhante fato ocorre com os endereços que, além de em uma entidade separada, possui seus dados separados, o que otimiza recursos de busca e manipulação de dados. Assim os registros estão, adequadamente, aninhados.

2ª Forma Normal - 2FN

Podemos dizer que uma tabela está adequada à 2FN se ela atender a 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 – em caso de chaves compostas).

Entenda: se o nome do cliente já existe na entidade Clientes, então, não é necessário replicá-lo na entidade Atendimentos. É disso que a 2FN trata, dessas anomalias, redundâncias no banco de dados. Imagine se você armazena o mesmo valor em diferentes entidades, uma simples atualização de dados pode gerar inconsistênsias e anomalias em seus dados irretratáveis.

Veja um exemplo com um cenário de vendas de produtos:

Image

Observe que a tabela acima representa a venda de produtos. Veja, isto está errado, uma vez, que os produtos são cadastrados em outra tabela (a tabela de produtos) onde, no ato do cadastro, já informamos seu nome e valor unitário, por exemplo.

O correto, de modo a atender o que defende a 2FN, seria:

Image

Observe que só é necessário fazer referência a chave primária (ao código) do produto, e nada mais. Na recuperação de dados consultados na entidade de pedidos, através da referência à produtos, pode-se obter todos os dados relacionados aquele item, sem duplicar dados.

Tenha em mente que o inverso também é verdadeiro, ou seja, podemos obter os pedidos realizados a partir do código de um determinado produto.

3ª Forma Normal - 3FN

Sabemos que uma tabela está na 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave.

Basicamente, o objetivo é eliminar os campos que podem ser obtidos pela equações matemáticas ou expressões lógicas a partir de outros campos da mesma entidade.

A chave primária da nova entidade será o atributo através do qual qual os atributos removidos são funcionalmente dependentes.

Vamos considerar a seguinte tabela:

Image

Observe que o valor da coluna “Subtotal” pode (e deve), tranquilamente ser obtido através do cálculo do valor da coluna “Quant” multiplicado pelo valor da coluna “Valor_unit”. Isso eliminaria da nossa tabela a coluna “Subtotal”. Observe ainda que podemos remover a coluna "valor_unit", uma vez que podemos obtê-la através da chave estrangeira "Codigo_produto".

Em resumo, o conceito de normalização deve ser aplicado, preferencialmente, durante o período de concepção do projeto. Durante o planejamento do banco de dados e de como os dados serão armazenados. Entre os principais objetivos, além de reduzir o volume estrutural do banco de dados em si, citamos garantir a integridade natural e referencial dos dos dados ali armazenados e a extinção de anomalias em nosso banco.

Planejar é o melhor modo de executar corretamente!


Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e nossos Termos e Condições de Uso. Ao continuar navegando, você concorda com esta utilização.