NORMALISASI DATABASE
Normalisasi data merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan ke dalam struktur record. Anomali merupakan efek samping yang tidak diharapkan, yang ditimbulkan dari suatu proses.
Terdapat tiga macam anomali, ialah:
a. Anomali Peremajaan, yang terjadi apabila dilakukan pengubahan data yang mengakibatkan pengubahan data lain yang tidak mempunyai hubungan secara logika.
b. Anomali Penyisipan, yang terjadi apabila dilakukan penambahan atau penyisipan data yang mengakibatkan perlunya penambahan atau penyisipan data lain yang tidak mempunyai hubungan secara logika.
c. Anomali Penghapusan, yang terjadi apabila dilakukan penghapusan data yang mengakibatkan hilangnya data lain yang tidak mempunyai hubungan secara logika.
Anomali dapat dieliminasi dengan mengganti format dari relasi, seringkali dengan memecah relasi menjadi dua atau lebih relasi baru yang dibentuk dari relasi semula. Pengubahan tersebut dilakukan didalam suatu proses yang disebut dengan proses normalisasi. Untuk memahami proses normalisasi, perlu diketahui dua terminologi yang terkait ialah: ketergantungan fungsional (functional dependencies) dan kunci.
Ketergantungan Fungsional
Suatu ketergantungan fungsional ialah suatu relationship diantara atribut. Dengan ketergantungan fungsional, jika diberikan nilai suatu atribut maka akan dapat diperoleh atau dicari nilai dari atribut lain. Atau secara lebih formal ketergantungan fungsional didefinisikan sebagai berikut:
R suatu relasi, x dan y himpunan bagian dari himpunan atribut R.
y mempunyai ketergantungan fungsional (KF) pada x, atau x ïƒ y
jika dan hanya jika setiap nilai x di dalam R mempunyai asosiasi dengan tepat satu nilai y di dalam R. x disebut determinant, yaitu sebagai atribut penentu dan y disebut dependent, yaitu sebagai atribut yang bergantung.
Tujuan dari normalisasi
ï± Untuk menghilangkan kerangkapan data
ï± Untuk mengurangi kompleksitas
ï± Untuk mempermudah pemodifikasian data
Proses Normalisasi
ï± Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat.
ï± Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Bentuk Normalisasi
Suatu relasi dikatakan di dalam bentuk normal, jika memenuhi sejumlah kriteria tertentu yang sudah ditentukan.
Macam bentuk normal suatu relasi ialah:
a. Unnormalized (bentuk belum normal).
b. Bentuk Normal Pertama (First Normal Form/1 NF).
c. Bentuk Normal Kedua (Second Normal Form/2 NF).
d. Bentuk Normal Ketiga (Third Normal Form/3 NF).
e. Boyce/Codd Normal Form (BCNF).
f. Bentuk Normal Keempat (Fourth Normal Form/4 NF).
g. Bentuk Normal Kelima (Fifth Normal Form/5 NF).
Unnormalized
Unnormalized ialah suatu relasi yang mengandung atribut dengan nilai non-atomic, dan atau mempunyai group atribut berulang. Nilai atribut atomic ialah nilai suatu atribut yang tidak dapat dibagi menjadi komponen-komponen yang lebih kecil. Sehingga nilai atribut composite dan nilai atribut multivalued tidak diijinkan disini.
Contoh data unnormalized:
Bentuk Normal Kesatu (1NF)
Suatu relasi di dalam 1NF jika dan hanya jika semua domain yang mendasari hanya berisi nilai scalar, dengan demikian tidak mengandung group berulang.
Contoh bentuk 1NF :
Tabel KIRIM-1 (Unnormal)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
B02 1500
B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Tabel KIRIM-2 (1NF)
No-pem Kode-kota Kota No-bar Jumlah
P01 1 Jakarta B01 1000
P01 1 Jakarta B02 1500
P01 1 Jakarta B03 2000
P02 3 Bandung B03 1000
P03 2 Surabaya B02 2000
Diagram Ketergantungan Fungsional
Kode-kota
No-pem
Kota
Jumlah
No-bar
Bentuk Normal Kedua (2NF)
Suatu relasi di dalam 2NF jika dan hanya jika:
• Memenuhi 1NF
• Setiap atribut bukan kunci bergantung penuh secara fungsional pada kunci utama.
Jika suatu relasi memenuhi 1-NF dan relasi tersebut memiliki tepat satu atribut yang membentuk kunci utama, maka relasi tersebut memenuhi 2-NF.
Rasionalisasi 2-NF :
a. Memiliki semantik yang lebih eksplisit dari 1-NF.
b. Mencegah beberapa kondisi anomali dalam update data.
Atribut bukan kunci ialah atribut yang tidak membentuk bagian kunci utama.
Contoh bentuk 2NF:
Tabel PEMASOK-1 (2NF)
No-pem Kode-kota Kota
P01 1 Jakarta
P02 3 Bandung
P03 2 Surabaya
Ketergantungan Fungsional
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X —> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R.
Misal, terdapat skema database Pemasok-barang :
Pemasok (No-pem, Na-pem)
Tabel PEMASOK-BARANG
No-pem Na-pem
P01 Baharu
P02 Sinar
P03 Harapan
Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah :
No-pem —> Na-pem
Ketergantungan Fungsional Penuh
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan)
Contoh :
KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah)
No-pem Na-pem No-bar Jumlah
P01 Baharu B01 1000
P01 Baharu B02 1500
P01 Baharu B03 2000
P02 Sinar B03 1000
P03 Harapan B02 2000
Ketergantungan fungsional :
No-pem –> Na-pem
No-bar, No-pem –> Jumlah (Tergantung penuh thd keynya)
Bentuk Normal Ketiga (3NF)
Suatu relasi di dalam 3NF jika dan hanya jika:
• Memenuhi 2NF
• Setiap atribut bukan kunci tergantung non-transitive pada kunci utama.
Atribut bukan kunci merupakan sembarang atribut yang tidak berpartisipasi di dalam kunci utama dari relasi terkait. Sedangkan ketergantungan transitive terjadi apabila satu atribut bukan kunci tergantung pada satu atau lebih atribut bukan kunci yang lain. contoh :
Tabel KIRIM-3 (3NF)
No-pem No-bar Jumlah
P01 B01 1000
P01 B02 1500
P01 B03 2000
P02 B03 1000
P03 B02 2000
Tabel PEMASOK-2 (3NF) Tabel PEMASOK-3 (3NF)
No-pem Kode-kota Kode-kota Kota
P01 1 1 Jakarta
P02 3 2 Surabaya
P03 2 3 Bandung
Bentuk-bentuk Normal
Relasi di dalam bentuk normal ketiga (3NF) sudah cukup untuk banyak perancangan basis data praktis. Akan tetapi 3NF tidak menjamin semua anomali telah dihilangkan (McFadden, 1988). Sehingga untuk menghilangkan anomali yang masih ada diperlukan penambahan proses normalisasi yang lebih tinggi. Pada prakteknya sangat sedikit orang perlu memikirkan penormalisasian di atas bentuk normal ketiga (Whitehorn, 2003).
Bentuk-bentuk normal yang lebih tinggi dari 3NF antara lain ialah:
a. Boyce-Codd Normal Form (BCNF)
Jika suatu relasi mempunyai lebih dari satu kunci kandidat yang overlapping, terdapat kemungkinan masih dijumpainya anomali (meskipun relasi sudah memenuhi 3NF). R. F. Boyce dan E. F. Codd mengusulkan pemecahannya dengan mengenalkan suatu bentuk normalisasi yang didefinisikan lebih kuat dari 3NF. Bentuk tersebut yang kemudian disebut dengan nama Boyce Codd Normal Form (BCNF). Suatu relasi di dalam BCNF jika dan hanya jika, hanya determinant yang menjadi kunci kandidat.
b. Bentuk Normal Keempat
Meskipun suatu relasi sudah memenuhi BCNF, terdapat kemungkinan relasi tersebut masih menghasilkan anomali peremajaan. Untuk menghilangkan anomali tersebut perlu dilakukan proses normalisasi untuk mendapatkan 4NF. Di dalam membentuk relasi menjadi 4NF, akan terkait dengan suatu bentuk hubungan antar atribut yang disebut dengan: Multi Valued Dependence (MVD).
c. Bentuk Normal Kelima
Sebelum bicara tentang relasi dengan bentuk normal yang lebih tinggi dari 4NF, perlu dikenalkan dahulu tentang Joint-Dependency (JD).
Efek-efek normalisasi
Akibat yang muncul dalam proses normalisasi:
a. Masalah kekangan dalam basis data.
• Duplikasi rinci data
• Adanya integritas referensi yang harus terjaga dan nilai-nilai pada AK tidak boleh null maka proses dekomposisi akan menghasilkan suatu set yang inheren pada batasan integritas referensial.
b. Ketidakefisienan dalam menampilkan kembali data tersebut.