You are on page 1of 6

NoSQL

Structured storage redirects here. For the Microsoft tees, contrary to the prevailing practice among relational
technology also known as structured storage, see COM database systems.[8]
Structured Storage.

A NoSQL (often interpreted as Not only SQL[1][2] ) 2 Types of NoSQL databases


database provides a mechanism for storage and retrieval
of data that is modeled in means other than the tabular re- There have been various approaches to classify NoSQL
lations used in relational databases. Motivations for this databases, each with dierent categories and subcate-
approach include simplicity of design, horizontal scal- gories. Because of the variety of approaches and over-
ing, and ner control over availability. The data struc- laps it is dicult to get and maintain an overview of non-
tures used by NoSQL databases (e.g. key-value, graph, or relational databases. Nevertheless, a basic classication
document) dier from those used in relational databases, is based on data model. A few examples in each category
making some operations faster in NoSQL and others are:
faster in relational databases. The particular suitability
of a given NoSQL database depends on the problem it Column: Accumulo, Cassandra, Druid, HBase,
must solve. Vertica
NoSQL databases are increasingly used in big data and
real-time web applications.[3] NoSQL systems are also Document:Lotus Notes, Clusterpoint, Apache
called Not only SQL to emphasize that they may also CouchDB, Couchbase, MarkLogic, MongoDB,
support SQL-like query languages. Many NoSQL stores OrientDB, Qizx
compromise consistency (in the sense of the CAP the- Key-value: CouchDB, Dynamo, FoundationDB,
orem) in favor of availability and partition tolerance. MemcacheDB, Redis, Riak, FairCom c-treeACE,
Barriers to the greater adoption of NoSQL stores in- Aerospike, OrientDB, MUMPS
clude the use of low-level query languages, the lack of
standardized interfaces, and huge investments in exist- Graph: Allegro, Neo4J, InniteGraph, OrientDB,
ing SQL.[4] Most NoSQL stores lack true ACID trans- Virtuoso, Stardog
actions, although a few recent systems, such as Fair-
Com c-treeACE, Google Spanner (though technically a Multi-model: OrientDB, FoundationDB,
NewSQL database), FoundationDB and OrientDB have ArangoDB, Alchemy Database, CortexDB
made them central to their designs.
A more detailed classication is the following, based on
one from Stephen Yen:[9]

1 History
3 Performance
Carlo Strozzi used the term NoSQL in 1998 to name his
lightweight, open-source relational database that did not Ben Scoeld rated dierent categories of NoSQL
expose the standard SQL interface.[5] Strozzi suggests databases as follows: [10]
that, as the current NoSQL movement departs from the
Performance and scalability comparisons are sometimes
relational model altogether; it should therefore have been
done with the YCSB benchmark.
called more appropriately 'NoREL'",[6] referring to 'No
Relational'. See also: Comparison of structured storage software
Eric Evans reintroduced the term NoSQL in early 2009
when Johan Oskarsson of Last.fm organized an event to
discuss open-source distributed databases.[7] The name
attempted to label the emergence of an increasing num- 4 Handling relational data
ber of non-relational, distributed data stores. Most of
the early NoSQL systems did not attempt to provide Since most NoSQL databases lack ability for joins in
atomicity, consistency, isolation and durability guaran- queries, the database schema generally needs to be de-

1
2 5 EXAMPLES

signed dierently. There are three main techniques for Collections


handling relational data in a NoSQL database.
Tags
Non-visible Metadata
4.1 Multiple queries
Directory hierarchies
Instead of retrieving all the data with one query, its com-
mon to do several queries to get the desired data. NoSQL Compared to relational databases, for example, collec-
queries are often faster than traditional SQL queries so tions could be considered analogous to tables and docu-
the cost of having to do additional queries may be ac- ments analogous to records. But they are dierent: every
ceptable. If an excessive number of queries would be record in a table has the same sequence of elds, while
necessary, one of the other two approaches is more ap- documents in a collection may have elds that are com-
propriate. pletely dierent.
Documents are addressed in the database via a unique key
that represents that document. One of the other dening
4.2 Caching/replication/non-normalized characteristics of a document-oriented database is that,
data beyond using the simple key-document (or key-value)
lookup to retrieve a document, the database oers an API
Instead of only storing foreign keys, its common to store or query language that retrieves documents based on their
actual foreign values along with the models data. For ex- contents.
ample, each blog comment might include the username
in addition to a user id, thus providing easy access to Document store databases and their query language
the username without requiring another lookup. When
a username changes however, this will now need to be
changed in many places in the database. Thus this ap-
proach works better when reads are much more common 5.2 Graph
than writes. [11]
Main article: Graph database

