Pengontrolan konkurensi merupakan salah satu fungsi dari DBMS. Pada DBMS terpusat yang multiuser, dapat mngakses sejumlah transaksi pada waktu bersamaan. Transaksi disini adalah suatu aksi atau serangkaian aksi yang dilakukan oleh seorang pemakai atau suatu program aplikasi, dimana dapat mengakses atau mengubah isi dari database.
Dua hasil transaksi adalah commit atau rollback.
> Commit adalah operasi yang menyatakan bahwa suatu transaksi sudah terselesaikan / sukse (successful end-of-transaksion).
> Rollback adalah operasi yang menyatakan bahwa suatu transaksi dibatalkan (unsuccessfull end-of-transaction).
Untuk menjamin transaksi-transaksi yang dilakukan bersamaan berjalan sukses tanpa adanya tumpang tindih maka dibutuhkan mekasnisme pengontrolan konkurensi, jika tidak akan timbul permasalahan:
1. Lost Update => permasalahan timbul pada saat operasi update berjalan sukses kemudian ditindih oleh operasi update lain yang dilakukan oleh pemakai lain.
2. Uncommited Depedency => permasalahan timbul pada saat transaksi sibiarkan melihat hasil dari transaksi lain yang belum commit. Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback).
3. Inconsistent Analysis => permasalahan timbul apabila suatu transaksi membaca beberapa nilai tetapi transaksi berikutnya memodifikasi salah satu nilai.
•Teknik Pengontrolan Konkurensi
1. Locking
apabila suatu transaksi mengakses suatu data maka suatu lock (kunci) dapat mencegah pengaksesan oleh transaksi lain.
Konsep dasar:
ketika suatu transaksi memerlukan jaminan kalau record yang diingini tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut.
Fungsi Kunci (Lock):
menjaga record tersebut agar tidak dimodifikasi transaksi lain.
2. Timestamping
DEADLOCK adalah situasi dimana dua atau lebih transaksi masing-masing menunggu (wait) suatu kunci yang ditahan oleh transaksi lain untuk dilepaskan.
Dua teknik menangani Deadlock:
a. Deadlock Prevention, DBMS mengamati transaksi apakah menimbulkan deadlock dan tidak akan membiarkan deadlock terjadi.
b. Deadlock prevention dan recovery, DBMS membiarkan terjadi deadlock, mengenalinya lalu menanganinya.
Tidak ada komentar:
Posting Komentar