NoSQL
- NoSQL이란 Not only SQL의 약자로, SQL만을 사용하지 않는 DBMS를 뜻한다.
- Key-Value, Document, Column-Family, Graph 등의 모델이 있다.
Key-Value
- Key-Value 형태는 가장 단순한 형태의 NoSQL로 수평적 확장이 용이함
- value의 내용을 사용한 쿼리가 불가능하기때문에 사용자는 key를 사용해 value를 읽어들인 뒤 application level에서 적절히 처리하여야 함
- Redis, SimpleDB, AWS Dynamo DB, Voldemort 등
Document
- Document 형태는 data가 key와 document의 형태로 저장됨
- document는 유연한 schema를 가지며 document 안에는 value들이 계층적인 형태로 저장됨
- 객체가 하나의 document가 되는 것이라고 볼 수 있어 RDB처럼 하나의 객체를 여러 테이블에 나눠 저장할 필요가 없어짐
- document에 JSON과 같은 형태가 저장될 수 있음
- MongoDB, CouchDB 등
Column-Family
- Column-Family 형태는 key에서 field를 결정함
- key는 Row와 Column-family, Column-name을 가짐
- 연관 데이터들은 같은 Column-family 안에 속하며 각자의 Column-name을 가짐
- attribute가 계층적 구조를 가지고있는 셈
- 데이터들을 하나의 커다란 table로 표현 가능
- HBase, Cassnadra 등
Graph
- Graph 형태는 개체와 관계를 그래프 형태로 표현한 것
- 데이터가 그래프 형태로 저장된다. 노드, 관계, 특성을 가짐
- 데이터 간의 관계가 탐색의 key일 경우에 적합
- Neo4j, InfiniteGraph 등