NORMALISASI
Pengertian :
Normalisasi adalah proses pengelompokan aribute-atribute dan suatu relasi sehingga membentuk well-struktur relation normalisasi merupakan proses pengelomokan elemen data menjadi table-tabel menunjukkan entity dan relasinya.
Well-struktur relation
Well struktur relation adalah sebuah relation dengan jumlah kerangkapan datanya sedikit,serta memberikan kemungkinan kepada user untuk melakukan insert,delete,updateterhadap baris baris data pada relation tersebut,yang tidak berakibat terjadinya error atau inkonsistensi data, yang disebabkan oleh operasi-operasi tersebut.
Contoh :
Terdapat sebuah relation KULIAH, dengan ketentuan sebagai berikut:
- Setiap mahasiswa hanya boleh mengambil 1 matakuliah saja
- Setiap matakuliah mempunyai uang kuliah yang standar (tidak tergantung pada mahasiswa yang mengambil mata kuliah tersebut)
MHS_id | KODE_MTK | BIAYA |
92130 | CS-200 | 75 |
92200 | CS-300 | 100 |
99250 | CS-300 | 75 |
92425 | CS-400 | 150 |
92500 | CS-300 | 100 |
92575 | CS-500 | 50 |
Relation diatas merupakan sebuah relation yang sederhana yang hanya memiliki 3 atribute/kolom. Apabila diteliti secara seksama dari table diatas maka akan dtemukan adanya redundancy di datanya, biaya kuliah selalu berulang disetiap mahasiswa,akibatnya bersar kemungkinan terjadinya error atau inkonsistensi data bila dilakukan update pada relation diatas, error tersebut dinamakan anomaly. Terdapat 3 jenis anomaly,diantaranya :
1. Anomaly peremajaan
Error yang terjadi sebagai akibat dari operasi insert record disebuah relation
Contoh :
Ada mata kuliah baru (CS-600) yang akan diajarkan,maka matakuliah tersebut tidak bias diinsert kedalam relation tersebut sampai ada mahasiswa yang mengambil matakuliah tersebut.
2. Anomaly penghapusan
Error yang terjadi akibat operasi delete record pada relation
Contoh :
Mahasiswa dengan MHS_id 92425 memutuskan untuk batal ikut kuliah CS-400 karena dia merupakan satu-satunya peserta matauliah tersebut. Apabila record tersebut di delete akan berakibat hilangnya informasi bahwa matakuliah CS-400,biayanya 150
3. Anomaly penyisipan
Error yang terjadi akibat inkonsistensi data yang terjadi sebagai akibat dari operasi update record dari sebuah relation.
Contoh:
Bila biaya kuliah untuk matakuliah CS-200 dinaikkan dari 75 menjadi 100, maka harus dilakukan beberapa kali modifikasi terhadap record-record mahasiswa yang mengambil matakuliah CS-200 agar data tetap konsisten.
Dari anomaly-anomali yang terjadi pada relation diatas,maka dilakukan normalisasi terhadap relation diatas menjadi :
MHS_id | KODE-MTK |
92130 | CS-200 |
92200 | CS-300 |
92250 | CS-200 |
92425 | CS-400 |
92500 | CS-300 |
92575 | CS-500 |
| |
KODE-MTK | BIAYA |
CS-200 | 75 |
CS-300 | 100 |
CS-400 | 150 |
CS-500 | 50 |
| |
| |
| |
Bentuk penerapan normalisasi dan dependensi fungsional
Bentuk UnNormalized
No fak | kode supp | Nama supp | Kode brg | Nama barang | tanggal | Jatuh tempo | Qty | harga | jumlah | total |
779 | S02 | Hitachi | R02 | Rice cooker C3 | 02/02/01 | 09/03/01 | 10 | 150000 | 1500000 | 1500000 |
998 | G01 | Gobel | A01 | AC split ½ pk | 07/02/01 | 09/03/01 | 10 | 1350000 | 13500000 | 33500000 |
| | Nustra | A02 | AC split 1 pk | | | 10 | 2000000 | 20000000 | |
Diagram FD nya adalah
Kode supp à Nama supp
Kode brg à Nama brg
No fak à tanggal,tempo,Qty,Harga,Total
Bentuk normal pertamnya menjadi :
No fak | kode supp | Nama supp | Kode brg | Nama barang | tanggal | Jatuh tempo | Qty | harga | jumlah | total |
779 | S02 | Hitachi | R02 | Rice cooker C3 | 02/02/01 | 09/03/01 | 10 | 150000 | 1500000 | 1500000 |
998 | G01 | Gobel nustra | A01 | AC split ½ pk | 07/02/01 | 09/03/01 | 10 | 1350000 | 13500000 | 33500000 |
998 | G01 | Gobel nustra | A02 | AC split 1 pk | 07/02/01 | 09/03/01 | 10 | 2000000 | 20000000 | 33500000 |
Pada bentu normal pertama diatas masih terdapat anomaly pada proses insert,update,delete.
- Insert
Kita tidak dapat memasukkan kode dan nama supplier saja tanpa adanya transaksi
pembelian, sehingga supplier baru bisa dimasukkan kalau ada transaksi pembelian.
- Update
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.
- Delete
Bila satu record / baris di atas dihapus, misal nomor faktur 779, maka berakibat pada
penghapusan data supplier S02 (Hitachi) padahal data tersebut masih diperlukan.
Bentuk normal kedua dengan melakukan dekomposisi pada table diatas menjadi
Relasi supplier
Relasi supplier
Kode_supp | Nama_supp |
S02 | Hitachi |
G01 | Gobel Nustra |
Relasi barang
Kode_brg | Nama_brg |
R02 | Rice cooker C3 |
A01 | AC split ½ pk |
A02 | AC split 1 pk |
Relasi transaksi
No fak | Kode_sup | Kode_brg | Tanggal | Tempo | Qty | Harga | Total |
779 | S02 | R02 | 02/02/01 | 09/03/01 | 10 | 150000 | 1500000 |
998 | G01 | A01 | 07/02/01 | 09/03/01 | 10 | 1350000 | 13500000 |
998 | G01 | A02 | 07/02/01 | 09/03/01 | 10 | 2000000 | 20000000 |
Untuk memenuhi bentuk normal ketiga relasi transaksi harus di dekomposisi lagi menjadi :
Relasi supplier
Relasi supplier
Kode_supp | Nama_supp |
S02 | Hitachi |
G01 | Gobel Nustra |
Relasi barang
Kode_brg | Nama_brg |
R02 | Rice cooker C3 |
A01 | AC split ½ pk |
A02 | AC split 1 pk |
Relasi transaksi
No fak | Kode_sup | Tanggal | Tempo | Total |
779 | S02 | 02/02/01 | 09/03/01 | 1500000 |
998 | G01 | 07/02/01 | 09/03/01 | 13500000 |
998 | G01 | 07/02/01 | 09/03/01 | 20000000 |
Relasi transaksi barang
No fak | Kode_brg | Qty | Harga |
779 | R02 | 10 | 150000 |
998 | A01 | 10 | 1350000 |
998 | A02 | 10 | 2000000 |
terima kasih, semoga bermanfaat. . :)
Komentar