Skip to main content

NoSQL

· 3 min read

NoSQL의 개념

  • 전통적인 RDBMS의 한계 극복을 위해 비정형 데이터를 다양한 형태로 저장하고 유연한 데이터 모델을 제공하는 데이터베이스
  • 대규모 데이터 R/W 처리 한계 극복, 클라우드 분산 환경 확장성 한계 극복, 스키마 유연성

NoSQL의 BASE특성, 유형

NoSQL의 BASE 특성

구분내용비고
Basically Available시스템 장애에도 부분적으로 데이터 접근 가능모든 요청 응답, 가용성 중시
Soft State데이터 일관성이 즉시 보장되지 않음최종적 일관성
Eventual Consistency모든 복제물이 결국에는 동일한 상태로 수렴일관성 완화

NoSQL의 유형

구분내용비고
Key-Value키와 값의 간단한 쌍으로 저장, 빠른 조회 가능Redis, DynamoDB
Column Family열 기반 데이터 저장, 유연한 스키마Cassandra, HBase
DocumentJSON 문서 형식으로 저장, 빠른 조회 가능MongoDB, CouchDB
Graph노드와 간선으로 구성된 그래프 형식의 데이터베이스Neo4j
Vector데이터 간 유사도를 벡터로 저장하여 거리 계산milvus

NoSQL의 CAP 이론, 유형

CAP 이론

구성내용
Consistency모든 사용자는 항상 동시에 같은 데이터 조회
Availability모든 요청이 장애시에도 동작
Partition Tolerance물리적 분할에도 시스템 동작
  • CAP 중 2가지만 만족 가능

CAP 유형

구분내용비고
C + P네트워크 분할시에도 일관성을 보장, 가용성 일부 희생HBase, MongoDB
A + P네트워크 분할시에도 가용성을 보장, 일관성 일부 희생CouchDB, DynamoDB
C + A네트워크 분할 발생하지 않는 상황에서 일관성과 가용성 모듀 우지RDBMS

NoSQL 모델링시 고려사항

  • 비정형 데이터를 저장해야하므로 도메인 모델링 후 쿼리 결과를 정의한 뒤 저장할 테이블 모델을 설계해야함.