데이터베이스Medium#402
SQL과 NoSQL 데이터베이스의 주요 차이점은 무엇인가요?
#데이터베이스#SQL#NoSQL#스키마
답변 포인트
스키마, 트랜잭션, 확장 방식, 데이터 모델의 차이를 중심으로 비교해보세요.
정답 및 해설
빠른 요약
데이터를 저장하고 관리하는 방식에 따라 SQL(관계형)과 NoSQL(비관계형)로 나뉩니다. ## SQL (Relational Database) 데이터를 테이블(Table) 구조로 저장하며, 미리 정의된 엄격한 스키마를 따릅니다.
데이터를 저장하고 관리하는 방식에 따라 SQL(관계형)과 NoSQL(비관계형)로 나뉩니다.
SQL (Relational Database)
데이터를 테이블(Table) 구조로 저장하며, 미리 정의된 엄격한 스키마를 따릅니다.
- 특징:
- 강력한 스키마(Schema) 기반
- ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션 보장
- 복잡한 JOIN 연산을 통한 데이터 관계 정의 가능
- 데이터 무결성이 매우 높음
- 확장 방식: 주로 수직적 확장(Scale-up) (CPU, RAM 업그레이드)
- 예시: MySQL, PostgreSQL, Oracle, SQL Server
NoSQL (Non-Relational Database)
정해진 스키마 없이 유연한 데이터 모델을 사용하여 저장합니다.
- 특징:
- 유연한 스키마 (Schema-less)
- 데이터 모델의 다양성 (Key-Value, Document, Wide Column, Graph)
- 대용량 데이터 및 비정형 데이터 처리에 최적화
- 데이터 모델 간의 관계보다는 빠른 읽기/쓰기에 집중
- 확장 방식: 주로 수평적 확장(Scale-out) (서버 대수 늘리기)
- 예시: MongoDB, Redis, Cassandra, DynamoDB
비교 요약
| 구분 | SQL | NoSQL |
|---|---|---|
| 스키마 | 고정적/엄격함 | 유연함/자유로움 |
| 관계 | 테이블 간 JOIN 활용 | 중복 데이터 허용/참조 최소화 |
| 확장성 | 수직적(Scale-up) 중심 | 수평적(Scale-out) 중심 |
| 적합한 사례 | 금융, 복잡한 관계 데이터 | 로그, 실시간 채팅, 대용량 비정형 데이터 |