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;"|Consistency (일관성)
|align="left" valign="middle"| 성공적으로 완료된 트랜잭션의 데이터가 저장
|-
|align="center" valign="middle" style="background-color:#eee;"|Isolation (고립성)
|align="left" valign="middle"| 트랜잭션의 단독 실행을 보장 (트랜잭션간 간섭 방지)
|-
|align="center" valign="middle" style="background-color:#eee;"|Durability (지속성)
|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;"|Availability (가용성)
|align="left" valign="middle"| 항상 Read와 Write 가능 (단일 노드 관점)
|-
|align="center" valign="middle" style="background-color:#eee;"|Partition Tolerance (파티션 허용치)
|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"|
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;"|Column Family
|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;"|Document
|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;"|Graph
|align="left" valign="middle"|
|align="left" valign="middle"| Neo4J 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](CouchBase.md) : ElasticSearch 연동 모듈이 있음
|-
| style="text-align: center;" | 분석용
|
- [ElasticSearch](ElasticSearch.md)
|}
참고 문헌
- [NoSQL 데이터 모델링 기법](https://docs.google.com/a/jopenbusiness.com/document/pub?id=10yun1BzZJZtm4H9H31V-v_FhY39pfjJjkoCafNniJ4U&embedded=true)
- [NoSQL 데이타 모델링 #1-데이타모델과, 모델링 절차, 2012.08](http://bcho.tistory.com/665)
- [NoSQL 데이타 모델링 #2- 데이타 모델링 패턴, 2012.08](http://bcho.tistory.com/666)
- [데이터 모델에 따른 Nosql 선택과 고려사항, 2011.06](http://knight76.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EC%97%90-%EB%94%B0%EB%A5%B8-Nosql-%EC%84%A0%ED%83%9D%EA%B3%BC-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD)
- [NoSQL – 도대체 어떻게 선택해야 할까?, 2012.02](http://kimws.wordpress.com/2012/02/26/nosql-%EB%8F%84%EB%8C%80%EC%B2%B4-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%84%A0%ED%83%9D%ED%95%B4%EC%95%BC-%ED%95%A0%EA%B9%8C/)
- [http://eincs.net/2012/06/nosql-is-not-useful/](http://eincs.net/2012/06/nosql-is-not-useful/)
- [http://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/](http://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/)
- [http://nosql-database.org/](http://nosql-database.org/)
- [http://en.wikipedia.org/wiki/Nosql](http://en.wikipedia.org/wiki/Nosql)
- [http://wiki.gizrak.com/w/index.php/NoSQL](http://wiki.gizrak.com/w/index.php/NoSQL)
- [http://sidnancy.kr/archives/77](http://sidnancy.kr/archives/77)
- [주요 NoSQL들에 대한 초간단 정리, 2012.08](http://kimws.wordpress.com/2012/08/07/%EC%A3%BC%EC%9A%94-nosql%EB%93%A4%EC%97%90-%EB%8C%80%ED%95%9C-%EC%B4%88%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC/)
- [http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis](http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis)
- [http://www.dataversity.net/the-nosql-movement-graph-databases/](http://www.dataversity.net/the-nosql-movement-graph-databases/)
- [https://docs.google.com/a/jopenbusiness.com/spreadsheet/ccc?key=0AlHPKx74VyC5dERyMHlLQ2lMY3dFQS1JRExYQUNhdVE#gid=0](https://docs.google.com/a/jopenbusiness.com/spreadsheet/ccc?key=0AlHPKx74VyC5dERyMHlLQ2lMY3dFQS1JRExYQUNhdVE.md#gid=0)
- [http://hanburn.tistory.com/106](http://hanburn.tistory.com/106)
- [http://dev.kthcorp.com/2011/07/08/mongodb-atfoursquare-biggest-reason-auto-sharding/](http://dev.kthcorp.com/2011/07/08/mongodb-atfoursquare-biggest-reason-auto-sharding/)
- [http://en.wikipedia.org/wiki/Graph_database](http://en.wikipedia.org/wiki/Graph_database)
- [http://www.techrepublic.com/blog/10things/10-things-you-should-know-about-nosql-databases/1772](http://www.techrepublic.com/blog/10things/10-things-you-should-know-about-nosql-databases/1772)
- [http://kerocat.tistory.com/1](http://kerocat.tistory.com/1)
- [http://bcho.tistory.com/621](http://bcho.tistory.com/621)
- [http://www.networkworld.com/news/tech/2012/102212-nosql-263595.html?page=1](http://www.networkworld.com/news/tech/2012/102212-nosql-263595.html?page=1)
- [http://www.brianfrankcooper.net/pubs/ycsb.pdf](http://www.brianfrankcooper.net/pubs/ycsb.pdf)
- [http://www.slideshare.net/hypermin/newsqldatabaseoverview](http://www.slideshare.net/hypermin/newsqldatabaseoverview)
- [http://wiki.gurubee.net/pages/viewpage.action?pageId=19005444](http://wiki.gurubee.net/pages/viewpage.action?pageId=19005444)
- NewSQL
- [http://blog.naver.com/PostView.nhn?blogId=gundallove&logNo=80189190857](http://blog.naver.com/PostView.nhn?blogId=gundallove&logNo=80189190857)
- [http://en.wikipedia.org/wiki/NewSQL](http://en.wikipedia.org/wiki/NewSQL)
[[Category:BigData|Category: BigData]]
분류: [NoSQL](분류_NoSQL.md)
공유하기