CS

[SQLD] 트랜잭션

2026년 02월 11일 13:48

SQLD 1과목 – 트랜잭션

트랜잭션(Transaction)이란?

트랜잭션은
데이터베이스에서 하나의 논리적 기능을 수행하는 작업 단위이다.

  • 여러 SQL문을 하나의 작업 단위로 묶음
  • 전부 수행되거나 전부 취소되어야 함 (All or Nothing)
  • 하나의 트랜잭션에는 SELECT, INSERT, UPDATE, DELETE 포함 가능

👉 부분 성공 ❌
👉 모두 성공 또는 모두 실패

트랜잭션의 필요성

  1. 오류 발생 시 이전 상태로 복구 보장
  2. 여러 사용자가 동시에 접근해도 데이터 일관성 유지
  3. 금융 시스템 등 중간 결과가 존재하면 안 되는 업무에서 필수

ACID 속성 ⭐⭐⭐

트랜잭션이 반드시 만족해야 하는 4가지 성질

구분설명
원자성 (Atomicity)모든 연산은 전부 수행되거나 전부 취소(ROLLBACK)
일관성 (Consistency)수행 전후 데이터는 제약조건을 만족
격리성 (Isolation)동시에 수행되는 트랜잭션 간 간섭 없음
지속성 (Durability)COMMIT 후 결과는 영구 저장

트랜잭션 주요 명령어

  • COMMIT → 작업 확정 (영구 반영)

  • ROLLBACK → 트랜잭션 시작 직전 상태로 복구

👉 부분 COMMIT 불가

주의 사항 ⭐⭐

  1. 각 UPDATE를 독립적으로 실행하면 안 됨
  2. 부분 COMMIT 불가
  3. 반드시 동시에 COMMIT 또는 ROLLBACK