Normalisasi
1. Pengertian Normalisasi
Normalisasi merupakan suatu proses untuk mengubah suatu tabel yang memiliki masalah tertentu ke dalam dua buah tabel atau lebih yang tidak lagi memiliki masalah tersebut (Abdul Kadir, 2008). Ada juga yang berpendapat normalisasi adalah proses penyusunan tabel¬-tabel yang tidak redundan (dobel), yang dapat menyebabkan anomali yaitu proses basis data yang memberikan efek samping yang tidak diharapkan (Misalnya menyebabkan data tidak konsisten atau membuat data hilang ketika data yang lain dihapus).
Normalisasi digunakan sebagai teknik analisis data pada database, sehingga dapat diketahui apakah pembuatan tabel-tabel yang terelasi dalam database itu sudah baik. Kondisi sudah baik yaitu suatu kondisi pada saat proses insert, update, delete dan modifikasi pada satu atau beberapa atribut suatu tabel tidak berpengaruh terhadap integritas data yang lain dalam satu hubungan relasi database
2. Tujuan Normalisasi Database
Tujuan Normalisasi Database adalah untuk menghilangkan dan mengurangi redudansi data dan memastikan dependensi data (Data berada pada tabel yang tepat). Jika data dalam database tersebut belum di normalisasi maka akan terjadi 3 kemungkinan yang akan merugikan sistem secara keseluruhan. Anomali merupakan penyimpangan-penyimpangan atau error atau inkonsistensi data yang terjadi pada saat dilakukan proses delete, insert ataupun modify dalam suatu basis data.
Berikut ini adalah penjelasan dari delete, insert dan modify dalam suatu basis data :
a. Insert Anomali
- Insert Anomali yaitu Situasi dimana tidak memungkinkan memasukkan beberapa jenis data secara langsung di database. Adanya error atau kesalahan yang terjadi sebagai akibat dari operasi menyisipkan (insert) record pada sebuah relasi.
- Penambahan matakuliah baru (CS-600) yang akan diajarkan, maka matakuliah tersebut tidak bisa di insert / disisipkan ke dalam Relasi Kuliah di atas sampai ada mahasiswa yang mengambil matakuliah tersebut.
b. Delete Anomali
- Delete Anomali yaitu Penghapusan data yang tidak sesuai dengan yang diharapkan, artinya data yang harusnya tidak terhapus mungkin ikut terhapus. pabila terdapat salah satu baris data dari transaksi faktur dihapus, sehingga menghilangkan informasi yang tidak ingin dihapus. Contoh:
- Terdapat penghapusan data untuk transaksi nomor faktur F-007, sehingga data pada baris ketiga, keempat dan kelima dihapus. Hal ini termasuk ke dalam delete anomaly karena informasi mengenai kode barang PS-003 dengan nama barang “Pensil HB” akan ikut hilang akibat dari penghapusan pada transaksi F-007. Hal ini karena data mengenai barang PS-003 dengan nama barang “Pensil HB” hanya terdapat pada baris kelima. Selain itu delete anomaly juga terjadi karena informasi mengenai kode supplier S-002 dengan nama supplier “Enya” ikut hilang akibat dari penghapusan pada transaksi F-007. Hal ini terjadi karena data mengenai supplier S-002 dengan nama Supplier “Enya” hanya terdapat pada baris ketiga saja.
c. Update Anomali
Update Anomali yaiut Situasi dimana nilai yang diubah menyebabkan inkonsistensi database, dalam artian data yang diubah tidak sesuai dengan yang diperintahkan atau yang diinginkan. Contohnya Pada tabel sebelumnya, Terjadi perubahan nama barang pada baris pertama, yaitu kode barang PS-001 semula nama barang “Pensil Warna” diubah / di-update menjadi “Pensil Warna-warni” namun untuk kode barang PS-001 pada baris ketiga dan baris kedelapan tidak dilakukan perubahan nama barang menjadi “Pensil Warna-warni”. Hal ini termasuk ke dalam update anomaly karena terdapat ketidakkonsistenan data pada kode barang PS-001, kode barang sama namun nama barang berbeda.
3. Konsep Ketergantungan Dalam Normalisasi
Ketergantungan (dependency) merupakan konsep yang mendasari normalisasi. Dependency menjalankan hubungan antara atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. Dependency akan mencari acuan untuk pendekomposisian data ke dalam bentuk paling efisien.
a. Functional Dependency
Ketergantungan fungsional (functional dependency) adalah suatu kondisi dimana satu atribut atau beberapa atribut dari suatu relasi yang keberadaannya bergantung pada atribut lain. ketergantungan fungsional didefinisikan sebagai berikut:
Suatu atribut Y mempunyai ketergantungan fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.
Definisi diatas biasanya dituangkan dalam bentuk notasi: X => Y
Artinya :
X secara fungsional tergantung Y
Y secara fungsional menentukan X
b. Dependency Transitive
Ketergantungan transitive (dependency transitive) adalah ketergantungan secara fungsional suatu atribut kepada atribut lainnya melalui atribut yang lain pula.
Misalnya R adalah relasi yang memiliki 3 atribut A, B, dan C yang memiliki ketergantungan fungsional:
A => B
B => C
Artinya fungsional dependency => C disebut dependency transitive.
c. Trivial Dependency
Ketergantungan trivial (trivial dependency) terjadi apabila suatu relasi terdapat banyak set fungsional dependency, maka dapat dilakukan penghapusan trivial dependency.
4. Tahapan-tahapan Normalisasi
Adapun penjelasan yang lebih detailnya adalah sebagai berikut :
a. Unnormalized Form (UNF) / Bentuk Tidak Normal
Merupakan bentuk tidak normal berdarsarkan data yang diperoleh dan mengandung kerangkapan data. Kumpulan data yang akan direkam, tidak ada keharusan mengikukti format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya.
b. First Normal Form (1NF)
Pada tahap ini dilakukan penghilangan beberapa group elemen yang berulang agar menjadi satu harga tunggal yang berinteraksi di antara setiap baris pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang atomic (bersifat atomic value). Atom adalah zat terkecil yang masih memiliki sifat induknya, bila terpecah lagi maka ia tidak memiliki sifat induknya. Syarat: - Tidak ada kolom multivalue - Tidak ada kolom dengan domain yang sama.
Langkah pertama yang dilakukan pada Tabel Pelanggan Biaya (pada Tabel 2) tersebut adalah menghilangkan elemen data yang berulang dengan data-data Pelanggan yang sesuai pada setiap baris. Hasil dari tabel yang telah memenuhi bentuk normal pertama
c. Second Normal Form (2NF)
Entitas yang atribut non-primary key-nya hanya tergantung pada full primary key. Bentuk normal kedua didasari atas konsep full functional dependency (ketergantungan fungsional sepenuhnya) .
Syarat:
- Bentuk data telah memenuhi kriteria bentuk normal kesatu.
- Atribute bukan kunci (non-key) haruslah memiliki ketergantungan fungsionla sepenuhnya (fully functional dependency) pada kunci utama / primary key.
d. Third Normal Form (3NF)
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF, namun relasi tersebut masih mungkin mengalami kendala bila terjadi anomaly peremajaan (update) terhadap relasi tersebut. Jika kita hanya mengupdate satu baris saja, sementara baris yang lainnya tidak, maka data di dalam database tersebut akan inkonsisten / tidak teratur. Anomaly update ini disebabkan oleh suatu ketergantungan transitif (transitive dependency). Kita harus menghilangkan ketergantungan tersebut dengan melakukan normalisasi ketiga (3-NF).
Syarat:
- Bentuk data telah memenuhi kriteria bentuk normal kedua
- Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki ketergantungan fungsional (functional dependency) terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap priamry key di relasi itu saja.