1. TCL (Transaction Control Language)

트랜잭션이란 사용자에 의해 실행된 데이터 조작어(DML) 명령어들의 집합을 의미하며, 변경된 데이터는 트랜잭션 제어어(TCL)에 의해 데이터베이스에 반영됩니다. 트랜잭션은 논리적인 단위로 하나 이상의 데이터 조작어(DML) 명령어의 실행으로 변경된 데이터들을 의미합니다. 이 트랜잭션은 아직 테이블에 반영된 상태는 아니며, 테이블에 반영하기 위해서는 데이터 조작어(TCL) 명령어인 COMMIT의 실행이나, 데이터 정의어(DDL) 명령어의 실행으로 이루어집니다.

 

2. COMMIT

모든 작업을 정상적으로 처리하겠다고 확정하는 명령어입니다. 트랜잭션의 처리 과정을 데이터베이스에 반영하기 위해서, 변경된 내용을 모두 영구 저장합니다. COMMIT을 수행하면, 하나의 트랜잭션 과정을 종료하게 됩니다. TRANSACTION작업 내용을 실제 DB에 저장합니다. 이전 데이터가 완전히 UPDATE되고, 모든 사용자가 변경한 데이터의 결과를 볼 수 있습니다. 데이터 정의어(DDL)을 사용한 경우 자동으로 COMMIT이 수행되어 더 이상 ROLLBACK할 수 없습니다. 

 

3. ROLLBACK

작업 중 문제가 발생했을 때, 트랜잭션의 처리 과정에서 발생한 변경 사항을 취소하고, 트랜잭션 과정을 종료시킵니다. 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌립니다. 즉, TRANSACTION(INSERT, UPDATE, DELETE) 작업 내용을 모두 취소합니다. 또한 이전 COMMIT한 곳 까지만 복구합니다. 트랜잭션 작업 중 하나라도 문제가 발생하면 모든 작업을 취소해야 하기 때문에 하나의 논리적인 작업 단위로 구성해 놓아야 합니다. 작업관리자를 이용하여 SQL Plus 프로세스를 강제로 종료하고 다시 SQL Plus를 시작시켜 본다면 비정상적으로 종료되었을 때 트랜잭션이 자동으로 ROLLBACK됨을 확인 할 수 있습니다.

 

4 병행처리

병행처리에 대한 문제는 하나의 데이터를 2개 이상의 프로그램에서 공유할 때 발생하는 문제로 한 프로그램이 한 테이블에 대해 변경작업을 할 때, 그 작업의 트랜잭션이 종료되지 않았다면 다른 프로그램에서 변경된 데이터를 확인할 수 없습니다. (변경작업을 COMMIT OR ROLLBACK 하면 종료)

 

 

5 데이터 로킹

데이터베이스관리시스템은 병행처리의 문제점을 해결하기 위해 일반적으로 로킹 기법을 사용합니다. 사용자가 데이터 갱신 작업을 행 단위로 진행할 때 오라클은 작업이 이루어지는 데이터 행마다 로킹이 발생합니다. 

'Oracle' 카테고리의 다른 글

[Oracle] DBMS 구조  (0) 2019.06.04
[Oracle] DDL(Data Definition Language)  (0) 2019.06.02
[Oracle] 데이터 갱신  (0) 2019.04.28
[Oracle] 서브쿼리(SubQuery)  (0) 2019.04.28
[Oracle] 조인(join)  (0) 2019.04.28
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기