호테의 노트에 오신 것을 환영합니다 🙌

Tableau와 Salesforce, Python과 SQL 등 데이터의 전반적인 것들을 다루는 기술 블로그입니다.

SQL

관계형 데이터베이스(RDB)와 NoSQL 데이터베이스의 차이

Hote's Note 2025. 4. 13. 20:23

관계형 데이터베이스(RDB)NoSQL 데이터베이스는 구조, 목적, 사용 환경에서 큰 차이가 있어요.
아래에 비교표와 함께 자세히 설명드릴게요.

1. 관계형 데이터베이스(RDB, Relational Database)

구조 테이블 기반(행과 열로 구성)
스키마 고정된 스키마 필요 (사전에 구조 정의)
데이터 형식 정형 데이터(숫자, 문자열 등)
확장성 수직적 확장(서버 성능 증가) 중심
쿼리 언어 SQL 사용
정합성 트랜잭션(ACID) 보장 → 데이터 무결성 보장
예시 MySQL, PostgreSQL, Oracle, SQL Server 등
적합한 사례 전통적인 업무 시스템(ERP, 금융, 인사 등)

 

2.  NoSQL (Not Only SQL)

구조 테이블이 아닌 유연한 구조 (문서, 키-값, 그래프, 컬럼형 등 다양)
스키마 스키마가 유동적이거나 없음 (비정형 데이터 수용)
데이터 형식 반정형/비정형 데이터 (JSON, XML 등 포함)
확장성 수평적 확장(서버 여러 대로 확장) 용이
쿼리 언어 SQL 대신 각 DB 고유의 쿼리 방식
정합성 일부는 CAP 이론 기반으로 일관성보다 가용성 중시
예시 MongoDB, Cassandra, Redis, Neo4j 등
적합한 사례 실시간 로그 분석, 빅데이터, IoT, SNS 등 빠른 확장성 필요할 때

 

3. 핵심 차이 요약

구분 관계형 DB NoSQL DB
형태 테이블 문서, 키-값, 그래프 등 다양
스키마 고정 유연하거나 없음
확장성 수직적 수평적 (빅데이터에 유리)
일관성 ACID 보장 BASE 모델 등 다양한 선택지
사용 용도 정형 데이터, 전통적 시스템 비정형 데이터, 대규모 서비스

 

4. 예시 비교 (MongoDB vs MySQL)

  • MySQL:
SELECT * FROM users WHERE name = 'hote';
  • MongoDB:
db.users.find({ name: 'Jinseong' });

 

5. 어떤 걸 선택해야 할까?

트랜잭션이 중요하다 (은행, 회계 등) 관계형 DB
빠르게 변화하는 대용량 데이터를 다룬다 (SNS, IoT, 로그 등) NoSQL
데이터 구조가 유동적이고 자주 바뀐다 NoSQL
고정된 구조와 복잡한 JOIN이 필요하다 관계형 DB