Commit, Rollback

9mond·2023년 7월 25일
0
post-thumbnail
post-custom-banner

1. Commit

  • 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어이다.
  • 트랜젝션의 처리 과정을 데이터베이스에 반영하기 위해서, 변경된 내용을 모두 영구 저장한다.
  • Commit을 수행하면, 하나의 트랜젝션 과정을 종료하게 된다.
  • Transaction(Insert, Update, ..) 작업 내용을 실제 DB에 저장한다.
  • 이전 데이터가 완전히 적용된다.
  • 모든 사용자가 변경한 데이터의 결과를 볼 수 있다.
    --commit과 rollback
    COMMIT;
    SELECT * FROM SAMPLE s ;
    DELETE sample;
    ROLLBACK;

2. Rollback

  • 작업 중 문제가 발생했을 때, 트랜젝션의 처리 과정에서 발생한 변경사항을 취소하고, 트랜젝션 과정을 종료시킨다.
  • 트랜젝션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.
  • Transaction(Insert, Update, Delete) 작업 내용을 취소한다.
  • 이전 commit한 곳까지만 복구한다.
  • 트랜잭션 작업 중 하나라도 문제가 발생하면 모든 작업을 취소해야하기 때문에 하나의 논리적인 작업 단위로 구성해 놓아야 한다.
  • 문제가 발생하면, 논리적인 작업 단위를 모두 취소해버리면 되기 때문이다.

3. Commit, Rollback 명령어의 장점

  • 데이터 무결성이 보장된다.
    -> 데이터가 손상되지 않는 것. 망가지지 않는 것.

  • 논리적으로 연관된 작업을 그룹화할 수 있다.(transaction, rollback)

4. 자동 Rollback 되는 경우

  • 비정상적인 종료

5. 자동 commit 되는 경우

  • create, alter, drop, truncate -> DDL문
  • grant, revoke 권한 -> DCL문
  • insert, update, delete 작업 후 commit하지 않고, 오라클을 정상 종료시에 commit 명령어를 입력하지 않아도 정상 commit 후 오라클 종료
profile
개발자
post-custom-banner

0개의 댓글