COMMIT은 변경을 확정하고 ROLLBACK은 실패한 변경을 되돌린다. ACID는 두 명령의 다른 이름이 아니라 트랜잭션이 지켜야 할 성질을 묶은 말이다. 여러 작업이 동시에 실행될 때는 어느 변경이 보이고 보존되는지까지 살펴야 경계를 제대로 이해할 수 있다.
핵심어
트랜잭션의 변경은 COMMIT으로 확정하거나 ROLLBACK으로 되돌린다. ACID는 이 과정에서 지켜야 할 성질을 묶는다.
| 영단어 | 의미 |
|---|---|
COMMIT | 커밋은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션의 변경 내용을 데이터베이스에 반영하는 명령어. |
ROLLBACK | 롤백은 하나의 트랜잭션 처리가 비정상 종료시 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 명령어. |
SAVEPOINT and CHECKPOINT | SAVEPOINT는 한 트랜잭션 안에서 부분 롤백 위치를 지정한다. 데이터베이스 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 — 병행제어란 다중 프로그램의 이점을 활용하여 동시에 여러개의 트랜잭션을 병행수행 할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것.

