[MongoDB] MongoDB란 ?

Zero·2023년 3월 14일
0

MongoDB

목록 보기
1/14

SQL과 NoSQL

SQL

SQL(Structured QUery Language)은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다.

대중적으로 가장 많이 사용되는 Oracle, MySQL 등이 SQL에 포함된다.


NoSQL

NoSQL(원래 의미 : non SQL 또는 non relational) 데이터베이스는 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 메커니즘을 제공한다. NoSQL 데이터베이스는 빅데이터와 실시간 웹 애플리케이션의 상업적 이용에 널리 쓰인다.
SQL 계열의 쿼리 언어를 사용할 수 있다는 사실을 강조한다는 면에서 "Not only SQL"로 불리기도 한다.

NoSQL의 분류는 다음과 같다

  • Wide Columnar Store : 카산드라
  • Document Store : MongoDB
  • Key-Value Store : DynamoDB, Redis
  • Graph Store : Neo4j

성능면, 확장성면에서는 NoSQL이 SQL보다 우수하다. 또한 유연하며 복잡성이 낮은것이 특징인데 마냥 좋은점만 있는것은 아니다. ACID 트랜잭션(원자성/일관성/고립성/영구성)을 보장받기 위해서는 RDBMS를 쓰는 편이 좋다. 가령 은행업무나 회사업무같은 중요한 DB는 RDBMS를 쓰는 것을 권장한다.

결론은 SQL,NoSQL 중 사용하는 용도에 따라서 선택하면 된다.



MongoDB

MongoDB는 C++로 작성된 오픈소스 문서지향(Document-Oriented) 크로스 플랫폼 데이터베이스이다.

1. Document

Document는 RDBMS에서의 Row(혹은 튜플)과 동일한 개념.
예를 들어, 아래와 같은 JSON 형태의 key-value 쌍으로 이루어진 데이터 구조를 하나의 Document라고 보면 된다.

{
	"_id" : "~~~~~~~~",
    "username" : "zerozae",
    "password" : "~~~~~~~~"
}

각 Document는 _id를 갖고 있는데 이 값은 유일하다 ( = Primary key와 동일한 개념 )

특이하게 RDBMS처럼 스키마로 정해진 것이 없기 때문에 password 아래에 email을 추가하여 document를 새로 생성해도 문제 없이 작동한다.

2. Collection

Collection은 Document의 그룹이다. RDBMS로 따지면 Table과 비슷한 개념이지만 스키마를 가지고 있지 않다.

3. Database

Database는 Collecntion들의 물리적인 컨테이너이자 가장 상위 개념이다. RDBMS에서의 Database와 동일하다

0개의 댓글