Skip to content

Latest commit

 

History

History
57 lines (41 loc) · 2.11 KB

조윤호.md

File metadata and controls

57 lines (41 loc) · 2.11 KB

RDBMS vs NoSQL

RDBMS

  • SQL
  • 정해진 스키마에 따라 데이터를 저장
  • 데이터의 일관성을 보장
  • 데이터의 중복을 허용하지 않음
  • 수직 확장에 용이
  • ACID 트랜잭션

NoSQL (Not Only SQL)

  • Schema-less (Schema-free)
    • 정해진 스키마에 따라 데이터를 저장하지 않음
    • 자유로운 스키마
  • 데이터의 일관성을 보장하지 않음
  • 데이터의 중복을 허용
  • 수평 확장에 용이
  • BASE 트랜잭션
    • ACID 트랜잭션을 보장하지 않음

BASE 트랜잭션

ACID와 대조적으로 가용성과 성능을 중시하는 특성을 가진 분산 시스템의 특성

  1. 기본적인 가용성 (Basically Avaliable)
  • 부분적인 고장은 있을 수 있으나, 나머지는 사용이 가능하다. (* 주 서버가 안되더라도 백업 서버는 동작한다.)
  1. 소프트 상태 (Soft State)
  • 노드의 상태는 외부에서 전송된 정보를 통해 결정됨.
  • 분산 노드 간 업데이트는 데이터가 노드에 도달한 시점에 갱신. (* 최신 상태의 데이터로 덮어써진다.)
  1. 결과적 일관성 (Eventually Consistent) : 결국엔 모두 동일해진다.
  • 일시적으로 비일관적인 상태가 되어도 최적으로는 일관성이 있는 상태가 되는 성질
  • 시스템 부하, 네트워크 속도 등의 외부 요인으로 인해 일관성이 일시적으로 깨질 수 있다.

RDBMS vs NoSQL 성능 비교

img img_4 img_1 img_3

NoSQL 분류

  • mongoDB
    • document store
  • dynamoDB
    • key-value store

Graph db

  • 노드 간의 관계를 데이터로 저장
  • sns에서 사용자의 관계를 표현하기 위해 사용
    • 페이스북 neo4j