Normalisasi



Normalisasi adalah proses sistematis untuk mendekomposisi tabel guna mengeliminasi redundansi data dan anomali manipulasi data (insertion, update, delete). Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.

CIRI-CIRI TABEL NORMAL
  • Jumlah atribut bersifat minimal, sesuai dengan kebutuhan data. 
  • Atribut yang berhubungan dekat (functional dependency) ditempatkan dalam satu tabel yang sama. 
  • Redundansi (kemunculan duplikasi data yang tidak diharapkan) bersifat minimal dengan memanfaatkan foreign key.
Contoh Redundansi

Contoh Anomali Update

Perhatikan Relasi:
EMP_PROJ(Emp#, Proj#, Ename, Pname, No_hours)

Anomali Update:
Merubah nama project P1 dari “Billing” menjadi “Customer-Accounting” menyebabkan perubahan harus dilakukan untuk semua 100 employees yang bekerja di project P1.

Contoh Insertion Anomaly

Perhatikan relasi:
EMP_PROJ(Emp#, Proj#, Ename, Pname, No_hours)

Insert Anomaly:
Tidak dapat memasukkan sebuah project sebelum seorang employee ditempatkan pada project tersebut.

sebaliknya:
Tidak dapat memasukkan seorang employee jika dia tidak ditempatkan pada sebuah project.

Contoh Delete Anomaly

Perhatikan Relasi:
EMP_PROJ(Emp#, Proj#, Ename, Pname, No_hours)

Delete Anomaly:
  • Ketika sebuah project dihapus, maka semua employee yang bekerja pada project tersebut akan terhapus. 
  • Demikian pula, jika seorang employee yang bekerja pada sebuah project dihapus, maka akan menghapus pula data employee tersebut pada project-project lainnya. 
Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
  1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis. 
  2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation). 
  3. Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan kemudian-) Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).