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.
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.