NORMALISASI PADA DATABASE
Normalisasi Pada DataBase
Proses normalisasi adalah proses pernormalan suatu database yang disusun agar menghindari terjadinya redudancy (kemubaziran data).
Teknik Normalisasi adalah Cara untuk membangun/membikin suatu tabel database secara bertahap menjadi tabel database yang sesuai dengan karekteristik isinya.
berdasarkan informasi/bahan mentah hasil survei dan pengumpulan data dimana kita akan
membikin suatu aplikasi nantinya.
Dasar-dasar normalisasi :
1. Normal form (bentuk normal) adalah suatu klas dari skema database relasi yang
didefinisikan untuk memenuhi tujuan dari tingginya integritas dan maintainability
2. Kreasi dari suatu bentuk normal disebut normalisasi
3. Normalisasi dicapai dengan penganalisaan ketergantungan diantara setiap individu
atribut yang diassosiasikan dengan relasinya.
Perancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut :
a. Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
b. Meminimalkan resiko inkonsistensi data pada basis data.
c. Meminimalkan kemungkinan anomaly pembaruan.
d. Memaksimalkan stabilitas struktur data.
Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi. Terdapat beragam tingkat bentuk normal, yaitu :
a. Bentuk normal pertama (1NF)
b. Bentuk normal kedua (2NF)
c. Bentuk normal ketiga (3NF)
d. Bentuk normal Boyce-Codd (BCNF)
e. Bentuk normal keempat (4NF)
f. Bentuk normal kelima (5NF)
Keterangan bentuk normal :
- Bentuk normal pertama adalah ekivalen dengan definisi model relasional. Relasi
adalah bentuk normal pertama (1NF) jika semua nilai atributnya adalah sederhana
(bukan komposit).
- Bentuk normal kedua memiliki ketentuan harus telah berbentuk normal pertama (1NF),
dan semua atribut bukan utama harus bergantung fungsional penuh pada kunci relasi.
Relasi pada bentuk normal kedua harus tidak menyimpan fakta-fakta mengenai bagian
kunci relasi. Bentuk normal kedua menghilangkan kebergantungan parsial dan masih
memiliki anomali-anomali yang secara praktis tidak dapat diterima.
- Bentuk normal ketiga memiliki ketentuan harus telah berbentuk normal kedua (2NF)
dan relasi tidak boleh memuat kebergantungan fungsional di antara atribut-atribut
bukan utama.Bentuk normal ketiga menghilangkan kebergantungan transitif, awalnya
bentuk normal ketiga dipikir sebagai bentuk normal puncak/paling akhir. Namun
kemudian dapat ditemukan bentuk normal lebih kuat yaitu bentuk normal Boyce-Codd.
Bentuk Normal Boyce-Codd (BCNF) memiliki ketentuan yaitu masing-masing atribut
utama bergantung fungsional penuh pada masing-masing kunci dimana kunci tersebut
bukan bagiannya. Relasi adalah BCNF (optimal) jika setiap determinan atribut-
atribut relasi adalah kunci relasi. Relasi adalah BCNF (optimal) jika kapanpun
fakta-fakta disimpan mengenai beberapa atribut, maka atribut-atribut ini merupakan
satu kunci relasi. BCNF dapat memiliki lebih dari satu kunci. Properti penting
BCNF adalah relasi tidak memiliki informasi yang redundan.
- Bentuk Normal Keempat. Relasi dalam bentuk normal keempat (4NF) jika relasi dalam
BCNF dan tidak berisi kebergantungan banyak nilai. Untuk menghilangkan
kebergantungan banyak nilai dari satu relasi, kita membagi relasi menjadi dua
relasi baru. Masing – masing relasi berisi dua atribut yang mempunyai hubungan
banyak nilai.
- Bentuk Normal Kelima (5NF) berurusan dengan properti yang disebut join tanpa
adanya kehilangan informasi (lossless join). Bentuk normal kelima (5NF) juga
disebut PJNF (projection-join normal form). Kasus-kasus ini sangat jarang muncul
dan sulit untuk dideteksi secara praktis.
Pada proses perancangan database dapat dimulai dari dokumen dasar yang dipakai
dalam sistem sesuai dengan lingkup sistem yang akan dibuat rancangan databasenya. Contoh dokumen mengenai faktur pembelian barang pada PT. Revanda Jaya.
Tahapan Normalisasi Database pada PT. Revanda Jaya
1.Bentuk Unnormalisasi
Mencantumkan semua atribut dengan apa adanya :
Nomor_Faktur
Kode_Supplier
Nama_Supplier
Kode_Barang
Nama_Barang
Tanggal
Jatuh_Tempo
Quantity
Harga
Jumlah
2.Bentuk normal pertama (1NF)
Dengan bentuk normal pertama akan terbuat sebuah tabel yang terdiri dari 10 atribut, yaitu :
(No_Faktur, Kode_Supplier, Nama_Supplier, Kode_Barang, Nama_Barang, Tanggal, Jatuh_Tempo, Qty, Harga, Jumlah)
No_Fak : 779,998,998
Kode_Supplier : S02,G01,G01
Nama_Supplier : Hitachi,Gobel,Gobel
Kode_Barang : R02,A01,A02
Nama_Barang : Ricechoker C3,AC Split ½ PK,AC Split 1 PK
Tanggal : 02/02/01,07/02/01,07/02/01
Jatuh_Tempo : 09/03/01,09/03/01,09/03/01
Qty : 10,10,10
Harga : 15000000,13500000,20000000
Jumlah : 15000000,33500000,33500000
Pada bentuk normal pertama masih terdapat banyak kekurangan pada proses anomali, insert, update, dan delete. Pada proses Inserting/Penyisipan tidak bisa dengan memasukkan kode dan nama supplier saja tanpa adanya transaksi pembelian. Pada proses Delete/Penghapusan jika suatu record/data dihapus contohnya nomor faktur 779, maka berakibat pada penghapusan data supplier S02 (Hittchi) padahal data tersebut masih dibutuhkan. Pada proses Update/Pengubahan kode dan nama supplier ditulis berkali-kali, bila nama supplier berubah, maka disetiap baris yang ada harus dirubah, bila tidak menjadi tidak konsisten.
3.Bentuk normal kedua (2NF)
Bentuk normal kedua dengan melakukan dekomposisi relasi diatas menjadi beberapa relasi dan mencari kunci primer dari tiap-tiap relasi dan atribut kunci haruslah unik. Beberapa kunci kandidat adalah No_faktur, kode_supplier dan kode_barang. Kunci kandidat tersebut nantinya bisa menjadi kunci primer pada relasi hasil dekomposisi. Berdasarkan bentuk normal pertama dapat idekomposisikan menjadi tiga relasi beserta kunci primernya yaitu : relasi supplier (kode_supplier), relasi barang (kode_barang), dan relasi faktur (no_faktur).
Relasi Supplier
Kode_Supplier : S02,G01,G01
Nama_Supplier : Hitachi,Gobel Nustra
Relasi Barang
Kode_Barang :R02,A01,A02
Nama_Barang :Ricechocker C3,AC Split ½ PK,AC Split 1 PK
Harga :15.000.000,13.500.000,20.000.000
Kamus data dari masing-masing relasi diatas adalah :
Supplier = {Kode_Supplier,Nama_Supplier}
Barang = {Kode_Barang,Nama_Barang,Harga}
Faktur = {No_Faktur,Kode_Barang,Kode_Supplier,Tanggal,Jatuh_Tempo,Qty}
4.Bentuk normal ketiga (3NF)
Kamus data dari masing-masing relasi diatas adalah :
Supplier = {Kode_Supplier,Nama_Supplier}
Barang = {Kode_Barang,Nama_Barang,Harga}
Faktur = {No_Faktur, Kode_Supplier,Tanggal,Jatuh_Tempo}
Faktur_Barang ={ No_Faktur ,Kode_Barang,Qty}
5.Entity Relationship Diagram :
1.Supplier ke faktur relasinya adalah one to many karena satu supplier mempunyai
banyak faktur, dan faktur mempunyai relasi terhadap supplier.
2.Faktur ke transaksi barang relasinya adalah one to many karena satu faktur
mempunyai beberapa transaksi barang.
3.Barang ke transaksi_barang relasinya adalah one to many karena satu barang bisa
terjadi beberapa kali pembelian barang