Dalam kesempatan sebelumnya saya telah memamarkan tentang contoh dari pembuatan ERD dan PDM dari suatu basis data. Pada kesempatan ini saya kembali akan memaparkan tentang salah satu hal penting dalam basis data, yakni tahap normalisasi dari suatu basis data. Baiklah untuk mempersingkat waktu saya langsung saja memulai pemaparan tentang normalisasi basis data.
Pengertian Normalisasi
Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar unsur-unsur yang masih terkesan ambigu datap dihilangkan. Taha normalisasi dalam basis data dimulai dari tahap paling ringan yakni bentuk normailasi pertama atau dikenal dengan 1NF hingga paling ketat yakni bentuk normalisasi kelima atau dikenal dengan 5NF. Namun biasanya hanya sampai pada tingkat 3NF atau BCNF sudah cukup untuk menghasilkan tabel basis data yang berkualitas.
Pentingnya Normalisasi Pada Suatu Basis Data
Sebuah tabel dikatakan efisien atau normal jika memenuhi 3 kriteria
Bentuk Normalisasi
Bentuk dari tahap normalisasi adalah sebagai berikut
Pengertian Normalisasi
Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar unsur-unsur yang masih terkesan ambigu datap dihilangkan. Taha normalisasi dalam basis data dimulai dari tahap paling ringan yakni bentuk normailasi pertama atau dikenal dengan 1NF hingga paling ketat yakni bentuk normalisasi kelima atau dikenal dengan 5NF. Namun biasanya hanya sampai pada tingkat 3NF atau BCNF sudah cukup untuk menghasilkan tabel basis data yang berkualitas.
Pentingnya Normalisasi Pada Suatu Basis Data
- Normalisasi bisa dikatakan sangat penting dalam suatu basis data sebab dengan normalisasi bisa mengurangi terjadinya
- Data yang sama tersimpan di beberapa tempat
- Ketidakmampuan untuk menghasilkan informasi
- Terjadinya kehilangan informasi
- Terjadinya redundansi (pengulangan yang tidak perlu) atau duplikasi data sehingga memboroskan ruang penyimpanan dan menyulitkan dalam proses pembaruan data (updating) data.
Sebuah tabel dikatakan efisien atau normal jika memenuhi 3 kriteria
- Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition)
- Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation)
- Tidak melanggar Boyce-Code Normal Form (BCNF)
- Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF)
Bentuk Normalisasi
Bentuk dari tahap normalisasi adalah sebagai berikut
Normalisasi 1NF
Suatu relasi R disebut memenuhi bentuk 1NF jika dan hanya jika kondisi semua atribut valuenya harus atomic (tidak boleh ada atribut yang compusit atau multivalue (memiliki lebih dari satu nilai)). Contohnya, disajikan tabel sebagai berikut
Tabel diatas tidak memenuhi bentuk 1NF sebab tabel hobi memiliki lebih dari satu nilai (value)
Atau
Atau
Tabel diatas juga tidak memenuhi bentuk 1NF sebab tabel Hobi3 masih terdapat ruang kosong, jika hal ini masih dipertahankan maka syarat atomic tidak terpenuhi
Berikut merupakan bentuk tabel diatas yang telah memnuhi bentuk 1NF
Berikut merupakan bentuk tabel diatas yang telah memnuhi bentuk 1NF
Normalisasi 2NF
Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key
Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key)
Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan
Contohnya
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF
{Mhs_nrp, mk_kode} => mhs_nama
{Mhs_nrp, mk_kode} => mhs_alamat
{Mhs_nrp, mk_kode} => mk_nama
{Mhs_nrp, mk_kode} => mk_sks
{Mhs_nrp, mk_kode} => nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF
Berikut merupakan dekomposisi tabel tersebut sehingga memenuhi bentuk 2NF
{Mhs_nrp, mk_kode} => ihuruf (fd1)
Mhs_nrp => mhs_nama, mhs_alamat} (fd2)
Mk_kode => {mk_nama, mk_sks} (fd3)
fd1 (mhs_nrp, mk_kode, nihuruf) => Tabel Nilai
fd2 (Mhs_nrp, mhs_nama, mhs_alamat) => Tabel Mahasiswa
fd3 (mk_kode, mk_nama, mk_sks) => Tabel MataKuliah
Normalisasi 3NF
Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya (ketergantungan transitif)
Tabel mahasiswa berikut ini memenuhi syarat 2NF, tetapi tidak memenuhi 3NF
Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni KodePos) :
KodePos => {Kota, Provinsi}
Sehingga tabel tersebut perlu didekomposisi menjadi :
Mahasiswa (NIM, NamaMhs, Jalan, KodePos)
KodePos (KodePos, Provinsi, Kota)
Demikianlah yang bisa saya paparkan tentang normaliasasi dalam basis data, semoga bermanfaat dalam kehidupan anda. Sampai jumpa dipostingan menarik berikutnya
0 komentar:
Posting Komentar