Manajemen Transaksi DBMS: Apa itu Properti ACID?

Daftar Isi:

Anonim

Apa itu Transaksi Database?

Sebuah Transaksi database adalah unit logis dari pengolahan dalam DBMS yang memerlukan satu atau lebih operasi akses database. Singkatnya, transaksi database mewakili peristiwa dunia nyata dari perusahaan mana pun.

Semua jenis operasi akses database yang diadakan antara pernyataan transaksi awal dan akhir dianggap sebagai transaksi logis tunggal dalam DBMS. Selama transaksi, database tidak konsisten. Hanya setelah database dikomit, status diubah dari satu status konsisten ke status lain.

Dalam tutorial ini, Anda akan mempelajari:

  • Fakta tentang Transaksi Database
  • Mengapa Anda membutuhkan konkurensi dalam Transaksi?
  • Status Transaksi
  • Apa itu Properti ACID?
  • Jenis Transaksi
  • Apa itu Jadwal?

Fakta tentang Transaksi Database

  • Transaksi adalah unit program yang eksekusinya mungkin atau tidak mungkin mengubah konten database.
  • Konsep transaksi dalam DBMS dijalankan sebagai satu kesatuan.
  • Jika operasi database tidak memperbarui database tetapi hanya mengambil data, jenis transaksi ini disebut transaksi hanya-baca.
  • Transaksi yang berhasil dapat mengubah database dari satu NEGARA KONSISTEN ke yang lain
  • Transaksi DBMS harus bersifat atomik, konsisten, terisolasi, dan tahan lama
  • Jika database berada dalam keadaan tidak konsisten sebelum transaksi, itu akan tetap dalam keadaan tidak konsisten setelah transaksi.

Mengapa Anda membutuhkan konkurensi dalam Transaksi?

Database adalah sumber daya bersama yang diakses. Ini digunakan oleh banyak pengguna dan proses secara bersamaan. Misalnya, sistem perbankan, kereta api, dan sistem reservasi udara, pemantauan pasar saham, inventaris supermarket, dan pembayaran, dll.

Tidak mengelola akses bersamaan dapat menimbulkan masalah seperti:

  • Kegagalan perangkat keras dan sistem mogok
  • Eksekusi bersamaan dari transaksi yang sama, kebuntuan, atau kinerja lambat

Status Transaksi

Berbagai status konsep transaksi di DBMS tercantum di bawah ini:

Negara Jenis transaksi
Status Aktif Sebuah transaksi masuk ke dalam keadaan aktif ketika proses eksekusi dimulai. Selama status ini operasi baca atau tulis dapat dilakukan.
Berkomitmen Sebagian Transaksi masuk ke status komitmen sebagian setelah transaksi berakhir.
Status Komitmen Ketika transaksi berkomitmen untuk menyatakan, itu telah menyelesaikan eksekusinya dengan sukses. Selain itu, semua perubahannya dicatat ke database secara permanen.
Status Gagal Sebuah transaksi dianggap gagal ketika salah satu cek gagal atau jika transaksi dibatalkan ketika dalam keadaan aktif.
Status Dihentikan Status transaksi mencapai status dihentikan ketika transaksi tertentu yang keluar dari sistem tidak dapat dimulai ulang.
Diagram Transisi Status untuk Transaksi Database

Mari kita pelajari diagram transisi keadaan yang menyoroti bagaimana transaksi bergerak di antara berbagai keadaan ini.

  1. Setelah transaksi menyatakan eksekusi, itu menjadi aktif. Itu dapat mengeluarkan operasi BACA atau TULIS.
  2. Setelah operasi BACA dan TULIS selesai, transaksi menjadi status setengah berkomitmen.
  3. Selanjutnya, beberapa protokol pemulihan perlu memastikan bahwa kegagalan sistem tidak akan mengakibatkan ketidakmampuan untuk mencatat perubahan dalam transaksi secara permanen. Jika pemeriksaan ini berhasil, transaksi dilakukan dan masuk ke status komitmen.
  4. Jika cek gagal, transaksi masuk ke status Gagal.
  5. Jika transaksi dibatalkan saat berada dalam status aktif, transaksi masuk ke status gagal. Transaksi harus dibatalkan untuk membatalkan efek operasi tulisnya pada database.
  6. Status dihentikan mengacu pada transaksi yang keluar dari sistem.

Apa itu Properti ACID?

