Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Caca E. Supriana, S.Si.,MT.
[email protected]
L ki M th d Locking Methods y Metoda penguncian menjamin penggunaan
eksklusif k kl f dari d item data ke d k transaksi k yang sedang d berjalan. y Contoh, transaksi Contoh transaksi T2 tidak memiliki akses ke item data yang saat ini sedang digunakan oleh transaksi T1. y Sebuah transaksi akan dikunci sebelum akses data, kunci dilepaskan (unlocked) ketika transaksi k selesai, sehingga l h transaksi k lain dapat l d mengunci item data untuk penggunaan eksklusif selanjutnya. selanjutnya 2
y Penggunaan kunci berdasarkan pada asumsi
bahwa b h konflik k fl k antara transaksi k yang mungkin k terjadi disebut sebagai penguncian pesimis. y Kebanyakan DBMS multiuser secara otomatis memulai dan menegakkan prosedur penguncian. y Semua informasi kunci dikelola oleh ‘lock lock manager’ yang bertanggung jawab untuk menetapkan dan menetapkan kebijakan penguncian yang digunakan d k oleh l h transaksi. k
3
Lock Granularity y Lock Granularity menunjukkan tingkat penggunaan
penguncian. y Kunci K i dapat d b l berlangsung di tingkat i k berikut b ik : database, d b tabel, halaman, baris, atau bahkan field (atribut).
4
Database Level y Dalam kunci tingkat database, seluruh database
terkunci, sehingga mencegah penggunaan setiap tabel dalam database dengan transaksi T2 sementara transaksi Tl sedang dieksekusi. y Tingkat penguncian baik untuk proses batch, tetapi batch tetapi tidak cocok untuk multiuser DBMS.
5
6
Table Level y Dalam kunci level tabel, seluruh tabel terkunci,
mencegah akses ke baris dengan transaksi T2 sedangkan transaksi T1 sedang menggunakan table. table y Jika transaksi membutuhkan akses ke beberapa tabel, setiap tabel dapat dikunci. Namun, dua dikunci Namun dua transaksi dapat mengakses database yang sama selama mereka mengakses tabel yang berbeda.
7
8
Page Level y Dalam kunci level halaman, DBMS akan mengunci
diskpage secara keseluruhan. y Sebuah S b h halaman h l di k disk, atau h l halaman, adalah d l h setara blok disk, yang dapat digambarkan sebagai bagian langsung addressable disk. addressable disk y Sebuah halaman (page) memiliki ukuran tetap, seperti 4K, 8K, atau 16K.
9
10
Row Level y DBMS memungkinkan transaksi konkuren untuk
mengakses baris yang berbeda dari tabel yang sama bahkan ketika baris berada pada halaman yang sama. yang sama y Meskipun pendekatan penguncian tingkat‐baris meningkatkan ketersediaan data, manajemen data manajemen membutuhkan overhead tinggi karena kunci ada untuk setiap baris dalam tabel database yang terlibat dalam transaksi bertentangan.
11
12
Field Level y Kunci tingkat field memungkinkan transaksi
konkuren untuk mengakses baris yang sama selama mereka memerlukan penggunaan berbagai bidang (atribut) dalam baris itu. y Meskipun tingkat field penguncian jelas menghasilkan akses multiuser paling fleksibel data, jarang diimplementasikan dalam DBMS karena memerlukan tingkat yang sangat tinggi pada overhead komputer dan karena kunci baris‐tingkat jauh lebih berguna dalam praktek. praktek 13
Tipe Kunci y Kunci Biner y Kunci Bersama / Exclusive
14
Bi L k Binary Locks y Sebuah kunci biner hanya memiliki dua kondisi:
terkunci (1) atau tidak (0). Jika k () d k terkunci k ( ) k sebuah b h obyek‐yaitu, database, tabel, halaman, atau baris‐dikunci baris dikunci oleh transaksi, tidak transaksi tidak ada transaksi lain dapat menggunakan object. y JJika obyek y tersebut dibuka, transaksi dapat p mengunci objek untuk penggunaannya. Setiap operasi database mensyaratkan bahwa obyek yang terkena t k akan k dikunci. dik i y Sebagai aturan, suatu transaksi harus membuka objek setelah termination. Sehingga, setiap termination Sehingga setiap transaksi memerlukan kunci dan operasi membuka untuk setiap item data yang diakses. 15
Shared / Exclusive Locks y Label "bersama" dan "eksklusif" menunjukkan sifat
kunci. y Kunci K i eksklusif k kl if ada d ketika k ik akses k disediakan di di k khusus kh untuk transaksi yang terkunci objek. Kunci eksklusif harus digunakan ketika potensi konflik ada. ada
16
y Dua‐fase penguncian mendefinisikan bagaimana
transaksi memperoleh dan melepaskan kunci. Dua‐ fase penguncian menjamin serializability, tetapi tidak mencegah deadlock. Kedua fase tersebut adalah: 1. Sebuah fase tumbuh, di mana transaksi memperoleh l h semua kunci k i yang diperlukan di l k tanpa membuka data apapun. Setelah semua kunci telah diperoleh, transaksi p dalam titik terkunci. 2. Sebuah fase menyusut, di mana transaksi melepaskan semua kunci dan tidak dapat memperoleh kunci baru. baru 17
Deadlocks y Kebuntuan terjadi bila dua transaksi menunggu tanpa
batas waktu untuk satu sama lain untuk membuka data. Misalnya, kebuntuan terjadi ketika dua transaksi, T1 dan T2, ada dalam modus berikut: a. T1 = akses data item X dan Y b. T2 = akses data item Y dan X y Jika T1 belum dibuka item data Y, T2 tidak bisa dimulai jika T2 belum dibuka item data X, T1 dimulai, jika item data X T1 tidak dapat dilanjutkan. Akibatnya, T1 dan T2 masing‐ masing menunggu yang lain untuk membuka item d t data yang dibutuhkan. dib t hk 18
19
Tiga teknik dasar untuk mengontrol deadlock : 1. Deadlock prevention. Transaksi 1 Deadlock prevention Transaksi meminta kunci baru dibatalkan bila ada kemungkinan bahwa kebuntuan dapat terjadi. Jika transaksi yang dibatalkan, semua perubahan yang dibuat oleh transaksi ini digulung k b li dan kembali d semua kunci k i yang diperoleh di l h oleh l h transaksi k i dilepaskan. Transaksi ini kemudian dijadwal ulang untuk eksekusi. 2 Deadlock detection. DBMS secara 2. Deadlock detection DBMS secara berkala menguji database untuk kebuntuan. Jika jalan buntu ditemukan, salah satu transaksi ("korban") adalah dibatalkan (digulung kembali dan restart) dan transaksi lainnya terus. 3. Deadlock avoidance. Transaksi ini harus mendapatkan semua kunci yang dibutuhkan sebelum dapat dieksekusi. Teknik dieksekusi Teknik ini untuk menghindari transaksi bergulir kembali dan bertentangan dengan mensyaratkan bahwa kunci diperoleh dalam suksesi. 20
Ti t Timestamp y Timestamp adalah pendekatan untuk
penjadwalan memberikan d l transaksi k konkuren k k b k cap/tanda, waktu global yang unik untuk setiap transaksi transaksi. y Timestamp harus memiliki dua sifat: keunikan dan monotonisitas. y Keunikan akan menjamin bahwa tidak ada nilai waktu yang sama bisa eksis, dan monotonicity memastikan k nilai l waktu k selalu l l meningkat. k
21
D t b R Database Recovery y Pemulihan database mengembalikan database
dari tertentu (biasanya tidak d keadaan k d (b d k konsisten) k ) ke keadaan sebelumnya konsisten. y Teknik pemulihan didasarkan pada transaksi atomik properti : semua bagian dari transaksi harus diperlakukan p sebagai g satu unit, tunggal gg logis dari pekerjaan di mana semua operasi diterapkan dan diselesaikan untuk menghasilkan d t b database yang konsisten. k i t y Jika, untuk beberapa alasan, setiap operasi transaksi tidak dapat diselesaikan, transaksi diselesaikan transaksi harus dibatalkan dan setiap perubahan ke database harus digulung kembali (dibatalkan). 22