- MongoDB는 C++로 작성된 오픈소스 문서지향(Document-Oriented)적 Cross-platform 데이터베이스이다.
- 뛰어난 확장성과 성능을 가지고 있다.
- 현존하는 NoSQL데이터베이스 중 유명하다.
NoSQL?
Not Only SQL이다. 기존의 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터저장소이다. 관계형 DB가 아니기 떄문에 RDMS처럼 고정된 스키마 및 JOIN이 존재하지 않는다.
Document?
Document Oriented 데이터베이스
여기서 말하는 Document는 RDMS의 record와 비슷한 개념이다. 데이터 구조는 한 개 이상의 key-value pair로 이루어져 있다.
ex) MongoDB의 샘플 Document
{
"_id": ObjectId("5099803df3f4948bd2f98391"),
"username": "pink_salt",
"name": { first: "P.S.", last: "Kim" }
}
- _id, username, name → key
- 그 옆의 값은 value이다.
- _id는 12bytes의 hexadecimal값이고 각 document의 유일함(uniqueness)을 제공한다.
- 이 값의 첫 4bytes는 현재 timestamp, 다음 3bytes는 machine id, 다음 2bytes는 MongoDB 서버의 프로세스 id, 마지막 3bytes는 순차번호이다. (추가될 때마다 값이 높아진다.)
Collection?
Collection은 MongoDB Document의 그룹이다. Document들이 Collection내부에 위치하고 있다. RDMS table과 비슷한 개념이지만 RDMS와 달리 schema를 가지고 있지 않다. Document 설명에 나와있듯이 Document들이 동적인 schema를 갖고 있기 때문이다.
Database?
Database는 Collection들의 물리적인 컨테이너이다. 각 Database는 파일시스템에 여러 파일들로 저장된다.
RDMS 비교표
RDMS : Relational Database Management System(관계형 데이터베이스 관리 시스템) → 행과 열로 된 2차원의 table로 데이터를 관리하는 데이터베이스 시스템이다. ex)Mysql, Oracle Database, DB2
RDBMS | MongoDB |
Database | Database |
Table | Collection |
Tuple/Row | Document |
Column | Field |
Table Join | Embedded Documents |
Primary Key | Primary Key(_id) |
구분 | Database Server | Database client |
---|---|---|
RDBMS | mysqld | mysql |
MongoDB | mongod | mongo |
장점
- Schema-less(Schema가 없다. 같은 Collection 안에 있을지라도 다른 Schema를 가지고 있을 수 있다.)
- 각 객체의 구조가 뚜렸하다.
- 복잡한 JOIN이 없다.
- Deep Query ability(문서지향적 Query Language를 사용하여 SQL만큼 강력한 Query 성능을 제공한다.
- 애플리케이션에서 사용되는 객체를 데이터베이스에 추가할 때 Conversion/Mapping이 불필요하다.
MongoDB 설치
참고 사이트 :
https://khj93.tistory.com/entry/MongoDB-Window에-MongoDB-설치하기
- Windows
MongoDB 공식 홈페이지의 다운로드 페이지에서 MSI파일로 설치하면
"C:\Program Files\MongoDB\Server\5.0\bin" 에 설치 된다.
cmd창을 열어서 디렉토리에 들어가 mongod를 실행하면 서버가 실행된다.
기본 데이터베이스 디렉토리가 "C:\data\db"이므로 실행 전에 폴더를 수동으로 만들어주어야 한다.
Microsoft Windows [Version 10.0.19044.1415]
(c) Microsoft Corporation. All rights reserved.
C:\Users\Velopert>cd C:\Program Files\MongoDB\Server\5.0\bin
C:\Program Files\MongoDB\Server\5.0\bin>mkdir C:\data\db
C:\Program Files\MongoDB\Server\5.0\bin>mongod
- 데이터베이스 디렉토리를 변경하고 싶다면
C:\Program Files\MongoDB\Server\5.0\bin> mongod --dbpath "c:\custom_folder"
매번 MongoDB 설치 경로로 이동하는게 귀찮을 수 있다.
해당 디렉토리를 환경변수의 PATH에 추가하면된다.
(윈도우 10 이하 버전에서는
기존 값 ; C:\Program Files\MongoDB\Server\3.2\bin 이런식으로 수정해야한다.)
MongoDB서버 접속
터미널에서 mongo를 입력하면 된다.
→ 윈도우에서는 환경변수를 설정하지 않았다면 설치 경로에 이동 후 입력해야한다.
$ mongo
MongoDB shell version: 5.0.5
connecting to: test
>
참고한 사이트 :
'Database > MongoDB' 카테고리의 다른 글
MongoDB - 배열 쿼리 - (1) (0) | 2021.12.19 |
---|---|
MongoDB - Document Query(조회) - (2) (0) | 2021.12.18 |
MongoDB - Document Query(조회) - (1) (0) | 2021.12.18 |
MongoDB - Database/Collection/Document생성,제거 (0) | 2021.12.18 |
MongoDB - 데이터 모델링 (0) | 2021.12.18 |