트랜잭션이란?
100만원이 들어있는 통장에서 10만원을 인출하려고 카드를 ATM기에 넣은 순간부터 내 손에 정확히 10만원이 들려있는 순간까지를 하나의 트랜잭션이라고 한다.
[ 정의 ]
- 데이터베이스 트랜잭션들이 안정적으로 수행된다는 것을 보장하기 위한 성질을 가리키는 약어.
[ 특징 4가지]
- 원자성 ( Atomicity )
- 정의 : 트랜잭션과 관련된 작업들이 모두 수행되었는지 아니면, 모두 실행이 안되었는지를 보장하는 능력.
- 예 : 자금 이체는 성공할 수도 실패할 수도 있지만, 중간 단계까지 실행되고 실패하는 일은 없도록 하는 것.
- 일관성 ( Consistency )
- 정의 : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것.
- 예 : 무결성 제약이 모든 계좌는 잔고가 있어야 한다면, 이를 위반하는 트랜잭션은 중단된다.
- 고립성 ( Isolation )
- 정의 : 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것. 즉, 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다.
- 예 : 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다.
- 지속성 ( Durability )
- 정의 : DBMS가 사용자에게 트랜잭션 커밋(commit) 응답을 했을 경우, 설사 데이터베이스 객체에 대한 해당 변경 사항이 디스크에 반영(flush) 되기 전에 시스템 장애가 발생하였더라도 해당 트랜잭션의 커밋은 보장 되어야 한다는 속성.
- DBMS는 트랜잭션의 지속성을 제공하기 위해 로그(log)라고 하는, 즉, 데이터베이스 객체의 갱신 작업에 대한 기록을 관리한다. 커밋된 트랜잭션에 의해 갱신된 내용이 디스크에 미처 반영되기 전에 시스템 장애가 발생하면, 시스템 재 구동 시에 로그를 판독하여 변경된 내용을 복구하게 된다.
Uploaded by Notion2Tistory v1.1.0