Programming/기초 지식

SQL 트랜잭션(Transaction)

728x90

 

 

목차

     

     

     


     

    2021.12.10 - [Programming/Java 기초] - SQL 데이터 삽입/수정/변경

     

    SQL 데이터 삽입/수정/변경

    목차 2021.12.10 - [Programming/기초 지식] - SQL 데이터 검색 SQL 데이터 검색 목차 2021.12.09 - [Programming/기초 지식] - SQL 제약조건 SQL 제약조건 목차 2021.12.08 - [Programming/기초 지식] - SQL의 개..

    montoo.tistory.com

     

    1. 트랙잭션

    1.1. 트랜잭션의 개념

    • 트랜잭션(Transaction)
      • 논리적인 일의 단위
    • 기본 설정 : 하나의 SQL은 하나의 트랜잭션이다.
    • 여러 개의 SQL문들이 합쳐져 하나의 트랜잭션이 될 수도 있다.
    • 트랜잭션의 활용
      • 동시성 제어 : 여러 사용자나 여러 응용 ㅍ로그램들이 동시에 수행되어도 서로 간섭하지 못하도록 보장한다.
      • 회복 : 데이터베이스를 갱신하는 도중에 시스템 고장 시에도 데이터베이스의 일관성을 유지한다.

    1.2. 트랜잭션의 특성

    • 원자성(Atomicity)
      • 한 트랜잭션 내의 모든 연산들이 완전히 수행되거나 전혀 수행되지 않음
    • 일관성(Consistency)
      • 어떤 트랜잭션이 수행되기 전에 데이터베이스가 일관된 상태를 가졌다면 트랜잭션이 수행된 후에 데이터베이스는 또 다른 일관된 상태를 가짐
    • 격리성 (Isolation)
      • 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 갱신 중인 데이터를 다른 트랜잭션들이 접근하지 못하도록 해야 함
    • 영속성 (Durability)
      • 일단 한 트랜잭션이 완료되면 이 트랜잭션이 갱신한 것은 그 후에 시스템 고장이 발생하더라도 손실되지 않는다.

    1.3. 트랜잭션의 상태

    • 부분완료 : 마지막 명령문을 실행한 상태
    • 완료(COMMIT) : 모든 트랜잭션 결과를 DB에 반영한 상태
    • 실패 : 트랜잭션의 실패
    • 철회 : 트랜잭션의 모든 결과를 원상태로 돌려놓은 상태


     

    2. 트랜잭션 제어문(TCL)

    2.1. 트랜잭션 제어문

    • COMMIT
      • 트랜잭션의 마지막 명령어가 수행되었음을 나타냄
    • ROLLBACK
      • 트랜잭션의 변경을 취소하고 트랜잭션 종료
    • SAVEPOINT
      • 현재 트랜잭션에서 ROLLBACK시킬 위치를 지정

    2.2. 트랜잭션 제어문(TCL) 활용

    • 간단한 트랜잭션 철회
    • 오류발생에 따른 트랜잭션 철회
      • 트랜잭션을 구성하는 명령문들 중에서 오류가 발생되면 트랜잭션을 철회하고 그렇지 않으면 완료하는 것이 필요
    • SAVEPOINT를 이용한 트랜잭션 부분 철회
      • 트랜잭션 내에서 SAVEPOINT의 지정
        SAVE TRAN 저장점명​
      • 저장점 위치로 ROLLBACK
        ROLLBACK TRAN 저장점명​
    300x250