Anda di halaman 1dari 19

Kelompok 5

Query Processing
&
Phantom Promblem
Nama Anggota :

Hira Nur Afifah – 3411201036


Fajar Firdaus – 3411201037
Moch Isnan G – 3411201041
Hani Arum Pertiwi – 3411201059
Ilham Fathurrohman – 3411201134
Pengertian

Database Manajemen Sistem (DBMS) adalah kumpulan dari programprogram yang membolehkan
user untuk menciptakan dan memelihara sebuah database. DBMS sudah menjadi peralatan standar
untuk melindungi pengguna komputer dari bagian-bagian kecil dalam pengelolaan secondary storage
(hard disk).

Sebuah query adalah sebuah ekspresi bahasa yang menggambarkan data yang akan didapatkan
kembali dari sebuah database. Dalam hubungannya dengan optimisasi query, seringkali diasumsikan
bahwa query-query tersebut dinyatakandalam sebuah dasar-dasar isi dan sekumpulan cara orientasi,
yang memberikanoptimizer pilihan-pilihan diantara alternatif prosedur-prosedur evaluasi
Optimisasi query mencoba memberikan suatu pemecahan
untuk menangani masalah tersebut dengan cara
menggabungkan sejumlah besar teknik-teknik dan strategi,
yang meliputi transformasi-transformasi logika dari query-
query untuk mengoptimisasi jalan akses dan penyimpanan
data pada sistem file. Setelah ditransformasikan, sebuah query
harus dipetakan ke dalam sebuah urut-urutan operasi untuk
menghasilkan data-data yang diminta.
Optimisasi 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 optimisasi query
adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu
query untuk membuat evaluasi tersebut menjadi lebih efektif. Optimisasi
query mencakup beberapa teknik seperti transformasi query ke dalam
bentuk logika yang sama, memilih jalan akses yang optimal dan
mengoptimumkan penyimpanan data.
Optimisasi query merupakan bagian dasar dari sebuah sistem
database dan juga merupakan suatu proses untuk menghasilkan
rencana akses yang efisien dari sebuah query di dalam sebuah
database. Secara tidak langsung, sebuah rencana akses merupakan
sebuah strategi yang nantinya akan dijalankan untuk sebuah query,
untuk mendapatkan kembali operasi-operasi yang apabila dijalankan
akan menghasilkan database record query. Ada tiga aspek dasar yang
ditetapkan dan mempengaruhi optimisasi query, yaitu : search space,
cost model dan search strategy.
Search space adalah sekumpulan rencana-rencana akses yang sama secara
logika yang dapat digunakan untuk mengevaluasi sebuah query. Semua
rencanarencana dalam search space query mengembalikan hasil yang sama
biarpunnbeberapa rencana lebih efisien dibandingkan dengan rencana
yang lainnya.
Search strategy adalah sebuah perincian dari
rencana-rencana mana dalam search space
yang akan diperiksa. Apabila search space-
nya kecil, maka strategi yang dapat diteruskan
adalah menghitung dan mengevaluasi setiap
rencana. Meskipun kebanyakan search space
bahkan untuk query-query yang sederhana
adalah sangat besar, akan tetapi query
optimizer selalu memerlukan aturan heuristik
untuk mengontrol nomer dari rencana-rencana
yang akan diperiksa.
Optimasi query dapat dilakukan dengan beberapa cara, dalam hal ini terdapat 2 pendekatan
optimasi yang dapat digunakan menurut Chanowich (2001), yakni:[3]

a. Heuristik atau rule-based

Teknik ini mengaplikasikan aturan heuristik untuk mempercepat proses query. Optimasi
jenis ini mentransformasikan query dengan sejumlah aturan yang akan meningkatkan
kinerja eksekusi, yakni:

1. melakukan operasi selection di awal untuk mereduksi jumlah baris


