본문 바로가기

프로그래밍 언어/MySQL

RDBMS와 NoSQL 간단 설명 1

반응형

 

1. 관계형 데이터 베이스: RDBMS

- Relational DataBase Management System

- 관계형 데이터 베이스 시스템

- 트랜잭션(Transaction) 처리가 가능함

- MySQL, Oracle, MS-SQL

 

-> 데이터를 저장할 때 테이블을 다 쪼개서 저장하는 방식

-> 공간의 낭비를 가장 적게 활용하는 방식

-> 하드디스크가 지금처럼 발달 되지 않았던 시절, DB는 디스크(SSD)에 저장되는 데, 디스크의 용량은 한계가 있음

-> 데이터를 최소화 했어야했다. 그래야 불러오는 속도도 빠르다. 

 

-> RDBMS 원래 개발할 때 분산되어있는 데이터를 처리하지 않게 개발한다. 그러므로, 나눠서 처리하는 게 되게 어렵다. 

-> 분산 처리를 clustering(분집)이라고 한다. 분산처리하는 데는 태생적으로 안좋음.

RDBMS의 고려 요소: 어느 절차가 실패했을 때 복제해둔 DB에서 복구 가능. 

-> 복구능력 최고

 

1. 관계형 데이터 베이스: RDBMS
  • 안정적인 데이터 처리 최고
  • 데이터가 폭발할 경우, 분산처리가 약함!
2. NoSQL
  • 폭발적인 데이터를 빠르게 저장하고, 빠르게 읽어오는 분산처리최고
  • 데이터의 안정성이 떨어진다.(-> 데이터의 유실가능성이 있다)

 

2. NoSQL

- 대용량의 데이터를 분산처리하는 데이터베이스 시스템

- 오토 샤딩(Auto Sharding) 기능으로 분산처리가 가능함

- Mongo DB, AWS DynamoDB, Firebase Firestore

 

-> SNS 같은 경우, 실시간으로 DB에 저장(insert가 늘어남)이 필요하다보니, 하드 디스크가 용량이 참. 

-> 폭발적으로 증가하는 데이터

-> 하드 디스크를 더 구비해야 함. 또한, 서비스를 진행하려면 분산되어있는 데이터를 합쳐서 내보내야하는데, 기존 DB에서는 분산처리가 안된다.

-> NoSQL은 데이터를 분산처리하기에 최적이 되어서 나온 것. 나눠서 저장하고, 빠르게 조합해서 읽어 올수 있다.

 

참고설명:

https://vision-ai.tistory.com/entry/RDBMS-vs-NoSQL

 

웹/앱 서비스:

https://vision-ai.tistory.com/entry/On-Premise-%EC%99%80-Cloud-Services

 

반응형