Nim : 12410100103
Nama : Aditya Hendrawan
Resume PBD Presentasi 6
Transaction and Locking
Sebuah
transaksi dalam database dapat mengubah satu atau beberapa record dalam banyak tabel
perubahan ini merupakan sebuah operasi atomic, artinya sebuah transaksi harus
berhasil, atau tidak sama sekali. Apabila tidak berhasil maka kondisi database
harus sama dengan kondisi pada transaksi belum berlangsung.
Contoh Syntax dalam T-SQL :
Begin transaction[nama-transaksi]
Untuk memulai transaksi
Commit transaction[nama-transaksi]
Untuk mengakhiri transaksi
Save transaction[nama-transaksi]
Untuk membuat save point
Rollback transaction [nama-transaksi/nama savepoint]
Untuk mengembalikan kondisi database seperti pada saat sebelum begin transaction.
Secara implisit bila kunci kata tersebut tidak diberikan, maka sistem melakukan begin dan commit setiap kali diadakan perubahan data.
Insert into tb_mahasiswa
Values('ADITYA','100','INDONESIA')
Secara Otomatis sistem melakukan :
begin transaction
insert into tb_mahasiswa
Values('ADITYA','100','INDONESIA')
Commit transaction
Bila sistem telah menggunakan "commit", maka kondisi database menjadi permanen dan tidak dapat dibalikan lagi (undo/rollback).
Save Point
Save point adalah batu loncatan untuk transaksi dimana kondisi database dapat dikembalikan keposisi saat savepoint dibuat. semua perubahan yang melewati savepoint tersebut akan dibuat permanen.
Akses MultiUser
Bila banyak pemakai mengakses database dalam waktu yang bersamaan, maka aplikasi harus menghindari terjadinya inkonsistensi database.
Macam-macam akses multiuser
1. Membuka database/tabel untuk menggunakannya secara eklusif
2. Mekanisme locking
3. Mengendalikan error karena locking
Jangkauan Locking
1. Database locking (Single user mode)
2. Table Locking
3. Page Locking
4. Row Locking
5. Extent Locking
6. Intent locking (Spesial table lock, indikasi bagi tabel page lock sedang dilakukan)
Tipe Lock :
Shared Lock :
a. Digunakan untuk membaca data (retrieval only) dan tidak dapat mengubah data apapun.
b. Dibuat pada level page atau table lock.
Update Lock :
a. Digunakan untuk inisialisasi dari operasi update
b. Kompatible dengan shared lock, artinya update lock dapat dilaksanakan walaupun terdapat shared lock
c. Berubah menjadi "Eksklusif lock" bila "pages" diubah (updated).
Eksklusif Lock
a. Digunakan untuk operasi insert, update, delete
b. Dilakukan pada level "page" atau "table" lock
Row Lock
Row lock adalah off, yaitu bahwa locking dilakukan dalam page yang dapat berisi satu atau beberapa row.
untuk mengaktifkan row_lock, digunakan sp_tableoption.
Contoh :
exec sp_tableoption 'kursus', insert row lock','true'
Untuk mengembalikannya, gunakan false pada tempat true
Komentar
Posting Komentar