|구분|SQL (관계형 DB)|NoSQL (비관계형 DB)|
|저장 방식|표(Table) 단위의 정형화된 데이터|정형·비정형 데이터 (Key-Value 중심)|
|장점|무결성, Join 연산, 정합성 보장|확장성, 빠른 처리, 비용 효율적|
|단점|확장성 부족, 대용량 데이터 처리 어려움|Join 연산 불가, 데이터 일관성 약함|
|대표 시스템|MySQL, Oracle, PostgreSQL|MongoDB, Redis, Cassandra|
Atomicity(원자성)
Consistency(일관성)
Isolation(고립성)
Durability(지속성)
Basically Available (기본적 가용성)
Soft State (유연한 상태)
Eventually Consistent (결과적 일관성)
|유형|특징|예시|
|Key-Value DB|단순한 키와 값 쌍 저장, 빠른 읽기/쓰기 가능|Redis, DynamoDB|
|Column-Family DB|키 기반 컬럼의 집합, 높은 확장성|Cassandra, HBase|
|Document DB|복잡한 데이터 구조(JSON 등)를 문서 형태로 저장|MongoDB, CouchDB|
|Graph DB|노드와 관계를 그래프 형태로 저장, 연결성 데이터에 유리|Neo4j, Amazon Neptune|
|요구사항|선택 전략|
|완벽한 트랜잭션(ACID) 보장 필요|관계형 DB (RDBMS)|
|대용량, 빠른 처리, 비용 효율성 중시|NoSQL|
|비용과 성능 절충 필요|오픈소스 DB (MySQL, PostgreSQL)|
|빠른 데이터 접근 및 읽기 필요|Column-based DB|
|메모리 기반 초고속 접근 필요|In-memory DB (Redis 등)|