쏭의 개발 블로그

[DB] 트랜잭션(Transaction) 본문

DB

[DB] 트랜잭션(Transaction)

songu1 2023. 1. 31. 15:53

1. 트랜잭션이란

데이터베이스의 상태를 변경시키기위해 수행하는 작업 단위

💡 데이터베이스 상태 변경 = SELECT, UPDATE, INSERT, DELETE와 같은 행동

  • 작업단위 : 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것
    • DB 작업
      1. A의 계좌에서 만원 차감 - UPDATE
      2. B의 계좌에 만원 추가 - UPDATE
    • 현재 작업 단위 : 출금 UPDATE + 입금 UPDATE ⇒ 하나의 트랜잭션
    • A가 B에게 만원을 송금하는 상황

특징

  1. 데이터베이스 시스템에서 병행 제어 및 회복 작업이 처리되는 작업의 논리적 단위
  2. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위
  3. 하나의 트랜잭션은 Commit되거나 Rollback

 

2. 트랜잭션의 특징

원자성 (Acid)

트랜잭션이 DB에 모두 반영되거나 전혀 반영되지 않거나를 의미

  • All or Nothing을 의미
  • recovery subsystem의 책임

일관성 (Consistency)

트랜잭션 작업 처리의 결과가 항상 일관되어야 함

  • 데이터 타입이 반환 전과 후가 항상 동일해야함
  • 프로그래머의 책임

독립성 (Isolation)

하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 독립적임

  • 트랜잭션은 다른 트랜잭션으로부터 고립된 것처럼 보여야함
  • 트랜잭션끼리 간섭 불가능
  • 동시성 제어 subsystem

지속성 (Durability)

트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 함

  • commit이 된다면 지속성 만족 가능
  • recovery subsystem의 책임

 

3. 트랜잭션의 commit과 rollback

Commit

  • 하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성있는 상태에 있음을 의미

Rollback

  • 트랜잭션의 원자성이 깨질 때, 즉 하나의 트랜잭션 처리가 비정상적으로 종료되었을 때의 상태
  • 트랜잭션을 다시 실행하거나 부분적으로 변경된 결과를 취소할 수 있음

 

4. 트랜잭션의 상태

https://wonit.tistory.com/462

  • Active (활동) : 트랜잭션이 현재 실행중인 상태
  • Failed (실패) : 트랜잭션이 실행되다가 오류가 발생하여 중단된 상태
  • Aborted (철회) : 트랜잭션이 비정상 종료되어 Rollback이 수행된 상태
  • Partially Committed (부분 완료) : 트랜잭션의 연산이 마지막까지 실행되고 Commit 되기 직전 상태
  • Committed (완료) : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태

 

 

 


[데이터베이스] Transaction, 트랜잭션이란?

 

[데이터베이스] Transaction, 트랜잭션이란?

Transaction, 트랜잭션 트랜잭션(Transaction) 이란, 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 데이터베이스의 상태를 변경시킨다는 이야기는 SELECT, UPDATE, INSERT, DELETE 와 같은

wonit.tistory.com

DB 트랜잭션(Transaction) | 👨🏻‍💻 Tech Interview

 

DB 트랜잭션(Transaction) | 👨🏻‍💻 Tech Interview

DB 트랜잭션(Transaction) 트렌잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 작업 단위 → 많은 SQL 명령문들

gyoogle.dev

 

'DB' 카테고리의 다른 글

[DB] Redis  (0) 2023.02.11
[DB] Transaction Isolation Level 트랜잭션 고립수준  (1) 2023.02.01
[SQL] 데이터베이스 - TCL  (0) 2023.01.31
[DB] SQL 문법 정리 - DDL, DML  (0) 2023.01.31
[DB] 정규화  (0) 2023.01.31