Open skarltjr opened 3 years ago
기본적으로 rdb는 수평적확장이 불가능, 수직적 확장만 가능
- 물론 master - slave 구조를 통해 구현할 수 있다.
- 그러나 중복을 허용하지 않고 무결성을 강조하기에 확장이 쉽지않다
- 예를들어 nosql은 중복을 허용하기에 a가 여기저기에 등장할 수 있지만 rdb는 불가능
- 따라서 nosql은 제약사항을 고려하지 않아 데이터 저장이 수월하기에 수평적 확장에 용이
추가로 rdb는 트랜잭션 기능을 제공하는데 수평적확장에서 트랜잭션 구현이 굉장히 어렵다
RBD
1. 엄격한 데이터 스키마
2. 관계 / 관계형 데이터베이스의 관계
NoSQL / 비관계형 db
rdb와 반대되는 특성 - No
스키마와 관계 x
즉 정해진 스키마가 없으니 서로 다른 구조의 데이터도 함께 저장이 가능![화면 캡처 2021-02-19 152105](https://user-images.githubusercontent.com/62214428/108465858-1963e400-72c6-11eb-9592-6bfb0adc35f0.png)
관계형 db와 달리 orders에서 유저와 아이템에 대한 데이터를 전부 갖고있다.
따라서 조인이 필요가없다.![화면 캡처 2021-02-19 152818](https://user-images.githubusercontent.com/62214428/108466506-1a494580-72c7-11eb-933a-93ffb8951254.png)
당연히 데이터가 중복되기때문에 불안정 / 중복 데이터 중 어느 한 곳의 데이터만 업그레이드되는경우
그러나 느린 조인이 없기 때문에 빠르다.
추가로 nosql은 테이블의 join개념이 없다
확장
장단점과 선택의 이유
RBD의 장점
NOSQL의 장점
RBD의 단점
NOSQL의 단점
RBD / NOSQL 선택의 이유