SQL

RDBMS NoSQL MongoDB

Jerry_K 2024. 7. 8. 19:14

🌟시작하기에 앞서

나보고 RDBMS와  NoSQL를 설명해보라고 하면,

RDBMS는 잘 정리된 DB,  NoSQL는 마구잡이 DB라고 할 것 같다.

 

이번에 따로 프로그래밍 공부를 하는데, 거기에서 MongoDB가 나왔다.

그래서 MongoDB 는 RDBMS와  NoSQL 중 어떤 것인지 알고,

RDBMS와  NoSQL에 대해 좀 더 명확히 개념화를 해보려 한다.

 

포스팅 구성은 아래와 같다.

1. DB 종류 ( RDBMS와  NoSQL)
2. 특징 및 사용 사례
3. MongoDB 특징 

 

(각 부분에 구체적인 설명도 포함했다.)


📚DB의 종류 

 

 

여기에 RDBMS와  NoSQL의 프레임 워크들이 나오는데, 

프로그래밍을 하면 언젠가는 쓸 프레임 워크들이니 보면서 익숙해져보자 !

 

📘 RDBMS 

데이터를 테이블 형식으로 저장하며, 테이블 간의 관계를 정의할 수 있는 관리 시스템
(엑셀에 데이터를 저장하는 것과 유사)

 

https://been2.tistory.com/31

 

📌 특징

데이터 구조 : 정형화된 테이블 구조, 명확한 스키마 정의 필요
확장성 : 데이터가 적재된 상태에서 중간에 열을 추가하기 어려움
일관성 및 분석 용이 : 데이터가 일관적이고 분석에 용이함
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 중 하나이다.

 

📌 특징

- 샤딩(수평적 확장) :
데이터를 여러 서버에 분산 저장할 수 있어 대규모 데이터 처리와 높은 트래픽을 효과적으로 분산
(예시는 아래에 나옴)

-복제 :
데이터를 여러 복제본에 저장하여, 하나의 서버가 장애를 일으키더라도 자동으로 다른 서버가 역할

-다양한 쿼리 기능 :

복잡한 쿼리와 집계 기능을 지원하여 데이터 분석 및 관리에 유용

-활발한 커뮤니티 :
풍부한 리소스와 지원을 제공받을 수 있으며, 다양한 언어와 플랫폼에서 쉽게 통합

 

MongoDB 예시_https://velog.io/@yulhee741/CS-%EC%A7%80%EC%8B%9D-TIL-4-NoSQL

 

 

샤딩에 대한 예시 _ 출처 :업비트 투자자보호센트

 

 

🔍JSON과 BSON의 비교

BSON (Binary JSON)
JSON의 텍스트 형식을 바이너리 형식으로 변환하여, 더 빠른 데이터 처리와 효율적인 저장 공간 사용
(바이너리 형식으로 가독성이 떨어지고 디버깅이 어려움)

Mongo DB는 구조화되지 않은 데이터를 처리하는 데 우수하지만, 
복잡한 트랜잭션, 엄격한 일관성 또는 전통적인 조인 연산이 필요한 애플리케이션에는 적합하지 않는다.

 

 

 

 

 

 

 

 

 

 

 

 

'SQL' 카테고리의 다른 글

SQLD 필수 개념 요약 정리 / 벼락치기, 독학, 요약본  (2) 2024.08.21