Normalisasi

 

Step step normalisasi :

 

1NF ( First normal Form )
1.Menghilangkan semua pengulangan field
2 Definisikan primary keys.
3 PK nya harus Uniq
4 Setiap field  selain PK harus tergantung pada PK
5 Setiap field harus terisi 1 nilai
6 Buat tabel baru untuk memindahkan pengulangan field dari table sebelumnya

 

 

 

Tabel:Supplier.dbf

 

———————————————————
Supid    Nama_supplier     no_telp1     no_telp2          no_telp3
——————————————————-
1              Joko                    088814141    081352525     98885411
2             Wawan                 088814142    081352526             
3             Ahmad                088814143   
——————————————————- 

Akan ada masalah Update/Insert  apabila no_telpon nya lebih dari 3
Ketika di normalkan akan menjadi :

Tabel Supplier.dbf                   Tabel Supplier_telp.dbf           
———————-        ————————–
Supid     Nama_supplier           id     supid       No_telp
———————-       —————————
1           Joko                            1       1           088814141
2           Wawan                        2       1           081352525
3          Ahmad                         3       1           98885411
                                                4       2           088814142   
                                               5       2           081352526             

2NF ( Second Normal Form )
Definisi: Semua field harus tergantung pada primary key

Detail_invoice.dbf
———————————————-
 id  Invoice_id    Goods_id    Qty      Harga   Cust_id
———————————————-
 1    S.01              1                10      5000     C.01
 2    S.01               5                8      25000     C.01

Disini terlihat field cust_id tidak tergantung pada primary key id  dan Invoice_id
maka cust_id bisa kita pindah dari tabel detail_invoice.dbf ke file invoice.dbf

3rd NF  ( third Normal form )
Menghilangkan field yg sama sekali tidak berhubungan dengan PK tapi bergantung pada field lainnya

Invoice.dbf
———————————————————-
Invoice_id    Tgl              Cust_id      Nama_customer
———————————————————-
S.01         10-10-06          C.01          Dunia ,PT
S.02         10-10-06          C.02          Septia ,PT

disini field Nama_customer dapat dihilangkan karena tidak berhubungan langsung dengan PK nya ( Invoice_id) tapi bergantung pada Cust_id.

Umumnya kita akan berhenti pada Normal ke Tiga , walaupun masih ada beberapa normal berikutnya

Dari semua step diatas maka dapat terlihat normalisasi dapat memudahkan kita membuat proses Insert/update/Delete ,
namun normalisasi menimbulkan masalah pada Query performance dibandingkan yg DeNormalized
bayangkan jumlah JOIN bila ada >5 tabel yg terlibat dalam  sebuah Query dengan jumlah data yg banyak

 

Quote

Normalisasi akan meningkatkan data integrity tetapi akan juga meningkatkan Query complexity.
sebaliknya Denormalisasi akan mengurangi data integrity dan juga mengurangi Query Compexity

 


Bagi yang pernah coba Crystal Report/Reporting Tool lainya  tentu merasakan dampak negatif dari Normalisasi , mengapa ? karena performance untuk reporting yg melibatkan banyak tabel menjadi lebih lambat dibanding Denormalized form

 

 

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.