Properti ACID digunakan untuk menjaga integritas database selama pemrosesan transaksi. ACID dalam DBMS adalah singkatan dari A tomicity, C onsistency, I solation, and D urability.

  • Atomicity: Transaksi adalah satu unit operasi. Anda bisa mengeksekusinya seluruhnya atau tidak mengeksekusinya sama sekali. Tidak boleh ada eksekusi parsial.
  • Konsistensi: Setelah transaksi dijalankan, transaksi harus berpindah dari satu kondisi konsisten ke kondisi lain.
  • Isolation: Transaksi harus dijalankan dalam isolasi dari transaksi lain (tanpa Kunci). Selama eksekusi transaksi bersamaan, hasil transaksi antara dari transaksi yang dieksekusi secara bersamaan tidak boleh tersedia satu sama lain. (Tingkat 0,1,2,3)
  • Daya tahan: · Setelah berhasil menyelesaikan transaksi, perubahan dalam database akan tetap ada. Bahkan dalam kasus 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 ENDTransaction 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 akun 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 terjadi secara serial satu demi satu.

Jenis Transaksi

Berdasarkan area Aplikasi

  • Tidak terdistribusi vs. terdistribusi
  • Transaksi kompensasi
  • Waktu Transaksi
  • On-line vs. batch

Berdasarkan Tindakan

  • Dua langkah
  • Terbatas
  • Model aksi

Berdasarkan Struktur

  • Transaksi datar atau sederhana: Terdiri dari urutan operasi primitif yang dijalankan antara operasi awal dan akhir.
  • Transaksi bersarang: Transaksi yang berisi transaksi lain.
  • Alur Kerja

Apa itu Jadwal?

Jadwal adalah proses membuat satu grup dari beberapa transaksi paralel dan mengeksekusinya satu per satu. Itu harus menjaga urutan instruksi yang muncul di setiap transaksi. Jika dua transaksi dieksekusi pada saat yang sama, hasil dari satu transaksi dapat mempengaruhi output dari transaksi lainnya.

Contoh

Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity

Jika Transaksi 2 dilakukan sebelum Transaksi 1, informasi usang tentang kuantitas produk akan terbaca. Oleh karena itu, diperlukan jadwal.

Eksekusi paralel dalam database tidak bisa dihindari. Namun, eksekusi Paralel diizinkan jika ada hubungan ekivalen di antara transaksi yang dieksekusi secara bersamaan. Kesetaraan ini terdiri dari 3 Jenis.

HASIL EKUIVALENSI:

Jika dua jadwal menampilkan hasil yang sama setelah eksekusi, itu disebut jadwal ekuivalen hasil. Mereka mungkin menawarkan hasil yang sama untuk beberapa nilai dan hasil yang berbeda untuk kumpulan nilai lainnya. Misalnya, satu transaksi memperbarui kuantitas produk, sementara yang lain memperbarui detail pelanggan.

Lihat Kesetaraan

Lihat Ekuivalensi terjadi ketika transaksi di kedua jadwal melakukan tindakan serupa. Contoh, satu transaksi memasukkan detail produk ke tabel produk, sementara transaksi lain memasukkan detail produk ke tabel arsip. Transaksinya sama, tetapi tabelnya berbeda.

Kesetaraan KONFLIK

Dalam kasus ini, dua transaksi memperbarui / melihat kumpulan data yang sama. Ada konflik antar transaksi karena urutan eksekusi akan mempengaruhi keluaran.

Apa itu Serializability?

Serializability adalah proses mencari jadwal konkuren yang outputnya sama dengan jadwal serial dimana transaksi dieksekusi satu per satu. Bergantung pada jenis jadwal, ada dua jenis kemampuan bersambung:

  • Konflik
  • Melihat

Ringkasan:

  • Manajemen transaksi adalah unit logis dari pemrosesan dalam DBMS yang memerlukan satu atau lebih operasi akses database
  • Ini adalah transaksi adalah unit program yang pelaksanaannya mungkin atau tidak mungkin mengubah konten database.
  • Tidak mengelola akses bersamaan dapat menimbulkan masalah seperti kegagalan perangkat keras dan kerusakan sistem.
  • Aktif, Berkomitmen Sebagian, Berkomitmen, Gagal & Hentikan adalah status transaksi penting.
  • Bentuk lengkap dari ACID Properties di DBMS adalah Atomicity, Consistency, Isolation, dan Durability
  • 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 konkuren yang outputnya sama dengan jadwal serial dimana transaksi dijalankan satu demi satu.