ACID 란 데이터의 안정성을 보장하기 위한 데이터베이스 트랜잭션의 요소들의 집합을 의미합니다. ACID 는 Atomicity, consistency, isolation, durability 의 앞 글자를 딴 줄임말입니다.
Atomicity 는 각 트랜잭션들이 하나의 유닛으로 동작할 수 있도록 보장해줍니다. 예를 들면 트랜잭션을 구성하는 하나의 statement 가 실패를 한다면 트랜잭션 전체가 실패를 하게 되고 Database 를 변화시키지 않습니다.
Consistency 는 데이터 베이스의 작성된 데이터가 모든 정의된 규칙 및 제한 사항을 준수한다는 것을 의미합니다. 따라서 트랜잭션은 일관된 상태의 데이터베이스만을 가져올 수 있습니다.
Isolation 은 동시에 실행되는 트랜잭션이 순차적으로 실행한 트랙잭션의 결과와 같도록 데이터베이스를 유지하는 것을 말합니다. Isolation 읉 통해 트랜잭션의 동시성을 제어할 수 있습니다.
Durability 는 커밋된 트랜잭션은 시스템의 전원이 꺼져도 기록되어있는 것을 말합니다.
ACID 요소들을 만족시키는 일련의 데이터베이스 작업들을 말합니다.
예를 들어 하나의 은행 계좌에서 다른 계좌로 자금을 이체하는 것은 하나의 계좌에서 인출하고 다른 계좌에 입금하는 것과 같은 여러 변경 사항을 포함하는 경우에도 단일 트랜잭션입니다.
Locking 이란 첫 번째 트랜잭션이 성공하거나 실패할 때까지 다른 트랜잭션을 수정할 수 없도록 RDMS 가 알 수 있게 트랜잭션에 접근 가능한 데이터를 표시하는 것이다.
Locking 의 대안적인 방법으로 한 트랜잭션에 의해 수정되고 있는 데이터의 수정되지 않은 이전 버전을 제공하는 방법이다.