트랜잭션(Transaction)은 데이터베이스의 상태를 변경시키는 논리적인 작업 단위입니다. 이 트랜잭션이 안전하게 수행되기 위해 보장해야 하는 네 가지 특성을 ACID라고 합니다.
트랜잭션은 '전부' 실행되거나, '전부' 실패하여 롤백(Rollback)되어야 합니다. 작업이 도중에 중단되면, 그 트랜잭션이 시작되기 전 상태로 되돌아가는 것을 보장합니다.
All or Nothing, 전부 성공 또는 전부 실패, Rollback 이라는 키워드가 나오면 원자성입니다.원자(Atom)는 더 이상 쪼갤 수 없다. 트랜잭션도 쪼갤 수 없는 하나의 단위!트랜잭션이 성공적으로 완료되면, 데이터베이스는 항상 정해진 규칙(제약조건)을 만족하는 올바른 상태여야 합니다.
제약조건 준수, 무결성 유지, 트랜잭션 전후 올바른 상태 라는 키워드가 나오면 일관성입니다.C = Constraints (제약조건)를 항상 지킨다.여러 트랜잭션이 동시에 실행되더라도 서로 간섭하지 않아야 합니다. 마치 각 트랜잭션이 독립적으로 순차 실행된 것처럼 보이게 하는 특성입니다.
동시성 제어, 간섭 없음, 중간 결과 노출 불가 라는 키워드가 나오면 고립성입니다.Isolation = Isolate (고립시키다). 트랜잭션끼리 따로 분리된 방에 갇힌 느낌!트랜잭션이 Commit되면, 그 결과는 시스템에 영구적으로 저장되어야 합니다. 이후에 시스템 장애가 발생하더라도 데이터는 유실되지 않습니다.
Commit 후 영구 보존, 시스템 장애에도 보존 이라는 키워드가 나오면 영속성입니다.D = Disk에 Durable (영속적인) 상태로 저장.| 원칙 | 한글 | 의미 | 시험 핵심 키워드 |
|---|---|---|---|
| Atomicity | 원자성 | 전부 실행 or 전부 실패 | Rollback, All or Nothing |
| Consistency | 일관성 | 제약조건(무결성) 유지 | 무결성, 제약조건 |
| Isolation | 고립성 | 동시 실행 간섭 없음 | 동시성, 간섭 없음 |
| Durability | 영속성 | Commit 결과 영구 보존 | Commit, 장애, 영구 |
1. 트랜잭션이 “전부 실행되거나 전혀 실행되지 않아야 한다”는 성질은?
① 원자성
② 일관성
③ 고립성
④ 영속성
2. 트랜잭션이 실행되기 전과 후의 데이터베이스가 항상 제약조건을 만족해야 한다는 성질은?
① 원자성
② 일관성
③ 고립성
④ 영속성
3. 여러 트랜잭션이 동시에 실행되더라도 순차적으로 실행된 것과 동일한 결과가 보장되는 성질은?
① 원자성
② 일관성
③ 고립성
④ 영속성
4. 트랜잭션이 Commit된 이후 시스템 장애가 발생하더라도 그 결과가 보존되는 성질은?
① 원자성
② 일관성
③ 고립성
④ 영속성
5. 다음 보기 중 ACID의 4가지 특성에 해당하지 않는 것은?
① 트랜잭션의 전부 성공 또는 전부 실패 보장
② PK, FK 제약조건을 위반하지 않음
③ 여러 트랜잭션이 동시에 실행되어도 서로 간섭하지 않음
④ 인덱스 최적화를 통한 조회 속도 향상
All or Nothing이 핵심입니다.무결성과 제약조건을 유지해야 한다는 규칙입니다.Commit된 데이터는 영구적으로 저장되어 시스템의 외부적인 문제에도 영향을 받지 않는다는 성질입니다.