1. RDB와 NoSQL 개념
데이터베이스는 크게 관계형 데이터베이스(RDB)와 비관계형 데이터베이스(NoSQL)로 구분.
RDB (Relational Database)
테이블 기반 구조를 사용하는 데이터베이스.
사전에 정의된 Schema(스키마) 기반 데이터 저장 방식.
NoSQL (Not Only SQL)
관계형 모델을 사용하지 않는 비관계형 데이터베이스.
유연한 데이터 구조와 높은 확장성을 목표로 설계된 데이터 저장 방식.
2. 데이터 모델 구조
RDB
- 데이터를 Table 구조로 저장
- Schema 기반 데이터 구조
- 테이블 간 관계를 Primary Key / Foreign Key로 정의
NoSQL
- 비정형 또는 반정형 데이터 저장 구조
- Schema 제약이 상대적으로 적은 구조
- 다양한 데이터 모델 존재
대표적인 NoSQL 데이터 모델
- Key-Value
- Document
- Column-Family
- Graph
3. RDB vs NoSQL 주요 차이
| 구분 | RDB (SQL) | NoSQL |
|---|---|---|
| 데이터 모델 | Table 기반 | Document / Key-value / Graph |
| Schema | 사전 정의된 Schema | 유연한 Schema |
| 데이터 구조 | 정형 데이터 중심 | 비정형 / 반정형 데이터 |
| 확장 방식 | 수직 확장 중심 (Scale-up) | 수평 확장 중심 (Scale-out) |
| 트랜잭션 | 강한 ACID 보장 | 일부 시스템에서 제한적 지원 |
4. 장점 / 단점 비교
| 구분 | RDB | NoSQL |
|---|---|---|
| 장점 | - 명확한 데이터 구조 - 데이터 무결성 보장 - 트랜잭션 처리 강점 |
- 유연한 데이터 구조 - 수평 확장 용이 - 대용량 데이터 처리 |
| 단점 | - Schema 변경 어려움 - 시스템 확장 비용 증가 - JOIN 쿼리 증가 가능 |
- 데이터 중복 가능성 - 무결성 관리 어려움 - 관계 데이터 처리 제한 |
5. Scale-up vs Scale-out
Scale-up (수직 확장)
서버의 CPU, RAM, Storage 성능 증가 방식.
특징
- 시스템 구조 단순
- 물리적 성능 한계 존재
- 비용 증가 가능성
주로 RDB 시스템에서 사용되는 확장 방식.
Scale-out (수평 확장)
여러 서버를 추가하여 데이터를 분산 처리하는 방식.
특징
- 높은 확장성
- 대규모 트래픽 대응 가능
- 분산 시스템 관리 필요
주로 NoSQL 시스템에서 활용되는 확장 방식.
6. 사용 상황
| 구분 | 사용 환경 |
|---|---|
| RDB | 데이터 구조가 명확한 시스템 데이터 무결성이 중요한 서비스 데이터 수정(Update)이 잦은 시스템 |
| NoSQL | 데이터 구조가 유동적인 서비스 대규모 트래픽 처리 시스템 조회(Read)가 많은 서비스 |
예시
- RDB : 금융 시스템, ERP, 주문 / 결제 시스템
- NoSQL : 로그 시스템, SNS 서비스, 빅데이터 분석 시스템
핵심 정리
RDB
- 테이블 기반 데이터 구조
- 강한 데이터 무결성
- 트랜잭션 중심 시스템
NoSQL
- 유연한 데이터 구조
- 수평 확장 중심
- 대규모 데이터 처리에 적합
한 줄 정리
- 데이터 무결성과 트랜잭션 중요 → RDB
- 대규모 데이터와 확장성 중요 → NoSQL