Centralized Storage

Scale-Up에 해당한다. 하나의 기기에 내장된 DB에 데이터를 저장하는 방식으로, RDB는 데이터의 관계를 테이블로 정의하기 때문에 RDB에 적합한 방식이다. 물론, 최근에는 RDB도 Decentralized로 구축하는 추세이다.
Decentralized Storage

Scale-Out에 해당한다. 여러개의 기기에 데이터를 저장하는 방식이다. NoSql은 스키마가 없어, 정해진 형식이 없으므로 NoSql에 적합한 저장 방식이다.
NoSql
NoSql 특징
- Flexible : RDB는 테이블의 구조를 변경해야 하지만, NoSql은 테이블이 없기 때문에 유연하다.
- Scalability : 수평적 확장이 쉽다.
- Fault Tolerance : 분산 시스템에 적합하기 때문에 일부 서버에 오류가 생겨도 기능에 치명적이지 않다.
- 많은 대기업이 RDB에서 NoSql로 전환중이다.
NoSql 데이터베이스 유형

Key-Value database
- Key-Value 형태로 데이터를 저장한다.
ex) Redis, Oracle NoSql DB, Project Voldmort, Aerospike

Document Store Database
- Key-Value쌍 여러개를 하나의 document에 저장하는 방식이다.
- 각 document는 쿼리문을 사용할 수 있다.
- RDB와 유사한 구조로 만들 수 있다.
ex) MongoDB, DocumentDB, CouchDB, MarkLogic, OrientDB

Column-Family database

- 각 Row에는 서로 다른 갯수의 여러개의 Column이 있다.
- 각 Column은 name, value 조합과 데이터가 추가된 시점이 저장된 timestamp가 있다.
ex) Bigtable, Cassandra, HBase, Vertica, Druid

Graph database
- 데이터 간에 관계를 중시할 때 사용한다.
- node에 데이터를 저장하고 arrow에 관계를 저장한다.
- SNS, 실시간 상품 추천, 네트워크 다이어그램, 부정 감지, 접근 관리 등에 활용된다.

ex) Neo4j, Blazegraph, GraphBase
