Normalisasi Mardhiya Hayaty, ST Apa itu normalisasi ? •Normalisasi adalah proses pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka sehingga terwujud satu bentuk database yang mudah untuk dimodifikasi. Normalisasi adalah suatu proses untuk mengidentifikasi “tabel” kelompok atribut yang memiliki ketergantungan yang sangat tinggi antara satu atribut dengan atribut lainnya Pentingnya Normalisasi Suatu rancangan database disebut buruk jika: 1. Data yang sama tersimpan dibeberapa tempat (record atau file) 2. Terjadi adanya redudansi (pengulangan) atau duplikasi data sehingga memboroskan ruang penyimpanan dan menyulitkan proses update data. 3. Terjadi kehilangan infomasi yang tidak sengaja/tidak diketahui. Kelemahan tabel diatas : Pengulangan Informasi terjadi pada atribut nama_mhs, alamat_mhs dan tgl_lahir sesuai data nim. Dan juga pada nama_kul, tempat, waktu dst. Potensi inkonsistensi data pada operasi pengubahan data Jika akan mengubah nama mahasiswa berarti perubahan harus dijalarkan pada setiap baris yang nimnya sama. Jika tidak diterapkan seperti itu maka KF yang telah ditentukan akan terganggu karena nantinya ada dua baris nim-nya sama tapi data lainnya berbeda. Tersembunyinya informasi tertentu Tabel diatas tidak dapat menampilkan data yang berlum ada kaitannya. Misalnya mahasiswa yang tidak mengambil mata kuliah atau mata kuliah yang belum diselenggarakan atau dosen yang tidak mengajar. Dari kelemahan tersebut kita harus mendekomposisikan tabel tersebut menjadi beberapa tabel dengan mempertimbangkan KF. Agar setiap tabel hanya memiliki satu KF (KF yang minimum). APA ITU KF...? Ketergantungan Fungsional (KF) (Functional Dependency Diberikan sebuah tabel/relasi T. Atribut B dari T bergantung secara fungsi pada atribut A dari T jika dan hanya jika setiap nilai A dari T punya hubungan dengan tepat satu nilai B dalam T MataKuliah NIM NamaMhs IndekNilai row 1 Struktur Data 98001 Ali Akbar A row 2 Struktur Data 98004 Indah Sutanti B row 3 Basis Data 98001 Ali Akbar row 4 Basis Data 98002 Budi Haryanto row 5 Basis Data 98004 Indah Sutanti row 6 Bahasa Indonesia 98001 Ali Akbar B row 7 Matematika I 98002 Budi Haryanto C KF : KF1 : NIM nama_mhs ( nama mahasiswa bergantung kepada NIM) KF 2 : Matakuliah,NIM IndexNilai ( indexnilai bergantung pada matakuliah dan NIM mahasiswa. Non KF : Matakuliah ≠> NIM (nim tidak tergantung kepada matakuliah) NIM ≠> indexnilai (indexnilai tidak tergantung kepada nim) Contoh pembentukan KF (dari contoh tabel “X”) Dengan memperhatikan: - Kesamaan - Ketidaksamaan - Dan hubungan antar alamiah Antar data kita dapat membentuk sejumlah KF: nim nama_mhs Nim nama_mhs, alamat_mhs, nim alamat_mhs tgl_lahir nim tgl_lahir kode_kul nama_kul kode_kul sks kode_kul semester kode_kul waktu kode_kul tempat kode_kul nama_dos Kode_kul nama_kul,sks,semester, Waktu, tempat,nama_dos nama_dosen alamt_dos nim, kode_kul indeks_nilai Bagaimana tabel yg Normal / baik ? Dalam perpektif Normalisasi, suatu basis data dapat dikatakan baik jika setiap tabel yang menjadi unsur pembentuk berada dalam keadaan baik atau normal. Tabel dikatakan baik jika memenuhi 3 kriteria: 1. Jika dekomposisi (penguraian tabel), maka dikompisisi dijamin aman (Lossless-Join Decomposition) 2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation). 3. Tidak melanggar Boyce-Codd Normal Form (BCNF) Jika krtiteria BCNF tidak dapat dipenuhi, maka paling tidak tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3rdNF) Latihan : Tentukan KF berikut