키-밸류
- 간단해서 서브용 DB
- 레디스
- 1차적으로 램에 저장(빠르니까)( 하드에 백업은 해둠)
- 메인DB에서 자주쓰는걸 redis에 복사해두어서 빠르게 조회가 가능하다
- 자주쓰는 데이터 캐싱
- 영상 스트리밍
- 로그인 기록 저장
- 채팅을 위한 pub/sub
RDBMS
- 표, 엑셀 형식
- 정규화
- 데이터 중복이 싫어서 테이블을 쪼갠다.
- 데이터 출력문법 복잡해짐
- ACID 트랜잭션 기능
그래프 DB
- 관계를 주로 저장하고싶을때 neo4j
- 노드안에 데이터를 저장하는데 노드 간의 관계를 저장 할 수 있다.
- 언제쓰나?
- 비행기 노선
- sns 친구 관계
- 코로나 전염맵
- 추천 서비스
Document DB - 몽고 DB
- document단위로 저장 (JSON형태로 저장)
- 구조를 쉽게 바꿀 수 있다.
- 데이터 중복제거를 하지 않음
- 데이터 분산처리가 쉽다
- sns, 실시간채팅, 온라인 게임 등 입출력이 많은 서비스에 사용
- 분산해놓으면 db간의 일관성이 떨어질 수 있다.
컬럼 패밀리 DB - 카산드라
- 표 형식으로 저장, but 좀더 유연하게
- 행마다 컬럼이 달라도 상관없다.
- 자신들만의 언어로 입출력을 해야 함.
요약
- 데이터가 아주 많거나 빠르게 읽고 써야 하는경우, 데이터 간의 관계를 표현하는것이 주요한 경우 같이 특별한 경우에는 NoSQL을 사용한다.
- 하지만 대부분의 경우에는 RDBMS(SQL)로 구현할 수 있기에 일반적으로 많이 사용된다.
글 잘 봤습니다.