Tuesday, April 15, 2014

Perancangan Basis Data IV



Optimasi query

           Optimasi query merupakan suatu proses untuk menganalisis dan menentukan sumber apa saja yang digunakan oleh query tsb dan apakah penggunaan dari sumber tsb dapat dikurangi tanpa merubah output. Tujuan dari optimasi query ini adalah untuk menentukan jalan akses yang temudah untuk meminimalisir waktu.

Rencana dari optimasi query dapat dilakukan dengan mengoptimalkan Ekspresi Aljabar Relasional seperti :
Selection (σ)
Projection (Π)
Cartesian Product / Cross Product (X)
Union ()
Set-Difference (-)



SELECT nmpel
FROM pelanggan,daya_terpasang
WHERE pelanggan.idpel = daya_terpasang.idpel
AND daya > 1300
Aljabar Relasional
Π nmpel(σdaya >1300 Λ pelanggan.idpel=daya_terpasang.idpel(pelanggan X daya_terpasang))


Query Decomposition
Pada Lapis Pertama ini input adalah query dirubah menjadi Aljabar query. Query Decomposition dibagi menjadi 4 bagian:
·         Normalisasi,
·         analisasemantik,
·         memperbaiki Query,
·         menata ulangstruktur dari queri(restruktured)
a.      Normalisasi
Manipulasi Queri
b.      Analisa
Mendeteksi queri yang salah
c.       Sederhanakan
Mengeleminasi predicate yang berulang
d.      Tata Ulang
Gunakan aturan transformasi

Normalisasi
Aturan untuk operasi logika
  1. p1 ^p2 <=> p2 ^ p1
  2. p1 V p2 <=> p2 V p1
  3. p1 ^ ( p2 ^p3)     (p1 ^  p2) ^p3
  4. p1 V (p2 Vp3)    ( p1 V p2) Vp3
  5.  p1 ^ (p2 Vp3)    (p1 ^ p2) V (p1 ^ p3)
  6.  p1 V (p2 ^ p3)    (p1 V p2) ^ (p1 V p3)
  7. ⌐ ( p1 ^ p2)      ⌐p1 V ⌐p2
  8. Left-Right Arrow:   ⌐ ( p1 V p2)    ⌐p1 ^ ⌐p2
  9.  ⌐ (⌐p)    p



CONTOH 1
Mencari nama pelanggan dengan ap ‘lenteng agung ‘ dengan daya 1300 atau 900 watt

SQL :
Select nmpel
From pelanggan p , daya_terpasang d
Where p.idpel = d.idpel And ap = “lenteng agung”
And (daya = 1300 Or daya = 900)

NORMALISASI :
p.idpel = d.idpel ap=“lenteng agung” (daya = 1300 V Daya =900)
atau

(p.idpel = d.idpel ap=“lenteng agung” Daya = 1300)
V
(p.idpel = d.idpel ap=“lenteng agung” Daya = 900)
 




ANALISA :
Menemukan queri yang salah Tipe yang tidak benar:
1.       Jika ada atribut atau nama relasi tidak didefenisi dalam skema global
2.       Ada operasi yang diaplikasikan ke atribut dengan tipe yang salah



CONTOH 2
Select alamat
From pelanggan Where ap > 1900

Queri tidak benar :
Atribut alamat tidak dideklarasikan dalam struktur tabel

Operator > 1900 tidak compatible dengan type text dari ap

KESALAHAN SEMANTIK
1.       Ada komponen yang tidak memberikan konstribusi dalam hasil akhir
2.       Hanya sebagian dari relational queris yang dapat di tes untuk koreksi
3.       Untuk mendektesi : query graph dan Join Graph


CONTOH 3
Cari nama pelanggan dan daya dengan tarif kurang dari 1100
SELECT nmpel, daya
FROM pelanggan p, daya_terpasang d, harga h
WHERE p.idpel = d.idpel
AND d.gol = h.gol AND tarif <1100

Query GRAPH :




0 comments:

Post a Comment