Senin, 24 Desember 2012

Opimasi query



Optimasi query

Database yang terdiri dari berbagai macam data yang semakin lama database itu akan memiliki volume yanga banyak dan besar. Hal ini akan mengakibatkan turunnya kecepatan akses terhadap database tersebut.

Pengertian
Optimisasi Query adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut menjadi lebih efektif.
Ada tiga aspek dasar yang mempengaruhi Optimisasi query, yaitu :
1.      Search space
2.      Cost model
3.      Search strategy

Kamis, 29 November 2012

NORMALISASI



DEPENDENCY DAN NORMALISASI

Functional Dependency (Ketergantungan Fungsional) 
      Functional  dependency  (ketergantungan  fungsional)  menggambarkan relationship / hubungan antara atribut-atribut dengan relasi. Sebagai contoh: Jika A dan B adalah atribut-atribut dari  relasi  R.  B dikatakan functionally dependent  (bergantungan fungsional)  terhadap A (dinotasikan dengan A  à  B), jika masing-masing nilai  dari  dalam relasi R berpasang-an secara tepat dengan satu nilai dari B dalam relasi R.

1.      Full functional dependency (ketergantungan fungsional sepenuhnya)
     Suatu  ketergantungan  fungsional  A à  B adalah  ketergantungan  fungsional sepenuhnya, jika perpindahan beberapa atribut dari A menghasilkan tepat satu pasangan pada  atribut  B.  Suatu  ketergantungan  fungsional  A à  B  adalah  ketergantungan fungsional sebagian, jika ada beberapa atribut yang dapat dihilangkan dari A sementara ketergantungan tersebut tetap berlaku /berfungsi.

2.      Partially dependency (ketergantungan parsial)
Merupakan ketergantungan fungsional, dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap dipertahankan.

3.      Transitive Dependency (ketergantungan transitif)
          Suatu kondisi  dimana  A,  B,  dan C adalah atribut-atribut  dari  suatu relasi sedemikian sehingga A à  B dan B à  C,  maka A à  C (C memiliki  ketergantungan transitif  terhadap  A  melalui  B),  dan  harus  dipastikan  bahwa  A  tidak  memiliki ketergantungan fungsional (functional dependent) terhadap B atau C).

Pengertian Normalisasi

·         Normalisasi  adalah  suatu  proses  memperbaiki  /  membangun  dengan  model  data relasional, dan secara umum lebih tepat dikoneksikan dengan model data logika.
·         Normalisasi adalah proses pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka sehingga terwujud satu bentuk database yang mudah untuk dimodifikasi.

Langkah-Langkah Pembentukan Normalisasi
1.      Bentuk tidak normal (unnormalized form)
      Bentuk ini  merupakan kumpulan data yang akan direkam,  tidak ada keharusan mengikukti  format  tertentu,  dapat  saja  data  tidak  lengkap  atau  terduplikasi.  Data dikumpulkan apa adanya sesuai dengan saat menginput.

Tabel Pelanggan_Biaya yang belum normal
(unnormal)
No_
Pelanggan
Nama
Nomor Poperty
Alamat Property
Tgl_
pinjam
Tgl_
selesai
Biaya
No_
Pemilik
Nama_
Pemilik
CR76
Badi
PG4
Riau
19-07-2012
19-07-2014
200
CO40
Ewin


PG16
Jakarta
30-11-2012
30-11-2014
400
CO93
Durki
CR56
Sirajuddin
PG4
Riau
23-10-2012
22-11-2013
200
CO40
Ewin


PG36
Jepang
11-02-2012
11-02-2013
300
CO93
Durki


PG16
Jakarta
12-12-2012
12-12-2013
500
CO93
Durki








Dari  tabel  di  Pelanggan Biaya di  atas  terdapat  multiple value pada beberapa atributnya. Misalkan terdapat  dua (2) nilai  untuk No_Property yaitu PG4 dan PG16 untuk Nama Pelanggan (Nama) Badi.
     Untuk mentransformasikan tabel yang belum ternomalisasi di atas menjadi tabel yang memenuhi  kriteria  1NF  adalah  kita  harus  merubah  seluruh  atribut  yang  multivalue menjadi atribut single value, dengan cara menghilangkan repeating group pada tabel di atas.

