NORMALISASI DATABASE
PENGERTIAN:
- Menghilangkan dan mengurangi redudansi data.
- Memastikan dependensi data (data berada pada tabel yang tepat).
1NF
Suatu tabel dikatakan 1NF jika dan hanya jika setiap atribut dari data tersebut hanya memiliki nilai tunggal dalam satu baris.Jadi, tabel yang belum dinormalisasi tadi perlu diubah, sehingga bentuk 1NF menjadi seperti ini:
Inti dari normalisasi 1NF adalah tidak boleh ada grouping data ataupun duplikasi data. Sekarang lanjut pada tahap normalisasi 2NF.
2NF
Syarat 2NF adalah tidak diperkenankan adanya partial “functional dependency” kepada primary key dalam sebuah tabel.
Apa itu “functional dependency”?
Functional dependency adalah setiap atribut yang bukan kunci (non key) bergantung secara fungsional terhadap primary key. -Intinya adalah pada tahap normalisasi 2NF ini tabel tersebut harus dipecah berdasarkan primary key. Sehingga bentuk normalisasi 2NF dari tabel tersebut adalah sebagai berikut:
3NF
Pada 3NF tidak diperkenankan adanya partial “transitive dependency” dalam sebuah tabel.
Pada 3NF tidak diperkenankan adanya partial “transitive dependency” dalam sebuah tabel.
Apa itu “transitive dependency”? Transitive dependency biasanya terjadi pada tabel hasil relasi, atau kondisi dimana terdapat tiga atribut A, B, C. Kondisinya adalah A ⇒ B dan B ⇒ C. Maka C dikatakan sebagai transitive dependency terhadap A melalui B.
Intinya pada 3NF ini, jika terdapat suatu atribut yang tidak bergantung pada primary key tapi bergantung pada field yang lain maka atribut-atribut tersebut perlu dipisah ke tabel baru.
Contohnya ada pada atribut qty, kolom tersebut tidak bergantung langsung pada primary key kode_faktur melainkan bergantung pada kolom kode_barang. Jadi setelah dinormalisasi 3NF akan menghasilkan tabel berikut:
normalisasi 3NF menghasilkan 1 tabel baru dari hasil pemecahan tabel transaksi yaitu tabel detail barang yang isinya menampung barang-barang yang dibeli.
kenapa di tabel detail barang terdapat kolom harga lagi? padahal kolom harga sudah ada di tabel barang.
-Kolom harga pada tabel detail barang digunakan untuk menyimpan harga barang pada saat proses transaksi. Jadi, meskipun kolom harga pada tabel barang berubah (naik/turun), harga barang yang ada pada tabel detail barang tidak ikut berubah (fixed). Bayangkan jika kita tidak menambahkan kolom harga pada pada tabel detail barang, maka yang terjadi total invoice dari transaksi akan berubah seiring berubahnya harga barang.
Mengapa normalisasi penting (anomalies yang dihindari)?
-
Insertion anomaly: susah menambah data (mis. tidak bisa tambah product kalau belum ada order).
-
Update anomaly: harus update data di banyak tempat (mis. ubah nama supplier, harus update di banyak baris).
-
Delete anomaly: hapus satu baris menyebabkan hilangnya data lain yang seharusnya tetap disimpan.
Penjelasan dan contoh anomalous behavior tersedia di banyak tutorial DBMS.Artikel populer & dapat dipercaya
-
Microsoft Docs — Database normalization description. Microsoft Learn
-
Wikipedia — Database normalization (overview) dan halaman spesifik 1NF/2NF/3NF. Wikipedia+2Wikipedia+2
-
GeeksforGeeks — Normal Forms in DBMS (penjelasan praktis + contoh). GeeksforGeeks
-
DigitalOcean Community — Database Normalization: 1NF, 2NF, 3NF & BCNF Examples (bagus untuk langkah-langkah praktis). digitalocean.com
-
Guru99 / Study resources — contoh dan pembahasan anomaly + tutorial langkah demi langkah.
0 komentar:
Posting Komentar