2. melakukan operasi projection di awal untuk mereduksi jumlah atribut
3. mengkonversikan query dengan banyak join menjadi query dengan banyak subquery
4. melakukan operasi selection dan join yang paling kecil keluarannya sebelum operasi
lain

 
Tujuan dari optimisasi query adalah
berbeda-beda untuk setiap sistem. Ada yang
b. Cost-based menggunakan optimisasi query untuk
meminimumkan waktu proses sedangkan
Teknik ini mengoptimasikan pada situasi lain bisa juga optimisasi query
cost yang dipergunakan dari diperlukan untuk waktu respon,
meminimumkan I/O dan meminimumkan
beberapa alternatif untuk penggunaan memory. Tetapi pada dasarnya,
kemudian dipilih salah satu tujuan dari optimisasi query adalah
yang menjadi cost terendah. menemukan jalan akses yang termurah untuk
Teknik ini mengoptimalkan meminimumkan total waktu pada saat proses
urutan join terbalik yang sebuah query. Untuk mencapai tujuan
dimungkinkan pada relasi- tersebut, maka diperlukan optimizer untuk
relasi r1 -> r2 -> ... rn. melakukan analisa query dan untuk
melakukan pencarian jalan akses.
Pengertian

Phantom Problem adalah suatu kejadian membaca transaksi pada saat dimana
transaksi1 (T1) sedang melakukan suatu transaksi yang memenuhi suatu
kondisi pencarian (SELECT). Lalu transaksi2 (T2) menambahkan (INSERT)
atau menghapus (DELETE) yang memenuhi kondisi pencarian, sehingga jika
T1 melakukan pencarian yang sama, hal itu menyebabkan adanya baris-baris
‘phantom’ yang tampak atau hilang dari perspektif T1.
Contoh dari Kasus tersebut
Adalah contoh transaksi dari T1 dan
T2
Phantoms karena serializable adalah tingkat tertinggi, di mana
transaksi benar-benar terisolasi dari satu sama lain. DBMS dapat
mengeksekusi dua atau lebih transaksi pada saat yang sama hanya
jika ilusi eksekusi serial dapat dipertahankan.
Serializable adalah tingkat isolasi tertinggi. Dengan implementasi DBMS
kontrol konkurensi berbasis kunci, serializability membutuhkan kunci baca
dan tulis (diperoleh pada data yang dipilih) yang akan dirilis pada akhir
transaksi. Range-locks juga harus diperoleh ketika query SELECT
menggunakan
  klausa WHERE range, terutama untuk menghindari fenomena
phantom reads.
Dalam transaksi da beberapa bagian dalam basis data antara lain :

1. Active ( Aktif )

2. Partially Commited ( sebagian dilaksanakan ) kondisi ini terjadi


setelah statement terakhir di ekssekusi. Pada saat ini ada
kemungkinan ditemukan bahwa transaksi melanggar serializability
atau melanggar integrity constrain, maka transaksi harus dibatalkan ,
dengan demikian transaksi tersebut akan menuju keadaan gagal
(failed state) dan harus dibatalkan. Jika transaksi sukses, maka
beberapa perubahan (update) dapat disimpan secara aman dan
transaksi menuju ke keadaan Commited.
3. Commited ( dilaksanakan )
4. Failed ( gagal ) keadaan ini terjadi jika transaksi tidak dapat dilaksanakan
atau transaksi dibatalkan pada saat keadaan aktif ( active ), hal ini
disebabkan karena pembatalan transaksi oleh user atau concurency control
protocol membatalkan transaksi untuk memastikan serializability.
5. Abored ( dibatalkan ).
Ada 4 hal yang harus dimiliki semua transaksi sifat ACID yaitu :

1. Atomicity yaitu sebuah trasaksi yang adaah suatu unit yang tidak
dapat dibagi yaitu dilakukan secara menyeluruh atau tidak sama
sekali. Hal ini dijamin oleh DBMS pada sub sistem recovery.
2. Consutency yaitu sebuah transaksi harus menguba basis data dari
satu keadaan konsisten dan Consistency (consistent state) ke keadaan
konsisten lain. Consistency menjadi tanggung jawab Bersama antara
DBMS dan pengembangan program aplikasi.
3. Isolation adalah keadaan dimana transaksi-transaksi
melakukan eksekusi secara bebas atau tidak tergantung sat
sama lain. Sehingga apabila ada efek yang timbul dari
sebuah transaksi yang belum selesai sebaiknya tidak perlu
diketahui transaksi lain.
4. Durability adalah hasil dari suatu transaksi yang sukses
dicatat secara permanen dalam basis data dan tidak boleh
hilang oleh suatu kesalahan apapun.
Thanks

Anda mungkin juga menyukai