Published 2023. 6. 21. 14:20

NoSQL과 RDBMS의 차이

DB 어플리케이션으로 RDBMS(Relational DataBase Management System)이 널리 쓰이고 있지만,

대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으론 대응하기 어려울 때가 있다.

그래서 RDBMS와 차별적인 데이터베이스 관리 툴인 NoSql이 등장했다.

 

📌RDBMS vs. NoSQL

RDBMS 
-> 2차원의 행과 열로 데이터의 관계를 관리하는 데이터베이스(테이블)

장점 : 스키마에 맞추어 데이터를 관리하기 때문에 데이터의 정합성(어떤 데이터들이 값이 서로 일치하는 상태)을 보장

단점 : 시스템이 커질수록 쿼리가 복잡해지고 성능이 저하되며, 수평적 확장이 어렵다.

NoSQL
->RDBMS가 비대해짐에 따라 관계가 복잡해져, 이를 극복하기 위해 등장하게 된 데이터베이스

장점: NOSQL은 스키마 없이 다양한 형태로 데이터를 관리하여 좀 더 자유롭게 데이터를 관리할 수 있다.
•서로 연관된 그래프 형식의 데이터를 저장할 수 있는 Graph Store
•Row가 아닌 Column 위주로 데이터를 저장하는 Column Store
•비정형 대량 데이터를 저장하기 위한 Document Store
•메모리 기반으로 빠르게 데이터를 읽어올 수 있는 Key-Value Store
등이 있음

단점: 중복된 데이터가 추가 가능하여, 이에 대한 관리가 필요하다.

 

 

NoSQL에서 데이터가 저장되는 형태와 데이터의 중복

 

MongoDB에서 데이터가 저장되는 형태를 예시로 들어보겠다.

 

 

db.getCollection("order").find({})

{

    "_id" : ObjectId{"18471294"},

    "product_name" : "오리인형",

    "total_price" : 14900.0,

    "user_name" : "matdoriyam",

    "phone_number" : "010-1234-5678"

}

{

    "_id" : ObjectId{"32423895"},

    "product_name" : "곰인형",

    "total_price" : 25900.0,

    "user_name" : "matdoriyam",

    "phone_number" : "010-1234-5678"

}

 

데이터를 테이블로 관리하고 중복을 최소화하는 RDBMS에서는 이런 경우가 적겠지만

NoSQL에서는 위와 같이 데이터의 중복이 일어난다. 위 예시에서는 유저 정보가 중복되어 저장되었고, order데이터가 증가함에 따라 product정보도 중복되어 저장되는 경우가 발생할 것이다.

 

따라서 RDBMS처럼 JOIN해서 가져올 일은 적어 read하는 시간이 짧게 소요되겠지만, 중복되는 데이터에 대한 관리가 필요하다.

 

 

다음은 key-value 형태의 대표적인 NoSQL중 하나인 redis에 대한 포스팅이다.

https://develoyummer.tistory.com/98

 

Redis란

Redis Redis(Remote Dictionary Server)는 가장 인기있는 Key-value Store 중 하나이다. 데이터 저장소하면 보통 MySQL이나 PostgreSQL, MariaDB, Oracle 같은 RDBMS를 많이 떠올릴텐데 이러한 RDBMS와 달리 Redis는 NoSQL이다.

develoyummer.tistory.com

 

'etc' 카테고리의 다른 글

Github Actions를 통한 배포 자동화  (0) 2023.07.28
[프로젝트] redis 적용  (0) 2023.06.23
Redis란  (0) 2023.06.19
[mustache]spring boot 프로젝트에 mustache 템플릿 엔진 적용해보기  (0) 2023.04.10
development 기초  (0) 2022.08.24
복사했습니다!