Recraftory

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