데이터베이스 Transaction ACID
트랜잭션의 속성을 뜻하는 ACID는 그 속성의 영어 첫 철자를 따서 붙인 이름이다. 그 내용은 다음과 같다.
Automicity : 원자성
하나의 트랜잭션이 완료가 되었을 때는 트랜잭션의 처리가 완료 된 상태이거나 트랜잭션을 받아 들이기 전의 상태여야 한다.
즉, 트랜잭션이 완벽하게 수행이 되든 트랜잭션에서 오류가 나든 수행 트랜잭션의 부분적인 변동 사항은 인정이 되지 않는다는 뜻이다.
Consistency : 일관성
트랜잭션의 성립, 미성립에 불문하고 데이터의 내용은 일관성이 유지 되어야 한다.
즉, 하나의 DB 서버를 사용하고 있는 무수한 클라이언트들이 동시에 트랜잭션을 보낸다 할지라도, 혹은 그 트랜잭션들이 무수한 오류와 성공의 반복이 되더라도 데이터들의 값은 누가 보든간에 일관성이 유지 되어야 한다는 것이다.
Isolation : 격리성
트랜잭션 간에 독립성이 유지 되어야 한다는 뜻이다.
즉, A라는 트랜잭션이 수행에 있을 때는 B라는 트랜잭션이 그 수행과정에 끼어들어 데이터의 처리를 할 수 없다는 것이다. 이는 통합 DB 서버를 사용하는 클라이언트들의 수가 많아지면 많아 질 수록 중요한 속성이라 할 수 있겠다.
예를 들어 A라는 사람이 데이터 값을 출력하는 트랜잭션을 수행하고 B라는 사람이 데이터를 수정하는 트랜잭션을 수행한다고 할 때, A가 요청 한 트랜잭션 내에 B가 요청한 트랜잭션이 관여를 하게 된다면 A 트랜잭션의 응답 값이 변동이 되기 때문에 결과적으로는 트랜잭션의 일관성에 문제가 있을 수 있다.
Durability : 영속성
트랜잭션이 종료한 후에는 논리적인 장애나 오류등으로 데이터 내용, 그 값이 변하지 않아야 한다.