본문 바로가기

Node.js

12. MongoDB

MongoDB 란?

 

대표적인 NoSQL, Document DB 

Mongo는 Humongous 에서 따온 말로, 엄청나게 큰 DB 라는 의미 

-> 대용량 데이터를 처리하기 좋게 만들어짐

 

RDB vs. NoSQL 

1. RDB ? 

 

  • Relational DataBase 즉, 관계형 데이터베이스.
  • 자료들의 관계를 주요하게 다룸
  • SQL 질의어를 사용하기 위해 데이터를 구조화해야함.

2. NoSQL ? 

 

  • Non SQL 또는 Not Only SQL
  • 구조화된 질의어를 사용하지 않는 데이터베이스
  • 자료 간의 관계에 초점을 두지 않음
  • 데이터를 구조화하지 않고, 유연하게 저장함

 

NoSQL 을 사용하는 이유 

 

  • SQL을 사용하기 위해서는 데이터를 구조화하는 것이 필수 (DDL)

     -> 스키마에 정의된 데이터가 아니면 저장할 수 없는 제약이 따름

 

  • NoSQL을 사용하면 사전작업 없이 데이터 베이스를 사용할 수 있음

     -> 데이터베이스 작업에 크게 관여하지 않고 프로젝트를 빠르게 진행할 수 있음  

 

 

MongoDB 기본 개념 

1. Database

 

  • 하나 이상의 collection을 가질 수 있는 저장소
  • SQL에서의 database 와 유사

2. Collection

 

  • 하나 이상의 Document가 저장되는 공간
  • SQL 에서의 table 과 유사
  • 하지만, collection이 dcoument의 구조를 정의하진 않음

3. Document

 

  • MongoDB에 저장되는 자료
  • SQL에서 row 와 유사하지만 구조제약 없이 유연하게 저장 가능
  • JSON과 유산, BSON 을 사용하여 다양한 자료형을 지원 

 

  - 1) ObjectID 

 

  • 각 document의 유일한 키 값, SQL의 primary key와 유사
  • 하나씩 증가하는 값이 아닌 document를 생성할 때 자동으로 생성되는 값
  • timestamp + random value + auto increament

 

 

'Node.js' 카테고리의 다른 글

14. CORS  (0) 2022.03.11
13. CRUD  (0) 2022.03.07
11. req.params 과 req.body  (0) 2022.02.27
10. 구조 분해 할당 ( Destructiong assignment)  (0) 2022.02.27
9. 용어 정리  (0) 2022.02.27