El 1NF se trata de atomicidad, no de redundancia (de eso se tratan las formas normales superiores). Esencialmente, si todos los atributos son atómicos, su tabla está en 1FN.
Obviamente, si una tabla está en 1NF depende de lo que defina como "atómico". Lo que realmente significa "atomicidad" es un tema de controversia, pero adoptaría un enfoque pragmático caso por caso aquí y simplemente preguntaría:
En el contexto del problema que intento resolver, ¿alguna vez tiene sentido acceder a una parte del valor o siempre accedo al valor completo?
Si siempre accedo al todo, es atómico en ese contexto particular.
En su ejemplo, es probable que desee acceder a first_name
y last_name
por separado, entonces full_name
sería no atómico y esa sería la razón para violar el 1NF. Sin embargo, si sabe que nunca necesitará acceder al nombre y apellido por separado, entonces podría tener simplemente el full_name
y aún así no violar la 1NF.
"Acceder" al valor debe entenderse bastante ampliamente aquí. Obviamente, podría significar leerlo de la base de datos, pero también podría significar usarlo en una restricción, indexarlo, etc...