5.1. DEFINISI NORMALISASI
Normalisasi adalah suatu teknik yang digunakan untuk menstrukturkan data sedemikian rupa sehingga mengurangi atau mencegah timbulnya masalah-masalah (anomali) yang berhubungan dengan pengolahan basis data.
Atau, normalisasi sering disebut juga suatu proses pengelompokan/membagi(dekomposisi) data kedalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka sehingga terwujud satu bentuk database yang mudah dimodifikasi.
Proses normalisasi dalam basis data relasional menitikberatkan pada masalah penentuan stuktur data yang paling sederhana untuk tabel-tabelnya. Proses ini mengatur kembali hubungan-hubungan atribut yang saling bergantungan dan berusaha menghindari kehilangan informasi(lost decomposition) ketika proses-proses penyisipan dan penghapusan data dilakukan.
Hasil proses normalisasi adalah data, records atau tabel-tabel yang konsisten secara lojik, mudah dimengerti, dan pemeliharaannya tidak sulit dan murah. Oleh karena itu, proses normalisasi ini sering digunakan sbagai salah satu pendekatan yang dilakukan dalam perancangan skema basisdata dalam bentuk normal.
Pada proses Normalisasi selalu diuji pada beberapa kondisi. Apakah ada kesulitan selama proses delete, insert atau update dalam basis data yang disebut sebagai penyimpangan-penyimpangan atau dikenal dengan Anomaly.
5.2. MACAM-MACAM PENYIMPANGAN (ANOMALI)
Dibawah ini akan diberikan contoh Anomali sbb:

• Anomali Penyisipan(Insertion Anomaly)
Yaitu error atau kesalahan yang terjadi sebagai akibat operasi menyisipkan tuple/record pada sebuah relasi.
Contoh: Jika ada obat baru yang akan dimasukkan/disisipkan, maka obat tersebut tidak dapat disisipkan ke dalam relasi sampai ada pasien yang mengambil jenis obat tersebut.
• Anomali Penghapusan(Deletion Anomaly)
Yaitu error atau kesalahan yang terjadi sebagai akibat operasi penghapusan terhadap tuple/record dari sebuah relasi.
Contoh: Jika pasien yang memiliki No_Pasien P001 membatalkan tidak jadi menebus resep obat tersebut, maka jika record tersebut dihapus akan menyebabkan hilangnya informasi tentang Kode_Obat Kd01.
• Anomali Peremajaan(Update Anomaly)
Yaitu error atau kesalahan yang terjadi sebagai akibat operasi perubahan tuple/record dari sebuah relasi.
Contoh: Jika harga obat untuk kode_obat Kd01 dinaikkan menjadi 5000, maka harus dilakukan beberapa kali modifikasi terhadap record-record pasien yang menebus kode_obat Kd01, agar data selalu tetap konsisten.
5.3 KETERGANTUNGAN (DEPENDENCY)
Ketergantungan atau dependensi merupakan konsep yang mendasari normalisasi. Dependensi menjelaskan hubungan antar atribut, atau secara lebih khusus menjelaskan nilai dari suatu atribut yang menentukan nilai atribut lainnya.
Jenis-jenis ketergantungan:
Ketergantungan Fungsional
Ketergantungan Fungsional Penuh
Ketergantungan Total
Ketergantungan Transitif
Ketergantungan Fungsional(Functional Dependency=FD)
FD didefinisikan sebagai berikut:
Suatu atribut Y disebut bergantung secara fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.
Notasinya adalah : X Y yang artinya:
Atribut Y bergantung secara fungsional (FD) terhadap atribut X
atau atribut X menentukan atribut Y
Misal : NIM NAMA_MAHASISWA
dimana atribut NIM disebut DETERMINANT (penentu), sedangkan NAMA_MAHASISWA disebut DEPENDENT(tergantung)
Contoh:
Suatu relasi Pesanan_Jual dengan struktur:
Pesanan_Jual(Pembeli,Kota,Barang,Jumlah)
Sampel Data adalah:

