node.js

RDBMS와 NoSQL의 차이점

단점이없어지고싶은개발자 2022. 4. 13. 23:04
반응형

RDBMS : 관계형 데이터베이스 관리 시스템을 의미, RDBMS는 RDB를 관리하는 시스템이며 모든데이터를 2차원 테이블 형태로 표현하는 데이터베이스 이러한 관계를 나타내기 위해 foregin key를 사용해 테이블 간 Join이 가능하다는게 가장 큰 특징

사용여부

  • 데이터 구조가 명확하며 변경될 여지가 없으며, 명확한 스키마가 중요하다

장점

  • 정해진 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조 보장
  • 각 데이터를 중복없이 한 번만 저장할 수 있다

단점

  • 테이블간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어 질 수 있다
  • 성능 향상을 위해서는 Scale-up만을 지원. 이로 인해 비용이 기하급수적으로 늘어날 수 있다
  • 스키마로 인해 디에터가 유연하지 못하다

NoSQL 테이블 간 관례를 정의하지 않고, 하나의 테이블로 일반적으로 테이블간 Join이 불가능, 빅데이터 등장으로 데이터와 트래픽이 기하급수적으로 증가함에 따라 RDBMS에 단점인 성능을 향상시키기 위해 등장. 데이터 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장

사용여부

  • 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우 사용

장점

  • 스키마가 없기 때문에 유연한 데이터 구조를 가질 수 있다
  • 언제든 저장된 데이터를 조정하고 새로운 필드를 추가 할 수 있다
  • 데이터 분산이 용이하며 성능 향상을 위한 Saclue-up만 아니라, Scale-out또한 가능

단점

  • 데이터 중복 발생 가능성이 있다
  • 스키마가 존재하지 않기 때문에 명확한 데이터 구조를 보장하지 않고, 데이터 구조 결정하기가 어려울 수 있다

[Database] RDBMS와 NoSQL의 차이점

반응형

'node.js' 카테고리의 다른 글

What is Socket.io?  (0) 2022.01.21
SQL? NoSQL?  (0) 2022.01.14
에러 처리하기  (0) 2022.01.03
버퍼와 스트림 이해하기  (0) 2022.01.03
fs에 대해서  (0) 2022.01.03