카테고리 없음

nosql, rdb, olap, oltp, rto, rpo

흰색남자 2022. 10. 13. 15:17

https://ud803.github.io/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/2021/11/16/RDB-vs.-NoSQL-%EC%96%B8%EC%A0%9C-%EB%88%84%EA%B5%AC%EB%A5%BC-%EC%8D%A8%EC%95%BC%ED%95%A0%EA%B9%8C/

 

https://too612.tistory.com/511

 

nosql이 rdb보다 빠른 이유

rdb는 특정한 형식에 맞게 검사를함

nosql은 상대적으로 자유로운 형식을 지니고 있어, 처리단계가 줄어듬 

 

 

관계형 데이터베이스의 특징은 아래와 같다.

  1. 2차원 데이터로 표현된다 (행/열)
  2. 상호관련성을 가진 테이블의 집합으로 구성된다
  3. 테이블 사이의 관계를 외래키로 나타낸다
  4. 스키마 변경이 어렵다
  5. Vertical Scalable 하지만, Horizontal scale은 어렵다
  6. 메인테넌스 코스트 / 사용 요금이 비싸다
  7. SQL을 사용해 데이터를 질의한다
  8. ACID 성질을 갖는다

NoSQL 데이터베이스의 특징은 아래와 같다.

  1. 다양한 방식으로 데이터를 표현한다
  2. 테이블(혹은 컬렉션 혹은 또 다른 명칭) 사이에 딱히 명시된 제약이나 규칙이 없다
  3. 스키마가 고정적이지 않고, 매우 유연하다
  4. Horizontal Scale이 쉽다
  5. 코스트 저렴 / 오픈소스도 많다
  6. 연산이 빠르고 빅데이터 & 실시간 연산에 적합하다

 

3. RDB vs. NoSQL

그럼 이제 둘을 비교해보자.

  • RDB는 관계형으로 데이터를 저장하지만, NoSQL은 그렇지 않다.
  • RDB는 스키마가 정적이지만, NoSQL은 유연한 스키마 구조를 갖는다.
  • RDB는 수직 확장이 용이하고, NoSQL은 수평 확장이 용이하다. (즉, RDB는 서버 용량을 늘리는 게 쉽고, NoSQL은 서버를 여러 대 늘리는 게 쉽다)
  • 위와 관련해서, RDB는 확장 시 다운타임이 있을 수 있지만, NoSQL은 거의 없다.
  • RDB는 복잡한 쿼리와 Join 연산이 가능하다. NoSQL은 구조화된 쿼리 언어가 없는 경우도 많고, 일반적으로 Join이 없다.
  • RDB는 OLTP에 적합하고, NoSQL은 OLAP에 적합하다. (즉, RDB는 트랜잭션 처리에 용이하고, NoSQL은 분석 처리에 용이하다)

 

 

OLTP :  온라인 뱅킹, 쇼핑, 주문 입력 또는 텍스트 메시지 전송 등 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 유형  // RDB

OnLine Trancation Processing

OLTP는 현재의 데이터 처리가 얼마나 정확하고, 무결한지가 중요

 

OLAP : 대규모 비즈니스 데이터베이스를 구성하고 복잡한 분석을 지원하는 기술 // NoSQL

OnLine Analytical Processing

OLAP는 이미 저장된 데이터를 바탕으로 어떤 정보를 제공하는지가 중요

 

 

RTO ( Recovery Time Objective ) // 목표 복구 시간

장애 발생 시 시스템을 원 상태로 복구하는데 소요되는 시간.

- 얼마나 빨리 복구되어야 하는가.

- 서비스가 재개될 때까지 걸리는 시간

 

 

RPO // Recovery Point Objective ) // 목표 복구 시점

- 얼마나 자주 백업을 할 것 인가?

>> 얼마만큼의 데이터 손실을 감당할 수 있는가?