ACID 트랜잭션
ACID 트랜잭션은 데이터베이스 작업 그룹이 원자적이며, 일관성을 유지하고, 다른 트랜잭션으로부터 격리되며, 일단 커밋되면 영구적인 단일의 신뢰할 수 있는 단위로 작동함을 보장합니다.
Definition
트랜잭션은 시스템이 ACID 보장(원자성, 일관성, 격리성, 영속성)을 가지고 실행하는 하나 이상의 데이터베이스 작업으로 구성된 작업 단위입니다. 트랜잭션은 커밋(효과를 영구적으로 만듦) 또는 중단(모든 효과를 취소함)으로 종료됩니다.
Scope
이 주제는 트랜잭션 추상화와 네 가지 ACID 속성(원자성(전체 또는 없음 커밋 또는 중단), 일관성(각 트랜잭션이 데이터베이스를 하나의 유효한 상태에서 다른 상태로 이동), 격리성(동시 트랜잭션이 관찰 가능하게 간섭하지 않음), 영속성(커밋된 효과가 장애 발생 시에도 유지됨))을 자세히 다룹니다. 커밋 및 중단 의미론과 이러한 속성이 동시성 제어 및 복구와 어떻게 관련되는지 설명합니다. 격리성 및 영속성을 구현하는 특정 프로토콜은 인접 주제이므로 제외합니다.
Core questions
- 각 ACID 속성은 무엇을 보장합니까?
- 커밋과 중단은 트랜잭션의 전체 또는 없음 동작을 어떻게 정의합니까?
- 격리성은 직렬화 가능성 및 동시성 제어와 어떻게 관련됩니까?
- 시스템 충돌에도 불구하고 영속성은 어떻게 달성됩니까?
- 장기 실행 또는 분산 작업에 대한 트랜잭션 모델의 한계는 무엇입니까?
Key concepts
- 트랜잭션 작업 단위
- 원자성
- 일관성
- 격리성
- 영속성
- 커밋 및 중단
- 롤백
- 트랜잭션 상태 모델
Key theories
- 원자성 및 영속성
- 원자성은 트랜잭션의 효과가 장애 발생 시에도 완전히 적용되거나 전혀 적용되지 않도록 보장하며, 영속성은 트랜잭션이 커밋되면 변경 사항이 충돌에도 불구하고 유지되도록 보장합니다. 둘 다 로깅 및 복구를 통해 구현됩니다.
- 일관성 및 격리성
- 일관성은 각 커밋된 트랜잭션이 데이터베이스의 무결성 제약 조건을 유지하도록 요구하며, 격리성은 동시 트랜잭션이 일부 직렬 순서와 동등한 결과를 생성하여 중간 상태를 서로에게 숨기도록 요구합니다.
- 트랜잭션 개념과 그 한계
- 트랜잭션 추상화는 장애 및 동시성에 대한 추론을 단순화하지만, 그레이는 장기 활동 및 시스템 경계를 넘는 활동에 대한 한계를 지적했으며, 이는 사가(sagas) 및 분산 트랜잭션에 대한 후속 작업의 동기가 되었습니다.
Clinical relevance
ACID 트랜잭션은 데이터베이스가 중요한 작업을 신뢰할 수 있는 이유입니다. 자금 이체, 재고 차감 또는 예약은 완전히 완료되거나 전혀 완료되지 않으며 충돌에도 견딜 수 있습니다. 이것이 바로 트랜잭션 데이터베이스가 은행, 상거래 및 기록 관리 시스템의 중추인 이유입니다.
History
짐 그레이(Jim Gray)는 1981년에 트랜잭션 개념과 그 장점 및 한계를 명확히 설명했습니다. 하더(Härder)와 로이터(Reuter)는 1983년 트랜잭션 지향 복구에 대한 조사에서 ACID라는 약어를 만들었습니다. IBM의 System R을 중심으로 개발된 이러한 아이디어는 신뢰할 수 있는 데이터 처리의 표준 모델이 되었고 이후 모든 데이터베이스 시스템에 영향을 미쳤습니다.
Key figures
- Jim Gray
- Andreas Reuter
- Theo Härder
Related topics
Seminal works
- gray1981
- haerder1983
- gray1992
Frequently asked questions
- ACID의 일관성과 CAP 정리의 일관성 간의 차이점은 무엇입니까?
- 이들은 다른 개념입니다. ACID 일관성은 트랜잭션이 데이터베이스의 무결성 제약 조건을 유지하여 유효한 상태 간에 이동함을 의미합니다. CAP 일관성은 분산 시스템의 모든 복제본이 최신 값에 동의하는 것을 의미합니다. 시스템은 다른 것 없이 하나를 만족할 수 있으므로 동일한 단어가 두 컨텍스트에서 다른 속성을 나타냅니다.
- ACID 속성은 서로 독립적입니까?
- 개념적으로는 별개의 보장이지만, 중복되는 메커니즘에 의해 구현됩니다. 원자성 및 영속성은 로깅 및 복구에서 비롯되고, 격리성은 동시성 제어에서 비롯되며, 일관성은 애플리케이션의 트랜잭션 논리와 시스템의 다른 세 가지 속성 강제 적용에 의해 공동으로 유지됩니다.