-
mongoDB란?
C++로 작성된 Document-Oriented Cross Platform의 nosql 데이터베이스이다. Nosql 방식은 관계형 데이터베이스가 아님을 의미한다.
Document
RDBMS의 record와 비슷한 개념인데 json 처럼 key-value 형식의 데이터라고 볼 수 있다. 샘플 데이터를 보면 쉽게 이해할 수 있다.
_id는 12바이트 크기의 16진수 값이며 유일함을 보장하는 값이다. 첫 4바이트는 timestamp, 3바이트는 machine id, 2바이트는 mongoDB 서버의 프로세스 id, 마지막 3바이트는 순차번호이다. 또한, 같은 collection 안에 document 끼리 다른 schema를 가질 수 있다.
Collection
RDBMS의 Table과 같은 개념으로 document의 집합을 의미한다.
database
collection 들의 물리적인 컨테이너이다.
장점
- Schema-less (Schema가 없다. 같은 Collection 안에 있을지라도 다른 Schema를 가지고 있을 수 있다)
- 각 객체의 구조가 뚜렷하다
- 복잡한 JOIN 이 없다.
- Deep Query ability (문서지향적 Query Language 를 사용하여 SQL 만큼 강력한 Query 성능을 제공한다.
- 어플리케이션에서 사용되는 객체를 데이터베이스에 추가 할 때 Conversion / Mapping이 불필요하다.