🌟시작하기에 앞서
나보고 RDBMS와 NoSQL를 설명해보라고 하면,
RDBMS는 잘 정리된 DB, NoSQL는 마구잡이 DB라고 할 것 같다.
이번에 따로 프로그래밍 공부를 하는데, 거기에서 MongoDB가 나왔다.
그래서 MongoDB 는 RDBMS와 NoSQL 중 어떤 것인지 알고,
RDBMS와 NoSQL에 대해 좀 더 명확히 개념화를 해보려 한다.
포스팅 구성은 아래와 같다.
1. DB 종류 ( RDBMS와 NoSQL)
2. 특징 및 사용 사례
3. MongoDB 특징
(각 부분에 구체적인 설명도 포함했다.)
📚DB의 종류
여기에 RDBMS와 NoSQL의 프레임 워크들이 나오는데,
프로그래밍을 하면 언젠가는 쓸 프레임 워크들이니 보면서 익숙해져보자 !
📘 RDBMS
데이터를 테이블 형식으로 저장하며, 테이블 간의 관계를 정의할 수 있는 관리 시스템
(엑셀에 데이터를 저장하는 것과 유사)
📌 특징
데이터 구조 : 정형화된 테이블 구조, 명확한 스키마 정의 필요
확장성 : 데이터가 적재된 상태에서 중간에 열을 추가하기 어려움
일관성 및 분석 용이 : 데이터가 일관적이고 분석에 용이함
ACID 속성 : 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)을 보장
고정된 스키마 : 스키마가 고정되어 있어 데이터 변경 시 구조적 제약이 있음
(특징들을 읽어보면, 그냥 전형적인 정형화 테이블이라고 생각든다. 약간 테이블계 엄친아...?)
📌 사용 사례
금융 시스템, ERP 시스템, 고객 관리 관리(CRM) 시스템, 전통적인 비즈니스 애플리케이션
📘 NoSQL (Not only SQL)
비관계형 데이터베이스 유형을 가리키며, 관계형 테이블과는 다른 형식으로 데이터 저장
📌 특징
데이터 모델 : 키-값 DB, 도큐먼트 DB, 컬럼형 DB, 그래프 DB 등 다양한 데이터 모델 지원
유연한 스키마 : 데이터 하나하나마다 같은 필드 값을 가질 필요 없음, 자유로운 형태의 데이터 적재 가능
확장성 : 높은 확장성, 대규모 데이터 처리에 유리함
일관성 : 데이터 일관성이 부족할 수 있음 (특히 분산 시스템에서)
실시간 처리 : 실시간 데이터 분석에 적합
✨데이터 모델 종류
- 키-값 DB :
가장 단순한 형태의 NoSQL로 키와 값의 쌍으로 저장
(단순 + 고성능 + 유연성)
- 도큐먼트 DB :
JSON,BSON,XML 등의 형식으로 문서 저장 ( NoSQL 중 가장 인기가 높음)
(유연한 스키마 + 강력한 쿼리 기능)
- 컬럼형 DB :
데이터를 열 단위로 저장하고 각 열 패밀리는 관련 있는 데이터의 집합을 포함
(효율적인 읽기 및 쓰기, 스키마 유연성, 대규모 데이터 처리)
- 그래프 DB :
데이터를 노드(개체)와 엣지(개체 간의 관계)로 표현하고 객체 간의 관계를 모델링
(복잡한 관계 표현, 빠른 관계 탐색, 유연한 데이터 모델링)
📌 사용 사례
대규모 웹 애플리케이션, 실시간 데이터 분석, IoT 데이터 저장, 소셜 네트워크 서비스
📘MongoDB
MongoDB는 JSON과 유사한 BSON 형식을 사용하여 직관적이고 가독성이 높은 데이터 구조를 제공
MongoDB는 Document DB로 가장 많이 쓰이는 DB 중 하나이다.
📌 특징
- 샤딩(수평적 확장) :
데이터를 여러 서버에 분산 저장할 수 있어 대규모 데이터 처리와 높은 트래픽을 효과적으로 분산
(예시는 아래에 나옴)
-복제 :
데이터를 여러 복제본에 저장하여, 하나의 서버가 장애를 일으키더라도 자동으로 다른 서버가 역할
-다양한 쿼리 기능 :
복잡한 쿼리와 집계 기능을 지원하여 데이터 분석 및 관리에 유용
-활발한 커뮤니티 :
풍부한 리소스와 지원을 제공받을 수 있으며, 다양한 언어와 플랫폼에서 쉽게 통합
🔍JSON과 BSON의 비교
BSON (Binary JSON)
JSON의 텍스트 형식을 바이너리 형식으로 변환하여, 더 빠른 데이터 처리와 효율적인 저장 공간 사용
(바이너리 형식으로 가독성이 떨어지고 디버깅이 어려움)
Mongo DB는 구조화되지 않은 데이터를 처리하는 데 우수하지만,
복잡한 트랜잭션, 엄격한 일관성 또는 전통적인 조인 연산이 필요한 애플리케이션에는 적합하지 않는다.
'SQL' 카테고리의 다른 글
SQLD 필수 개념 요약 정리 / 벼락치기, 독학, 요약본 (2) | 2024.08.21 |
---|