| 특징 | 설명 |
|---|---|
| 대표 DB | MySQL, PostgreSQL, Oracle, SQL Server 등 |
| 데이터 구조 | 테이블 (Table) – 행/열 기반 |
| 언어 | SQL (Structured Query Language) 사용 |
| 스키마 | 엄격한 스키마 (컬럼 타입 사전 정의) |
| 장점 | 복잡한 JOIN 처리, ACID 보장, 데이터 무결성 관리 우수 |
| 단점 | 수평 확장 어려움, 유연한 구조 부족 |
기본 SQL 사용 / 오라클의 PL-SQL, MSSQL의 T-SQL과 차이 있음
| 특징 | 설명 |
|---|---|
| 대표 DB | MongoDB, Redis, Cassandra, DynamoDB 등 |
| 데이터 구조 | 도큐먼트, 키-값, 그래프, 컬럼 기반 등 다양한 구조 지원 |
| 언어 | SQL 사용 X (대부분 JSON-like 명령어 또는 자체 API 사용) |
| 스키마 | 스키마 유연 (컬럼 사전 정의 필요 없음) |
| 장점 | 수평 확장 용이, 빠른 읽기/쓰기 성능, 비정형 데이터 처리에 적합 |
| 단점 | JOIN 어려움, 복잡한 트랜잭션 처리 미약, 정합성 유지 어려움 가능성 |
| 항목 | RDBMS | NoSQL |
|---|---|---|
| 구조 | 테이블 (정형화된 구조) | 키-값, 도큐먼트, 그래프 등 다양 |
| 스키마 | 엄격 | 유연 |
| 확장성 | 수직 확장 (Scale-Up) | 수평 확장 (Scale-Out) |
| 트랜잭션 | ACID 보장 | 일반적으로 미흡 (BASE 원칙) |
| 사용처 | 전통적인 업무 시스템, 정형데이터 | 빅데이터, 실시간 처리, 로그 분석 등 |
참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 4-4)