ILK 2210 SISTEM MANAJEMEN DATABASE Normalisasi Sasaran perancangan Database relasional: ◦ ◦ ◦ ◦ ◦ Menghasilkan himpunan skema relasi Untuk menyimpan informasi tanpa redundansi. Meningkatkan derajad konsistensi data Dengan pemeliharaan integritas data dan Memudahkan pengguna mencari informasi yang dikehendaki Untuk mencapai sasaran : ◦ Memerlukan informasi tambahan dari kondisi objek yang dimodelkan. ◦ Mencari kebergantungan fungsian (functional dependency) ◦ Merancang relasi menjadi bentuk normal (normal form) Relasi yang terstruktur dengan baik: Mengandung redudansi dalam jumlah minimal Mengijinkan pengguna menyisipkan,memodifikasi serta menghapus baris-baris (rekod) Tanpa menimbulkan kesalahan atau inkonsistensi data. Redundansi pada tabel dapat menghasilkan inkonsistensi (anomali). StaffBranch staffNo sName position salary branchN o bAddress SL21 SG37 SG14 SA9 SG5 SL41 Manager Assistant Supervisor Assistant Manager Assistant 30000 12000 18000 9000 24000 9000 B005 B003 B003 B007 B003 B005 22 Deer Rd, London 163 Main St, Glasgow 163 Main St, Glasgow 16 Argyll St,Aberdeen 163 Main St, Glasgow 22 Deer Rd, London John White Ann Beech David Ford Mary Howe Susan Brand Julie Lee Staff staffNo sName position salary branchNo SL21 SG37 SG14 SA9 SG5 SL41 John White Ann Beech David Ford Mary Howe Susan Brand Julie Lee Manager Assistant Supervisor Assistant Manager Assistant 30000 12000 18000 9000 24000 9000 B005 B003 B003 B007 B003 B005 Branch branchNo B005 B007 B003 bAddress 22,Deer Rd, London 16,Argyll St,Aberdeen 163, Main St, Glasgow 3 Jenis Anomali : Anomali penyisipan (insert anomaly); Keadaan dimana akan terjadi kesalahan pada saat pengguna melakukan penyisipan data Anomali penghapusan (deleting anomaly); Keadaan dimana akan terjadi kesalahan pada saat pengguna melakukan penghapusan data pada tabel Anomali Modifikasi (modification anomaly); Keadaan dimana akan terjadi kesalahan pada saat pengguna melakukan modifikasi data Contoh: Skema Relasi mahasiswa_nilai Atribut Semantik dan Domain NIM Setiap mahasiswa diberi satu nomer yang unik tdd 5: Char Utkmhsw perempuan diawali dengan P, Lelaki dengan L. • NamaMhs Nama Mahasiswa :char Major Bidang pengkhususan(unik):Char SKSLulus Jumlah SKS yang diperlukan untuk lulus:Integer KodeMKul Kode Matakuliah (unik) untuk setiap matakuliah:Char NamaMkul Nama Matakuliah:Char SKS Jumlah SKS:Integer Nilai Nilai yang diperoleh untuk satu matakuliah:Decimal Organizational / Enterprise Constraint: - Seorang mahasiswa boleh mengambil lebih dari satu matakuliah - Seorang mahasiswa harus mempunyai hanya satu major sebagai pengkhususan - Setiap major memiliki syarat jumlah sks yang diperlukan untuk lulus Bentuk Tidak Normal (Unnormalized Form); - Tabel/relasi tsb terdiri dari satu kelompok data yang berulang - Nilai atribut pada tiap tuple tidak atomic (nilai tunggal) NIM NamaMhs P1050 Anita L2115 Hendri Major Ilmu Komputer Sistem Informasi SKSLulus KodeMkul 118 SK001 125 NamaMkul SKS Nilai P.Tek.Informasi 2 80 SK002 Algoritma & Pemrograman 4 75 SM100 Sistem Informasi 4 85 Tabel Tidak Normal (Unnormalized Table) Bentuk Normal Pertama (1NF) Tabel/relasi dalam bentuk normal pertama : jika setiap atribut pada tuple memiliki nilai atomic (nilai tunggal) Untuk menukarkan bentuk tidak normal kedalam bentuk normal : 1.Sisipkan data yang tidak berulang kedalam kolomkolom bagi setiap baris tuple yang nilainya berulang 1.Tetapkan satu kunci primer bagi tabel normal Tabel dalam bentuk normal NIM NamaMhs P1050 Anita P1050 L2115 Major SKS Nilai P.Tek.Informasi 2 80 SK002 Algoritma & Pemrograman 4 75 SM100 Sistem Informasi 4 85 SKSLulus KodeMkul Ilmu Komputer 118 SK001 Anita Ilmu Komputer 118 Hendri Sistem Informasi 125 NamaMkul Kebergantungan Fungsian (Functional Dependency) • Atribut B Bergantung Fungsian (BF) pada atribut A j.h.j untuk setiap nilai A tertentu pasti akan dapatkan nilai B yang sama. Relasi Mahasiswa_Nilai NIM NamaMhs Major SKSLulus KodeMkul NamaMKul SKS Nilai P1050 Anita Ilmu Komputer 118 SK001 P.Tek.Informasi 2 80 P1050 Anita Ilmu Komputer 118 SK002 Algoritma & Pemrograman 4 75 L2115 Hendri Sistem Informasi 125 SM100 Sistem Informasi 4 85 L4213 Fahmi Software Engineering 130 KP222 C++ 4 70 P2020 Sarita Sistem Informasi 125 SM100 Sistem Informasi 4 60 P4000 Dewi Sistem Informasi 125 SM100 Sistem Informasi 4 65 Instansiasi Relasi Mahasiswa_Nilai Dalam Relasi Mahasiswa_Nilai: (NamaMhs,Major,SKSLulus) NIM KodeMkul (NamaMkul,SKS) Major SKSLulus (NIM,KodeMkul) Nilai NamaMhs NIM Major SKSLulus Nilai NamaMkul KodeMkul SKS NIM KodeMkul NamaMhs Major SKSLulus NamaMkul SKS Nilai KF1 Kebergantungan Sebagian KF2 Kunci primer KF3 KF4 Kebergantungan Sebagian Kebergantungan Transitif Diagram Kebergantungan Fungsian Kebergantungan Fungsian Penuh (KFP) Jika A dan B adalah atribut relasi R. B dikatakan Bergantung Fungsian Penuh (BFP) atas A jika B BF terhadap A tetapi tidak pada mana-mana subset A. X X, x bukan subset proper x (X,Y) X , x subset proper (x,y) KFP melibatkan penentu tunggal. KFS (K.Fungsian Sebagian); jika KF melibatkan penentu lebih dari 1 atribut Bentuk Normal Kedua (2NF) • Sebuah relasi berada dalam 2NF jika ia berada pada 1NF dan semua atribut bukan kunci Bergantung Fungsian Penuh (BFP) atas kunci primer (KP). • 1NF 2NF: 1. 2. 3. 4. Buat List semua KF Tentukan Kunci Primer (KP) relasi R dan subset dari KP tsb Dekomposisi.Kelompokkan semua atribut (a) yang BFP pada KP kedalam satu relasi bersama sama dengan KP.Hasilnya R0 (p,a) Kelompokkan semua atribut yang Bergantung Fungsian Sebagian (BFS) atas KP dalam satu relasi bersama dengan salinan atribut subset KP dimana atribut tsb BF padanya. R1(p,a), R2(p2,a2)…Rn(pn ,, an) 1. KF lihat pada diagram KF sebelumnya 2. Kunci Primer pada Relasi mahasiswa_nilai : NIM + KodeMkul 3. Dekomposisi Relasi: GRED (NIM,KodeMkul,Nilai) MAHASISWA(NIM,NamaMhs,Major,SKSLulus) MKULIAH (KodeMkul,NamaMkul,SKS) MKULIAH KodeMkul NamaMKul SKS SK001 P.Tek.Informasi 2 SK002 Algoritma&Pemrograman 4 SM100 Sistem Informasi 4 KP222 C++ 4 GRED NIM KodeMkul Nilai P1050 SK001 80 P1050 SK002 75 L2115 SM100 85 L4213 KP222 85 P2020 SM100 70 P4000 SM100 60 MAHASISWA NIM NamaMhs Major SKSLulus P1050 Anita Ilmu Komputer 118 L2115 Hendri Sistem Informasit 125 L4213 Fahmi Software Engineering 130 P2020 Zarina Ilmu Komputer 125 P4000 Sarita Sistem Informasi 125 Check Anomali pada relasi yang baru diatas KebergantunganTransitif (KT) Terdapat sekurang-kurangnya 3 atribut A,B,C dalam satu relasi sehingga C BF atas B, B BF pada A maka C BF pada A secara transitif melalui B, dengan syarat A tidak BF kepada B atau C. A B, B C, makaAC Bentuk Normal Ketiga (3NF) Semua relasi berada dalam 3NF jika ia berada dalam 2NF dan tidak ada atribut bukan KP Bergantung Transitif (BT) pada KP. 1. 2. Dekomposisi 2NF-3NF: Cari KT dan tetapkan penentu yang bukan KP . Kelompokkan atribut yang BT bersama dengan satu salinan atribut penentu pada relasi baru. Kelompokkan atribut tunggal menjadi satu relasi baru Bagi setiap relasi R dengan atributA,B,C ,AB dan B C .Uraikan relasi R menjadi R1, dan R2. Dimana R1 (A,B) dan R2(B,C). 3. 4. NIM Major NamaMhs SKSLulus Kebergantungan Transitif (KT) 1. 2. Kebergantungan Transitif (KT) yaitu : NIM (NamaMhs,Major) Major SKSLulus Relasi baru yang dihasilkan: PENGKHUSUSAN (Major, SKSLulus) MHS_PENGKHUSUSAN(NIM, NamaMhs, Major) MKULIAH KodeMkul NamaMKul SKS SK001 P.Tek.Informasi 2 SK002 Algoritma&Pemrograman 4 SM100 Sistem Informasi 4 KP222 C++ 4 GRED NIM KodeMkul Nilai P1050 SK001 80 P1050 SK002 75 L2115 SM100 85 L4213 KP222 85 P2020 SM100 70 P4000 SM100 60 MHS_PENGKHUSUSAN NIM NamaMhs PENGKHUSUSAN Major Major SKSLulus P1050 Anita Ilmu Komputer Ilmu Komputer 118 L2115 Hendri Sistem Informasi Sistem Informasi 125 L4213 Fahmi Software Engineering Software Engineering 130 P2020 Zarina Sistem Informasi P4000 Sarita Sistem Informasi Check Anomali untuk tabel diatas. Maka Relasi mahasiswa_nilai yang dihasilkan: MHS_Pengkhususan (NIM,NamaMhs,Major) MKULIAH (KodeMkul, NamaMKul, SKS) PENGKHUSUSAN (Major,SKSLulus) GRED (NIM,KodeMkul,Nilai) 1NF 2NF Mahasiswa_Nilai 3NF GRED GRED MKULIAH MKULIAH MHS_PENGKHUSUSAN MAHASISWA PENGKHUSUSAN Hilangkan Kebergantungan Sebagian Hilangkan Kebergantungan Transitif Boyce-Codd Normal Form (BCNF) Sebuah relasi adalah dalam BCNF hanya jika setiap penentu adalah kunci calon (candidate key). Perhatikan: Untuk relasi yang memiliki hanya satu kunci calon, 3NF setara dengan BCNF. Jika sebuah relasi yang memiliki hanya satu kunci calon, dan berada dalam 3NF, secara otomatis ia juga dalam BCNF. Kemungkinan sbh relasi tidak memenuhi syarat BCNF jarang berlaku, karena memerlukan 3 keadaan a.l: Terdapat dua atau lebih kunci calon Dua kunci calon adalah kunci komposit Dua kunci calon tersebut beririsan sekurang-kurangnya ada satu atribut yang sama. 3NF BCNF Contoh: Skema relasi DOSEN_RISET sbb: DOSEN_RISET (NIP, NIM,No_Riset) Semua atribut unik Batasan Organisasi: Seorang dosen boleh membimbing (supervisi) hanya satu riset. Seorang mhsw boleh membuat lbh dari 1 riset. Satu riset boleh dijalankan oleh lebih dari 1 mhs dan boleh dibimbing lebih dari 1 orang dosen. Seorang pelajar dibimbing oleh hanya 1 dosen untuk satu riset. 3NFBCNF Oleh karena: Seorang dosen boleh membimbing hanya satu riset, maka: NIP menentukan No_Riset. Satu riset boleh dijalankan oleh lebih dari seorang mahasiswa dan seorang mahasiswa boleh menjalankan lebih dari satu riset, maka No_Riset dan NIM masing-masing bukan penentu. Tapi, dengan mengetahui No_Riset dan NIM mhs maka kita dapat mengetahui NIP dosen yang membimbing riset tsb. Mengetahui NIM dan NIP, maka kita dapat mengetahui riset (No_Riset) yg sedang dibimbing seorang dosen. Dari deskripsi diatas: Untuk relasi DOSEN_RISET: Kunci Calon : (NIP+NIM),(No_Riset + NIM) Kunci Primer: (No_Riset + NIM) KF lain : NIP No_Riset Diagram KF: No_Riset NIP NIM Contoh Instansiasi untuk relasi DOSEN_RISET: NIP No_Riset NIM D1 R1 M1 D1 D2 R1 R2 M2 M1 D3 R3 M2 D4 R3 M1 D5 R4 M3 Kedua kunci calon adalah kunci komposit dengan NIM merupakan atribut kunci yang beririsan. Relasi DOSEN_RISET : dalam 3NF tidak ada kebergantungan transitif. Tetapi tidak dalam BCNF karena NIP adalah penentu bagi No_Riset (NIPNo_Riset), sedangkan NIP bukan kunci calon. No_Riset NIP NIM • Diagram KF diatas: – No_Riset bergantung kepada NIP – Subset dari atribut kunci yaitu No_Riset BF kepada atribut bukan kunci (NIP). – Periksa Anomali pada relasi DOSEN_RISET. NIP No_Riset NIM D1 D1 R1 R1 M1 M2 D2 R2 M1 D3 R3 M2 D4 R3 M1 D5 R4 M3 Relasi diatas dapat dipecahkan (dekomposisi) menjadi 2 relasi untuk menghilangkan anomali. Relasi baru yang terbentuk tetap mempertimbangkan KF yang sudah ada. Dua relasi yang dihasilkan: RISET_MHS (No_Riset,NIM) DOSEN (NIP,No_Riset) RISET DOSEN No_Riset NIM NIP No_Riset R1 M1 D1 R1 R1 M2 D2 R2 R2 M1 D3 R3 R3 M2 D4 R3 R3 M1 D5 R4 R4 M3 Periksa Anomali dari tabel diatas Dekomposisi suatu relasi kepada bentuk normal yang lebih tinggi tidak selalu menyelesaikan semua masalah. Mungkin akan timbul satu masalah baru. Dalam cth kasus ini, apabila kita gabungkan (join) dua tabel diatas untuk memperoleh tabel asal, kemungkinan akan menyalahi batasan yang sudah ditentukan sebelumnya. • Dari penggabungan tabel kedalam bentuk asal didapati adanya penyalahan terhadap batasan organisasi. • Yaitu: Seorang mahasiswa tidak boleh membuat riset yang sama dengan bimbingan dua dosen yang berbeda. • Dekomposisi relasi DOSEN_RISET kepada relasi DOSEN dan relasi RISET menyebabkan batasan tersebut tidak dapat diamati lagi. • Harus dihindari supaya tidak ada informasi yang hilang Kesimpulan Tidak semua relasi harus ditukarkan kedalam bentuk BCNF Walaupun relasi dalam BCNF dapat diperoleh tetapi tidak selamanya itu diinginkan. Tidak ada patokan dasar dalam normalisasi. Normalisasi terus dilakukan selagi kita masih menemukan adanya anomali-anomali dan juga adanya pelanggaran terhadap batasan yang ditentukan oleh organisasi (Enterprise/Organizational Constraint) Perhatikan Tabel dibawah ini Mahasiswa_Aktivitas NamaMhs NIM Kelas NamaKelab KetuaKelab HariLatihan Karim L001 1A Memanah Lim Rabu Sally P201 2B Menjahit Sally Senin Sam L002 1A Tinju Chandra Senin Tri P013 2B Memanah Lim Rabu Jalil L215 3C Atletik Ramli Sabtu Tri L262 6A Memanah Lim Rabu Soal Latihan: Diberi satu contoh instansiasi bagi relasi Mahasiswa_AKTIVITAS seperti gambar sebelumnya. Anggapkan seorang mahasiswa hanya diperbolehkan menganggotai satu kelab saja. Jawab soal-soal berikut: (a) Tunjukkan semua bentuk kebergantungan fungsian yang ada dalam Mahasiswa_AKTIVITAS. (b) Tunjukkan kunci primer bagi Mahasiswa_AKTIVITAS dan jelaskan alasan anda. (c) Adakah Mahasiswa_AKTIVITAS menghadapi masalah anomali update? Jelaskan. (d) Apakah bentuk normal relasi Mahasiswa_AKTIVITAS. (e) Dekomposisikan relasi Mahasiswa_AKTIVITAS kedalam bentuk normal yang lebih tinggi dan tunjukkan bahwa masalah anomali update telah dapat diatasi oleh dekomposisi tsb.