SISTEM TERDISTRIBUSI “DATABASE MANAGEMENT SYSTEM PADA SISTEM TERDISTRIBUSI” Untuk memenuhi tugas mata kuliah Manajemen Sistem Terditribusi Oleh Diana Laily fithri, M.kom
Disusun Oleh: Frista Yogie T
(201253065)
Wisnu Anshori
(201253079)
Aryntha Apriyantho
(201253106)
Andi Juli Aji
(201253183)
Nugroho Edi Laksono
(201253074)
SISTEM INFORMASI UNIVERSITAS MURIA KUDUS 2014
Daftar Isi Daftar Isi................................................................................................................................. 2 BAB I...................................................................................................................................... 3 A.Latar belakang.................................................................................................................3 B.Tujuan............................................................................................................................. 3 C.Perumusan Masalah....................................................................................................... 3 BAB II..................................................................................................................................... 4 A.Pengenalan Optimasi Query Terdistribusi.......................................................................4 BAB III.................................................................................................................................. 11 A.Kesimpulan.................................................................................................................... 11 B.Saran............................................................................................................................. 11
BAB I PENDAHULUAN A. Latar belakang Proses optimasi pada query dalam sebuah relasi database menjadi pekerjaan yang ’mahal’ saat berurusan dengan relasi dalam jumlah besar. Mencari cara terbaik dengan waktu eksekusi tercepat adalah sebuah kewajiban semenjak strategi yang salah diterapkan dalam sebuah. Dengan meningkatnya kompleksitas sebuah database, hal tersebut menjadi penting bagi metode-metode
query optimizer
untuk mengadopsi
sebuah algoritma
yang
membutuhkan cost rendah dalam hal waktu eksekusi. B. Tujuan Untuk menemukan jalan akses yang termurah untuk meminimumkan total waktu pada saat proses sebuah query. Untuk mencapai tujuan tersebut, maka diperlukan optimizer untuk melakukan analisa query dan untuk melakukan pencarian jalan akses C. Perumusan Masalah − Pengenalan Optimasi Query Terdistribusi −
Optimasi pada perintah SQL
BAB II PEMBAHASAN A. Pengenalan Optimasi Query Terdistribusi Optimasi Query adalah suatu proses untuk menganalisa query untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah output. Atau bisa juga dikatakan bahwa optimasi query adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut menjadi lebih efektif . Optimasi Query Mencari urutan optimal dari operasi query. Strategi yang terpilih diharapkan dapat meminimalisasi biaya yang harus dikeluarkan dalam pengeksekusian query. Biaya eksekusi merupakan kombinasi bobot dari I/O, CPU, dan biaya komunikasi. Query optimizer, sebuah modul software yang mendukung optimasi query terdiri dari tiga komponen, yaitu :
Search Space Merupakan sekumpulan alternatif perencanaan eksekusi yang merepresentasikan query. Seluruh alternatif adalah ekuivalen, yaitu memberikan hasil yang sama dengan urutan pengoperasian, pengimplementasian, dan performance yang berbeda. Representasi dari query tersebut dibentuk dalam suatu operator trees yang dapat dibuat dengan aturan transformasi. Cost Model Cost Model memprediksi biaya yang harus dikeluarkan dari suatu query yang akan dieksekusi. Terdiri dari cost function, statistic database, dan formula. Search Strategy Search strategy mengeksplorasi search space dan memilih strategi terbaik dari alternatif yang ada menggunakan cost model. Search Strategy yang dapat digunakan adalah dynamic programming yang bersifat determenistik, di mana menghasilkan solusi terbaik, dan randomized strategies (seperti Iterative Improvement dan Simulated Annealing) yang berkonsentrasi pada pencarian solusi optimal dengan menghindari biaya tinggi dalam optimasi. Optimasi Query Terpusat
•
Algoritma INGRES Algoritma INGRES menggunakan algoritma optimasi dinamis yang memecah query kalkulus ke dalam bagian yang lebih kecil secara rekursif. Mengombinasikan dua tahapan yaitu dekomposisi dan optimasi kalkulus-aljabar INGRES query processor :
•
Algoritma Sistem R Sistem R merupakan optimasi query statis yang didasarkan pada exhaustive search dari ruang solusi yang ada. Input untuk optimizer dengan sistem R adalah pohon relasi aljabar yang dihasilkan dari dekomposisi dari sebuah query SQL. Kemudian output dari sistem merupakan rencana eksekusi yang mengimplementasikan pohon relasi aljabar yang optimal.Optimizer menetapkan biaya (dalam hal waktu) dari masing-masing pohon kandidat dan mempertahankan pohon dengan biaya yang terkecil
Join Ordering •
Join ordering merupakan aspek yang penting dalam suatu optimasi query, terlebih pada query terdistribusi. Join ordering menjadi lebih penting ketika query merupakan query terdistribusi karena akan mempengaruhi communication time. Join ordering
dapat dilakukan secara langsung, maupun dengan mengombinasikan dengan semijoins di mana akan meminimalisasi communication cost. Optimasi query terdistribusi •
Algoritma INGRES terdistribusi Fungsi objektif dari algoritma ini adalah untuk meminimalisasi kombinasi baik communication time maupun response time. Algoritma ini juga mendapat keuntungan pada fragmentasi, tetapi hanya fragmentasi horizontal. Input untuk algoritma pemrosesan query ini dinyatakan dalam calculus relational-tupel dan skema informasi (tipe network, lokasi dan ukuran masing-masing site).
B. Optimasi pada perintah SQL
Desain aplikasi saja tidak cukup untuk meningkatkan kerja harus didukung dengan optimasi dari perintah SQL yang digunakan pada aplikasi tersebut. Dalam mendesain database, seringkali lokasi fisik data tidak menjadi perhatian penting. Karena hanya desain logik saja yang diperhatikan. Padahal untuk menampilkan hasil query dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. Inti dari optimasi query adalah meminimalkan “jalur” pencarian untuk menemukan data yang disimpan dalam lokasi fisik.
Tips Optimasi Query MySql •
Index Index adalah objek pada MySQL yang berisi data yang terurut - dari nilai-nilai pada satu atau lebih field dalam suatu table. Sama seperti daftar isi pada sebuah buku, index terutama digunakan untuk mempercepat pencarian terhadap suatu set data dengan kondisi tertentu - yang melibatkan kombinasi field yang sudah didefinisikan dalam suatu index.
•
Menentukan Tipe Data Menentukan tipe data yang tepat memerlukan ketelitian dan analisa yang baik. Sebagai contoh, kita perlu mengetahui kapan kita menggunakan tipe data char atau varchar. Keduanya menampung karakter, bednya char menyediakan ukuran
penyimpanan yang tetap (fixed-length), sedangkan varchar menyediakan ukuran penyimpanan sesuai dengan isi data (variable-length). •
Jangan Izinkan Allow Null Jika memungkinkan, kurangi penggunaan field yang memperbolehkan nilai null. Sebagai gantinya, dapat memberikan nilai default pada field tersebut. Nilai null kadang rancu dalam intepretasi programer dan dapat mengakibatkan kesalahan logika pemrograman. Selain itu, field null mengonsumsi byte tambahan sehingga menambah beban pada query yang mengaksesnya.
•
Query yang Mudah Terbaca Query panjang yang ditulis dalam 1 baris jelas akan menyulitkan modifi kasi dan pemahaman, akan jauh lebih baik jika menuliskan query dalam format yang mudah dicerna. Pemilihan huruf besar dan kecil juga dapat mempermudah pembacaan, misalnya dengan konsisten menuliskan keyword SQL dalam huruf kapital, dan tambahkan komentar bilamana diperlukan.
•
Hindari SELECT * SELECT * digunakan untuk melakukan query semua field yang terdapat pada sebuah table, tetapi jika hanya ingin memproses field tertentu, maka sebaiknya Anda menuliskan field yang ingin diakses saja, sehingga query Anda menjadi SELECT field1, field2, field3 dan seterusnya (jangan pedulikan kode program yang menjadi lebih panjang!). Hal ini akan mengurangi beban lalu lintas jaringan, terutama jika table tersebut memiliki banyak field dan berukuran besar.
•
Batasi ORDER BY Penggunaan ORDER BY yang berfungsi untuk mengurutkan data, ternyata memiliki konsekuensi menambah beban query, karena akan menambah satu proses lagi, yaitu proses sort. Karena itu gunakan ORDER BY hanya jika benar-benar dibutuhkan oleh aplikasi Anda. Atau jika dimungkinkan, Anda dapat melakukan pengurutan pada sisi client dan tidak pada sisi server. Misalnya dengan menampung data terlebih dahulu pada komponen grid dan melakukan sortir pada grid tersebut sesuai kebutuhan pengguna.
•
Subquery Atau JOIN
Adakalanya sebuah instruksi dapat dituliskan dalam bentuk subquery atau perintah JOIN, disarankan untuk memprioritaskan penggunaan JOIN karena dalam kasus yang umum akan menghasilkan performa yang lebih cepat. •
Gunakan WHERE dalam SELECT Menulis suatu kondisi yang pasti bernilai true, misalnya SELECT .... WHERE 1=1. Bahkan tools open source phpMyAdmin yang berfungsi untuk menangani database MySQL selalu menyertakan default klausa WHERE 1 pada perintah SELECT, di mana angka 1 pada MySQL berarti nilai true.
•
Kecepatan Akses Operator WHERE 1=1 dan WHERE 0 <> 1 sama-sama merupakan kondisi yang menghasilkan nilai true. Tetapi, dalam hal ini lebih baik Anda menggunakan WHERE 1=1 daripada WHERE 0 <> 1. Hal ini dikarenakan operator = diproses lebih cepat dibandingkan dengan operator <>.
•
Membatasi Jumlah Record membatasi jumlah record yang berpotensi mengembalikan record dalam jumlah besar (kecuali memang benar-benar dibutuhkan), pada SQL Server, Anda dapat menggunakan operator TOP di dalam perintah SELECT. Contohnya SELECT TOP 100 nama... akan menampilkan 100 record teratas field nama. Jika menggunakan MySQL, Anda dapat menggunakan LIMIT untuk keperluan yang sama.
•
Batasi Penggunaan Function Gunakan fungsi-fungsi yang disediakan SQL seperlunya saja. Sebagai contoh, jika Anda menemukan query sebagai berikut: SELECT nama FROM tbl_teman WHERE ucase(nama) = ‘ABC’, nampak query tersebut ingin mencari record yang memiliki data berisi “abc”, fungsi ucase digunakan untuk mengubah isi field nama menjadi huruf besar dan dibandingkan dengan konstanta “ABC” untuk meyakinkan bahwa semua data “abc” akan tampil, walaupun dituliskan dengan huruf kecil, besar, ataupun kombinasinya
•
Baca dari Kiri ke Kanan
Query yang tulis akan diproses dari kiri ke kanan, misalkan terdapat query WHERE kondisi1 AND kondisi2 AND kondisi3, maka kondisi1 akan terlebih dahulu dievaluasi, lalu kemudian kondisi2, kondisi3, dan seterusnya. Tentunya dengan asumsi tidak ada kondisi yang diprioritaskan/dikelompokkan dengan menggunakan tanda kurung. •
Gambar dalam Database Database memang tidak hanya diperuntukkan sebagai penyimpanan teks saja, tetapi dapat juga berupa gambar. Akan lebih baik bagi kinerja database jika Anda hanya menyimpan link ataulokasi gambar di dalam database, dibandingkan menyimpan fisik gambar tersebut.
•
Pengukuran Kinerja Jika menemukan sebuah query tampak tidak optimal, berusahalah menulis ulang query tersebut dengan teknik dan metode yang lebih baik. Semakin banyak query yang dapat dioptimasi, akan semakin baik kinerja aplikasi Anda. Terutama saat frekuensi pemakaian query tersebut relatif tinggi
•
Back-up Buatlah back-up otomatis secara periodik, sebaiknya tes dan simulasikan prosedur restore database dan perhitungkan waktu yang diperlukan untuk membuat sistem pulih kembali jika terjadi sesuatu yang tidak diharapkan pada database. Lakukan proses back-up pada waktu di mana aktivitas relatif rendah agar tidak mengganggu kegiatan operasional.
BAB III PENUTUP A. Kesimpulan Dari pembahasan di atas dapat di simpulkan bahwa sistem terdistribusi merupakan sekumpulan prosesor yang tidak saling berbagi memori atau clock dan terhubung melalui jaringan komunikasi yang bervariasi, yaitu melalui Local Area Network atau pun melalui Wide Area Network dan dilengkapi dengan sistem software tedistribusi untuk membentuk fasilitas komputer terintegrasi. Sistem
terdistribusi
dibangun
untuk
mencapai
tujuan-tujuan
yang
ingin
dicapai,diantaranya : − Untuk memberikan akses bagi pengguna untuk dapat mengembangkan sumber daya sistem. − Peningkatan kecepatan komputasi. − Meningkatkan availibilitas atau ketersediaan dan reliabilitas data. B. Saran Demikian pengantar yang dapat penulis sampaikan dimana penulis pun sadar bawasannya penulis hanyalah seorang manusia yang tidak luput dari kesalahan dan kekurangan, sedangkan kesempurnaan hanya milik Tuhan Azza Wa’jala hingga dalam penulisan dan penyusununnya masih jauh dari kata sempurna. Oleh karena itu, kritik dan saran yang konstruktif akan senantiasa penulis nanti dalam upaya evaluasi diri.
Curiculum Vitae Anggota Kelompok : Nama : Wisnu Anshori Alamat : Undaan Lor, Kudus TTL : Kudus, 12-06-1994 Hobi : Olahraga Cita-Cita : Dokter Gigi Nama : Aryntha Apriyantho Alamat : Ploso, Kudus TTL : Kudus, 14-04-1994 Hobi : Olahraga Cita-Cita : Programmer Nama : Frista Yogie Tri Anggara Alamat : Gondang Manis, Kudus TTL : Kudus, 12-06-1993 Hobi : Menulis Cita-Cita: Pengen Gemuk Nama : Andi Juli Aji Alamat : Ngabul, Jepara TTL : Jepara, 19-07-1994 Hobi : Olahraga Cita-Cita : Orang Pintar Nama : Nugroho Edi Laksono Alamat : Gajah, Demak TTL : Demak, 17-02-1994 Hobi : Olahraga Cita-Cita : Bisnis Man