adalah sebuah aksi atau serangkaian aksi, yang
dilakukan oleh user atau aplikasi yang mengakses atau mengubah isi dari
database. Atau dapat juga dikatakan
sebagai unit kerja logical (Logical unit of work) dari suatu database Program
aplikasi merupakan serangkaian transaksi tanpa pengolahan database didalamnya. Transaksi
selalu merubah database dari satu stata konsisten ke stata lainnya, walaupun
konsistensi data dapat terganggu selama transaksi berjalan.
4 sifat dasar dari transaksi (ACID, Haerder and Reuter,
1983) :
•
Atomicity(keutuhan)
Transaksi merupakan unit yang tidak terlihat
yang harus dilakukan secara keseluruhan atau tidak sama sekali.
•
Consistency
(Ketetapan)
Transaksi
harus mengubah database dari satu stata konsisten ke stata lainnya/ berikutnya.
•
Isolation (Pemisahan)
Transaksi
dieksekusi secara terpisah dari yang satu dengan yang lainnya.
•
Durability (Daya tahan)
Secara permanen direkam kedalam
database dan tidak akan hilang dikarenakan kegagalan berikutnya.
Subsistem Transaksi DBMS (DBMS Transaction Subsystem)
•
Transaction Manager mengkoordinasikan transaksi untuk kepentingan
program aplikasi, yang saling berkomunikasi dengan scheduler.
•
Scheduler yaitu modul yang bertanggung jawab mengenai
implementasi strategi khusus untuk kontrol concurrency.
•
Tujuan dari scheduler adalah
memaksimalkan concurrency tanpa memungkinkan transaksi yang sedang dieksekusi
untuk mempengaruhi/ saling mempengaruhi dengan transaksi lainnya.
Status-status
yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga
selesai atau batal adalah:
1. Aktif (Active), yang
merupakan status awal (initial state) sebuah transaksi yang menunjukkan
transaksi tersebut masih dieksekusi.
2. Berhasil
Sebagian (Partially Committed), yaitu keadaan yang dicapai
transaksi tepat pada saat operasi terakhir dalam transaksi selesai dikerjakan.
3. Gagal
(Failed), yang merupakan keadaan dimana sebuah transaksi
terhenti pengeksekusiannya sebelum tuntas sama sekali.
4. Batal
(Aborted), yaitu keadaan dimana sebuah transaksi dianggap
tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan
mengembalikan semua data yang telah diubah ke nilai-nilai semula. (yang menjadi
tanggung jawab DBMS).
5. Berhasil
Sempurna (Committed), keadaan dimana transaksi telah dinyatakan
berhasil dikerjakan seluruhnya dan basis data telah merefleksikan
perubahan-perubahan yang memang diinginkan transaksi.
Diagram
berikut ini menunjukkan aliran dan siklus peralihan status (state) dari sebuah
transaksi:
Ketika sebuah
transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif. Jika terjadi penghentian sebelum operasi
berakhir, maka transaksi segera beralih ke status gagal/failed. Namun, bila keseluruhan transaksi selesai
dikerjakan, maka transaksi itu berada pada status berhasil
sebagian/partially committed, dimana perubahan-perubahan data masih berada
di dalam memori utama yang bersifat volatile/tidak permanen. Transaksi dalam status ini masih mungkin
untuk pindah ke status failed, karena ada pembatalan transaksi baik sengaja
maupun tidak. Jika tidak beralih ke
status failed, maka nilai-nilai data yang ada di memori utama akan direkam ke
dalam disk yang bersifat permanen.
Begitu proses perekaman selesai, maka transaksi beralih ke status committed. Sementara itu, transaksi yang berada pada
status failed, maka DBMS harus menjalan proses rollback. Proses tersebut dapat berupa:
·
Mengulangi pelaksanaan transaksi / restart,
yang dilakukan pada transaksi yang failed akbiat kemacetan perangkat keras ataupun
perangkat lunak dan bukannya penghentian transaksi secara sengaja oleh user.
·
Mematikan transaksi / kill, yang
dilakukan untuk transaksi yang dihentikan secara sengaja oleh user atau akibat
adanya kesalahan lojik dalam penulisan aplikasi.
Begitu salah satu dari
pilihan proses tersebut selesai dilakukan, maka transaksi berpindah ke status
batal (aborted). Status berhasil sempurna/committed maupun batal/aborted
merupakan status terminasi, yaitu status akhir dalam pelaksanaan transaksi.
Tidak ada komentar:
Posting Komentar