🛡️ Teoria Relacional: Dependências Funcionais e Formas Normais (1FN a 3FN)
Módulo de Qualidade e Integridade: Garantindo Bancos de Dados sem Redundâncias nem Anomalias
Fundamentação: Edgar F. Codd e Raymond F. Boyce
Público: 1º Ano do Curso Técnico em Desenvolvimento de Software
1. 🎯 Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- 🔍 Identificar anomalias de inserção, exclusão e alteração em tabelas desnormalizadas.
- 📐 Escrever e interpretar Dependências Funcionais formais (
). - ⚖️ Diferenciar Dependência Funcional Total, Parcial e Transitiva.
- 🧹 Executar a normalização passo a passo de uma planilha bruta até a 1ª, 2ª e 3ª Formas Normais.
- 🛡️ Garantir a preservação da informação através da decomposição sem perda de dados (lossless join).
2. ⚠️ O Que São Anomalias de Dados?
Considere uma biblioteca escolar que guardou seus empréstimos em uma única planilha não normalizada:
| id_emp (PK) | id_livro (PK) | aluno_nome | aluno_cidade | titulo_livro | autor_nome | data_emp |
|---|---|---|---|---|---|---|
| 101 | 1 | Lucas Silva | São Paulo | Código Limpo | Robert Martin | 01/10/2026 |
| 101 | 4 | Lucas Silva | São Paulo | Dom Casmurro | Machado de Assis | 01/10/2026 |
| 102 | 1 | Beatriz Ramos | Campinas | Código Limpo | Robert Martin | 05/10/2026 |
As Três Anomalias Críticas
3. 📐 Dependências Funcionais ( )
Dizemos que um conjunto de atributos
- Exemplo 1:
(A matrícula identifica unicamente o aluno). - Exemplo 2:
(O ISBN determina os dados do livro).
4. 🧹 As Três Primeiras Formas Normais
1ª Forma Normal (1FN) — Atomicidade de Atributos
Regra: Todos os atributos devem conter apenas valores atômicos (indivisíveis), sem repetições de grupos nem listas/vetores em uma mesma coluna.
❌ Antes da 1FN (Violação):
| id_aluno | nome | telefones |
|---|---|---|
| 1 | Carlos Silva | (11) 98888-1111, (11) 97777-2222 |
✅ Depois da 1FN (Tabela Normalizada):
Criamos uma tabela separada para os telefones:
| id_telefone | id_aluno (FK) | numero_telefone |
|---|---|---|
| 1 | 1 | (11) 98888-1111 |
| 2 | 1 | (11) 97777-2222 |
2ª Forma Normal (2FN) — Dependência Total da Chave
Regra: Estar na 1FN e não possuir dependências funcionais parciais. Todos os atributos não-chave devem depender da totalidade da chave primária, e não de apenas uma parte dela (relevante para chaves compostas).
❌ Antes da 2FN (Violação):
- Chave Primária Composta:
- Dependência Parcial:
(o título depende só do livro, não do empréstimo).
✅ Decomposição em 2FN:
Separamos os dados do Livro dos dados do Empréstimo:
ITENS_EMPRESTIMO:LIVROS:
3ª Forma Normal (3FN) — Eliminação de Dependências Transitivas
Regra: Estar na 2FN e não possuir dependências funcionais transitivas. Nenhum atributo não-chave pode depender de outro atributo não-chave (
).
❌ Antes da 3FN (Violação):
- Logo:
é uma dependência transitiva intermediada pelo CEP!
✅ Decomposição em 3FN:
ALUNOS:ENDERECOS_CEP:
5. 📊 Resumo Comparativo das Formas Normais
| Forma Normal | Foco Principal | Problema que Elimina | Solução Aplicada |
|---|---|---|---|
| 1FN | Atomicidade | Listas, conjuntos e campos multivalorados na mesma célula | Criação de novas linhas ou tabela filha associativa |
| 2FN | Chaves Compostas | Atributos dependendo de metade da chave primária | Decomposição em tabelas específicas de entidade |
| 3FN | Dependências Indiretas | Atributo não-chave determinando outro atributo não-chave | Separação da regra funcional em tabela própria |
6. 🏆 Benefícios no Mundo Real
Ao atingir a 3ª Forma Normal (3FN):
- 🛡️ Tamanho reduzido: O banco de dados consome até 70% menos espaço em disco.
- ⚡ Velocidade nas alterações: Um dado é alterado em uma única linha e reflete no sistema inteiro.
- 🔒 Integridade garantida: Elimina o risco de ter a mesma pessoa com dois endereços conflitantes no sistema.