1NF adalah tentang atomisitas, bukan redundansi (itulah yang dimaksud dengan bentuk normal yang lebih tinggi). Pada dasarnya, jika semua atribut adalah atomik, tabel Anda berada dalam 1NF.
Jelas, apakah sebuah tabel dalam 1NF tergantung pada apa yang Anda definisikan sebagai "atom". Apa arti "atomisitas" sebenarnya adalah masalah kontroversi, tetapi saya akan mengambil pendekatan kasus per kasus yang pragmatis di sini dan hanya bertanya:
Dalam konteks masalah yang saya coba selesaikan, apakah masuk akal untuk mengakses bagian mana pun dari nilai, atau saya selalu mengakses seluruh nilai?
Jika saya selalu mengakses keseluruhan, itu adalah atom dalam konteks tertentu.
Dalam contoh Anda, kemungkinan Anda ingin mengakses first_name
dan last_name
secara terpisah, jadi full_name
akan menjadi non-atomik dan itu akan menjadi alasan untuk melanggar 1NF. Namun, jika Anda tahu bahwa Anda tidak perlu mengakses nama depan dan belakang secara terpisah, maka Anda dapat hanya full_name
dan tetap tidak melanggar 1NF.
"Mengakses" nilainya harus dipahami secara luas di sini. Ini mungkin berarti membacanya dari database, tetapi bisa juga berarti menggunakannya dalam batasan, atau mengindeksnya dll...