본문으로 바로가기
TaeyoungKim.dev

트랜잭션 용어: COMMIT·ROLLBACK·ACID의 역할과 차이

DB/SQL작성 약 4분 읽기TaeyoungKim
LinkedInX

COMMIT은 변경을 확정하고 ROLLBACK은 실패한 변경을 되돌린다. ACID는 두 명령의 다른 이름이 아니라 트랜잭션이 지켜야 할 성질을 묶은 말이다. 여러 작업이 동시에 실행될 때는 어느 변경이 보이고 보존되는지까지 살펴야 경계를 제대로 이해할 수 있다.

핵심어

트랜잭션의 변경은 COMMIT으로 확정하거나 ROLLBACK으로 되돌린다. ACID는 이 과정에서 지켜야 할 성질을 묶는다.

영단어의미
COMMIT커밋은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션의 변경 내용을 데이터베이스에 반영하는 명령어.
ROLLBACK롤백은 하나의 트랜잭션 처리가 비정상 종료시 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 명령어.
SAVEPOINT and CHECKPOINTSAVEPOINT는 한 트랜잭션 안에서 부분 롤백 위치를 지정한다. 데이터베이스 CHECKPOINT는 로그와 데이터 페이지의 복구 기준을 만드는 별도 개념이므로 서로 같은 말이 아니다.
Procedure프로시저는 특정 기능을 수행하는 일종의 트랜잭션 언어로 호출을 통해 미리 저장해 놓은 SQL 작업을 수행함.
Trigger트리거는 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행됨.

함께 구분할 단어

영단어의미
Event이벤트는 시스템에 어떤일이 발생한 것을 의미하며, 트리거에서의 이벤트는 데이터의 입력, 갱신, 삭제와 같은 데이터 조작이 발생함을 의미.
Atomicity원자성이란 트랜잭션 내의 모든 명령은 반드시 완료되어야 하며 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 함을 의미.
Consistency트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태를 유지해야 함.
Isolation독립성이란 수행중인 트랜잭션이 완전히 완료될 때까지 다른 트랜잭션이 끼어들 수 없음.
Durability영속성이란 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어 있어야 함.

코드에서 만나는 단어

영단어의미
CRUD생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)의 앞글자를 따서 만든 용어.
UNDO기록한 내용을 취소.
REDO트랜잭션 내용을 다시 실행.
Concurrency control병행제어란 다중 프로그램의 이점을 활용하여 동시에 여러개의 트랜잭션을 병행수행 할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것.

실무 문서에서 만나는 장면

COMMIT은 성공을 확정하고 ROLLBACK은 되돌린다. ACID는 버튼 이름이 아니라 그 경계가 지켜야 할 성질이다.

한 문장에 낯선 용어가 여러 개 보여도 전부 동시에 외울 필요는 없다. 먼저 주어와 동작을 찾고, 나머지는 범위·상태·도구를 보충하는 말로 나눈다. 단어가 길어 보여도 역할을 붙이면 문장이 작은 부품처럼 분해된다. 외운 단어가 자꾸 섞이는 건 기억력보다 경계의 문제일 때가 많다. 짝 단어와 차이를 함께 보면 된다.

핵심 요약

한 작업의 경계, 성공·취소, 동시 실행의 보장을 함께 본다.

  • COMMIT — 커밋은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션의 변경 내용을 데이터베이스에 반영하는 명령어.
  • Consistency — 트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태를 유지해야 함.
  • Concurrency control — 병행제어란 다중 프로그램의 이점을 활용하여 동시에 여러개의 트랜잭션을 병행수행 할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것.

작성자

TaeyoungKim

기초 개념을 구현과 검증, 실제 운영 판단까지 연결해 기록합니다.

함께 읽으면 좋은 글