트랜잭션(Transaction)은 일련의 연산 집합이라는 의미로 쓰이며, 데이터베이스의 상태를 변화시키기 위해 논리적 기능을 수행하는 하나의 작업 단위다. 트랜잭션이 가져야 할 특성은 네 가지로 정리된다. 원자성(Atomicity)은 트랜잭션의 연산이 전부 실행되거나 전무(nothing) 실행되어야 한다는 것으로, 일부만 반영되는 부분 실행은 허용되지 않는다. 일관성(Consistency)은 트랜잭션이 수행된 후에도 데이터베이스가 일관된 상태를 유지하는 것이다. 격리성(독립성, Isolation)은 트랜잭션 수행 중 다른 트랜잭션의 연산이 끼어들 수 없는 것으로, 실행 중인 트랜잭션의 중간 결과가 다른 트랜잭션에 보이지 않아야 한다. 지속성(영속성, Durability)은 성공적으로 완료된 갱신이 영구적으로 저장되는 것이다. 이 네 가지에 속하지 않는 '투명성' 같은 보기가 '특성이 아닌 것'으로 나오면 그것이 정답이다.
트랜잭션의 종료 연산도 구분된다. COMMIT은 한 작업의 논리적 단위가 성공적으로 끝났고 데이터베이스가 다시 일관된 상태에 있으며 갱신 연산이 완료되었음을 트랜잭션 관리자에게 알려 영구 저장하는 연산이고, ROLLBACK은 트랜잭션을 취소하는 연산이다. 구조점(savepoint)은 트랜잭션 안에 여러 개를 자유롭게 설정할 수 있는 중간 저장점이어서, '한 번만 지정할 수 있다'는 설명은 틀리다.
동시성 측면에서는 병행 제어가 나온다. 하나의 트랜잭션이 데이터에 접근하는 동안 다른 트랜잭션이 그 데이터 항목에 접근하지 못하게 막는 방법이 로킹(Locking)이며, 병행 제어의 핵심 목적은 일관성 유지다. '일관성을 최소화한다'는 보기는 병행 제어의 목적과 정반대이므로 오답이다.
예제
'트랜잭션이 가져야 할 특성이 아닌 것은?' 문제에서는 투명성 같은 ACID 외 항목을 골라낸다. 격리성 문제는 '다른 트랜잭션의 연산에 끼어들 수 없음'이라는 키워드로 출제되며, '영향을 받는다', '중간 결과가 보인다'는 서술은 무조건 틀린 설명이다. COMMIT 문제는 '성공 종료를 알리고 영구 저장하는 연산'이라는 정의로, 로킹 문제는 '다른 트랜잭션의 접근을 차단하는 기법'이라는 정의로 나온다.
대표 기출 3문항
데이터의 무결성(integrity)을 보장하기 위하여 DBMS의 트랜잭션이 가져야 할 특성에 해당하지 않는 것은?
트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.
트랜잭션의 실행은 데이터베이스의 일관성을 유지해야 한다.
트랜잭션이 일단 그 실행을 성공적으로 완료하면 그 결과는 영속적이어야 한다.
하나의 트랜잭션이 실행 중에 있는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 있어야 한다.
정답과 해설 보기
정답 ④ · 트랜잭션이 갖추어야 할 ACID 특성에 해당하지 않는 것을 묻는 문제이다. 트랜잭션의 특성은 원자성, 일관성, 격리성, 지속성인데, 1번은 원자성, 2번은 일관성, 3번은 지속성에 각각 해당하는 올바른 설명이다.
트랜잭션의 중간 결과가 다른 트랜잭션에 보이지 않도록 격리(Concurrency Control)해야 무결성이 보장된다.
트랜잭션은 자기의 연산에 대하여 전부(all) 또는 전무(nothing) 실행만이 존재하며, 일부 실행으로는 트랜잭션의 기능을 가질 수 없다는 트랜잭션의 특성은?
consistency
atomicity
isolation
durability
정답과 해설 보기
정답 ② · 트랜잭션의 ACID 특성 중 전부 실행 또는 전무 실행만 허용되는 특성을 묻는 문제이다. 원자성(atomicity)은 트랜잭션을 구성하는 연산들이 모두 실행되거나 하나도 실행되지 않아야 하며, 일부만 실행된 상태를 허용하지 않는 특성으로 마치 쪼갤 수 없는 원자에 비유된다.
트랜잭션이 전부 실행되거나 전무해야 하는 원리는 원자성(Atomicity)으로, 부분 실행을 허용하지 않는다.
트랜잭션(Transaction)이 가져야 할 특성에 해당하지 않는 것은?
원자성(Atomicity)
투명성(Transparency)
일관성(Consistency)
격리성(Isolation)
정답과 해설 보기
정답 ② · 트랜잭션이 갖추어야 할 ACID 특성에 해당하지 않는 것을 고르는 문제이다. 트랜잭션의 4대 특성은 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)이다.
트랜잭션의 ACID 특성은 원자성, 일관성, 격리성, 지속성이며, 투명성은 트랜잭션 특성이 아니다.