Pada contoh ini, PEMBELI secara fungsional menentukan KOTA, sebab terlihat bahwa untuk PEMBELI yang sama, KOTA-nya juga sama. Jadi:
PEMBELI KOTA
Ketergantungan yang lain bisa diperlihatkan dari tabel di atas adalah :
{PEMBELI,BARANG} JUMLAH
{PEMBELI,BARANG} KOTA
{PEMBELI,BARANG} {JUMLAH,KOTA}
Catatan: Tanda { } biasa digunakan kalau ada lebih dari satu atribut baik pada determinan maupun dependent.
Ketergantungan Fungsional Penuh (Fully Functional Dependency=FFD)
FFD didefinisikan sebagai berikut:
Suatu atribut Y disebut bergantung secara fungsional penuh (FFD) terhadap atribut X jika :
Y memiliki FD dengan X
Y tidak memiliki ketergantungan dengan bagian dari X
Contoh:
Misal terdapat relasi CUSTOMER(Kode_Cust, Kota , No_Telp)
Ketergantungan pada relasi adalah :
1. {Kode_Cust,Kota} No_Telp
2. Kode_Cust No_Telp
Pada keadaan1) No_Telp bergantung kepada atribut gabungan {Kode_Cust,Kota}, tetapi sebenarnya No_telp hanya bergantung kepada Kode_Cust, seperti dalam keadaan 2). Dalam relasi di atas No_Telp bergantung secara fungsional penuh (FFD) kepada Kode_Cust. Tetapi No_Telp tidak bergantung secara fungsional penuh kepada gabungan atribut {Kode_Cust, Kota}karena No_Telp memiliki ketergantungan dengan salah satu bagian dari {Kode_Cust,Kota} yaitu Kode_Cust.
Ketergantungan Total
FFD didefinisikan sebagai berikut:
Suatu atribut Y disebut bergantung secara total (TFD) terhadap atribut X jika :
Y memiliki FD dengan X
X memiliki FD dengan Y
Ketergantungan total ditulis dengan notasi X Y
Contoh dari ketergantungan total adalah relasi satu ke satu.
Ketergantungan Transitif
Ketergantungan transitif didefinisikan sebagai berikut:
Suatu atribut Z disebut bergantung secara transitif terhadap atribut X jika :
Y memiliki FD dengan X
Z memiliki FD dengan Y
Ketergantungan transitif ditulis degan notasi X Y¬ Z¬
5.4 Langkah-Langkah Normalisasi
Skema langkah-langkah normalisasi adalah sebagai berikut:
Bentuk tidak normal (Unnormalized Form)
Yaitu suatu kumpulan data yang tidak ada keharusan mengikuti format tertentu (mungkin saja datanya tidak lengkap atau terduplikasi)
Bentuk Normal Satu(First Normal Form=1NF)
Yaitu bila relasi tersebut mempunyai nilai data yang atomik, artinya tidak ada lagi kerangkapan data.
Bentuk Normal Dua(Second Normal Form=2NF)
Yaitu bila relasi tersebut sudah berada dalam 1NF dan setiap atribut yang bukan kunci bergantung sepenuhnya (FFD) terhadap Primary Key.
Bentuk Normal Tiga(Third Normal Form=3NF)
Yaitu bila relasi tersebut sudah berada dalam 2NF dan tidak ada ketergantungan transitif pada atribut yang bukan kunci.
Bentuk Normal Boyce-Codd(Boyce-Codd Normal Form=BCNF)
Yaitu bila relasi tersebut sudah berada dalam 3NF dan semua determinannya merupakan Superkey Key.
Bentuk Normal Empat(Fourth Normal Form=4NF)
Yaitu bila relasi tersebut sudah berada dalam BCNF dan setiap rinci data yang ada di dalamnya tidak mengalami ketergantungan pada banyak nilai (multivalue).
Bentuk Normal Kelima(Fifth Normal Form=5NF)
Bentuk normal kelima ini dirancang untuk mengatasi masalah dependensi yang disebut dependensi gabungan (join dependensi) yaitu ketergantungan pada gabungan beberapa atribut. Join dependensi terjadi, apabila sebuah relasi yang didekomposisi (dipecah) menjadi dua, setelah itu relasi tersebut tidak dapat digabung kembali menjadi relasi semula.
Suatu relasi R disebut berada dalam bentuk 5NF jika dan hanya jika setiap dependensi gabungan dalam R tersirat oleh kunci kandidat dalam R.












