NoSQL
NoSQL 데이터베이스는 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다. 이러한 접근에 대한 동기에는 디자인의 단순화, 수평적 확장성, 세세한 통제를 포함한다. NoSQL 데이터베이스는 단순 검색 및 추가 작업을 위한 매우 최적화된 키 값 저장 공간으로, 레이턴시와 스루풋과 관련하여 상당한 성능 이익을 내는 것이 목적이다. NoSQL 데이터베이스는 빅데이터와 실시간 웹 애플리케이션의 상업적 이용에 널리 쓰인다. 또, NoSQL 시스템은 SQL 계열 쿼리 언어를 사용할 수 있다는 사실을 강조한다는 면에서 "Not only SQL"로 불리기도 한다.
역사
카를로 스트로찌(Carlo Strozzi)는 1998년 표준 SQL 인터페이스를 채용하지 않은 자신의 경량 오픈 소스 관계형 데이터베이스를 NoSQL이라고 명명했다.[1] 스트로찌는 현재의 NoSQL 운동이 “전반적인 관계형 모델에서 점차 멀어지고 있으므로” NoREL로 부르는 것이 더 적절하다고 언급했다.[2]
2009년 초에 라스트 FM의 요한 오스칼손(Johan Oskarsson)이 오픈 소스 분산 데이터베이스를 논하기 위한 미트업 행사를 조직하면서, 이와 같은 데이터베이스를 NoSQL이라고 불렀다.[3] 고전적인 관계형 데이터베이스 시스템의 주요 특성을 보장하는 ACID 제공을 주로 시도하지 않은 수많은 비관계형, 분산 데이터 자료 공간의 등장에 따라 이 이름이 사용되었다.[4]
용어
NoSQL 데이터베이스를 분류하는 접근 방식은 분류와 하위 분류와 함께 다양하다. 다양한 접근 방식으로 인해 비관계형 데이터베이스를 포괄적으로 파악하는 데에는 어려움이 있다. 그럼에도 동의할만한 수준의 기본적인 분류는 데이터 모델에 기반을 둔다. 이 가운데 몇 가지와 이들이 가진 프로토타입은 다음과 같다:
데이터 모델에 따른 분류
스티븐 옌은 그의 블로그의 글 "NoSQL is a Horseless Carriage"에서 NoSQL 데이터베이스들을 다음과 같이 분류했다.[5]
용어 | 연관 데이터베이스 |
---|---|
KV Store | Keyspace, Flare, SchemaFree, RAMCloud, Oracle NoSQL Database (OnDB) |
KV Store - Eventually consistent | Dynamo, Voldemort, Dynomite, SubRecord, Mo8onDb, DovetailDB |
KV Store - Hierarchical | GT.m, Cache |
KV Store - Ordered | TokyoTyrant, Lightcloud, NMDB, Luxio, MemcacheDB, Actord |
KV Cache | Memcached, Repcached, Coherence, Hazelcast, Infinispan, EXtremeScale, JBossCache, Velocity, Terracotta |
Tuple Store | Gigaspaces, Coord, Apache River |
Object Database | ZopeDB, DB40, Shoal |
Document Store | CouchDB, Cloudant, Couchbase, MongoDB, Jackrabbit, XML-Databases, ThruDB, CloudKit, Prsevere, Riak-Basho, Scalaris |
Wide Columnar Store | BigTable, HBase, Apache Cassandra, Hypertable, KAI, OpenNeptune, Qbase, KDI |
참조
- ↑ Lith, Adam; Jakob Mattson (2010). “Investigating storage solutions for large data: A comparison of well performing and scalable data storage solutions for real time extraction and batch insertion of data” (PDF). Göteborg: Department of Computer Science and Engineering, Chalmers University of Technology. 70쪽. 2011년 5월 12일에 확인함.
Carlo Strozzi first used the term NoSQL in 1998 as a name for his open source relational database that did not offer a SQL interface[...]
- ↑ “NoSQL Relational Database Management System: Home Page”. Strozzi.it. 2007년 10월 2일. 2010년 3월 29일에 확인함.
- ↑ “NoSQL 2009”. Blog.sym-link.com. 2009년 5월 12일. 2010년 3월 29일에 확인함.
- ↑ Mike Chapple. “The ACID Model”.
- ↑ A Yes for a NoSQL Taxonomy. High Scalability (2009-11-05). Retrieved on 2013-09-18.
더 읽기
- Pramod Sadalage and Martin Fowler (2012). 《NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence》. Addison-Wesley. ISBN 0-321-82662-0.
- Christof Strauch (2012). “NoSQL Databases” (PDF).
- Moniruzzaman AB, Hossain SA (2013). “NoSQL Database: New Era of Databases for Big data Analytics - Classification, Characteristics and Comparison”.
- Kai Orend (2013). “Analysis and Classification of NoSQL Databases and Evaluation of their Ability to Replace an Object-relational Persistence Layer”.
- Ganesh Krishnan, Sarang Kulkarni, Dharmesh Kirit Dadbhawala. “Method and system for versioned sharing, consolidating and reporting information”.
바깥 고리
- Christoph Strauch. “NoSQL whitepaper” (PDF). Hochschule der Medien, Stuttgart.
- Martin Fowler. “NoSQL Guide”.
- Stefan Edlich. “NoSQL database List”.
- Peter Neubauer (2010). “Graph Databases, NOSQL and Neo4j”.
- Sergey Bushik (2012). “A vendor-independent comparison of NoSQL databases: Cassandra, HBase, MongoDB, Riak”. NetworkWorld.