-
Transaction - ACIDDev/간단 개념 2020. 12. 29. 02:37
트랜잭션
데이터베이스의 상태를 변화시킬 때 더 이상 분리할 수 없는 작업의 단위
ACID
원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)의 앞글자만을 딴 약어로, 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질들을 의미함.
원자성
트랜잭션은 하나 이상의 관련된 동작을 하나의 작업 단위로 처리
하나의 작업 단위: 그 결과가 성공/실패할 경우 관련된 동작은 모두 동일한 결과가 나와야 함(모두 성공, 혹은 모두 실패)
작업 중 하나라도 실패한다면 트랜잭션 내에서 먼저 처리한 동작들도 모두 처음 상태로 돌아감(롤백)
일관성
트랜잭션이 성공적으로 처리된 경우 데이터베이스의 관련된 모든 데이터는 제약 조건, 캐스케이드, 트리거 및 이들의 조합을 포함하여 정의 된 모든 규칙에 따라 유효해야 한다.
영어 위키에서의 일관성
Consistency ensures that a transaction can only bring the database from one valid state to another, maintaining database invariants: any data written to the database must be valid according to all defined rules, including constraints, cascades, triggers, and any combination thereof. This prevents database corruption by an illegal transaction, but does not guarantee that a transaction is correct. Referential integrity guarantees the primary key – foreign key relationship.
고립성
트랜잭션은 독립적으로 처리되며 처리 과정에서 외부에서의 간섭이 없어야 한다. 서로 다른 트랜잭션이 동일한 데이터에 동시에 접근할 경우 적절한 동시 접근 제어를 해야 한다(Rock 등)
지속성
트랜잭션이 성공적으로 처리될 경우 그 결과는 지속적으로 유지되어야 한다.
영어 공부좀 많이 해야겠다......