트랜잭션 제어문은 데이터 조작 언어(DML)로 변경된 내용을 관리하는 명령어입니다. SQLD 시험에서는 COMMIT
과 ROLLBACK
의 역할, 그리고 DML/DDL과의 관계를 묻는 문제가 자주 출제됩니다.
COMMIT
을 통해 DB에 반영되고, 실패하면 ROLLBACK
을 통해 이전 상태로 되돌립니다.INSERT
, UPDATE
, DELETE
와 같은 DML이 트랜잭션의 기본 단위가 됩니다.COMMIT
(확정)COMMIT
후에는 ROLLBACK
으로 되돌릴 수 없습니다.ROLLBACK
(취소)COMMIT
이후에 수행된 모든 변경 내용을 취소하고, 이전 상태로 되돌립니다.ROLLBACK
을 실행하거나, 시스템 오류 발생 시 자동으로 실행됩니다.COMMIT
된 내용은 ROLLBACK
할 수 없습니다.SAVEPOINT
(중간 저장)ROLLBACK TO [SAVEPOINT명]
명령어를 사용하여 특정 시점까지만 트랜잭션을 되돌릴 수 있습니다.INSERT
, UPDATE
, DELETE
): COMMIT
을 명시적으로 실행해야 변경사항이 확정됩니다.CREATE
, ALTER
, DROP
) & DCL (GRANT
, REVOKE
): 자동으로 COMMIT
이 발생합니다.COMMIT
전후의 상태COMMIT
전:ROLLBACK
가능합니다.COMMIT
후:COMMIT
= 영구 저장
버튼ROLLBACK
= 실행 취소
버튼SAVEPOINT
= 게임 중간 저장
지점자동 저장
된다!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
COMMIT
은 변경 내용을 영구 저장하므로, COMMIT
이후에는 ROLLBACK
으로 되돌릴 수 없습니다.CREATE TABLE
은 DDL이므로, 실행과 동시에 자동 COMMIT
이 발생합니다.ROLLBACK
은 마지막 COMMIT
이 이루어진 시점까지만 데이터를 되돌릴 수 있습니다.INSERT
, UPDATE
, DELETE
가 여기에 해당합니다.