먼저, 각각의 개념을 살펴보자.
RDBMS(Relational DataBase Management System)
관계형 데이터베이스 관리 시스템
데이터를 2차원 테이블 형태로 저장하고, 테이블 간의 관계로 데이터를 관리하는 시스템.
SQL 언어를 사용해서 CRUD를 수행한다.
RDBMS의 특징
테이블 간 JOIN
: RDBMS는 외래키(Foreign Key)를 통해 테이블 간의 관계를 설정하여 데이터를 연결할 수 있다.

RDBMS의 장/단점
■ 장점
- ACID(원자성, 일관성, 격리성, 지속성)의 트랜잭션 특성을 통해 데이터의 일관성을 보장한다.
- Scale-Up: 하드웨어 성능을 높여 대용량 데이터 처리가 가능하다.
■ 단점
- 스키마 유연성 부족: 스키마는 고정되어 있어서, 변경이 필요한 경우 작업 비용이 크다.
- Scale-Out: 여러 서버에 데이터를 분산하기 어려워, 대규모 분산 처리에 한계가 있다.
RDBMS의 종류
MySQL
- 오픈 소스 기반의 대표적인 관계형 데이터베이스 관리 시스템
- 데이터베이스 확장이 용이하며, 다양한 보안 기능을 제공
MariaDB
- MySQL에서 파생된 오픈 소스 관계형 데이터베이스 관리 시스템
- MySQL과 호환성을 유지할 수 있고, MySQL보다 더 빠른 성능을 제공한다.
Oracle
- Oracle Corporation에서 개발한 상용 관계형 데이터베이스 관리 시스템
- 대규모 데이터 처리가 가능하지만, 비용이 많이 든다는 단점이 있다.
다음은 NoSQL에 대해서 알아보도록 하자!!!
NoSQL
RDBMS와 달리 비정형·반정형 데이터를 저장하고 관리하는데 사용되는 데이터베이스 관리 시스템
NoSQL의 특징
Scale-Out
: 여러 서버에 데이터를 분산하여 대용량 데이터를 효율적으로 처리할 수 있다.
관계 미정의
: 테이블 간의 관계를 정의하지 않는다. 즉 JOIN이 불가능하다.
NoSQL 구조
Document 구조
- 데이터가 key - document 쌍으로 저장된다.
- document에 JSON, XML 등 다양한 형식의 문서가 저장된다.
- 대표적으로 MongoDB가 있다.
Key-Value 구조
- 데이터가 key - value의 쌍으로 저장된다.
- value에 다양한 타입(이미지, 오디오, JSON 데이터 등)을 허용한다.
- 빠른 연산을 지원한다.
- 세션, 캐시 저장 등 다양한 용도로 활용된다.
- 대표적으로 Redis가 있다.
Wide-Column 구조
- 데이터가 key(Row) - Column Family- Column의 3단계 구조로 저장된다.

- 대규모 데이터의 분산 처리에 적합하다.
- 스키마가 유연해서, 새로운 Column 추가가 자유롭다.
- 대표적으로 Cassandra가 있다.
Graph 구조
- 데이터를 Node(노드) - Edge(엣지) - Property(속성)으로 저장한다.
- 데이터 간의 복잡한 연결에 최적화되어있다.
- 대표적으로 Neo4j가 있다.
그래서... 둘은 무슨 차이가 있나요❓❓❓❓
RDBMS와 NoSQL의 차이점
1. 데이터 형태(정형 vs 비·반정형 데이터)
- RDBMS는 정형 데이터를 저장한다. 즉, 해당 데이터를 고정된 스키마에 저장하여 다룬다.
- NoSQL은 비정형 및 반정형 데이터를 저장한다. 또한 스키마가 없거나 유연하다.
2. Scale Up vs Scale Out
- RDBMS는 Scale-Up을 지원하여 비용이 많이 든다.
- NoSQL은 Scale-Up과 Scale-Out을 지원하며, 데이터 분산이 용이하다.
3. 데이터 중복 여부
- RDBMS는 데이터를 중복없이 한 번만 저장해야 한다.
- NoSQL은 데이터 중복 저장을 허용한다.
단, 중복 데이터에 변경이 발생하면 다른 중복 데이터들도 함께 수정해야 한다.
4. 언제 사용할까?
- RDBMS는 정형 데이터 환경에서 트랜잭션 처리가 필요할 때, 관계를 맺고 있는 데이터가 자주 변경될 때 사용한다.
- NoSQL은 데이터 구조가 정확하지 않으며 자주 변경 또는 확장될 때 사용한다.
또한, 3번처럼 중복 데이터의 변경 시 일일이 수정해주어야 하기 때문에 데이터가 자주 변경되지 않을 때 사용한다.
:)
출처
https://cloud.google.com/learn/what-is-a-relational-database?hl=ko
https://mysterlee.tistory.com/106
'Computer Science > 데이터베이스' 카테고리의 다른 글
| [DB] 트랜잭션 고립 수준(Transaction Isolation Level) (0) | 2025.09.19 |
|---|---|
| [DB] 공통 테이블 식(CTE) (0) | 2025.09.19 |
| [DB] Union vs Union All (0) | 2025.09.10 |
| [DB] 트랜잭션(Transaction) (2) | 2025.08.22 |
| [MySQL] JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN (4) | 2025.08.07 |