데이터 모델링의 이해

트랜잭션 — SQLD, ACID와 커밋·롤백 핵심 정리

CBT 전자문제집 편집팀
#SQLD#트랜잭션#ACID#COMMIT#ROLLBACK

트랜잭션(Transaction)더 이상 나눌 수 없는 하나의 논리적 작업 단위 입니다. 계좌 이체처럼 "출금과 입금이 함께 성공하거나, 함께 취소되어야" 하는 묶음입니다. 이 단원은 ACID 특성커밋·롤백 을 정확히 아는지 묻습니다.

이 단원, 시험에서 어디에 나오나

  • 제1과목 「데이터 모델링의 이해」의 '데이터 모델과 SQL' 세부항목입니다.
  • ACID 정의 구분어떤 작업이 롤백되는가(DML vs DDL) 가 단골입니다.

① ACID — 트랜잭션 4대 특성

트랜잭션 ACID 네 가지 특성 도식. 원자성·일관성·고립성·지속성

그림 1. 원자성·일관성·고립성·지속성. 원자성과 일관성의 정의를 바꿔 내는 함정이 잦습니다. (자작 도식)

특성
원자성(A)모두 성공하거나 모두 취소(all-or-nothing)
일관성(C)실행 전후 데이터 무결성 유지
고립성(I)동시 실행 트랜잭션끼리 간섭 없음
지속성(D)커밋되면 결과가 영구 보존

함정: 원자성(전부/전무)과 일관성(무결성 유지)의 정의를 서로 바꾼 보기.

② COMMIT과 ROLLBACK (TCL)

트랜잭션은 TCL 로 제어합니다.

  • COMMIT: 변경을 확정 (지속성 확보).
  • ROLLBACK: 변경을 취소 하고 이전 상태로 되돌림.
  • SAVEPOINT: 롤백할 지점을 지정.

③ 되돌릴 수 있나? — DML vs DDL (핵심 함정)

DML은 커밋 전 롤백 가능하지만 TRUNCATE·DROP 같은 DDL은 자동 커밋되어 롤백 불가함을 보여주는 도식

그림 2. DML은 커밋 전이면 롤백으로 되돌릴 수 있지만, DDL(TRUNCATE·DROP)은 자동 커밋되어 롤백해도 복구되지 않습니다. (자작 도식)

  • DML(INSERT·UPDATE·DELETE): 커밋 전이면 ROLLBACK 으로 되돌리기 가능.
  • DDL(TRUNCATE·DROP·CREATE·ALTER): 실행 즉시 자동 커밋(auto-commit)ROLLBACK 으로 복구 불가.

대표 함정: "DELETE와 TRUNCATE는 같다" 는 보기. DELETE는 롤백되지만 TRUNCATE는 되돌릴 수 없습니다. (기준: Oracle·ANSI. 일부 DBMS는 예외가 있습니다.)

자주 틀리는 함정

  • 원자성 ↔ 일관성 정의 바꿔치기.
  • TRUNCATE 롤백 가능 이라고 오인 — DDL은 auto-commit이라 불가.
  • COMMIT 후 롤백 으로 되돌릴 수 있다고 착각 — 커밋되면 확정됩니다.

한 장 정리 (암기 카드)

  • ACID: 원자성(전부/전무)·일관성(무결성)·고립성(간섭없음)·지속성(영구보존).
  • TCL: COMMIT(확정)·ROLLBACK(취소)·SAVEPOINT(지점).
  • DML(DELETE 등)은 롤백 O, DDL(TRUNCATE·DROP)은 auto-commit → 롤백 X.
  • 트랜잭션 = 나눌 수 없는 하나의 작업 단위.

참고 출처

CBT 전자문제집 편집팀

자격증 개념과 기출 유형을 쉽게 정리합니다.

관련 글