Light Blue Pointer
본문 바로가기
Developing/TIL(CS)

NoSQL과 RDBMS의 차이

by Greedy 2024. 5. 28.
  RDBMS NoSQL
데이터 모델 관계형 데이터 모델
데이터를 테이블, 행, 열 형식으로 저장
다양한 데이터 모델
문서(Document), 키-값(Key-Value), 열(Column), 그래프(Graph) 모델
스키마 사전에 정의, 변경 어려움 유연, 변경이 쉽다
제약조건 데이터 무결성 및 일관성을 유지하기 위해 엄격한 제약조건(키, 외래 키, 고유 제약조건) 제약조건이 없거나 느슨하다
애플리케이션 레벨에서 데이터 무결성과 일관성을 관리한다
확장 방법 수직확장 수평확장(클러스터링과 샤딩으로 쉽게 확장)
확장성 제한적, 단일 서버의 성능에 의존 뛰어남, 대규모 데이터 처리 가능
일관성 강한 일관성 보장
트랜잭션이 완료되면 모든 읽기 작업이 가장 최근의 쓰기 작업을 반영

ACID 트랜잭션: 원자성, 일관성, 고립성, 지속성을 지원하여 데이터의 무결성과 일관성을 보장
가용성 (Availability) 및 파티셔닝 허용 (Partition Tolerance): CAP 이론에 따라 NoSQL 데이터베이스는 일관성을 희생하고 가용성과 파티셔닝 허용을 우선시할 수 있다

BASE 속성: 기본적으로 Eventually consistent(최종 일관성), Available(가용성), Soft state(소프트 상태)를 제공하여 높은 가용성을 보장
  복잡한 쿼리 효율적으로 처리
읽기/쓰기 성능 상대적 낮음

복잡한 쿼리 제한적
빠른 읽기 쓰기 성능
  전통적 비즈니스 애플리케이션
데이터 무결성과 일관성이 중요한 경우
빅데이터 처리(소셜 미디어, 로그 데이터, IoT 데이터)
유연한 데이터 모델(비정형 데이터, 빠른 프로토타이핑이 필요한 애플리케이션.)
높은 확장성 가용성(실시간 데이터 분석, 분산 시스템.)

'Developing > TIL(CS)' 카테고리의 다른 글

NoSQL의 CAP 이론(The CAP theorem)  (0) 2024.05.28
클러스터링과 샤딩의 차이점  (0) 2024.05.28
Creational patterns  (0) 2024.04.18
디자인 패턴  (0) 2024.04.17
HTTP/HTTPS  (0) 2024.04.11