Transaction Management pada Oracle Database

Boby Siswanto
Nov 19, 2020

Orace Database seperti database relasional lainnya memiliki keunggulan yaitu memiliki DBMS yang menerapkan ACID. ACID menjamin Consistency, Integrity dan Durability data di dalam database sehingga membuat user penggunanya merasa aman dan nyaman. Terkadang terdapat proses transaksi yang tidak normal sehingga menyebabkan beberapa masalah seperti lost update atau dead lock ketika beberapa user secara bersamaan mengakses data yang sama. Sebenarnya walaupun terjadi lost update ataupun dead lock, DBMS sudah memiliki mekanisme untuk mencegah hal tersebut terjadi seperti 2PL lock ataupun serializing. Sebenarnya apa yang dilakukan oleh DBMS untuk mencegah masalah seperti lost update atau dead lock terjadi?

Oracle 11g memiliki 2 jenis transaction isolation level yaitu Read Committed dan Serializable. Secara default transaction isolation pada Oracle adalah Read Committed, yaitu ketika sebuah session melakukan Insert/Update/Delete pada sebuah data dilanjutkan dengan commit maka session lain akan secara otomatis membaca data yang sama. Terdapat Row Level Lock (TX) dan Table Level Lock (TM). Video ini memberikan contoh jelas tentang transaksi yang terjadi ketika proses locking terjadi.

Video berikut memberikan ilustrasi akan hal yang terjadi ketika beberapa user secara bersamaan mengakses data yang sama. Pada video tersebut akan diberikan ilustrasi 1 user admin memonitor proses lock yang terjadi ketika 2 user bersama-sama mengakses data di tabel yang sama.

Oracle database memiliki 6 LMODE (Lock mode) yaitu:

  • 0 - none
  • 1 - null (NULL)
  • 2 - row-S (SS)
  • 3 - row-X (SX)
  • 4 - share (S)
  • 5 - S/Row-X (SSX)
  • 6 - exclusive (X)

Originally published at http://jeblog.net.

--

--

Boby Siswanto

Lulusan S2 Teknik Informatika Universitas Telkom dengan peminatan data mining. Saat ini aktif sebagai dosen di Universitas Bina Nusantara @Bandung.