Pengertian Normalisasi
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.
Bentuk-Bentuk Normalisasi
1. Bentuk Normal Tahap Pertama (1st Normal
Form / 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:
2. Bentuk Normal Tahap Kedua (2nd Normal
Form / 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:
- 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} nihuruf
Tabel di atas perlu didekomposisi menjadi beberapa tabel
yang memenuhi syarat 2NF
3. Bentuk Normal Tahap (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:
- 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)
4. 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.
5. Bentuk Normal Tahap (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)
6. Bentuk Normal Tahap (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.
0 komentar:
Posting Komentar