구트아카데미/6. Oracle

[Oracle] 트랜잭션

sunhoKim 2021. 9. 7. 10:07

트랜잭션이란?

100만원이 들어있는 A계좌에서 -> 잔액이 0원인 B계좌로 100만원을 이체 한다라는 과정.

 

1. -> A계좌 잔액을 0원으로 변경하는 UPDATE문 실행

UPDATE ACCOUNT SET BALANCE = 0 WHERE ACCNO = A계좌번호

2. -> B계좌 잔액을 100만원으로 변경하는 UPDATE문 실행

UPDATE ACCOUNT SET BALANCE = 1,000,000 WHERE ACCNO = B계좌번호

 

갑자기, 1번 SQL문을 실행 후, DBServer에 문제가 생기면, 그 돈은 증발해버립니다.

 

따라서, 두 UPDATE문은 하나의 실행 단위처럼 꼭 붙어 있어야 한다.

트랜잭션이란 더 이상 분할할 수 없는 최소 수행 단위를 뜻하며, 한 개 이상의 조작 명령어(DML)로 이루어 진다.

 

트랜잭션은 하나의 트랜잭션 내에 있는 여러 명령어를 한 번에 수행하여 작업을 완료하거나,

아예 모두 수행하지 않는 상태, 즉 모든 작업을 취소한다.

이러한 특성으로 트랜잭션 의미를 'ALL OR NOTHING' 문장으로 설명하기도 하며,

트랜잭션을 제어하기 위해 사용하는 명령어를 TCL(Transaction Control Language) 이라고 한다.

728x90