NORMALISASI DATABASE
Apa Itu NORMALISASI ?
Normalisasi merupakan sebuah
upaya untuk memperoleh sebuah database dengan struktur yang baik dengan cara
menerapkan sejumlah aturan pada setiap tabel agar ruang penyimpanan efisien.
Istilah normalisasi dapat disederhanakan menjadi memecah relasi menjadi
beberapa tabel untuk mendapat database yang optimal
Istilah Penting Dalam Teknik Normalisasi
¨ Field
/ atribut kunci. Setiap file selalu terdapat kunci dari file berupa satu
field atau satu field yang dapat mewakili record.
¨
Candidate key. Kumpulan atribut minimal yang
secara unik mengidentifikasi sebuah baris fungsinya sebagai calon primary key.
¨
Composite key. Kunci kandidat yang berisi
lebih dari satu atribut
¨
Primary key. Candidate key yang dipilih
untuk mengidentifikasi baris secara unik
¨
Alternate key. Candidate key yang tidak
dipilih sebagai primary key
¨
Foreign key. Key di tabel lain yang
terhubung dengan primary key pada sebuah tabel
Sebuah
tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria adalah
sebagai berikut ;
1. 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.
2.
Terpeliharanya
ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
3.
Tidak
melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan kemudian-)
FUNCTIONAL DEPENDENCY (FD)
Notasi:
A à B
A
dan 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
Notasi:
A –> B atau A x –> B
Adalah kebalikan dari notasi
sebelumnya
Aturan Normalisasi
1.
Bentuk
Normal Tahap Pertama (1st Normal Form / 1NF)
2.
Bentuk
Normal Tahap Kedua (2nd Normal Form / 2NF)
3.
Bentuk
Normal Tahap (3rd Normal Form / 3NF)
4.
Boyce-Code
Normal Form (BCNF)
5.
Bentuk
Normal Tahap (4th Normal Form / 4NF)
6.
Bentuk
Normal Tahap (5th Normal Form / 5NF)
1. Normalisasi Pertama (1st Normal Form)
¨ Mendefinisikan
atribut kunci
¨ Tidak
adanya group berulang
¨ Setiap
atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi
lagi)
2.
Normalisasi Kedua (2nd Normal Form)
¨ Sudah
memenuhi dalam bentuk normal kesatu
¨ Sudah
tidak ada ketergantungan parsial, dimana seluruh field hanya tergantung pada
sebagian field kunci.
3.
Normalisasi Ketiga (3rd Normal Form)
¨ Sudah
berada dalam bentuk normal kedua
¨ Tidak
ada ketergantungan transitif (dimana field bukan kunci tergantung pada field
bukan kunci lainnya).
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
¨ 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.
Normalisasi Keempat (4rd Normal Form)
¨ 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
6.
Normalisasi Kelima (5rd Normal Form)
¨ 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
Contoh Kasus Normalisasi Database
Diberikan
tabel Mahasiswa di bawah ini, akan dilakukan normalisasi sampai bentuk
normal ke tiga
Perhatikan bahwa tabel di atas sudah dalam bentuk normal ke
Satu(1NF)
Bentuk Normal ke dua(2NF) :
Belum memenuhi kriteria 3NF, Karena atribut
non-key Nilai dan bobot masih memiliki ketergantungan fungsional.
Bentuk
Normal ke tiga(3NF) :
Query
: