Senin, 29 Februari 2016

Contoh Penerapan Normalisasi-Basis Data

                                    Contoh Penerapan Normalisasi - basis data
Dalam pembuatan aplikasi Normaliasi sangat penting terutama untuk konsep RDMS agar aplikasi atau saat kita analisa skripsi yang kita buat bisa singkroniasi dan mempercepat proses load data, konseksen.


Pada proses perancangan database dapat dimulai dari dokumen dasar yang dipakai dalam sistem sesuai dengan lingkup sistem yang akan dibuat rancangan databasenya. Berikut ini adalah contoh dokumen mengenai faktur pembelian barang pada PT. FSAKTI.



 


















Sehubungan dengan dokumen dasar tersebut, tahapan yang harus dilakukan untuk melakukan normalisasi data adalah sebagai berikut :


1. Bentuk Normal Pertama ( 1 NF )

Bentuklah menjadi bentuk normal pertama dengan memisah-misahkan data pada atribut-atribut yang tepat dan bernilai atomik, juga seluruh record / baris harus lengkap adanya. Bentuk file adalah Flat File. Dengan normal pertama kita dapat membuat satu relasi yang terdiri dari 11 Atribut yaitu:


(No Faktur, Kode Supplier, Nama Supplier, Kode Barang, Nama Barang, Tanggal, Jatuh Tempo,

Quantitas, Harga, Jumlah, Total ). 
  
Sehingga hasil daripada pembentukan normal pertama (1 NF) adalah sebagai berikut ini : Relasi Faktur_Pembelian


Pada normal pertama tersebut masih terjadi banyak kelemahan, terutama pada proses ANOMALI  insert, update dan delete berikut ini :

Inserting / Penyisipan
Kita tidak dapat memasukkan kode dan nama supplier saja tanpa adanya transaksi pembelian, sehingga supplier baru bisa dimasukkan kalau ada transaksi pembelian. 


 Deleting / Penghapusan
Bila satu record / baris di atas dihapus, misal nomor faktur 779, maka berakibat pada penghapusan data supplier S02 (Hitachi) padahal data tersebut masih diperlukan.

Updating / Pengubahan

Kode dan nama supplier terlihat ditulis berkali-kali, bila nama supplier berubah, maka di setiap baris yang ada harus dirubah, bila tidak menjadi tidak konsisten.


Atribut jumlah (merupakan atribut turunan) seharusnya tidak perlu, karena setiap harga dikali kuantitas akan menghasilkan jumlah, sehingga hasilnya akan menjadi lebih konsisten.


2.  Bentuk Normal Kedua ( 2 NF )
Bentuk normal kedua dengan melakukan dekomposisi tabel diatas menjadi beberapa tabel dan mencari kunci primer dari tiap-tiap tabel tersebut dan atribut kunci haruslah unik.
Melihat permasalahan faktur di atas, maka dapat diambil beberapa kunci kandidat :  ( No Faktur, Kode Supplier, dan Kode Barang ). Kunci kandidat tersebut nantinya bisa menjadi kunci primer pada tabel hasil dekomposisi.
Dengan melihat normal pertama, kita dapat mendekomposisi menjadi tiga tabel berserta kunci primer yang ada yaitu : Relasi/Tabel Supplier (Kode Supplier) , Relasi/Tabel (Kode Barang), dan Faktur (No Faktur). Dengan melihat ketergantungan fungsional atribut-atribut lain terhadap atribut kunci, maka didapatkan 3 (tiga) relasi/tabel sebagai berikut:












Primary key pada relasi/tabel Supplier adalah kode_supplier
Primary key pada relasi/tabel Barang adalah kode_barang
Primary key pada relasi/tabel Faktur adalah no_faktur, sedangkan foreign key nya adalah kode_barang dan kode_supplier.

  

Dengan pemecahan relasi di atas, maka untuk pengujian bentuk normal kesatu (1 NF) yaitu insert, update, dan delete akan terjawab. Kode dan nama supplier baru dapat masuk kapanpun tanpa adanya transaksi pada relasi faktur. Demikian pula untuk proses update dan delete untuk relasi Supplier dan Barang.
Pada bentuk normal kedua tersebut masih terjadi permasalahan yaitu pada relasi/tabel Faktur, yaitu:

Atribut Quantitas pada relasi/tabel Faktur, tidak tergantung pada kunci utama, atribut tersebut bergantung fungsi pada No_faktur + Kode_barang, hal ini dinamakan ketergatungan transitif dan haruslah dipilah menjadi dua tabel. Sedangkan tanggal, jatuh_tempo dan kode_supplier bergantung fungsional pada No_faktur
No_faktur à tanggal,jatuh_tempo,kode_supplier
No_faktur, kode_barang à quantitas


Masih terdapat pengulangan, yaitu setiap kali satu faktur yang terdiri dari 5 macam barang maka  5 kali juga dituliskan no_faktur, tanggal, dan jatuh_tempo. Hal ini harus dipisahkan bila terjadi penggandaan tulisan berulang-ulang.

3. Bentuk Normal Ketiga ( 3 NF )
Bentuk normal ketiga mempunyai syarat, setiap relasi tidak mempunyai atribut yang bergantung transitif, harus bergantung penuh pada kunci utama dan harus memenuhi bentuk normal kedua (2 NF).
Untuk memenuhi bentuk normal ketiga (3 NF), maka pada relasi/tabel faktur harus didekomposisi (dipecah) lagi menjadi dua relasi/tabel yaitu relasi/tabel faktur dan relasi/tabel transaksi_barang, sehingga hasilnya adalah sebagai berikut ini:


  
Kamus Data dari masing – masing relasi: 
Supllier  = { Kode Supplier, Nama_Supplier }
Barang  = { Kode Barang, Nama_Barang, Harga }
Faktur    = { No Faktur, Tanggal, Jatuh_Tempo, Kode_Supplier }
Transaksi_Barang = { No_Faktur, Kode_Barang, Quantitas }



4. Diagram Dekomposisi
            Kita dapat membuat diagram dekomposisi yang akan menjelaskan proses / tahapan uji normalisasi dari bentuk normal kesatu (1 NF) sampai normal ketiga (3 NF), seperti tampak pada gambar berikut:


4. ERD (Entity Relationship Diagram)
Gambaran hubungan Relationship antar relasi yang terbentuk, adalah seperti terlihat pada gambar berikut ini:













Pengertian Hubungan (Relasi) antar relasi pada gambar ERD (entity relationship diagram) pada gambar di atas adalah sebagai berikut:


Supplier ke Faktur relasinya adalah one to many, artinya adalah satu supplier mempunyai satu atau banyak faktur. Faktur punya relasi terhadap supplier 

Faktur ke Transaksi_Barang relasinya adalah one to many, artinya adalah satu faktur mempunyai satu atau beberapa transaksi barang (satu faktur terdiri dari satu atau lebih transaksi barang).


Barang ke Transaksi_Barang relasinya adalah one to many, artinya adalah satu barang bisa terjadi satu atau beberapa kali transaksi pembelian barang.

Implementasi ERD (entity relationship diagram) 



Tidak ada komentar:

Posting Komentar