- RDBMS vs NoSQL
- RDBMS 속성
- NoSQL 속성
- NoSQL 분류 및 종류
- NoSQL 분류
- NoSQL 종류
- 게임사의 환경
- 참고 문헌
NoSQL(Not-only SQL)을 정리 합니다.
RDBMS vs NoSQL
RDBMS 속성
{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center"
|-
|width="30%" align="center" valign="middle" style="background-color:#eee;"|Atomicity (원자성)
|width="70%" align="left" valign="middle"|
트랜잭션 실행의 단일 상태(성공/실패)를 보장
하나의 트랜잭션은 성공 또는 실패의 단일한 상태만 갖습니다. 즉 일부 실패, 일부 성공의 상태를 갖을 수 없습니다. align="center" valign="middle" style="background-color:#eee;" align="left" valign="middle" 성공적으로 완료된 트랜잭션의 데이터가 저장 align="center" valign="middle" style="background-color:#eee;" align="left" valign="middle" 트랜잭션의 단독 실행을 보장 (트랜잭션간 간섭 방지) align="center" valign="middle" style="background-color:#eee;" align="left" valign="middle" 성공적으로 실행된 트랜잭션의 데이터는 영원히 반영
|}RDBMS의 한계
확장성의 한계
고정된 스키마
비용의 한계성
NoSQL 속성
약 150종의 NoSQL 솔루션이 존재함
장점 : 수평 확장성 (Scale-out), 유연한 Schema, 고성능, 저비용
단점 : 높은 수준의 데이터 정합성을 지원하는 업무에 적합하지 않음
CAP 이론 : 2002년 버클리대학의 Eric Brewer 교수에 의해 발표된 분산 컴퓨팅 이론
{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center"
|-
|width="30%" align="center" valign="middle" style="background-color:#eee;"|Consistency (일관성)
|width="70%" align="left" valign="middle"|동시에 같은 데이터를 조회 align="center" valign="middle" style="background-color:#eee;" align="left" valign="middle" 항상 Read와 Write 가능 (단일 노드 관점) align="center" valign="middle" style="background-color:#eee;" align="left" valign="middle" 물리적 네트워크를 넘어서 동작 (노드간의 관계 관점)
|}CAP는 2가지만 만족할 수 있다.
CA 중심 : RDBMS
AP 중심 : NoSQL (Consistency 포기)
CP 중심 : NoSQL (Availability 포기)
NoSQL 분류 및 종류
NoSQL 분류
{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center"
|-
|width="20%" align="center" valign="middle" style="background-color:#eee;"|Key-value
|width="40%" align="left" valign="middle"|
|width="40%" align="left" valign="middle"|
Redis, Kyoto Tycoon
Voldemort
MemcacheDB
Membase
Azure Table Storage
Chordless
HamsterDB
Scalien
Dynamo
Berkeley DB (Ordered Key-value)
Oracle NoSQL Database 11g R2 align="center" valign="middle" style="background-color:#eee;" align="left" valign="middle" align="left" valign="middle" [[HBase]], [[Cassandra]], [[HyperTable]], Accumulo
Google BigTable
Amazon SimpleDB
Cloudata
Cloudera
HPCC
Stratosphere
Amazon Web Services
DataStax align="center" valign="middle" style="background-color:#eee;" align="left" valign="middle" align="left" valign="middle" [[MongoDB]], [[CouchDB]], Riak
Couchbase, Scalaris (Memory), ElasticSearch
RethinkDB
RavenDB
MarkLogic Server
Clusterpoint Server
ThruDB
Terrastore
JasDB
10gen
Cloudant
Couchbase
MarkLogic align="center" valign="middle" style="background-color:#eee;" align="left" valign="middle" align="left" valign="middle"
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 종류
게임사의 환경
{| border="1" cellspacing="0" cellpadding="2" style="width: 100%;"
|-
| style="text-align: center; background-color: rgb(241, 241, 241);" | 용도
| style="text-align: center; background-color: rgb(241, 241, 241);" | 상세
|-
| style="text-align: center;" | 서비스용
|
CouchBase : ElasticSearch 연동 모듈이 있음
|-
| style="text-align: center;" | 분석용
|
|}
참고 문헌
http://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/
http://www.dataversity.net/the-nosql-movement-graph-databases/
http://dev.kthcorp.com/2011/07/08/mongodb-atfoursquare-biggest-reason-auto-sharding/
http://www.techrepublic.com/blog/10things/10-things-you-should-know-about-nosql-databases/1772
http://www.networkworld.com/news/tech/2012/102212-nosql-263595.html?page=1
http://wiki.gurubee.net/pages/viewpage.action?pageId=19005444
NewSQL
[[Category:BigData|Category: BigData]]
분류: NoSQL