Halo kawan-kawan yang yang luar biasa, apa kabarnya? Dor..dor..dor,
sekarang pada kesempatan ini saya akan coba membahas sedikit tentang manajemen
transaksi pada database, menurut saya hal ini penting, karena teorinya sangat
relevan dengan praktek pada saat manajemen transaksi database :D, yuk
kawan-kawan segera kita bahas.
Transaksi adalah aksi atau serangkaian aksi, yang dilakukan
oleh pengguna atau aplikasi yang mengakses atau mengubah isi dari databse. Sebuah
transaksi adalah unit kerja logikal dari suatu database. Sedangkan program
aplikasi merupakan serangkaian transaksi tanpa pengolahan database di dalamnya.
Transaksi selalu mengubah database dalam 1 keadaan yang konsisten ke keadaan
konsisten lainnya, walaupun terjadi pelanggaran konsistensi data selama
transaksi berjalan.
Transaksi dapat menghasilkan salah satu ouput berikut :
- Sukses / Commited, transaksi dikatakan sukses / commited dan database mencapai keadaan baru. Transaksi yang sudah commited tidak dapat digagalkan.
- Gagal / Aborted, transaksi dikatakan gagal / aborted dan database harus dikembalikan ke keadaan sebelum dilakukan transaksi. Transaksi seperti ini disebut rollback atau undone. Transaksi yang digagalkan akan dapat dilakukan rollback yang menyebabkan kembali dilakukannya transaksi.
Sifat sifat dari transaksi dikenal dengan istilah ACID yaitu
:
- Atomicity / keutuhan, dimana transaksi merupakan unit yang tidak terlihat yang harus dilakukan secara keseluruhan atau tidak sama sekali. Hal ini merupakan tanggung jawab dari subsistem recovery suatu database untuk memastikan atomicity.
- Consistency / ketetapan, dimana transaksi harus mengubah database dari suatu strata konsisten ke keadaan selanjutnya. Hal ini merupakan tanggung jawab dari Database Management System (DBMS) dan pembuat aplikasi untuk memastikan keadaan konsistensi. DBMS dapat memastikan konsistensi dengan menjalankan semua batasan-batasan, seperti batasan integrity dan enterprise.
- Isolation (Pemisahan), dimana transaksi dieksekusi secara terpisah dari yang satu dengan yang lainnya. Dengan kata lain, akibat terpisah dari transaksi yang tidak lengkap, transaksi tersebut harus tidak dapat dilihat oleh transaksi yang lain. Hal ini merupakan tanggung jawab dari subsistem kontrol concurency untuk memastikan pemisahan.
- Durability (Daya Tahan), dimana akibat dari transaksi yang lengkap, yaitu secara permanen direkam ke dalam database, transaksi tersebut tidak akan hilang, karena kegagalan berikutnya. Hal tersebut merupakan tanggung jawab dari subsistem recovery untuk memastikan durability.
Nah setelah mengenal ACID, yuk sekarang mari kita mengenal
Control Concurrency kawan-kawan, dimana Control Concurrency merupakan proses
pengaturan operasi yang simultan pada database tanpa menyebabkan salaing
mempengaruhi antara 1 dengan yang lainnya. Akses bersamaan tidak akan
bermasalah jika pengguna haya melakukan pembacaan data saja. Gangguan akan
terjadi jika 2 pengguna atau lebih pengguna mengkases databse secara simultan,
dan sedikitnya melakukan satu perubhan pada data, maka dapat menyebabkan tidak
konsisten. Walaupun masing-masing transaksi tersebut secara terpisah benar,
tetapi secara keseluruhan akan memberikan hasil yang salah. Terdapat tiga
potensial yang disebakan oleh concurrency yaitu :
- Lost Update Problem, dimana terjadi karena pengubahan yang dilakukan oleh pengguna pertama diubah oleh pengguna yang lain.
- Uncommitted Dependency Problem, dimana masalah terjadi jika 1 transaksi (transaksi pertama) membaca hasil dari transaksi lainnya (transaksi kedua) sebelum transaksi kedua dinyatakan commited. Biasa dikenal dengan dirty read problem.
- Inconsistent Analyst Problem, dimana terjadi ketika transaksi pertama membaca beberapa nilai tetapi transasi kedua melakukan perubahan terhadap nilai tersebut selama eksekusi transasi pertama berlangsung.
Demikian pembahasan kita tentang manajemen transaksi ini
kawan-kawan, memang masih sebatas teori, tapi mudah-mudahan berguna ya, :D,
bila kawan-kawan ingin memberi komentar atau masukan silahkan.
0 comments :
Post a Comment