PENGERTIAN NORMALISASI BASIS DATA
Normalisasi merupakan teknik analisis
data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan
sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible
Normalisasi dilakukan sebagai uji coba
pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah
baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada
satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi
tersebut.
Anomali dan Redudansi
Alasan utama diperlukannya normalisasi
karena Permasalahan Redundansi Redundansi : Perulangan yang
berlebihan Redundansi menyebabkan :
- Pemborosan
ruang penyimpanan
- Anomali
pada saat insert (simpan), Update (edit/pembaharuan), Delete (hapus)
- Bisa
menyebabkan inkonsistensi
Contoh Anomali
Contoh Redundansi: NIM, Nama, Alamat
yang sama ditulis berulang-ulang
Anomali Insert (Penyisipan)
- Keadaan
yang tidak diingini atau munculnya masalah saat akan menyisipkan data baru
ke dalam relasi dengan struktur yang tidak lengkap
- Data
baru bernama Rudi tetapi hobby belum tercatat…?
Anomali Update (Pembaharuan)
- Keadaan
di mana apabila satu nilai atribut perlu diperbaharui, jika lebih daripada
satu data yang terlibat yang disebabkan adanya pengulangan data maka
apabila tidak semua data diperbaharui akan menimbulkan inkonsistensi data
- Andi
berpindah alamat…?
Anomali Delete (Penghapusan)
- Keadaan
di mana apabila satu data dihapuskan pada suatu relasi, terjadi kehilangan
data lain yang masih diperlukan
- Data
hobby bersepeda dihilangkan, maka Data Antok ikut hilang
Penyebab Redundansi
- Perulangan
fakta yang sama
- Adanya
atribut turunan, contoh:
·
Umur (diperoleh dari tgl lahir)
·
Subtotal (diperoleh dari Qty x Harga)
·
Penghilangan data turunan
·
Dekomposisi: pemecahan sebuah relasi
menjadi 2 atau lebih relasi
- Lossy
decomposition/lossy-join decomposition (kehilangan informasi ketika relasi
dipecah menjadi relasi-relasi lain)
- Lossless-join
decomposition (tidak ada informasi yang hilang ketika relasi dipecah
menjadi relasi-relasi lain)
Depedensi (Ketergantungan)
Konsep dasar pada tahap normalisasi yang
menjelaskan hubungan atribut atau secara lebih khusus menjelaskan nilai suatu
atribut yang menentukan atribut lainnya.
Depedensi fungsional
Dependensi fungsional adalah Suatu
atribut Y mempunyai depedensi fungsional terhadap atribut X jika dan hanya jika
setiap nilai X berhubungan dengan sebuah nilai Y.
Macam – macam depedensi :
Depedensi fungsional
“X secara fungsional menentukan
Y” atau secara istilah :
penentu (determinan) → yang tergantung
(dependen)
Depedensi fungsional sepenuhnya
Suatu atribut Y mempunyai dependensi
fungsional sepenuhnya terhadap atribut X, jika:
- Y
mempunyai dependensi fungsional terhadap X, dan
- Y tidak
memiliki dependensi terhadap bagian dari X.
Depedensi total
Suatu atribut Y mempunyai dependensi total terhadap atribut X jika:
- Y
memiliki dependensi fungsional terhadap X, dan
- X
mempunyai dependensi fungsional terhadap Y.
Dependensi seperti ini dinyatakan dengan
notasi: X ← →Y
Depedensi transitif
Atribut Z mempunyai dependensi transitif
terhadap X jika :
- Y
memiliki dependensi fungsional terhadap X.
- Z
memiliki dependensi fungsional terhadap Y.
atau dapat dituliskan : X → Y →
Z
Tahap Normalisasi
Tahapan Normalisasi
Pada proses normalisasi terhadap tabel
pada database dapat dilakukan dengan tiga tahap normalisasi antara lain :
Bentuk Tidak Normal (Unnormalized Form)
Bentuk ini merupakan kumpulan data yang
akan direkam, tidak ada keharusan mengikukti format tertentu, dapat saja data
tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan
saat menginput. Untuk mentransformasikan tabel yang belum ternomalisasi di
atas menjadi tabel yang memenuhi kriteria 1NF adalah kita harus merubah seluruh
atribut yang multivalue menjadi atribut single value, dengan cara menghilangkan
repeating group pada tabel di atas. Misalkan terdapat dokumen dasar
sebagai berikut,
Berdasarkan bentuk nota tersebut dapat
dibuat bentuk tidak normalnya sebagai berikut:
Bentuk Normal Ke Satu (First Normal Form/1-NF)
Pada tahap ini dilakukan penghilangan
beberapa group elemen yang berulang agar menjadi satu harga tunggal yang
berinteraksi di antara setiap baris pada suatu tabel, dan setiap atribut harus
mempunyai nilai data yang atomic (bersifat atomic value). Atom adalah zat
terkecil yang masih memiliki sifat induknya, bila terpecah lagi maka ia tidak
memiliki sifat induknya.
Syarat normal ke satu (1-NF) antara
lain:
- setiap
data dibentuk dalam flat file, data dibentuk dalam satu record demi satu
record nilai dari field berupa “atomic value”.
- tidak
ada set atribute yang berulang atau bernilai ganda.
- telah
ditentukannya primary key untuk tabel / relasi tersebut.
- tiap
atribut hanya memiliki satu pengertian.
Bentuk Normal Pertama
Masalah yang muncul : Duplication,
Inconsistency, Data Isolation, dan Un-Efficiency
Contoh Lain:
Contoh Lain Bentuk Normal Kesatu
Contoh lainnya:
Contoh Bentuk Normal Kesatu
Bentuk Normal Kedua (Second Normal Form/2-NF)
Bentuk normal kedua didasari atas konsep
full functional dependency (ketergantungan fungsional sepenuhnya) yang dapat
didefinisikan sebagai berikut. Jika A adalah atribut-atribut dari suatu
relasi, B dikatakan full functional dependency (memiliki ketergantungan
fungsional terhadap A, tetapi tidak secara tepat memiliki ketergantungan
fungsional dari subset (himpunan bagian) dari A.
Syarat normal kedua (2-NF) sebagai
berikut.
- Bentuk
data telah memenuhi kriteria bentuk normal kesatu.
- Atribute
bukan kunci (non-key) haruslah memiliki ketergantungan
fungsional sepenuhnya (fully functional dependency) pada kunci
utama / primary key.
Contoh Bentuk Normal Kedua
Bentuk Normal Ketiga (Third Normal Form / 3 NF)
Walaupun relasi 2-NF memiliki redudansi
yang lebih sedikit dari pada relasi 1-NF, namun relasi tersebut masih
mungkin mengalami kendala bila terjadi anomaly peremajaan (update)
terhadap relasi tersebut.
Syarat normal ketiga (Third Normal Form
/ 3 NF) sebagai berikut.
- Bentuk
data telah memenuhi kriteria bentuk normal kedua.
- Atribute
bukan kunci (non-key) harus tidak memiliki ketergantungan transitif,
dengan kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki
ketergantungan fungsional (functional dependency) terhadap atribut bukan
kunci lainnya, seluruh atribut bukan kunci pada suatu relasi hanya
memiliki ketergantungan fungsional terhadap priamry key di relasi itu
saja.
- Seluruh
atribut non-primary key pada relasi Pelanggan dan Biaya di atas
terlihat memiliki ketergantungan fungsional (functional dependency)
terhadap primary key dari masing-masing tabel / relasi. Relasi /
tabel Pelanggan dan Biaya di atas tidak memiliki ketergantungan
transitif (transitive dependency), sehingga tabel tersebut telah memenuhi
BENTUK NORMAL KE TIGA (THIRD NORMAL FORM / 3 NF)
Walaupun relasi 2-NF memiliki redudansi
yang lebih sedikit dari pada relasi 1-NF, namun relasi tersebut masih
mungkin mengalami kendala bila terjadi anomaly peremajaan (update)
terhadap relasi tersebut.
Syarat normal ketiga (Third Normal Form
/ 3 NF) sebagai berikut.
- Bentuk
data telah memenuhi kriteria bentuk normal kedua.
- Atribute
bukan kunci (non-key) harus tidak memiliki ketergantungan transitif,
dengan kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki
ketergantungan fungsional (functional dependency) terhadap atribut bukan
kunci lainnya, seluruh atribut bukan kunci pada suatu relasi hanya
memiliki ketergantungan fungsional terhadap priamry key di relasi itu
saja.
- Selruh
atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan
fungsional terhadap primary key di relasi itu saja.
Contoh Bentuk Normal Ketiga
Boyce-Code Normal Form (BCNF)
Suatu relasi disebut memenuhi bentuk
normal Boyce-Codd jika dan hanya jika semua penentu (determinan) adalah kunci
kandidat (atribut yang bersifat unik). BCNF merupakan bentuk normal sebagian
perbaikan terhadap 3NF. Suatu relasi yang memenuhi BCNF selalu memenuhi 3NF,
tetapi tidak untuk sebaliknya
Suatu relasi yang memenuhi 3NF belum
tentu memenuhi BCNF. Dalam banyak literatur disebutkan bahwa BCNF adalah
perbaikan dari 3NF, karena bentuk normal ketigapun mungkin masih mengandung
anomali sehingga masih perlu dinormalisasi lebih lanjut.
BCNF memiliki ketentuan yaitu :
- 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.
Properti penting BCNF adalah relasi
tidak memiliki informasi yang redundan.
Perbedaan BCNF dengan 3NF :
- Pada
BCNF suatu atribut yang bergantung secara fungsional terhadap kunci
primer, mungkin saja merupakan kunci primer bagi atribut yang lain.
- Pada
3NF hal ini bisa saja terjadi dan tidak menjadi masalah.
Contoh Tidak Memenuhi BCNF
Relasi di atas memenuhi 3NF tetapi tidak
memenuhi BCNF, Karena :
- Seorang
mahasiswa dapat mengambil sejumlah mata kuliah.
- Setiap
dosen hanya mengajar pada sebuah mata kuliah.
- Setiap
mahasiswa pada setiap mata kuliah hanya diajar oleh seorang dosen.
- Suatu
mata kuliah yang sama bisa memiliki lebih dari satu dosen.
Mahasiswa, Mata Kuliah
–>Dosen
Mahasiswa, Dosen –> Mata
Kuliah
Cara mengkonversi
relasi yang telah memenuhi 3NF ke BCNF:
- Carilah
semua penentu
- Bila
terdapat penentu yang bukan berupa kunci kandidat,
maka:
- Pisahkan
relasi tersebut, dan
- Buat
penentu tersebut sebagai kunci primer.
Bentuk Normal Keempat (4NF)
Syarat:
- 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
Multivalued dependency (MVD).
Dependensi ini pertama kali
diperkenalkan oleh R.Fagin pada tahun 1977, dipakai pada bentuk normal keempat
(4NF). Dependensi ini dipakai untuk menyatakan hubungan satu ke banyak.
Secara umum, dependensi nilai banyak
muncul pada relasi yang paling tidak memiliki tiga atribut dan dua di antaranya
bernilai banyak, dan nilainilainya tergantung hanya pada atribut ketiga.
Bila R(A,B,C) merupakan suatu relasi,
dengan A, B, C adalah atribut – atribut relasi tersebut, maka
proyeksi dari R berupa (A, B) dan (A, C) jika R memenuhi MVD: A
–>> B | C
Perlu diketahui, bila terdapat:
A —>> B
A —>> C
Maka keduanya dapat ditulis menjadi:
A —>> B | C
Misalnya, pegawai ditugaskan ke banyak
proyek dan ia mempunyai banyak keahlian.
- Jika
kita mencatat info ini pd satu tabel, ketiga atribut harus digunakan sbg
kunci
- Hubungan
antara pegawai dan proyek mrp
ketergantungan multivalue krn untuk setiap pasang nilai pegawai/ahli pd
tabel, himp nilai proyek yg berhub hanya ditentukan olehpegawai dan
tidak tergantung pada
- Hubungan
antara pegawai &ahli mrp ketergantungan multivalue,karena himpunan
nilai ahli untuk pasangan pegawai/proyek selalu hanya tergantung pd
pegawai
- untuk
mengubah sebuah tabel dg ketergantungan multivalue ke dlm 4NF, pindahkan
masing2 pasangan MVD ke tabel baru.
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.
Overnormalisasi
Analisa Overnormalisasi diperlukan jika
:
- Database
ini digunakan untuk sistem multi user
- Tabel-tabel
yang sudah normal ini digabungkan dengan fungsi lain yang ada di lapangan,
misalnya; untuk fungsi retur, untuk fungsi inventori, untuk fungsi sales
order maupun order pembelian, untuk fungsi keamanan database, dan
lain-lain