SISTEM TERDISTRIBUSI
“DATABASE MANAGEMENT SYSTEMPADA 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... 4A.Pengenalan Optimasi Query Terdistribusi...4
BAB III... 11
A.Kesimpulan...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
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.
• 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.
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
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