RDBMS VS NoSQL

YU NA Joe·2022년 1월 18일
0

RDBMS

  • Relational Database Management System
  • 대표적인 예가 오라클, MySql, MsSql
  • 정해져 있는 데이터 스키마에 따라 데이터베이스를 테이블에 저장함. 각 테이블은 ERD방식을 통해 관계를 형성한다.
    - 변경될 데이터가 별로 없고, 명확한 스키마가 중요한 경우 사용

특징

엄격한 스키마

  • 스키마를 준수하지 않는 레코드는 테이블에 저장할 수 가 없다. 즉, 모두 같은 구조를 갖는다.
  • 데이터의 무결성(Integrity)보장한다.

관계형

  • 데이터들을 여러개의 테이블로 나누어서, 데이터들의 중복을 피할 수 있다.

단점

  • 테이블끼리 관계를 맺고 있기 때문에 JOIN문이 많은 매우 복잡한 쿼리가 만들어진다.
  • 수평적 확장이 어렵고, 수직적 확장만 가능하다.
  • 유연성이 떨어져서 데이터를 넣는게 자유롭지 못하다.

NoSQL

  • 대표적인 예가 Hadoop, MongoDB
  • RDBMS와 달리 스키마가 없다. 즉, 관계가 없다.
  • 대규모의 데이터를 유연하게 처리할 수 있으며, 분산처리 목적으로 탄생.
  • 레코드를 문서(documents)라 한다. 문서는 JSON데이터와 비슷한 형태를 가지고 있다.
  • 정확한 데이터 구조를 알 수 없거나 변경/확잘 될 수 있는 경우 사용
  • 읽기(read)처리를 자주하지만, 데이터를 자주 변경(update)하지 않는 경우

특징

No스키마

  • 스키마가 없기 때문에, 다른 구조의 데이터를 같은 컬렉션(table)를 추가할 수 있다. (유연성)
  • 관련 데이터(documents)들을 동일한 컬렉션에 넣는다.

단점

  • 데이터가 여러 컬렉션에 중복되어 있기 때문에, 하나의 document가 수정해야 하는 경우 모든 컬렉션에서 수행해야 한다.

수직적(Vertical) VS 수평적(Horizontal) 확장

  • 수직적 확장이란 단순히 데이터베이스 서버의 성능을 향상시키는 것

  • 수평적 확장은 더 많은 서버가 추가되고 데이터베이스가 전체적으로 분산됨을 의미합니다. 따라서 하나의 데이터베이스에서 작동하지만 여러 호스트에서 작동

출처: https://siyoon210.tistory.com/130

0개의 댓글