Olá pessoal. Neste artigo estarei falando sobre normalização em banco de dados.

Mas o que é Normalização em banco de dados?

Bom, é um processo onde se aplica regras a todas as entidades (tabelas) do banco de dados, afim de evitar falhas no projeto, como redundância de dados, mistura de diferentes assuntos numa mesma entidade, entre outros problemas. As formas normais mais conhecidas, são a primeira, segunda e terceira formas normais. Basicamente, aplicando e respeitando as regras de cada uma dessas formas normais, poderemos garantir um banco de dados mais íntegro, com uma grande possibilidade de sucesso no seu projeto.

1FN – Primeira Forma Normal

Uma entidade estará na 1FN, se e somente se, todos seus atributos (colunas) forem atômicos, ou seja não conter grupos repetitivos ou colunas que tenham mais de um valor.

Passos a serem aplicados para consolidação da 1FN:

- Identificação da chave primária da tabela.
- Identificação da coluna que contem dados repetidos e removê-las.
- Criação de uma nova tabela com chave primária para armazenamento do dado repetido.
- Criar uma relação entre a tabela principal e a tabela secundária

Ex.

Na tabela acima, podemos identificar que o campo Telefones, contém informações de mais de 1 telefone do cliente. Nesse caso, teremos que criar uma outra tabela, para que possamos armazenar corretamente os telefones dos clientes. Abaixo como as tabelas devem ficar após a normalização.

2FN – Segunda Forma Normal

Uma entidade está na 2FN, se e somente se, estiver na 1FN e todos seus atributos (colunas) não chaves, dependam unicamente da chave primária. Se algum atributo depende de apenas uma parte da chave primária, isso é considerada uma violação da 2FN.

Passos a serem aplicados para consolidação da 2FN:

- Identificar colunas que não são funcionalmente dependentes da chave primária da tabela
- Remover a coluna da tabela e criar uma nova tabela com esses dados

Ex.

Nesse exemplo, temos uma tabela que armazena dados de vendas de produtos. Para aplicar a 2FN, temos que separar os dados dos produtos, em uma entidade que contenham somente dados dos produtos, e nessa tabela de pedidos apenas dados referentes aos pedidos. Segue exemplo abaixo após aplicação da 2FN.

3FN – Terceira Forma Normal

Uma entidade está na 3FN, se e somente se, estiver na 2FN e todos os atributos (colunas) não chave, forem mutuamente independentes, isto é, não há dependência funcional entre elas, e todas dependem única e exclusivamente da chave primária de forma irredutível.

Passos a serem aplicados para consolidação da 3FN:

- Identificar as colunas que são funcionalmente dependentes das outras colunas não chave
- Remover essas colunas

Ex.

Como podemos ver no exemplo acima, temos duas colunas indicando os valores do produto. A coluna ValorTotal, depende de uma outra coluna não chave. Isso é um exemplo de informação redundante, ou seja, temos como saber o valor total dos produtos, sem a necessidade de armazená-lo. Nesse caso, vamos remover a coluna ValorTotal. Após aplicar a 3FN a tabela ficará assim:

Existem outras formas normais, como a quarta e a quinta, porém, com a aplicação destas três formas normais, já poderemos garantir um banco de dados mais saudável e assim evitar possíveis problemas no futuro.