1,703 captures
08 Sep 2009 - 26 Jan 2026
Mar APR May
25
2012 2013 2014
success
fail

About this capture

COLLECTED BY

Organization: Internet Archive

The Internet Archive discovers and captures web pages through many different web crawls. At any given time several distinct crawls are running, some for months, and some every day or longer. View the web archive through the Wayback Machine.

Collection: Wide Crawl started April 2013

Web wide crawl with initial seedlist and crawler configuration from April 2013.
TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20130425045912/http://en.wikipedia.org/wiki/NoSQL
 



NoSQL

 

From Wikipedia, the free encyclopedia
 

Jump to: navigation, search  

ANoSQL database provides a mechanism for storage and retrieval of data that use looser consistency models than traditional relational databases in order to achieve horizontal scaling and higher availability. Some authors refer to them as "Not only SQL" to emphasize that some NoSQL systems do allow SQL-like query language to be used.

NoSQL database systems are often highly optimized for retrieval and appending operations and often offer little functionality beyond record storage (e.g. key–value pairs stores). The reduced run-time flexibility compared to full SQL systems is compensated by marked gains in scalability and performance for certain data models.

In short, NoSQL database management systems are useful when working with a huge quantity of data (especially big data) when the data's nature does not require a relational model. The data can be structured, but NoSQL is used when what really matters is the ability to store and retrieve great quantities of data, not the relationships between the elements. Usage examples might be to store millions of key–value in one or a few associative arrays or to store millions of data records. This organization is particularly useful for statistical or real-time analysis of growing lists of elements (such as Twitter posts or the Internet server logs from a large group of users).

Other usages of this technology are related with the flexibility of the data model; a lot of applications might gain from this unstructured data model: tools like CRM, ERP, BPM, etc, could use this flexibility to store their data without performing changes on tables or creating generic columns in a database. These databases are also good to create prototypes or fast applications, because this flexibility provides a tool to develop new features very easy.

Contents

[edit] Characteristics

NoSQL cannot necessarily give full ACID guarantees. Usually only eventual consistency is guaranteed or transactions limited to single data items. This means that given a sufficiently long period of time over which no changes are sent, all updates can be expected to propagate eventually through the system.[citation needed]. Although most of the NoSQL systems have transactions over single documents, other NoSQL systems like eXtreme Scale [1], FoundationDB [2], OrientDB [3] or djondb [4] state that they are able to execute transactions over multiple documents, similar to what RDBMS systems supported over multiple rows.

NoSQL has a distributed, fault-tolerant architecture. Several NoSQL systems employ a distributed architecture, with the data held in a redundant manner on several servers. In this way, the system can easily scale out by adding more servers, and failure of a server can be tolerated. This type of database typically scales horizontally and is used for managing large amounts of data, when the performance and real-time nature is more important than consistency (as in indexing a large number of documents, serving pages on high-traffic web sites, and delivering streaming media).[citation needed]

[edit] History

Carlo Strozzi used the term NoSQL in 1998 to name his lightweight, open-source relational database that did not expose the standard SQL interface.[1] Strozzi suggests that, as the current NoSQL movement "departs from the relational model altogether; it should therefore have been called more appropriately 'NoREL'.[2]

Eric Evans, a Rackspace employee, reintroduced the term NoSQL in early 2009 when Johan Oskarsson of Last.fm wanted to organize an event to discuss open-source distributed databases.[3] The name attempted to label the emergence of a growing number of non-relational, distributed data stores that often did not attempt to provide atomicity, consistency, isolation and durability guarantees that are key attributes of classic relational database systems.[4]

In 2011, work began on UnQL (Unstructured Query Language), a specification for a query language for NoSQL databases. Like XQuery it is designed to query collections (versus tables) of documents (versus rows) with loosely defined fields (versus columns). UnQL is claimed[by whom?] to be a superset of SQL within which SQL is a very constrained type of UnQL for which the queries always return the same fields (same number, names and types). However, UnQL does not cover the data definition language (DDL) SQL statements like CREATE TABLEorCREATE INDEX.[5]

[edit] Taxonomy

Often, NoSQL databases are categorized according to the way they store the data and fall under categories such as key–value stores, BigTable implementations, document store databases, and graph databases. With the rise of the real-time web, there was a need to provide information out of large volumes of data which more or less followed similar horizontal structures. As such, NoSQL databases are often highly optimized for retrieve and append operations and often offer little functionality beyond record storage (e.g. key–value stores). The reduced run time flexibility compared to full SQL systems is compensated by large gains in scalability and performance for certain data models.[citation needed]

NoSQL implementations can be categorized by their manner of implementation:

[edit] Document store

The central concept of a document store is the notion of a "document". While each document-oriented database implementation differs on the details of this definition, in general, they all assume that documents encapsulate and encode data (or information) in some standard formats or encodings. Encodings in use include XML, YAML, and JSON as well as binary forms like BSON, PDF and Microsoft Office documents (MS Word, Excel, and so on).

Different implementations offer different ways of organizing and/or grouping documents:

Compared to relational databases, for example, collections could be considered as tables as well as documents could be considered as records. But they are different: every record in a table has the same sequence of fields, while documents in a collection may have fields that are completely different.

Documents are addressed in the database via a unique key that represents that document. One of the other defining characteristics of a document-oriented database is that, beyond the simple key-document (or key–value) lookup that you can use to retrieve a document, the database will offer an API or query language that will allow retrieval of documents based on their contents. Some NoSQL document stores offer an alternative way to retrieve information using Map-Reduce techniques, in CouchDB the usage of map-reduce is mandatory if you want to retrieve documents based on the contents, this is called "Views" and it's an indexed collection with the results of the map/reduce algorithms.

