Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data relasional yang mengelompokkan atribut dari suatu tabel sehingga membentuk struktur tabel yang normal. Adapun kriteria tabel dikatakan normal adalah ketika tidak ada kerangkapan data (redudansi data).
Tujuan dari normalisasi
- Untuk menghilangkan kerangkapan data sehingga meminimumkan pemakaian storage yang dipakai oleh base relations (file)
- Untuk mengurangi kompleksitas
- Untuk mempermudah pemodifikasian data
Proses Normalisasi
Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat, apabila tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Tahapan Normalisasi
Tahapan Normalisasi dimulai dari tahap ringan (1NF) hingga paling ketat (5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Urutannya : 1NF, 2NF, 3NF, BCNF, 4 NF, 5NF.
- Bentuk Tidak Normal
- Bentuk Normal Pertama (1NF) : Menghilangkan Perulangan Grup
- Bentuk Normal Kedua (2NF) : Menghilangkan Ketergantungan Parsial
- Bentuk Normal Ketiga (3NF) : Menghilangkan Ketergantungan Transitif
- Bentuk Normal Boyce-Code Form (BCNF) : Menghilangkan anomali-anomali hasil dari ketergantungan fungsional
- Bentuk Normal Keempat (4NF) : Menghilangkan ketergantungan multivalue
- Bentuk Normal Kelima : Menghilangkan anomali-anomali yang tersisa
Tabel Universal
Sebuah Tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang terbaik. Contoh :
Misalkan kita pakai notasi A--> B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama.
Contoh Tabel Nilai :
Bentuk - bentuk Normal
1. Bentuk Normal Tahap Pertama (1NF)- Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama.
- Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).
Contoh :
Misal data mahasiswa :
2. Bentuk Normal Tahap Kedua (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.
Contoh :
Tabel berikut memenuhi1NF tapi tidak termasuk 2NF :
Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan :
{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}/ - mihuruf
Tabel diatas perlu didekomposis menjadi beberapa tabel yg memenuhi syarat 2NF.
3. Bentuk Normal Tahap Ketiga (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,
- Untuk setiap Functional Dependency dengan notasi X-->A, maka :
- X harus menjadi superkey pada tabel tersebut.
- Atau A merupakan bagian dari primary key pada tabel tersebut.
Boyce-Codd Normal Form (BCNF)
Sebuah relasi dalam bentuk Boyce-Codd Normal Form (BCNF) jika dan hanya jika setiap determinan adalah candidate key. Boyce-Codd Normal Form adalah tipe khusus dari bentuk normal ketiga. Sebuah relasi dalam BCNF adalah juga bentuk dalam 3NF, tetapi relasi dalam 3NF mungkin tidak dalam BCNF.
4. Bentuk Normal Tahap Keempat (4NF) atau MVD dan PJNF.
- Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute.
- Untuk setiap multivalued attribute (MVD) juga harus merupakan Functional Dependency
5. Bentuk Normal Tahap Kelima (5NF)
- Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss decomposition menjadi tabel-tabel yang lebih kecil.
- Jika 4 bentuk normal sebelumnya dibentuk berdasarkan Functional Dependency, 5NF dibentuk berdasarkan konsep Join Dependence. Yakni apabila sebuah tabel telah di dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi untuk membentuk tabel semula





















