데이터베이스

RDBMS와 NoSQL의 차이

dev-rootable 2023. 9. 8. 19:07

📌 RDBMS

 

스키마에 맞춰 데이터를 관리하기 때문에 데이터의 정합성을 보장한다. 하지만, 시스템이 커질수록 쿼리가 복잡해지고 성능이 저하되며 Scale-out이 어렵다.
(Scale-up만 가능)

 

Scale-Up과 Scale-Out

인프라 확장 문제를 해결하기 위한 방법

Scale-Up기존 서버의 사양을 업그레이드해 시스템을 확장하는 것을 말한다. CPU나 RAM 등을 추가하거나 고성능의 부품, 서버로 교환하는 방법이
있다. 이처럼 하나의 서버 사양을 업그레이드하기 때문에 수직 스케일로 불리기도 한다.

Scale-Out서버를 여러 대 추가하여 시스템을 확장하는 것을 말한다. 서버가 여러 대로 나뉘기 때문에 각 서버에 걸리는 부하를 균등하게 해주는
'로드밸런싱'이 필수다. 이처럼 여러 대의 서버로 나눠 시스템을 확장하기 때문에 수평 스케일로 불리기도 한다.

 

📌 NoSQL(Not Only SQL)

 

RDBMS와 반대로 데이터 간의 관계를 정의하지 않고, 스키마가 없어 좀 더 자유롭게 데이터를 관리할 수 있으며, 컬렉션이라는 형태로 데이터를 관리한다.

 

🔎 장점

 

  • 스키마 없이 Key-Value 형태로 데이터를 관리하므로 자유롭게 데이터를 관리할 수 있다.
  • 데이터 분산이 용이하여 성능 향상을 위한 scale-up 뿐만 아니라 scale-out 또한 가능하다.

 

🔎 단점

 

  • 데이터 중복이 발생할 수 있고, 중복된 데이터가 변경될 경우 수정을 모든 컬렉션에서 수행해야 한다.
  • 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않아 데이터 구조 결정이 어려울 수 있다.

 

📌 비교

 

RDBMS는 데이터 구조가 명확하고, 변경 될 여지가 없으며 스키마가 중요한 경우 사용하는 것이 좋다. 또한 중복된 데이터가 없어(데이터 무결성) 변경이 용이하기 때문에
관계를 맺고 있는 데이터가 자주 변경이 이루어지는 시스템에 적합하다.

 

NoSQL은 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장될 수 있는 경우에 사용하는 것이 좋다. 또한 데이터 중복이 발생할 수 있고, 중복된 데이터가 변경될 시
모든 컬렉션에서 수정해야 하므로 갱신이 많이 이루어지지 않는 시스템에 좋다. 그리고 Scale-out이 가능하다는 장점을 활용해 막대한 데이터를 저장해야 하므로 DB를 Scale-out 해야 되는 시스템에 적합하다.

 

References:

https://dev-coco.tistory.com/143

 

스케일 업(Scale-Up)과 스케일 아웃(Scale-Out)이란?

스케일 업과 스케일 아웃은 인프라 확장을 위한 두 가지 방법이다. 서버를 운영하다 보면 이용자가 증가하거나 사업을 확장 할 때 많은 서버 용량과 성능이 필요하게 되는데, '스케일 업'과 '스

dev-coco.tistory.com

 

https://dev-coco.tistory.com/158

 

신입 개발자 기술면접 질문 정리 - 데이터베이스

💡 데이터베이스의 특징에 대해 설명해주세요. 실시간 접근성(Real-Time Accessibility) : 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 하며, 지속적인 변화(Continuous Evloution) :

dev-coco.tistory.com