ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PL/SQL] 트랜잭션 (Transaction)
    IT, 프로그래밍/Database (Oracle) 2019. 1. 17. 11:00

    트랜잭션(Transaction)이란, 일관성 있는 상호작용을 위한 단위이다.


    데이터베이스 시스템은 ACID (Atomicity, Consistency, Isolation, Durability)를 보장하기 위해 트랜잭션을 논리적 작업단위로 사용한다.


    트랜잭션을 통해 데이터베이스는 항상 일관성 있는 상태를 유지해야 한다.


    비유를 하자면, 돈을 입금하는 도중에 오류가 발생하여 거래가 취소되면 많은 문제가 생길 수 있다. 이를 위해 은행 거래에서는 완전히 거래가 끝났을시에 거래 정보를 확정하고, 오류가 발생하면 거래를 시작하기 전의 상태로 되돌린다.



    PL/SQL상에서 사용할 수 있는 트랜잭션은 아래와 같다.



    1. COMMIT


    데이터베이스 연산이 정확하게 종료되어 변경내역을 실제 데이터베이스에 반영한다.

    만약 DB에 어떤 작업을 수행하고 COMMIT문을 호출하지 않으면 그 변경사항은 영구적으로 반영되지 않는다. 



    COMMIT[WORK]





    2. ROLLBACK


    데이터베이스 연산 중 문제가 발생하였을시에 직전의 COMMIT 지점까지 되돌린다.


    ROLLBACK [WORK] [TO [SAVEPOINT] 세이브포인트명];





    3. SAVEPOINT


    ROLLBACK 수행 시 앞에서 언급했듯이 마지막 COMMIT 지점까지 되돌아간다. 이때 작업 전체가 취소되는데, SAVEPOINT를 지정하면 그 부분에서 트랜잭션을 취소할 수 있다.


    즉, ROLLBACK TO 세이브포인트명; 을 실행하면 해당 지점까지만 처리한 작업이 취소된다.



    SAVEPOINT 세이브포인트명;


    'IT, 프로그래밍 > Database (Oracle)' 카테고리의 다른 글

    [PL/SQL] 레코드 (Record)  (0) 2019.01.18
    [PL/SQL] 커서 (Cursor)  (0) 2019.01.17
    [PL/SQL] 예외처리  (0) 2019.01.17
    [PL/SQL] 함수와 프로시저  (4) 2019.01.16
    [PL/SQL] 기초 문법  (0) 2019.01.16
Designed by Tistory.