Dalam mata kuliah basis data, ada satu materi yang cukup berat, yaitu normalisasi tabel. Prinsip dasarnya adalah database relasional dimana ada aturan-aturan tertentu yang mengharuskan database designer mengikuti standar yang baku. Postingan berikut sedikit berdiskusi apa saja yang perlu diperhatikan dalam menormalisasi sebuah tabel.
Multivalue
Ini merupakan prinsip dasar database relasional dimana satu field/kolom dalam satu record tidak boleh berisi lebih dari satu item. Misalnya tabel transaksi pembelian barang, tidak boleh ada satu field, misalnya barang, yang berisi item-item barang yang dibeli. Di sini lah letak perbedaan basis data relasional dengan objek. Dalam basis data objek, isi field (diistilahkan dengan atribut) bisa multivalue dalam bentuk array.
Functional Dependency & Transitive Dependency
Dalam tabel transaksi terdapat dua ketergantungan yakni ketergantungan fungsi dan transitif. Jika Unnormalize Form (UNF) berisi field-field dalam transaksi (termasuk yg multivalue), dan 1NF yang berisi para kandidate key, 2NF berisi tabel-tabel yang mendukung ketergantungan fungsi, misalnya dalam pembelian barang, tabel yang terkait adalah tabel penjualan, detil penjualan dan barang.
Sementara itu ketergantungan yang sifatnya transitif, misalnya pelanggan, suplier, kasir/teler, dan lain-lain dipecah dalam 3NF. Ada level yang lebih rumit dan khusus, diberi nama Boyce-Code Normal Form (BCNF), biasanya terjadi ketika suatu field misalnya harga barang yang mengikuti wilayah cabang tertentu, padahal wilayah bukan merupakan primary key.
Surrogate Key
Dalam detil transaksi, misalnya detil pembelian, terkadang dibuat suatu surrogate key yang agar praktis dibuatkan/di-generate secara otomatis oleh sistem (increment). Mengapa harus dibuatkan surrogate key, silahkan simak video yang merupakan materi kuliah berikut. Semoga sedikit membantu.