[데이터베이스] 트렌젝션 4가지 속성에 대하여 알아보자
Transaction
더이상 쪼갤수 없는 하나의 작업 단위
x) 송금시스템
A계좌 | B계좌 |
송금 ----- 출금한다 ------>| |
| ----- 입금한다 ----> |
Transaction의 4가지 속성 만족
1) 원자성(Atomicity)
- 트랜잭션은 연산들을 전부 실행하든지 전혀 실행하지 않아야지 일부만 실행해서는 안된다. All or Nothing
2) 일관성(Consistency)
- 틀랜잭션이 성공적으로 실행되면 데이터베이스 상태는 모순되지 않고 일관된 상태가 된다.
- 출금한 금액만큼 입금이 이루어져서 출금 데이터와 입금 데이터가 일치해야한다.
3) 격리성(Isolation)
- 트랜잭션 실행 도중의 연산 결과는 다른 트랜잭션에서 접근할 수 없다.
- 출금을 하는 중에는 다른 사람이 출금을 실행할 수 없다
4) 영속성(Durability)
- 트랜잭션이 성공적으로 완료되면 그 결과는 영속적이다.
- 데이터가 어딘가 저장되어 있어야 한다.
DDL, DCL
- 자동으로 트랜잭션이 완료된다. (자동 커밋)
DML
- 자동으로 트랜잭션 완료가 되지 않는다.
- 작업이 끝나길 기다리므로 트랜잭션 완료를 해야한다.
1) 실제 DB에 반영 위해 COMMIT;
2) 원상태로 돌리고 싶을 떈 ROLLBACK;