13
2.2.4.2. Intersection R S
Operasi Intersection digunakan untuk menyatakan atau mendapatkan irisan kesamaan anggota dari dua buah kelompok data dari suatu tabel atau hasil
query.
Tata penulisannya adalah R S yang ekivalen dengan penggunaan operasi dasar Set-Difference S – S – R . Contoh untuk mendapatkan notsp mana saja yang
sama-sama dipunyai, baik dari Tabel 2 peserta maupun Tabel 4 pmk_ke1,
query tersebut dapat dipenuhi dengan operasi
Π
notsp
Peserta
Π
notsp
pmk_ke1
2.2.4.3. Difference R - S Operasi difference merupakan pengurangan data di tabelhasil proyeksi
pertama R oleh datahasil proyeksi yang kedua S
Simbolnya adalah : R – S
Ketentuannya sama dengan operasi Union yaitu harus mempunyai jumlah atribut yang sama baik di S maupun di R, contoh :
Π
tglkej
pensiun –
Π
tglkej
pmk_ke1
2.3. Proses Query
Dalam Database Manajemen System DBMS akses data dapat dilakukan dengan berbagai macam cara. Ada banyak plan rencana yang dapat diikuti oleh
DBMS dalam memproses dan menghasilkan jawaban sebuah query. Semua rencana pada akhirnya akan menghasilkan jawaban output yang sama tetapi
pasti mempunyai biaya yang berbeda-beda. Kebanyakan aplikasi secara nyata adalah permintaan-permintaan secara
langsung dari user yang memerlukan informasi tentang bentuk maupun isi dari basis data. Apabila permintaan user terbatas pada sekumpulan query-query
standar, maka query-query tersebut dapat dioptimisasi secara manual oleh pemrograman. Tetapi bagaimanapun juga, sebuah sistem optimisasi query
otomatis menjadi penting apabila query-query khusus dinyatakan dengan
14 menggunakan bahasa query yang digunakan secara umum seperti Structure Query
Language SQL. Optimisasi query memberikan suatu pemecahan untuk menangani masalah
dengan cara menggabungkan sejumlah besar teknik-teknik dan strategi, yang meliputi transformasi-transformasi logika dari query-query pada sistem file
penyimpanan data. Setelah ditransformasikan, sebuah query dipetakan ke dalam sebuah langkah-langkah operasi untuk menghasilkan data-data yang diminta.
Query Language SQL
Hasil Query
Gambar 3. Tahapan proses sebuah Query Swamy 2001
PARSER
Mengecek sintaks SQL keyword
CODE GENERATOR INTERPRETER
QUERY PROCESSOR Eksekusi Query
QUERY OPTIMIZER Mengecek sintaks SQL keyword
SCANNER
Mengecek sintaks SQL keyword
Menghasilkan Query plan
Menghasilkan kode Query Menghasilkan parse tree
15 Sebuah query yang diekspresikan dalam sebuah bahasa query tingkat
tinggi seperti SQL mula-mula harus dibaca, diuraikan dan disahkan scanning, parsing, validating. Query tersebut kemudian dibentuk menjadi sebuah struktur
data yang biasa disebut dengan query tree. Kemudian DBMS merencanakan sebuah strategi eksekusi untuk
mendapatkan kembali hasil dari query dari file-file basis data. Tahapan-tahapan proses dari sebuah query didalam sebuah sistem basis data ditunjukkan pada
Gambar 3 dan berikut penjelasan dari masing-masing tahapan :
Scanner melakukan identifikasi pengenalan perintah-perintah seperti SQL keywords, atribut, dan relation name. Proses ini disebut dengan
scanning. Query Parser mengecek validitas query dan kemudian
menterjemahkannya dalam bentuk internal yaitu ekspresi relasi aljabar atau parse tree proses ini disebut dengan parsing.
Query Optimizer memeriksa semua ekspresi-ekspresi aljabar yang sama untuk query yang diberikan dan memilih salah satu dari ekspresi tersebut
yang terbaik yang memiliki perkiraan paling murah. Dengan kata lain, tugas dari query optimizer adalah menghasilkan sebuah rencana eksekusi
dan proses ini disebut optimisasi query. Code Generator atau Interpreter mentransformasikan rencana akses yang
dihasilkan oleh optimizer ke dalam kode-kode. Setelah itu, kode-kode tersebut dikirimkan ke dalam query processor untuk dijalankan.
Query Processor melakukan eksekusi query untuk mendapatkan hasil query yang diinginkan.
Bagian yang diarsir pada Gambar 3 adalah optimizer yang sudah disediakan oleh DBMS. Tahapan proses query pada Gambar 3 tersebut adalah
untuk memberikan gambaran yang jelas tentang bagaimana pada umumnya sebuah query diproses di dalam sebuah Data Base Manajemen Sistem .
16 2.4. Optimisasi Query
Optimisasi Query adalah suatu proses untuk menganalisis query untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan
apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah keluaran. Atau dengan kata lain bahwa optimisasi query adalah sebuah prosedur untuk
meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut menjadi lebih efektif Richard 2000.
2.5. Prinsip Optimisasi Query Prinsip Optimisasi Query terdapat dalam pemilihan strategi query, dan
terletak pada penentuan strategi operasi Join. Bahasa query salah satu yang biasa digunakan, misalnya SQL, tetapi untuk beberapa kasus khusus, suatu query dapat
mempunyai hubungan dengan pemetaan aljabar. Bentuk yang lebih sederhana sangat diperlukan dari pada bentuk-bentuk aljabar tersebut, dan diasumsikan
bahwa operasi gabungan adalah salah satu operasi relasi aljabar Ken 2000. Menurut Richard Vlach 2000, optimisasi query dalam basis data
terdistribusi, ada dua aspek yang sangat penting, yaitu : 1.
Tranmisi data dan kontrol data ke tempat tujuan sangat dipengaruhi oleh bentuk komunikasi, dan dapat memperlambat keseluruhan
proses. 2.
Pengolahan data secara paralel transmisi data dapat mempercepat respone
Optimisasi Query adalah proses untuk menunjukkan bahwa baik total biaya maupun total waktu suatu query diminimalkan. Total biaya diukur oleh
penggunaan sumber daya sistem seperti CPU atau bentuk komunikasi data. Respone time optimizers yaitu untuk meminimalkan respone time dalam sebuah
query bersama-sama secara paralel.
17 Menurut Özsu MT, Valduriez P. 1999 formulasi untuk meminimalkan
biaya cost function adalah :
Total Cost = IO cost + CPU cost + communication cost ........................... 2.1
Dimana IO cost = unit disk IO cost + no. of disk IOs CPU cost = unit instruction cost + no. of instruction
Communicatin cost = message initiation + transmition Formula 2.1 masing-masing bagiannya dapat mempunyai bobot yang berbeda
tergantung dari terdistribusinya data, antara lain :
- Apabila proses query menggunakan Wide Area Networks WAN, maka biaya
komunikasi sangat dipengaruhi low bandwidth, low speed dan high protocol overhead. Sedangkan algoritma-algoritma yang ada pada umumnya
mengabaikan komponen biaya. - Apabila menggunakan Local Area Networks LAN, biaya komunikasi dan
pengiriman data tidak mempengaruhi, tetapi total biaya dari fungsi-fungsi yang digunakan harus dipertimbangkan.
2.6. Metoda Optimisasi Query