O que é normalização numa base de dados?
sobes.tech IA
Resposta da IA
A normalização de bases de dados é o processo de organizar os dados numa base de dados relacional com o objetivo de reduzir a redundância (duplicação de dados) e melhorar a integridade dos dados. Isto é conseguido dividindo tabelas grandes em tabelas menores e definindo relações entre elas.
O objetivo principal da normalização:
- Reduzir a redundância de dados: Evitar a repetição da mesma informação em diferentes locais.
- Melhorar a integridade dos dados: Garantir a precisão e coerência dos dados.
- Proporcionar flexibilidade: Facilitar alterações e ampliações na estrutura da base de dados.
A normalização é definida por um conjunto de regras chamadas formas normais. As três primeiras formas normais são as mais comuns:
-
Primeira forma normal (1FN):
- Cada coluna da tabela deve conter valores atómicos (indivisíveis).
- Não deve haver grupos repetitivos de colunas.
- Cada linha deve ser única (através da chave primária).
-
Segunda forma normal (2NF):
- A tabela está em 1FN.
- Todos os atributos não-chave dependem completamente da chave primária (se for composta). Não há dependências parciais.
-
Terceira forma normal (3NF):
- A tabela está em 2NF.
- Não há dependências transitivas. Os atributos não-chave não dependem de outros atributos não-chave.
Existem formas normais mais altas (BCNF, 4NF, 5NF, 6NF), mas geralmente considera-se que a 3NF é suficiente para a maioria dos propósitos práticos.
Exemplo (simplificado):
Tabela não normalizada de pedido de cliente:
| ID de Pedido | Nome do Cliente | Endereço do Cliente | Produtos | Quantidade | Preço por unidade |
|---|---|---|---|---|---|
| 101 | Ivan | Moscovo | Portátil | 1 | 50000 |
| 101 | Ivan | Moscovo | Rato | 2 | 1000 |
| 102 | Maria | São Petersburgo | Teclado | 1 | 3000 |
Após normalização (por exemplo, até à 3NF):
Tabela de Encomendas:
| ID de Encomenda | ID de Cliente | Data da Encomenda |
|---|---|---|
| 101 | 1 | 2023-10-26 |
| 102 | 2 | 2023-10-26 |
Tabela de Clientes:
| ID de Cliente | Nome do Cliente | Endereço do Cliente |
|---|---|---|
| 1 | Ivan | Moscovo |
| 2 | Maria | São Petersburgo |
Tabela de Detalhes da Encomenda:
| ID de Detalhe da Encomenda | ID de Encomenda | ID de Produto | Quantidade | Preço por unidade |
|---|---|---|---|---|
| 1 | 101 | 10 | 1 | 50000 |
| 2 | 101 | 20 | 2 | 1000 |
| 3 | 102 | 30 | 1 | 3000 |
Tabela de Produtos:
| ID de Produto | Nome do Produto |
|---|---|
| 10 | Portátil |
| 20 | Rato |
| 30 | Teclado |
A desnormalização é o processo inverso da normalização, às vezes utilizada para otimizar o desempenho de leitura de dados ao custo de aumentar a redundância.