MongoDB 란? 대표적인 NOSQL 데이터베이스

mongoDB 이란?
- 대표적인 NoSQL 데이터베이스이다.
- mongo(humongous, extremely large)는 Humongous 에서 따온 말로, 엄청나게 큰 DB 라는 의미이다.
- 대용량 데이터를 처리하기 좋게 만들어졌다.
vs SQL 데이터베이스
- Relational Database 관계형 데이터베이스 자료들의 관계를 주요하게 다룸. SQL 질의어를 사용하기 위해 데이터를 구조화해야 함
- Non SQL 또는 Not Only SQL 구조화된 질의어를 사용하지 않는 데이터베이스 자료 간의 관계에 초점을 두지 않음 데이터를 구조화하지 않고, 유연하게 저장함
- SQL을 사용하기 위해서는 데이터를 구조화하는 것이 필수(DDL)라, 스키마에 정의된 데이터가 아니면 저장할 수 없는 제약이 따름
- 하지만 NoSQL을 사용하면 사전작업 없이 데이터베이스를 사용할 수 있음 → 데이터베이스 작업에 크게 관여하지 않고 프로젝트를 빠르게 진행할 수 있음
- NoSQL은 다양한 종류가 있지만, 대표적으로 자료를 Document(문서) 로 저장하는 Document DB가 일반적 이 외에, key-value, Graph, large collection 등의 NoSQL DB가 존재
mongoDB 구조
- Database > Collection > Document
- Database: 하나 이상의 collection을 가질 수 있는 저장소
- Collection: 하나 이상의 Document가 저장되는 공간 SQL과 다르게 collection 이 document의 구조를 정의하지 않음
- Document: MongoDB에 저장되는 자료, SQL에서 row와 유사하지만 구조제약 없이 유연하게 저장 가능 JSON과 유사한, BSON을 사용하여 다양한 자료형을 지원
- objectID: _id:
- 각 document의 유일한 키 값, SQL 의 primary key와 유사 하나씩 증가하는 값이 아닌 document를 생성할 때 자동으로 생성되는
- ex) timestamp + random value + auto increament
정리
- NOSQL(=schemaless)
- SQL보다 더 적은 규칙을 갖고 더 가볍다.
- 사용하기 쉽고 직관적으로 작동한다.
- Mongo stores JSON Documents
- 저장해야 할 JSON파일을 줄여준다.