Teknik Normalisasi
Teknik Normalisasi
Tujuan Normalisasi
Dalam merancang suatu basis data relasional, sasaran utama dalam
mengembangkan suatu model data logika adalah untuk membuat suatu data yang akurat
yaitu relasi-relasi dan batasan-batasannya. Untuk mencapai sasaran ini, kita harus
mengidentifikasi bentuk atau rangkaian yang sesuai dari relasi. Teknik yang kita dapat
gunakan untuk membantu mengidentifikasi relasi disebut normalisasi.
Normalisasi adalah suatu teknik untuk memproduksi suatu rangkaian relasi-relasi
dengan properti-properti yang diinginkan untuk memenuhi permintaan-permintaan data
suatu organisasi.
Proses normalisasi pertama kali dikembangkan oleh E.F.Codd (1972). Normalisasi
sering ditampilkan sebagai suatu rangkaian pengujian dalam suatu relasi untuk
menentukan apakah relasi tersebut memenuhi permintaan dari suatu bentuk rangkaian
yang spesifik.
Proses normalisasi merupakan metode formal yang mengidentifikasi relasi-relasi
berdasarkan kunci utama dan ketergantungan fungsional diantara atribut-atribut.
Normalisasi mendukung perancang-perancang basis data dengan menyajikan serangkaian
pengujian yang dapat diaplikasikan pada relasi-relasi individu sehingga skema relasi dapat
dinormalisasikan ke bentuk yang spesifik untuk mencegah anomali-anomali pengupdatean
yang kemungkinan terjadi.
1
RELASI MATA KULIAH
Kode_Dosen Nama_Dosen
B104 Indra
B317 Diandra
D310 Anggia
B212 Nesya
RELASI MK_DOSEN
Kesulitan lainnya yang cukup serius dalam menggunakan relasi yang mempunyai
kelebihan informasi adalah permasalahan anomali pengupdatean. Anomali pengupdatean
dapat diklasifikasikan menjadi anomali penyisipan, anomali penghapusan atau anomali
modifikasi.
1. Anomali Penyisipan
Terdapat dua tipe utama dari anomali penyisipan, dimana kita akan
mengilustrasikannya dengan menggunakan relasi MK_Dosen yang diperlihatkan pada
gambar 2, yakni :
a. Pada saat menyisipkan secara detail dari mata kuliah–mata kuliah baru kedalam relasi
MK_Dosen, kita harus memasukkan detail dari dosen yang mengajarkan. Contoh,
untuk memasukkan detail dari mata kuliah baru yang diajarkan dosen dengan kode
B317, kita harus memasukkan data yang benar dari dosen dengan kode B317
sehingga detail-detail dosen konsisten dengan nilai-nilai pada dosen B317 dalam
baris relasi MK_Dosen lainnya. Relasi yang terlihat dalam gambar 1 tidak terdapat
kemungkinan terjadinya ketidak konsistenan ini karena kita hanya memasukkan
kode dosen yang sesuai untuk setiap mata kuliah kedalam relasi mata kuliah.
Ditambah lagi detail-detail dari kode dosen B317 direkam hanya sekali dalam basis
data sebagai baris tunggal dalam relasi dosen tersebut.
b. Pada saat memasukkan detail dari dosen baru yang belum mengajar kedalam relasi
MK_Dosen, jika kita berusaha untuk memasukkan detail-detail dosen terdapat nilai
null dalam atribut-atribut mata kuliah, seperti Kode_MK. Karena Kode_MK
merupakan primary key dalam relasi MK_Dosen, memasukkan nilai null pada
Kode_MK melanggar integritas. Karena itu kita tidak dapat memasukkan satu baris
pada dosen baru kedalam relasi MK_Dosen. Rancangan relasi-relasi yang
diperlihatkan gambar 1 menghindari permasalahan ini karena detail-detail dosen
dimasukkan dalam relasi dosen secara terpisah dari detail-detail mata kuliah.
2. Anomali Penghapusan
Jika kita menghapus baris mata kuliah dari relasi MK_Dosen yang mewakili mata
kuliah terakhir yang diajarkan seorang dosen, informasi mengenai dosen itu juga akan
hilang dari basis data. Sebagai contoh, jika kita menghapus baris pada kode mata kuliah
MI350 (Sistem Basis Data) dari relasi MK_Dosen, informasi yang berkaitan dengan kode
dosen B104 hilang dari basis data. Rancangan relasi pada gambar 7.1. akan menghindari
terjadinya permasalahan ini, karena baris-baris dosen ditempatkan terpisah dari baris-baris
mata kuliah dan hanya atribut-atribut Kode_Dosen yang terhubung dengan dua relasi. Jika
kita menghapus suatu baris pada kode mata kuliah MI350 dari relasi mata kuliah, informasi
kode dosen B104 dalam relasi dosen tidak terpengaruh.
3. Anomali Modifikasi
Dalam relasi MK_Dosen, jika kita ingin merubah nilai dari salah satu atribut dosen
tertentu, sebagai contoh, informasi mengenai nama dosen dari kode dosen B317, kita harus
mengupdate baris-baris dari seluruh mata kuliah yang diajarkan dosen tersebut. Jika
modifikasi ini tidak diselesaikan pada seluruh baris-baris yang sesuai dari relasi MK_Dosen,
basis data menjadi tidak konsisten. Sebagai contoh, kode Dosen B317 dapat muncul dengan
nama-nama dosen yang berbeda di baris-baris mata kuliah yang berbeda.
Contoh-contoh di atas menyatakan bahwa relasi mata kuliah dan relasi dosen pada gambar
1. mempunyai properti-properti yang lebih baik daripada relasi MK_Dosen pada gambar 2
Ketergantungan Fungsional
Salah satu dari konsep-konsep utama yang terkait dengan normalisasi adalah
ketergantungan fungsional. Ketergantungan Fungsional menjelaskan relasi diantara atribut-
atribut. Dalam bagian ini dijelaskan konsep dari ketergantungan fungsional dan dalam
bagian berikutnya menerangkan gabungan dari ketergantungan fungsional dengan proses
normalisasi dari relasi-relasi basis data.
B tergantung secara
A B
fungsional pada A
2. Determinan
Kode_MK → Nama_MK
Kode_MK → Kode_Dosen
Kode_MK → Nama_Dosen
Kode_Dosen → Nama_Dosen
Untuk mengidentifikasi kunci kandidat untuk relasi MK_Dosen, kita harus mengenali
atribut (atau kelompok atribut) yang secara unik mengidentifikasi setiap baris dalam relasi
ini. Jika suatu relasi memiliki lebih dari satu kunci kandidat, kita mengidentifikasi kunci
kandidat yang bertindak sebagai kunci utama untuk relasi tersebut. Seluruh atribut yang
bukan merupakan bagian dari kunci utama seharusnya secara fungsional tergantung pada
kunci kandidat tersebut.
Hanya satu kunci kandidat dari relasi MK_Dosen, dengan demikian kunci utama-nya
adalah Kode_MK, seluruh atribut-atribut lain dari relasi yang secara fungsional tergantung
pada Kode_MK.
Proses Normalisasi
1NF
2NF
3NF
1NF 1NF
BCNF
2NF 2NF
3NF 4NF 3NF
BCNF BCNF
5NF 4NF
4NF
5NF 5NF
Higher normal
forms
Pada bagian ini, proses normalisasi dimulai dengan mentransfer data dari
sumbernya kedalam format tabel dengan kolom-kolom dan baris-baris. Dalam format ini,
tabel tersebut masih dalam bentuk yang tidak ternormalisasi. Untuk merubah tabel yang
tidak ternormalisasi tersebut ke Bentuk Normal Pertama, kita mendefinisikan dan
menghapus pengulangan grup-grup di dalam tabel tersebut. Pengulangan grup merupakan
suatu atribut atau grup dari atribut di dalam suatu tabel yang terjadi dengan nilai berganda
dari atribut-atribut yang dinominasikan sebagai kunci pada tabel tersebut. Yang perlu
diperhatikan dalam konteks ini, istilah kunci menunjukkan atribut yang secara unik
mengidentifikasi setiap baris dalam tabel yang tidak ternormalisasi.
Untuk merubah bentuk yang tidak ternormalisasi menjadi bentuk pertama kita
harus menghapus pengulangan grup dengan memasukkan data yang sesuai dalam kolom-
kolom kosong dari baris-baris yang berisi pengulangan data tersebut. Dengan kata lain, kita
mengisi kolom yang kosong dengan menduplikasi data. Hasil tabel tersebut, menunjukkan
suatu relasi, berisi nilai-nilai atomik (tunggal) dalam irisan dari setiap baris dan kolom dan
karena itu tabel ini masuk dalam Bentuk Normal Pertama. Dengan pendekatan ini,
redudansi diperkenalkan ke dalam hasil relasi, yang kemudian dihapus selama proses
normalisasi berikutnya.
Untuk menjelaskan tahapan normalisasi kita menggunakan relasi mahasiswa-1
dimana seorang mahasiswa dapat mengambil beberapa mata kuliah, satu mata kuliah dapat
diambil oleh lebih dari satu mahasiswa, satu mata kuliah hanya diajarkan oleh satu dosen,
satu dosen dapat mengajar beberapa mata kuliah dan seorang mahasiswa pada mata kuliah
tertentu hanya mempunyai satu nilai. Untuk melihat hubungan antar atribut dapat kita lihat
diagram ketergantungan fungsional pada gambar 5
Atribut B pada relasi R dikatakan tergantung fungsional penuh pada atribut A pada
relasi R, jika B tidak tergantung pada subset dari A ( bila A adalah kunci gabungan).
Bentuk Normal Kedua berlaku pada relasi-relasi dengan kunci komposit yaitu relasi
dengan kunci utama yang terdiri dari dua atau lebih atribut-atribut. Suatu relasi
dengan atribut kunci utama tunggal secara otomatis berada dalam Bentuk Normal
Kedua.
Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut
sudah memenuhi Bentuk Normal Kesatu, dan atribut yang bukan kunci utama sudah
tergantung penuh terhadap kunci utamanya.
Relasi mahasiswa-2 belum memenuhi Bentuk Normal Kedua oleh karena itu tabel
perlu direvisi. Atribut-atribut yang tidak tergantung penuh perlu dipisah dengan
atribut-atribut yang tergantung penuh terhadap kunci utama-nya sehingga tabel
mahasiswa-2 dipisah menjadi dua tabel yaitu relasi kuliah dan relasi mahasiswa-3.
Relasi kuliah dan relasi mahasiswa-3 sudah memenuhi Bentuk Normal Kedua
karena semua atribut yang ada didalamnya sudah tergantung penuh terhadap kunci
utamanya.
Nama_Mhs
No_Mhs
Jurusan
Nilai
Nama_MK
Kode_Dosen
Kode_MK
Nama_Dosen
2683 Dio MI
5432 Kevin Ak.
Atribut C pada relasi R dikatakan tergantung transitif pada atribut A, jika atribut B
tergantung pada atribut A pada relasi R dan atribut C tergantung pada atribut B pada relasi
R ( A → B, B → C, maka A → C ).
Sebagai contoh, perhatikan ketergantungan fungsional berikut dalam relasi tabel kuliah
berikut ini :
Kode_MK → Kode_Dosen dan Kode_Dosen → Nama_Dosen
Nama_Dosen tergantung fungsional pada Kode_Dosen dan Kode_Dosen tergantung
fungsional pada Kode_MK sehingga dapat dikatakan bahwa Nama_Dosen tergantung
transitif pada Kode_MK.
Suatu relasi dikatakan sudah memenuhi Bentuk Normal Ketiga bila relasi tersebut
sudah memenuhi bentuk Normal Kedua dan atribut yang bukan kunci utama tidak
tergantung transitif terhadap kunci utamanya.
Normalisasi dari relasi Bentuk Normal Kedua ke Bentuk Normal Ketiga melibatkan
penghapusan ketergantungan transitif. Atribut-atribut yang mempunyai ketergantungan
transitif dihapus dari relasi dan ditempatkan pada relasi baru. Relasi kuliah (gambar 8.)
belum memenuhi Bentuk Normal Ketiga karena ada ketergantungan transitif (Kode_MK →
Kode_Dosen, Kode_Dosen → Nama_Dosen ) sehingga relasi kuliah harus dipecah menjadi
dua relasi yaitu relasi mata kuliah dan relasi dosen. Relasi mata kuliah dan relasi dosen
sudah memenuhi Bentuk Normal Ketiga karena atribut-atribut sudah tidak tergantung
transitif terhadap kunci utama-nya. Relasi mahasiswa-3 dan relasi nilai sudah memenuhi
Bentuk Normal Ketiga juga karena tidak tergantung transitif terhadap kunci utama-nya.
Kode_Dosen Nama_Dosen
B104 Indra
B317 Diandra
D310 Anggia
B212 Nesya