1NF adalah yang paling dasar dari bentuk normal - setiap sel dalam tabel harus berisi hanya satu informasi, dan tidak boleh ada baris duplikat.
2NF dan 3NF semuanya bergantung pada kunci utama. Ingat bahwa kunci utama dapat terdiri dari beberapa kolom. Seperti yang dikatakan Chris dalam jawabannya:
Data tergantung pada kunci [1NF], seluruh kunci [2NF] dan tidak lain kecuali kunci [3NF] (jadi bantu saya Codd ).
2NF
Katakanlah Anda memiliki tabel yang berisi kursus yang diambil dalam semester tertentu, dan Anda memiliki data berikut:
|-----Primary Key----| uh oh |
V
CourseID | SemesterID | #Places | Course Name |
------------------------------------------------|
IT101 | 2009-1 | 100 | Programming |
IT101 | 2009-2 | 100 | Programming |
IT102 | 2009-1 | 200 | Databases |
IT102 | 2010-1 | 150 | Databases |
IT103 | 2009-2 | 120 | Web Design |
Ini bukan di 2NF , karena kolom keempat tidak bergantung pada seluruh kunci - tetapi hanya sebagian saja. Nama kursus tergantung pada ID Kursus, tetapi tidak ada hubungannya dengan semester yang diambil. Dengan demikian, seperti yang Anda lihat, kami memiliki informasi duplikat - beberapa baris memberitahu kami bahwa IT101 sedang pemrograman, dan IT102 adalah Database. Jadi kami memperbaikinya dengan memindahkan nama kursus ke tabel lain, di mana CourseID adalah kunci SELURUH.
Primary Key |
CourseID | Course Name |
---------------------------|
IT101 | Programming |
IT102 | Databases |
IT103 | Web Design |
Tidak ada redundansi!
3NF
Oke, jadi katakanlah kita juga menambahkan nama guru kursus, dan beberapa detail tentang mereka, ke dalam RDBMS:
|-----Primary Key----| uh oh |
V
Course | Semester | #Places | TeacherID | TeacherName |
---------------------------------------------------------------|
IT101 | 2009-1 | 100 | 332 | Mr Jones |
IT101 | 2009-2 | 100 | 332 | Mr Jones |
IT102 | 2009-1 | 200 | 495 | Mr Bentley |
IT102 | 2010-1 | 150 | 332 | Mr Jones |
IT103 | 2009-2 | 120 | 242 | Mrs Smith |
Mudah-mudahan sekarang jelas bahwa TeacherName tergantung pada TeacherID - jadi ini bukan di 3NF . Untuk memperbaikinya, kami melakukan hal yang sama seperti yang kami lakukan di 2NF - keluarkan bidang TeacherName dari tabel ini, dan letakkan di sendiri, yang memiliki TeacherID sebagai kuncinya.
Primary Key |
TeacherID | TeacherName |
---------------------------|
332 | Mr Jones |
495 | Mr Bentley |
242 | Mrs Smith |
Tidak ada redundansi !!
Satu hal penting untuk diingat adalah bahwa jika sesuatu tidak ada di 1NF, itu juga tidak ada di 2NF atau 3NF. Jadi setiap Formulir Normal tambahan membutuhkan semua yang dimiliki oleh bentuk normal bawah, ditambah beberapa kondisi tambahan, yang semuanya harus dipenuhi.