RDBMS : Relationship DB Management System -> 정형데이터
NoSQL : 비정형데이터 -> SQL은 쓰지 않음. 자체적인 문법이 있음. 몽고디비는 자바스크립트를 사용함.
<mongoDB는 언제 쓰나?>
- 스키마(구조)가 자주 바뀌는 환경
- 분산 컴퓨팅 환경 : 샤딩과 복제가 많이 일어나는 환경
* 분산 컴퓨팅이란..? : 네트워크에서 서버가 여러대가 있는데, 이것을 한 서버에서 운영하는 것처럼 보이게 하는 것.
- 샤딩과 복제의 장단점
* 복제 : 정보를 복제해서 미러링이 가능하다. 소량의 데이터를 꼼꼼하게 보관하고자 할때 유용하다.
* 샤딩 : 정보를 분할해서 병렬처리가 가능해짐. 데이터를 분석하고자 할 때, 각자 동시에 분석이 가능하며, 속도적인 측면에서 유리하다. 빅데이터 분석시 유용하게 쓰인다.
이 두가지가 모두 몽고디비에서 사용 가능하다.
샤딩에도 가로샤딩, 세로샤딩이 있다.
<mongoDB 장점>
- flexible schema : 정해진(고정된) 스키마가 없음.
- High Availability (고가용성) : 자체 기능이 맣음. 별도의 부가 비용 불필요
- Shard(조각) : 데이터분리 가능(행: 가로샤딩, 열:세로샤딩)
- Second..
<NoSQL DBMS 네가지 분류>
종류 | 예시 |
키-값 스토어 | Redis(좋아요, 조회수, 추천수), Dynamo |
컬럼 지향 스토어 | HBase, Cassandra |
도큐먼트 지향 스토어 | MongoDB |
그래프 데이터베이스 | Neo4J |
<관계형 모델과 MongoDB 모델>
id | 이름 | 물품번호 |
1 | mike | 4 |
2 | miki | 5 |
3 | milk | 6 |
{id: 1, 이름: 'mike', 물품번호: 4}
{id: 2, 이름: 'miki', 물품번호: 5}
{id: 3, 이름: 'milk', 물품번호: 6}
id | 명단_id | 물품번호 |
1 | 1 | 4 |
2 | 1 | 3 |
3 | 2 | 5 |
4 | 3 | 6 |
RDBMS에서는 배열을 값으로 넣지 못했는데,
NoSQL에서는 배열을 값으로 넣어줄 수 있다.
<MongoDB 구성요소>
- 테이블 : 컬렉션
- 행 : 도큐먼트
- 컬럼 : 필드 또는 프로퍼티
- uuid : universially unique id -> 12byte...
- 전세계적으로 유일한 id(uuid)를 만드는 방법 : 위치정보 + 시간정보 + 순차정보 -> primary default key로 사용됨.
'멀티캠퍼스 > Spring' 카테고리의 다른 글
231019(목) - MongoDB (0) | 2023.10.20 |
---|---|
231013 (금) NoSQL - MongoDB (0) | 2023.10.16 |
검색 알고리즘 (0) | 2023.10.12 |
231006 (금) (0) | 2023.10.06 |
230927 (수) (0) | 2023.09.27 |