본문 바로가기
Database | 데이터베이스/NoSQL

NoSQL 간단 정리 - 개요 , 모델링 예시

by 자유코딩 2018. 10. 11.

이번 글에서는 NoSQL 에 대해서 살펴볼 것이다.


NoSQL 중에서도 MongoDB 에 대해서 살펴볼 것이다.



NoSQL 개요


1. 일단 No SQL 이라는 뜻이 아니다.


Not Only SQL 을 줄인 말이다.


NoSQL 과 다른 개념으로는 RDMS 가 있다. 


이 글을 읽는 사람 중에는 RDMS 를 알고 있는 사람이 많을 것 같다.


RDMS 는 관계형 DB 이다.


관계형 DB 는 2차원 표 형태로 데이터를 저장하고 관리한다 .


NoSQL 은 기존의 RDBMS 의 한계를 극복하기 위해서 만들어진 새로운 데이터 저장소이다.


MySQL 같은 관계형 DB 가 아니므로, 고정된 스키마 , Join 이 존재하지 않는다.



그러면 이제 NoSQL 의 한 종류인 MongoDB 에 대해서 알아본다.


MongoDB는 Document-Oriented DB이다.


현존하는 NoSQL 중에서 가장 인지도가 있다.


확장성과 성능도 좋다.


Document - Oriented 가 무슨 뜻인지 살펴보자.


기서는 Document 를 문서로 직역하면 안된다.


여기서의 Document 는 json 의 형태이다.


아래와 같은 형태이다. key 와 value 로 구성되어 있다.


1
2
3
4
5
6
{
    "_id": ObjectId("2099801dg3a4948bd2f98391"),
    "password""123456",
    "name""john"
}
 
cs


여기서 id , password , name은 key 다.


key 의 오른쪽에 있는 값들은 value 이다.


id 는 12bytes 의 hexdecimal 값이다. 해당 document 의 고유 값이다.


firebase 를 사용해본 사람이라면 이해가 빠를 것이다.



2. NoSQL DB 설계 예시


이번에는 DB 설계 예제를 살펴보자.


RDMS 에서는 이런 구조로 데이터베이스를 설계한다.



그렇다면 NoSQL 에서는 어떨까


NoSQL 에서는 아래와 같다.


이 document 는 예시일 뿐이며, 위의 데이터 모델과는 상관 없다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
 _id: POST_ID,
 title: POST_TITLE,
 content: POST_CONTENT,
 username: POST_WRITER,
 tags: [ TAG1, TAG2, TAG3 ],
 time: POST_TIME
 comments: [
 { 
 username: COMMENT_WRITER,
 mesage: COMMENT_MESSAGE,
 time: COMMENT_TIME
 },
 { 
 username: COMMENT_WRITER,
 mesage: COMMENT_MESSAGE,
 time: COMMENT_TIME
 }
 ]
}
cs



'Database | 데이터베이스 > NoSQL' 카테고리의 다른 글

Mongo DB의 index  (0) 2019.09.30
Mongo DB Compass select 문  (0) 2019.03.28
NoSQL 정리 - 구조 , 연결  (0) 2018.10.11

댓글