2025-08-30 01:03
Tags: SQL
NoSQL (Not Only SQL)
-
기존 관계형 데이터베이스 의 한계를 극복하기 위해 등장.
- 전통적인 테이블은 계속 수직적으로 쌓아야해서 확장하는게 비싸고 큰 데이터는 다루기 어려움
- 스키마가 경직되어 구조 한번 만들면 바꾸기 매우 어렵고 위험함
- 비정형 데이터 다루기 어려움
-
유연한 데이터 모델링과 수평적 확장 가능
-
생각보다 명확한 기준이 있다고 보긴 어렵고 그냥 대충 관계형 데이터베이스 아니면 일단 NoSQL 로 분류하는 느낌
-
ACID 원칙 같이 일관성을 중시하기 보단 가용성과 확장성 우선 → 빅데이터, 실시간 웹 앱 등 적합
-
CAP 이론에 따르면 분산 데이터 시스템은
- 세 가지 핵심 가치인 일관성(Consistency), 가용성(Availability), 분할 용인성(Partition Tolerance) 중 최대 두 가지만 동시에 보장할 수 있다는 원칙 존재함
- 이때 NoSQL은 일관성을 약간 포기하고, 가용성+분할 용인성인 (AP)가 더 중요한 경우를 위한 경우가 대부분
데이터 모델 | 핵심 개념 | 비유 | 대표적인 사용 사례 | 대표 제품 |
---|---|---|---|---|
문서 (Document) | JSON/XML과 유사한 문서 단위로 데이터를 저장. 각 문서는 고유 키를 가짐. | 개별 파일이 담긴 서류 캐비닛 | 콘텐츠 관리, 사용자 프로필, 이커머스 | MongoDB, Couchbase |
키-값 (Key-Value) | 고유한 키(Key)에 하나의 값(Value)을 매핑하여 저장하는 가장 단순한 형태. | 거대한 사전(Dictionary) | 캐싱, 세션 관리, 실시간 순위표 | Redis, Amazon DynamoDB |
컬럼 패밀리 (Column Family) | 행(Row)마다 다른 스키마를 가질 수 있으며, 행과 열, 타임스탬프로 데이터를 식별. | 행마다 열을 자유롭게 추가하는 스프레드시트 | 로그 데이터, IoT 센서 데이터, 시계열 데이터 | Apache Cassandra, HBase |
그래프 (Graph) | 노드(Node), 엣지(Edge), 속성(Property)을 사용하여 데이터 간의 관계를 표현. | 소셜 네트워크 연결망, 지하철 노선도 | 소셜 네트워크 분석, 추천 엔진, 사기 탐지 | Neo4j, Amazon Neptune |
구분 | RDBMS (예: MySQL, PostgreSQL) | NoSQL (예: MongoDB, Cassandra) |
---|---|---|
데이터 구조 | 엄격한 스키마, 정형 데이터 | 유연한 스키마, 비정형/반정형 데이터 |
확장성 | 주로 수직적 확장 (Scale-up) | 주로 수평적 확장 (Scale-out) |
일관성 | 강한 일관성 (ACID) | 주로 최종적 일관성 (BASE) |
쿼리 | SQL을 통한 복잡하고 강력한 쿼리 | 단순한 API, 제한적인 쿼리 (JOIN 미지원 등) |
핵심 가치 | 데이터의 무결성, 정합성 | 서비스의 가용성, 확장성, 유연성 |
최적 사용 사례 | 금융 거래, ERP, 예약 시스템 | 빅데이터, 실시간 웹 앱, IoT, 콘텐츠 관리 |