Definisi Log Transaksi dalam DBMS
Log transaksi dalam sistem manajemen basis data (DBMS) adalah file riwayat atau catatan berurutan yang merekam setiap perubahan yang dilakukan terhadap data di dalam basis data. Log ini berfungsi sebagai mekanisme krusial untuk memastikan integritas data, terutama dalam skenario pemulihan sistem (recovery) jika terjadi kegagalan perangkat keras atau perangkat lunak.
Dalam operasionalnya, log transaksi mencatat status sebelum (before-image) dan sesudah (after-image) dari setiap operasi modifikasi data. Hal ini memungkinkan DBMS untuk melakukan proses undo (pembatalan) jika transaksi gagal, atau redo (pengulangan) jika sistem mengalami gangguan sebelum perubahan permanen tersimpan di media penyimpanan utama.
Hubungan Log Transaksi dengan Prinsip ACID
Log transaksi merupakan implementasi teknis dari prinsip ACID (Atomicity, Consistency, Isolation, Durability). Tanpa adanya log, DBMS akan kesulitan menjamin bahwa transaksi yang sedang berlangsung tidak diakses oleh transaksi lain sebelum statusnya berhasil atau gagal. Log memastikan bahwa setiap transaksi bersifat atomik; artinya, seluruh rangkaian operasi dalam satu transaksi harus berhasil sepenuhnya atau tidak sama sekali.
| Fitur ACID | Peran Log Transaksi |
|---|---|
| Atomicity | Mencatat titik awal dan akhir transaksi untuk memastikan keberhasilan penuh. |
| Consistency | Memastikan basis data berpindah dari satu status valid ke status valid lainnya. |
| Isolation | Mencegah akses data yang belum terkomit (uncommitted) oleh transaksi lain. |
| Durability | Menjamin perubahan yang sudah terkomit tetap tersimpan meski terjadi kegagalan sistem. |
Perbedaan Log Transaksi dengan Audit Log
Penting untuk membedakan antara log transaksi (DBMS-resident) dengan pemantauan aktivitas basis data (Database Activity Monitoring). Log transaksi adalah bagian integral dari arsitektur internal DBMS yang digunakan untuk pemulihan data. Sebaliknya, pemantauan aktivitas basis data sering kali beroperasi secara independen dari log asli atau jejak audit internal untuk tujuan keamanan dan kepatuhan (compliance) tanpa bergantung pada mekanisme internal DBMS itu sendiri.
Pentingnya Log dalam Operasi SQL
Saat pengguna menjalankan perintah SQL, DBMS tidak langsung mengubah data fisik secara permanen. Sistem akan melakukan perencanaan, optimasi, dan menjalankan operasi fisik yang dicatat terlebih dahulu dalam log transaksi. Proses ini memastikan bahwa jika terjadi interupsi di tengah eksekusi perintah SQL, DBMS memiliki referensi untuk mengembalikan basis data ke kondisi stabil sebelum perintah tersebut dijalankan.
Langkah Pemulihan Berbasis Log
- Identifikasi Kegagalan: Sistem mendeteksi adanya ketidakkonsistenan data setelah restart.
- Analisis Log: DBMS membaca log transaksi untuk menentukan transaksi mana yang belum selesai (uncommitted).
- Undo/Redo: Melakukan pembatalan pada transaksi yang tidak lengkap dan memastikan transaksi yang sudah terkomit telah tertulis secara fisik di disk.