2011년 6월 30일 목요일

[Oracle.6]DML (Data Manipulation Language) - TRANSACTION

DML ( Data Manipulation Language )
테이블의 데이터는 조회 및 추가, 수정, 삭제할 수 있어야 한다. DML은 이와 관련된 명령어를 부르는 용어로 데이터 조작 명령을 통해 테이블 내 데이터를 추가, 수정, 삭제 할 수 있다.
1. TRANSACTION
TRANSACTION은 하나의 작업의 단위를 말한다. 예를 들어 A씨가 B씨에게 $500을 이체 하려고 하면, 정상적인 이체가 이루어 지면 A씨 계좌에서 $500이 차감되고, B씨 계좌에서 $500이 더해지고 이것이 데이터베이스에 자장된다. 이것이 하나의 작업이 되는 것이다.
반면 A씨 계좌에서 $500을 차감 했는데 B씨 계좌를 처리하고자 할 때 시스템에 문제가 생겨 정상적으로 처리가 되지 않았을 경우에는 A씨 계좌에 대한 처리도 무효가 되어야 한다.
Oracle에서는 DML문이 정상적으로 실행되더라도 Transaction은 아직 진행 중이다. 따라서Transaction을 종료하고자 할 때는 반드시 작업이 성공적으로 처리되면 COMMIT, 작업을 취소하고자 한다면 ROLLBACK 명령으로 Transaction을 종료 하여야 한다.
1) INSERT TRANSACTION
INSERT INTO 테이블이름(칼럼이름1, 칼럼이름2, …)
VALUES(1, 2, …)
테이블에 데이터를 추가하기 위한 명령. 추가한 후에는 Transaction을 정상적으로 종료하여야 한다. ( COMMIT or ROLLBACK )
2) 여러 행을 한번에 INSERT
INSERT INTO 테이블이름(칼럼이름1, 칼럼이름2, …)
SELECT 구문
3) 여러 테이블을 한번에 INSERT
INSERT [ALL / FIRST ]
           WHEN 조건1 THEN
                     INTO 테이블이름1
           WHEN 조건2 THEN
                     INTO 테이블이름2
           ELSE
INTO 테이블이름0
SELECT 구문;
기존 INSERT구문에 OPTION, 조건 SELECT 구문이 추가 되었다. ALL일 경우 조건을 파악하여 참이면 INTO절을 수행하게 된다.
INSERT문을 중심으로 TRANSACTION에 대해 보았다. 다음으로 제약 조건과 함께 다른 조작 언어들을 살펴 보자.



*** 참조 문헌 : 10g로 시작하는 오라클 SQL & PL/SQL - 5장 데이터조작의 장애를 제거하라

댓글 없음:

댓글 쓰기

 다양한 채널의  블로그 작성으로  집중이 좀 안되기도 하고  나의 회사를 운영하고 관리 하다 보니  회사의 블로그로 작성 해보는 것은 어떤가 하고  하나로 옮겨 봅니다.  (주)다이닝웨이브 - 블로그 바로가기