Bab 3 Normalisasi

advertisement
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:
XY
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
Download