NoSQL (originally referring to “non SQL”) is a new type of data management system, which, different from the conventional database systems, does not model its data using the relational tabular model. To provide a highly scalable and available data access service, NoSQL systems may adopt various data models (e.g., key-value, graph, and document) based on the applications that they are designed for. The flexibility of NoSQL’s data model makes it easier to scale to a large cluster. However, on the other hand, most NoSQL systems compromise the consistency for the scalability and availability (CAP theorem says we can only keep two features among consistency, availability, and partition tolerance). Many of them adopt the multi-version strategy and the eventual consistency model.
Applications can use the specific APIs (e.g., key based and vertex based) provided by the NoSQL system to access the data. Standard SQL is not supported, since most NoSQL systems are not designed to...
- 2.DeCandia G, Hastorun D, Jampani M, Kakulapati G, Lakshman A, Pilchin A, Sivasubramanian S, Vosshall P, Vogels W. Dynamo: Amazon’s highly available key-value store. In: Proceedings of the 21st ACM Symposium on Operating System Principles; 2007. p. 205–20.Google Scholar
- 3.Lakshman A, Malik P. Cassandra: structured storage system on a P2P network. In: Proceedings of the ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing; 2009. p. 5.Google Scholar
- 5.Corbett JC, Dean J, Epstein M, Fikes A, Frost C, Furman JJ, Ghemawat S, Gubarev A, Heiser C, Hochschild P, Hsieh WC, Kanthak S, Kogan E, Li H, Lloyd A, Melnik S, Mwaura D, Nagle D, Quinlan S, Rao R, Rolig L, Saito Y, Szymaniak M, Taylor C, Wang R, Woodford D. Spanner: Google’s globally distributed database. ACM Trans Comput Syst. 2013;31(3):8.CrossRefGoogle Scholar