4.3 Nesting data This kind of database is designed for data whose rela-
tions are well represented as a graph (elements intercon-
With document databases like MongoDB its common to nected with an undetermined number of relations be-
put more data in a smaller number of collections. For tween them). The kind of data could be social relations,
example in a blogging application, one might choose to public transport links, road maps or network topologies,
store comments within the blog post document so that for example.
with a single retrieval one gets all the comments. Thus
in this approach a single document contains all the data Graph databases and their query language
you need for a specic task.

5.3 Key-value stores


5 Examples Key-value (KV) stores use the associative array (also
known as a map or dictionary) as their fundamental data
5.1 Document store model. In this model, data is represented as a collection
of key-value pairs, such that each possible key appears at
Main articles: Document-oriented database and XML most once in the collection.[12][13]
database The key-value model is one of the simplest non-trivial
data models, and richer data models are often imple-
The central concept of a document store is the notion of mented on top of it. The key-value model can be
a document. While each document-oriented database extended to an ordered model that maintains keys in
implementation diers on the details of this denition, in lexicographic order. This extension is powerful, in that
general, they all assume that documents encapsulate and it can eciently process key ranges.[14]
encode data (or information) in some standard formats or
Key-value stores can use consistency models ranging
encodings. Encodings in use include XML, YAML, and from eventual consistency to serializability. Some sup-
JSON as well as binary forms like BSON. port ordering of keys. Some maintain data in memory
Dierent implementations oer dierent ways of orga- (RAM), while others employ solid-state drives or rotating
nizing and/or grouping documents: disks. Here is a list of key-value stores:
5.4 Object database 3

5.3.1 KV - eventually consistent MemcacheDB (using Berkeley DB)

Dynamo MongoDB

Riak[15] NoSQLz

Coherence
5.3.2 KV - ordered
Oracle NoSQL Database
Berkeley DB
OpenLink Virtuoso
FairCom c-treeACE/c-treeRTG
Tarantool
FoundationDB
Tokyo Cabinet
IBM Informix C-ISAM
Tuple space
InnityDB

LMDB 5.4 Object database


MemcacheDB
Main article: Object database
NDBM

db4o
5.3.3 KV - RAM
GemStone/S
Aerospike
InterSystems Cach
Coherence
JADE
FairCom c-treeACE
NeoDatis ODB
Hazelcast
ObjectDatabase++
memcached
ObjectDB
OpenLink Virtuoso
Objectivity/DB
redis
ObjectStore
XAP
ODABA
5.3.4 KV - solid-state drive or rotating disk Perst

Aerospike OpenLink Virtuoso

BigTable Versant Object Database

CDB ZODB
Clusterpoint Database Server

Couchbase Server
5.5 Tabular

FairCom c-treeACE Apache Accumulo

GT.M[16] BigTable

Hibari Apache Hbase

Keyspace Hypertable

LevelDB Mnesia

LMDB OpenLink Virtuoso


4 7 REFERENCES

5.6 Tuple store 5.10 Multimodel database


Apache River 5.11 Correlation database
GigaSpaces
5.12 Cell database
Tarantool
6 See also
TIBCO ActiveSpaces

OpenLink Virtuoso CAP theorem

Comparison of object database management sys-


tems
5.7 Triple/quad store (RDF) database
Comparison of structured storage software
Apache JENA
Correlation database
MarkLogic
Distributed cache
Ontotext-OWLIM
Faceted search
Oracle NoSQL database
MultiValue database
SparkleDB
Multi-model database
Virtuoso Universal Server Triplestore
Stardog

7 References
5.8 Hosted
[1] NoSQL (Not Only SQL)". NoSQL database, also called
Amazon DynamoDB Not Only SQL

Datastore on Google Appengine [2] Martin Fowler. NosqlDenition. many advocates of


NoSQL say that it does not mean a no to SQL, rather
Clusterpoint database it means Not Only SQL