2.      Bentuk normal ke satu (first normal form / 1 nf)
     Langkah pertama yang dilakukan pada Tabel Pelanggan Biaya tersebut adalah menghilangkan elemen data yang berulang dengan data-data Pelanggan yang  sesuai  pada  setiap  baris.  Hasil  dari  tabel  yang  telah  memenuhi  bentuk  normal pertama. Kita  dapat  mengidentifikasi  primary key untuk relasi  Pelanggan_Biaya  yang  masih  memiliki  composite  key (No_Pelanggan,No_Property). Pada kasus ini kita akan memperoleh primary key yang bersifat composite key.

Tabel Pelanggan Biaya dalam bentuk normal kesatu (1-NF)
No_
Pelanggan
Nama
Nomor Poperty
Alamat Property
Tgl_
pinjam
Tgl_
selesai
Biaya
No_
Pemilik
Nama_
Pemilik
CR76
Badi
PG4
Riau
19-07-2012
19-07-2014
200
CO40
Ewin
CR76
 Badi
PG16
Jakarta
30-11-2012
30-11-2014
400
CO93
Durki
CR56
Sirajuddin
PG4
Riau
23-10-2012
22-11-2013
200
CO40
Ewin
CR56 
Sirajuddin
PG36
Jepang
11-02-2012
11-02-2013
300
CO93
Durki
CR56
Sirajuddin
PG16
Jakarta
12-12-2012
12-12-2013
500
CO93
Durki






3.      Bentuk normal ke dua (second normal form / 2 nf)
Syarat normal kedua (2-NF) sebagai berikut.
a.       Bentuk data telah memenuhi kriteria bentuk normal kesatu.
b.    Atribute  bukan  kunci  (non-key)  haruslah  memiliki  ketergantungan  fungsionla  sepenuhnya (fully functional dependency) pada kunci utama / primary key.
      Dengan demikian untuk membentuk normal  kedua haruslah sudah ditentukan primary  keynya.  Primary  key  tersebut  haruslah  lebih  sederhana,  lebih  unik,  dapat  mewakili atribute lain yang menjadi anggotanya, dan lebih sering digunakan pada tabel / relasi tersebut.

Tabel Pelanggan Biaya dalam bentuk normal  kedua (2-NF)

(a) Relasi Pelanggan

No_Pelanggan
Nama
CR76
Badi
CR56
Sirajuddin

(b) Relasi Biaya

No_Pelanggan
No_Property
Tgl_Pinjam
Tgl_Selesai
CR76
PG4
19-07-2012
19-07-2014
CR76
PG16
30-11-2012
30-11-2014
CR56
PG4
23-10-2012
22-11-2013
CR56
PG36
11-01-2012
11-02-2013
CR56
PG16
12-12-2012
12-12-2013

(c) Relasi Property_Pemilik

No_Property
Alamat Property
Biaya
No_Pemilik
Nama_Pemilik
PG4
Riau
200
CO40
Ewin
PG36
Jepang
300
CO93
Durki
PG16
Jakarta
500
CO93
Durki


4.      BENTUK NORMAL KE TIGA (THIRD NORMAL FORM / 3 NF)
Syarat normal ketiga (Third Normal Form / 3 NF) sebagai berikut.
a.       Bentuk data telah memenuhi kriteria bentuk normal kedua.
b.      Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan  kata lain suatu atribut bukan kunci  (non_key)  tidak boleh memiliki  ketergantungan fungsional  (functional  dependency)  terhadap  atribut  bukan  kunci  lainnya,  seluruh atribut  bukan  kunci  pada  suatu  relasi  hanya  memiliki  ketergantungan  fungsional terhadap priamry key di relasi itu saja.

Hasil akhir uji normalisasi sampai ke bentuk (3-NF) yang berasal dari relasi Pelanggan_Biaya 

(a) Relasi Customer
No_Pelanggan
Nama
CR76
Badi
CR56
Sirajuddin



(b) Relasi Rental
No_Pelanggan
No_Property
Tgl_Pinjam
Tgl_Selesai
CR76
PG4
19-07-2012
19-07-2014
CR76
PG16
30-11-2012
30-11-2014
CR56
PG4
23-10-2012
22-11-2013
CR56
PG36
11-01-2012
11-02-2013
CR56
PG16
12-12-2012
12-12-2013

(c) Relasi Property_for _Rent
No_Property
Alamat Property
Biaya
No_Pemilik
PG4
Riau
200
CO40
PG36
Jepang
300
CO93
PG16
Jakarta
500
CO93

(d) Relasi Owner
No_Pemilik
Nama_Pemilik
CO40
Ewin
CO93
Durki
CO93
Durki