- MongoDB 시작해보기2023년 05월 18일
- starryeye
- 작성자
- 2023.05.18.:18
먼저 NoSQL 에 대해 알아보겠다.
NoSQL의 등장 배경
관계형 DB가 등장할 당시엔 Disk Storage 가 당시 매우 비싸고 용량의 제한이 컷다.
데이터 중복을 줄여서 용량을 최적으로 사용하는 방향으로 발전 되어 왔기 때문에
Scale-up, 데이터 정규화 기능에 특화 되어있다.
NoSQL은 데이터의 일관성을 약간 포기한 대신
여러 대의 컴퓨터에 데이터를 분산하여 저장하는 것(Scale-out)을 목표로 등장하였다.
NoSQL의 등장으로 작고 값싼 장비 여러 대로
대량의 데이터와 컴퓨팅 부하를 처리하는 것이 가능하게 되었다.
NoSQL의 종류
1. Key-value
2. Document
3. Column-family
4. Graph
여기서 MongoDB는 Document 모델에 해당한다.
Document 모델
데이터는 키와 도큐먼트(Document)의 형태로 저장된다.
키-값 모델과 다른 점이라면 Value가 계층적인 형태인 도큐먼트로 저장된다는 것이다.
객체지향에서의 객체와 유사하며, 이들은 하나의 단위로 취급되어 저장된다.
다시 말해 하나의 객체를 여러 개의 테이블에 나눠 저장할 필요가 없어진다는 뜻이다.
주요한 특징으로는 객체-관계 매핑이 필요하지 않다.객체를 도큐먼트의 형태로 바로 저장 가능하기 때문이다.
또한 검색에 최적화되어 있는데, 이는 키-값 모델의 특징과 동일하다.
단점이라면 사용이 번거롭고 쿼리가 SQL과는 다르다는 점이다.
참고>
경우에 따라 Document 모델로 구분하지 않고 Key-Value 모델로 묶는 경우도 있다.
MongoDB
이제 구체적으로 알아보자..
기본적으로 관계형 DB를 개선시키기 위해 나왔다.
(상위호환의 개념은 아니고 같이 쓰면 좋은 DB이다.)
관계형 DB와 비교하여 무엇이 다를까..
1. 스키마가 자유롭다.
-> 스키마 변경에 공수가 적게든다. BSON 문서 형태로 데이터를 저장한다.
2. HA와 Scale-out Solution을 자체적으로 제공하여 확장성과 신속성이 좋다.
-> 확장시, Application 변경이 필요 없음
3. Secondary Index를 지원하는 NoSQL 이다.
4. 다양한 Index를 지원한다.
5. 응답속도가 빠르다.
-> 데이터 중복이 있지만, Join 없이 조회되므로 응답속도가 일반적으로 빠르다.
6. 오픈소스이다.
MongoDB는
대용량 데이터와 트래픽을 분산이 필요한데..
쉽게 Scale-out을 해야할 필요가 있고
스키마가 정해져있지 않은데..
다양하게 쿼리를 해야할 필요가 있을때 MongoDB 를 사용하면 좋다.
알면 좋은 추가적 특징
1. 기본적으로 디스크 기반의 데이터 베이스이다. (관계형 데이터 베이스와 동일하게 데이터를 영구적 보관)
2. 데이터의 일부를 메모리에 캐싱하는 구조로 설계되었다.
3. WiredTiger 라는 저장 엔진을 제공한다. 이 엔진은 in-memory storage 옵션을 제공한다.
포스팅 하고 있는 날 기준..
DB 랭킹 5위에 해당한다.
1~4 위는 모두 관계형 DB에 해당한다.
'DataBase > NoSQL' 카테고리의 다른 글
Redis 시작해보기 (0) 2023.06.01 MongoDB Sharded Cluster (0) 2023.06.01 MongoDB Replica Set (0) 2023.05.20 MongoDB 3가지 형태 (0) 2023.05.20 MongoDB 구조 (1) 2023.05.18 다음글이전글이전 글이 없습니다.댓글