NoSQL(Not-only SQL)을 정리 합니다.
RDBMS vs NoSQL
RDBMS 속성
Atomicity (원자성)
|
- 트랜잭션 실행의 단일 상태(성공/실패)를 보장
- 하나의 트랜잭션은 성공 또는 실패의 단일한 상태만 갖습니다. 즉 일부 실패, 일부 성공의 상태를 갖을 수 없습니다.
|
Consistency (일관성)
|
|
Isolation (고립성)
|
- 트랜잭션의 단독 실행을 보장 (트랜잭션간 간섭 방지)
|
Durability (지속성)
|
- 성공적으로 실행된 트랜잭션의 데이터는 영원히 반영
|
NoSQL 속성
- 장점 : 수평 확장성 (Scale-out), 유연한 Schema, 고성능, 저비용
- 단점 : 높은 수준의 데이터 정합성을 지원하는 업무에 적합하지 않음
- CAP 이론 : 2002년 버클리대학의 Eric Brewer 교수에 의해 발표된 분산 컴퓨팅 이론
Consistency (일관성)
|
|
Availability (가용성)
|
- 항상 Read와 Write 가능 (단일 노드 관점)
|
Partition Tolerance (파티션 허용치)
|
- 물리적 네트워크를 넘어서 동작 (노드간의 관계 관점)
|
- CA 중심 : RDBMS
- AP 중심 : NoSQL (Consistency 포기)
- CP 중심 : NoSQL (Availability 포기)
NoSQL 분류 및 종류
NoSQL 분류
Key-value
|
|
- Voldemort
- MemcacheDB
- Membase
- Azure Table Storage
- Chordless
- HamsterDB
- Scalien
- Dynamo
- Berkeley DB (Ordered Key-value)
- Oracle NoSQL Database 11g R2
|
Column Family
|
|
- Google BigTable
- Amazon SimpleDB
- Cloudata
- Cloudera
- HPCC
- Stratosphere
- Amazon Web Services
- DataStax
|
Document
|
|
- RethinkDB
- RavenDB
- MarkLogic Server
- Clusterpoint Server
- ThruDB
- Terrastore
- JasDB
- 10gen
- Cloudant
- Couchbase
- MarkLogic
|
Graph
|
|
- Infinite Graph
- Allegro Graph
- OpenLink
- HyperGraphDB
- FlockDB
- Trinity
- InfoGrid
- Sones
- Bigdata
- DEX
- Virtusos
- GraphBase
- BrightstarDB
- Meronymy
|
- NewSQL : VoltDB, Clustrix, Google Spanner (분산 관계형 DBMS on BigTable)
NoSQL 종류
참고 문헌