School of Information Systems

Transaction Management (part 3) – Serializability

Pada artikel sebelumnya, kita sudah sama-sama belajar mengenai Concurrency Control. Dimana transaksi dijalankan secara simultan. Mengapa transaksi butuh dijalankan secara simultan? Idealnya satu transaksi dijalankan terlebih dahulu baru transaksi lain jalan (Serial). Tapi dengan resource yang ada, akan lebih cepat kalau transaksi dapat dijalankan dengan simultan (Non-Serial).

Nah, skema untuk memastikan transaksi dapat dijalankan secara simultan dan menghasilkan hasil yang konsisten dinamakan Serializability. Sebelum masuk pembahasan Serializability, kita terlebih dulu mempelajari schedule.

Schedule

            Sequence of reads/writes by set of concurrent transactions.

Serial Schedule

            Schedule where operations of each transaction are executed consecutively without any interleaved operations from other transactions.

Schedule adalah gabungan transaksi yang dijalankan secara simultan. Serial Schedule adalah gabungan transaksi yang dijalankan sercara serial. Tidak ada jaminan bahwa hasil dari semua eksekusi serial dari rangkaian transaksi tertentu akan memiliki hasil yang identik.

Tujuan serializability adalah untuk menemukan schedule yang nonserial dan memungkinkan transaksi untuk dijalankan secara bersamaan tanpa mengganggu satu sama lain. Dengan kata lain, kita ingin mencari schedule nonserial yang setara dengan beberapa schedule serial. Schedule tersebut dinamakan serializable.

Dalam serializability, urutan operasi(read/write) sangat penting:

  1. Jika dua transaksi hanya membaca satu data yang sama, transaksi tersebut tidak konflik dan urutan operasi tidak penting.
  2. Jika dua transaksi membaca atau menulis data yang berbeda, keduanya tidak konflik dan urutan operasi tidak penting.
  3. Jika satu transaksi menulis data dan transaksi lainnya membaca atau menulis data yang sama, urutan eksekusi penting.

Nah, sekarang kita sudah mengerti konsep agar Concurrency Control agar dapat berjalan dengan baik dipastikan dengan Serializability. Artikel setelah ini kita akan bahas mengenai jenis-jenis Serializabilty yang ada.