[Oracle DB] TCL (TRANSACTION CONTROL LANGUAGE)

방용환·2023년 5월 4일
0
post-thumbnail

TCL (TRANSACTION CONTROL LANGUAGE)

1. TCL (TRANSACTION CONTROL LANGUAGE)

  • TCL (TRANSACTION CONTROL LANGUAGE) : 트랜잭션 제어어
    => 트랜잭션에 저장된 SQL 명령을 실제 테이블에 적용하거나 테이블에 적용하지 않고 취소하는 명령
  • 트랜잭션 (TRANSACTION) : 사용자 접속 환경(세션)에서 전달된 SQL 명령을 DBMS 서버에 저장하는 논리적인 작업단위
    => SQL 명령을 전달받아 DBMS 서버는 실제 테이블에 SQL 명령을 적용하지 않고 트랜잭션에 저장하여 검색시 사용

2. 트랜잭션

  • 데이터 일관성 : DBMS 서버에 접속된 모든 사용자에게 동일한 검색결과 제공
  • 데이터 무결성 : 테이블에 비정상적인 값을 저정하지 않아 정상적인 검색결과 제공
  • 데이터 잠김 기능(LOCK)을 제공하기 위해 트랜잭션 사용
  • 현재 세션에서 작업중인 테이블의 행을 다른 세션에서 작업하지 못하도록 트랜잭션을 사용하여 데이터 잠금 기능 제공
  • 현재 세션에서 작업중인 테이블의 행을 다른 세션에서 조작할 경우 트랜잭션의 데이터 잠금 기능으로 인해 다른 세션이 일시적으로 중지
    => 현재 세션에서 작업중인 테이블의 행에 대한 트랜잭션의 명령을 COMMIT 또는 ROLLBACK 처리 해야만 다른 세션의 DML 명령이 실행 가능

3. COMMIT 처리

  • 트랜잭션에 저장된 SQL 명령을 실제 테이블에 적용하기 위해서는 COMMIT 처리 (COMMIT 후 트랜잭션 초기화)
  1. 현재 세션에서 정상적으로 서버 접속을 종료한 경우 자동 COMMIT 처리
  2. DDL 명령 또는 DCL 명령을 작성하여 전달할 경우 자동 COMMIT 처리
  3. 서버에 전달하여 트랜잭션에 저장된 DML 명령은 COMMIT 명령을 사용하여 COMMIT 처리

4. ROLLBACK 처리

  • 트랜잭션에 저장된 SQL 명령을 실제 테이블에 적용하지 않고 초기화하기 위해 ROLLBACK 처리
  1. 현재 세션에서 비정상적으로 서버 접속이 종료된 경우 자동 ROLLBACK 처리
  2. 서버에 전달하여 트랜잭션에 저장된 DML 명령은 ROLLBACK 명령을 사용하여 ROLLBACK 처리

5. SAVEPOINT

  • SAVEPOINT : 트랜잭션에 라벨(위치정보)을 부여하는 명령
  • 트랜잭션에 저장된 DML 명령을 라벨을 이용하여 원하는 위치의 DML 명령만 ROLLBACK 처리하기 위해 SAVEPOINT 사용
SAVEPOINT 라벨명
  • SQVEPOINT 명령으로 설정된 라벨을 이용한 ROLLBACK 처리
ROLLBACK TO 라벨명

0개의 댓글