De 1NF gaat over atomiciteit, niet over redundantie (dat is waar hogere normaalvormen over gaan). Als alle attributen atomair zijn, staat je tabel in wezen in 1NF.
Het is duidelijk dat of een tabel in 1NF is, afhangt van wat u definieert als "atomair". Wat "atomiciteit" eigenlijk betekent, is een kwestie van enige controverse, maar ik zou hier een pragmatische benadering van geval tot geval nemen en gewoon vragen:
In de context van het probleem dat ik probeer op te lossen, heeft het dan ooit zin om toegang te krijgen tot een deel van de waarde, of heb ik altijd toegang tot de hele waarde?
Als ik altijd toegang heb tot het geheel, is het in die specifieke context atomair.
In uw voorbeeld wilt u waarschijnlijk toegang tot first_name
en last_name
apart, dus full_name
zou niet-atomair zijn en dat zou de reden zijn voor het overtreden van de 1NF. Als u echter weet dat u de voor- en achternaam nooit afzonderlijk hoeft te gebruiken, kunt u slechts de full_name
en nog steeds de 1NF niet schenden.
"Toegang tot" de waarde moet hier vrij algemeen worden begrepen. Het kan natuurlijk betekenen dat je het uit de database moet lezen, maar het kan ook betekenen dat je het in een beperking gebruikt, of het indexeert, enz...