NoSQL Fundamentals
NoSQL is a family of database approaches that store and query data using models such as documents, key-value pairs, wide columns, and graphs. You choose a model from the operations and relationships your application needs, not from the NoSQL label alone.
itDatabases and data storage | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: NoSQL Fundamentals
NoSQL is a family name for databases that put something other than relational tables and joins at the center of the design. That is the useful part of the label. The unhelpful part is that it sounds like one thing in a trench coat. It is not one query language, one consistency promise, or one excuse to stop thinking about data.
The problem is familiar. Some applications usually load one bounded order with its delivery address and line items. Others know a key and need a typed value. Some must serve known queries across distributed nodes. Others need to follow connections, such as a chain of permissions. A relational database remains a good answer for many systems. These other models exist when a different request shape is the one doing the heavy lifting.
Start with the access pattern, meaning a required read, write, or traversal. Then ask what its natural unit is. A document keeps named fields, nested objects, and arrays together. A key-value store makes direct lookup central. A wide-column design works from the query toward a partitioned table. A graph makes nodes and relationships first-class so paths can be the question instead of an accident.
The surprise is that a flexible schema has not escaped schema work. It has merely moved the paperwork to a different desk. You still need boundaries, ownership, duplication rules, indexes, partitions, and recovery. A partition key, the value that places data in a distributed system, deserves particular suspicion. Many possible values do not help if one value receives most of the traffic. Then a cluster has acquired many machines and one very busy problem.
NoSQL also does not come with a universal badge reading consistent, transactional, or safe to forget about backups. Products differ. Replication keeps copies, which is useful. It does not undo a replicated mistake, which is considerably less festive. Check what writes are atomic, when readers can see a write, how concurrent updates behave, and how restore is tested in the product you actually operate.
Read the Intro when you need the full comparison and the reasons each model fits. Use Slides for the compact decision flow. Keep the Cheatsheet nearby when turning a workload into model and partition questions. The Practice reference gives you a way to compare one workload across the four models, and the Exercise asks you to make the tradeoffs explicit. The Reference tab then takes you to product documentation, where the guarantees stop being family gossip and become engineering facts.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.mongodb.com/docs/manual/
Supports
- MongoDB documents as records with field-value pairs, nested documents, arrays, collections, transactions, replication, and sharding
- Document-model examples and product-specific guarantees in the introduction, slides, quiz, and reference path
- https://www.mongodb.com/docs/manual/data-modeling/
Supports
- Official MongoDB data-modeling guidance
- Document-boundary and flexible-schema discussion, data-contract guidance, quiz answer, and reference-path rationale
- https://cassandra.apache.org/doc/latest/cassandra/architecture/overview.html
Supports
- Cassandra as a distributed NoSQL database with a partitioned wide-column model and eventually consistent semantics
- Wide-column overview, product-specific guarantee warning, quiz answer, and architecture-link rationale
- https://cassandra.apache.org/doc/latest/cassandra/developing/data-modeling/intro.html
Supports
- Query-driven Cassandra data modeling, absent joins, denormalization, partition keys, and limiting partition reads
- Wide-column explanation, partition-key guidance, cheatsheet, slides, quiz answers, and reference-path rationale
- https://redis.io/docs/latest/develop/data-types/
Supports
- Redis as a data structure server with strings, hashes, lists, sets, sorted sets, streams, and other native data types
- Key-value explanation, Redis example in the video script, quiz answer, cheatsheet, and reference-path rationale
- https://neo4j.com/docs/getting-started/data-modeling/tutorial-data-modeling/
Supports
- Nodes as entities, relationships as connections, labels, properties, relationship types, and graph-model testing
- Graph explanation, slides, video script, quiz answer, and reference-path rationale
- https://github.com/numetriclabz/awesome-db
Supports
- Curated discovery of Aerospike, memcache, RocksDB, Cassandra, Neo4j, and other database projects
- Awesome Links selection and rationales
- https://research.google/pubs/the-google-file-system/
Supports
- The 2003 Google File System paper and its workload-driven distributed-storage design
- https://research.google/pubs/bigtable-a-distributed-storage-system-for-structured-data/
Supports
- The 2006 Bigtable paper, its distributed structured-data model, and its historical timeline event
- https://www.amazon.science/publications/dynamo-amazons-highly-available-key-value-store
Supports
- The 2007 Dynamo paper, its highly available key-value design, and its consistency tradeoff
- https://archive.apache.org/dist/cassandra/
Supports
- The archived 2009 Cassandra 0.3.0 release date used in the timeline
- https://cassandra.apache.org/_/index.html
Supports
- Cassandra project history and its 2010 Apache top-level-project milestone
- https://news.apache.org/foundation/entry/the_apache_software_foundation_announces9
Supports
- The January 2011 Apache Cassandra 0.7 announcement and its stated use for high query volumes
- https://aws.amazon.com/blogs/aws/amazon-dynamodb-internet-scale-data-storage-the-nosql-way/
Supports
- The January 2012 DynamoDB launch and managed-service framing in the timeline
- https://www.mongodb.com/blog/post/designing-mongodb-schemas-large-sql-migrations
Supports
- The 2023 migration guidance and the Field Note on discovering relationships, cardinality, access patterns, and index use
- https://discord.com/blog/how-discord-stores-trillions-of-messages?s=09
Supports
- Discord's Cassandra-to-ScyllaDB migration and the tombstone-heavy token ranges that delayed completion
- https://www.mongodb.com/legal/licensing/community-edition
Supports
- MongoDB licensing classification in the product landscape
- https://redis.io/legal/licenses/
Supports
- Redis licensing classification in the product landscape
- https://aws.amazon.com/dynamodb/pricing/
Supports
- DynamoDB pricing classification in the product landscape
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html
Supports
- DynamoDB key-value and document data models and service characteristics in the product landscape
- https://www.couchbase.com/
Supports
- Couchbase inclusion in the document-database product landscape
