Kebanyakan dari kita mungkin mendefinisikan transaksi dengan bermacam pengertian. Pengalaman saya saat teman-teman kampus ditanyakan apakah itu transaksi, kebanyakan dai mereka menjawab transaksi merupakan sebuah pertukaran atau pemindahan uang atau barang terhadap 2 pihak. Itu tidak salah sepenuhnya juga, tapi menurut saya itu definisi yang terlalu sempit dan mengacu pada 1 kondisi dimana dalam hal ini merupakan transaksi perdagangan. Secara luas transaksi digunakan dimana-mana, seperti yang saya sedang dalami saat ini, yaitu pemrograman database. Ternyata konsep transaksi itu sangat penting dalam dunia ke-database-an khususnya.
Bila didefinisikan dalam cakupan database, transaksi merupakan satu atau lebih perintah SQL yang harus diselesaikan yang didalam pelaksanaannya akan merubah Database. Dengan kata lain sebuah transaksi dapat disebut dengan LUW (Logical Unit of Work) Transaksi merubah keadaan konsisten Database yang satu menjadi keadaan konsisten yang lain.
Sebuah transaksi memiliki 4 karakteristik yang dikenal sebagai property ACID :
- Atomicity : Transaksi dilakukan sekali dan bersifat Atomic, artinya merupakan satu kesatuan tunggal yang tidak dapat dipisah-baik itu pekerjaan dilaksanakan semua atau tidak satupun.
- Consistency : Jika basis data pada awalnya dalam keadaan konsisten, maka pelaksanaan transaksi dengan sendirinya juga harus meninggalkan basis data tetap dalam status konsiste.
- Isolation : Isolasi memastikan bahwa secara bersamaan (konkuren) eksekusi transaksi terisolasi dari yang lain.
- Durability ; Begitu transaksi telah dilaksanakan (di-commit) maka perubahan yang diakibatkan tidak akan hilang atau tahan lama (durable), sekalipun ada kegagalan system.
Properti ACID memastikan perilaku yang dapat diprediksi dan menguatkan peran transaksi sebagai konsep all or nothing yang didesain untuk mengurangi manajemen load ketika ada banyak variabel.