📐 Normalisasi Database

Level: Intermediate

Normalisasi adalah proses merancang struktur tabel agar data lebih efisien, konsisten, dan bebas dari duplikasi. Bayangkan seperti merapikan lemari arsip: setiap laci hanya berisi dokumen yang relevan, tidak ada data ganda, dan mudah dicari.

📖 Tujuan Normalisasi

🔑 Bentuk Normalisasi Umum

🛠️ Praktik Kecil

Misalkan kita punya tabel transaksi yang belum dinormalisasi:

-- Tabel belum dinormalisasi
id_transaksi | nama_pelanggan | alamat       | produk       | harga
-------------------------------------------------------------------
1            | Andi           | Jakarta      | Laptop       | 7000000
2            | Andi           | Jakarta      | Mouse        | 150000

👉 Masalah: data pelanggan (nama, alamat) berulang setiap kali transaksi.

Setelah normalisasi (3NF):

-- Tabel pelanggan
id_pelanggan | nama_pelanggan | alamat
---------------------------------------
1            | Andi           | Jakarta

-- Tabel produk
id_produk | nama_produk | harga
--------------------------------
1         | Laptop      | 7000000
2         | Mouse       | 150000

-- Tabel transaksi
id_transaksi | id_pelanggan | id_produk
----------------------------------------
1            | 1            | 1
2            | 1            | 2

👉 Data pelanggan dan produk tidak lagi duplikat, transaksi hanya menyimpan relasi.

🎮 Mini Challenge

Pada sistem perpustakaan, lakukan normalisasi:

Tugas tambahan: Buat relasi antar tabel dengan foreign key agar data konsisten.