23
Keberhasilan teknologi database relasional dalam pengolahan data ini disebabkan, sebagian, untuk ketersediaan bahasa non-prosedural (yaitu, SQL), yang secara signifikan dapat meningkatkan pengembangan aplikasi dan produktivitas pengguna akhir. Dengan menyembunyikan rincian tingkat rendah tentang organisasi fisik dari data, bahasa database relasional memungkinkan ekspresi query kompleks secara ringkas dan sederhana. Secara khusus, untuk membangun jawaban untuk pertanyaan itu, pengguna tidak tepat menentukan prosedur untuk mengikuti. Prosedur ini sebenarnya dirancang oleh modul DBMS, biasanya disebut prosesor query. Hal ini mengurangi pengguna dari optimasi query, memakan waktu tugas yang paling ditangani oleh prosesor query, karena dapat memanfaatkan sejumlah besar informasi yang berguna tentang data. Karena ini adalah masalah kinerja kritis, pemrosesan query telah menerima (dan terus menerima) perhatian dalam konteks baik dan terpusat didistribusikan DBMS. Namun, masalah pemrosesan query jauh lebih sulit dalam lingkungan didistribusikan daripada yang terpusat, karena sejumlah besar parameter mempengaruhi kinerja query terdistribusi. Secara khusus, hubungan terlibat dalam query didistribusikan dapat terpecah-pecah dan / atau direplikasi, sehingga Induc-ing biaya overhead komunikasi. Selain itu, dengan banyak situs untuk mengakses, permintaan waktu tanggapan dapat menjadi sangat tinggi. Dalam bab ini kita memberikan gambaran pengolahan query dalam DBMS terdistribusi, meninggalkan rincian aspek penting dari pemrosesan query terdistribusi ke depan dua bab. Konteks yang dipilih adalah bahwa kalkulus relasional dan aljabar relasional, karena umum dan digunakan secara luas dalam DBMS terdistribusi. Seperti kita lihat dalam Bab 3, hubungan didistribusikan dilaksanakan oleh fragmen. Distributed desain database sangat penting untuk pemrosesan query karena definisi fragmen didasarkan pada tujuan meningkatkan lokalitas referensi, dan kadang-kadang eksekusi paralel

blog.ub.ac.idblog.ub.ac.id/.../2014/01/Query-Processing-pak-sat-indo.docx · Web viewThe terdefinisi dengan baikpemetaan dari kalkulus relasional aljabar relasional (lihat Bab 2)

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Keberhasilan teknologi database relasional dalam pengolahan data ini disebabkan, sebagian, untukketersediaan bahasa non-prosedural (yaitu, SQL), yang secara signifikan dapat meningkatkanpengembangan aplikasi dan produktivitas pengguna akhir. Dengan menyembunyikan rincian tingkat rendahtentang organisasi fisik dari data, bahasa database relasional memungkinkanekspresi query kompleks secara ringkas dan sederhana. Secara khusus, untukmembangun jawaban untuk pertanyaan itu, pengguna tidak tepat menentukan proseduruntuk mengikuti. Prosedur ini sebenarnya dirancang oleh modul DBMS, biasanya disebutprosesor query. Hal ini mengurangi pengguna dari optimasi query, memakan waktutugas yang paling ditangani oleh prosesor query, karena dapat memanfaatkan sejumlah besarinformasi yang berguna tentang data.Karena ini adalah masalah kinerja kritis, pemrosesan query telah menerima (danterus menerima) perhatian dalam konteks baik dan terpusatdidistribusikan DBMS. Namun, masalah pemrosesan query jauh lebih sulitdalam lingkungan didistribusikan daripada yang terpusat, karena sejumlah besarparameter mempengaruhi kinerja query terdistribusi. Secara khusus, hubunganterlibat dalam query didistribusikan dapat terpecah-pecah dan / atau direplikasi, sehingga Induc-ing biaya overhead komunikasi. Selain itu, dengan banyak situs untuk mengakses, permintaanwaktu tanggapan dapat menjadi sangat tinggi.Dalam bab ini kita memberikan gambaran pengolahan query dalam DBMS terdistribusi,meninggalkan rincian aspek penting dari pemrosesan query terdistribusi ke depandua bab. Konteks yang dipilih adalah bahwa kalkulus relasional dan aljabar relasional,karena umum dan digunakan secara luas dalam DBMS terdistribusi. Seperti kita lihat dalam Bab3, hubungan didistribusikan dilaksanakan oleh fragmen. Distributed desain databasesangat penting untuk pemrosesan query karena definisi fragmen didasarkanpada tujuan meningkatkan lokalitas referensi, dan kadang-kadang eksekusi paraleluntuk pertanyaan yang paling penting. Peran prosesor permintaan didistribusikan adalah untuk memetakanquery tingkat tinggi (diasumsikan dinyatakan dalam kalkulus relasional) pada terdistribusidatabase (yaitu, satu set hubungan global) menjadi urutan operator database (darialjabar relasional) pada fragmen relasi. Beberapa fungsi penting mencirikanpemetaan ini. Pertama, permintaan kalkulus harus didekomposisi menjadi urutanoperator relasional disebut query aljabar. Kedua, data yang diakses oleh205DOI 10.1007/978-1-4419-8834-8_6, © Springer Science + Business Media, LLC 2011M.T. Özsu dan P. Valduriez, Prinsip Sistem Terdistribusi Database: Edisi Ketiga,206 6 Ikhtisar Query Pengolahanquery harus dilokalisasi sehingga operator pada hubungan dijabarkan untuk menanggung padadata lokal (fragmen). Akhirnya, pertanyaan aljabar pada fragmen harus diperpanjangdengan operator komunikasi dan dioptimalkan sehubungan dengan fungsi biaya menjadidiminimalkan. Fungsi biaya ini biasanya mengacu pada sumber daya komputasi seperti diskI / O, CPU, dan jaringan komunikasi.Bab ini disusun sebagai berikut. Dalam Bagian 6.1 kita menggambarkan masalah pemrosesan query. Dalam Bagian 6.2 kita mendefinisikan dengan tepat tujuan pemrosesan queryalgoritma. Kompleksitas operator aljabar relasional, yang mempengaruhi terutamakinerja pemrosesan query, diberikan dalam Bagian 6.3. Dalam Bagian 6.4 kita memberikankarakterisasi prosesor query berdasarkan pilihan pelaksanaannya. Akhirnya,dalam Bagian 6.5 kami memperkenalkan berbagai lapisan pemrosesan query mulai darididistribusikan permintaan ke pelaksanaan operator pada situs lokal dan komunikasi antara situs. Lapisan diperkenalkan di Bagian 6.5 akan dijelaskan secara rinci dalamdua bab berikutnya.

