CS 공부/DB

[DB] NoSQL 특성과 RDBMS와의 차이점

양쏘쏘 2024. 10. 22. 13:52
728x90
반응형

1. NoSQL 특성

  1. 스키마 유연성: 고정된 스키마가 없고, 데이터 구조가 동적으로 변경 가능
  2. 수평적 확장성: 여러 대의 서버로 확장 가능, 대규모 데이터 처리에 적합
  3. 비정형 데이터 처리: 문서, 이미지, 로그 등 비정형 데이터 처리에 유리
  4. 고성능 및 낮은 지연 시간: 대량의 읽기/쓰기 작업을 빠르게 처리
  5. CAP 이론: 일관성(Consistency), 가용성(Availability), 네트워크 파티션 허용성(Partition Tolerance) 중 두 가지 특성만 선택

1) 데이터 유형

  • 문서형(Document-based): 데이터를 JSON, BSON 등의 형식으로 저장하며, 각 문서가 독립적인 데이터를 나타냅니다. 예: MongoDB
  • 키-값(Key-Value): 데이터를 키와 값의 쌍으로 저장하는 단순한 모델로, 빠른 데이터 접근이 가능합니다. 예: Redis, DynamoDB
  • 컬럼형(Column-based): 대규모 데이터 분석과 분산 저장에 적합하며, 각 행이 다수의 컬럼으로 구성됩니다. 예: Cassandra, HBase
  • 그래프형(Graph-based): 데이터 간의 관계를 노드와 엣지로 표현하여 복잡한 관계를 탐색할 때 유리합니다. 예: Neo4j


2. NoSQL vs RDBMS 차이점

  NoSQL RDBMS
스키마 유연함 (스키마 없음) 고정 스키마
확장성 수평적 확장 수직적 확장
데이터 처리 비정형 데이터 처리 용이 정형 데이터 처리에 최적
트랜잭션 일관성 덜 중요 (CAP 이론) ACID 특성 준수
관계 관계형 데이터 처리 어려움 관계형 데이터 처리 최적화

3. NoSQL의 장단점

장점:

  • 스키마 유연성으로 빠른 데이터 구조 변경 가능
  • 대규모 데이터 처리에 적합한 수평적 확장성
  • 비정형 데이터, 실시간 데이터 처리에 강점

단점:

  • 복잡한 쿼리 및 트랜잭션 관리 부족
  • 일관성 보장 어려움
  • 성숙도와 안정성에서 RDBMS에 비해 미흡할 수 있음

4. NoSQL 예시

  1. MongoDB: 문서형 데이터베이스로, JSON 형태의 데이터를 저장
  2. Redis: 키-값 저장소로, 빠른 캐싱과 실시간 데이터 처리에 사용
  3. Cassandra: 컬럼형 데이터베이스로, 대규모 분산 시스템에 적합
  4. Neo4j: 그래프 데이터베이스로, 데이터 간의 관계를 탐색하는 데 유리

5. 적용 사례

  • 실시간 웹 애플리케이션: 채팅, 실시간 분석, 게임 등의 분야에서 높은 처리량과 낮은 지연 시간을 제공
  • 빅데이터 및 분석: 로그 처리, IoT 데이터 수집 등에서 대용량 데이터를 효율적으로 저장하고 처리
  • 콘텐츠 관리 시스템(CMS): 다양한 유형의 콘텐츠를 유연하게 저장하고 관리할 수 있음
  • 전자 상거래: 제품 카탈로그, 사용자 세션 정보 등을 저장하는 데 사용됨

 

728x90

'CS 공부 > DB' 카테고리의 다른 글

[DB] 오라클 자주 쓰는 내장함수 모음(코테 대비)  (0) 2024.10.21
[DB] 트랜잭션(ACID와 격리수준)  (1) 2024.07.22
[DB] 1~3정규화  (0) 2024.07.11
[DB] 데이터 무결성  (0) 2024.07.11
[DB] 제 2정규화  (0) 2024.07.10