BottleH Blog

RDBMS vs NoSQL

    Tags

  • DB
RDBMS vs NoSQL thumbnail

RDBMS 와 NoSQL의 차이

mongoDB의 공식 Document를 참고해서 정리하였습니다.

🎈 RDBMS의 역사와 NoSQL의 탄생배경

관계형 데이터베이스(RDBMS)는 40년 넘게 사용되었다.

  • 데이터 구조가 훨씬 더 단순하고 정적인 시대에는 충분했다. 그러나 기술과 빅 데이터 응용 프로그램이 발전함에 따라 기존의 SQL 기반 관계형 데이터베이스는 빠르게 확장되는 데이터 볼륨과 데이터 구조의 증가하는 복잡성을 처리하기 힘들었다.
  • 비관계형 NoSQL 데이터베이스는 기존 SQL 기반 관계형 데이터베이스에 대한 대안으로 탄생하였다.
  • 유연하고 확장 가능하며 비용 효율적인 대안을 제공한다.

🛠 데이터 모델, 스키마, 구조, 스케일링

NoSQL

  • 동적 스키마를 제공하며 비정형 데이터로 알려진 것을 사용할 수 있다.

  • 먼저 스키마를 정의하지 않고도 애플리케이션을 빌드할 수 있다.

  • 미리 정의된 스키마가 필요하지 않기 때문에 NoSQL 데이터베이스는 데이터와 요구 사항이 변경될 때 업데이트하기가 훨씬 쉽다.

  • 문서 기반, 그래프 데이터베이스, key-value 쌍 또는 넓은 열 저장소

  • 확장에 있어서, 관계형 데이터베이스에 비해 훨씬 저렴하다.

    • 저렴한 상용 서버에 수평적으로 확장하여 용량을 추가할 수 있기 때문

RDBMS

  • 데이터베이스에 데이터를 추가하기 전에 스키마를 정의해야 한다.

  • 스키마 구조를 변경하는 것은 비용이 많이 들고 시간이 많이 소요되고 서비스 다운 등의 현상이 일어난다.

  • 테이블 기반

  • 수직 확장이 가능하지만 일반적으로 비용이 많이 듭니다.

    • 전체 데이터베이스를 호스팅하려면 단일 서버가 필요하기 때문에 확장하려면 더 크고 더 비싼 서버를 구입해야 하기 때문

🛠 RDBMS와 NoSQL의 차이(표)

RDBMS NoSQL
데이터 저장 모델 행과 열이 고정된 테이블 문서: JSON 문서
키-값: 키-값 쌍
와이드 열: 행과 동적 열이 있는 테이블
그래프: 노드 및 가장자리
개발 이력 데이터 중복 감소에 중점을 두고 1970년대에 개발됨 2000년대 후반에 확장에 중점을 두고 애자일 및 DevOps 방식으로 구동되는 신속한 애플리케이션 변경을 허용하도록 개발됨.
Oracle, MySQL, Microsoft SQL Server 및 PostgreSQL 문서: MongoDB 및 CouchDB
키-값: Redis 및 DynamoDB
와이드 컬럼: Cassandra 및 HBase
그래프: Neo4j 및 Amazon Neptune
주요 목적 범용 문서: 범용
키-값: 단순 조회 쿼리를 통한 대용량 데이터
와이드 컬럼: 예측 가능한 쿼리 패턴을 갖는 대용량 데이터
그래프: 연결된 데이터 간의 관계 분석 및 탐색
스키마 엄격한 유연한
스케일링 수직(더 큰 서버로 확장) 수평(일반 서버 전반에 걸쳐 확장)
다중 레코드 ACID 트랜잭션 지원 대부분은 다중 레코드 ACID 트랜잭션을 지원하지 않음. 그러나 MongoDB와 같은 일부는 지원함.
조인 일반적으로 필수 일반적으로 필요하지 않음
데이터-객체 매핑 ORM(객체 관계형 매핑) 필요 대부분의 경우 ORM이 필요하지 않다. MongoDB 문서는 가장 널리 사용되는 프로그래밍 언어의 데이터 구조에 직접 매핑됨.

reference: https://www.mongodb.com/scale/nosql-vs-relational-databases

Written by@BottleH
Back-End Developer

GitHub