본문 바로가기

과목/빅데이터

MongoDB 개요

몽고DB는 오픈소스 데이터베이스이고 Not Only SQL 데이터베이스를 이끌고 있다.

C++로 작성되었다.


몽고DB는 교차 플랫폼이다. 문서 지향 데이터베이스는 높은 성능, 높은 이용성, 쉬운 확장성을 제공한다. collection과 document의 개념 상에서 작업한다.


Database

collections을 위한 물리적인 컨테이너이다. 각 데이터 베이스는 파일 시스템에서 자체 파일 집합을 가져온다. 하나의 몽고DB 서버는 전형적으로 여러 개의 데이터 베이스들을 가진다.


Collection

몽고DB documents의 그룹이다. 관계형 데이터 베이스 관리 시스템의 테이블과 동등하다. collection은 하나의 데이터 베이스 안에 존재한다. collection은 스키마를 강요하지 않는다. 한 collection에 있는 documents는 다른 field를 가질 수 있다. 전형적으로 collection의 모든 documents는 유사하거나 연관된 목적이 있다. 


Document

키 값 쌍의 집합이다. document는 동적 스키마를 갖는다. 동일 collection의 document들은 동일한 필드나 구조의 집합을 가질 필요가 없다. collection의 document 내의 공통 field는 아마 다른 자료형을 가질 수 있다. (RDBMS의 테이블 안에 int, varchar 등이 있듯이) 


RDBMS와 MongoDB와의 관계


RDBMSMongoDB
DatabaseDatabase
TableCollection
Tuple/RowDocument
columnField
Table JoinEmbedded Documents
Primary KeyPrimary Key (Default key _id provided by mongodb itself)
Database Server and Client
Mysqld/Oraclemongod
mysql/sqlplusmongo

테이블은 Collection, 튜플은 Document, Column은 Field, Join은 Embedded Documents


다음은 블로그 사이트의 document 구조이다. 콤마로 키 값 쌍을 나눈다.

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'http://www.tutorialspoint.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100, 
   comments: [	
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'My second comments',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}

_id는 모든 docuemtn의 유일함을 보장하는 12바이트 16진수 수이다. document를 삽입하는 동안 _id를 제공할 수 있다. 제공하지 않는다면 MongoDB는 모든 document에 유일한 id를 제공한다. 12바이트 중 첫 4바이트는 타임 스탬프(작업을 할 때 시간 도장 찍는 느낌)를 위한 것이다. 다음 3바이트는 machine id를 위한 것이다. 다음 2바이트는 MongoDB의 프로세스 id를 위한 것이다. 나머지 3바이트는 간단히 증가하는 값이다.


출처 https://www.tutorialspoint.com/mongodb/mongodb_overview.htm



'과목 > 빅데이터' 카테고리의 다른 글

MongoDB 데이터 베이스 생성  (0) 2018.04.27
MongoDB 이점  (0) 2018.04.27
MongoDB installation 몽고디비 설치  (0) 2018.04.21
Aggregation  (0) 2018.04.20
Indexing  (0) 2018.04.20