100% menganggap dokumen ini bermanfaat (1 suara)
476 tayangan9 halaman

Dekomposisi Query

Dokumen tersebut membahas tentang dekomposisi query dan normalisasi query dengan tujuan untuk memfasilitasi pemrosesan lebih lanjut. Dekomposisi query terdiri dari empat langkah yaitu normalisasi, analisis, penghapusan redundansi, dan penulisan ulang query ke bentuk aljabar relasional. Normalisasi bertujuan untuk mengubah query ke bentuk yang dinormalisasi.

Diunggah oleh

Sans Aumeier
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (1 suara)
476 tayangan9 halaman

Dekomposisi Query

Dokumen tersebut membahas tentang dekomposisi query dan normalisasi query dengan tujuan untuk memfasilitasi pemrosesan lebih lanjut. Dekomposisi query terdiri dari empat langkah yaitu normalisasi, analisis, penghapusan redundansi, dan penulisan ulang query ke bentuk aljabar relasional. Normalisasi bertujuan untuk mengubah query ke bentuk yang dinormalisasi.

Diunggah oleh

Sans Aumeier
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 9

Dekomposisi Query dan Normalisasi Query

1. Dekomposisi Query
 Dekomposisi queri: Pemetaan kueri kalkulus (SQL) ke operasi aljabar (pilih,
proyek, gabung, ganti nama)
o queri input dan output mengacu pada hubungan global, tanpa pengetahuan
tentang distribusi data.
o queri keluaran benar secara semantik dan bagus dalam arti pekerjaan yang
berlebihan dihindari.
o Dekomposisi queri terdiri dari 4 langkah:
1. Normalisasi: Mengubah kueri menjadi bentuk yang dinormalisasi
2. Analisis: Mendeteksi dan menolak kueri yang "salah"; hanya mungkin
untuk subset relasional kalkulus
3. Penghapusan redundansi: Hilangkan predikat yang berlebihan
4. Menulis ulang: Ubah kueri menjadi RA dan optimalkan kueri
 Normalisasi: Ubah kueri menjadi bentuk yang dinormalisasi untuk memfasilitasi
pemrosesan lebih lanjut. Terutama terdiri dari dua langkah.
1. Analisis leksikal dan sintaksis
i. Periksa validitas (mirip dengan kompiler)
ii. Periksa atribut dan relasi
iii. Ketik pemeriksaan kualifikasi
2. Disiapkan ke dalam bentuk normal
i. Dengan SQL, kualifikasi kueri (klausa WHERE) adalah bagian tersulit
mungkin predikat kompleks sewenang-wenang yang diawali oleh bilangan
(∃, ∀)
ii. Bentuk normal konjungtif

(p11 ∨ p12 ∨ · · · ∨ p1n) ∧ · · (pm1 ∨ pm2 ∨ · · · ∨ pmn)

i. Bentuk normal pemutusan

(p11 ∧ p12 ∧ · · · ∧ p1n) ∨ · · (pm1 ∧ pm2 ∧ · · · ∧ pmn)

ii. Dalam bentuk normal terpisah, kueri dapat diproses secara independen
subkueri konjungtif yang ditautkan oleh serikat pekerja (sesuai dengan
disjungsi)
Contoh: Pertimbangkan pertanyaan berikut: Temukan nama-nama karyawan yang
telah mengerjakan proyek P1 selama 12 atau 24 bulan?

queri dalam SQL:

SELECT ENAME
FROM EMP, ASG
WHERE EMP.ENO = ASG.ENO AND
ASG.PNO = ‘‘P1’’ AND
DUR = 12 OR DUR = 24
 Kualifikasi dalam bentuk normal konjungtif:

EMP.ENO = ASG.ENO ∧ ASG.P NO = ”P1” ∧ (DUR = 12 ∨ DUR = 24)

 Kualifikasi dalam bentuk normal terpisah:

(EMP.ENO = ASG.ENO ∧ ASG.P NO = ”P1” ∧ DUR = 12) ∨

(EMP.ENO = ASG.ENO ∧ ASG.P NO = ”P1” ∧ DUR = 24)

 Analisis: Mengidentifikasi dan menolak jenis kueri yang salah atau salah secara
semantik
 Jenis salah
- Memeriksa apakah atribut dan nama relasi dari suatu query didefinisikan
secara global skema
- Memeriksa apakah operasi pada atribut tidak bertentangan dengan tipe
atribut, misalnya, perbandingan> operasi dengan atribut tipe string
 Salah semantik
- Memeriksa apakah komponen berkontribusi dengan cara apa pun terhadap
pembuatan hasil
- Hanya sebagian dari kueri kalkulus relasional yang dapat diuji
kebenarannya, yaitu yang tidak mengandung disjungsi dan negasi
- Struktur data khas yang digunakan untuk mendeteksi kueri yang salah
secara semantik adalah:
- ∗ Grafik koneksi (grafik kueri)
- ∗ Gabung grafik
Contoh: Pertimbangkan queri:

SELECT ENAME,RESP

FROM EMP, ASG, PROJ

WHERE EMP.ENO = ASG.ENO

AND ASG.PNO = PROJ.PNO

AND PNAME = "CAD/CAM"

AND DUR ≥ 36

AND TITLE = "Programmer"

 Grafik kueri / koneksi


- Node mewakili operan atau relasi hasil
- Tepi mewakili gabungan jika keduanya terhubung node mewakili
relasi operan, jika tidak maka ini adalah proyeksi
 Gabung grafik
- subgraf dari grafik queri yang hanya mempertimbangkan gabungan

 Karena grafik queri terhubung, queri benar secara semantic


 Contoh: Pertimbangkan kueri berikut dan grafik kuerinya:
SELECT ENAME,RESP
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND PNAME = "CAD/CAM"
AND DUR ≥ 36
AND ITLE = "Programmer"
 Karena grafik tidak terhubung, kueri salah secara semantik.
 3 solusi yang mungkin:
- Tolak queri
- Asumsikan Produk Cartesian implisit antara ASG dan PROJ
- Menyimpulkan dari skema yang hilang bergabung dengan predikat ASG.PNO
= PROJ.PNO
 Penghapusan redundansi: Sederhanakan kueri dengan menghilangkan
redundansi, misalnya,
 predikat yang berlebihan
- Redundansi sering kali disebabkan oleh batasan integritas semantik
yang diekspresikan dalam kueri bahasa
- misalnya, kueri pada tampilan diperluas menjadi kueri tentang
hubungan yang memuaskan tertentu integritas dan kendala
keamanan
 Aturan transformasi digunakan, misalnya,
- p ∧ p ⇐⇒ p
- p ∨ p ⇐⇒ p
- p ∧ true ⇐⇒ p
- p ∨ f alse ⇐⇒ p
- p ∧ f alse ⇐⇒ f alse
- p ∨ benar ⇐⇒ benar
- p ¬ ¬p ⇐⇒ f alse
- p ∨ ¬p ⇐⇒ benar
- p1 ∧ (p1 ∨ p2) ⇐⇒ p1
- p1 ∨ (p1 ∧ p2) ⇐⇒ p1
 Tata Ulang : Ubah kueri kalkulus relasional menjadi kueri aljabar relasional dan
temukan ekspresi yang efisien.
Contoh: Temukan nama-nama karyawan lainnya
dari J. Doe yang bekerja di CAD / CAM
proyek selama 1 atau 2 tahun.
SELECT ENAME
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND ASG.PNO = PROJ.PNO
AND ENAME 6= "J. Doe"
AND PNAME = "CAD/CAM"
AND (DUR = 12 OR DUR = 24)
 Pohon kueri mewakili ekspresi RA
- Hubungan adalah daun (DARI klausa)
- Atribut hasil adalah root (klausa SELECT)
- Daun tengah harus memberi hasil dari daun hingga akarnya
 Dengan menerapkan aturan transformasi, banyak pohon / ekspresi yang
berbeda dapat ditemukan itu setara dengan pohon / ekspresi asli, tetapi
mungkin lebih efisien.
 Berikut ini kita asumsikan relasi R (A1,..., An), S (B1,..., Bn), dan T yang
mana kompatibel dengan serikat untuk R.
 Komutatifitas operasi biner
- R×S=S×R
- R ⋊⋉ S = S ⋊⋉ R
- R∪S=S∪R
 Asosiasi operasi biner
- (R × S) × T = R × (S × T)
- (R ⋊⋉ S) ⋊⋉ T = R ⋊⋉ (S ⋊⋉ T)
 Idempotensi operasi unary
- ΠA (ΠA (R)) = ΠA (R)
- σp1 (A1) (σp2 (A2) (R)) = σp1 (A1) ∧p2 (A2) (R)
 Lokalisasi data
 Input: Kueri aljabar pada konseptual global skema
 Tujuan:
- Terapkan informasi distribusi data ke operasi aljabar dan menentukan
yang mana fragmen terlibat
- Gantikan kueri global dengan kueri aktif fragmen
- Optimalkan kueri global
Contoh:

- Asumsikan EMP terfragmentasi secara horizontal menjadi EMP1, EMP2,


EMP3 sebagai berikut:
o EMP1 = σENO≤ ”E3” (EMP)
o EMP2 = σ ”E3” <ENO≤ ”E6” (EMP)
o EMP3 = σENO> "E6" (EMP)
- ASG terfragmentasi menjadi ASG1 dan ASG2 sebagai berikut:
o ASG1 = σENO≤ ”E3” (ASG)
o ASG2 = σENO> "E3" (ASG)
- Pendekatan sederhana: Ganti di semua kueri
o EMP oleh (EMP1∪EMP2∪ EMP3)
o ASG oleh (ASG1∪ASG2)
o Hasil juga disebut kueri generic

Anda mungkin juga menyukai