6.1

Fungsi utama dari query processor relasional adalah untuk mengubah query-tingkat tinggi(biasanya, dalam kalkulus relasional) ke query-tingkat yang lebih rendah setara (biasanya, dalam beberapa variasi aljabar relasional). Tingkat rendah permintaan sebenarnya mengimplementasikan strategi eksekusi untuk query. Transformasi harus mencapai kedua kebenaran dan efisiensi. Itu benar jika query tingkat rendah memiliki semantik yang sama seperti query, yaitu, jika kedua query menghasilkan hasil yang sama. The terdefinisi dengan baikpemetaan dari kalkulus relasional aljabar relasional (lihat Bab 2) membuat kebenaran masalah mudah. Tapi menghasilkan strategi eksekusi yang efisien lebih terlibat.Sebuah query kalkulus relasional mungkin memiliki banyak transformasi setara dan benarndalam aljabar relasional. Karena setiap strategi eksekusi setara dapat menyebabkan sangat konsumsi berbagai sumber daya komputer, kesulitan utama adalah untuk memilih strategi eksekusi yang meminimalkan konsumsi sumber daya.

Hal ini secara intuitif jelas bahwa pertanyaan kedua, yang menghindari produk CartesianEMP dan ASG, mengkonsumsi sumber daya komputasi jauh lebih sedikit daripada yang pertama, dan dengan demikianharus dipertahankan. ?Dalam konteks terpusat, strategi eksekusi query dapat dinyatakan baik dalamperpanjangan aljabar relasional. Peran utama dari query processor terpusat adalah untukmemilih, untuk query yang diberikan, yang terbaik permintaan aljabar relasional antara semua yang setara.Karena masalahnya adalah komputasi terselesaikan dengan sejumlah besar hubungan[Ibaraki dan Kameda, 1984], umumnya dikurangi untuk memilih solusi yang dekat denganoptimal.Dalam sistem terdistribusi, aljabar relasional tidak cukup untuk mengungkapkan eksekusistrategi. Ini harus dilengkapi dengan operator untuk pertukaran data antarasitus. Selain pilihan memesan operator aljabar relasional, yang didistribusikanquery processor juga harus memilih situs terbaik untuk mengolah data, dan mungkin caraData harus diubah. Hal ini meningkatkan ruang solusi dari yang untuk memilihstrategi eksekusi terdistribusi, membuat pemrosesan query terdistribusi secara signifikanlebih sulit.

Contoh 6.2. Contoh ini menggambarkan pentingnya pemilihan lokasi dan komunitas-nication untuk permintaan aljabar relasional yang dipilih terhadap database terfragmentasi. kamiperhatikan pertanyaan berikut Contoh 6.1

fragmen ASG1, ASG2, EMP1, Dan EMP2 disimpan di lokasi 1, 2, 3, dan 4,masing-masing, dan hasilnya diharapkan di situs 5.Demi kesederhanaan pedagogis, kita mengabaikan operator proyek dalamberikut. Dua setara strategi eksekusi didistribusikan untuk permintaan di atas ditunjukkan pada Gambar 6.1. Panah dari situs saya ke situs j berlabel R menunjukkan bahwarelasi R ditransfer dari situs saya ke situs j. Strategi memanfaatkan fakta bahwa hubunganEMP dan ASG terfragmentasi dengan cara yang sama untuk melakukan pilih dan bergabungOperator secara paralel. Strategi B memusatkan semua data operan di lokasi sebelum hasilpengolahan query.

