2월 19일 자 학습 내용 정리입니다.
✅ NoSQL
NoSQL은 Non SQL 또는 Not Only SQL의 약어로 구조화된 질의어를 사용하지 않는 데이터 베이스이다.
따라서 자료 간의 관계에 초점을 두지 않고 데이터를 구조화하지 않아 유연하게 저장할 수 있다.
NoSQL은 RDB라는 개념과 대립된다.
RDB(Relational Database)는 자료들의 관계를 주요하게 다루는 관계형 데이터베이스이다.
SQL 질의어를 사용하기 위해 데이터를 구조화해야 한다.
이는 스키마에 정의된 데이터가 아니면 저장할 수 없다는 단점을 가지고 있다.
반면 NoSQL을 사용하면 데이터 구조화 등의 사전 작업 없이 데이터 베이스를 사용할 수 있다.
따라서 데이터 베이스 작업에 크게 관여하지 않고 프로젝트를 빠르게 진행할 수 있다는 장점을 가진다.
RDB와 NoSQL의 대표적인 예인 MySQL과 MongoDB의 코드로 비교해보면 이 차이를 한 눈에 알 수 있다.
- RDB - MySQL
CREATE DATABASE simple_board
CREATE TABLE posts (
id NOT NULL AUTO INCREAMENT
title VARCHAR(30),
content TEXT,
PRIMARY KEY(id)
);
INSERT INTO posts (title, content)
VALUES
('first title', 'first content'),
('second title', 'second content'),
- NoSQL - MongoDB
use simple_board
db.posts.insert([
{
title: 'first title',
content: 'first content'
},
{
title: 'second title',
content: 'second content'
}
]);
NoSQL은 다양한 종류가 존재하는데 대표적으로 자료를 문서(Document)로 저장하는 Document DB가 일반적인 형태이다.
이외에도 key-value, Graph, large-collection 등 다양한 NoSQL DB가 존재한다.
✅ MongoDB
MongoDB는 대표적인 NoSQL으로 Docuement Database이다.
이름에서 Mongo는 Humongous에서 따온 말로 "엄청나게 큰" 이라는 뜻을 가지고 있다.
따라서 MongoDB는 대용량 데이터를 처리하기 편리하게 구현되어 있다.
✔️ MongoDB 사용법
MongoDB를 직접 설치하거나 cloud 서비스를 이용할 수 있다.
직접 설치하면 귀찮고 어렵지만 얼마든지 데이터를 사용할 수 있다는 장점이 있다.
반면 cloud를 사용하면 쉽고 빠른 시작이 가능하지만 사용량에 따라 요금이 부과된다.
기본으로 512MB까지는 무료로 사용할 수 있다.
✔️ MongoDB Compass
MongoDB에 접속해 Database, Collection, Document 등을 시각화하여 관리할 수 있게 도와주는 도구이다.
MySQL Workbench와 유사하다.
✅ MongoDB 기본 개념
Mongo DB는 기본적으로 다음과 같이 구성된다.
✔️ Database
Database는 하나 이상의 collection을 가질 수 있는 저장소로 SQL에서의 database와 유사한 개념이다.
✔️ Collection
Collection은 하나 이상의 document가 저장되는 공간이다.
SQL에서의 table과 유사하지만 table과 다른 점은 collection이 document의 구조를 정의하지 않는다는 것이다.
✔️ Document
Document는 MongoDB에 저장되는 자료이다.
SQL에서의 row랑 유사하지만 row와 다른 점은 Document는 구조 제약없이 유연하게 저장할 수 있다는 것이다.
JSON과 유사하지만 더 많은 형태로 사용할 수 있는 BSON을 사용하여 다양한 자료형을 지원한다.
✔️ ObjectID
ObjectID는 각 document의 유일한 key 값이다.
SQL의 primary key와 유사한 개념이다.
1씩 증가하는 auto increment value만으로 이루어지는 것이 아니라 document 생성 시 자동으로 난수를 추가하여 생성되는 값으로 이루어진다.
이때 값의 형태는 다음과 같다.
timestamp + random value + auto increment
따라서 실제 MongoDB에 저장된 Document를 살펴보면 다음과 같다.
'엘리스 AI 트랙 4기 > elice AI track' 카테고리의 다른 글
[5주차] Mongoose ODM - (2) (0) | 2022.02.19 |
---|---|
[5주차] Mongoose ODM - (1) (0) | 2022.02.19 |
[5주차] Express.js의 Middleware와 JSON (0) | 2022.02.18 |
[5주차] Express.js (0) | 2022.02.18 |
[5주차] 웹과 웹 프레임워크 (0) | 2022.02.18 |
댓글