트랜잭션(Transaction)은 데이터베이스 관리 시스템(DBMS)에서 데이터를 처리하는 단위 작업 단위를 말합니다. 트랜잭션은 일련의 데이터 처리 작업을 묶어서 하나의 논리적인 작업으로 처리하는 것이며, 이 작업들은 모두 성공하거나, 모두 실패해야 합니다.
따라서 트랜잭션은 데이터베이스에서 데이터 무결성을 보장하고, 동시에 여러 사용자가 데이터에 접근하는 경우에도 일관성을 유지하기 위해 사용됩니다.
일반적으로 트랜잭션은 ACID라는 성질을 갖습니다. ACID는 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)의 약자로, 각각 다음과 같은 의미를 갖습니다.
원자성: 트랜잭션은 일련의 작업이 모두 수행되거나 모두 수행되지 않아야 합니다. 즉, 트랜잭션이 중간에 실패하면 이전 상태로 롤백되어야 합니다.
일관성: 트랜잭션 실행 전과 후의 데이터베이스 상태는 일관성이 있어야 합니다. 즉, 트랜잭션 수행 후에도 데이터베이스의 제약 조건은 만족되어야 합니다.
고립성: 여러 트랜잭션이 동시에 실행되더라도, 각각의 트랜잭션은 독립적으로 수행되어야 합니다. 즉, 다른 트랜잭션의 작업이 트랜잭션의 작업에 영향을 미치지 않아야 합니다.
지속성: 트랜잭션이 성공하면, 그 결과는 영구적으로 반영되어야 합니다. 즉, 시스템 장애 또는 기타 문제로 인해 데이터베이스가 손상되더라도, 이전에 수행된 트랜잭션은 손상되지 않아야 합니다.