Untuk mengevaluasi konsumsi sumber daya dari dua strategi, kita menggunakan sederhanaModel biaya. Kami berasumsi bahwa akses tuple, dilambangkan dengan tupacc, adalah 1 unit (yang kitameninggalkan ditentukan) dan transfer tupel, dilambangkan tuptrans, adalah 10 unit. Kami berasumsibahwa hubungan EMP dan ASG memiliki 400 dan 1000 tupel, masing-masing, dan bahwa adaadalah 20 manajer dalam kaitannya ASG. Kami juga menganggap bahwa data terdistribusi secara merataantara situs. Akhirnya, kita mengasumsikan bahwa hubungan ASG dan EMP secara lokal berkerumun diatribut RESP dan Eno, masing-masing. Oleh karena itu, ada akses langsung ke tupelASG (masing-masing, EMP) berdasarkan nilai atribut RESP (masing-masing, ENO).Total biaya strategi A dapat diturunkan sebagai berikut:

Dalam strategi A, join ASG0dan EMP (langkah 3) dapat memanfaatkan indeks cluster padaEno EMP. Dengan demikian, EMP diakses hanya sekali untuk setiap tupel ASG0. dalam strategiB, kita asumsikan bahwa metode akses hubungan EMP dan ASG berdasarkan atributRESP dan Eno yang hilang karena transfer data. Ini adalah asumsi yang masuk akaldalam praktek. Kami berasumsi bahwa join dari EMP dan ASG0pada langkah 4 dilakukan olehstandar algoritma nested loop (yang hanya melakukan produk Cartesian daridua relasi input). Sebuah strategi yang lebih baik dengan faktor 50, yang cukup signifikan.Selain itu, memberikan distribusi yang lebih baik kerja di antara situs. perbedaanakan lebih tinggi jika kita mengasumsikan komunikasi lambat dan / atau tingkat yang lebih tinggifragmentasi. ?

6.2

Seperti disebutkan sebelumnya, tujuan pemrosesan query dalam konteks didistribusikan adalah trans-membentuk permintaan tingkat tinggi pada database terdistribusi, yang dipandang sebagai sebuah database tunggaloleh pengguna, menjadi sebuah strategi eksekusi yang efisien disajikan dalam bahasa tingkat rendah padadatabase lokal. Kami berasumsi bahwa bahasa tingkat tinggi adalah kalkulus relasional, sementarabahasa tingkat rendah merupakan perpanjangan dari aljabar relasional dengan komunikasioperator. Lapisan yang berbeda yang terlibat dalam transformasi permintaan rinci dalamBagian 6.5. Sebuah aspek penting dari pemrosesan query adalah optimasi query. Karenabanyak strategi eksekusi adalah transformasi yang benar dari pertanyaan tingkat tinggi yang sama,salah satu yang mengoptimalkan (meminimalkan) konsumsi sumber daya harus dipertahankan.Sebuah ukuran yang baik dari konsumsi sumber daya adalah total biaya yang akan dikeluarkandalam pengolahan query [Sacco dan Yao, 1982]. Biaya total adalah jumlah dari semua kaliterjadi dalam pengolahan operator query di berbagai situs dan intersitekomunikasi. Ukuran lain yang baik adalah waktu respon query [Epsteinet al., 1978], yang merupakan waktu yang direncanakan untuk mengeksekusi query. Karena operator210 6 Ikhtisar Query Pengolahandapat dieksekusi secara paralel di lokasi yang berbeda, waktu respon query mungkinsecara signifikan kurang dari biaya total.

6.3

Dalam bab ini kita menganggap aljabar relasional sebagai dasar untuk mengekspresikan output dari querypengolahan. Oleh karena itu, kompleksitas operator aljabar relasional, yang secara langsungmempengaruhi waktu eksekusi mereka, menentukan beberapa prinsip yang berguna untuk prosesor query.Prinsip-prinsip ini dapat membantu dalam memilih strategi eksekusi akhir.Cara termudah untuk mendefinisikan kompleksitas adalah dalam hal hubungan kardinalitasindependen rincian pelaksanaan fisik seperti fragmentasi dan struktur penyimpanan. Gambar 6.2 menunjukkan kompleksitas operator unary dan binary dalamrangka peningkatan kompleksitas, dan dengan demikian meningkatkan waktu eksekusi. kompleksitasO (n) untuk operator unary, dimana n menunjukkan hubungan kardinalitas, jika dihasilkantupel dapat diperoleh secara independen satu sama lain. Kompleksitas adalah O (n? Logn) untukoperator biner jika setiap tupel dari satu relasi harus dibandingkan dengan setiap tuple darilain atas dasar kesetaraan atribut yang dipilih. Kompleksitas ini mengasumsikan bahwatupel dari setiap relasi harus diurutkan pada atribut perbandingan. Namun, dengan menggunakanhashing dan cukup memori untuk menyimpan satu relasi hash dapat mengurangi kompleksitasbiner operator O (n) [Bratbergsengen, 1984]. Proyek dengan duplikat eliminasidan operator pengelompokan mensyaratkan bahwa setiap tupel relasi harus dibandingkan dengan masing-masingtuple lainnya, dan dengan demikian juga memiliki O (n? logn) kompleksitas. Akhirnya, kompleksitas adalah O (n2)untuk produk Cartesian dari dua relasi karena setiap tuple dari satu relasi harusdikombinasikan dengan setiap tuple yang lain.

