ACID?
ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가르키는 약어라고 한다.
트랜잭션(transaction)
은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업단위를 의미한다. SQL 질의어를 통해 DB에 접근하는 것을 의미하기도한다.
ACID에 대한 세부 의미를 알아보자.
- Atomicity
원자성이라고 하며, 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이라고 한다. 예를 들어 이체를 할 경우 오르지 돈을 출금하는 작업만 성공하고 돈을 다른 사람에게 넣는 작업에 대해서도 마무리 해야한다. 중간 단계까지만 실행되고 실패하는 일이 없도록 하는 것이라고 한다.
- Consistency
일관성이라고 하며, 트랜잭션이이 성공적으로 끝나도 데이터베이스는 일관성있는 상태가 유지되어야 하는 것을 의미한다. 만약 이를 위반하면 트랜잭션은 중단된다.
- Isolation
독립성이라고 하며, 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. 예를 들어 이체 작업하는 도중에 쿼리를 실행하면 중간에 다른 트랜잭션은 대기한 다음 이체 작업이 끝난다음 쿼리가 실행된다.
- Durability
지속성이라고 하며, 성공적으로 수행된 트랜잭션은 영원히 반영되어야 한다는 것을 의미한다.
참조
[ACID, 위키백과]
[[DB] Transaction 과 ACID란?, medium.com]