DDBMS - Sistem Pemrosesan Transaksi

Bab ini membahas berbagai aspek pemrosesan transaksi. Kami juga akan mempelajari tugas tingkat rendah yang termasuk dalam transaksi, status transaksi, dan properti transaksi. Di bagian terakhir, kita akan melihat jadwal dan serialisasi jadwal.

Transaksi

Transaksi adalah program yang mencakup kumpulan operasi database, yang dijalankan sebagai unit logis dari pemrosesan data. Operasi yang dilakukan dalam transaksi mencakup satu atau beberapa operasi database seperti memasukkan, menghapus, memperbarui, atau mengambil data. Ini adalah proses atom yang dilakukan hingga selesai seluruhnya atau tidak dilakukan sama sekali. Transaksi yang hanya melibatkan pengambilan data tanpa pembaruan data apa pun disebut transaksi hanya baca.

Setiap operasi tingkat tinggi dapat dibagi menjadi sejumlah tugas atau operasi tingkat rendah. Misalnya, operasi pembaruan data dapat dibagi menjadi tiga tugas -

  • read_item() - membaca item data dari penyimpanan ke memori utama.

  • modify_item() - ubah nilai item di memori utama.

  • write_item() - tulis nilai yang diubah dari memori utama ke penyimpanan.

Akses database dibatasi untuk operasi read_item () dan write_item (). Demikian pula, untuk semua transaksi, membaca dan menulis membentuk operasi basis data dasar.

Operasi Transaksi

Operasi tingkat rendah yang dilakukan dalam transaksi adalah -

  • begin_transaction - Sebuah penanda yang menentukan awal dari eksekusi transaksi.

  • read_item or write_item - Operasi database yang mungkin disisipkan dengan operasi memori utama sebagai bagian dari transaksi.

  • end_transaction - Penanda yang menentukan akhir transaksi.

  • commit - Sinyal untuk menentukan bahwa transaksi telah berhasil diselesaikan secara keseluruhan dan tidak akan dibatalkan.

  • rollback- Sinyal untuk menentukan bahwa transaksi tidak berhasil dan semua perubahan sementara dalam database dibatalkan. Transaksi yang berkomitmen tidak dapat dibatalkan.

Status Transaksi

Sebuah transaksi dapat melalui subset dari lima status, aktif, berkomitmen sebagian, berkomitmen, gagal, dan dibatalkan.

  • Active- Keadaan awal di mana transaksi masuk adalah keadaan aktif. Transaksi tetap dalam status ini saat menjalankan operasi baca, tulis, atau lainnya.

  • Partially Committed - Transaksi memasuki keadaan ini setelah pernyataan terakhir dari transaksi telah dieksekusi.

  • Committed - Transaksi memasuki keadaan ini setelah berhasil menyelesaikan transaksi dan pemeriksaan sistem telah mengeluarkan sinyal komit.

  • Failed - Transaksi beralih dari status sebagian berkomitmen atau status aktif ke status gagal ketika ditemukan bahwa eksekusi normal tidak dapat lagi dilanjutkan atau pemeriksaan sistem gagal.

  • Aborted - Ini adalah keadaan setelah transaksi dibatalkan setelah kegagalan dan database telah dikembalikan ke keadaan semula sebelum transaksi dimulai.

Diagram transisi status berikut menggambarkan status dalam transaksi dan operasi transaksi tingkat rendah yang menyebabkan perubahan status.

Properti Transaksi yang Diinginkan

Setiap transaksi harus menjaga properti ACID, yaitu. Atomicity, Konsistensi, Isolasi, dan Daya Tahan.

  • Atomicity- Properti ini menyatakan bahwa transaksi adalah unit atom pemrosesan, yaitu, dilakukan secara keseluruhan atau tidak dilakukan sama sekali. Tidak ada pembaruan parsial yang harus ada.

  • Consistency- Transaksi harus membawa database dari satu status konsisten ke status konsisten lainnya. Ini seharusnya tidak mempengaruhi item data dalam database.

  • Isolation- Sebuah transaksi harus dijalankan seolah-olah itu adalah satu-satunya transaksi di sistem. Seharusnya tidak ada gangguan apa pun dari transaksi bersamaan lainnya yang berjalan secara bersamaan.

  • Durability - Jika transaksi yang dilakukan menghasilkan perubahan, perubahan itu harus tahan lama dalam database dan tidak hilang jika terjadi kegagalan.

Jadwal dan Konflik

Dalam sistem dengan sejumlah transaksi simultan, a scheduleadalah total urutan pelaksanaan operasi. Diberikan skedul S yang terdiri dari n transaksi, misalnya T1, T2, T3 ……… ..Tn; untuk setiap transaksi Ti, operasi di Ti harus dijalankan seperti yang ditetapkan dalam jadwal S.

Jenis Jadwal

Ada dua jenis jadwal -

  • Serial Schedules- Dalam jadwal serial, di setiap titik waktu, hanya satu transaksi yang aktif, yaitu tidak ada transaksi yang tumpang tindih. Ini digambarkan dalam grafik berikut -

  • Parallel Schedules- Dalam jadwal paralel, lebih dari satu transaksi aktif secara bersamaan, yaitu transaksi berisi operasi yang tumpang tindih pada waktu. Ini digambarkan dalam grafik berikut -

Konflik dalam Jadwal

Dalam jadwal yang terdiri dari beberapa transaksi, a conflictterjadi ketika dua transaksi aktif melakukan operasi yang tidak kompatibel. Dua operasi dikatakan berkonflik, jika ketiga kondisi berikut terjadi secara bersamaan -

  • Kedua operasi tersebut merupakan bagian dari transaksi yang berbeda.

  • Kedua operasi mengakses item data yang sama.

  • Setidaknya salah satu operasi adalah operasi write_item (), yaitu mencoba mengubah item data.

Serializability

SEBUAH serializable scheduledari transaksi 'n' adalah jadwal paralel yang setara dengan jadwal serial yang terdiri dari transaksi 'n' yang sama. Jadwal yang dapat diserialkan berisi kebenaran jadwal serial sambil memastikan penggunaan CPU yang lebih baik dari jadwal paralel.

Kesetaraan Jadwal

Persamaan dua jadwal dapat dari jenis berikut -

  • Result equivalence - Dua jadwal yang menghasilkan hasil yang identik dikatakan setara hasil.

  • View equivalence - Dua jadwal yang melakukan tindakan serupa dengan cara serupa dikatakan setara tampilan.

  • Conflict equivalence - Dua jadwal dikatakan setara konflik jika keduanya berisi set transaksi yang sama dan memiliki urutan yang sama dari pasangan operasi yang berkonflik.