티스토리 뷰

CS 정리/DB

RDBMS vs NoSQL

tose33 2023. 10. 23. 20:07

RDBMS

Relational Database Management System 

관계형 데이터 베이스 메니지 시스템

 

rdb 는 관계형 모델을 기초로 데이터를 2차원 테이블 형태로 표현한다.

rdb 는 테이블들이 관계를 맺고 모여 있는 집합체이다.

관계를 나타내기 위해 외래키를 사용한다.

외래키를 이용해 조인한다.

 

 

NoSQL

Not Only SQL

 

NoSQL 에서는 RDB 와 달리 관계를 정의하지 않는다.

테이블은 그냥 하나의 테이블이며 관계가 정의되지 않아 join 도 불가능하다.

 

NoSQL 은 빅데이터의 등장으로 인해 데이터와 트래픽이 기하급수적으로 증가함에 따라 RDBMS 의 단점인 성능을 향상시키기 위해서는 장비가 좋아야 하는 scale-up 의 특징이 비용을 엄청나게 증가시키기 때문에, 

데이터 일관성은 포기하고 여러 대의 데이터에 분산하여 저장하는 Scale-up 을 목표로 등장함.

 

NoSQL 은 데이터의 저장방식이 하나가 아니라 다양한 방식이 있다.

RDBMS 스키마에 맞추어 데이터를 관리해야 된다는 한계를 극복하고 수평적 확장성을 쉽게 할 수 있다는 장점이 있다.

 

1. Key-Value Database

- 키와 값으로 이루어진 저장과 조회라는 가장 간단한 원칙에 충실한 디비.

- key 값은 유니크한 고유값으로 유지되어야 한다.

- 테이블간 조인을 고려하지 않으므로 외부키나 컬럼별 제약 조건 등이 필요 없다.

- 값에 모든 데이터 타입을 허용하며 그래서 개발자들이 데이터 입력 단계에서 검증 로직을 제대로 구현하는 것이 중요.

- value 에는 JSON, XML 도 올수 있다.

- Redis, Riak, AWS DynamoDB

 

 

2. Key-document Database

-key-value 와 유사하지만 가장 중요한 차이는 값을 문서로 저장한다.

문서란 semi-strucutred entity 이며 보통 JSON 이나 XML 같은 표준 형식을 말한다.

 

- 각 문서별로 다른 필드를 가질 수 있으며, 따라서 개발자가 애플리케이션에서 데이터를 입력하는 단계에서 컬럼과 필드의 관리가 제대로 이루어지도록 보장하는 것이 매우 중요하다.
예를 들어 필수 속성(Null을 허용하지 않는 속성)에 대한 관리도 애플리케이션 레벨에서 관리가 이루어져야 한다.

 

 

둘의 차이점?

key-value 데이터베이스에서 value 에 JSON,XML 이 올수 있기 때문에 key-document 데이터베이스와 같은게 아닌가 생각된다.

하지만 key-value 에서는 JSON,XML 을 그냥 blob 같은 문자열로 인식하는 반면,

key-document 에서는 document(JSON,XML) 자체를 쿼리, 인덱싱 등을 지원한다. 

 

 

 

'CS 정리 > DB' 카테고리의 다른 글

리플리케이션, 클러스터링  (0) 2023.10.23
스키마  (0) 2023.10.23
커넥션 풀  (0) 2023.10.23
트랜잭션  (0) 2023.10.22
정규화  (0) 2023.10.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함