3FN - Terceira Forma Normal
Definição simples
Após garantir que uma relação está na 2FN, podemos verificar se ela também atende à terceira forma normal. A 3FN busca eliminar outro tipo de dependência: a dependência transitiva. Sua definição original é:
Uma relação está na 3FN se, além de satisfazer a 2FN, não tem nenhum atributo não-principal transitivamente dependente da chave primária.
Como vimos no início desta página, a dependência transitiva ocorre quando um atributo não-principal depende funcionalmente de outro atributo não-principal, que por sua vez depende da chave primária. Isso significa que existe um “caminho indireto” de dependência entre um atributo não-principal e a chave, causando redundância e possíveis anomalias na relação.
Vejamos o seguinte exemplo:
DISCIPLINA
| 🔑 CodDscp | NomeDscp | CodDepto | NomeDepto |
|---|---|---|---|
| 1 | Redes de Computadores | 002 | DCA |
| 2 | Programação Orientada a Objetos | 002 | DCA |
| 3 | Introdução à Mineração | 001 | DTQM |
| 4 | Tópicos em Engenharia Química | 001 | DTQM |
Note que, neste caso, assumindo que cada disciplina pertence a um único departamento, há uma dependência funcional: CodDscp -> CodDepto, já que o departamento é determinado pelo código da disciplina. No entanto, há uma dependência funcional CodDepto -> NomeDepto, em que CodDepto não é uma superchave.
Para corrigir, dividimos em duas relações:
DEPARTAMENTO
| 🔑 CodDepto | NomeDepto |
|---|---|
| 001 | DTQM |
| 002 | DCA |
DISCIPLINA
| 🔑 CodDscp | NomeDscp | CodDepto (FK) |
|---|---|---|
| 1 | Redes de Computadores | 002 |
| 2 | Programação Orientada a Objetos | 002 |
| 3 | Introdução à Mineração | 001 |
| 4 | Tópicos em Engenharia Química | 001 |
Definição restritiva
Há, também, uma definição mais restritiva para a 3FN, que estabelece:
Uma relação está na 3FN se, além de satisfazer a 2FN, para toda dependência funcional não trivial , pelo menos uma das condições é satisfeita:
- é superchave; ou
- é atributo principal.