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
- p1 ^p2 <=> p2 ^ p1
- p1 V p2 <=> p2 V p1
p1 ^ ( p2 ^p3) (p1 ^ p2) ^p3
p1 V (p2 Vp3) (
p1 V p2) Vp3
p1 ^ (p2 Vp3)
(p1 ^ p2) V (p1
^ p3)
p1 V (p2 ^ p3) (p1
V p2) ^ (p1 V p3)
⌐ ( p1 ^ p2) ⌐p1
V ⌐p2
⌐ ( p1 V p2)
⌐p1 ^ ⌐p2
⌐ (⌐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