데이터베이스
ACID
정의
Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성). RDBMS 트랜잭션 안전성 4대 속성. 원자성: All-or-Nothing. 일관성: 제약 조건 유지. 격리성: 동시 실행 간섭 없음. 지속성: COMMIT 후 영구 보존
상세 설명
기술 스펙
- Atomicity: BEGIN-COMMIT 사이 모든 작업 성공 또는 ROLLBACK (WAL 로그)
- Consistency: 외래키, UNIQUE, CHECK 제약 조건 유지
- Isolation: Read Uncommitted(레벨0), Read Committed(레벨1), Repeatable Read(레벨2), Serializable(레벨3)
- Durability: COMMIT 후 장애 발생 시에도 WAL(Write-Ahead Log)로 복구
실무 활용
- 금융: 계좌 이체, 결제 처리 (원자성)
- 재고 관리: 주문-재고 동기화 (일관성)
- 예약 시스템: 좌석 중복 예약 방지 (격리성)
- 백업/복구: 장애 시 트랜잭션 로그로 복원 (지속성)
장점
- 데이터 무결성: 제약 조건, 외래키 보장
- 안전성: 장애 시 복구 가능
- 동시성 제어: 격리 수준으로 조절
단점 및 제약
- 성능 오버헤드: 로그, 락, MVCC 비용
- 확장성 한계: 분산 트랜잭션(2PC) 느림
- CAP 트레이드오프: 가용성과 상충 (NoSQL은 BASE)
호환성
MySQL, PostgreSQL, Oracle, SQL Server 등 RDBMS
표준 정보
표준화 기구: Jim Gray (1981), ANSI SQL
출시 연도: 1983년