대용량 데이터와 실시간 데이터 처리의 중요성으로 인하여
DB의 역할이 현대 어플리케이션에서 점점 더 중요해지고 있습니다
전통적인 관계형 DB는 오랜 기간 동안 안정적인 데이터 관리 솔루션을 제공했지만,
최근의 데이터 처리 요구사항을 충족시키기에는 몇 가지 한계가 분명히 존재합니다
이러한 한계를 극복하고자 등장한 것이 바로 NoSQL입니다
NoSQL이란?
"Not Only SQL"의 약자로 전통적인 관계형 DB 외의 다양한 데이터 저장 방식을 의미
유연한 스키마, 수평적 확장성, 다양한 데이터 모델 지원 등 다양한 특징을 가지고 있다
특징 | SQL (관계형) | NoSQL (비관계형) |
데이터 모델 | 테이블 기반의 관계형 모델 | 키-캆, 도큐먼트, 컬럼 패밀리, 그래프, etc |
스케일링 | 주로 수직적 확장 | 주로 수평적 확장 |
스키마 | 고정된 스키마 | 유동적인 스키마 |
사용 사례 | 트랜잭션 중심 애플리케이션 | 빅데이터, 실시간 분석, 소셜 미디어, etc |
NoSQL의 주요 유형
키 - 값 스토어 (Key - Value Store)
가장 단순한 형태의 NoSQL DB로
Key와 Value의 쌍으로 데이터를 저장
Key는 고유한 식별자 역할, Value는 데이터를 저장
도큐먼트 스토어 (Document Store)
JSON, BSON 등의 도큐먼트 형태로 데이터 저장
복잡한 데이터 구조와 중첩된 데이터 지원
각 도큐먼트는 고유한 키를 가지며
데이터의 계층적 구조를 자연스럽게 표현 가능
컬럼 패밀리 스토어 (Column - Family Store)
데이터가 컬럼 패밀리 단위로 저장되어
대규모 데이터 처리에 유리
각 컬럼 패밀리는 관련된 컬럼들의 집합으로
특정 행에 대한 데이터를 효율적으로 저장, 조회 가능
그래프 데이터베이스 (Graph DB)
노드와 엣지로 구성된 그래프 구조를 사용하여 데이터 간의 관계 저장
복잡한 관계를 직관적으로 표현하고 탐색할 수 있어
관계 중심의 데이터 효율적으로 관리 가능
유형 | 주요 특징 | 적합한 사용 사례 | 대표적인 예시 |
키 - 캆 | 단순한 키-값 쌍, 고성능 | 캐싱, 세션 관리 실시간 데이터 처리 |
Redis, Amazon DynamoDB |
도큐먼트 | JSON/BSON 도큐먼트 유연한 스키마 |
콘텐츠 관리 시스템 사용자 프로필 관리 |
MongoDB, CouchDB |
컬럼 패밀리 | 컬럼 패밀리 단위 저장 높은 확장성 |
로그 데이터 저장 실시간 데이터 분석 |
Apache Cassandra, HBase |
그래프 DB | 노드와 엣지로 관계 표현 강력한 관계 탐색 |
소셜 네트워크 분석 추천 시스템, 지식 그래프 |
Neo4j, Amazon Neptune |
NoSQL의 장점과 단점
'Computing and DB 🖥 > Database' 카테고리의 다른 글
SQL Injection (0) | 2024.02.02 |
---|---|
[JDBC] - PreparedStatement (0) | 2024.01.31 |
DB LOCK 에 대해서 알아보자 (0) | 2024.01.23 |
대용량을 대비한 DB... 어떻게 설정해? (feat.PostgreSQL) (33) | 2023.11.14 |