Curated list of resources and links about using NoSQL databases and things to look for when deciding to use one.
A basic definition of NoSQL databases can be found on Wikipedia as:
"A NoSQL (originally referring to 'non SQL' or 'non relational') database provides a mechanism for storage and retrieval of data which is modeled in means other than the tabular relations used in relational databases."
- Overview of NoSQL
- Data Structures and Modeling
- Trade-Offs in CAP/Brewer's Theorem
- Crowd-Sourced Information
- Graph Databases
- Criticisms and Debates
Overview of NoSQL
- Introduction To NoSQL - Martin Fowler (54:52) - Talk given at GOTO 2012 as a great introduction to NoSQL databases, the types of NoSQL databases, their history, pros and cons, and how and when to use them.
- NoSQL Distilled - Very digestable and affordable book describing the different NoSQL databases and help you make the decision on whether using a NoSQL database is appropriate for your project.
- Seven Databases in Song (1:43) - Fun song from 2012 about seven (six are NoSQL) databases with a very condensed overview of how they each work.
- NoSQL Databases: a Survey and Decision Guidance (2016) - "This NoSQL Toolbox allows us to derive a simple decision tree to help practitioners and researchers filter potential system candidates based on central application requirements".
- Data Management in the Cloud: Limitations and Opportunities (PDF) - Abadi (2009) discusses limitations and opportunities of data management and data analysis in the cloud.
- 10 NoSQL Misconceptions - Some misconceptions about NoSQL databases relating to topics such as what they are, ACID-compliance, and security.
- 10 Reasons Developers Love NoSQL - A list of ten arguments for why developers like to use NoSQL databases.
- Distribution, Data, Deployment: Software Architecture Convergence in Big Data Systems (PDF) - Gorton and Klein (2014) paper to discuss software engineering concerns when dealing with big data systems in terms of distribution, data, and deployment. Also accessible here.
- Use cases for NoSQL (2017) - Discussion on Stack Overflow on best use cases for using NoSQL databases over traditional SQL databases.
- Best Practices for NoSQL Database Design (2012) - A couple answers and links for NoSQL database design.
- Five Common Data Stores and When to Use Them (2019) - Article describes five common data stores (relational database, non-relational (“NoSQL”) database, key-value store, full-text search engine, message queue) and their attributes.
- NoSQL Databases (PDF) - A 149-page document outlining motives and rationale for NoSQL databases, and common concepts, techniques and patterns among these databases; last updated around 2011.
- NoSQL Data Architecture & Data Governance: Everything You Need to Know (2018) - Overview of different NoSQL database architectures with diagrams.
- NoSQL vs SQL: Demystifying NoSQL Databases (2019) - General overview and examples of NoSQL database schema types, while covering CAP theorem tradeoffs.
- Comparing Database Types: How Database Types Evolved to Meet Different Needs - Good overview of databases in general and how NoSQL database types differ and can be useful.
- The NoSQL Ecosystem - A chapter written by Adam Marcus from "The Architecture of Open Source Applications" book, this chapter is geared more towards systems architects needing to learn more in-depth understanding of how these systems are built.
- What is NoSQL - Amazon AWS - Great high-level overview of NoSQL databases and how they compare to SQL database technologies and terminologies. Serves as landing page for Amazon's AWS services for NoSQL options of key-value (Amazon DynamoDB), document (Amazon DocumentDB), graph (Amazon Neptune), in-memory (Amazon ElastiCache), and search-engine (Amazon Elasticsearch) database.
- SQL vs. NoSQL Databases: What's the Difference (2019) - Upwork - Explanation comparing SQL and NoSQL databases, along with giving some advice on what database solution is right for your use case.
Data Structures and Modeling
- Structure Your Database - Best practices (as of 2018) of structuring your data if your database uses JSON.
- NoSQL Data Modeling Techniques (2012) - This article provides a short comparison of NoSQL system families from the data modeling point of view and digests several common modeling techniques.
- Data Models for MongoDB - Data modeling help specific to MongoDB, ranging from schema validation and example patterns. However, concepts may carry over to other document NoSQL databases.
- Data Models Will Be Beautiful Again (2016) - Essay argues that despite existing schema-less databases, thoughtful database modeling is important to gain knowledge and insights using algorithms.
- Unified Data Modeling for Relational and NoSQL Databases - Solution for managing both NoSQL and relational databases using the Unified Data Modeling technique.
- Unifying Relational, Document, Graph, and Temporal Data Models - Patterns for querying across multiple paradigms in the same database.
- How to Design Schema for Your NoSQL Database? - Despite popular belief that NoSQL are schema-less, this article outlines how NoSQL databases follow "query driven design" and considerations for this flexibility in schema.
Trade-Offs in CAP/Brewer's Theorem
- Visual Guide to NoSQL Systems (2010) - Visual display of trade-offs in the CAP theorem among different NoSQL databases.
- How to Choose the Right NoSQL Database for Your Application? (2018) - Reviews CAP theorem and maps common NoSQL databases to CAP categories to help choose one.
- /r/nosql - Reddit page on NoSQL on general questions and discussions people may have about NoSQL databases.
- [nosql] tag on Stack Overflow
- Ask HN: Learning NoSQL, papers and books (2017) - "In your opinion, which papers and books are mandatory to really understand NoSQL subject?"
- Difference between scaling horizontally and vertically for databases - Common terms talked about in the database world and here are answers from others.
- NoSQL - Wikipedia - Wikipedia entry on all things NoSQL databases.
- Graph Databases Use Cases - Although documents geared towards Neo4j, concepts are applicable to all graph databases.
- How the ICIJ Used Neo4j to Unravel the Panama Papers - Mar Cabra (32:02) - Learn how graph databases were key to explore who were the main names connected to companies in tax havens, including 140 politicians in more than 50 countries.
- Graph Databases for Beginners: The Basics of Data Modeling - Discusses the basics of modeling your data and which approach you should take.
- Graph Data Modeling Guidelines - Directly related to Neo4j, but possibly applicable to any graph database.
- Graph Data Modeling Visualize Structure and Meaning - Brief introduction to graph data modeling and is an introduction to the book "Graph Data Modeling for NoSQL and SQL" by Thomas Frisendal.
Criticisms and Debates
- Addressing the NoSQL Criticism (2011) - Argues against nine criticisms to NoSQL databases as they apply to CouchDB, but may apply to others as well.
- Thank You for Your Help NoSQL, but We Got It from Here (2020) - Argument that NoSQL databases have pushed the evolution of databases given the problem of scaling, but now NewSQL has addressed those concerns (from the perspective of MemSQL).
- The Five Stages of NoSQL (2016) - Stages of going through picking and using a NoSQL database mirroring the five stages of grief.
- The Biggest Challenges of Moving to NoSQL (2017) - Speed and scalability and developer joy have been the gains found from enduring through challenges of moving to NoSQL.
- What is a NoSQL Database? Learn By Writing One In Python - Excellent tutorial in learning NoSQL vs RDBMS through building a toy database using Python.
- Dynamo vs Cassandra : Systems Design of NoSQL Databases - Blog post comparing and constrating system designs of two well known NoSQL databases.
- Why you should build your own NoSQL database - Brief overview of NoSQL databases and the spectrum of schema, along with a very basic implementation of a NoSQL database using the Crystal programming language.