1. Pengertian transaksi
Secara sederhana transaksi berarti proses menampilkan dan mengubah data. Menurut Fathansyah transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.
2. Tujuan transaksi
Tujuan dari transaksi adalah menjaga database dari kehilangan data dan kerusakan,seperti system crash dan pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang menimbulkan gangguan.
3. Elemen / sifat pada transaksi
Ada empat elemen/sifat dalam transaksi yang biasa disingkat ACID, yaitu :
Atomicity, semua berhasil atau semua gagal
Consistency, transaksi mempertahankan konsistensi database
Isolation, transaksi terisolasi satu dengan yang lain
Durability, setelah commit update harus survive di database
4. Operasi pada transaksi
a. Commit
Transaksi yang telah berhasil dieksekusi sepenuhnya berada dalam status berhasil (committed). Nilai-nilai berada pada status commited akan bersifat menetap (persistent) dan tidak bisa dikembalikan ke nilai semula.
b. Rollback
Transaksi yang gagal atau terhenti pengeksekusianya akan dianggap belum dikerjakan samasekali dan nilai-nilainya akan dikembalikan
5. Save Point
Save Point merupakan sebuah titik aman, dimana kita telah menyelesaiakan satu atau beberapa transaksi.
Fungsi dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin yang telah dibuat. Sebelumnya.
6. ISOLASI TRANSAKSI
Dalam transaksi database, ada 3 hal yang harus dicegah yaitu.
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.
7. Isolasi
dalam Oracle terdapat 2 level isolasi yang dapat diimplementasikan, yaitu :
a. Read Commited
Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada
data tersebut. (Seperti dalam contoh commit)
b. 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).
9. LOCKING
Locking berfungsi untuk menjaga integritas data. Terdapat dua buah metode locking yaitu :
a. · S-LOCK
Jika transaksi memiliki shared lock pada suatu data, transaksi tersebut hanya bisa melakukan pembacaan.
b. · 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.
11. DEADLOCK
Merupakan situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu Lock dilepas sebelum di mulai (Yudi Wibisono)
Referensi :
- Slide Pak Yudi Wibisono
- Modul Sistem Basis Data 2014
- iambwhy.blogspot.com
- tugasanjarbasisdata.blogspot.com