RDBMS(Relational Database Management System)
관계형 데이터베이스, 데이터를 테이블 형태로 저장하고 관리합니다.
SQL을 사용하며 데이터를 정의하고 조작합니다.
특징
- 스키마 기반
∘ 데이터를 저장하기 전에 미리 테이블 구조(스키마)를 정의해야 합니다.
- 정규화
∘ 중복 데이터를 줄이고 데이터 무결성을 유지합니다.
- ACID 지원
∘ 트랜잭션에서 데이터의 일관성, 격리성, 영속성을 보장합니다.
- 관계 기반
∘ 여러 테이블 간의 관곌르 키(Foreign Key)로 정의하여 데이터 연결을 유지합니다.
장점
- 데이터 무결성 보장
- 복잡한 쿼리와 관계 기반 데이터 모델링에 강함
- 표준화된 SQL 사용으로 학습과 사용이 용이
단점
- 스키마 변경 시 복잡성 증가
- 대규모 데이터를 처리할 때 성능 저하
- 유연성이 낮아 비정형 데이터 저장에 부적합
Example
은행, ERP 시스템, CRM, 회계 시스템 등 데이터 무결성과 복잡한 관계가 중요한 경우
NoSQL(Not Only SQL)
관계형 데이터베이스 외의 데이터 저장소를 의미하며, 다양한 데이터 모델을 지원합니다.
비정형 데이터나 대량의 데이터를 처리하는 데 적합합니다.
특징
- 스키마리스
∘ 사전 정의된 스키마 없이 데이터를 저장 가능
- 유연한 데이터 모델
∘ 키-값(Key-Value), 문서, 열, 그래프 모델 등 다양한 데이터 저장 방식을 지원
- 확장성
∘ 수평적 확장(서버 추가)으로 대규모 데이터 처리에 강함
- CAP 이론
∘ 일관성, 가용성, 파티션 허용성 중 하나를 희생하는 설계
장점
- 유연한 스키마로 빠른 개발 가능
- 대량의 데이터와 고속 처리에 적합
- 비정형 데이터(ex) JSON, XML) 저장 가능
단점
- 트랜잭션 지원 제한(NoSQL 일부한 ACID 지원)
- 관계형 쿼리 부족(JOIN 등 지원 어려움)
- 표준화된 쿼리 언어 부재(SQL 미지원)
Example
소셜 미디어, IoT, 로그 데이터 분석, 실시간 추천 시스템 등 대규모 데이터 처리에 최적화된 환경
RDBMS VS NoSQL
| 항목 | RDBMS | NoSQL |
|---|
| 데이터 모델 | 테이블 기반 | 키-값, 문서, 그래프, 컬럼 기반 |
| 스키마 | 고정 스키마 | 유연한 스키마 |
| 확장성 | 수직 확장(하드웨어 업그레이드) | 수평 확장(서버 추가) |
| 쿼리 언어 | SQL | 데이터베이스마다 다름 |
| ACID | 완벽 지원 | 일부 지원(NoSQL에 따라 다름 |
| 성능 | 작은 데이터셋에서 우수 | 대규모 데이터셋에서 우수 |
| 유형의 유연성 | 구조화된 데이터에 적합 | 비정형 데이터에 적합 |
| 사용 사례 | 은행, ERP, 회계 시스템 | 소셜 미디어, IoT, 빅데이터 분석 |