A loose term for databases in the post-relational database model era of the modern internet, which favor performance and availability over consistency. Unlike a relational database, the NoSQL database has no schema. It is instead designed to quickly and simply store and retrieve data across a distributed system. It cannot be used to execute highly complex queries, or to implement transactions—which are of course the raison d'etre of the relational database.
At time of writing, NoSQL databases have four major types:
- The Key-value pair database
which are the most basic. Contents are basically like Windows .ini files:
although the value (right-side) entries can be binary (BLOBs or the like);
- Document stores
which have more structure to the data (like JSON, DOM, or XML) but none imposed by the database itself;
- Column store
which are superficially like relational database tables, but do not support joins and other complex operations;
which are used for modelling network relationships.
Performance is accomplished by eschewing the more complicated SQL-type queries (especially JOINs and so on) as well as schema and indices. Instead a simple lookup, like a hash function determines where to find particular data elements across distributed storage. Redundant data design via duplication and replication helps to provide availability. Other advantages are flexibility (because there are no defined schemas data elements can easily be added) and lower cost (versus an enterprise-grade Oracle database license, for example.)
Node your homework for BQ'16 239