RDBMS | NoSQL | |
데이터 모델 | 관계형 데이터 모델 데이터를 테이블, 행, 열 형식으로 저장 |
다양한 데이터 모델 문서(Document), 키-값(Key-Value), 열(Column), 그래프(Graph) 모델 |
스키마 | 사전에 정의, 변경 어려움 | 유연, 변경이 쉽다 |
제약조건 | 데이터 무결성 및 일관성을 유지하기 위해 엄격한 제약조건(키, 외래 키, 고유 제약조건) | 제약조건이 없거나 느슨하다 애플리케이션 레벨에서 데이터 무결성과 일관성을 관리한다 |
확장 방법 | 수직확장 | 수평확장(클러스터링과 샤딩으로 쉽게 확장) |
확장성 | 제한적, 단일 서버의 성능에 의존 | 뛰어남, 대규모 데이터 처리 가능 |
일관성 | 강한 일관성 보장 트랜잭션이 완료되면 모든 읽기 작업이 가장 최근의 쓰기 작업을 반영 ACID 트랜잭션: 원자성, 일관성, 고립성, 지속성을 지원하여 데이터의 무결성과 일관성을 보장 |
가용성 (Availability) 및 파티셔닝 허용 (Partition Tolerance): CAP 이론에 따라 NoSQL 데이터베이스는 일관성을 희생하고 가용성과 파티셔닝 허용을 우선시할 수 있다 BASE 속성: 기본적으로 Eventually consistent(최종 일관성), Available(가용성), Soft state(소프트 상태)를 제공하여 높은 가용성을 보장 |
복잡한 쿼리 효율적으로 처리 읽기/쓰기 성능 상대적 낮음 |
복잡한 쿼리 제한적 빠른 읽기 쓰기 성능 |
|
전통적 비즈니스 애플리케이션 데이터 무결성과 일관성이 중요한 경우 |
빅데이터 처리(소셜 미디어, 로그 데이터, IoT 데이터) 유연한 데이터 모델(비정형 데이터, 빠른 프로토타이핑이 필요한 애플리케이션.) 높은 확장성 가용성(실시간 데이터 분석, 분산 시스템.) |
'Developing > TIL(CS)' 카테고리의 다른 글
NoSQL의 CAP 이론(The CAP theorem) (0) | 2024.05.28 |
---|---|
클러스터링과 샤딩의 차이점 (0) | 2024.05.28 |
Creational patterns (0) | 2024.04.18 |
디자인 패턴 (0) | 2024.04.17 |
HTTP/HTTPS (0) | 2024.04.11 |