C. Oracle

oracle TCL

sfeg 2018. 1. 18. 21:25

TCL  => TRANSACTION  CONTTOL  LANGUAGE

 
  
TRANSACTION => 일련의 작업처리를 위한 연관된 DML의 모음 -> ALL[COMMIT] or  NOTHING[ROLLBACK]
 
COMMIT         : 작업한 내용을 반영한다.
ROLLBACK      : 작업한 내용을 되돌린다.
 
 
UNDO SEGMENT 
  =>
부분적인 위치 표시자(SAVEPOINT)를 남겨 원하는 데이타만큼만 ROLLBACK 할수 있다.
        SAVEPOINT는 ANSI표준이 아니다.
 
SAVEPOINT ROLLBACK TO
                             EX) INSERT INTO DEPT VALUES(1,'A','B');
                                    SAVEPOINT A1;
 
                                    INSERT INTO DEPT VALUES(2,'B','C');
                                    SAVEPOINT A2;
 
                                     INSERT INTO DEPT VALUES(3,'C','D');
                                     SAVEPOINT A3;
 
                                      INSERT INTO DEPT VALUES(4,'D','E');
                                      SAVEPOINT A4;
 
                                      ROLLBACK TO  A3;
 
 
 
자동으로 COMMIT, ROLLBACK하는경우     
 =>  AUTO  COMMIT        : DDL,DCL, 정상종료시
 =>  AUTO  ROLLBACK     : 비정상 종료시
 
 
  
- 무결성
 
 
- 동시성 : READ CONSISTENCY(읽기 일관성)
    => 하나의 DML문을 여러 접속실행후 같이 실행시 먼저 실행한결과가 COMMIT 또는  ROLLBACK되어 결과가
         명확해지기까지 다른접속에서는 실행이 안된다. 또한 결과가 반영되기전까지 한쪽에서 DML실행한 값을
         다른 접속에서는 확인할 수 없다. 원래의 값이 보임. = LOCK(TRANSATION 간의 상호 파괴적인 행위를
         막기위한
  ORACLE의 보호 메카니즘)
 
- LOCK : * TRANSATION 간의 상호 파괴적인 행위를 막기위한 ORACLE의 보호 메카니즘
                  * 결과값이 반영(COMMIT,ROLLBACK)되기전까지 무한대기한다.
                  * AUTO
                  * 최저 level
                  * row level LOCK (같은 행에 대해서만 LOCK이 걸린다.)
                  * DML LOCK