| 특징 | 설명 | 주 기법 | 
|---|---|---|
| 원자성Atomicity | 트랜잭션을 구성하는 연산 전체가모두 정상 실행 or 모두 취소되어야 하는 성질 트랜잭션연산 전체가 성공 또는 실패되어야 하는 성질 | Commit/Rollback회복성 보장 | 
| 일관성Consistency | 시스템이 가지고 있는 고정 요소는 트랜잭션수행 전/수행 후의 상태가 같아야 하는 성질 | |
| 고립성 (격리성)Isolation | 동시 실행되는 트랜잭션이 서로 영향을 줘선 안된다는 성질                                                                                          ommitted <br/>Repeatable Read<br/>Serializable` | |
| 영속성Durability | 성공이 완료된 트랜잭션 결과는 DB 내에 영구적으로 저장되어야 한다는 성질 | 
원자성 주요 기법)Commit과 Rollback이 존재한다.원자성 Atomicity이 보장된다.| 연산 | 설명 | 
|---|---|
| Commit | 하나의 트랜잭션이 성공적으로 끝나고, DB가 일관성 있는 상태이거나 하나의 트랜잭션이 끝났을 때 사용하는 연산 (성공, 실패 상관 X => 일단 끝난 거) | 
| Rollback | 하나의 트랜잭션이 비정상적으로 종료되어 원자성이 깨질 경우처음부터 다시 시작하거나, 부분적으로 연산을 취소하는 연산 | 
일관성 주요 기법)| 병행 제어 목적 | 
|---|
| DB 공유를 최대화한다. | 
| 시스템의 활용도를 최대화한다. | 
| DB의 일관성을 유지한다. | 
| 사용자에 대한 응답 시간을 최소화한다. | 
병행 제어를 보장하지 않는 경우에 발생할 수 있는 문제점은 다음과 같다.
갱신 손실 Lost Update
    현황 파악오류 Dirty Read
    모순성 Inconsistency
    연쇄 복귀 Cascading Rollback
    Locking, 낙관적 검증, 타임 스탬프 순서, 다중 버전 동시성 기법이 존재한다.LockingLocking의 특징
1. DB, File, Record 등은 로킹 단위가 될 수 있다.
2. 한꺼번에 로킹할 수 있는 객체의 크기 == 로킹 단위
3. 로킹 단위가 작아지면 DB 공유도가 증가하고, 로킹 오버헤드가 증가한다.
4. 로킹 단위가 커지면 병행성 수준이 낮아진다.
낙관적 검증 Optimistic Validation타임 스탬프 순서 Time Stamp Ordering타임 스탬프 부여하고 다중 버전 동시성 MVCC