Manajemen Transaksi dalam DBMS: Status, Tipe & ACID

โšก Ringkasan Cerdas

Manajemen Transaksi Basis Data memperlakukan satu atau lebih operasi basis data sebagai satu unit logis tunggal yang memindahkan basis data dari satu keadaan konsisten ke keadaan konsisten lainnya. Ia bergantung pada properti ACID, status transaksi yang ditentukan, dan jadwal untuk menjaga agar akses bersamaan tetap benar.

  • ๐Ÿ” Unit Inti: Suatu transaksi mengelompokkan operasi baca dan tulis yang terkait sehingga keduanya berhasil atau gagal bersama-sama, tidak pernah setengah-setengah.
  • ๐Ÿงช Properti ASAM: AtomKeakuratan, konsistensi, isolasi, dan daya tahan menjamin hasil yang benar bahkan dalam kondisi kegagalan atau konkurensi.
  • ๐Ÿšฆ Status Transaksi: Aktif, sebagian terkomit, terkomit, gagal, dan diakhiri menggambarkan siklus hidup suatu transaksi.
  • ๐Ÿ‘ฅ Mengapa Konkurensi: Basis data bersifat bersama, sehingga banyak transaksi berjalan secara bersamaan dan tidak boleh saling merusak data satu sama lain.
  • ๐Ÿ“‹ Jadwal: Jadwal mengatur operasi transaksi paralel sambil mempertahankan urutan internal setiap transaksi.
  • ๐Ÿ”— Serialisasi: Jadwal konkuren dianggap benar jika hasilnya sama dengan eksekusi serial tertentu, yang dinilai berdasarkan kesamaan konflik atau tampilan.
  • ๏ธ Pemulihan: Transaksi yang gagal akan dibatalkan sehingga penulisan sebagiannya tidak pernah mencapai basis data yang telah dikomit.

Manajemen Transaksi dalam DBMS

Apa itu Transaksi Basis Data?

A Transaksi Database Transaksi adalah unit pemrosesan logis dalam DBMS yang mencakup satu atau lebih operasi akses basis data. Singkatnya, transaksi basis data mewakili peristiwa dunia nyata dari perusahaan mana pun.

Semua jenis operasi akses basis data yang dilakukan di antara pernyataan transaksi awal dan akhir dianggap sebagai satu transaksi logis tunggal dalam DBMS. Selama transaksi berlangsung, basis data bersifat tidak konsisten. Hanya setelah transaksi dikomit, keadaan basis data berubah dari satu keadaan konsisten ke keadaan konsisten lainnya.

Transaksi basis data berpindah antar status konsisten.
Transaksi Database

Fakta-fakta Tentang Transaksi Basis Data

  • 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 basis data dari satu keadaan KONSISTEN ke keadaan 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 Membutuhkan Konkurensi dalam Transaksi?

Basis data adalah sumber daya bersama. Basis data digunakan oleh banyak pengguna dan proses secara bersamaan. Contohnya termasuk sistem perbankan, sistem reservasi kereta api dan pesawat terbang, pemantauan pasar saham, serta inventaris dan kasir supermarket.

Tidak mengelola akses bersamaan dapat menimbulkan masalah seperti:

  • Kerusakan perangkat keras dan gangguan sistem.
  • Eksekusi simultan dari transaksi yang sama, jalan buntuatau kinerja yang lambat.

Mengontrol akses bersama ini adalah tugas dari kontrol konkurensiyang menggunakan penguncian dan stempel waktu untuk menyisipkan transaksi dengan aman. Sebelum itu, ada baiknya mengetahui tahapan yang dilalui suatu transaksi.

Keadaan Transaksi

Berbagai keadaan konsep transaksi dalam DBMS tercantum di bawah ini:

Negara Deskripsi
Keadaan aktif Suatu transaksi memasuki status aktif ketika proses eksekusi dimulai. Selama status ini, operasi baca atau tulis dapat dilakukan.
Berkomitmen Sebagian Suatu transaksi memasuki status sebagian terkomitmen setelah transaksi berakhir.
Negara Berkomitmen Ketika transaksi mencapai status "committed", transaksi tersebut telah berhasil diselesaikan dan semua perubahannya dicatat secara permanen ke dalam basis data.
Negara Gagal Suatu transaksi dianggap gagal jika salah satu dari pemeriksaan gagal, atau jika transaksi dibatalkan saat masih dalam keadaan aktif.
Status Berakhir Status suatu transaksi mencapai status diakhiri ketika transaksi tersebut meninggalkan sistem dan tidak dapat dimulai kembali.

Diagram transisi keadaan untuk transaksi basis data

Mari kita pelajari sebuah diagram transisi keadaan yang menyoroti bagaimana suatu transaksi berpindah antara berbagai negara bagian ini.

  1. Begitu sebuah transaksi mulai dieksekusi, transaksi tersebut menjadi aktif. Transaksi tersebut dapat mengeluarkan operasi BACA atau TULIS.
  2. Setelah operasi BACA dan TULIS selesai, transaksi mencapai status sebagian terkomit.
  3. Selanjutnya, beberapa protokol pemulihan perlu memastikan bahwa kegagalan sistem tidak akan mengakibatkan ketidakmampuan untuk mencatat perubahan transaksi secara permanen. Jika pemeriksaan ini berhasil, transaksi akan dikomit dan memasuki status dikomit.
  4. Jika pengecekan gagal, transaksi akan masuk ke status gagal.
  5. Jika transaksi dibatalkan saat masih dalam status aktif, maka transaksi akan beralih ke status gagal. Transaksi harus di-rollback untuk membatalkan efek operasi penulisan pada basis data.
  6. Status dihentikan mengacu pada transaksi yang meninggalkan sistem.

Apa Itu Sifat Asam?

