데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다.
이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장한다. 이 성질을 첫글자를 따 ACID라 부른다. 그러나, 실제로는 성능향상을 위해 이런 특성들이 종종 완화되곤 한다.
어떤 시스템들에서는 트랜잭션들은 논리적 작업 단위(LUW, Logical Units of Work)로 불린다.
-Wikipedia
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야할 일련의 연산이다.
Transaction은 여러개의 작업을 하나로 묶어 실행한다.
이때 하나의 작업이라도 실패를 한다면 해당 작업은 전부 실패로 간주하고 Rollback 된다.
(Rollback: 작업 이전 상태로 되돌리는 것)
작업이 모두 성공한다면 해당 작업은 Commit 된다.
(Commit: 작업을 반영하는 것)
Transaction의 특징으로는 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)이 있다.
각 단어의 앞자리를 따서 ACID 라고도 한다.
Atomicity (원자성) : Transaction 내 하나의 작업이라도 실패 시 작업 전체가 실패하는 성질
Consistency (일관성) : DataBase의 상태는 Transaction 작업 후에도 이전과 같이 유효성을 가져야한다는 성질
Isolation (독립성) : 모든 Transaction 작업은 다른 Transaction 작업으로 부터 독립적이어야 한다는 성질
Durability (영구성) : Transaction 작업이 성공적으로 마무리 되었다면 해당 작업에 대한 로그는 영구적으로 남아있어야 하는 성질