Development

RDBMS와 NoSQL의 차이점

안다희 2023. 1. 27. 01:49
728x90

RDBMS

  • 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 관리해주는 소프트웨어
  • R: Relational - 관계형 데이터 모델을 기초로 두고, 모든 데이터를 2차원 테이블 형태로 표현한다.
  • 장점: 명확한 데이터 구조 보장
  • 단점: 복잡한 쿼리, Scale-up으로만 가능한 성능향상, 유연하지 못한 스키마

NoSQL

  • RDBMS와는 달리 테이블 간 관계를 정의하지 않는다.
  • 단 하나의 데이터 테이블만 있어, Join의 개념도 없다.
  • 장점: 자유로운 데이터 구조, 데이터 분산 용이, Scale-up 뿐만 아니라 Scale-out도 가능
  • 단점: 데이터 중복이 발생할 수 있음, 데이터 구조 결정이 어려움
  • 종류
    1. Key-Value Database
      • key와 value의 쌍으로 저장된다.
      • 값에는 어떠한 형태의 데이터도 담을 수 있다.
      • ex) Redis, Riak, Amazon Dynamo DB
    2. Document Database
      • key와 document의 형태로 저장된다.
      • 검색에 최적화되어 있다.
      • ex) MongoDB, CouthDB
    3. Wide Column Database
      • 키에서 필드를 결정한다. 키는 Row(키 값)와 Column-family, Column-name을 가진다.
      • ex) HBase, Hypertable
    4. Graph Database
      • Node와 Edge, Property와 함께 그래프 구조를 사용하여 데이터를 표현하고 저장하는 Database
      • 데이터 간의 관계가 탐색의 키일 경우 적합
      • 소셜 네트워크에 적합 (친구의 친구 찾기)
      • 연관된 데이터를 추천해주는 추천 엔진이나 패턴 인식 등의 데이터베이스
      • ex) Neo4J

RDBMS, NoSQL 언제 사용해야 될까요? (참고링크 그대로 발췌)

  • RDBMS는 데이터 구조가 명확하며 변경 될 여지가 없으며 명확한 스키마가 중요한 경우 사용하는 것이 좋습니다. 또한 중복된 데이터가 없어(데이터 무결성) 변경이 용이하기 때문에 관계를 맺고 있는 데이터가 자주 변경이 이루어지는 시스템에 적합합니다.
  • NoSQL은 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용하는 것이 좋습니다. 또한 단점에서도 명확하듯이 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 시에는 모든 컬렉션에서 수정을 해야 합니다. 이러한 특징들을 기반으로 Update가 많이 이루어지지 않는 시스템이 좋으며 또한 Scale-out이 가능하다는 장점을 활용해 막대한 데이터를 저장해야 해서 Database를 Scale-Out를 해야 되는 시스템에 적합합니다.

 

 

참고링크

출처: https://mingos-habitat.tistory.com/34 [밍고의서식지:티스토리]