optimasi query
TRANSCRIPT
![Page 1: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/1.jpg)
Optimasi Query
![Page 2: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/2.jpg)
Komponen Query Processing Bahasa yang digunakan
SQL : “ Intergrasi bahasa data” Metodelogi Eksekusi Query
Langkah – langkah yang digunakan untuk mengeksekusi dalam gueri yang diinginkan oleh user
Optimasi Query Bagaimana mengetahui rencana
eksekusi yang “baik”
![Page 3: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/3.jpg)
Tabel yang ada
Pelanggan Daya terpasang
harga
![Page 4: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/4.jpg)
Memilih Alternatif
SELECT nmpelFROM pelanggan,daya_terpasangWHERE pelanggan.idpel = daya_terpasang.idpelAND daya > 1300
Strategi 1
Strategi 2
Π nmpel(σdaya >1300 Λ pelanggan.idpel=daya_terpasang.idpel(pelanggan X daya_terpasang))
Πnmpel(pelanggan idpel (σdaya>1300 (daya_terpasang))
![Page 5: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/5.jpg)
Objek Optimasi Queri
Minimal BiayaI/O Cost + CPU Cost + Communication Cost
Wide Area NetworksBiaya komunikasi akan mendominasi
1. Bandwidth Rendah
2. Kecepatan rendah
Local Area Networks
Biaya komunikasi tidak mendomionasi
![Page 6: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/6.jpg)
Kompleksitas Operasi Relasional
![Page 7: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/7.jpg)
Lapisan Pada Query Processing
Query Decomposition
Data Localization
Global Optimazation
Local Optimazation
Global Schema
Fragment Schema
Stats OnFragments
LocalSchema
Control Site
Local Sites
![Page 8: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/8.jpg)
Query Decomposition
Pada Lapis Pertama ini input adalah query dirubah menjadi Aljabar query.
Query Decomposition dibagi menjadi 4 bagian :Normalisasi, analisa semantik, memperbaiki Query, menata ulang struktur dari queri (restruktured)
![Page 9: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/9.jpg)
Data Localization
Hasil dari lapis pertama akan dibuat dalam bentuk fragment.
Secara Umum membuat fragment guery ada 2 langkah :Distribusi query dipetakan dalam fragment query, menyederhanakan fragment query.
![Page 10: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/10.jpg)
Global Optimazation
Tujuan dari optimasi query adalah mencari strategi untuk mengeksekusi query.
Strategi eksekusi untuk query terdistribusi tergantung dari aljabar relasional dan cara berkomunikasi ( mengirim/menerima)
![Page 11: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/11.jpg)
Local Optimization
Pada lapisan ini , query terbaik sudah terpilih, dan setiap sub query berada di satu site.
![Page 12: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/12.jpg)
Dekomposisi Query
Normalisasi Manipulasi Queri
Analisa Mendeteksi queri yang salah
Sederhanakan Mengeleminasi predicate yang berulang
Tata Ulang Gunakan aturan transformasi
![Page 13: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/13.jpg)
Normalisasi Aturan untuk operasi logika
1. p1 p2 <=> p2 ^ p12. p1 V p2 <=> p2 V p13. p1 ^ ( p2 ^p3) (p1 ^ p2) ^p34. p1 V (p2 Vp3) ( p1 V p2) Vp35. p1 ^ (p2 Vp3)(p1 ^ p2) V (p1 ^ p3)6. p1 V (p2 ^ p3) (p1 V p2) ^ (p1 V p3) 7. ( p1 ^ p2) p1 V p28. ( p1 V p2) p1 ^ p29. (p) p
![Page 14: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/14.jpg)
Contoh 1Mencari nama pelanggan dengan ap ‘lenteng agung ‘ dengan daya 1300
atau 900 wattSQL :Select nmpelFrom pelanggan p , daya_terpasang dWhere p.idpel = d.idpelAnd ap = “lenteng agung”And (daya = 1300 Or daya = 900)
Normalisasi :
p.idpel = d.idpel ap=“lenteng agung” (daya = 1300 V Daya =900)
(p.idpel = d.idpel ap=“lenteng agung” Daya = 1300) V
(p.idpel = d.idpel ap=“lenteng agung” Daya = 900)
atau
Select nmpelFrom pelanggan p , daya_terpasang dWhere (p.idpel = d.idpel And ap = 'lenteng agung‘ And daya = 1300 )or ( p.idpel = d.idpel And ap = 'lenteng agung'And daya = 900 )
![Page 15: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/15.jpg)
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
![Page 16: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/16.jpg)
Contoh 2
Select alamatFrom pelangganWhere ap > 1900Queri tidak benar :
Atribut alamat tidak dideklarasikan dalam struktur tabel
Operator > 1900 tidak compatible dengan type text dari ap
![Page 17: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/17.jpg)
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
![Page 18: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/18.jpg)
Contoh 3:
SELECT nmpel, daya
FROM pelanggan p, daya_terpasang d, harga h
WHERE p.idpel = d.idpel
AND d.gol = h.gol
AND ap = “lenteng agung"
AND tarif <100
Cari nama pelanggan dan daya dengan tarif kurang dari 100
![Page 19: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/19.jpg)
Query Graphpel
daya
harga
FROM pelanggan p, daya_terpasang d, harga h
WHERE p.idpel = d.idpel
p.idpel =
d.idpel
AND d.gol = h.gol
d.gol = h.gol
AND ap = “lenteng agung"
Tarif <100
AND tarif <100
ap = “lenteng agung"
hasil
SELECT nmpel, dayanm
pel
daya
![Page 20: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/20.jpg)
Analisis Jika Graph tidak terkoneksi , queri salah
SELECT nmpel, tarifFROM pelanggan, hargaWHERE ap = “lenteng agung"AND tarif =110
![Page 21: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/21.jpg)
Sederhanakan- Mengapa Harus disederhanakan- Bagaimana , Gunakan aturan
transformasi1. p ^ p p2. p V p p3. p ^ true p4. p V false p5. p ^ false false
6. P V true true
7. P ^ p false
8. P V p true
9. p1 ^ (p1 Vp2) p1
10 . p1 V (p1 ^p2) p1
![Page 22: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/22.jpg)
Contoh 4
SELECT apFROM pelangganWHERE nmpel = “sely”OR (NOT (ap = “semplak”)AND (ap= “semplak”OR ap = “bintaro.”)AND NOT (ap = “bintaro”))
SELECT apFROM pelangganWHERE nmpel = “sely”
![Page 23: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/23.jpg)
Tata UlangGunakan query treeContoh : Cari nama pelanggan yang tidak dilayani oleh ap lenteng agung yang mempunyai daya > 1300 dan merupakan golongan rumahSELECT p.nmpelFROM pelanggan p,daya_terpasang d, harga hWHERE p.idpel = d.idpelAND d.gol = h.golAND p.Ap <>'lenteng agung'AND d.daya >900AND h.tari=85
pelanggan Daya_terpasang harga
σ p.ap <> lenteng agung
σ d.Daya >900
σ h.tarif =85
∏ nmpel
![Page 24: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/24.jpg)
![Page 25: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/25.jpg)
![Page 26: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/26.jpg)
Equivalent query
pelanggan Daya_terpasang harga
σ p.Ap <>'lenteng agung‘ ^ d.daya >900 ^ h.gol='rumah’
∏ nmpel
select nmpel from(select * from daya_terpasang cross join harga natural join
pelanggan where daya_terpasang.gol=harga.gol and ap<>'lenteng agung' and
daya >900 and tarif=85)
![Page 27: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/27.jpg)
RESTRUCTURING
pelanggan Daya_terpasang harga
σ Ap<>’lenteng agung’
∏ idpel,nmpel
σ Daya>900
∏ idpel,gol ∏ gol
σ tarif=85
∏ nmpelselect nmpel from
((select idpel,nmpel from pelanggan where ap<>'lenteng agung')
natural join ((select idpel,gol from daya_terpasang
where daya>900) natural join
(select gol from harga where tarif =85)))
![Page 28: Optimasi Query](https://reader033.vdocuments.mx/reader033/viewer/2022061302/54e17b2e4a7959d4418b462c/html5/thumbnails/28.jpg)
Tugas kelompok
Optimasikan query ini 2. SELECT pnoFROM pernerbanganWHERE berangkat =10:00 OR harga>700,000AND (berangkat <>10:00 OR harga>700,000)
Penerbangan ( pno: string, asal : string, tujuan:string, jarak:integer, berangkat:time, tiba:time, harga:currency, pstno:string)Pesawat (pstno:string, pstnama:string, jaraktempuh:integer)Sertifikat(pilotid:string, pstno:string)Pilot (pilotid: string, pilot_nama:string, gaji : currency)
1. Buat aljabar relasional , query graph dan Query Tree untuk mencari nama pesawat yang dapat diterbangkan nonstop dari asal ke tujuan
Ini juga dioptimasi3. SELECT pilot_namaFROM pilot plt, sertifikat s, pesawat pst, penerbangan pWHERE pilotid.p = pilotid.s AND pstno.pst = pstno.sAND pstno.pst = pno.pAND asal =”semarang” AND pstnama=”boeing”