Transaction pada Database
Di dalam DBMS, transaksi-transaksi yang dilakukan rentan terhadap kegagalan karena beberapa factor. Faktor dari kegagalan ini dapat dibagi menjadi tiga, yaitu:
- Transaction failure
- System crash
- Disk failure
(Thakur, 2019)
Transaction Failure:
Di dalam transaction failure, kegagalan terjadi karena suatu transaksi yang dimasukan tidak bisa lagi lanjut atau transaksi tersebut tidak bisa di eksekusi sehingga tidak bisa lanjut. Hal ini bisa terjadi karena dua hal yaitu:
- Logical Error dimana logika atau kodingan yang terdapat di dalam transaksi tersebut tidak bisa dilanjutkan karena kondisi yang tidak sesuai sehingga tidak bisa lanjut.
- System Error dimana transaksi diberhentikan oleh sistem karena DBMS tidak bisa memproses transaksi tersebut atau karena kondisi sistem seperti adanya Deadlock dalam transaksi.
System Crash:
Alasan kedua suatu transaksi bisa gagal adalah karena terjadinya System Crash dimana sistemnya diganggu oleh faktor eksternal seperti terjadinya error pada Operating System atau terjadinya mati lampu kepada mesin.
Disk Failure:
Alasan ketiga mengapa suatu transaksi itu bisa gagal adalah karena rusaknya hard drive, tempat fisiknya penampungan data di dalam sebuah komputer. Hal ini sering terjadi kepada hard drive tua dimana kualitasnya lebih rendah sehingga disk head (bagian yang membaca data dari disk) dapat rusak contohnya dan terjadinya bad sector kepada disk.
Di dalam database, transaksi ditampung kepada dua jenis penyimpanan yaitu:
- Volatile Storage – Penyimpanan data yang ditampung di dalam penampungan sementara untuk kegunaan akses data atau prosesing. Data yang ditampung dalam volatile storage ini hanya dikit dan mementingkan kecepatan membaca atau menstransfer data, tetapi karena banyaknya data yang keluar masuk data yang di dalam mudah hilang dan sulit di recover. Contoh dari volatile storage adalah Random Access Memory
- Non-volatile Storage – Penyimpanan data yang ditampung di dalam penampungan tempatnya. Dengan ini , data akan lebih aman dan lebih mudah direcover. Contoh dari non-volatile storage adalah hard-disk atau solid state drives.
Ketika sebuah sistem crash, properti ACID dari DBMS akan memudahkan pemeliharan transaksi yang sedang berlaku. Ketika sistem DBMS me-crash, maka properti ACID akan memastikan:
- State atau status dari semua transaksi yang sedang dilakukan
- Transaksi mana yang sedang jalan dan apakah transaksi tersebut masih memenukan properti ACID
- Apakah transaksi dapat diselesaikan atau perlu di roll-back
- Tidak ada transaksi yang keluar dari DBMS dengan status inkosisten dengan ACID
Untuk memudahkan pengurusan recovery DBMS terdapat dua teknik yaitu :
- Me-maintain data yang terdapat di dalam transaksi dan menampungya di dalam penampungan lain sebelum data tersebut diubah
- Melakukan shadow paging dimana perubahan data yang dibuat dilakukan di volatile memory sebelum dipastikan dan dimasukan ke database yang sebenarnya.
Transaction dalam database merupakan unit logis yang dijalankan secara independen untuk pengambilan atau pembaruan data. Dalam Dalam basis data relasional, transaksi basis data harus bersifat atomik(lengkap), konsisten, terisolasi dan tahan lama. Definisi lengkap dari ACID adalah :
- Atomik = Suatu transaksi harus sepenuhnya lengkap, disimpan (commited) atau sepenuhnya dibatalkan (rolled back).
- Konsisten = Transaksi harus sepenuhnya sesuai dengan keadaan database seperti sebelum transaksi.
- Isolasi: Data transaksi tidak boleh tersedia untuk transaksi lain sampai transaksi asli dilakukan atau dibatalkan.
- Daya tahan: Perubahan data transaksi harus tersedia, bahkan jika terjadi kegagalan basis data.
Setelah memahami apa itu transaction dalam database kita mengerti bagaimana database mengatur data dan transaction. Dalam kinerjanya database dalam me – manage data dapat mengalami kegagalan, Namun apabila itu terjadi database harus dapat menyediakan data yang diperlukan. Jadi, apabila terjadi kegagalan database dituntut untuk menyediakan sistem recovery. Teknik recovery meliputi teknik yang digunakan untuk mengembalikan(restore) database apabila terjadi kegagalan seperti sistem crash, adanya virus, adanya salah eksekusi perintah, dll. Untuk mencegah kegagalan yang tidak diinginkan ini terjadi maka dilakukan hal seperti back up data secara rutin, atau update yang dilakukan dengan segera.
Bibliography
Himanshi. (2019). Database Recovery Techniques in DBMS. Retrieved from GeeksforGeeks: https://www.geeksforgeeks.org/database-recovery-techniques-in-dbms/
Thakur, S. (2019, June 15). DATABASE RECOVERY IN DBMS AND ITS TECHNIQUES. Retrieved from What is DBMS: https://whatisdbms.com/database-recovery-in-dbms-and-its-techniques/
tutorialspoint. (2019). DBMS – Data Recovery. Retrieved from Tutorialspoint: https://www.tutorialspoint.com/dbms/dbms_data_recovery.htm