-
트랜잭션의 정의
- 전부 완료되거나 또는 전부 복구되어야 하는 작업의 논리적 단위
- 한번에 수행되어야 할 데이터베이스 연산들의 일련의 연속으로써 Read와 Write 연산들로 구성
-
동시성 제어와 회복을 위한 기법들의 근본임
-
트랜잭션의 특성
데이터 무결성을 보장하기 위해 DBMS는 다음의 ACID 성질을 유지해야 함
-
원자성(Atomicity)
트랜잭션의 모든 연산 수행 결과가 모두 데이터베이스에 반영(All)되거나 또는 전혀 반영되지 않아야(Nothing) 하는 특성
-
COMMIT
트랜잭션의 성공적인 완료로, 이 결과 트랜잭션의 변경 작업이 데이터베이스에 영구적으로 반영됨
-
ROLLBACK
트랜잭션을 처음 상태로 복구하는 것으로, 이 결과 데이터베이스에 대한 트랜잭션 변경 작업이 취소됨(Undo)
-
일관성(Consistency)
- 트랜잭션의 실행이 데이터베이스를 하나의 일관된 상태에서 또 다른 일관된 상태로 변환하는 특성
- 한 트랜잭션이 성공적으로 실행을 완료하면 데이터베이스는 모순 없이 일관성이 보존되는 특성
- 트랜잭션이 수행 중에는 데이터베이스가 일시적으로 비일관성 상태에 놓여질 수 있음
-
고립성(Isolation)
- 한 트랜잭션이 하나의 데이터 처리를 완료할 때까지, 자신이 변경한 데이터의 내용을 다른 트랜잭션이 참조할 수 없도록 보장하는 특성
- 다수의 트랜잭션이 동시에 실행될 수 있다 하더라도, 각 트랜잭션의 연산 수행의 중간 결과를 다른 트랜잭션이 이용하지 못하도록 함
- 각 트랜잭션은 다른 트랜잭션들이 동시에 실행되고 있는 환경과는 무관하게 데이터베이스의 일관성을 유지하는 특성
-
지속성(Durability)
트랜잭션이 성공적으로 완료된 후에 트랜잭션에 의해 이루어진 데이터베이스의 변경은 시스템 장애가 발생한다 하더라도 유지되어야 하는 특성
-
-
트랜잭션의 상태 전이
-
트랜잭션의 일관성 수준(SQL 92)