Ini sederhana melihat kompleksitas Operator menunjukkan dua prinsip. Pertama, karenakompleksitas relatif terhadap hubungan kardinalitas, operator yang paling selektif yang mengurangikardinalitas (misalnya, seleksi) harus dilakukan pertama. Kedua, operator harusdiperintahkan oleh meningkatnya kompleksitas sehingga produk Cartesian dapat dihindari atautertunda.

6.4

Hal ini cukup sulit untuk mengevaluasi dan membandingkan prosesor query dalam konteks baiksistem terpusat [Jarke dan Koch, 1984] dan sistem terdistribusi [Sacco dan212 6 Ikhtisar Query PengolahanYao, 1982; APERS et al, 1983;. Kossmann, 2000] karena mereka mungkin berbeda dalam banyakaspek. Dalam apa yang berikut, kami daftar karakteristik penting dari prosesor query yangdapat digunakan sebagai dasar untuk perbandingan. Pertama empat karakteristik tahan untuk keduaprosesor permintaan terpusat dan terdistribusi sementara empat karakteristik berikutnya adalahkhusus untuk prosesor permintaan didistribusikan dalam DBMS terdistribusi erat-terpadu.Karakterisasi ini digunakan dalam Bab 8 untuk membandingkan berbagai algoritma.

6.4.1

Awalnya, sebagian besar bekerja pada pemrosesan query dilakukan dalam konteks relasional DBMSkarena bahasa tingkat tinggi mereka memberikan sistem banyak kesempatan untuk optimiza-tion. Bahasa input ke prosesor query demikian didasarkan pada kalkulus relasional.Dengan DBMS objek, bahasa didasarkan pada objek kalkulus yang hanyalah sebuahperpanjangan kalkulus relasional. Dengan demikian, dekomposisi ke objek aljabar juga dibutuhkan(lihat Bab 15). XML, model data lain yang kita bahas dalam buku ini, yang memilikibahasa sendiri, terutama di XQuery dan XPath. Eksekusi mereka membutuhkan khususpeduli bahwa kita bahas dalam Bab 17.Mantan membutuhkan fase tambahan untuk menguraikan permintaan dinyatakan dalamkalkulus relasional dalam aljabar relasional. Dalam konteks didistribusikan, bahasa keluaranumumnya beberapa bentuk internal aljabar relasional ditambah dengan komunikasiprimitif. Operator bahasa output langsung diimplementasikan dalamsistem. Pemrosesan query harus melakukan pemetaan efisien dari bahasa inputke bahasa output.

6.4.2

Secara konseptual, optimasi query bertujuan memilih "terbaik" titik dalam larutanruang semua strategi eksekusi mungkin. Sebuah metode langsung untuk permintaan optimiza-tion adalah untuk mencari ruang solusi, mendalam memprediksi biaya setiap strategi, danmemilih strategi dengan biaya minimum. Meskipun metode ini efektif dalam memilihstrategi terbaik, mungkin dikenakan biaya pengolahan yang signifikan untuk optimasi itu sendiri.Masalahnya adalah bahwa ruang solusi dapat besar, yaitu, mungkin ada banyakstrategi setara, bahkan dengan sejumlah kecil hubungan. Masalahnya menjadilebih buruk karena jumlah relasi atau fragmen meningkat (misalnya, menjadi lebih besar dari5 atau 6). Setelah optimasi biaya tinggi tidak selalu buruk, terutama jika queryoptimasi dilakukan sekali untuk banyak eksekusi berikutnya query. Oleh karena itu,"Lengkap" pendekatan pencarian sering digunakan dimana (hampir) semua kemungkinan eksekusistrategi dianggap [Selinger et al., 1979].Untuk menghindari biaya tinggi pencarian lengkap, strategi acak, seperti berulangperbaikan [Swami, 1989] dan simulasi annealing [Ioannidis dan Wong, 1987]6.4 Karakterisasi Query Prosesor 213telah diusulkan. Mereka mencoba untuk menemukan solusi yang sangat baik, belum tentu yang terbaik,tapi menghindari biaya tinggi optimasi, dalam hal memori dan waktu konsumsi.Cara lain yang populer untuk mengurangi biaya pencarian lengkap adalah penggunaanheuristik, yang berlaku adalah untuk membatasi ruang solusi sehingga hanya beberapa strategidianggap. Dalam kedua sistem terpusat dan terdistribusi, heuristik umum adalah untukmemperkecil ukuran hubungan antara. Hal ini dapat dilakukan dengan melakukan operanoperator pertama, dan memerintahkan operator biner dengan ukuran peningkatan merekahubungan antara. Sebuah heuristik penting dalam sistem terdistribusi adalah untuk menggantikan bergabungoperator dengan kombinasi semijoins untuk meminimalkan komunikasi data.

6.4.3

