Jumat, 08 Juni 2007

Normalisasi apa dan Mengapa ??

POst ini saya copy dari postingan saya yang di fox-id.org
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


Jadi ,
Ada 2 tipe database pd umumnya :

1.Transactional DB
Ini digunakan untuk transaksi harian oleh para operator komputer , disini normalisasi sangatlah penting , karena pd tahap ini integrity data sangatlah diperlukan , anomali pd proses input/update/delete harus dihilangkan


2.Decision Support DB
Ini yg dipakai para bos2 kita untuk membuat keputusan ,
Apakah mau mereka nungguin Query Analisa Penjualan 5-10 tahun kebelakang yg dimana tabelnya kita buat dengan Normalisasi ? Jadi untuk data yg sudah banyak , untuk reporting/DSS lebih baik kita pakai UnNormalized saja .
Di DS ini ada DataWarehouse,DataMart dll ..coba bisa diexplore


mohon koreksi nya bila ada yg salah


Salam

original post "Normalisasi apa dan mengapa"

Kamis, 07 Juni 2007

Situs belajar foxpro

Dibawah ini daftar Situs untuk belajar foxpro
http://www.fox-id.org
Komunitas VFP indonesia
http://www.foxite.com
Komunitas VFP
http://www.fox.wikis.com
VFP Wiki
universalthread.com

belajarvfp.blogspot.com
ini yg paling ok

Create Form BloggerFrm

Akhirnya sampai juga di dunia para blogger ,walau rambut udah beruban tapi ga papalah ikut meramaikan

Kalau masih ada yg kurang harap dimaklumi ..hehehe

Blog ini untuk membantu rekan rekan yg baru mulai belajar VFP untuk mengenal lebih lanjut bahasa yang sangat mengagumkan.

Jikalau anda masih baru dalam pemrograman lebih baik belajar bahasa yg lain dulu ( Java , .NET,VB dll ) kenapa ??
karena VFP bisa membuat anda kecanduan ,tidak mau berpaling ke yang lain.



Salam