[DB] RDBMS vs NoSQL

thingzoo·2023년 8월 8일
post-thumbnail

RDBMS

Relational DataBase Management System의 약자로, 관계형 데이터베이스 관리 시스템을 의미한다.

RDB를 관리하는 시스템이며 RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스이다.

이러한 관계를 통해 테이블 간 join이 가능하다. 외래키(foreign key)라는 것을 사용한 테이블간에 join이 가능하다.

ACID(Atomicity, Consistency, Isolation, Durability)원칙을 기본으로 구성된 방식이다.

장점

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

단점

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

NoSQL

Not Only SQL의 약자로, 테이블 간 상호관계가 없는 것이 특징이다. 관계가 없으므로 다른 테이블과 join도 할 수 없다.

RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장기술이다. RDBMS와는 달리 테이블 간 관계를 정의하지 않는다.

빅데이터의 등장으로 인해 데이터와 트래픽이 기하 급수적으로 증가함에 따라 RDBMS에 단점인 성능을 향상시키기 위해 등장하였다.

데이터 일관성은 포기하되 비용을 고려하여 여러대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장하였다.

장점

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

단점

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

질문 예시

NoSQL과 RDBMS의 특징과 차이점에 대해서 장단점을 들어 설명해주세요.

  • 핵심키워드
    • RDBMS : 관계형 데이터베이스 Schema Table SQL
    • NoSQL : 대용량데이터 비규격화 Key,Value

RDBMS는 2차원 테이블 형태의 엄격한 스키마를 갖고 있기 때문에 구조화된 데이터를 저장하거나 수정 하는 데에 장점을 가지고 있고, 무결성이 보장됩니다. 하지만 구조가 정해지지 않은 데이터들을 처리하는 데에는 비효율적이고, 규모가 커질 경우 상대적으로 비용이 큰 Scale up 형태의 확장이 주로 이루어집니다.

반면 NoSQL은 기본적으로 Key, Value의 자료 형태이기 때문에 정형화되지 않은 데이터나, 용량이 큰 데이터를 저장할 때에 유리한 구조를 가지고 있습니다. scale out 형태의 확장이 가능하므로 많은 양의 데이터를 사용할 때에도 적합합니다. 단점으로는 value에 중복 값이 발생할 수 있고, 명확한 데이터 구조를 보장해주지는 못합니다.

Reference

🔗 [DataBase] RDBMS와 NoSQL의 차이점

profile
공부한 내용은 바로바로 기록하자!

0개의 댓글