Sebuah query dapat dioptimalkan pada waktu yang berbeda relatif terhadap waktu yang sebenarnya queryeksekusi. Optimasi dapat dilakukan secara statis sebelum mengeksekusi query atau dynami-Cally sebagai query dijalankan. Optimasi query statis dilakukan pada penyusunan permintaanwaktu. Dengan demikian biaya optimasi mungkin diamortisasi selama beberapa eksekusi query.Oleh karena itu, waktu ini cocok untuk digunakan dengan metode pencarian lengkap. sejakukuran dari hubungan antara strategi yang tidak diketahui sampai waktu berjalan, merekaharus diperkirakan dengan menggunakan basis data statistik. Kesalahan dalam perkiraan ini dapat menyebabkanpilihan strategi suboptimal.Dinamis hasil optimasi query pada waktu eksekusi query. Pada setiap titikeksekusi, pilihan terbaik operator berikutnya dapat didasarkan pada pengetahuan yang akurathasil dari operator dieksekusi sebelumnya. Oleh karena itu, statistik database tidakdiperlukan untuk memperkirakan ukuran hasil antara. Namun, mereka mungkin masih bermanfaatdalam memilih operator pertama. Keuntungan utama daripada optimasi query statisadalah bahwa ukuran sebenarnya dari hubungan antara yang tersedia untuk prosesor query,sehingga meminimalkan kemungkinan pilihan yang buruk. Kelemahan utama adalah bahwaoptimasi query, tugas mahal, harus diulang untuk setiap pelaksanaanquery. Oleh karena itu, pendekatan ini adalah yang terbaik untuk query ad-hoc.Optimasi query Hybrid mencoba untuk memberikan keuntungan dari permintaan statis Opti-mization sambil menghindari isu-isu yang dihasilkan oleh estimasi yang tidak akurat. pendekatanpada dasarnya statis, tetapi dinamis optimasi query dapat terjadi pada jangka waktu ketikaperbedaan tinggi antara diprediksi ukuran dan ukuran sebenarnya dari hubungan intermediateterdeteksi.

6.4.4

Efektivitas optimasi query bergantung pada statistik pada database. dinamisoptimasi query membutuhkan statistik untuk memilih operator harusdilakukan terlebih dahulu. Optimasi query statis bahkan lebih menuntut karena ukuranhubungan antara juga harus diestimasi berdasarkan informasi statistik. dalam214 6 Ikhtisar Query Pengolahandatabase terdistribusi, statistik untuk optimasi query biasanya menanggung pada fragmen,dan termasuk fragmen kardinalitas dan ukuran serta ukuran dan jumlah yang berbedanilai masing-masing atribut. Untuk meminimalkan kemungkinan kesalahan, statistik yang lebih rinciseperti histogram nilai atribut kadang-kadang digunakan dengan mengorbankan yang lebih tinggibiaya manajemen. Keakuratan statistik dicapai dengan update berkala. denganoptimasi statis, perubahan signifikan dalam statistik digunakan untuk mengoptimalkan query mungkinmengakibatkan reoptimization query.

6.4.5

Ketika optimasi statis digunakan, baik satu situs atau beberapa situs dapat berpartisipasidalam pemilihan strategi yang akan diterapkan untuk menjawab query. kebanyakan sistemmenggunakan pendekatan pengambilan keputusan terpusat, di mana satu situs menghasilkan strategi.Namun, proses pengambilan keputusan dapat didistribusikan antara berbagai situs yang berpartisipasidalam penjabaran strategi terbaik. Pendekatan terpusat sederhana tetapi membutuhkanpengetahuan tentang seluruh database didistribusikan, sedangkan pendekatan didistribusikan membutuhkanhanya informasi lokal. Pendekatan hybrid di mana satu situs membuat keputusan-keputusan pentingdan situs lainnya dapat membuat keputusan lokal juga sering. Misalnya, Sistem R *[Williams et al., 1982] menggunakan pendekatan hybrid.

6.4.6

Topologi jaringan umumnya dimanfaatkan oleh prosesor query terdistribusi. denganwide area network, fungsi biaya harus diminimalkan dapat dibatasi pada databiaya komunikasi, yang dianggap sebagai faktor dominan. asumsi inisangat menyederhanakan didistribusikan optimasi query, yang dapat dibagi menjadi duapermasalahan tersendiri: pemilihan strategi eksekusi global, berdasarkan intersitekomunikasi, dan pemilihan masing-masing strategi eksekusi lokal, berdasarkan terpusatalgoritma pemrosesan query.Dengan jaringan area lokal, biaya komunikasi sebanding dengan I / O biaya.Oleh karena itu, masuk akal untuk prosesor query didistribusikan untuk meningkatkan paraleleksekusi dengan mengorbankan biaya komunikasi. Kemampuan penyiaranbeberapa jaringan area lokal dapat dimanfaatkan berhasil untuk mengoptimalkan pengolahanbergabung operator [¨Ozsoyoglu dan Zhou, 1987; Wah dan Lien, 1985]. algoritma lainkhusus untuk mengambil keuntungan dari topologi jaringan dibahas oleh Kerschberget al. [1982] untuk jaringan bintang dan oleh LaChimia [1984] untuk jaringan satelit.Dalam lingkungan client-server, kekuatan workstation klien dapat dimanfaatkanuntuk melakukan operator database menggunakan pengiriman data [Franklin et al., 1996]. itumasalah optimasi menjadi untuk memutuskan bagian mana dari query harus dilakukanpada klien dan bagian mana pada server menggunakan pengiriman query.

