트랜잭션 제어문 (TCL) 정리

TJK·2025년 8월 22일
0

트랜잭션 제어문 (TCL) 정리

트랜잭션 제어문은 데이터 조작 언어(DML)로 변경된 내용을 관리하는 명령어입니다. SQLD 시험에서는 COMMITROLLBACK의 역할, 그리고 DML/DDL과의 관계를 묻는 문제가 자주 출제됩니다.


1. 트랜잭션 기본 개념

핵심 개념 (★★★★★)

  • 트랜잭션: 논리적인 작업의 단위. 성공적으로 완료되면 COMMIT을 통해 DB에 반영되고, 실패하면 ROLLBACK을 통해 이전 상태로 되돌립니다.
  • 기본 단위: INSERT, UPDATE, DELETE와 같은 DML이 트랜잭션의 기본 단위가 됩니다.

2. 주요 트랜잭션 제어문

(1) COMMIT (확정)

  • 역할: 트랜잭션의 변경 내용을 데이터베이스에 영구적으로 저장합니다.
  • 특징:
    • COMMIT 후에는 ROLLBACK으로 되돌릴 수 없습니다.
    • 다른 사용자에게도 변경된 내용이 보이기 시작합니다.

(2) ROLLBACK (취소)

  • 역할: 마지막 COMMIT 이후에 수행된 모든 변경 내용을 취소하고, 이전 상태로 되돌립니다.
  • 특징:
    • 명시적으로 ROLLBACK을 실행하거나, 시스템 오류 발생 시 자동으로 실행됩니다.
    • COMMIT된 내용은 ROLLBACK할 수 없습니다.

(3) SAVEPOINT (중간 저장)

  • 역할: 트랜잭션 내에서 특정 시점을 저장합니다.
  • 특징:
    • ROLLBACK TO [SAVEPOINT명] 명령어를 사용하여 특정 시점까지만 트랜잭션을 되돌릴 수 있습니다.
    • 시험 비중은 낮지만, 개념은 반드시 알아두어야 합니다.

3. SQLD 시험 핵심 포인트

1. DDL과 DML의 COMMIT 방식 차이

  • DML (INSERT, UPDATE, DELETE): COMMIT을 명시적으로 실행해야 변경사항이 확정됩니다.
  • DDL (CREATE, ALTER, DROP) & DCL (GRANT, REVOKE): 자동으로 COMMIT이 발생합니다.

2. COMMIT 전후의 상태

  • COMMIT 전:
    • 변경 내용을 수행한 본인만 변경된 데이터를 볼 수 있습니다.
    • 아직 DB에 반영되지 않아 ROLLBACK 가능합니다.
  • COMMIT 후:
    • 변경 내용이 DB에 영구 저장됩니다.
    • 다른 사용자도 변경된 데이터를 볼 수 있습니다.

4. 암기 팁

  • COMMIT = 영구 저장 버튼
  • ROLLBACK = 실행 취소 버튼
  • SAVEPOINT = 게임 중간 저장 지점
  • DDL자동 저장된다!

실전 기출 문제 스타일

1. COMMIT 전의 변경사항에 대한 설명으로 옳지 않은 것은?
A. 다른 사용자는 변경사항을 볼 수 없다.
B. 자기 자신은 변경사항을 볼 수 있다.
C. COMMIT 후에는 ROLLBACK으로 되돌릴 수 있다.
D. COMMIT 전에는 ROLLBACK이 가능하다.

2. 다음 중 자동 COMMIT이 발생하는 SQL은?
A. UPDATE
B. DELETE
C. CREATE TABLE
D. INSERT

3. ROLLBACK에 대한 설명으로 옳은 것은?
A. 마지막 COMMIT 시점까지만 복구 가능하다.
B. COMMIT 이후에도 언제든지 되돌릴 수 있다.
C. 다른 사용자가 변경한 내용까지 되돌린다.
D. SAVEPOINT를 사용하면 COMMIT도 취소할 수 있다.

4. 다음 중 트랜잭션의 기본 단위에 해당하는 것은?
A. SELECT
B. INSERT
C. CREATE
D. GRANT


정답 및 해설

  • 문제 1 정답: C
    • 해설: COMMIT은 변경 내용을 영구 저장하므로, COMMIT 이후에는 ROLLBACK으로 되돌릴 수 없습니다.
  • 문제 2 정답: C
    • 해설: CREATE TABLE은 DDL이므로, 실행과 동시에 자동 COMMIT이 발생합니다.
  • 문제 3 정답: A
    • 해설: ROLLBACK은 마지막 COMMIT이 이루어진 시점까지만 데이터를 되돌릴 수 있습니다.
  • 문제 4 정답: B
    • 해설: 트랜잭션은 데이터의 변경을 수반하는 작업의 논리적 단위입니다. DML인 INSERT, UPDATE, DELETE가 여기에 해당합니다.
profile
Hello world!

0개의 댓글