Transaction(트랜잭션)
2021. 8. 17. 23:09ㆍDataBase
- 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
데이터베이스의 상태를 변화시킨다? - "SELECT, INSERT, DELETE, UPDATE" 질의어(SQL)를 이용하여 데이터베이스에 접근하는것을 의미
- 트랜잭션은 데이터베이스에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위
- 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위
- 하나의 트랜잭션은 Commit 되거나 Rollback됨
트랜잭션의 특징
- 원자성(Atomicity): 트랜잭션이 데이터베이스에 모두 반영되던가 아니면 전혀 반영되지 않는다.
- 일관성(Consistency): 튼랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.
- 독립성(Isolation): 둘 이상의 트랜잭션이 동시에 실행중일때, 어떤 하나의 트랜잭션이라도 다른 트랜잭션 연산에 끼어들 수 없다(참조할 수 없다).
- 지속성(Durability): 트랜잭션이 성공적으로 완료되었을 경우, 그 결과는 영구적으로 반영되어야 한다.
트랜잭션의 Commit 연산, Rollback연산
Commit 연산:
상태: 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태
역할: 하나의 트랜잭션이 끝났다는 것을 알리기 위해 사용한다.
Rollback 연산:
상태: 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 꺠진 상태
역할: 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 다시 취소(Undo)시키는데 사용한다. Rollback시 해당 트랜잭션을 재시작하거나 폐기한다.
트랜잭션의 상태
- 활동(Active): 트랜잭션이 실행 중에 있는 상태, 연산들이 정상적으로 실행 중인 상태
- 장애(Failed): 트랜잭션이 실행에 오류가 발생하여 중단된 상태
- 철회(Aborted): 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
- 부분 완료(Partially Committed): 트랜잭션이 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태
- 완료(Committed): 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태
출처:
'DataBase' 카테고리의 다른 글
Replication(리플리케이션) (0) | 2021.08.25 |
---|---|
효과적인 쿼리 저장 (0) | 2021.08.25 |
Optimizer(최적화의 원리) (0) | 2021.08.24 |
정규화(Normalization) - 1차 2차 3차 BCNF (2) | 2021.08.16 |
Database Pool(데이터베이스 풀) (0) | 2021.08.16 |