본문 바로가기
멀티캠퍼스/Spring

231012 (목) NoSQL - MongoDB

by 세크레투스 2023. 10. 13.
반응형
SMALL

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로 사용됨.

 

 

반응형
LIST

'멀티캠퍼스 > 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