Jumat, 18 Oktober 2013

Manajemen Transaksi

  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