반응형
매일메일을 통한
하루 1개 CS 공부하기
ACID는 원자성 (Atomicity), 일관성 (Consistency), 격리성 (Isolation), 지속성 (Durability)의 약자이며,
데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질이다.
원자성 (Atomicity)
트랜잭션 내부 연산들이 부분적으로 실행되고 중단되지 않는 것을 보장하는 성질
즉, 전체적인 성공 또는 전체적인 실패만을 보장하는 것!
ex>
1. A에게 1000원 주기
2. B에게 1000원 주기
위 두 작업에 대해서 B에게 1000원을 줄 수 없는 상황이라면 (실패), A에게 주었던 1000원도 다시 돌려 받아야 한다.
실패 했을 때 다시 이전 상태로 되돌리는 것을 Rollback (롤백)이라고 한다.
일관성 (Consistency)
트랜잭션이 성공적으로 완료되면, 일관성 있는 DB 상태로 유지되는 것을 보장하는 성질.
DB에 정의된 규칙을 트랜잭션이 위반하는 경우, 해당 트랜잭션은 취소되어야 한다.
격리성 (Isolation)
동시에 실행되는 여러 트랜잭션이 서로 독립적임을 보장하는 성질
가장 엄격할 경우에는 트랜잭션을 순차적으로 실행하기도 한다.
트랜잭션을 수행할 때 다른 트랜잭션이 해당 작업 사이에 끼어들지 못하도록 보장한다.
지속성 (Durability)
성공적으로 수행된 트랜잭션은 영원히 반영돼야 함을 보장하는 성질
시스템에 장애가 발생해도 트랜잭션의 결과는 DB에 반영되어 있어야 한다.
전형적으로, 트랜잭션은 로그로 남고, 로그가 저장되어야 트랜잭션이 성공됐다고 간주함.
반응형
'Back-end' 카테고리의 다른 글
[Back-End] 캐시 스탬피드 현상이란? (0) | 2025.02.10 |
---|---|
[Back-End] Cache Aside (Lazy Loading)이란? (0) | 2025.02.03 |
[Back-End] 로드밸런싱 톺아보기 (0) | 2025.01.30 |
[Back-End] DB Replication이란 무엇인가. (0) | 2025.01.24 |
[Back-End] HTTPS란 정확히 무엇일까? (0) | 2025.01.21 |