6.4.7

Sebuah relasi didistribusikan biasanya dibagi menjadi fragmen relasi seperti yang dijelaskan dalam Bab-ter 3. Query terdistribusi diekspresikan pada hubungan global dipetakan ke pertanyaan tentangfragmen fisik hubungan dengan menerjemahkan hubungan menjadi fragmen-fragmen. Kami menyebutnyaProses lokalisasi karena fungsi utamanya adalah untuk melokalisasi data yang terlibat dalamquery. Untuk keandalan yang lebih tinggi dan kinerja yang lebih baik membaca, hal ini berguna untuk memilikifragmen direplikasi di lokasi yang berbeda. Kebanyakan algoritma optimasi mempertimbangkan proses lo-calization independen optimasi. Namun, beberapa algoritma mengeksploitasikeberadaan fragmen direplikasi pada waktu berjalan untuk meminimalkan komunikasikali. Algoritma optimasi kemudian lebih kompleks karena ada yang lebih besarsejumlah strategi yang mungkin.

6.4.8

Operator semijoin memiliki sifat penting untuk mengurangi ukuran dari operanhubungan. Ketika komponen biaya utama yang dipertimbangkan oleh prosesor query adalah komu-nikasi, semijoin yang sangat berguna untuk meningkatkan pengolahan terdistribusibergabung operator karena mengurangi ukuran data yang dipertukarkan antara situs. Namun, dengan menggunakansemijoins dapat mengakibatkan peningkatan jumlah pesan dan di lokalwaktu pemrosesan. Para DBMS didistribusikan awal, seperti SDD-1 [Bernstein et al.,1981], yang dirancang untuk jaringan area luas lambat, membuat ekstensif menggunakansemijoins. Beberapa sistem kemudian, seperti R * [Williams et al., 1982], menganggap lebih cepatjaringan dan tidak mempekerjakan semijoins. Sebaliknya, mereka melakukan bergabung secara langsung karenamenggunakan bergabung mengarah untuk menurunkan biaya pemrosesan lokal. Namun demikian, masih semijoinsbermanfaat dalam konteks jaringan cepat ketika mereka menginduksi penurunan kuatbergabung operan. Oleh karena itu, beberapa algoritma pemrosesan query bertujuan memilihkombinasi optimal bergabung dan semijoins [¨Ozsoyoglu dan Zhou, 1987; Wah danLien, 1985].

6.5

Dalam Bab 1 kita telah melihat di mana pemrosesan query pas dengan DBMS terdistribusiarsitektur. Masalah pemrosesan query sendiri bisa didekomposisi menjadi beberapasubmasalah, sesuai dengan berbagai lapisan. Dalam Gambar 6.3 skema layering generikuntuk pemrosesan query akan ditampilkan yang mana setiap lapisan memecahkan subproblem yang jelas. untukmenyederhanakan diskusi, mari kita asumsikan prosesor permintaan statis dan semicentralizedyang tidak memanfaatkan fragmen direplikasi. Input adalah query pada data globaldinyatakan dalam kalkulus relasional. Query ini diajukan pada (didistribusikan) hubungan global,yang berarti bahwa distribusi data yang disembunyikan. Empat lapisan utama yang terlibat dalam didistribusikanpemrosesan query. Tiga pertama lapisan memetakan permintaan masukan ke dioptimalkan

didistribusikan rencana eksekusi query. Mereka melakukan fungsi dekomposisi query,lokalisasi data, dan optimasi query global. Query dekomposisi dan datalokalisasi sesuai dengan permintaan menulis ulang. Tiga pertama lapisan dilakukan olehsitus pusat kontrol dan penggunaan informasi skema disimpan di direktori global. itulapisan keempat melakukan eksekusi query didistribusikan dengan mengeksekusi rencana dan kembalijawaban untuk query. Hal ini dilakukan oleh situs-situs lokal dan situs kontrol. pertamadua lapisan diperlakukan secara ekstensif dalam Bab 7, sedangkan dua lapisan terakhir yang rincidalam Bab 8. Dalam sisa bab ini kita menyajikan gambaran dari empatlapisan.

6.5.1

