트랜잭션이란 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위이다.
트랜잭션에는 여러 개의 연산이 수행될 수 있고, 수행중에 한작업이라도 실패하면 전부를 rollback하고 모두 성공해야 commit한다.
ACID는 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질이다.
Atomicity(원자성) : 트랜잭션의 연산은 모든 연산이 완벽히 수행되어여 하며, 한 연산이라도 실패하면 트랜잭션은 실패해야한다.
Consistency(일관성) : 트랜잭션은 유효한 상태로만 변경될 수 있다.
Isolation(독립성) : 트랜잭션은 동시에 실행될 경우 다른 트랜잭션에 의해 영향을 받지 않고 독립적으로 실행되어야 한다.
Durability(지속성) : 트랜잭션이 커밋된 이후에는 시스템 오류가 발생하더라도 커밋된 상태로 유지되는 것을 보장해야 한다. (비휘발성 메모리에 데이터가 저장되는 것을 의미한다.)