본문 바로가기
Database/MongoDB

[MongoDB] 소개

by Awesome-SH 2020. 5. 27.

 

Mongo(Humongous) DB?

NoSQL DBMS의 한 종류

MongoDB는  NoSQL 로 분류되는  *크로스플랫폼 도큐먼트 지향 데이터베이스 시스템

 

더보기

*크로스플랫폼이란?

하나 이상의 플랫폼에서 실행가능한 소프트웨어

예) 한 앱이 안드로이드와 아이폰에서 기능상, 외관상 차이 없이 똑같이 실행 된다면 이러한 앱을 크로스 플랫폼으로 개발된 것이라고 볼수 있음

 

mongo는 humongous를 줄인 표현, 엄청 큰 DB 라는 뜻이다.

 

 

MongoDB의 특징

  • JSON 형태의 동적 스키마형 문서 사용 (= BSON)
  • 가장 기본적인 데이터를 문서   Document 라고 부른다. (RDBMS = Row)
  • 이 Document 의 집합을  Collection  이라고 함 (RDBMS = Table)
  • Collection의 집합은  DB  (RDBMS = DB)
  • 같은 조건으로 설계 되었을 시, 기존 RDBMS 속도보다 굉장히 빠르다
  • *ACID를 포기한 댓가로 속도를 얻은 것이다
더보기

*ACID?

데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질

A : 원자성(Atomicity), 트랜잭션 관련 작업이 실행되다가 중단되지 않는 것을 보장하는 능력

C : 일관성(Consistency), 트랜잭션이 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것

I : 독립성(Isolation), 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것

D : 지속성(Durability), 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미

 

데이터 Consistency가 거의 필요 없으며, 조인 연산을 Embed로 대체할 수 있는 경우 MongoDB가 확실한 대안이 될 수 있다.

반대로, 저장하는 데이터가 은행 데이터 같이 Consistency가 매우 중요한 작업에서는 쓰기 힘들다.

 

 

 

Document 구조

RDBMS의 record (=row), 한개 이상의 키와 값(Key-value)을 가지는 구조

{ 
	"_id" : ....,
    "subject" : "제목",
    "content" : "내용",
    "user" : {
    	username: "Park",
        age: "31"
    }
}

 

 

Database 생성

"use 데이터베이스" 명령어로 Database를 생성할 수 있다.

이미 생성된 데이터베이스가 있을 때에는 해당 데이터베이스를 사용한다는 명령어 이기도 하다.

 

"show dbs" 현재 데이터베이스 리스트목록 조회


Database 제거

"db.dropDatabase()"


Collection 생성

"db.createCollection()"


 

Collection 제거

"db.컬렉션이름.drop()"

 

'Database > MongoDB' 카테고리의 다른 글

[MongoDB] Aggregate를 활용한 Embeded Document (RDB = JOIN)  (0) 2021.02.22

댓글