Sifat ASAM Digunakan untuk menjaga integritas basis data 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: Suatu transaksi harus dieksekusi secara terpisah dari transaksi lain. Selama eksekusi bersamaan, hasil sementara dari transaksi yang dieksekusi secara simultan tidak boleh saling diakses.
  • Daya Tahan: Setelah transaksi berhasil diselesaikan, perubahan dalam basis data harus tetap tersimpan, bahkan jika terjadi kegagalan sistem.

Properti ACID dalam DBMS Beserta Contohnya

Berikut adalah contoh properti ACID dalam 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 diajukan bersamaan, tidak ada jaminan bahwa Transaksi 1 akan dieksekusi sebelum Transaksi 2 atau sebaliknya. Terlepas dari urutannya, hasilnya harus seolah-olah transaksi tersebut terjadi secara berurutan, satu demi satu.

Jenis Transaksi

Berdasarkan bidang aplikasi:

  • Tidak terdistribusi vs. terdistribusi.
  • Transaksi kompensasi.
  • Pengaturan waktu transaksi.
  • Online vs. batch.

Berdasarkan tindakan:

  • Dua langkah.
  • Terbatas.
  • Model aksi.

Berdasarkan struktur:

  • Transaksi datar atau sederhana: terdiri dari serangkaian operasi primitif yang dieksekusi antara operasi awal dan operasi akhir.
  • Transaksi bersarang: transaksi yang berisi transaksi lain.
  • Alur kerja.

Apa itu Jadwal?

Jadwal adalah proses pembuatan satu kelompok yang terdiri dari beberapa transaksi paralel dan mengeksekusinya satu per satu. Jadwal harus mempertahankan urutan kemunculan instruksi dalam setiap transaksi. Jika dua transaksi dieksekusi secara bersamaan, hasil dari satu transaksi dapat memengaruhi hasil dari 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 basis data tidak dapat dihindari. Namun, eksekusi paralel diperbolehkan apabila terdapat relasi kesetaraan di antara transaksi yang dieksekusi secara bersamaan. Kesetaraan ini terdiri dari tiga jenis.

Kesetaraan Hasil: Jika dua jadwal menampilkan hasil yang sama setelah dieksekusi, itu disebut jadwal dengan hasil yang setara. Jadwal tersebut mungkin menawarkan hasil yang sama untuk beberapa nilai dan hasil yang berbeda untuk kumpulan nilai lainnya. Misalnya, satu transaksi memperbarui kuantitas produk sementara transaksi lain memperbarui detail pelanggan.

Lihat Kesetaraan: Kesamaan tampilan terjadi ketika transaksi dalam kedua jadwal melakukan tindakan yang serupa. Misalnya, satu transaksi memasukkan detail produk ke dalam tabel produk, sementara transaksi lain memasukkan detail produk ke dalam tabel arsip. Transaksinya sama, tetapi tabelnya berbeda.

Kesetaraan Konflik: Dalam kasus ini, dua transaksi memperbarui atau melihat kumpulan data yang sama. Terjadi konflik di antara transaksi tersebut, karena urutan eksekusi akan memengaruhi hasilnya.

Apa itu Serializabilitas?

Serialisasi adalah proses pencarian jadwal konkuren yang keluarannya sama dengan jadwal serial di mana transaksi dieksekusi satu demi satu. Tergantung pada jenis jadwalnya, ada dua jenis serialisasi:

  • Serialisasi konflik.
  • Lihat serialisasi.

Keduanya berbeda dalam seberapa ketat mereka menilai kesetaraan, seperti yang dirangkum di bawah ini.

Aspek Serialisasi Konflik Lihat Serialisasi
Dasar Urutan operasi yang saling bertentangan Hubungan baca-dari dan tulis-akhir
uji Grafik prioritas harus asiklik. Lihat kesamaan dengan jadwal serial
Kekerasan Lebih ketat, sebuah himpunan bagian Lebih luas, termasuk penulis tunanetra
Biaya untuk memeriksa Efisien Sulit secara komputasi

Setiap jadwal yang dapat diserialisasi berdasarkan konflik juga dapat diserialisasi berdasarkan tampilan, tetapi tidak sebaliknya, itulah sebabnya mengapa kemampuan diserialisasi berdasarkan konflik merupakan uji praktis yang diterapkan oleh DBMS.

Pertanyaan Umum Demo Slot

Commit membuat perubahan transaksi menjadi permanen dalam basis data. Rollback membatalkan setiap perubahan sejak transaksi dimulai, mengembalikan basis data ke keadaan konsisten yang ada sebelum transaksi dimulai.

AtomAtomisitas. Jika terjadi kerusakan di tengah proses, atomisitas memastikan pekerjaan parsial dibuang, sehingga transaksi diperlakukan seolah-olah tidak pernah dijalankan. Ketahanan kemudian melindungi pekerjaan yang telah dikomit setelah pemulihan.

AI menganalisis antrian penguncian dan grafik kebuntuan untuk menemukan transaksi yang memblokir transaksi lain, kemudian merekomendasikan tingkat isolasi atau perubahan indeks yang mengurangi persaingan tanpa melemahkan kebenaran.

Sampai batas tertentu. Dengan mempelajari pola permintaan penguncian yang mendahului kebuntuan di masa lalu, sebuah model dapat menandai campuran transaksi yang berisiko sejak dini, memungkinkan penjadwal untuk menunda atau menyusun ulang sebelum siklus terbentuk.

Penjadwalan serial menjalankan satu transaksi sepenuhnya sebelum transaksi berikutnya dimulai, sehingga tidak ada interleave yang dapat merusak data. Proses ini lambat, itulah sebabnya tujuannya adalah penjadwalan konkuren yang dapat diserialisasi ke dalamnya.

Ringkaslah postingan ini dengan: