ACID
는 concurrent 프로그래밍 혹은 그러한 프로그램에서 데이터에 대한 트랜젝션이 안전하도록 보장하기 위해서 만족해야 하는 특성모음을 의미하는데, 데이터베이스에서의 트랜잭션이 대표적인 예 입니다.
Atomicity(원자성)
트랜잭션과 관련된 일은 모두 실행되던지 모두 실행되지 않도록 하던지를 보장하는 특성입니다.
Consistency(일관성)
트랜잭션이 성공했다면, 데이터베이스는 그 일관성을 유지해야 합니다. 일관성은 특정한 조건을 두고, 그 조건을 만족하는지를 확인하는 방식으로 검사할 수 있습니다.
Isolation(독립성)
트랜잭션을 수행하는 도중에 다른 연산작업이 끼어들지 못하도록 합니다. 임계영역을 두는 것으로 달성할 수 있습니다.
Durability(지속성)
성공적으로 트랜잭션이 수행되었다면, 그 결과는 완전히 반영이 되어야 합니다. 완전히 반영되면 로그를 남기게 되는데, 후에 이 로그를 이용해서 트랜잭션 수행전 상태로 되돌릴 수 있어야 합니다. 그렇기에 트랜잭션은 로그저장이 완료된 시점에서 종료가 되어야 합니다.