99클럽 코테 스터디 14일차 TIL DB Transaction
728x90
  • DB
    • Index
      • Index 작동 원리
      • Index 종류
        • B-Tree 인덱스
        • Hash Indexes
        • Bitmap Index
        • GIST(Generalized Search Tree)
        • R-Tree
        • Full Text Index
        • Spatial Index
        • Trie(Prefix Tree) Index
        • Covering Index
  • 영속성
  • 트랜잭션
  • ORM
  • ACID
  • N+1 문제
  • DB 정규화
  • Data Replication
  • sharding 전략
  • CAP 이론

란?

  • DB 의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 연산들을 의미함.
    ➡️ DB 응용 프로그램은 트랜잭션의 집합으로 정의할 수 있음.
  • 트랜잭션은 데이터의 무결성과 일관성을 유지하는 데 중요한 역할을 함.

특성

  • 원자성
    • 트랜잭션 내의 모든 작업은 완전히 수행되거나 전혀 수행되지 않아야 함.
      즉, 트랜잭션은 하나의 불가분 단위로 작동해야함.
  • 일관성
    • 트랜잭션이 완료된 후에는 데이터베이스가 일관된 상태를 유지해야함. 이는 트랜잭션 전후로 모든 데이터베이스 규칙과 제약 조건이 충족되어야 함을 의미함.
  • 고립성
    • 동시에 실행되는 여러 트랜잭션들이 서로 영향을 주지 않도록 관리되어야 함. 각 트랜잭션이 마치 독립적으로 실행되는 것처럼 처리됨.
  • 지속성
    • 트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 데이터베이스에 반영되어야 하며, 시스템 오류가 발생해도 유지되어야 함.

생명주기

  • 시작 : 트랜잭션 시작
  • 실행 : DB에 대한 모든 쿼리 또는 명령이 실행됨.
  • 검사 : 트랜잭션의 모든 작업이 성공적으로 완료되었는지 검사함.
  • 커밋 : 모든 작업이 성공적으로 완료되었다면, 변경 사항을 데이터베이스에 영구적으로 저장함.
  • 롤백 : 만약 작업 중 하나라도 실패하면, 트랜잭션을 시작하기 전의 상태로 데이터베이스를 되돌림.

트랜잭션의 동시성 제어

여러 트랜잭션이 동시에 실행될 때 데이터베이스의 일관성을 유지하기 위해 동시성 제어가 필요함.

이는 주로 잠금(locking), 타임 스탬프, 다중 버전 동시성 제어(MVCC) 등의 기술을 사용하여 관리됨.

복구 메커니즘

트랜잭션이 실패하거나 시스템에 오류가 발생한 경우, 데이터베이스는 로그(예 : WAL, Write-Ahead Logging) 을 사용하여 데이터의 일관성과 무결성을 복구함.

트랜잭션은 데이터베이스의 시스템의 핵심 요소이기 때문에, 데이터의 안전하고 정확한 처리를 보장함. 이는 사용자가 데이터를 신뢰하고, 다양한 애플리케이션에서 데이터베이스를 효율적으로 사용할 수 있도록 함.

728x90