[MongoDB]-NoSQL과 MongoDB란,

hannah·2023년 10월 20일
0

db

목록 보기
1/6

1. RDB와 NoSQL의 차이점

  • Relational Database: 관계형 데이터베이스로 자료들의 관계를 주요하게 다룬다.
    SQL 질의어를 사용하기 위해 데이터를 구조화해야 한다.

  • Non SQL 또는 Not Only SQL: 구조화된 질의어를 사용하지 않는 데이터베이스로 자료간의 관계에 초점을 두지 않고 데이터를 구조화하지 않는다. 따라서 유연하게 저장하는 방식이다.

2. NoSQL을 사용하는 이유

  1. SQL을 사용하기 위해서는 데이터를 구조화하는 것이 필수(DDL)
    -> 스키마에 정의된 데이터가 아니면 저장할 수 없는 제약이 따른다.

  2. NoSQL을 사용하면 사전작업 없이 데이터베이스를 사용할 수 있다.
    -> 데이터베이스 작업에 크게 관여하지 않고 프로젝트를 빠르게 진행할 수 있다.

3. NoSQL과 DocumentDB

NoSQL은 다양한 종류가 있지만, 대표적으로 자료를 Document(문서)로 저장하는 Document DB가 일반적이다. 이외에 key-value, Graph, larget collection 등의 NoSQL DB가 존재한다.


MongoDB

대표적인 NoSQL, DocumentDB

Mongo는 Humongous 에서 따온 말로, 엄청나게 큰 DB라는 의미로 즉, 대용량 데이터를 처리하기에 최적화되어있다.

1. MongoDB의 기본 구조


Document이 모여서 Collection이 되고, Collection들이 모여서 Database를 이룬다.

SQL과 비교하면,

  • Database는 SQL의 Database와 유사하다.
  • Collection은 SQL의 Table과 유사하지만, SQL과 다르게 collection이 document의 구조를 정의하지는 않는다.
  • MongoDB에선 Document은 SQL의 Row 유사하지만 구조제약 없이 유연하게 저장이 가능하다. 또한 JSON과 유사한, BSON을 사용하여 다양한 자료형을 지원한다.

- Document-ObjectID

각 document의 유일한 키 값으로 SQL의 primary key와 유사하다.
하지만 SQL처럼 하나씩 증가하는 값이 아닌, document를 생성할 때 자동으로 생성되는 값이다.

2. MongoDB의 query

MongoDB의 query는 BSON 형식으로, 기본 문법 그대로 mongoose에서도 사용 가능하다.

0개의 댓글