Pengertian
Proses yang dilakukan sebuah aplikasi untuk mengakses atau mengubah isi
dari database.
Dengan kata lain transaksi sangat
terkait dengan program yang melakukan pengaksesan/pengeksekusian data yang
terdapat pada database ,Dengan demikian DBMS yang kita gunakan harus bisa
menjamin bahwa setiap transaksi yang terjadi harus di kerjakan secara utuh atau
bahkan tidak sama sekali di kerjakan agar tidak terjadinya inkonsistensi basis
data.
Sifat – Sifat yang
harus di miliki Transaksi
Transaksi bertujuan agar tidak
adanya data yang hilang ataupun rusak , sebuah transaksi berpeluang untuk
mengganggu keintegritasan basis data yang dapat membuat kondisi/hubungan antar
data tidak seperti seharusnya. Oleh karena itu maka transaksi harus memenuhi
sifat sifat berikut :
a. Automicity -> Seluruh operasi dapat
di kerjakan seluruhnya atau tidak sama sekali.
b. Consitency -> Eksekusi transaksi
harus dapat menjamin data tetap konsisten setelah transaksi selesai.
c. Isolation -> Ketika ada transaksi yang bersamaan
dalam satu waktu harus dapat dimulai dan dapat berakhir.
d. Durability ->Jika sebuah transaksi
berakhir dengan baik ,maka perubahan datanya harus bisa bertahan bahkan jika
seandainya system mati.
Operasi Transaksi
Untuk menjaga ketahanan data dan
integritas data pada basis data ketika transaksi berjalan maka adanya dua
perintah yang bertugas untuk melakukan hal tersebut.
1. Commit
= Menandakan bahwa transaksi telah selesai di laksanakan.
2. Rollback
= Memberitahukan bahwa transaksi harus diulang karena adanya suatu kegagalan.
Save Point
Secara
sederhana savepoint merupakan sebuah titik aman , dimana kita telah
menyelesaikan satu atau beberapa transaksi , ini di maksudkan ketika kita
melakukan transaksi dan ternyata terjadi sebuah eror ketika transaksi gagal
maka tidak perlu rollback dari awal kembali namun bisa memulai dari titik
savepoint yang telah kita buat sebelumnya.
Isolasi Transaksi
3
hal yang harus di cegah dalam transaksi database
:
a.
Dirty
Read : Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut
berjalan
bersamaan.
b.
Non-Repeatable
Read : Transaksi membaca
ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya.
c.
Phantom
Read
: Transaksi
membaca sebuah data yang telah
hilang akibat dari
transaksi yang
lainnya.
Untuk mencegah 3 hal tersebut, maka pada Oracle terdapat 2 level isolasi yang dapat
diimplementasikan, yaitu :
1.
Read Commited
-> Transaksi hanya dapat melihat
perubahan data setelah transaksi lain telah commit
pada data tersebut. (Seperti
dalam
contoh commit)
2. Serializable
-> Adalah level isolasi yang menyediakan isolasi transaksi yang paling
ketat. Level ini mengemulasikan eksekusi transaksi secara serial, menjadikan transaksi dieksekusi satu
setelah yang lainnya,seperti secara serial, bukan secara bersamaan (pararel). Tetapi
aplikasi yang menggunakan level isolasi ini harus bersedia untuk mengulangi transaksi
dikarenakan kegagalan pengserialan transaksi.
Pada transaksi database, dikenal
istilah locking yang berfungsi untuk menjaga integritas data. Terdapat dua
buah metode locking yaitu
:
Ø
Shared Lock (S-LOCK)
Jika transaksi memiliki shared lock pada suatu data,
transaksi tersebut hanya bisa melakukan
pembacaan.
Ø Exclusive Lock (X-LOCK)
Bagi
transaksi yang memiliki exclusive lock pada suatu data, transaksi tersebut dapat
melakukan perubahan dan
pembacaan terhadap data
tersebut.
Untuk shared lock,
dapat dimiliki oleh beberapa transaksi dalam
satu waktu, namun untuk
exclusive lock, hanya
dapat dimiliki oleh satu transaksi pada satu
waktu.
Penguncian level Tabel
Penguncian yang berfungsi untuk mengunci suatu tabel untuk mencegah perubahan atau
penghapusan tabel selama
ada
transaksi yang menggunakan tabel
tersebut.
Penguncian level baris
Penguncian yang dilakukan pada baris (ROW) yang sedang digunakan
oleh suatu transaksi sampai transaksi tersebut selesai dilakukan. Penguncian level baris hanya berlaku untuk operasi
UPDATE dan DELETE.
Deadlock
Merupakan situasi dimana dua atau lebih
transaksi dalam kondisi wait-state, satu sama lain menunggu Lock dilepas sebelum
di mulai.
Tidak ada komentar:
Posting Komentar
Silakkan kritik kekurangan kami