Relasi dan Normalisasi
Memahami relasi antar tabel dan teknik normalisasi database
Relasi Antar Tabel
One-to-One (Satu ke Satu)
- Satu record di tabel A berhubungan dengan satu record di tabel B
- Digunakan untuk memisahkan data sensitif atau jarang diakses
- Contoh: satu user memiliki satu profil detail
One-to-Many (Satu ke Banyak)
- Satu record di tabel A berhubungan dengan banyak record di tabel B
- Relasi paling umum dalam database
- Contoh: satu user bisa memiliki banyak pesanan
Many-to-Many (Banyak ke Banyak)
- Banyak record di tabel A berhubungan dengan banyak record di tabel B
- Memerlukan tabel penghubung atau junction table
- Contoh: banyak user bisa masuk ke banyak kelas
Foreign Key
- Kolom di satu tabel yang mereferensi primary key tabel lain
- Menjaga integritas data antar tabel
- Mencegah data terhapus atau berubah tanpa aturan
Normalisasi
- Proses mengatur data untuk mengurangi duplikasi dan inkonsistensi
- Tujuannya: setiap data disimpan hanya di satu tempat
First Normal Form (1NF)
- Setiap kolom hanya boleh berisi satu nilai, tidak boleh array
- Setiap baris harus unik, memiliki primary key
- Contoh: alamat tidak boleh jadi satu string, tapi dipisah jalan, kota, kode pos
Second Normal Form (2NF)
- Harus sudah memenuhi 1NF
- Kolom non-key harus bergantung pada seluruh primary key, bukan sebagian
- Relevan untuk tabel dengan primary key gabungan
Third Normal Form (3NF)
- Harus sudah memenuhi 2NF
- Kolom non-key tidak boleh bergantung pada kolom non-key lain
- Contoh: jika ada kolom harga dan total, total tidak perlu disimpan karena bisa dihitung dari harga
Denormalisasi
- Sengaja menambahkan duplikasi data untuk mempercepat query
- Dilakukan ketika performa lebih penting dari efisiensi penyimpanan
- Contoh: menyimpan nama kategori langsung di tabel produk untuk menghindari join
Praktik Terbaik
- Gunakan normalisasi untuk struktur awal database
- Denormalisasi hanya jika ada masalah performa yang jelas
- Pastikan foreign key selalu mengacu pada primary key yang valid
- Dokumentasikan relasi antar tabel dalam diagram