Dapatkah seseorang memberikan penjelasan yang lugas (tetapi tidak sesederhana mungkin) tentang transaksi yang diterapkan pada komputasi (bahkan jika disalin dari Wikipedia)?
Dapatkah seseorang memberikan penjelasan yang lugas (tetapi tidak sesederhana mungkin) tentang transaksi yang diterapkan pada komputasi (bahkan jika disalin dari Wikipedia)?
Jawaban:
Transaksi adalah unit kerja yang ingin Anda perlakukan sebagai "keseluruhan". Itu harus terjadi secara penuh atau tidak sama sekali.
Contoh klasik adalah mentransfer uang dari satu rekening bank ke rekening bank lain. Untuk melakukan itu, Anda harus terlebih dahulu menarik jumlah dari akun sumber, dan kemudian menyetorkannya ke akun tujuan. Operasi tersebut harus berhasil sepenuhnya. Jika Anda berhenti di tengah jalan, uang itu akan hilang, dan itu Sangat Buruk.
Dalam database modern, transaksi juga melakukan beberapa hal lain - seperti memastikan bahwa Anda tidak dapat mengakses data yang telah ditulis orang lain di tengah jalan. Tetapi ide dasarnya sama - transaksi ada untuk memastikan, bahwa apa pun yang terjadi, data yang Anda kerjakan akan dalam keadaan yang masuk akal . Mereka menjamin bahwa TIDAK akan ada situasi di mana uang ditarik dari satu akun, tetapi tidak disimpan ke akun lain.
Transaksi adalah cara untuk merepresentasikan perubahan keadaan. Transaksi idealnya memiliki empat sifat, umumnya dikenal sebagai ACID:
Lihat entri ACID Wikipedia untuk lebih jelasnya.
Meskipun ini biasanya diterapkan pada database, tidak harus demikian. (Secara khusus, lihat Memori Transaksional Perangkat Lunak .)
Berikut penjelasan sederhananya. Anda perlu mentransfer 100 dolar dari akun A ke akun B. Anda dapat melakukan:
accountA -= 100;
accountB += 100;
atau
accountB += 100;
accountA -= 100;
Jika terjadi kesalahan antara operasi pertama dan kedua pada pasangan, Anda memiliki masalah - entah 100 dolar hilang, atau muncul tiba-tiba.
Transaksi adalah mekanisme yang memungkinkan Anda menandai sekelompok operasi dan mengeksekusinya sedemikian rupa sehingga semua operasi dijalankan (komit), atau status sistem seolah-olah belum mulai dijalankan sama sekali (rollback).
beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;
akan mentransfer 100 dolar atau meninggalkan kedua akun dalam keadaan awal.
"Serangkaian pernyataan manipulasi data yang harus benar-benar lengkap atau gagal sepenuhnya, meninggalkan database dalam keadaan yang konsisten"
Transaksi adalah urutan dari satu atau lebih operasi SQL yang diperlakukan sebagai satu unit.
Secara khusus, setiap transaksi tampaknya berjalan dalam isolasi, dan lebih jauh lagi, jika sistem gagal, setiap transaksi akan dijalankan secara keseluruhan atau tidak semua.
Konsep transaksi dimotivasi oleh dua perhatian yang sepenuhnya independen. Yang satu berkaitan dengan akses bersamaan ke database oleh banyak klien, dan yang lainnya berkaitan dengan memiliki sistem yang tahan terhadap kegagalan sistem.
Transaksi mendukung apa yang dikenal sebagai properti ACID:
http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ACID = A tomicity, C onsistency, I solation, D urability
Saat Anda ingin beberapa sumber daya transaksional terlibat dalam satu transaksi, Anda perlu menggunakan sesuatu seperti solusi komit dua fase . XA cukup banyak didukung.
Saya menyarankan bahwa definisi 'pemrosesan transaksi' akan lebih berguna, karena mencakup transaksi sebagai konsep dalam ilmu komputer.
Dari wikipedia:
Dalam ilmu komputer, pemrosesan transaksi adalah pemrosesan informasi yang dibagi menjadi operasi-operasi individual yang tidak dapat dibagi-bagi, yang disebut transaksi. Setiap transaksi harus berhasil atau gagal sebagai satu kesatuan yang lengkap; itu tidak bisa tetap dalam keadaan perantara.
http://en.wikipedia.org/wiki/Transaction_processing#Implementations
Selain tanggapan di atas, perlu dicatat bahwa, setidaknya dalam teori, tidak ada batasan apa pun tentang jenis sumber daya apa yang terlibat dalam transaksi.
Seringkali, ini hanya database, atau beberapa database yang berbeda, tetapi juga dapat dibayangkan bahwa printer mengambil bagian dalam transaksi, dan dapat menyebabkan transaksi tersebut gagal, misalnya jika terjadi kemacetan kertas.
Transaksi dapat didefinisikan sebagai kumpulan tugas yang dianggap sebagai unit pemrosesan minimum. Setiap unit pemrosesan minimum tidak dapat dibagi lebih lanjut.
Operasi utama sebuah transaksi adalah membaca dan menulis.
Semua transaksi harus mengandung empat properti yang umumnya dikenal sebagai properti ACID untuk tujuan memastikan keakuratan, kelengkapan, dan integritas data.
Saya pikir transaksi adalah tindakan atom dalam istilah DBMS.
itu artinya tidak bisa dipisahkan. ya, dalam transction, mungkin ada beberapa instruksi untuk dijalankan oleh sistem. tetapi mereka terikat bersama untuk menyelesaikan satu tugas dasar.
sebagai contoh. Anda perlu berjalan melalui jembatan (anggaplah ini sebagai transction), dan untuk melakukan ini, katakanlah, Anda memerlukan 100 langkah. secara keseluruhan, langkah-langkah ini tidak dapat dipisahkan. setelah Anda menyelesaikan setengahnya, hanya ada dua pilihan untuk Anda: terus selesaikan semuanya, dan kembali ke titik awal. Ini seperti hasil dari sebuah transaksi: sukses (berkomitmen) dan gagal (rollback)
Transaksi adalah unit tak terpisahkan dari pemrosesan data -Semua transaksi harus memiliki properti ACID:
yaitu: Atomicity, Consistency, Isolation dan Durable Transaction adalah semua atau tidak sama sekali tetapi tidak intermidiate (itu berarti jika Anda mentransfer uang dari satu akun ke akun lain, satu akun harus kehilangan sebanyak itu dan akun lainnya harus mendapatkan jumlah itu, tetapi jika Anda mentransfer uang dari satu akun dan akun lain masih kosong yang tidak akan menjadi transaksi)