In computing , NoSQL (sometimes expanded to “not just SQL”) is a broad class of database management systems that differ in some significant way from the classic Relational Database System (RDBMS) model. These data warehouses may not require fixed table layouts, generally avoiding merge operations, and generally horizontal scale. These structured databases are commonly referred to by academic researchers as storag, a term that includes classic relational databases as a subset.
[ hide ]
- 1 Story
- 2 Features
- 3 Advantages
- 4 Who uses NoSQL?
- 5 Systems
- 6 Sources
Originally the term NoSQL, which was coined in 1998 , referred to an open source relational database that did not use a SQL query language ( Structured Query Language ).
Until 2009 these five letters were forgotten, but it was Johan Oskarsson , then a Last.fm employee , who organized an event to deal with non-relational open source distributed databases, calling them “NOSQL”, Not-Only SQL.
The common characteristics among all non-relational distributed database implementations, proprietary or not, are usually the following:
- Eventual Consistency: Rigid consistency mechanisms such as those present in relational databases are not implemented, where the confirmation of a change implies a communication of it to all the nodes that replicate it. This flexibility means that consistency occurs, eventually, when the data has not been modified for a period of time. This is also known as BASE (Basically Available Soft-state Eventual Consistency), as opposed to [[[ACID]], its analogy in relational databases.
- Distributed structure: Data is generally distributed using distributed hash table mechanisms (DHT) since it really is, according to the different implementations, p2p networks.
- Horizontal scalability: The typical implementation is done on many nodes with limited processing capacity, instead of using large Mainframes.
- Fault toleranceand redundancy .
Among all the NoSQL database implementations, there are many that do not use the SQL query language (for example, MongoDB uses JSON ), but there are some that continue to use it, such as BigTable (GQL), which has transformed it while maintaining its basic structure.
The term NoSQL refers to a multitude of databases that try to overcome the limitations that the relational model finds in massive data storage environments, and specifically those that it has at the time of scaling, where it is necessary to have very powerful and load balancing.
- support small but frequent read / write transactions or large transaction stacks where write access is not common.
- Services designed with NoSQL support an intense volume of read / write operations.
- NoSQL offers very weak consistency guarantees such as eventual consistency or limited transactions to individual data elements.
- Some systems offer full ACID guarantees in some cases by adding additional middle integration layers, that is the case of CloudTPS
- It offers solutions to provide isolation to snapshotsof stored records, for example the Google Percolator that is based on BigTable and a transactional system for HBase developed at the [[University of Waterloo
- Avoid the extra burden of data management introduced by an additional middle layer of integration.
Who uses NoSQL?
These sites have successfully deployed NoSQL infrastructures
There are countless NoSQL systems available, some are of the Graph Database type, others are of the XML Database or Document Oriented Database type, among the most famous with free licenses are:
- Cassandraof the Apache Software Foundation , developed in Java and of the column-oriented type
- MongoDBfrom 10gen , developed in C ++ and type oriented documents
- CouchDBfrom the Apache Software Foundation , developed in Erlang and of the document-oriented type
- HBasefrom the Apache Software Foundation , developed in Java and type oriented columns