Setelah kita memahami pengertian atribut, key, domain dan ketergantungan fungsional, maka kita siap untuk membahas mengenai Normalisasi. Dalam perspektif Normalisasi, sebuah basis data dapat dikatakan baik, jika setiap tabel yang menjadi unsur pembentuk basis data tersebut juga telah berada dalam keadaan baik atau normal. Selanjutnya, sebuah tabel dapat dikategorikan baik (efisien) atau normal, jika telah memenuhi 3 (tiga) criteria berikut :
- Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition).
- Terpilihnya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
- Tidak melanggar Boyce-Code Normal Form (BCNF).
Jika criteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak harus diupayakan agar tabel tersebut tidak melanggar bentuk normal tahap ketiga (3rd Normal Form/3NF).
Kriteria di atas merupakan criteria minimal untuk mendapatkan prediksi efisien/normal bagi sebuah tabel. Akan tetapi, kita juga dapat menerapkan criteria-kriteria yang lain juga tercakup dalam kerangka normalisasi, walaupun bukan merupakan criteria utama. kriteria-kriteria lain tersebut yang juga akan dibahas untuk memperkaya khasanah pengetahuan kita tentang normalisasi adalah :
- Bentuk Normal tahap pertama (1st Normal Form/1NF)
- Bentuk Normal tahap kedua (2nd Normal Form/2NF)
- Bentuk Normal tahap ketiga (4th Normal Form/4NF)
- Bentuk Normal tahap kelima (5th Normal Form/5NF)
Kriteria-kriteria Normalisasi di atas memang dapat kita terapkan (ujikan) pada setiap tabel pada materi sebelumnya basis Data Relasional. Akan tetapi, untukjuga menunjukkan adanya proses dekomposisi tabel, akan lebih baik jika keseluruhan tabel itu kita rekonstruksi menjadi sebuah tabel saja (tidak efisien). Dari tabel tunggal ini, lalu kita terapkan kriteria-kriteria Normalisasi di atas hingga kita dapatkan sejumlah tabel yang sudah normal (efisien) melalui proses Dekomposisi. Dekomposisi sendiri merupakan langkah yang paling sering ditempuh dalam proses Normalisasi, jika sebuah tabel tidak memenuhi bentuk Normal tertentu.
Sebuah tabel yang merangkum semua kelompok data yang saling berhubungan biasa disebut sebagai tabel Universal (Universal/Star Table). Berikut ini adalah contoh sebuah tabel Universal yang merupakan hasil rekonstruksi dari kelima buah tabel dalam basis data Akademik :
Sebuah tabel yang merangkum semua kelompok data yang saling berhubungan biasa disebut sebagai tabel Universal (Universal/Star Table). Berikut ini adalah contoh sebuah tabel Universal yang merupakan hasil rekonstruksi dari kelima buah tabel dalam basis data Akademik :
Dari tabel Universal tersebut, dengan memperhatikan kesamaan dan ketidaksamaan data diantara baris-bais data juga dengan memahami hubungan alamiah antardata, kita dapat membentuk sejumlah KF sebagai berikut :
Jika kita memusatkan diri pada tabel Universal tersebut, paling tidak ada 3 kelemahan mendasar yang dapat kita lihat, yaitu :
- Pengulangan informasi
Yang terjadi pada atribut nama_mhs, alamat_mhs dan tgl_lahir yang dinyatakan berulang-ulang sesuai dengan data untuk atribut nim-nya. Begitu juga dengan atribut nama_kul, tempat, waktu, dan seterusnya. - Potensi inkosistensi data pada operasi perubahan
Yang terjadi jika ada perubahan pada data nama_mhs, di mana perubahan ini harus dijalarkan ke seluruh baris data pada tabel tersebut untuk nim yang sama. Jika perubahan ini tidak dilakukan, maka KF yang telah ditetapkan akan terganggu, karena kelak akan ada 2 row ataulebih dengan nim yang sama, tapi nama_mhs-nya berbeda. - Tersembunyinya informasi tertentu
Tabel Universal dibangun atas dasar keterkaitan antar item-item data. Karena itu, tabel semacam ini tidak akan mampu menampilkan informasi tentang item-item data yang kebetulan belum memiliki keterkaitan dengan item data yang lain. Di tabel mahasiswa kita ketahui terdapat data dari 4 orang mahasiswa. Tetapi di tabel Universal tersebut, hanya ada 3 mahasiswa yang terlihat, karena kebetulan mahasiswa dengan NIM="100003" sedang tidak mengambil kuliah apapun, sehingga ia tidak disertakan dalam tabel tersebut. Tebel tersebut juga tidak dapat mempresentasikan adanya mata kuliah yang belum diselenggarakan (belum ada mahasiswa yang mengambilnya) atau adanya dosen yang sedang tidak mengajar.
Sekian artikel kali ini, silahkan lanjut ke materi selanjutnya dan budayakan berbagi dan semoga Bermanfaat ...