Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-member domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /ledcorps/www/wp/wp-includes/functions.php on line 6114 4.5 트랜잭션(commit과 rollback) – 대나무숲

4.5 트랜잭션(commit과 rollback)

출처 URL : http://www.gurubee.net/lecture/1403

트랜잭션(TRANSACTION)

– 트랜잭션은 데이터 처리의 한 단위 이다.

– 오라클 서버에서 발생하는 SQL문들이 하나의 논리적인 작업 단위로써 성공하거나 실패하는 일련의 SQL문을 트랙잭션이라 보면 된다.

– 오라클 서버는 트랜잭션을 근거로 데이터의 일관성을 보증 한다.

– 트랜잭션은 데이터를 일관되게 변경하는 DML문장으로 구성된다 (COMMIT, ROLLBACK, SAVEPOINT)

TRANSACTION의 시작
  • – 실행 가능한 SQL문장이 제일 처음 실행될 때
TRANSACTION의 종료
  • – COMMIT이나 ROLLBACK
  • – DDL이나 DCL문장의 실행(자동 COMMIT)
  • – 기계 장애 또는 시스템 충돌(crash)
  • – deadlock 발생
  • – 사용자가 정상 종료
자동 COMMIT은 다음의 경우 발생 한다.
  • – DDL,DCL문장이 완료 될 때
  • – 명시적인 COMMIT이나 ROLLBACK없이 SQL*Plus를 정상 종료 했을 경우
자동 ROLLBACK은 다음의 경우 발생 한다.
  • – SQL*Plus를 비정상 종료 했을 경우
  • – 비정상적인 종료, system failure

COMMIT과 ROLLBACK

  • – COMMIT : 변경사항 저장
  • – ROLLBACK : 변경사항 취소
COMMIT과 ROLLBACK의 장점
  • – 데이터의 일관성을 제공 한다.
  • – 데이터를 영구적으로 변경하기 전에 데이터 변경을 확인하게 한다.
  • – 관련된 작업을 논리적으로 그룹화 할 수 있다.
  • – COMMIT, SAVEPOINT, ROLLBACK 문장으로 TRANSACTION의 논리를 제어할 수 있다.
COMMIT이나 ROLLBACK 이전의 데이터 상태
  • – 데이터 이전의 상태로 북구가 가능 하다.
  • – 현재 사용자는 SELECT문장으로 DML작업의 결과를 확인할 수 있다.
  • – 다른 사용자는 SELECT문장으로 현재 사용자 사용한 DML문장의 결과를 확인할 수 없다.
  • – 변경된 행은 LOCK이 설정 되어서 다른 사용자가 변경 할 수 없다.
COMMIT 이후의 데이터 상태
  • – 데이터베이스에 데이터를 영구적으로 변경
  • – 데이터의 이전 상태는 완전히 상실
  • – 모든 사용자가 결과를 볼 수 있다.
  • – 변경된 행의 LOCK이 해제되고 다른 사용자가 변경할 수 있다.
  • – 모든 SAVEPOINT는 제거 된다.

참고링크

SQL 전문가 가이드 – 트랜잭션

SQL 전문가 가이드 – 동시성 제어


답글 남기기 0

Your email address will not be published. Required fields are marked *