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장 데이터조작의 장애를 제거하라

댓글 없음:

댓글 쓰기

언제 부터 였던가 생각해보니 아르바이트 겸 외부 컨설팅을 의뢰 받고 맥북 프로를 처음 써봤을 때 부터 였던 것 같다. 지금은 거의 대부분의 작업을 맥으로 작업을 하다 보니 윈도우에서만 실행되는 일부 프로그램들 때문과 회사 내부 ERP프로그램이 윈도우 ...