NoSQL

What is NoSQL?

NoSQL은 쉽게 말하자면 비 관계형 데이터베이스이다. SQL문을 사용하지 않아 구조에 제약이 없고 데이터들이 서로 관계가 없다. 대신 다른 구조의 데이터 모델을 사용하는데, Key-Value, Document, Graph 등이 있다.

Why use?

NoSQL은 초고용량 데이터 처리 등 성능에 특화된 목적을 위해, 비관계형 데이터 저장소에, 비구조적인 데이터를 저장하기 위한 분산 저장 시스템이다. 한마디로 SQL처럼 구조를 딱 정해놓고 관계되어있는 데이터들이 고용량이면 처리가 느리기 때문에, 비관계적 - 비구조적인 데이터로 처리 성능을 높여 사용하는 것이다

종류

1) Key-Value DB

Key와 Value의 쌍으로 데이터가 저장되는 유형으로 Riak, Vodemort, Tokyo등의 제품이 있다

2) Wide Columnar DB

Big Table DB라고도 하며, Column Family 데이터 모델을 사용하고 있고, HBase, Cassandra, Hypertable이 이에 해당된다

3) Document DB

JSON, XML과 같은 Collection 데이터 모델 구조를 채택하고 있다. Mongo DB, Cough DB가 이 종류에 해당된다.

4) Graph DB

Nodes, Relationship, Key-Value 데이터 모델을 채용하고 있다. Neo4J 등의 제품이 있다.


MongoDB

몽고 DB란?

NoSQL 중 하나로 도큐먼트 저장 형식을 가진 데이터베이스 이다. 각 종 값들을 JSON형태로 저장하고 실제로 많이 쓰이고 있는 NoSQL이다

설치

나는 맥북을 사용하기 때문에 brew를 통해 다운받았다.
먼저 brew를 다운받자. (MAC OS에는 기본적으로 ruby가 설치되어 있다)

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

다음 brew로 mongoDB를 설치하면 된다

brew install mongodb

환경설정

먼저 DB를 저장할 폴더를 만들자
터미널에 아래의 코드를 입력하면 된다

mkdir -p /data/db

다음 이 폴더에 파일의 소유자 권한을 줘야한다

sudo chown $USER /data/db

How to use

DB서버 실행

터미널에 mongod를 입력하면 DB 서버가 돌아간다

스크린샷 2019-07-06 오후 10.20.28.png

위처럼 코드가 아주 길게 나오고 프로세스가 종료되지 않을 것이다
이러면 DB 서버가 잘 돌아가고 있다는 뜻이다

위의 PORT 번호는 나중에 DB 연결할 때 사용해야 하니 알아두자

DB 접속

터미널에 mongo 라고 입력하면 DB에 접속할 수 있다

스크린샷 2019-07-06 오후 10.24.22.png

위 처럼 입력할 수 있게 커서가 변경되면 접속 성공한 것이다