Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Primeira forma normal e nome e sobrenome


O 1NF é sobre atomicidade, não redundância (é disso que tratam as formas normais superiores). Essencialmente, se todos os atributos são atômicos, sua tabela está em 1NF.

Obviamente, se uma tabela está em 1NF depende do que você define como "atômico". O que "atomicidade" realmente significa é uma questão de alguma controvérsia, mas eu adotaria uma abordagem pragmática caso a caso aqui e simplesmente perguntaria:

No contexto do problema que estou tentando resolver, faz sentido acessar qualquer parte do valor ou sempre acesso o valor inteiro?

Se eu sempre acesso o todo, ele é atômico nesse contexto particular.

No seu exemplo, é provável que você queira acessar first_name e last_name separadamente, então full_name seria não atômica e essa seria a razão para violar a 1NF. Se, no entanto, você sabe que nunca precisará acessar o nome e o sobrenome separadamente, então você pode ter apenas o full_name e ainda não violar a 1NF.

"Acessar" o valor deve ser entendido de forma bastante ampla aqui. Obviamente, pode significar lê-lo do banco de dados, mas também pode significar usá-lo em uma restrição ou indexá-lo, etc...