Teknik Normalisasi TEHNIK NORMALISASI BEBERAPA PENGERTIAN NORMALISASI : Normalisasi merupakan proses pengelompokan elemen data menjadi tabel–tabel yang menunjukkan entity dan relasinya. Normalisasi adalah proses pengelompokan atribute-atribute dari suatu relasi sehingga membentuk WELL STRUCTURE RELATION. Keuntungan dari normalisasi, yaitu: 1.
Meminimalkan ukuran penyimpanan yang diperlukan untuk menyimpan data
2.
Meminimalkan resiko inkonsistensi data pada basis data
3.
Meminimalkan kemungkinan anomali pembaruan
4.
Memaksimalkan stabilitas struktur data
WELL STRUKTURE RELATION Adalah sebuah relation yang jumlah kerangkapan datanya sedikit (minimum Amount Of Redundancy), serta memberikan kemungkinan bagi user untuk melakukan INSERT, DELETE, dan MODIFY terhadap baris-baris data pada relation tersebut, yang tidak berakibat terjadinya ERROR atau INKONSESTENSI DATA, yang disebabkan oleh operasi –operasi tersebut Contoh : Terdapat sebuah relation Course, dengan ketentuan sbb:
Setiap mahasiswa hanya boleh
Setiap matakuliah mempunyai uang mahasiswa yang mengambil
mengambil satu matakuliah saja. kuliah yang standar (tidak tergantung
pada
matakuliah tsb.
RELATION COURSE STUDENT-ID 92130
KODE-MTK CS-200
Biaya 75
92200
CS-300
100
92250
CS-200
75
92425
CS-400
150
92500
CS-300
100
o
CS-500 92575 50 Relation di atas merupakan sebuah relation yang sederhana dan terdiri dari 3 kolom/atribute
D:\eri Ngajar\Sistem Basis Data 2008\pert 11 Tambahan.doc
o
Bila diteliti secara seksama, maka akan ditemukan redundancy pada datanya, dimana biaya kuliah selalu berulang pada setiap mhs. Akibatnya besar kemungkinan terjadi Error atau inkonsistensi data, bila dilakukan update terhadap relation tsb yang disebut dengan Anomali
ANOMALY Merupakan penyimpangan-penyimpangan atau Error atau Inkonsistensi data yang terjadi pada saat dilakukan proses insert, delete ataupun modify. Terdapat 3 jenis Anomali : 1. Anomali penyisipan(Insertion Anomali) Error yang terjadi sebagai akibat operasi insert record/tuple pada sebuah relation contoh : Ada matakuliah baru (CS-600) yang akan diajarkan, maka matakuliah tsb tidak bisa di insert ke dalam relation tsb sampai ada mhs yang mengambil matakuliah tsb Contoh lain: Kuliah Ruang Jaringan Komputer Merapi Pengantar Basis data Merbabu Matematika I Rama Sistem Pakar Sinta Kecerdasan Buatan Merapi Relasi diatas menyatakan bahwa :
Tempat Gedung Utara Gedung Utara Gedung Selatan Gedung Selatan Gedung Utara
Kuliah menggunakan ruang tertentu(misalnya jaringan komputer menggunakan ruang merapi), dan suatu ruang berada pada tempat tertentu(misalnya ruang merapi terdapat pada gedung utara) Masalahnya, bagaimana caranya menyimpan fakta bahwa ruang baru bernama arjuna terdapat pada gedung selatan? Penyisipan tidak dapat dilakukan mengingat tak ada informasi kuliah yang menggunakan ruang tersebut. 2. Anomali penghapusan(delete Anomali) Error yang terjadi sebagai akibat operasi delete record/tuple pada sebuah relation Contoh : Mhs dengan student-id 92-425, memutuskan untuk batal ikut kuliah CS-400, karena dia merupakan satu-satunya peserta matakuliah tsb, maka bila record/tuple tsb didelete akan berakibat hilangnya informasi bahwa mata-kuliah CS-400, biayanya 150 Contoh lain: Anomali penghapusan terjadi sekiranya sesuatu baris(tupel) yang tak terpakai dihapus dan sebagai akibatnya terdapat data lain yang hilang. Dengan mengambil contoh relasi pesanan beli didepan, apa yang terjadi seandainya data pemasok candra yang berada dikota jakarta dihapus? Data yang menyatakan bahwa barang Keyboard dan jumlah 5 juga akan terhapus. D:\eri Ngajar\Sistem Basis Data 2008\pert 11 Tambahan.doc
3. Anomali Peremajaan(Update Anomali) Error yang terjadi sebagai akibat inkonsistensi data yang terjadi sebagai akibat dari operasi update record/tuple dari sebuah relation Contoh : Bila biaya kuliah untuk matakuliah CS-200 dinaikan dari 75 menjadi 100, maka harus dilakukan beberapa kali modifikasi terhadap record-record, tuple-tuple mhs yang mengambil matakuliah CS-200, agar data tetap konsisten Contoh Lain: Relasi Pesanan Beli Pemasok Kartika Citra Candra Citra
Kota Jakarta Bandung Jakarta Bandung
Barang Jumlah Monitor GGG 10 ZIP-Drive 4 Keyboard 5 Mouse CCp 25
Seandainya pemasok citra berpindah kekota lain,misalnya ke bogor, dan pengubahan hanya dilakukan pada data pertama(data pemasok citra pada relasi pesanan beli ada dua buah),maka hasilnya adalah
Pemasok Kartika Citra Candra Citra
Kota Jakarta Bogor Jakarta Bandung
Barang Jumlah Monitor GGG 10 ZIP-Drive 4 Keyboard 5 Mouse CCp 25
Berdasarkan teori normalisasi, relation course dipecah menjadi 2 relation terpisah , sbb STUDENT
MTK
STUDENT-ID 92130
KODE-MTK CS-200
KODE-MTK CS-200
Biaya 75
92200
CS-300
CS-300
100
92250
CS-200
CS-400
150
92425
CS-400
CS-500
50
92500
CS-300
92575
CS-500
PROBLEM-PROBLEM PADA RELATION YANG SUDAH DINORMALISASI
Performance Problem Contoh: Sebelum normalisasi, untuk menghasilkan listing data seperti pada relation course, dapat digunakan instruksi SQL sebagai berikut: SELECT * FROM COURSE;
D:\eri Ngajar\Sistem Basis Data 2008\pert 11 Tambahan.doc
Setelah dinormalisasi, untuk menghilangkan listing data-data yang sama harus terlebih dahulu menggabungkan tuple-tuple dan relatin STUDENT-MTK dengan tuple-tuple MTKBIAYA, dengan menggunakan SQL sebagai berikut: SELECT Student.Student-id, Mtk.kode-mtk,biaya From student,mtk Where student.kode-mtk=mtk.kode-mtk; Hasil yang diperoleh sama, tetapi waktu dieksekusi akan lebih lama
Referential Integrity Problem Berupa Maintenance Consistency of Refference anatara 2 buah relation yang terkait. Contoh: Mengacu pada relation student dan mtk a.
Jangan menambah record baru di relation student kecualo kode-mtk untuk record baru tersebut sudah terdapat di relation mtk
b.
Jangan menghapus(delete) record di relation mtk bila masih terdapat record-record yang berada di relation studen, memiliki kode-mtk yang valuenya sama dengan value kode-mtk yang akan dihapus.
Beberapa Konsep Yang harus Diketahui a.
Field/Atribut kunci
b.
Ketergantungan Fungsi
a.
Field/Atribut dalam database Super Key,himpunan dari satu atau lebih entitas yang digunakan
untuk mengidentifikasikan secara unik sebuah entitas dalam entitas set. Candidat Key, sati attribute atau satu set minimal atribute yang
mengidentifikasikan secara unik suatu kejadian yang specifik dari entity Primary key,satu atribute atau satu set minimal atribute yangtidak
hanya mengidentifikasikan secara unik suatu kejadian yang specifik tapi juga dapat mewakili setiap kejadian dari suatu entity
Altenate key, kunci kandidat yang tidak dipakai sebagai primary key
Foreign key, suatu atribute(atau set atribute yang melengkapi satu relationship(hubungan yang menunjukkan ke induknya.
Sales Pemasok Kartika Citra Candra
Pesanan Kota Jakarta Bogor Jakarta
Kode 1002 1001 1003
D:\eri Ngajar\Sistem Basis Data 2008\pert 11 Tambahan.doc
P# 2648 2649 2641
Super Key
= S#,SNAME,KODE
Candidat Key = S#,SNAME Primary key
= S#
Alternate Key = SNAME Foreign Key
= KODE
b. Ketergantungan Fungsi 1.
Ketergantungan Fungsional(Fungsional dependent) Keterkaitan antar hubungan antara 2 atribute pada sebuah relasi. Dituliskan dengan cara : A -> B, yang berarti : Atribute B fungsionality Dependent terhadap atribute A atau Isi (value) atribute A menentukan isi atribute B Definisi dari functional dependent : Diketahui sebuah relasi R, atribute Y dari R adalah FD pada atribute X dari R ditulis R.X -> R.Y jika dan hanya jika tiap harga X dalam R bersesuaian dengan tepat satu harga Y dalam R
Dependensi fungsional adalah macam dependensi yang banyak diulas pada literatur basis data. Dependensi fungsional didefinisikan sebagai berikut:
Suatu Atribut Y mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y Contoh Pesanan_jual(pembeli,kota,barang,jumlah) Yang artinya bahwa relasi pesanan_jual mengandung atribut pembeli,kkota,barang dan jumlah
Pembeli P1 P1 P2 P2 P2 P3 P3
Kota Yogya Yogya Solo Solo Solo Klaten Klaten
Barang B1 B2 B1 B2 B3 B3 B4
Jumlah 10 5 7 6 6 7 6
Pada contoh ini,PEMBELI secara fungsional menentukan KOTA, sebab terlihat bahwa untuk PEMBELI yang sama, KOTA-nya juga sama, dengan demikian: D:\eri Ngajar\Sistem Basis Data 2008\pert 11 Tambahan.doc
PEMBELI KOTA Catatan : bagian yang terletak disebelah kiri panah biasa disebut penentu(determinan) dan bagian yang terletak disbelah kanan panah disebut yang tergantung(dependen) 2.
Fully Functional Dependent(FFD) Suatu rinci data dikatakan fully functional dependent pada suatu kombinasi rinci data jika functional dependent pada kombinasi rinci data dan tidak functional dependent pada bagian lain dari kombinasi rinci data. Definisi dari FDD: Atribute Y pada relasi R adalah FFD pada atribute X pada relasi R jika Y FD pada X tida FD pada himpunan bagian dari X
Definisi dependensi fungsional sepenuhnya adalah sebagai berikut:
Suatu atribut Y mempunyai dependensi fungsionalsepenuhnya terhadap atribut X Jika:
Y mempunyai dependensi fungsional terhadap X
Y tidak memiliki dependensi terhadap bagian dari X
Contoh terdapat pada relasi pelanggan: PELANGGAN(KODE_PELANGGAN,NAMA,KOTA,NOMOR_FAX) Pada relasi ini: 1.
{KODE_PELANGGAN,KOTA} NOMOR_FAX
2.
KODE_PELANGGAN NOMOR_FAX
Kondisi 1 NOMOR_FAX bergantung pada {KODE_PELANGGAN,KOTA} Kondisi 2 NOMOR_FAX bergantung pada KODE_PELANGGAN Yang tidak lain adalah bagian dari {KODE_PELANGGAN,KOTA}, maka NOMOR_FAX tidaklah
mempunyai
dependensi
fungsional
sepenuhnya
terhadap
{KODE_PELANGGAN,KOTA}. Dengan kata lain NOMOR_FAX hanya mempunyai dependensi fungsional sepenuhnya terhadap KODE_PELANGGAN
3.
Ketergantungan partial
Sebagian dari kunci dapat digunakan sebagai kunci utama D:\eri Ngajar\Sistem Basis Data 2008\pert 11 Tambahan.doc
4.
Ketergantungan transitif
Definisi Dependensi Transitif adalah sebagai berikut:
Suatu atribut Z mempunyai dependensi transitif terhadap atribut X bila:
Y memiliki dependensi fungsional terhadap X
Z memiliki dependensi terhadap Y
Contoh: Kuliah Jaringan Komputer Matematika I Sistem Pakar Fisika 1
Ruang Merapi Rama Sinta Merapi
Tempat Gedung Utara Gedung Selatan Gedung Selatan Gedung Utara
Waktu Senin,08:00-09:50 Selasa,07:00-08:45 Rabu,10:00-11:45 Selasa,08:00-08:50
Pada relasi ini: KULIAH {RUANG,WAKTU} RUANG TEMPAT Terlihat bahwa: KULIAH RUANG TEMPAT Dengan demikian TEMPAT mempunyai dependensi transitif terhadap kuliah. 5.
Determinan
Suatu atribute(field) atau gabungan atribute dimana beberapa atribut lain bergantung sepenuhnya pada atribut tersebut.
D:\eri Ngajar\Sistem Basis Data 2008\pert 11 Tambahan.doc