Normalisasi Data Base
artikel bowo tentang Normalisasi Data Base
Normalisasi Basis Data
Ø Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
Ø Tahap Normalisasi dimulai dari tahap paling 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.
Ø Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sb
Ø Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.
Ø Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
Ø Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan kemudian-)
Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).

Tabel Universal

Functional Dependency
Functional Dependency dari tabel nilai
Ø Nrp à namaMhs
Karena untuk setiap nilai nrp yang sama, maka nilai namaMhs juga sama.
Ø {Namakul, nrp} à NiHuruf
Karena attribut Nihuruf tergantung pada Namakul dan nrp secara bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka NiHuruf juga sama, karena Namakul dan nrp merupakan key (bersifat unik).
Ø NamaKul à nrp
Ø Nrp à NiHuruf
Bentuk-bentuk Normal
- Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
- Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
- Bentuk Normal Tahap (3rd Normal Form / 3NF)
- Boyce-Code Normal Form (BCNF)
- Bentuk Normal Tahap (4th Normal Form / 4NF)
- Bentuk Normal Tahap (5th Normal Form / 5NF)
Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)



Bentuk Normal Tahap Kedua (2nd Normal Form)
Ø 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
Functional dependencynya sbb:
{Mhs_nrp, mk_kode} à nihuruf (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
Bentuk Normal Tahap Ketiga (3rd Normal Form /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 tsb.
Ø Atau A merupakan bagian dari primary key pada tabel tsb.
Contoh
Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF:
Mahasiswa
|
Nrp |
Nama |
Alm_Jalan |
Alm_Kota |
Alm_Provinsi |
Alm_Kodepos |
Ø karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):
Ø alm_kodepos à {alm_Provinsi, alm_kota}
Sehingga tabel tersebut perlu didekomposisi menjadi:
Ø Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos)
Ø Kodepos (alm_kodepos, alm_provinsi, alm_kota)
Boyce-Code Normal Form (BCNF)
Ø Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X à Y maka X adalah super key
Ø tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi
Ø Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X à A, BCNF tidak membolehkan A sebagai bagian dari primary key.
Bentuk Normal Tahap Keempat (4th Normal Form /4NF)
Ø Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute
Ø Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies
Contoh
Misal, tabel berikut tidak memenuhi 4NF:

Setiap employee dapat bekerja di lebih dari project dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi:
(Employee, Project)
(Employee, Skill)
Bentuk Normal Tahap Keempat (5th Normal Form /5NF)
Ø Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg 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 (join) untuk membentuk tabel semula








Ass,. Makasih artikelnya. Menolong saat sedang dikejar tugas dosen struktur data!!!
TOLONG YANG JELAS DONG ….:-)
maaf yaa,.. udah lupa lg,.. xixixi,..
TP UDAH MENOLONG BGET MKCIH…..YA……
iya sama-sama,….