Mungkin sudah banyak yang tidak asing dengan normalisasi. Namun, masih banyak yang belum memahami betul apa itu normalisasi. Untuk itu, saya mencoba untuk membahas tentang normalisasi kembali.
Normalisasi
Proses normalisasi adalah proses untuk
memperoleh properti-properti skema relasi yang bagus menjadi bentuk normal
lebih tinggi sehingga syarat-syarat dibawah ini terpenuhi:
a.
Mengoptimalisasi redudansi (pengulangan data
yang tidak perlu). Redudansi tidak bisa dihilangkan sama sekali karena berguna
untuk integritas referensial, tetapi redudansi bisa dioptimalisasi. Untuk
jumlah data yang tidak terlalu banyak mungkin tidak terlalu berpengaruh dalam
hal penggunaan harddisk. Tapi bayangkan jika ada ribuan, bahkan jutaan
redudansi, mungkin akan sangat berpengaruh pada penggunaan ruang.
b.
Menghilangkan anomali. Anomali pada dasarnya
adalah ketidak-konsistenan (inkonsistensi). Misalkan ada pergantian nama dari
Bank Perkasa menjadi Bank Perkasa Utama sebanyak 4 record. Jika pergantian nama
hanya dilakukan pada salah satu record saja, maka terjadi ketidak-konsistenan
yaitu satu nomor bank berrelasi dengan 2 nama bank yang berbeda.
Dekomposisi tabel dapat mengurangi
redudansi yang ada dan menghilangkan anomali.
Perancangan melalui proses normalisasi
mempunyai keuntungan-keuntungan sebagai berikut :
a. Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
b. Meminimalkan resiko inkonsistensi data pada basis
data.
c. Meminimalkan kemungkinan anomaly pembaruan.
d. Memaksimalkan stabilitas struktur data.
Bentuk Normal
Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal
lebih tinggi. Terdapat beragam tingkat bentuk normal, yaitu :
a. Bentuk normal pertama (1NF)
b. Bentuk normal kedua (2NF)
c. Bentuk normal ketiga (3NF)
d. Bentuk normal Boyce-Codd (BCNF)
e. Bentuk normal keempat (4NF)
f. Bentuk normal kelima (5NF)
Codd mendefinisikan bentuk normal
pertama, kedua dan ketiga di makalah (Codd, 1970). Bentuk normal ketiga
kemudian diperbaiki sehingga mempunyai bentuk normal yang lebih kuat yaitu BCNF
(Codd, 1974). Fagin memperkenalkan bentuk normal keempat (Fagin, 1977),
kemudian Fagin juga memperkenalkan bentuk normal kelima (Fagin, 1979).
Bentuk normal pertama untuk menghilangkan atribut bernilai jamak. Bentuk normal
kedua untuk menghilangkan kebergantungan parsial. Bentuk normal ketiga untuk
menghilangkan kebergantungan transitif. Bentuk normal Boyce-Codd untuk
menghilangkan anomaly tersisa disebabkan kebergantungan fungsional. Bentuk
normal keempat untuk menghilangkan kebergantungan nilai jamak. Bentuk normal
kelima untuk menghilangkan anomaly tersisa.
Tiga bentuk normal pertama berkaitan dengan kebergantungan fungsional.
Sementara itu bentuk keempat dan kelima berkaitan dengan redudansi yang
disebabkan kebergantungan banyak nilai (multi-valued
dependencies).
Bentuk
Normal Pertama
Bentuk normal pertama adalah ekivalen dengan definisi model relasional. Relasi
adalah bentuk normal pertama (1NF) jika semua nilai atributnya adalah sederhana
(bukan komposit).
Syarat :
o
Tidak ada set atribut yang berulang atau
bernilai ganda.
o
Telah ditentukannya primary key untuk tabel
atau relasi.
o
Tiap atribut hanya memiliki satu pengertian.
o
Tiap atribut yang dapat memiiki banyak nilai
sebenarnya menggambarkan entitas atau relasi yang terpisah.
Bentuk Normal Kedua
Syarat :
o
Bentuk data telah memenuhi kriteria bentuk
normal ke satu.
o
Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional
sepenuhnya pada primary key
Relasi pada bentuk normal kedua harus
tidak menyimpan fakta-fakta mengenai bagian kunci relasi. Bentuk normal kedua
menghilangkan kebergantungan parsial dan masih memiliki anomali-anomali yang
secara praktis tidak dapat diterima.
Bentuk Normal Ketiga
Syarat :
o
Bentuk data telah memenuhi kriteria bentuk
normal ke dua.
o
Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional
terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu
relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi
itu saja.
Bentuk normal ketiga menghilangkan kebergantungan transitif, awalnya bentuk
normal ketiga dipikir sebagai bentuk normal puncak/paling akhir. Namun kemudian
dapat ditemukan bentuk normal lebih kuat yaitu bentuk normal Boyce-Codd.
Bentuk Normal Boyce-Codd (BCNF)
BCNF memiliki ketentuan yaitu masing-masing atribut utama bergantung fungsional
penuh pada masing-masing kunci dimana kunci tersebut bukan bagiannya. Relasi
adalah BCNF (optimal) jika setiap determinan atribut-atribut relasi adalah
kunci relasi. Relasi adalah BCNF (optimal) jika kapanpun fakta-fakta disimpan
mengenai beberapa atribut, maka atribut-atribut ini merupakan satu kunci
relasi. BCNF dapat memiliki lebih dari satu kunci. Properti penting BCNF adalah
relasi tidak memiliki informasi yang redundan.
Bentuk Normal Keempat
Relasi dalam bentuk normal keempat (4NF) jika relasi dalam BCNF dan tidak
berisi kebergantungan banyak nilai. Untuk menghilangkan kebergantungan banyak
nilai dari satu relasi, kita membagi relasi menjadi dua relasi baru. Masing –
masing relasi berisi dua atribut yang mempunyai hubungan banyak nilai.
Bentuk Normal Kelima
Bentuk normal kelima (5NF) berurusan dengan properti yang disebut join tanpa
adanya kehilangan informasi (lossless join). Bentuk normal kelima (5NF) juga
disebut PJNF (projection-join normal form). Kasus-kasus ini sangat jarang
muncul dan sulit untuk dideteksi secara praktis.