ACID(에이씨아이디)란 Atomicity, Consistency, Isolation, Durability의 약자로서, 데이터베이스의 트랜잭션이 안전하게 수행되기 위한 4가지 필수적인 성질을 말한다.
트랜잭션(transaction)은 '쪼갤 수 없는 업무 처리의 최소 단위'를 말하며, 1초당 처리할 수 있는 트랜잭션의 개수를 TPS라고 한다.
트랜잭션은 데이터베이스 서버에 여러 개의 클라이언트가 동시에 액세스 하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 부정합을 방지하고자 할 때 사용한다.
원자성(Atomicity)은 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.
모든 트랜잭션은 완전히 실행되거나, 아예 실행되지 않아야 한다. 트랜잭션은 가장 작은 업무의 단위이기 때문에, 진행되다 정지한 트랜잭션은 존재할 수 없다.
일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. 따라서, 같은 DB에 트랜잭션을 실행한 결과는 언제나 같아야 한다.
여러 트랜잭션을 순서대로 실행하는 것과 병렬적으로 실행하는 것이 같은 결과를 내야함을 강조할 때 주로 사용되는 속성이다.
독립성(Isolation)은 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다.
공식적으로 고립성은 트랜잭션 실행내역은 연속적이어야 함을 의미한다. 성능관련 이유로 인해 이 특성은 가장 유연성 있는 제약 조건이다.
지속성(Durability)은 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 이는 성공한 트랜잭션의 결과는 안정적으로 보존되어야 한다는 의미이다.
시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미한다. 전형적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있다.