NORMALISASI
DATABASE
Capaian Pembelajaran:
1
Salah satu langkah yang paling penting dalam merancang database
adalah harus dipastikan bahwa data terdistribusikan di antara tabel-tabel
dengan benar. Di dalam tabel tersebut harus ditentukan struktur database
dengan benar dan tepat. Dengan struktur database yang benar dan tepat,
obyek lainnya dalam database (query, form, report, coding) akan dapat
disederhanakan. Cara mendesain tabel dengan struktur data yang benar dan
tepat disebut normalisasi database.
Menurut Microsoft, normalisasi adalah proses pengorganisasian data
dalam database. Proses pengorganisasian ini menurut Wikipedia meliputi
pengorganisasian Field dan Table dari suatu relational database. Istilah
Field juga sering disebut dengan Attribute. Sedangkan istilah Table disebut
dengan Entitas. Normalisasi biasanya dilakukan dengan cara membagi tabel
besar menjadi tabel-tabel yang lebih kecil, membuat hubungan di antara
tabel-tabel kecil tersebut, dan membuat tabel tambahan. Tujuan pembagian
ini adalah untuk mengisolasi data agar penambahan, penghapusan, dan
modifikasi data dapat dilakukan hanya dalam satu table. Kemudian hasil
isolasi data tersebut disebarkan ke dalam database melalui hubungan yang
dibuat. Sedangkan tujuan dari isolasi data adalah terutama untuk
menghindari adanya redudansi dan ketergantungan data yang tidak konsisten.
Jika redudansi dan ketidak konsistenan ketergantungan data tidak
dihilangkan, maka akan menimbulkan beberapa masalah. Masalah pertama
adalah menyebabkan besarnya kapasitas tempat penyimpanan (harddisk)
yang digunakan, kedua akan menimbulkan masalah dalam pemeliharaannya,
dan ketiga akan menimbulkan ketidak efisienan dalam penyuntingan data.
Sebagai contoh, jika ada perubahan alamat pelanggan, perubahan tersebut
akan jauh lebih mudah dilakukan apabila data tersebut hanya tersimpan di
tabel Pelanggan. Apalagi jika data alamat tersebut terhubung dengan data
lain, seperti data Penjualan dan data Keuangan. Hubungan ini disebut
dengan ketergantungan data.
Edgar F. Codd, penemu model database relasional, memperkenalkan
beberapa konsep normalisasi. Konsep tersebut diberi nama “Bentuk
Normal” (Normal Form/NF). Bentuk Normal Pertama (1NF)
2
diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk
memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal
Ketiga (3NF) pada tahun 1971. Pada tahun 1974, Codd bersama Raymond
F. Boyce memperkenalkan Formulir Normal Boyce-Codd (BCNF). Pada
umumnya, tabel database relasional disebut "normal" jika table tersebut
sudah memenuhi Bentuk Normal Ketiga, karena sebagian besar tabel
database dalam bentuk 3NF sudah bebas dari anomali (ketidak normalan)
dalam proses penyisipan, update, dan penghapusan.
Jika salah satu dari tiga aturan pertama bentuk normalisasi tidak
dipenuhi, harus dipastikan bahwa pengorganisasian database dapat
mengantisipasi masalah yang akan terjadi. Masalah yang sering terjadi
adalah kelebihan data karena adanya redudansi dan adanya ketergantungan
yang tidak konsisten.
3
2. Bentuk Normal Kedua (2NF)
4
mendesain suatu database. Kecuali jika database yang didesain
sangatlah kompleks.
Langkah-langkah Normalisasinya:
5
2. Bentuk 2NF (Menghilangkan redudansi data)
Perhatikan data Class# dan data Student# pada table hasil 1NF
tersebut. Data Class# secara fungsi tidak tergantung pada Student#
(sebagai primary key), dengan demikian hubungan data antara dua field
tersebut belum belum memenuhi bentuk 2NF. Untuk mengubahnya
menjadi 2NF, hilangkan redudansi data dan pisahkan menjadi beberapa
tabel berikut ini.
3. Bentuk 3NF (Hilangkan data yang tidak tergantung pada primary key #)
6
1.3 LATIHAN NORMALISASI
Sumber: http://citozcome.blogspot.com/2009/03/contoh-studi-kasus-normalisasi.html
Langkah-langkah Normalisasinya:
7
Nama
No Faktur Tanggal Nama Barang Harga per Unit
Pelanggan
5070101 29/05/2012 Pitoyo Beras 25000
5070101 29/05/2012 Pitoyo Minyak Tanah 3500
5070101 29/05/2012 Pitoyo Buku 2000
5070102 29/05/2012 Bowo Sabun 5600
5070102 29/05/2012 Bowo Gula 4000
5070103 30/05/2012 Erlina Sikat gigi 12000
5070103 30/05/2012 Erlina Sabun 5600
5070103 30/05/2012 Erlina Odol 13000
5070103 30/05/2012 Erlina Sampo 16000
6070001 01/06/2012 Dayat Beras 25000
6070001 01/06/2012 Dayat Gula 4000
6070001 01/06/2012 Dayat Bedak 1500
Tabel Faktur:
Tabel Barang:
8
9
3. Bentuk 3NF (Hilangkan data yang tidak tergantung pada primary key #)
Pada tahapan ini, jadikan tabel database Penjualan menjadi sebagai
berikut:
Tabel Faktur:
5070101 29/05/2012 1
5070102 29/05/2012 2
5070103 30/05/2012 3
6070001 01/06/2012 4
1 Pitoyo
2 Bowo
3 Erlina
4 Dayat
10
Tabel RincianFaktur:
1. Tugas 1
11
2. Tugas 2
3. Tugas 3
12
4. Tugas 4
5. Tugas 5
6. Tugas 6
13
tanda # di akhir nama field sebagai petunjuk bahwa field tersebut adalah
primary key).
7. Tugas 7
14
8. Tugas 8
15