A normalização de banco de dados é um processo usado para organizar tabelas e evitar redundância ou complexidade nos dados.
Esse processo é mais simples do que parece! Neste conteúdo vamos tirar todas as suas dúvidas sobre a normalização de banco de dados e explicar como fazer uma. Vem com a gente! �
O que é normalização de banco de dados?
A normalização de banco de dados é a aplicação de uma série de regras para evitar a realização de consultas desnecessariamente complexas no futuro. Essas regras buscam eliminar redundâncias e inconsistências de dependências no projeto das tabelas criadas para organizar os bancos de dados.
Esses dados redundantes desperdiçam espaço no HD do seu computador, além de criar problemas de manutenção.
Dito isso, por que é importante que você acesse os dados utilizando a normalização? �
Para que serve a normalização de dados?
Os bancos de dados são normalizados para que você possa:
- Evitar redundância de dados;
- Proteger a integridade dos dados;
- Evitar problemas de atualização dos dados nas tabelas.
Para podermos dizer que nosso banco de dados está normalizado, devemos respeitar 3 níveis ou tipos de normalização. Cada um desses níveis atende a determinados requisitos que têm como objetivo simplificar as informações sem que haja perda de dados.
Vamos ver cada uma delas.
Tipos de normalização e como são usadas
Existem regras para a normalização de banco de dados e cada uma delas é chamada de Forma Normal. Existem 3 tipos principais:
Primeira Forma Normal (1FN)
É necessário seguir uma série de passos para cumprir esse tipo de normalização. Quando concluímos esse processo, podemos dizer que nossa tabela está na Primeira Forma Normal.
São eles:
- Remova grupos repetidos de tabelas individuais;
- Crie uma tabela separada para cada grupo de dados relacionados;
- Identifique cada grupo de dados relacionados com uma chave primária.
Para identificar se o fizemos da forma correta, devemos considerar os seguintes aspectos:
- Todos os atributos devem ser atômicos. Um atributo é atômico se os elementos do domínio são indivisíveis, mínimos;
- A tabela deve conter uma chave primária exclusiva;
- A chave primária não deve conter atributos nulos;
- Não deve haver variação no número de colunas;
- Campos não-chave devem ser identificados pela chave (dependência funcional);
- Deve haver uma independência da ordem das linhas e das colunas, assim, caso os dados mudem de ordem, seus significados não devem mudar;
- Uma tabela não deve ter vários valores em cada coluna;
- Os dados devem ser atômicos (cada valor de X tem um valor de Y e vice-versa).
Segunda Forma Normal (2FN)
Nesta fase, o passo-a-passo a ser seguido é
- Conclua a 1ª Forma Normal;
- Crie tabelas separadas para os grupos de dados que se aplicam a vários registros;
- Relacione essas tabelas usando uma chave estrangeira.
Um banco de dados está na Segunda Forma Normal se ele cumprir as regras da Primeira Forma Normal e se seus atributos não primários dependerem totalmente da chave primária.
Em outras palavras, não deve haver dependências parciais.
Terceira Forma Normal (3FN)
O processo para esta etapa é:
- Conclua a 2ª Forma Normal;
- Exclua os campos que não dependem da chave;
- Certifique-se que nenhuma coluna dependa de uma coluna que não tenha uma chave;
- Certifique-se que não existam dados derivados.
Podemos dizer que nossa tabela está na Terceira Forma Normal se previamente já estava na Segunda Forma Normal e se não há dependência funcional transitiva entre os atributos não-chave.
Em outras palavras, todo atributo não-primário está implícito na chave primária em uma sequência não-transitiva.
Exemplos de normalização de banco de dados
Sabemos que não é tão fácil assim normalizar dados. Então que tal alguns exemplos para que você entenda melhor? ⬇️
Vamos analisar a tabela a seguir:
Podemos notar que essa tabela não cumpre o requisito de que todos os atributos sejam atômicos. Assim, devemos decompô-la à sua expressão mínima.
Seguindo os passos mencionados acima, nossa tabela inicial seria modificada e ficaria mais ou menos assim:
Com isso podemos afirmar que nossa tabela está de acordo com a Primeira Forma Normal (1FN). Porém ela ainda não atende aos requisitos da Segunda Forma Normal (2FN).
Para isso, poderíamos criar tabelas separadas para cursos e professores e cada uma delas teria sua chave primária. Assim, elas seriam relacionadas por uma chave estrangeira (Foreign Key).
Agora nossa tabela está na Segunda Forma Normal (2FN)!
Vamos simplificá-la ainda mais e adequá-la para a 3FN?
Para isso, podemos excluir a coluna de materiais e criar uma nova tabela para esse objetivo.
E tá pronto o sorvetinho! Nossa tabela cumpriu todos os requisitos da Terceira Forma Normal (3NF) e está normalizada! �
Conclusão
Como você pode ver, o conjunto de dados apresentado acima permite que você tenha um banco de dados normalizado.
Se você quer aprender mais sobre bancos de dados e normalização de banco de dados, podemos te ajudar! Aprenda mais no Curso de Introdução a Bancos de Dados.