Pengertian
Transaksi adalah satu atau beberapa aksi yang dilakukan program aplikasi untuk mengakses atau mengubah isi basis data.
Tujuan
Melindungi database dari kehilangan data dan kerusakan.
Elemen
Atomicity
Semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
Consistency
Eksekusi transaksi harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
Isolation
Jika pada sebuah sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
Durability
Perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem mati.
Operasi
Commit
Menandakan bahwa transaksi telah selesai dilaksanakan.
Rollback
Memberitahukan bahwa transaksi harus diulang karena adanya suatu kegagalan.
Hal Yang Harus Dicegah
Dirty Read
Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.
Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.
Non-Repeatable Read
Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya
Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya
Phantom Read
Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.
Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.
Level Isolasi
Read Commited
Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada data tersebut.
Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada data tersebut.
Serializable
Level ini mengemulasikan eksekusi transaksi secara serial.
Level ini mengemulasikan eksekusi transaksi secara serial.
Untuk mengaplikasikannya:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Lock Protocol
Shared Lock (S-LOCK)
Jika transaksi memiliki shared lock pada suatu data, transaksi tersebut hanya bisa melakukan pembacaan.
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.
Bagi transaksi yang memiliki exclusive lock pada suatu data, transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut.
Penguncian Level Tabel
LOCK TABLE [nama tabel];
Penguncian Level Baris
Penguncian level baris hanya berlaku untuk operasi UPDATE dan DELETE.
Deadlock
Situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu Lock dilepas sebelum di mulai.
----------------------------------------------
Referensi :
- Slide Pak Yudi Wibisono
- Modul Sistem Basis Data 2012
- Modul Sistem Basis Data 2014
- Slide Pak Yudi Wibisono
- Modul Sistem Basis Data 2012
- Modul Sistem Basis Data 2014