ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 트랜잭션(Transaction)이란?
    SQL 2023. 9. 30. 12:05

    Transaction

    • 하나 이상의 쿼리를 처리할 때 동일한 Connection객체를 공유하여 에러가 발생한 경우 모든 과정을 되돌리기 위한 방법
    • 데이터 베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위

     

    Transaction 특징

    • 데이터 베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위
    • 시스템이 응답하기 위한 상태 변환 과정의 작업단위로 하나의 Transaction은 Commit되거나 Rollback된다.
      • Commit : 작업이 성공적으로 끝났을 때, Transaction 연산이 완료된 것을 관리자에게 알려준다.
      • Rollback : 비정상적 종료로 인해 일관성이 깨지면, 원자성을 위해 모든 연산을 취소한다. (Rollback은 해당 트랜잭션을 재시작하거나 폐기한다.)
    • 원자성(Atomicity)
      • DB에 모두 반영되거나 모두 반영되지 않아야 한다.
      • 하나라도 오류가 나온다면 트랜잭션 전부 취소되어야 한다.
    • 일관성(Consistency)
      • 시스템의 고정요소는 Transaction 전/후 모두 상태가 같아야 한다. (일관성 있는 상태 유지)
    • 독립성(Isolation)
      • 하나의 Transaction 실행 중에는 다른 Transaction은 끼어들 수 없다.
      • 수행중인 Transaction은 완료될 때까지 다른 Transaction의 수행 결과를 참조할 수 없다.
    • 영속성(Durablility)
      • 완료된 Transaction 결과는 시스템이 고장나도 영구적으로 반영이 되어야 한다.

     

    Transaction 진행 상태

    1. 성공 (활동 -> 부분 완료 -> 완료)
      • 활동 : Transaction이 실행중인 상태
      • 부분 완료 : Transaction의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태
      • 완료 : Transaction이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태
    2. 실패 (활동 -> 실페 -> 철회)
      • 실패 : Transaction 실행에 오류가 발생하여 중단된 상태
      • 철회 : Transaction이 비정상적으로 종료되어 Rollback 연산을 수행한 상태

     

    Transacrion 전파

    • 트랜잭션 관련 메소드의 호출을 하나의 트랜잭션에 묶이도록 한다.
    • Spring에서는 @Transactional 어노테이션을 통해 쿼리 관련 코드를 하나의 트랜잭션으로 처리한다.
    @Service
    @Transactional(readOnly = true)
    public class boardService {
    	// code...
    }

     

     

     

    출처)https://coding-factory.tistory.com/226

    'SQL' 카테고리의 다른 글

    [SQL] 키 정리  (0) 2023.11.07
    [SQL] 관계선 정리  (0) 2023.11.07
    sql html 태그 제거 쿼리문  (0) 2023.09.30
    SQL UNION 간단하게 알아보기  (0) 2023.09.30
    SQL JOIN 총정리  (0) 2023.09.30
Designed by Tistory.