Manajemen Transaksi di DBMS: Apa itu Properti ACID?
Apa itu Transaksi Basis Data?
A Transaksi Database adalah unit pemrosesan logis dalam DBMS yang memerlukan satu atau lebih operasi akses basis data. Singkatnya, transaksi basis data merupakan peristiwa dunia nyata dari perusahaan mana pun.
Semua jenis operasi akses basis data yang dilakukan antara pernyataan transaksi awal dan akhir dianggap sebagai transaksi logis tunggal dalam DBMS. Selama transaksi, basis data tidak konsisten. Hanya setelah basis data dikomit, statusnya berubah dari satu status konsisten ke status konsisten lainnya.
Fakta tentang Transaksi Database
- Transaksi adalah unit program yang eksekusinya dapat mengubah konten database atau tidak.
- Konsep transaksi dalam DBMS dijalankan sebagai satu kesatuan.
- Jika operasi basis data tidak memperbarui basis data tetapi hanya mengambil data, jenis transaksi ini disebut transaksi baca-saja.
- Transaksi yang berhasil dapat mengubah database dari satu NEGARA KONSISTEN ke NEGARA KONSISTEN lainnya
- Transaksi DBMS harus bersifat atomik, konsisten, terisolasi dan tahan lama
- Jika database berada dalam keadaan tidak konsisten sebelum transaksi, database akan tetap berada dalam keadaan tidak konsisten setelah transaksi.
Mengapa Anda memerlukan konkurensi dalam Transaksi?
Basis data adalah sumber daya bersama yang diakses. Ini digunakan oleh banyak pengguna dan proses secara bersamaan. Misalnya, sistem perbankan, sistem reservasi kereta api dan udara, pemantauan pasar saham, inventaris supermarket, dan kasir, dll.
Tidak mengelola akses bersamaan dapat menimbulkan masalah seperti:
- Kegagalan perangkat keras dan sistem crash
- Eksekusi simultan dari transaksi yang sama, jalan buntu, atau kinerja lambat
Keadaan Transaksi
Berbagai keadaan konsep transaksi dalam DBMS tercantum di bawah ini:
Negara | Jenis transaksi |
---|---|
Keadaan aktif | Transaksi memasuki status aktif saat proses eksekusi dimulai. Selama status ini, operasi baca atau tulis dapat dilakukan. |
Berkomitmen Sebagian | Suatu transaksi masuk ke status berkomitmen sebagian setelah akhir transaksi. |
Negara Berkomitmen | Ketika transaksi dikomit ke negara, maka transaksi tersebut telah menyelesaikan eksekusinya dengan sukses. Selain itu, semua perubahannya dicatat ke database secara permanen. |
Negara Gagal | Suatu transaksi dianggap gagal jika salah satu pemeriksaan gagal atau jika transaksi dibatalkan saat sedang dalam keadaan aktif. |
Status Berakhir | Status transaksi mencapai status dihentikan ketika transaksi tertentu yang keluar dari sistem tidak dapat dimulai ulang. |
Mari kita belajar a diagram transisi keadaan yang menyoroti bagaimana suatu transaksi berpindah antara berbagai negara bagian ini.
- Setelah transaksi menyatakan eksekusi, transaksi tersebut menjadi aktif. Transaksi tersebut dapat mengeluarkan operasi READ atau WRITE.
- Setelah operasi READ dan WRITE selesai, transaksi menjadi status komitmen sebagian.
- Selanjutnya, beberapa protokol pemulihan perlu memastikan bahwa kegagalan sistem tidak akan mengakibatkan ketidakmampuan untuk mencatat perubahan transaksi secara permanen. Jika pemeriksaan ini berhasil, transaksi dilakukan dan masuk ke status berkomitmen.
- Jika pemeriksaan gagal, transaksi masuk ke status Gagal.
- Jika transaksi dibatalkan saat masih dalam status aktif, transaksi akan masuk ke status gagal. Transaksi harus digulirkan kembali untuk membatalkan efek operasi penulisannya pada basis data.
- Status dihentikan mengacu pada transaksi yang meninggalkan sistem.
Apa itu Properti ASAM?
Sifat ASAM digunakan untuk menjaga integritas database selama pemrosesan transaksi. ACID dalam DBMS adalah singkatan dari Asifat tomisitas, Ckonsistensi, Isolasi, dan Ddaya tahan.
- Atomes: Transaksi adalah satu unit operasi. Anda dapat menjalankannya secara keseluruhan atau tidak menjalankannya sama sekali. Tidak boleh ada eksekusi parsial.
- Konsistensi: Setelah transaksi dijalankan, transaksi tersebut harus berpindah dari satu keadaan konsisten ke keadaan konsisten lainnya.
- Isolasi: Transaksi harus dieksekusi secara terpisah dari transaksi lain (tanpa kunci). Selama eksekusi transaksi bersamaan, hasil transaksi antara dari transaksi yang dieksekusi secara bersamaan tidak boleh saling diketahui. (Level 0,1,2,3)
- Daya Tahan:· Setelah transaksi berhasil diselesaikan, perubahan dalam database akan tetap ada. Bahkan jika terjadi kegagalan sistem.
Properti ACID di DBMS dengan contoh
Di bawah ini adalah contoh properti ACID di DBMS:
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
Transaksi 1 mentransfer $50 dari akun X ke akun Y.
Transaksi 2 mengkredit setiap rekening dengan pembayaran bunga 10%.
Jika kedua transaksi tersebut diajukan bersamaan, tidak ada jaminan bahwa Transaksi 1 akan terlaksana sebelum Transaksi 2 atau sebaliknya. Apapun urutannya, hasilnya harus seolah-olah transaksi terjadi secara berurutan.
Jenis Transaksi
Berdasarkan area Aplikasi
- Tidak terdistribusi vs. terdistribusi
- Transaksi kompensasi
- Waktu Transaksi
- Online vs. batch
Berdasarkan Tindakan
- Dua langkah
- Terbatas
- Model tindakan
Berdasarkan Struktur
- Transaksi datar atau sederhana: Terdiri dari serangkaian operasi primitif yang dieksekusi antara operasi awal dan akhir.
- Transaksi bersarang: Transaksi yang berisi transaksi lain.
- Workflow
Apa itu Jadwal?
Jadwal adalah proses membuat satu grup dari beberapa transaksi paralel dan mengeksekusinya satu per satu. Ini harus menjaga urutan instruksi yang muncul dalam setiap transaksi. Jika dua transaksi dieksekusi pada saat yang sama, hasil dari satu transaksi dapat mempengaruhi output transaksi lainnya.
Example
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product Quantity
Jika Transaksi 2 dijalankan sebelum Transaksi 1, informasi usang mengenai jumlah produk akan terbaca. Oleh karena itu, diperlukan jadwal.
Eksekusi paralel dalam database tidak dapat dihindari. Namun, eksekusi paralel diperbolehkan jika terdapat relasi ekuivalensi di antara transaksi yang dieksekusi secara bersamaan. Ekivalensi ini ada 3 Jenis.
SETARA HASIL:
Jika dua jadwal menampilkan hasil yang sama setelah eksekusi, maka hal itu disebut jadwal ekuivalen hasil. Jadwal tersebut mungkin menawarkan hasil yang sama untuk beberapa nilai dan hasil yang berbeda untuk kumpulan nilai yang lain. Misalnya, satu transaksi memperbarui kuantitas produk, sementara transaksi lainnya memperbarui detail pelanggan.
Lihat Kesetaraan
View Equivalence terjadi ketika transaksi di kedua jadwal melakukan tindakan yang serupa. Misalnya, satu transaksi memasukkan detail produk di tabel produk, sementara transaksi lain memasukkan detail produk di tabel arsip. Transaksinya sama, tetapi tabelnya berbeda.
Kesetaraan KONFLIK
Dalam hal ini, dua transaksi memperbarui/melihat kumpulan data yang sama. Ada konflik antar transaksi karena urutan eksekusi akan mempengaruhi output.
Apa itu Serializabilitas?
Serializability adalah proses pencarian jadwal bersamaan yang keluarannya sama dengan jadwal serial dimana transaksi dieksekusi satu demi satu. Tergantung pada jenis jadwalnya, ada dua jenis kemampuan serial:
- Konflik
- Liha
Kesimpulan
- Manajemen transaksi adalah unit pemrosesan logis dalam DBMS yang memerlukan satu atau lebih operasi akses basis data
- Ini adalah transaksi yang merupakan unit program yang eksekusinya dapat mengubah konten database atau tidak.
- Tidak mengelola akses bersamaan dapat menimbulkan masalah seperti kegagalan perangkat keras dan kerusakan sistem.
- Aktif, Berkomitmen Sebagian, Berkomitmen, Gagal & Terminasi adalah status transaksi yang penting.
- Bentuk lengkap dari ACID Properties di DBMS is Atomes, Konsistensi, Isolasi, dan Daya Tahan
- Tiga jenis transaksi DBMS adalah Berdasarkan Area Aplikasi, Tindakan, & Struktur.
- Jadwal adalah proses membuat satu grup dari beberapa transaksi paralel dan mengeksekusinya satu per satu.
- Serializability adalah proses pencarian jadwal bersamaan yang outputnya sama dengan jadwal serial dimana transaksi dieksekusi satu demi satu.