트랜잭션(transaction) 제어
2023. 6. 14. 23:54ㆍ학습/Computer Science
트랜잭션 제어
- 트랜잭션 정의
- DB를 조작하는 논리적 연산들(주로 DML)이 하나 이상 모인 단위 작업
- 분해할 수 없는 최소 단위로, 트랜잭션의 완료 및 회복의 기준 단위
- DB관리 시스템은 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미
- 트랜잭션 특징
- 원자성(Atomicitiy) : 모든 연산이 수행되거나 하나도 수행되지 말아야 함
- 일관성(Consistency) : 시스템 고정 요소는 트랜잭션 이후에도 같아야 함
- 고립성(Isolation) : 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받지 않아야함
- 지속성(Durability) : 트랜잭션의 결과는 항상 유지(영구 반영) 되어야 함
- 트랜잭션 상태 제어
- 트랜잭션은 수행 즉시 반영되는 것이 아니므로 진행 상황에 따라 다양한 상태를 가진다.
- 활동(Active) : 실행 중인 상태
- 부분 완료(Partially Committed) 마지막 연산을 끝내고 결과를 반영하기 직전의 상태
- 완료(Committed) : 연산을 완료하고 결과를 데이터베이스에 반영한 상태
- 실패(Failed) : 연산 실행 중 어떤 오류에 의해 더 이상 연산이 진행될 수 없는 상태
- 철회(Aborted) : 트랜잭션 실패로 트랜잭션 실행 전 상태로 복구(ROLL-BACK)된 상태
- 실행 취소(Undo) : 변경되었던 데이터를 취소하고 원래의 내용으로 복원
- 다시 실행(Redo) : Undo를 통해 원래 내용으로 변경되었던 데이터를 다시 앞의 내용으로 복원
- 트랜잭션은 수행 즉시 반영되는 것이 아니므로 진행 상황에 따라 다양한 상태를 가진다.
- COMMIT
- 트랜잭션에 의한 변경 사항을 최종 반영
- COMMIT이 완료되면 이전 상태로 복구(ROLLBACK)할 수 없다.
- ROLLBACK
- 트랜잭션에 의한 변경 사항을 이전 상황으로 복구한다.
- 최종 반영 (COMMIT) 전까지의 작업은 메모리 영역에서 진행되므로 복구가 가능하다
- SAVEPOINT
- 트랜잭션의 규모가 너무 크거나 복잡한 경우에 ROLLBACK 지점을별도로 지정한다.
- 여러 개의 SAVEPOINT를 지정할 수 있다.
Cf.) COMMIT 과 ROLLBACK 덕분에 트랜잭션은 원자성을 보장받는다.
728x90
'학습 > Computer Science' 카테고리의 다른 글
OSI(Open System Interconnection) 7계층 (0) | 2023.06.16 |
---|---|
웹 서버(Web Server)와 웹 애플리케이션 서버(Web Application Server) (0) | 2023.06.15 |
객체 지향 기술의 구성 요소 (0) | 2023.06.14 |
CS - 가상메모리 (0) | 2023.05.29 |
CS - Linux) Linux 리눅스 기본 (0) | 2023.05.22 |