1FN - Primeira Forma Normal
Uma relação está na Primeira Forma Normal (1FN) se, e somente se, todos os valores de seus atributos forem atômicos e pertencentes aos respectivos domínios. Além disso, cada tupla deve ser identificável univocamente por uma chave candidata.
De forma simples e direta, os valores em cada coluna (atributo) devem ser indivisíveis. Isso impede que uma única célula contenha múltiplos valores (como uma lista de telefones) ou valores estruturados e não atômicos (como um endereço completo com rua, número e CEP em um único campo). Vejamos um exemplo:
PROFESSOR
| 🔑 siape (PK) | nome | emails |
|---|---|---|
| 123456 | José da Silva Sauro | jose@universidade.br, jose.prof@provedor.com |
| 934352 | Maria Santos | maria@universidade.br |
Note que a relação PROFESSOR viola a primeira forma normal, já que o atributo emails é multivalorado. Para tornar essa relação compatível com a 1FN, transformamos esse atributo numa relação EMAIL. A cardinalidade do relacionamento entre PROFESSOR e EMAIL tende a ser 1:N (um professor pode ter vários e-mails). Naturalmente, se a regra de negócio permitisse que um endereço de e-mail fosse usado por mais de um professor, o relacionamento teria cardinalidade N:M (neste caso, precisaríamos de uma tabela associativa).
Após a transformação, considerando a cardinalidade 1:N, o resultado seria:
PROFESSOR
| 🔑 siape (PK) | nome |
|---|---|
| 123456 | José da Silva Sauro |
| 934352 | Maria Santos |
| 🔑 email (PK) | professor_siape (FK) |
|---|---|
| jose@universidade.br | 123456 |
| jose.prof@provedor.com | 123456 |
| maria@universidade.br | 934352 |
No caso de atributos compostos como Endereço, a adequação à 1FN pode ser feita por meio da decomposição em atributos atômicos (rua, número, cidade etc.), sem necessidade de criar uma nova relação. Entretanto, caso o endereço seja multivalorado (por exemplo, um professor possuindo vários endereços), será necessário modelá-lo como uma nova relação, resultando em um relacionamento do tipo 1:N.