본문 바로가기
DBMS

[이론 정리] 트랜잭션의 특징, 상태 제어, 동시성 제어

by code cleaner 2022. 9. 17.
반응형

트랜잭션이란?

- 데이터베이스의  DML, 즉 삽입, 갱신, 삭제와 관련된 논리적인 작업을 의미함

- 트랜잭션은 DML 실행과 동시성 제어를 위한 중요한 개념임

- 데이터베이스의 데이터 무결성이 보장되는 상태에서 DML 작업을 완수하기 위한 기본 작업 단위임

- 일반적으로 DML 실행과 실행에 대한 커밋/롤백 단계까지를 트랜잭션이라고 부르지만, 실무에서는 데이터베이스에서 select 문으로 데이터를 조회하고 DML을 실행하여 종료하는 과정까지를 트랜잭션이라고 부름


트랜잭션의 특징

개 념 내 용
원자성(Atomicity) 트랜잭션의 처리가 완전히 끝나지 않았을 경우에는 전혀 이루어지지 않은 것과 같아야 함
일관성(Consistency) 트랜잭션의 실행이 성공적으로 완료되면 데이터베이스는 모순 없이 일관성이 보존된 상태여야 함
고립성(solation) 어떤 트랜잭션도 다른 트랜잭션의 부분벅 실행 결과를 볼 수 없음
지속성(Durability) 트랜잭션이 성공하면 트랜잭션읙 결과를 영구적으로 보장함

트랜잭션의 상태 변화와 트랜잭션 제어어

상태 설명
실행(active) 트랜잭션을 실행 중
부분 완료(parially commited) DML 등 트랜잭션의 명령을 실행한 후의 상태
완료(committed = 커밋) 트랜잭션이 성공적으로 완료
실패(failed) 더 이상 정상적으로 실행될 수 없음을 발견
철회(aborted = 롤백) 트랜잭션이 복원되어 트랜잭션 수행 이전 상태로 돌아감

커밋과 롤백 자세히

개념 설명
커밋(commit) 트랜잭션의 모든 미결정 데이터를 영구적으로 반영함으로싸 트랜잭션을 종료함
(저장과 유사)
롤백(rollback) 트랜잭션의 모든 미결정 데이터 변경을 포기함으로써 트랜잭션을 종료함
(되돌리기와 유사)
커밋 이전 커밋 이후
- 데이터 변경 이전의 상태로 복구가 가능(롤백)
- 현재 사용자만 DML 작업의 결과를 확인
- 다른 사용자는 확인 불가
- 변경 중인 행은 접근 제어되어 다른 사용자가 변경 불가
- 데이터베이스에 데이터를 영구적으로 변경/적용
- 기존 데이터는 상실
- 모든 사용자가 결과 확인 가능
- 접근 제어가 해지되어 다른 사용자가 변경 가능

동시성 제어

동시에 실행되는 여러 개의 트랜잭션이 작업을 성공적으로 마칠 수 있도록 지원함

주로 트랜잭션 직렬화(serialization)을 보장하는 동시성 제어를 통해 트랜잭션을 정상적으로 수행함

제어 기법 설명
락킹(locking) 트랜잭션이 데이터에 잠금(locking)을 설정하면 다른 트랜잭션은 해당 데이터에 대해 잠금이 해제(unlock)될 때까지 접근/수정/삭제가 불가함
타임스탬프(timestamp) 시스템에서 생성하는 고유 번호인 타임스탬프를 트랜잭셩에 부여함으로싸 트랜잭션 간의 접근 순서를 미리 정함
적합성(validation) 검증 먼저 트랜잭션을 수행하고 트랜잭션을 종료할 때 적합성을 검증하여 데이터베이스에 최종 반영함

 

반응형