Lapisan pertama terurai query kalkulus ke dalam query aljabar pada duniahubungan. Informasi yang diperlukan untuk transformasi ini ditemukan di global6.5 Lapisan Query Pengolahan 217skema konseptual yang menggambarkan hubungan global. Namun, informasi tentangdistribusi data tidak digunakan di sini tapi di lapisan berikutnya. Dengan demikian teknik yang digunakan olehlapisan ini adalah dari DBMS terpusat.Query dekomposisi dapat dilihat sebagai empat langkah yang berurutan. Pertama, kalkulusquery ditulis ulang dalam bentuk normalisasi yang cocok untuk manipulasi selanjutnya.Normalisasi query umumnya melibatkan manipulasi bilangan permintaandan kualifikasi permintaan dengan menerapkan prioritas logis operator.Kedua, pertanyaan normalisasi dianalisis secara semantik sehingga query yang salahterdeteksi dan ditolak sedini mungkin. Teknik untuk mendeteksi permintaan yang salahada hanya untuk subset dari kalkulus relasional. Biasanya, mereka menggunakan beberapa jenis grafikyang menangkap semantik query.Ketiga, pertanyaan yang benar (masih dinyatakan dalam kalkulus relasional) yang disederhanakan. Satucara untuk menyederhanakan query adalah untuk menghilangkan predikat berlebihan. Perhatikan bahwa berlebihanpertanyaan yang mungkin muncul jika permintaan adalah hasil dari transformasi sistem diterapkandengan permintaan pengguna. Seperti yang terlihat dalam Bab 5, transformasi tersebut digunakan untuk melakukansemantik data kontrol (pandangan, perlindungan, dan kontrol integritas semantik).Keempat, query kalkulus direstrukturisasi sebagai permintaan aljabar. Ingat dariBagian 6.1 bahwa beberapa query aljabar dapat berasal dari kalkulus yang samaquery, dan bahwa beberapa permintaan aljabar yang "lebih baik" daripada yang lain. Kualitas sebuahpermintaan aljabar didefinisikan dalam hal kinerja yang diharapkan. Cara tradisionaluntuk melakukan transformasi menuju "baik" spesifikasi aljabar adalah mulai denganquery aljabar awal dan mengubahnya dalam rangka untuk menemukan "baik". Awalpermintaan aljabar segera berasal dari permintaan kalkulus dengan menerjemahkanpredikat dan pernyataan target ke operator relasional seperti yang muncul dalam query.Ini permintaan aljabar langsung diterjemahkan kemudian direstrukturisasi melalui transformasiaturan. The aljabar permintaan yang dihasilkan oleh lapisan ini adalah baik dalam arti bahwaeksekusi buruk biasanya dihindari. Misalnya, relasi akan diaksessekali, bahkan jika ada beberapa predikat pilih. Namun, permintaan ini umumnya jauhdari menyediakan eksekusi yang optimal, karena informasi tentang distribusi data danalokasi fragmen tidak digunakan pada lapisan ini.

6.5.2

Input ke lapisan kedua adalah query aljabar pada hubungan global. Peran utamalapisan kedua adalah untuk melokalisasi data query dengan menggunakan informasi data distribusidalam skema fragmen. Pada Bab 3 kita melihat bahwa hubungan terfragmentasi dan disimpandalam subset menguraikan, disebut fragmen, masing-masing disimpan di lokasi yang berbeda. lapisan inimenentukan fragmen terlibat dalam query dan mengubah terdistribusipermintaan menjadi query pada fragmen. Fragmentasi didefinisikan oleh fragmentasi pred-icates yang dapat diungkapkan melalui operator relasional. Sebuah relasi global bisadirekonstruksi dengan menerapkan aturan fragmentasi, dan kemudian menurunkan sebuah program,disebut program lokalisasi, operator aljabar relasional, yang kemudian bertindak atasfragmen. Membangkitkan query pada fragmen dilakukan dalam dua langkah. Pertama, query218 6 Ikhtisar Query Pengolahandipetakan menjadi query fragmen dengan menggantikan setiap relasi dengan rekonstruksiProgram (juga disebut Program materialisasi), dibahas dalam Bab 3. kedua,query fragmen ini disederhanakan dan direstrukturisasi untuk menghasilkan lain "baik" query.Penyederhanaan dan restrukturisasi dapat dilakukan sesuai dengan aturan yang sama yang digunakan dalamlapisan dekomposisi. Seperti pada lapisan dekomposisi, query fragmen terakhir adalahumumnya jauh dari optimal karena informasi mengenai fragmen yang tidak dimanfaatkan.

6.5.3

