Transaksi adalah urutan dari operasi database ketika mengakses ke database. Transaksi direpresentasikan pada kejadian nyata. Transaksi harus merupakan unit logim dari suatu pekerjaan.Tak ada bagian dari transaksi yang dapat melakukan hal tersebut sendiri. Baik semua bagian berhasil dieksekusi ataupun transaksi tersebut dibatalkan. Transaksi mengambil database dari satu konsisten status ke status yang lain. Konsisten status database adalah ketika semua integrity constraint dari data telah terpenuhi.
Transaksi memiliki 4 bagian utama :
1. Atomisitas (semua bagian dari transaksi dapat dieksekusi meskipun transaksi dibatalkan)
2. Konsistensi (Kekonsistensian database dapat terjaga)
3. Isolasi (data yang diguanakan oleh satu transaksi tidak dapat diakses oleh transaksi lainnya transaksi pertama tersebut selesai)
4. Daya tahan (Perubahan yang dibuat oleh transaksi tidak dapat roll back ketika telah mengalami commit )
5. Sebagai tambahan, jadwal transaksi memerlukan cirri seriabilitas (hasil dari konkurensi suatu transaksi sama ketika transaksi tersebut dieksekusi pada serial order)
Sebelum dilanjutkan, mari kita membahas empat konsep penting yang mempengaruhi proses recovery :
1. Write-ahead-log protocol memastikan bahwa log transaksi slalu ditulis sebelum data dalam database ter-update. Dalam kasus kegagalan, database dapat terlambat untuk direcovery pada status yang konsisten. Gunakan data yang ada di transaction log.
2. Redudant transaction logs (bebertapa duplikat dari transaction log) memastikan bahwa kegagalan physical disk tidak akan merusak kemampuan DBMS untuk melakukan recovery data.
3. Database Buffer adalah area penyimpanan sementara dalam memory utama yang digunakan untuk mempercepat kerja disk. Untuk meningkatkan waktu proses, software DBMS ,membaca data dari physical disk dan menyimpan duplikat dari data ke buffer di memory utama. Ketika transaksi mengupdate data, hal inisecara otomatis juga mengupdate kopian dari data yang ada dalam buffer karena proses tersebut cukup lebih cepat daripada pengaksesan physical disk dalam setiap waktu. Kemudian, semua buffer yang mengandung update data yang dituis pada physical disk selama operasi tunggal, demikianlah proses penyiimpanan secara signifik.
4. Database checkpoints adalah operasi dimana DBMS menuliskan semua pembaruan pada buffer ke disk. Selama hal ini terjadi, DBMS tidak mengeksekusi permintaan lainnya.Operasi checkpoints juga terdaftar dalam transaction log. Hasil dari operasi ini adalah physical database dan transaction log akan menjadi sinkron. Sinkronisasi ini dibutuhkan karena peng-update-an operasi akan meng-update kopian dari dat6a dalam buffer dan bukan pada physical database. Checkpoints secara otomatis dijadwalkan oleh DBMS beberapa waktu tiap jam.
Proses recovery database melibatkan pembawaan database ke status konsisten setelah mengalami kegagalan. Prosedur transaction recovery umumnya digunakan untuk deffered-write dan write-through technique.
Ketika prosedur recovery menggunakan deffered-write technique (differed update), operasi transaksi tidak secara tiba-tiba mengupdate physical database. Malah hanya transaction log yang di-update. Database secara fisik mengalami pembaruan hanya setelah transaksi mengalami commit, menggunakan informasi dari transaction log. Jika transaksi gagal sebelum mengalami commit, tidak ada perubahan (roolback atau undo) yang perlu dilakukan pada database karena database tidak pernah ter-update. Proses recovery untuk pemulaian dan transaksi commit (sebelum gagal) :
1. Mengidentifikasi checkpoint trakhir yang ada dalam transaction log. Ini adalah waktu terakhir dari transaksdi data secara fisik ayng disimpan dalam disk.
2. Untuk transaksi yang dimulai dan telah dicommit sebelum checkpoint terakhir, tidak membutuhkan operasi apapun kaena dta telah tersimpan.
3. Untuk transaksi yang melakukan operasi commit setelah checkpoint terakhir, DBMS menggunakan transaction log record untuk melakukan operasi redo dan update database, menggunakan nilai ‘after’ dalam transaction log . Perubahan dibuat dalam bentuk ascending, dari yang terlama ke yang terbaru.
4. Untuk operasi-operasi yang menggunakan operasi ROLLBACK setelah checkpoint terakhir atau tidak melakukan operasi (COMMIT ataupun ROLLBACK) sebelum kegagalan terjadi. Tidak ada hal yang eprlu dilakuakn karena database tidak mengalami peng-update-an.
Ketika prosedur recovery menggunakan write-through technique (immediate update), database langsung mengalami peng-update-an oleh operasi transaksi selama eksekusi, bahkan sebelum transaksi memperoleh perintah commit.Jika transaksi gagal sebelum commit, ROOLBACK atau operasi undo perlu dilakukan untuk mengembalikan database ke status konsisten. Pada kasus ini, operasi ROOLBACK akan sigunakan oleh nilai ‘after’ transaction log. Adapun langkah dari recovery:
1. Mengidentifikasi checkpoint terakhir di dalam transaction log. Dalam hal ini waktu terakhir transaksi data dimana secara fisik data disimpan.
2. Untuk transaksi yang dimulai dan mengalami commit sebelum checkpoint terakhir, tidak perlu melkaukan operasi apaun karena data telah tersimpan.
3. Untuk transaksi yang telah mnengalami commit setelah checkpoint terakhir, DBMS me-redo transaksi,menggunakan nilai ‘after’ dari transaction log. Perubahann akan ditampilkan secara ascending, dari terlama ke yang terbaru.
4. Untuk transaksi lain yang telah mengalami operasi ROLLBACK setelah chechpoint terakhir atau tidak melakukan operasi apapun (ROLLBACK atau COMMIT) sebelum kegagalan terjadi, DBMS menggunakan transcation log record untuk melakukan ROLLBACKa atu operasi undo, Menggunakan nilai ‘before’ pada transaction log. Perubahan ditampilkan dalam bentuk simpanan, dari yang terbaru ke yang terlama.
Tidak ada komentar:
Posting Komentar