데이터베이스의 ACID 성질과 NoSQL의 BASE 성질에 대해 설명하고, 양자의 차이를 비교하라.
| 성질 | 설명 |
|---|---|
| ACID | 트랜잭션의 신뢰성과 일관성을 보장하는 관계형 데이터베이스(RDB: Relational Database) 특성 |
| BASE | NoSQL 시스템에서 고가용성과 확장성을 위해 일관성을 완화한 특성 |
| 성질 | 목적 |
|---|---|
| ACID | 트랜잭션 처리의 안정성과 무결성 보장 |
| BASE | 분산 환경에서 성능과 확장성 확보, 가용성 극대화 |
| 요소 | 설명 |
|---|---|
| A: Atomicity (원자성) | 트랜잭션은 모두 수행되거나 전혀 수행되지 않아야 함 |
| C: Consistency (일관성) | 트랜잭션 수행 후 데이터는 항상 일관된 상태 유지 |
| I: Isolation (고립성) | 동시에 수행되는 트랜잭션은 서로 간섭하지 않음 |
| D: Durability (지속성) | 트랜잭션 완료 시 결과는 영구적으로 저장됨 |
| 요소 | 설명 |
|---|---|
| B: Basically Available (기본적인 가용성) | 항상 응답을 제공하지만, 정확하지 않을 수 있음 |
| S: Soft state (유연한 상태) | 시스템 상태는 일시적으로 일관되지 않을 수 있음 |
| E: Eventually consistent (최종적 일관성) | 시간이 지나면 데이터는 결국 일관된 상태에 도달함 |
| 구분 | 시스템 예시 |
|---|---|
| ACID 기반 | Oracle, MySQL, PostgreSQL, SQL Server |
| BASE 기반 | Cassandra, MongoDB, Couchbase, DynamoDB |
| 약어 | 용어 | 한글 뜻 |
|---|---|---|
| ACID | Atomicity, Consistency, Isolation, Durability | 원자성, 일관성, 고립성, 지속성 |
| BASE | Basically Available, Soft state, Eventually consistent | 기본적 가용성, 유연한 상태, 최종적 일관성 |
| CAP 이론 | Consistency, Availability, Partition Tolerance | 일관성, 가용성, 파티션 허용성 |
| 항목 | ACID | BASE |
|---|---|---|
| 데이터 무결성 | 높음 | 낮음 (일시적 불일치 허용) |
| 성능 | 비교적 낮음 | 높음 |
| 확장성 | 낮음 | 높음 (수평 확장 용이) |
| 트랜잭션 처리 | 강력한 보장 | 유연한 처리 |
| 사용 환경 | 은행, ERP, 재고관리 등 정합성 우선 | SNS, 로그 처리, 실시간 분석 등 속도/확장성 우선 |
| 항목 | ACID (관계형 DB) | BASE (NoSQL) |
|---|---|---|
| 일관성 우선 여부 | 강력한 일관성 | 최종적 일관성 |
| 가용성 중심 여부 | 낮음 | 높음 |
| 트랜잭션 지원 | 완전한 트랜잭션 | 부분 또는 없음 |
| 사용 사례 | 금융, 회계, ERP | IoT, SNS, 실시간 서비스 |
| 확장성 | 수직적 | 수평적 |
| 성질 | 장점 | 단점 |
|---|---|---|
| ACID | 안정성, 정확성, 무결성 보장 | 성능 저하, 확장성 제한 |
| BASE | 빠른 응답, 높은 가용성, 분산환경 최적화 | 정합성 문제, 복잡한 오류 처리 |
| 항목 | ACID (관계형 DB) | BASE (NoSQL) |
|---|---|---|
| 무결성 | 철저하게 보장 | 나중에 맞춤 |
| 속도 | 느림 | 빠름 |
| 확장성 | 어려움 | 쉬움 |
| 트랜잭션 | 완벽히 지원 | 보통 없음 |
| 주요 환경 | 은행, ERP | SNS, IoT |
| 대표 시스템 | Oracle, PostgreSQL | Cassandra, MongoDB |