[3] RDBMS dominate the database market, but NoSQL sys-


Cloudant Data Layer (CouchDB) tems are catching up. DB-Engines.com. 21 Nov 2013.
Retrieved 24 Nov 2013.
Freebase
[4] K. Grolinger, W.A. Higashino, A. Tiwari, M.A.M.
OpenLink Virtuoso Capretz (2013). Data management in cloud environ-
ments: NoSQL and NewSQL data stores. JoCCASA,
Springer. Retrieved 8 Jan 2014.
5.9 Multivalue databases
[5] Lith, Adam; Jakob Mattson (2010). Investigating storage
D3 Pick database solutions for large data: A comparison of well performing
and scalable data storage solutions for real time extraction
Extensible Storage Engine (ESE/NT) and batch insertion of data (PDF). Gteborg: Depart-
ment of Computer Science and Engineering, Chalmers
InnityDB University of Technology. p. 70. Retrieved 12 May 2011.
Carlo Strozzi rst used the term NoSQL in 1998 as a name
InterSystems Cach for his open source relational database that did not oer a
SQL interface[...]
Northgate Information Solutions Reality, the origi-
[6] NoSQL Relational Database Management System:
nal Pick/MV Database Home Page. Strozzi.it. 2 October 2007. Retrieved 29
March 2010.
OpenQM
[7] NoSQL 2009. Blog.sym-link.com. 12 May 2009. Re-
Revelation Softwares OpenInsight trieved 29 March 2010.

Rocket U2 [8] Mike Chapple. The ACID Model.


5

[9] Yen, Stephen. NoSQL is a Horseless Carriage (PDF). Christof Strauch (2012). NoSQL Databases.
NorthScale. Retrieved 2014-06-26..
Moniruzzaman AB, Hossain SA (2013). NoSQL
[10] Scoeld, Ben (2010-01-14). NoSQL - Death to Rela- Database: New Era of Databases for Big data Ana-
tional Databases(?)". Retrieved 2014-06-26. lytics - Classication, Characteristics and Compari-
[11] Making the Shift from Relational to NoSQL. Couch- son.
base.com. Retrieved December 5, 2014.
Kai Orend (2013). Analysis and Classication of
[12] Sandy (14 January 2011). Key Value stores and the NoSQL Databases and Evaluation of their Ability
NoSQL movement. http://dba.stackexchange.com/ to Replace an Object-relational Persistence Layer.
questions/607/what-is-a-key-value-store-database:
Stackexchange. Retrieved 1 January 2012. Key-value Ganesh Krishnan, Sarang Kulkarni, Dharmesh Kirit
stores allow the application developer to store schema-less Dadbhawala. Method and system for versioned
data. This data usually consists of a string that represents sharing, consolidating and reporting information.
the key, and the actual data that is considered the value
in the key-value relationship. The data itself is usually
some kind of primitive of the programming language (a
string, an integer, or an array) or an object that is being 9 External links
marshaled by the programming languages bindings to
the key-value store. This structure replaces the need for Christoph Strauch. NoSQL whitepaper.
a xed data model and allows proper formatting. Hochschule der Medien, Stuttgart.
[13] Marc Seeger (21 September 2009). Key-Value Stores:
Stefan Edlich. NoSQL database List.
a practical overview. http://blog.marc-seeger.de/2009/
09/21/key-value-stores-a-practical-overview/: Marc Peter Neubauer (2010). Graph Databases,
Seeger. Retrieved 1 January 2012. Key-value stores
NOSQL and Neo4j.
provide a high-performance alternative to relational
database systems with respect to storing and accessing Sergey Bushik (2012). A vendor-independent
data. This paper provides a short overview of some of the comparison of NoSQL databases: Cassandra,
currently available key-value stores and their interface to
HBase, MongoDB, Riak. NetworkWorld.
the Ruby programming language.
[14] Ilya Katsov (1 March 2012). NoSQL Data Modeling Prof. PhD Roberto V. Zicari (2014). NoSQL
Techniques. Ilya Katsov. Retrieved 8 May 2014. Data Stores Articles, Papers, Presentations.
odbms.org.
[15] Riak: An Open Source Scalable Data Store. 28 Novem-
ber 2010. Retrieved 28 November 2010 * OpenLink Vir-
tuoso
Project Voldemort. Check date values in: |access-
date= (help)
[16] Tweed, Rob; George James (2010). A Universal NoSQL
Engine, Using a Tried and Tested Technology (PDF).
p. 25. Without exception, the most successful and well-
known of the NoSQL databases have been developed
from scratch, all within just the last few years. Strangely,
it seems that nobody looked around to see whether there
were any existing, successfully implemented database
technologies that could have provided a sound founda-
tion for meeting Web-scale demands. Had they done
so, they might have discovered two products, GT.M and
Cach.....*

