180307 Oracle 트랜잭션 - RYUDONGJIN/Memo_wiki GitHub Wiki

트랜잭션

  • 데이터 처리의 한 단위
  • 오라클에서 발생하는 여러 개의 SQL 명령문들을 하나의 논리적인 작업 단위로 처리
  • 하나의 트랜잭션은 All-OR-Nothing 방식으로 철
  • 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구시키기 위해 도입

COMMIT

  • DML 작업이 성공적으로 처리되도록 하기 위해서는 COMMIT 명령을, 작업을 취소하기 위해서는 ROLLBACK 명령으로 종료해야 한다.
  • COMMIT은 모든 작업들을 정상적으로 처리하겠다고 확정하는 명령어, 트랜잭션의 처리 과정을 데이터베이스에 모두 반영하기 위해서 변경된 내용을 모두 영구 저장
  • COMMIT 명령어를 수행하게 되면 하나의 트랜잭션 과정을 종료
  • 이전 데이터가 완전히 UPDATE

ROLLBACK

  • 작업 중 문제가 발생되어서 트랜잭션의 처리 과정에서 발생한 변경사항을 취소하는 명령어
  • 트랜잭션 과정을 종료 및 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌림
  • 문제가 발생하면 논리적인 작업 단위를 취소해 버린다.
  • COMMIT 이전으로 복구

COMMIT 과 ROLLBACK 의 장점

  • 데이터 무결성 보장
  • 영구적인 변경 전에 데이터의 변경 사항 확인 가능
  • 논리적으로 연관된 작업을 그룹화

SAVEPOINT

  • 현재의 트랜잭션을 작게 분할할 수 있음
  • 저장된 SAVEPOINNT는 ROLLBACK TO SAVEPOINT 문을 사용하여 표시한 곳까지 ROLLBACK 가능