RDB VS NoSQL

Today Jeeho Learned·2022년 9월 15일
0

DataBase

목록 보기
2/3

RDB

RDB는 관계형 데이터 모델을 기초로 두고, 모든 데이터를 2차원 테이블형태로 표현하는 데이터베이스이다. RDBMS는 RDB를 관리하는 시스템이다. 이러한 관계를 나타내기 위해서 외래 키(foreign key)라는 것을 사용한 테이블 간 Join이 가능하다는 게 RDBMS의 가장 특징이다.

NoSQL(Not only SQL)

RDB형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술
RDBMS와 다르게 테이블 간의 관계를 정의하지 않는다.
데이터 테이블은 그냥 하나의 테이블이며, 일반적으로 테이블 간의 JOIN도 불가능
빅데이터의 등장으로 데이터와 트래픽이 기하급수적으로 증가함에 따라 RDBMS의 단점인 성능을 향상시키기 위해 등장
데이터의 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Sacle-Out을 목표로 등장.

NOSQL 종류

  1. Key - Value Database

데이터가 key,value의 쌍으로 저장된다. 또한 어떤 형태의 데이터라도 담을 수 있다.

간단한 api를 제공하는 만큼 속도가 빠르다. Redis, riak , amazon dynamo db등이 있다.

  1. Document Database

key와 document의 형태로 저장된다. value가 계층적인 형태인 도큐먼트로 저장된다는 것이 다르다.

주요한 특징으로는 객체-관계 매핑이 필요하지 않다. 객체를 document의 형태로 바로 저장가능하기 때문

단점은 사용이 번거롭고, 쿼리가 SQL과 다르다. MongoDB, CouthDB 등이 있다.

RDBMS 장점

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

RDBMS 단점

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

NoSQL 장점

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

NoSQL 단점

  1. 데이터 중복이 발생할 수 있으며, 중복된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 수행해야한다.
  2. 스키마가 없어서 명확한 데이터 구조를 보장하지 않으며, 데이터 구조를 결정하기 어려울수있다.
profile
기록해야 (살아)남는다 !

0개의 댓글

관련 채용 정보