NoSQL
lastmod 2024-12-01created 2014-12-037 edits
A NoSQL database provides a mechanism for storing and retrieving data that uses less constrained consistency models than traditional relational databases. Motivations for this approach include simplicity of design, horizontal scalability, and finer control. NoSQL databases are highly optimized key-value stores for simple retrieval and append operations, aiming for significant performance gains in terms of latency and throughput. NoSQL databases are widely used in commercial big data and real-time web applications. NoSQL systems are also called "Not only SQL" to emphasize that they may support SQL-like query languages.
Categories
- MongoDB
- FastoNoSQL - it is GUI platform for NoSQL databases
- Apache Cassandra
About
What is NoSQL? (NoSQL is also called "Not Only SQL".) It refers to data storage technologies other than the RDBMS-style relational databases we are used to. Since characteristics vary greatly from product to product, NoSQL cannot be defined as a single product family.
How NoSQL products differ from RDBMS
- No schema. That is, there are no data relationships or fixed specifications (table - column definitions).
- Since there are no relationship definitions, joins are impossible. (But something similar can be implemented with features such as references)
- Transactions are not supported.
- Easily provides distributed processing (horizontal scaling).
- Since most NoSQL DBs were created for distributed processing, they include distributed processing in their own frameworks.
- Transactions and JOIN were left out because they are hard to provide efficiently in distributed systems; this is a decision for an architecture that offers high scalability.
- Fast reads and writes (Case-by-Case)
It is hard to say which of the above are advantages or disadvantages, because the pros and cons depend on the use case, and NoSQL is not an alternative to RDBMS.
So why did NoSQL emerge?
With the arrival of the big data era, systems providing services needed to process large amounts of data efficiently.
- This called for distributed processing of data (sharding),
- fast writes, and data reliability (replication)
That is, it is a structure that distributes and stores data across multiple servers through a distributed architecture, and replicates data across them so that even when a particular server fails, there is no data loss or service interruption.
See also
Favorite site
- Wikipedia (en) explanation of NoSQL
- NoSQL is less useful than you think
- [Recommended] Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs Hypertable vs ElasticSearch vs Accumulo vs VoltDB vs Scalaris comparison :: Software architect Kristof Kovacs 1
References
-
NoSQL_comparison_-_Software_architect_Kristof_Kovacs.pdf ↩