공부/DB

MongoDB 2장

Stair 2025. 7. 30. 09:51
반응형

데이터량이 한정되었을때는 관계형데이터베이스를 가지고 처리가 가능했다.

데이터 양이 점점 많아지고 복잡도가 증가함에 따라 관계형데이터베이스가 처리할 수 있는 한계가 있었다.

더 많은 데이터 양을 처리하기 위해 NoSQL이 떠올랐다.

 

NoSQL(Not Only SQL)

특징

- 전통적인 관계형 데이터베이스보다 덜 제한적

- 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘 제공

- 디자인의 단순화, 수평적 확장성 추구

- 단순 검색 및 추가 작업을 위한 매우 최적화된 키값 저장 공간으로, Latency와 throughput관련하여 상당한 성능 이익 제공

- 빅데이터와 실시간 웹 애플리케이션용

 

NoSQL의 장점

- 확장성 : NoSQL 데이터베이스는 수평적 확장에 매우 강력하다. 더 많은 서버를 추가함으로써 쉽게 데이터 처리 용량을 늘릴 수 있다. 대규모 분산 시스템이나 클라우드 환경에 유용하다.

- 유연한 스키마 : NoSQL 데이터베이스는 스키마를 미리 정의할 필요가 없거나 유연하게 정의할 수 있다. 이에따라 빠르게 변화하는 데이터 요구사항이나 다양한 데이터 형태의 데이터를 다룰 때 개발 속도를 높이고 유지보수비용을 줄일 수 있다.

- 고성능 : NoSQL은 대량의 읽기/쓰기 등에서 매우 빠른 성능을 제공한다.

- 다양한 데이터 모델 : NoSQL은 키-값, 문서, 컬럼형, 그래프 등 다양한 데이터 모델을 제공하여 특정 문제 해결에 최적화된 데이터베이스를 선택할 수 있도록 한다.

- 빅 데이터 처리 : 대규모 데이터를 처리하고 분석하는데 적합하다.

 

NoSQL의 단점

- 일관성 부족 : NoSQL은 ACID중 Consistency를 완화하여 성능과 가용성을 우선시 하기 때문에 데이터의 즉각적인 일관성이 중요한 실무에서는 적합하지 않다.

- 복잡한 쿼리 : RDBMS의 SQL처럼 JOIN 및 다중 조인과 같은 조건 검색에 약하다.

- 데이터 중복 : 조인 대신 데이터 중복을 통해 성능을 향상시키는 경우가 많다.

- 도구 부족 : NoSQL은 RDBMS보다 상대적으로 역사가 짧아 생태계가 잘 이루어지지 않았다.

- 데이터 모델링의 어려움 : 유연한 스키마가 장점이지만, 명확한 가이드라인 없이 모델링할 경우 일관성을 유지하거나 효율적인 쿼리를 작성하기 어려워진다.

 

 

MongoDB

- 데이터를 JSON의 이진 버전인 BSON을 사용하여 문서에 데이터를 저장한다.

- 웹 응용프로그램과 인터넷 기반 서비스를 위해 설계한다.

- 읽기/쓰기 효율을 높임과 동시에 자동으로 장애조치를 수행하고, 확장이 쉽다.

 

몽고디비 : 도큐먼트 데이터베이스

 

 

NoSQL vs RDBMS

- 둘간의 차이점

특징 RDBMS (관계형 데이터베이스)
NoSQL (비관계형 데이터베이스)
데이터 모델 테이블 기반 (행과 열), 정규화된 데이터
키-값, 문서, 칼럼형, 그래프 등 다양한 모델, 비정형/반정형 데이터
스키마 엄격한 스키마 (데이터 저장 전 스키마 정의 필수)
유연한 스키마 (스키마가 없거나 변경이 자유로움)
확장성 주로 수직적 확장 (더 강력한 서버), 수평적 확장은 복잡하고 어려움
주로 수평적 확장 (서버 추가로 용량 증대 용이)
ACID 속성 강력한 ACID(원자성, 일관성, 고립성, 지속성) 보장
BASE(Basically Available, Soft state, Eventually consistent) 모델, 일관성 완화
쿼리 언어 SQL (Structured Query Language)
각 데이터베이스마다 다른 쿼리 API 또는 언어 (예: MongoDB의 MQL)
데이터 관계 조인(JOIN)을 통한 복잡한 관계 표현 및 관리 용이
조인 기능이 없거나 제한적, 데이터 중복을 통해 관계 표현
성능 복잡한 쿼리 및 트랜잭션 처리에서 강점
대량의 읽기/쓰기, 특정 유형의 데이터 액세스에서 고성능
개발 복잡성 스키마 변경 시 영향이 크고, 초기 설계에 시간 소요
스키마 변경이 자유로워 빠른 개발 가능, 데이터 모델링 유연성
주요 사용처 금융 시스템, ERP, CRM 등 데이터 일관성이 중요한 애플리케이션
빅 데이터, 실시간 웹 서비스, IoT, 모바일 앱, 콘텐츠 관리 등
예시 MySQL, PostgreSQL, Oracle, SQL Server
MongoDB, Cassandra, Redis, Neo4j

 

NoSQL은 확장성, 유연성, 성능이 중요하며, 대량의 비정형 데이터를 빠르게 처리하고 스키마 변경이 잦은 서비스에 유리하다.

반응형

'공부 > DB' 카테고리의 다른 글

몽고DB에 문서 대량 삽입하기  (4) 2025.08.06
MongoDB 4장(MongoDB 모델링)  (2) 2025.08.01
MongoDB 3장  (4) 2025.07.31
MongoDB 1장  (1) 2025.07.28