Name Language Notes
BaseX Java, XQuery XML database
Cloudant Erlang, Java, Scala, C JSON store
Clusterpoint C++ geared for Full text search
Couchbase Server Erlang, C++ Support for JSON and binary documents
Apache CouchDB Erlang JSON store
ElasticSearch Java Search Engine
eXist Java, XQuery XML database
Jackrabbit Java
Lotus Notes and IBM Lotus Domino LotusScript, Java, IBM X Pages, others MultiValue
MarkLogic Server XQuery, Java, REST XML database with support for JSON, text, and binaries
MongoDB C++, C# BSON store (binary format JSON)
OpenLink Virtuoso C++, C#, Java, SPARQL middleware and database engine hybrid
OrientDB Java
Sedna XQuery, C++ XML database
SimpleDB Erlang
Oracle NoSQL Database Java

[edit] Graph

This kind of database is designed for data whose relations are well represented as a graph (elements interconnected with an undetermined number of relations between them). The kind of data could be social relations, public transport links, road maps or network topologies, for example.

Name Language Notes
AllegroGraph SPARQL RDF GraphStore
IBM DB2 SPARQL RDF GraphStore added in DB2 10
DEX Java, C++, .NET High-performance Graph Database
FlockDB Scala
InfiniteGraph Java High-performance, scalable, distributed Graph Database
Neo4j Java
OpenLink Virtuoso C++, C#, Java, SPARQL middleware and database engine hybrid
OrientDB Java
Sones GraphDB C#
OWLIM Java, SPARQL 1.1 RDF graph store with reasoning

[edit] Key–value store

Key–value stores allow the application to store its data in a schema-less way. The data could be stored in a datatype of a programming language or an object. Because of this, there is no need for a fixed data model.[6][7] The following types exist:

[edit] Eventually‐consistent key‐value store

[edit] Hierarchical key–value store

[edit] Hosted services

[edit] Key–value cache in RAM

[edit] Key–value stores on solid state or rotating disk

[edit] Ordered key–value stores

[edit] Multivalue databases

[edit] Object database

[edit] RDF database

[edit] Tabular

[edit] Tuple store

[edit] See also

[edit] References

  1. ^ 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. p. 70. Retrieved 12 May 2011. "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. 2 October 2007. Retrieved 29 March 2010. 
  • ^ "NoSQL 2009". Blog.sym-link.com. 12 May 2009. Retrieved 29 March 2010. 
  • ^ Mike Chapple. "The ACID Model". 
  • ^ Avram, Abel (04 August 2011). "Interview: Richard Hipp on UnQL, a New Query Language for Document Databases". http://www.infoq.com. Retrieved 7 September 2011. 
  • ^ Sandy (14 January 2011). "Key Value stores and the NoSQL movement". http://dba.stackexchange.com/questions/607/what-is-a-key-value-store-database: Stackexchange. Retrieved 1 January 2012. "Key–value stores allow the application developer to store schema-less data. This data usually consists of a string that represents the key, and the actual data that is considered to be 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 marshaled by the programming language's bindings to the key–value store. This structure replaces the need for a fixed data model and allows proper formatting." 
  • ^ Marc Seeger (21 September 2009). "Key-Value Stores: a practical overview". http://blog.marc-seeger.de/2009/09/21/key-value-stores-a-practical-overview/: Marc Seeger. Retrieved 1 January 2012. "Key–value stores provide a high-performance alternative to relational database systems with respect to storing and accessing data. This paper provides a short overview of some of the currently available key–value stores and their interface to the Ruby programming language." 
  • ^ "Riak: An Open Source Scalable Data Store". 28 November 2010. Retrieved 28 November 2010. 
  • ^ 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 foundation for meeting Web-scale demands. Had they done so, they might have discovered two products, GT.M and Caché..." 
  • ^ JBoss Infinispan
  • [edit] Further reading

    [edit] External links


    Retrieved from "http://en.wikipedia.org/w/index.php?title=NoSQL&oldid=550490566" 

    Categories: 
    Database management systems
    Data management
    Distributed data stores
    NoSQL
    Hidden categories: 
    NPOV disputes from March 2013
    All NPOV disputes
    Wikipedia articles needing rewrite from May 2012
    Articles needing additional references from November 2012
    All articles needing additional references
    All articles with unsourced statements
    Articles with unsourced statements from November 2012
    Articles with specifically marked weasel-worded phrases from May 2012
    Articles to be merged from March 2011
    All articles to be merged
    Articles needing cleanup from March 2010
    All articles needing cleanup
    Cleanup tagged articles without a reason field from March 2010
    Wikipedia pages needing cleanup from March 2010
    Articles with unsourced statements from February 2012
    Use dmy dates from February 2012
     

    Navigation menu

     

    Personal tools



    Create account
    Log in
     



    Namespaces



    Article

    Talk
     


    Variants








    Views



    Read

    Edit

    View history
     


    Actions












    Navigation




    Main page

    Contents

    Featured content

    Current events

    Random article

    Donate to Wikipedia
     



    Interaction




    Help

    About Wikipedia

    Community portal

    Recent changes

    Contact Wikipedia
     



    Toolbox




    What links here

    Related changes

    Upload file

    Special pages

    Permanent link

    Page information

    Cite this page
     



    Print/export




    Create a book

    Download as PDF

    Printable version
     



    Languages




    Azərbaycanca

    Deutsch

    Español

    فارسی

    Français

    Italiano

    Latina

    Magyar



    Nederlands



    Português

    Русский

    Türkçe



    Edit links
     





    This page was last modified on 15 April 2013 at 15:56.

    Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. 
    Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
     


    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Mobile view
     


    Wikimedia Foundation
    Powered by MediaWiki