본문으로 건너뛰기
Previous
Next
Transaction 뜻과 의미 | 기술 용어 사전 | pkglog
데이터베이스

Transaction

다른 이름: 트랜잭션

정의

데이터베이스 논리적 작업 단위. ACID(원자성, 일관성, 격리성, 지속성) 보장. BEGIN→COMMIT/ROLLBACK. 격리 수준: Read Uncommitted, Read Committed, Repeatable Read, Serializable. MVCC(다중 버전 동시성 제어)로 락 최소화

상세 설명

📋 기술 스펙

  • BEGIN/START: 트랜잭션 시작
  • COMMIT: 변경 영구 반영
  • ROLLBACK: 변경 취소, 이전 상태 복원
  • SAVEPOINT: 부분 롤백 지점 설정
  • Isolation Level: Read Uncommitted(Dirty Read), Read Committed(Non-Repeatable Read), Repeatable Read(Phantom Read), Serializable
  • MVCC: Snapshot Isolation, 읽기와 쓰기 동시 처리 (PostgreSQL, InnoDB)
  • 2PL(2-Phase Locking): Shared Lock(S), Exclusive Lock(X)

💡 실무 활용

  • 계좌 이체: A 계좌 출금 + B 계좌 입금 원자적 처리
  • 재고 차감: 주문 생성 + 재고 감소 동시 성공/실패
  • 데이터 일관성: 외래키 제약, 중복 방지
  • 장바구니 결제: 여러 테이블(주문, 결제, 배송) 일괄 처리

장점

  • ACID 보장: 데이터 무결성
  • 원자성: All-or-Nothing
  • 격리성: 동시 트랜잭션 간섭 방지
  • MVCC: 읽기 락 없이 성능 향상

⚠️ 단점 및 제약

  • Dead Lock: 순환 대기로 교착 상태
  • 성능 오버헤드: 락, 로그, MVCC 버전 관리
  • 격리 수준 트레이드오프: Serializable은 안전하나 느림
  • Long Transaction: 락 장시간 유지로 성능 저하

🔧 호환성

MySQL, PostgreSQL, SQL Server, Oracle 등 RDBMS 표준

📚 표준 정보

표준화 기구: SQL 표준 (ANSI SQL-92)

출시 연도: 1970년