8 Further reading
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.
Dan McCreary & Ann Kelly (2013). Making Sense
of NoSQL: A guide for managers and the rest of us.
ISBN 9781617291074.
6 10 TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES

10 Text and image sources, contributors, and licenses


10.1 Text
NoSQL Source: http://en.wikipedia.org/wiki/NoSQL?oldid=653392015 Contributors: AxelBoldt, Maury Markowitz, Jose Icaza, Pnm,
Kku, Komap, Phoe6, Ronz, Ntoll, Ehn, Timwi, Furrykef, Bearcat, Peak, Dilbert, (:Julien:), Tagishsimon, Gadum, Coldacid, Alexf,
Beland, Euphoria, Clemwang, R, MMSequeira, Smyth, Leigh Honeywell, Russss, Stephen Bain, Thringer, Walter Grlitz, Markito,
Bhaskar, PatrickFisher, YPavan, Eno, Crosbiesmith, Marasmusine, Woohookitty, Linas, Tshanky, Barrylb, Dm, Tabletop, MacTed, Nilesh-
bansal, BD2412, Qwertyus, Koavf, Ceefour, Strait, Amire80, Seraphimblade, ErikHaugen, Professionalsql, Vegaswikian, Jubalkessler,
ElKevbo, Dmccreary, AlisonW, RobertG, Sstrader, Intgr, Tedder, Benbovee, Wavelength, Hairy Dude, Bovineone, Morphh, SamJohn-
ston, Mbonaci, Rjlabs, Leotohill, Poohneat, GraemeL, Volt42, HereToHelp, Jonasfagundes, JLaTondre, Shepard, Matt Heard, Benhoyt,
A bit iy, SmackBot, Fulldecent, Anastrophe, Mauls, Drttm, Gorman, Somewherepurple, KiloByte, Thumperward, Jstplace, Jerome
Charles Potts, , Frap, DavidSol, Cybercobra, Plustgarten, Looris, ThomasMueller, Trbdavies, NickPenguin, Eedee-
bee, ThurnerRupert, Petr Kopa, Zaxius, Lguzenda, Heelmijnlevenlang, Omidnoorani, Mauro Bieg, Benatkin, Mjresin, Hu12, Charbel-
gereige, Dancrumb, Gpierre, Arto B, Raysonho, Sanspeur, Ostrolphant, ProfessorBaltasar, Netmesh, OmerMor, Neustradamus, Cold-
Shine, Mydoghasworms, Viper007Bond, Headbomb, CharlesHoman, Peter Gulutzan, Davidhorman, Philu, Bramante, Nick Number,
Sorenriise, Widefox, QuiteUnusual, Lfstevens, Gstein, Syaskin, Dericolho, Joolean, Orenfalkowitz, Kgeischmann, Philg88, Mitpradeep,
Adtadt, GimliDotNet, Lmxspice, Stimpy77, Mikek999, DatabACE, JohnPritchard, Ansh.prat, McSly, Atropos235, Lamp90, Jottinger,
Anoop K Nayak, Bbulkow, Tonyrogerson, Robert1947, Billinghurst, Quiark, Kbrose, ManikSurtani, TJRC, Dawn Bard, Whimsley, David-
Bourguignon, Flyer22, Ctxppc, Mesut.ayata, Legacypath, AndrewBass, Edlich, Drq123, CaptTofu, Stevedekorte, Rossturk, Niceguyedc,
Cnorvell, Pointillist, Excirial, Zapher67, PixelBot, Dredwol, Robhughadams, Arjayay, Razorame, StanContributor, Irmatov, Shijucv,
The-verver, Tgrall, Miami33139, XLinkBot, Phoenix720, Duncan, Fiskbil, Whooym, Techsaint, Addbot, Fmorstatter, Mortense, Mab-
dul, MrOllie, LaaknorBot, Chrismcnab, Alexrakia, Getmoreatp, Luckas-bot, Yobot, Amirobot, Pcap, Ebalter, Ma7dy, AnomieBOT, An-
gry bee, Fraktalek, White gecko, Materialscientist, Xtremejames183, Cyril Wack, Jabawack81, Gkorland, Tomdo08, ChristianGruen,
FontOfSomeKnowledge, Rtweed1955, Omnipaedista, Sduplooy, Shadowjams, Ciges, Cekli829, Sdrkyj, FrescoBot, Nawroth, Ashtango,
Sae1962, Thegreeneman5, David Paniz, Ertugka, Chenopodiaceous, Winterst, I dream of horses, Leegee23, Hoo man, Natishalom,
Michael Minh, Seancribbs, Jandalhandler, Craigbeveridge, Cnwilliams, Colemala, Argv0, Justinsheehy, AdityaKishore, Javalangstring,
Voodootikigod, JnRouvignac, Svesterli, Violaaa, Hoelzro, Magnuschr, Extrovrt101, Wyverald, Jedexter77, Uhbif19, Zond, Asafdap-
per, Ptab, Tobiasivarsson, Alexandre.Morgaut, Steve03Mills, Phunehehe, R39132, EmausBot, Bionderplus, WikitanvirBot, FalseAxiom,
Bdijkstra, Dewritech, GoingBatty, RA0808, Ledhed2222, MrWerewolf, EricBloch, Hloeung, ZroBot, Weimanm, Al3xpopescu, Thean-
drewdavis, Mhegi, Sagarjhobalia, Mtrencseni, Phillips-Martin, Dmitri.grigoriev, H3llBot, Jnaranjo86, DamarisC, Dstainer, Bulwersator,
Eco schranzer, Thomas.uhl, Lyoshenka, Inmortalnet, Really Enthusiastic, Germanviscuso, Stephen E Browne, ClueBot NG, Rabihnas-
sar, Ki2010, Luisramos22, Fxsjy, Korrawit, Tylerskf, Castncoot, ScottConroy, Jrudisin, Mshefer, Ashtango5, Helpful Pixie Bot, Pereb,
William greenly, Rpk512, GlobalsDB, DBigXray, Tuvrotya, BG19bot, Nawk, Gonim, Freshnfruity, Vychtrle, Gaborcselle, Kkbhumana,
Frze, AvocatoBot, Mark Arsten, Compfreak7, Anne.naimoli, Matspca, Boshomi, Dshelby, Brocsima, BigButtery, Winston Chuen-Shih
Yang, Griswolf, Socialuser, Ugurbost, Khiladi 2010, Noah Slater, Farvartish, Knudmoeller, Electricmun11, Mbarrenecheajr, Correc-
tor623, Sandy.toast, F331491, Luebbert42, Anujsahni, Tsvljuchsh, Makecat-bot, Fitzchak, Toopathnd, Msalvadores, Cloud-dev, Sasindar,
CJGarner, Crosstantine, Stevenguttman, Razibot, DallasClarke, Altered Walter, Rediosoft, Tsm32, Franois Robere, Harpreet dandeon,
LeeAMitchell, Mbroberg, Virendervermamca, Anilkumar1129, Mhgrove, FranzKraun, Jasonhpang, Nanolat, Nosql.analyst, Rzicari, Gin-
suloft, Sugamsha, K0zka, Tshuva, Dabron, Mongochang, Natan.puzis, Webtrill, CafeNoName, Yasinaktimur, Monkbot, Itamar.haber,
User db, Textractor, Maykurutu, Kamaci, Mongodbheavy, RedOctober13, Nathan194, Jjrenzel, Azanebrain, Annmkelly1, Sunnyeyre,
Danny996, Thomas4019, Dr. Testicate, M.D., Johnbweeks, Magic-carpet-pilot, IdlePlayground, Datadatadatadata, Kevin at aerospike
and Anonymous: 517

10.2 Images
File:Wiki_letter_w.svg Source: http://upload.wikimedia.org/wikipedia/en/6/6c/Wiki_letter_w.svg License: Cc-by-sa-3.0 Contributors: ?
Original artist: ?

10.3 Content license


Creative Commons Attribution-Share Alike 3.0

You might also like