Input ke lapisan ketiga adalah query aljabar pada fragmen. Tujuan dari permintaanoptimasi adalah untuk menemukan strategi eksekusi untuk query yang dekat dengan Opti-mal. Ingatlah bahwa mencari solusi optimal adalah komputasi terselesaikan. Sebuahstrategi eksekusi untuk query terdistribusi dapat digambarkan dengan aljabar relasionaloperator dan primitif komunikasi (mengirim / menerima operator) untuk mentransfer dataantara situs. Lapisan sebelumnya telah dioptimalkan query, misalnya,dengan menghilangkan ekspresi berlebihan. Namun, optimisasi ini independenkarakteristik fragmen seperti alokasi fragmen dan kardinalitasnya. Di samping itu, operator komunikasi belum ditentukan. Dengan permuting pemesananoperator dalam satu query pada fragmen, banyak pertanyaan yang setara dapat ditemukan.Optimasi query terdiri dari menemukan "terbaik" memesan operator diquery, termasuk operator komunikasi yang meminimalkan fungsi biaya. Biayafungsi, sering didefinisikan dalam unit waktu, mengacu pada sumber daya komputasi tersebutsebagai ruang disk, disk I / Os, ruang buffer, CPU biaya, biaya komunikasi, dan sebagainya.Umumnya, itu adalah kombinasi tertimbang biaya I / O, CPU, dan komunikasi.Namun demikian, penyederhanaan khas yang dibuat oleh DBMS terdistribusi awal, karena kamidisebutkan sebelumnya, adalah untuk mempertimbangkan biaya komunikasi sebagai faktor yang paling signifikan.Ini digunakan untuk menjadi valid untuk jaringan luas, dimana bandwidth terbatas membuatkomunikasi jauh lebih mahal daripada pemrosesan lokal. Hal ini tidak benar lagihari ini dan biaya komunikasi dapat lebih rendah dari I / O biaya. Untuk memilih Urutanoperator itu perlu untuk memprediksi biaya pelaksanaan penataan calon alternatif.Menentukan biaya eksekusi sebelum eksekusi query (yaitu, optimasi statis) didasarkanpada statistik fragmen dan formula untuk memperkirakan kardinalitas hasiloperator relasional. Dengan demikian keputusan optimasi tergantung pada alokasifragmen dan statistik yang tersedia pada fragmen yang perekam dalam alokasiskema.Sebuah aspek penting dari optimasi query adalah bergabung memesan, karena permutasi daribergabung dalam query dapat menyebabkan perbaikan lipat. SatuTeknik dasar untuk mengoptimalkan urutan operator join didistribusikan melaluisemijoin operator. Nilai utama dari semijoin dalam sistem terdistribusi adalah untuk mengurangiukuran operan bergabung dan kemudian biaya komunikasi. Namun, teknikyang mempertimbangkan biaya pemrosesan lokal serta biaya komunikasi tidak dapat menggunakansemijoins karena mereka dapat meningkatkan biaya pengolahan lokal. Output dari queryLapisan optimasi query aljabar dioptimalkan dengan operator komunikasi6.6 Kesimpulan 219disertakan pada fragmen. Hal ini biasanya diwakili dan disimpan (eksekusi masa depan)sebagai rencana eksekusi query didistribusikan

6.5.4

Lapisan terakhir dilakukan oleh semua situs yang memiliki fragmen yang terlibat dalam query.Setiap subquery mengeksekusi pada satu situs, yang disebut permintaan lokal, kemudian dioptimalkan menggunakanskema lokal situs dan dieksekusi. Pada saat ini, algoritma untuk melakukanoperator relasional dapat dipilih. Optimasi lokal menggunakan algoritmasistem terpusat (lihat Bab 8).

6.7

Dalam bab ini kita memberikan gambaran pemrosesan query dalam DBMS terdistribusi.Kami pertama kali memperkenalkan fungsi dan tujuan pemrosesan query. Utama Asumsi adalah bahwa permintaan input dinyatakan dalam kalkulus relasional karena itu terjadidengan terbaru DBMS. Kompleksitas masalah adalah proporsionaldengan kekuatan ekspresif dan kemampuan abstraksi dari bahasa query. UntukMisalnya, masalah bahkan lebih keras dengan ekstensi penting seperti transitifOperator penutupan [Valduriez dan Boral, 1986].Tujuan dari pemrosesan query terdistribusi dapat diringkas sebagai berikut: diberikanquery kalkulus pada database terdistribusi, menemukan strategi eksekusi yang sesuaiyang meminimalkan fungsi biaya sistem yang meliputi I / O, CPU, dan komunikasibiaya. Sebuah strategi eksekusi ditentukan dalam hal operator aljabar relasionaldan primitif komunikasi (mengirim / menerima) diterapkan pada database lokal (yaitu,fragmen relasi). Oleh karena itu, kompleksitas operator relasional yang mempengaruhikinerja eksekusi query adalah sangat penting dalam desain queryprosesor.Kami memberikan karakterisasi prosesor query berdasarkan pelaksanaannyapilihan. Prosesor Query mungkin berbeda dalam berbagai aspek seperti jenis algoritma,granularity optimasi, optimasi waktu, penggunaan statistik, pilihan keputusansitus (s), eksploitasi topologi jaringan, eksploitasi fragmen direplikasi,dan penggunaan semijoins. Karakterisasi ini berguna untuk membandingkan permintaan alternatifdesain prosesor dan memahami trade-off antara efisiensi dan kompleksitas.Masalah pemrosesan query sangat sulit untuk memahami didistribusikan ENVI-ronments karena banyak unsur yang terlibat. Namun, masalahnya dapat dibagimenjadi beberapa submasalah yang lebih mudah untuk memecahkan individual. Oleh karena itu, kita harusmengusulkan skema layering generik untuk menggambarkan pemrosesan query terdistribusi. Empatfungsi utama telah terisolasi: dekomposisi permintaan, lokalisasi data, duniaoptimasi query, dan didistribusikan eksekusi query. Fungsi-fungsi berturut-turutmemperbaiki pertanyaan dengan menambahkan rincian lebih lanjut tentang lingkungan pengolahan. Pertanyaan220 6 Ikhtisar Query Pengolahandekomposisi dan lokalisasi data diperlakukan secara rinci dalam Bab 7. Didistribusikanoptimasi query dan eksekusi adalah topik Bab 8