트랜잭션(Transaction)

✒️ 2025-05-28 16:00 내용 수정

수제비 2024 정보처리기사 필기 5판 1권의 내용 일부를 참고하여 정리


데이터베이스의 작업을 처리하는 논리적 연산 단위 혹은 DBMS이나 유사 시스템에서 상호작용의 단위

START TRANSACTION; -- 트랜잭션 시작, 수동 COMMIT으로 변경됨

트랜잭션의 특성(ACID)

특성 설명
원자성 (Atomicity) 트랜잭션의 결과는 데이터베이스에 모두 반영되거나 반영되지 않은 상태만 가질 수 있다.
데이터베이스의 연산들은 하나로 묶여 더 이상 나누거나 줄일 수 없는 단위로 취급된다.
Commit/Rollback(TCL(Transaction Control Language)), 회복성 보장 기법과 연관됨
일관성 (Consistency) 트랜잭션은 시작부터 종료까지 같은 형태의 데이터베이스를 참조한다.
트랜잭션이 제약 조건, CASCADE, TRIGGERS를 포함한 정의된 모든 조건에 맞게 데이터 값이 변경된다.
트랜잭션 진행 동안 데이터베이스가 변경되더라도 이전에 사용한 데이터베이스를 참조한다.
무결성 제약조건, 병행 제어 기법(Concurrency Control)과 연관됨
독립성 (Isolation) 특정 DBMS에 다수의 유저들로 인해 트랜잭션이 두 개이상 실행될 때 트랜잭션끼리 서로 영향을 주지 못한다.
하나의 트랜잭션은 다른 트랜잭션의 결과를 참조할 수 없다.
수행 중인 트랜잭션이 완료될 때까지 다른 트랜잭션의 요청을 막아 데이터의 꼬임을 방지한다.
고립화 수준 기법과 연관됨
영구성 (Durability) 트랜잭션의 실행이 성공적으로 완료(Commit)되었을 때 그 결과는 데이터베이스에 영구적으로 반영된다.
회복 기법과 연관됨

트랜잭션의 상태 변화

상태 설명
활동 초기 상태로, 트랜잭션 실행 중의 상태
부분 완료 마지막 명령문이 실행된 후의 상태
완료 트랜잭션이 성공적으로 완료된 후의 상태
실패 정상적인 실행이 더 이상 진행될 수 없을 때 상태
철회 트랜잭션이 취소되고 DB가 트랜잭션 시작 전 상태로 환원된 상태