Assalamu'alaikum :). Padahal cuma minggu kemaren nggak post, tapi rasanya udah lama aja. Oke kali ini saya mau post tentang Normalisasi. Ini beda sama post-post sebelumnya. Kalo biasanya kita pakai psql yang item-item itu buat bikin query, sampe (mungkin) bosen liatnya, sekarang kita pake yang lebih berwarna, karena ini mungkin teori penormalan data gitu, jadi nggak usah pake psql yang item itu. =D
A. Dasar Teori
1. Pengertian Normaliasasi
Normalisasi merupakan sebuah teknik dalam
logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi
sehingga membentuk struktur relasi yang baik (tanpa redudansi). Normalisasi adalah proses pembentukan
struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
2. Tujuan Normalisasi
·
Untuk menghilang kerangkapan data
·
Untuk mengurangi kompleksitas
·
Untuk mempermudah pemodifikasian data
Jadi tujuan dari normalisasi data adalah agar
data yang ada tidak redundan dan memiliki data integrity yang kuat sehingga
ketika kita melakukan relasi antara tabel akan dengan mudah kita menjaga data
integrity dan mendapatkan datanya
3. Keuntungan Proses Normalisasi Data
·
Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
·
Meminimalkan resiko inkonsistensi data pada basis data.
·
Meminimalkan kemungkinan anomaly pembaruan.
·
Memaksimalkan stabilitas struktur data.
4. Permasalahan Dalam Normalisasi Data
·
Redundansi data (ruang penyimpanan)
Redundansi data yaitu
kejadian berulangnya data atau kumpulan data yang sama dalam sebuah database
yang mengakibatkan pemborosan media penyimpanan.
·
Anomalies (penyimpanan dalam proses modifikasi data)
a. Insert Anomalies merupakan error atau
kesalahan yang terjadi sebagai akibat dari operasi menyisipkan (insert) tuple /
record pada sebuah relasi.
b. Update Anomalies merupakan error atau
kesalahan yang terjadi sebagai akibat operasi perubahan (update) tuple / record
dari sebuah relasi.
c. Delete Anomalies merupakan error atau
kesalahan yang terjadi sebagai akibat operasi penghapusan (delete) terhadap
tupe / record dari sebuah relasi.
5. Tahapan Normalisasi
Tahapan 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. Urutan: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF.
6. Langkah – langkah Normalisasi
Secara umum, langkah-langkah normalisasi dapat digambarkan seperti
di bawah ini.
a. Unnormalization Form
Bentuk yang tidak normal dimaksudkan suatu
kumpulan data yang akan diolah yang diperoleh dari format – format yang
beraneka ragam, masih terdapat duplikasi, bisa saja tidak sempurna atau tidak
lengkap, dan sesuai fakta lapangan.
b. Normal Pertama (1st Normal Form)
Aturan :
·
Tidak adanya atribut multi-value, atribut
komposit atau kombinasinya.
·
Mendefinisikan atribut kunci.
·
Setiap atribut dalam tabel tersebut harus
bernilai atomic (tidak dapat dibagi-bagi lagi)
c. Normalisasi Kedua (2nd Normal Form)
Aturan :
·
Sudah memenuhi dalam bentuk normal kesatu
(1NF)
·
Semua atribut bukan kunci hanya boleh
tergantung (functional dependency) pada atribut kunci
·
Jika ada ketergantungan parsial maka atribut tersebut harus
dipisah pada tabel yang lain
·
Perlu ada tabel penghubung ataupun kehadiran
foreign key bagi atribut-atribut yang telah dipisah tadi
d. Normalisasi Ketiga (3rd Normal Form)
Aturan :
·
Sudah berada dalam bentuk normal kedua (2NF)
·
Tidak ada ketergantungan transitif (dimana
atribut bukan kunci tergantung pada atribut bukan kunci lainnya).
e. Boyce Codd Normal Form (BCNF)
Secara praktis tujuan analisis database cukup sampai pada 3NF, Akan tetapi dalam suatu kasus tertentu lebih baik bila dapat mencapat BCNF. Beberapa pemikir menyamakan antara 3NF dengan BCNF.
Secara praktis tujuan analisis database cukup sampai pada 3NF, Akan tetapi dalam suatu kasus tertentu lebih baik bila dapat mencapat BCNF. Beberapa pemikir menyamakan antara 3NF dengan BCNF.
Bentuk normal BCNF terpenuhi jika :
·
Masing-masing atribut utama bergantung
fungsional penuh pada masing kunci dimana kunci tersebut bukan bagiannya.
·
Setiap determinan atribut-atribut relasi
adalah kunci relasi atau kandidat kunci. - BCNF dapat memiliki lebih dari satu
kunci.
·
BCNF hampir sama dengan 3NF atau bisa dibilang
sama dengan 3NF.
f. Bentuk Normal Tahap Keempat (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 attribute. Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies
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 dependencies (MVD) juga harus merupakan functional dependencies
g. Bentuk Normal Tahap Keempat (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.
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.
Sumber: http://672012123.blogspot.com/2013/03/sbd-chap-4-normalisasi-data.html
http://indahmanafe702012136.blogspot.com/2013/03/normalisasi-dan-denormalisasi_2464.html
http://indahmanafe702012136.blogspot.com/2013/03/normalisasi-dan-denormalisasi_2464.html
B. Hasil Praktikum
Berikut ini adalah soal praktikum normalisasi
Untuk mendapatkan menormalisasi bentuk nota
tersebut kita harus melakukan langkah-langkah normalisasi sepert berikut ini.
1. Unnormalization Form
Bentuk Unnormalisasi merupakan bentuk yang
masih sangat sederhana, masih banyak terdapat duplikasi dan masih rancu karena
masih terdapat kolom yang null. Seperti di bawah ini.
2. Bentuk Normal Pertama (1st Normal Form)
Pada bentuk normal pertama ini, kita harus
membuat semua nilai dalam atribut bernilai atomic (tunggal). Selain itu kita
harus menentukan atribut kunci. Pada praktikum ini yaitu pada bentuk pertama,
atribut kunci yang dapat kita definisikan yaitu Nomor dan Id_barang.
Berikut ini adalah bentuk normal pertama.
3. Bentuk Normal Kedua (2nd Normal Form)
Setelah bentuk pertama terpenuhi, kita dapat
membentuk normal kedua. Pertama, atribut bukan kunci hanya boleh tergantung
(functional dependency) pada atribut kunci. Setelah itu, kita harus
menghilangkan ketergantungan parsial pada tabel dengan membuat tabel baru.
Nama_Barang, Satuan, dan Diskon 1
bergantung kepada atribut kunci Id_Barang. Sehingga kita buat tabel baru
bernama Tabel Barang.
Lalu, Nama_Pel dan Diskon 2
merupakan atribut yang tidak bisa dipisahkan, untuk itu kita buat atribut baru
yaitu Id_pel sebagai atribut kunci dan Jenis_pel sebagai penentu Diskon
2. Atribut-atribut tersebut kita buat di Tabel Pelanggan.
Kemudian, kita buat Tabel Petugas dengan
atribut Id_Pet sebagai atribut kunci untuk mengidentifikasi petugas dan Status_Pet
seperti di bawah ini.
Terakhir kita buat Tabel Transaksi yang berisi
atribut Nomor, Tanggal, Id_Barang, Jumlah, Satuan, Diskon 1, Total_Satuan,
Sub_Total, Diskon 2, PPN, Total_qty, Total, Id_Pel, dan Id_Pet.
Berikut ini adalah bentuk Tabel Transaksi.
4. Bentuk Normal Ketiga (3rd Normal Form)
Untuk membentuk normal ketiga, bentuk kedua
harus sudah terbentuk, seperti yang terdapat di atas. Selain itu untuk memenuhi
bentuk ketiga, harus tidak ada ketergantungan transitif yaitu dimana atribut
bukan kunci tergantung pada atribut bukan kunci lainnya.
Pada Tabel Barang dan Tabel Petugas tidak
perlu diubah lagi karena sudah tidak ada lagi ketergantungan transitif.
Pada Tabel Transaksi masih terdapat
ketergantungan transitif yaitu atribut Diskon 2 yang masih tergantung pada
atribut Jenis_Pel. Sehingga Tabel Pelanggan pada bentuk kedua kita pisah
menjadi Tabel Pelanggan dan Tabel Jenis Pelanggan. Tabel Jenis Pelanggan berisi
atribut Id_Jenis sebagai atribut kunci , Jenis_Pel dan Diskon
2. Sedangkan Tabel Pelanggan berisi Id_Pel sebagai atribut kunci,
Nama_Pel dan Id_Jenis seperti di bawah ini
Sedangkan tabel transaksi sama dengan bentuk
kedua
5. Bentuk Normal Keempat (4th Normal Form)
Pada bentuk keempat ini, kita dapat memisahkan
beberapa atribut yang masih bisa dipisahkan. Selain itu, kita juga harus
menghilangkan anomaly-anmlai yang masih terdapat pada tabel.
Untuk Tabel Barang, Tabel Petugas, Tabel
Pelanggan, Tabel Jenis Pelanggan tetap seperti bentuk sebelumnya.
Pada tabel transaksi, masih ada terdapat
anomali seperti pada atribut sub_total yang merupakan akumulasi dari jumlah
atribut total_satuan dan
perhitungan diskon 1 sehingga seharusnya
atribut sub_total harus dipisahkan. Begitu juga pada atribut total yang harus
dipisah juga karena atribut total adalah hasil perhitungan akhir dari subtotal
dengan diskon 2 dan PPN sehingga atribut total juga harus dipisah. Sehingga
Tabel Transaksi kita pisah menjadi Tabel Transaksi dan Tabel Nota seperti di
bawah ini.
Sehingga hasil akhir dari normalisasi di atas dapat kita buat
diagram seperti di bawah ini agar dapat kita ketahui relasinya.
C.
Kesimpulan,
Saran, Kritik dan Manfaat bagi Pembaca
1.
Kesimpulan
Setelah melakukan praktikum ini, saya dapat mengambil kesimpulan
bahwa Normalisasi
merupakan sebuah teknik dalam logical desain sebuah basis data yang
mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi
yang baik (tanpa redudansi). Normalisasi
adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity
bisa dihilangkan. Tahapan-tahapan
Normalisasi yaitu 1NF, 2NF, 3NF, BCNF, 4NF, 5NF.
Namun, pada umumya database yang baik cukup sampai 3NF saja karena sudah
memenuhi database yang baik.
2.
Saran
Diperlukan
pembelajaran lebih lanjut mengenai normalisasi agar diperoleh database dengan
kualitas yang baik dengan langkah-langkah normalisasi yang ada.
3.
Kritik
Dalam laporan ini, masih banyak terdapat kekurangan kareana dalam
melakukan proses normalisasi dibutuhkan ketelitian dalam menganalisa
tabel-tabel dalam database yang akan dinormalisasi.
4.
Manfaat
Manfaat yang
akan didapat pembaca dalam laporan ini antara lain dapat mengetahui pengertian
normalisasi serta langkah-langkah dalam proses normalisasi agar diperoleh
database yang berkualitas.
0 komentar:
Posting Komentar