Normalisasi • Istilah normalisasi berasal dari E.F. Codd yang berarti suatu tabel yang supel dengan relasi yang sesuai, tidak ada data yang percuma dan setiap atribut memiliki ketergantungan yang sesuai • Kroenke menyatakan normalisasi sebagai cara untuk menghilangkan masalah dalam suatu tabel yang kompleks dengan memecah menjadi beberapa tabel dengan relasi yang menghilangkan masalah tersebut. Masalah yang dimaksud oleh Kroenke adalah anomali 45 ANOMALI • Anomali adalah proses manipulasi pada basis data yang memberikan efek samping yang tidak diharapkan seperti ketidakkonsistenan data atau membuat suatu data hilang ketika data lain dihapus • Macam anomali ada tiga buah : - Anomali peremajaan - Anomali penghapusan - Anomali penyisipan 46 Anomali Peremajaan • Anomali ini terjadi bila pengubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. Sebagai contoh terdapat relasi Pesanan_Beli yang mengandung data PEMASOK dan KOTA yang menyatakan lokasi pemasok, BARANG, dan JUMLAH yang menyatakan nama barang dan jumlah barang yang dipesan 47 • Seandainya pemasok Citra berpindah ke kota lain, misalnya ke Bogor dan pengubahan hanya dilakukan pada record pertama saja maka hasilnya menjadi • Terlihat bahwa ada ketidakkonsistenan. Fakta pertama menyatakan bahwa pemasok Citra berlokasi di Bogor, tetapi fakta kedua menyatakan bahwa pemasok Citra berada di Bandung. Keadaan ini yang menyatakan ketidakkonsistenan 48 Anomali Penyisipan • Anomali penyisipan terjadi jika pada saat penambahan hendak dilakukan ternyata ada elemen data yang masih kosong dan elemen data tersebut justru menjadi kunci. • Sebagai contoh terdapat relasi yang berisi tiga buah atribut: KULIAH RUANG TEMPAT • Relasinya adalah : - KULIAH menggunakan RUANG tertentu (misalnya Jaringan Komputer menggunakan Ruang 4505) - Suatu RUANG berada pada TEMPAT tertentu (misalnya ruang 4505 terdapat pada kampus 4) 49 • Masalahnya bagaimana caranya menyimpan fakta bahwa ruang baru bernama 5204 berada pada Kampus 5? Penyisipan tidak dapat dilakukan mengingat tak ada Informasi KULIAH yang menggunakan ruang tersebut 50 Kasus serupa dapat terjadi pada relasi berikut • Relasi di atas mencatat kursus-kursus yang diikuti oleh siswa beserta biayanya. Misalnya, siswa dengan nomor identifikasi 10 mengambil kursus bahasa Inggris, Perancis dan Mandarin • Masalahnya jika dibuka kursus baru misalnya bahasa Arab dengan biaya 70.000 akan tetapi untuk sementara belum seorang pun yang mengambil kursus tersebut. Akibatnya data kursus bahasa Arab tidak dapat dicatat 51 Anomali Penghapusan • Anomali penghapusan terjadi sekiranya suatu baris (tupel) yang tak terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang. • Misalnya pada relasi kursus apa yang terjadi jika seandainya siswa dengan NO_SISWA 20 yang mengambil bahasa Jepang dihapus? Data yang menyatakan kursus bahasa Jepang sebesar 65.000 juga akan terhapus 52 Dependency (Ketergantungan) • Ketergantungan merupakan konsep yang mendasari normalisasi • Ketergantungan menjelaskan hubungan antar atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. • Ketergantungan ini kelak akan menjadi acuan bagi pendekomposisian data kedalam bentuk yang paling efisien 53 Macam Ketergantungan • • • • Ketergantungan Fungsional Ketergantungan Fungsional Sepenuhnya Ketergantungan Total Ketergantungan Transitif 54 Ketergantungan Fungsional • Ketergantungan Fungsional adalah macam ketergantungan yang banyak dibahas pada literatur basis data. • Ketergantungan Fungsional didefinisikan sebagai : Suatu atribut Y mempunyai Ketergantungan Fungsi terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y Ditulis dengan notasi: XY 55 • Contoh terdapat relasi PESANAN_JUAL yang dinotasikan dengan: PESANAN_JUAL (PEMBELI, KOTA, BARANG, JUMLAH) yang artinya bahwa relasi PESANAN_JUAL mengandung atribut PEMBELI, KOTA, BARANG dan JUMLAH. Sampel datanya 56 • Pada contoh diatas. PEMBELI secara fungsional menentukan KOTA, sebab terlihat bahwa untuk PEMBELI yang sama KOTA-nya juga sama dengan demikian PEMBELI KOTA • Contoh yang lain : { PEMBELI, BARANG } JUMLAH { PEMBELI, BARANG } KOTA { PEMBELI, BARANG } {JUMLAH, KOTA} • Bagian yang disebelah kiri tanda panah disebut penentu (determinan) dan bagian yang terletak di sebelah kanan panah disebut dependen 57 Ketergantungan Fungsional Sepenuhnya • Suatu atribut Y mempunyai Ketergantungan Fungsional Sepenuhnya terhadap atribut X jika: - Y mempunyai ketergantungan fungsional terhadap X - Y tidak memiliki ketergantungan terhadap bagian dari X 58 • Contoh terdapat relasi PELANGGAN: PELANGGAN (KODE_PELANGGAN, NAMA, KOTA, NOMOR_FAX) • Pada relasi ini : {KODE_PELANGGAN, KOTA} NOMOR_FAX KODE_PELANGGAN NOMOR_FAX • Mengingat bahwa NOMOR_FAX bergantung pada {KODE_PELANGGAN} (kondisi 1) tetapi juga bergantung pada KODE_PELANGGAN (kondisi 2) yang tiada lain adalah bagian dari {KODE_PELANGGAN, KOTA}. Maka NOMOR_FAX hanya mempunyai ketegantungan fungsional sepenuhnya hanya pada {KODE_PELANGGAN} • Terkadang Ketergantungan Fungsional Sepenuhanya dinyatakan dengan irreducible dependent (ketergantungan yang tidak dapat dipecah lagi) 59 Ketergantungan Total • Didefinisikan sebagai berikut : Suatu atribut Y mempunyai ketergantungan total terhadap atribut X jika : - Y memiliki ketergantungan fungsional terhadap X - X mempunyai ketergantungan fungsional terhadap Y • Dinyatakan dengan notasi : X Y 60 • Misal terdapat relasi: • Pada contoh ini KODE_PEMASOK NAMA_PEMASOK 61 Ketergantungan Transitif • Didefinisikan sebagai berikut: Atribut Z mempunyai ketergantungan transitif terhadap X jika: - Y memiliki ketergantungan fungsional terhadap X - Z memiliki ketergantungan fungsional terhadap Y 62 • Contoh : • pada relasi ini : KULIAH {RUANG, WAKTU} RUANG TEMPAT terlihat: KULIAH RUANG TEMPAT Jadi TEMPAT mempunyai Ketergantungan Transitif terhadap KULIAH 63