728x90
반응형
데이터베이스는 모든 시스템의 핵심입니다. 우리가 앱에서 로그인할 때, 상품을 검색할 때, 혹은 SNS에서 친구의 게시글을 볼 때도 데이터베이스는 항상 뒤에서 작동하고 있습니다.
이번 포스팅에서는 두 가지 대표적인 데이터베이스 관리 시스템인 RDBMS와 NoSQL의 차이를 명확하게 비교해보려 합니다.
🧱 Database, DBMS, SQL 간단 정리
- Database: 데이터를 구조화하여 저장한 집합체
- DBMS (Database Management System): 데이터를 저장하고 관리하는 소프트웨어
- SQL (Structured Query Language): 관계형 데이터베이스에서 데이터를 다루기 위한 언어
🗂️ RDBMS란?
RDBMS (Relational DataBase Management System)는 데이터를 정해진 스키마에 따라 2차원 테이블(행과 열)로 저장하는 데이터베이스 시스템입니다.
- 관계형 모델 기반
- 테이블 간 관계를 외래 키(Foreign Key)로 맺음
- 대표 시스템: MySQL, PostgreSQL, Oracle, MS-SQL
📌 주요 특징:
- 데이터 정합성과 무결성 보장
- JOIN을 통한 복잡한 관계형 쿼리 가능
- ACID 트랜잭션 보장
🧩 NoSQL이란?
NoSQL (Not Only SQL)은 비관계형 데이터베이스로, 다양한 데이터 구조를 저장할 수 있도록 설계된 시스템입니다.
- 스키마가 없거나 유연함
- 수평 확장(Scale-Out)이 용이
- 대표 시스템: MongoDB, Redis, Cassandra, Neo4j
📌 4가지 주요 유형:
- Key-Value Store – ex) Redis, DynamoDB
👉 빠른 검색과 단순한 구조 - Document Store – ex) MongoDB
👉 JSON 기반 문서 저장, 객체와 유사 - Wide-Column Store – ex) Cassandra, HBase
👉 열 기반 저장, 대용량 데이터 처리에 강함 - Graph DB – ex) Neo4j
👉 노드와 엣지 기반, 소셜 그래프나 추천 시스템에 적합
⚖️ RDBMS vs NoSQL 비교
항목 | RDBMS | NoSQL |
데이터 구조 | 고정도니 스키마(테이블) | 유연한 구조(스키마 없음 또는 느슨함) |
관계 설정 | 외래 키로 테이블 간 관계 설정 | 관계 없음(또는 어플리케이션에서 처리) |
확장성 | Scale-Up(서버 성능 향상) | Scale-Out(서버 분산 처리) |
데이터 정합성 | 강한 정합성(ACID 보장) | 일관성보단 가용성 및 분산을 우선(CAP 이론) |
사용 사례 | 금융, ERP, CRM 등 정형 데이터 | SNS, 빅데이터, IoT 등 비정형 데이터 |
예시 | MySQL, Oracle, PostgreSQL | MongoDB, Redis, Cassandra, Neo4j |
✅ 언제 어떤 DB를 선택해야 할까?
- RDBMS
- 데이터 구조가 명확하고 변경이 적다
- 데이터 무결성과 정합성이 중요하다
- NoSQL
- 비정형 데이터가 많고 자주 바뀐다
- 수평적 확장이 필요하다
- 빠른 읽기/쓰기와 유연한 구조가 필요하다
📌 정리
- RDBMS는 전통적인 데이터베이스로, 정형화된 데이터를 다룰 때 탁월한 안정성과 신뢰성을 제공합니다.
- NoSQL은 현대의 대용량, 고속 처리 요구를 충족시키기 위한 선택지로, 유연성과 확장성이 강점입니다.
다음 포스팅에서는 MongoDB를 직접 사용해보며 NoSQL의 실전 사용법을 소개해드릴게요! 😎
궁금한 점이나 피드백은 댓글로 남겨주세요 💬
728x90
반응형
'CS > Database' 카테고리의 다른 글
[Database] OLTP vs OLAP: 개발자라면 꼭 알아야 할 데이터 처리 방식 (0) | 2025.03.09 |
---|---|
[error][mysql/mariadb] Error executing DDL "alter table .. drop foreign key if exists... (0) | 2024.02.23 |
soft delete 와 hard delete 란? (0) | 2024.02.04 |