Anda di halaman 1dari 3

Bagian IV: Pemrosesan Query Terdistribusi

Pengantar: Dalam posting bagian ini akan dibahas masalah (issue) lainnya dalam basis data
terdistribusi, yaitu pemrosesan query terdistirbusi, berikut pertimbangan dan contoh kasus dalam
pembuatan query.
Pemrosesan query pada basis data terdistribusi berbeda dari pemrosesan query pada basis data terpusat.
Query-query pada relasi global perlu disesuaikan agar dapat menganani relasi-relasi dalam fragmen.
Pembuatan query pada perancangan basis data terdistribusi dapat diilustrasikan dengan bagan di bawah
ini.

Bagan pembuatan query terdistribusi
Pada basis data terpusat, evaluasi query harus memperhatikan faktor pengaksesan storage (disk), yakni
jumlah blok pada hard disk yang dibaca/tulis. Sementara itu, dalam pemrosesan query pada basis data
terdistribusi, diperlukan pula pertimbangan dari sisi
1. transmisi data melalui jaringan
2. peningkatan kinerja yang potensial akibat pemrosesan query secara paralel
Dalam membuat query pada basis data terdistribusi, perlu diperhatikan hal-hal sebagai berikut:
penyesuaian dari query relasi global ke query terhadap fragmen, yaitu bahwa ekspresi relasi
global dalam query harus disesuaikan menjadi ekspresi relasi fragmen; relasi global harus dapat
direkonstruksi (dibuat terlihat global) dari fragmen-fragmennya
penyederhanaan ekspresi aljabar relasional, juga deteksi dan penghilangan redundant
pemilihan strategi join yang optimal (khususnya pada program yang melakukan semi-join)
pemilihan rencana pemrosesan query yang optimal
Sebagai contoh, jika dimisalkan terdapat relasi global PARTS(PartNo, OrderNo, Price) yang dipartisi
menjadi
PARTS1:=
0PartNo300
(PARTS)
PARTS2:=
301PartNo500
(PARTS)
PARTS3:=
501PartNo999
(PARTS)
Query Q =
25PartNo350
(PARTS) pada relasi global dapat diubah menjadi bentuk query fragmen berikut:
mengganti relasi global menjadi definisi fragmen-fragmennya:
Q1 =
25PartNo350
(PARTS1 PARTS2 PARTS3)
melakukan pushdown pada tiap-tiap fragmen:
Q2 =
25PartNo350
(PARTS1)
25PartNo350
(PARTS2)
25PartNo350
(PARTS3)
Pemrosesan Paralel pada Query Fragmen
Jika dimisalkan sebuah relasi R difragmentasi secara horizontal (seperti contoh sebelumnya)
menjadi R
1
R
n
, aljabar relasional seleksi dan proyeksi menjadi

F
(R) (
F
(R
1
)) (
F
(R
n
))

attr
(R) (
attr
(R
1
)) (
attr
(R
n
))
Fungsi-fungsi agregat (query Q(R) diasumsikan menghasilkan relasi satu kolom)
o min(Q(R)) min(Q(R
1
), , Q(R
n
))
o max(Q(R)) max(Q(R
1
), , Q(R
n
))
o sum(Q(R)) sum(Q(R
1
)) + + sum(Q(R
n
))
Operasi R join S
Jika dimisalkan relasi S difragmentasi berdasarkan fragmentasi relasi R, sedemikian sehingga R =
R
1
R
2
dan S = S
1
S
2
, setiap fragmen dari R hanya perlu digabungkan (di-join) dengan
fragmen dari S yang bersesuaian dengannya.
Pemrosesan J oin Query
Jika terdapat relasi-relasi pada tempat (situs) yang terpisah, misalnya relasi R di situs A
1
, S di A
2
, dan T di
A
3
, query R join S join T yang dilakukan pada situs A
i
, harus ditampilkan hasilnya pada situs A
i
. Strategi
pemrosesan query yang mungkin adalah sebagai berikut:
Meng-copy salinan semua relasi R, S, dan T ke situs A
i
, kemudian melakukan join secara lokal di
A
i

Melakukan join secara bertahap, sbb:
1. menyalin R ke A
2
dan menghasilkan temp1 = R join S
2. temp1 disalin ke A
3
dan menghasilkan temp2 = temp1 join T
3. temp2 sebagai hasil akhir dipindahkan ke A
i

Strategi join di atas dapat dipilih dengan mempertimbangkan faktor-faktor berikut:
jumlah data yang ditransfer (salin)
biaya (resource) yang diperlukan untuk transfer data antarsitus
kecepatan pemrosesan di tiap situs
Operasi join dapat pula dioptimalkan dengan menggunakan strategi semijoin. R semijoin S
attr(R)
(R
join S). Jika dimisalkan relasi R disimpan di A
1
dan S di A
2
, kemudian dilakukan operasi R join S pada A
1
),
strategi semijoin dapat diilustrasikan sebagai berikut:
1. lakukan proyeksi di A
1
hanya dengan atribut yang dimiliki R dan S; temp1 :=
attr(R) attr(s)
(R)
2. hasil temp1 disalin ke A
2
dan di-join dengan S; temp2 := S join temp1; perhatikan bahwa temp2
adalah juga S semijoin R
3. temp2 disalin ke A
1
dan dilakukan operasi R join temp2
Strategi semijoin di atas dapat meningkatkan efisiensi operasi join karena data yang dipertukarkan
melalui jaringan menjadi lebih kecil. Untuk membuat join lebih efisien, dapat diimplementasikan
program (semi-)join yang memiliki pemroses query (query processor) untuk membuat partisi dari
sederetan join seperti R
1
join R
2
join R
n
menjadi kumpulan semijoin yang lebih efisien. Pemilihan
semijoin dilakukan dengan mempertimbangkan perpindahan data (resource dan waktu) beserta konstrain
yang terkait, misalnya waktu respon maksimum dari query.

Anda mungkin juga menyukai