NoSQL vs RDBMS

devyu·2023년 10월 9일
0

💡Deep Dive to DB

목록 보기
5/8
post-thumbnail

Deep Dive to DB 시리즈는 현재 진행중인 DB DB Deep 스터디에서 학습하는 내용을 복습 및 정리하는 시리즈입니다.

RDBMS

장점

  • 정해진 스키마에 따라 데이터를 저장해야 하므로 명확한 데이터 구조를 보장받을 수 있다.
  • 각 테이블 간의 관계를 정의해야 하므로, 데이터의 중복이 발생하지 않는다.

단점

  • 테이블 간 관계가 정의되어 있으므로, 시스템이 커질 경우, JOIN문이 많은 복잡한 쿼리가 만들어질 수 있다.
  • 성능 향상의 방법으로 Scale-up만을 지원하므로, 처리 비용이 크다.
  • 정해진 스키마로 인해 데이터가 유연하지 못하다. 스키마가 변경될 경우 번거롭기 때문에, 스키마가 자주 바뀌지 않는 서비스에 사용한다.

NoSQL

장점

  • 스키마가 없기 때문에 데이터 구조가 유연하고, 자유롭게 필드를 추가할 수 있다.
  • 성능 향상의 방법으로 Scale-up / Scale-out 모두 사용 가능하다.

단점

  • 스키마가 존재하지 않아서, 데이터의 일관성이 존재하지 않는다.
  • 데이터 중복이 발생할 수 있으며, 이 데이터가 변경될 경우 모든 컬렉션에서 update해야 하는 번거로움이 있다.

사용 사례

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

NoSQL은 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용하는 것이 좋다. 또한 단점에서도 명확하듯이 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 시에는 모든 컬렉션에서 수정을 해야 한다.

이러한 특징들을 기반으로 Update가 많이 이루어지지 않는 시스템이 좋으며, Scale-out이 가능하다는 장점을 활용해 막대한 데이터를 저장해야 해서 Database를 Scale-Out를 해야 되는 시스템에 적합하다.

profile
티스토리와 벨로그 사이 줄타기....

0개의 댓글