Files
awesome-awesomeness/html/nosqlguides.html
2025-07-18 22:22:32 +02:00

273 lines
14 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-nosql-guides-awesome">Awesome NoSQL Guides <a
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
alt="Awesome" /></a></h1>
<blockquote>
<p>Curated list of resources and links about <em>using</em> NoSQL
databases and things to look for when deciding to use one.</p>
</blockquote>
<p>A basic definition of NoSQL databases can be found on Wikipedia
as:</p>
<blockquote>
<p>“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.”</p>
</blockquote>
<p>For actual NoSQL databases, you can go <a
href="https://github.com/sindresorhus/awesome#databases">here</a>, <a
href="https://hostingdata.co.uk/nosql-database/">here</a>, <a
href="https://db-engines.com/en/ranking">here</a>, <a
href="https://dbdb.io/">here</a>, <a
href="https://github.com/igorbarinov/awesome-data-engineering#databases">here</a>,
or <a href="https://github.com/kahun/awesome-sysadmin#nosql">here</a>.
Also, not to be confused with the relational database management system,
<a
href="http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/nosql/Home%20Page">NoSQL</a>.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#overview-of-nosql">Overview of NoSQL</a></li>
<li><a href="#data-structures-and-modeling">Data Structures and
Modeling</a></li>
<li><a href="#trade-offs-in-capbrewers-theorem">Trade-Offs in
CAP/Brewers Theorem</a></li>
<li><a href="#crowd-sourced-information">Crowd-Sourced
Information</a></li>
<li><a href="#graph-databases">Graph Databases</a></li>
<li><a href="#criticisms-and-debates">Criticisms and Debates</a></li>
<li><a href="#miscellaneous">Miscellaneous</a></li>
</ul>
<h2 id="overview-of-nosql">Overview of NoSQL</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=qI_g07C_Q5I">Introduction
To NoSQL - Martin Fowler (54:52)</a> - 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.</li>
<li><a href="https://martinfowler.com/books/nosql.html">NoSQL
Distilled</a> - 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.</li>
<li><a href="https://www.youtube.com/watch?v=jyx8iP5tfCI">Seven
Databases in Song (1:43)</a> - Fun song from 2012 about seven (six are
NoSQL) databases with a very condensed overview of how they each
work.</li>
<li><a
href="https://medium.baqend.com/nosql-databases-a-survey-and-decision-guidance-ea7823a822d">NoSQL
Databases: a Survey and Decision Guidance (2016)</a> - “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”.</li>
<li><a
href="http://www.cs.umd.edu/~abadi/papers/abadi-cloud-ieee09.pdf">Data
Management in the Cloud: Limitations and Opportunities (PDF)</a> - Abadi
(2009) discusses limitations and opportunities of data management and
data analysis in the cloud.</li>
<li><a
href="https://web.archive.org/web/20210701080816/https://www.dummies.com/programming/big-data/10-nosql-misconceptions/">10
NoSQL Misconceptions</a> - Some misconceptions about NoSQL databases
relating to topics such as what they are, ACID-compliance, and
security.</li>
<li><a
href="https://web.archive.org/web/20210701080841/https://www.dummies.com/programming/big-data/10-reasons-developers-love-nosql/">10
Reasons Developers Love NoSQL</a> - A list of ten arguments for why
developers like to use NoSQL databases.</li>
<li><a
href="https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=90909">Distribution,
Data, Deployment: Software Architecture Convergence in Big Data Systems
(PDF)</a> - 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 <a
href="https://doi.org/10.1109/MS.2014.51">here</a>.</li>
<li><a
href="https://stackoverflow.com/questions/2875432/use-cases-for-nosql">Use
cases for NoSQL (2017)</a> - Discussion on Stack Overflow on best use
cases for using NoSQL databases over traditional SQL databases.</li>
<li><a
href="https://shopify.engineering/five-common-data-stores-usage">Five
Common Data Stores and When to Use Them (2019)</a> - Article describes
five common data stores (relational database, non-relational (“NoSQL”)
database, key-value store, full-text search engine, message queue) and
their attributes.</li>
<li><a
href="https://web.archive.org/web/20190927222738/https://www.christof-strauch.de/nosqldbs.pdf">NoSQL
Databases (PDF)</a> - A 149-page document outlining motives and
rationale for NoSQL databases, and common concepts, techniques and
patterns among these databases; last updated around 2011.</li>
<li><a
href="https://www.dataversity.net/nosql-data-architecture-data-governance-everything-need-know/">NoSQL
Data Architecture &amp; Data Governance: Everything You Need to Know
(2018)</a> - Overview of different NoSQL database architectures with
diagrams.</li>
<li><a
href="https://build5nines.com/nosql-vs-sql-demystifying-nosql-databases/">NoSQL
vs SQL: Demystifying NoSQL Databases (2019)</a> - General overview and
examples of NoSQL database schema types, while covering CAP theorem
tradeoffs.</li>
<li><a
href="https://www.prisma.io/dataguide/intro/comparing-database-types">Comparing
Database Types: How Database Types Evolved to Meet Different Needs</a> -
Good overview of databases in general and how NoSQL database types
differ and can be useful.</li>
<li><a href="https://www.aosabook.org/en/nosql.html">The NoSQL
Ecosystem</a> - 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.</li>
<li><a href="https://aws.amazon.com/nosql/">What is NoSQL - Amazon
AWS</a> - Great high-level overview of NoSQL databases and how they
compare to SQL database technologies and terminologies. Serves as
landing page for Amazons 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.</li>
<li><a href="https://www.upwork.com/resources/nosql-vs-sql">NoSQL
vs. SQL: Important Differences &amp; Which One Is Best for Your Project
(2021) - Upwork</a> - Explanation comparing SQL and NoSQL databases,
along with giving some advice on what database solution is right for
your use case.</li>
<li><a href="https://www.youtube.com/watch?v=xh4gy1lbL2k">NoSQL Database
Tutorial Full Course for Beginners (2:54:52)</a> - Ania Kubow reviews
the four types of NoSQL databases and provides two hands-on projects to
experiment with what was reviewed.</li>
</ul>
<h2 id="data-structures-and-modeling">Data Structures and Modeling</h2>
<ul>
<li><a
href="https://firebase.google.com/docs/database/android/structure-data">Structure
Your Database</a> - Best practices (as of 2018) of structuring your data
if your database uses JSON.</li>
<li><a
href="https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/">NoSQL
Data Modeling Techniques (2012)</a> - This article provides a short
comparison of NoSQL system families from the data modeling point of view
and digests several common modeling techniques.</li>
<li><a href="https://www.mongodb.com/docs/manual/data-modeling/">Data
Models For MongoDB</a> - Data modeling help specific to MongoDB, ranging
from schema validation and example patterns. However, concepts may carry
over to other document NoSQL databases.</li>
<li><a
href="https://tdwi.org/articles/2016/11/22/data-models-will-be-beautiful-again.aspx">Data
Models Will Be Beautiful Again (2016)</a> - Essay argues that despite
existing schema-less databases, thoughtful database modeling is
important to gain knowledge and insights using algorithms.</li>
<li><a
href="https://www.infoq.com/articles/unified-data-modeling-for-relational-and-nosql-databases/">Unified
Data Modeling for Relational and NoSQL Databases</a> - Solution for
managing both NoSQL and relational databases using the Unified Data
Modeling technique.</li>
<li><a
href="https://fauna.com/blog/unifying-relational-document-graph-and-temporal-data-models">Unifying
Relational, Document, Graph, and Temporal Data Models</a> - Patterns for
querying across multiple paradigms in the same database.</li>
<li><a
href="https://www.dataversity.net/how-to-design-schema-for-your-nosql-database/#">How
To Design Schema For Your NoSQL Database?</a> - 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.</li>
<li><a
href="https://softwareengineering.stackexchange.com/q/158790/">Best
Practices for NoSQL Database Design (2012)</a> - A couple answers and
links for NoSQL database design.</li>
</ul>
<h2 id="trade-offs-in-capbrewers-theorem">Trade-Offs in CAP/Brewers
Theorem</h2>
<ul>
<li><a
href="http://blog.nahurst.com/visual-guide-to-nosql-systems">Visual
Guide To NoSQL Systems (2010)</a> - Visual display of trade-offs in the
CAP theorem among different NoSQL databases.</li>
<li><a
href="https://www.dataversity.net/choose-right-nosql-database-application/">How
to Choose The Right NoSQL Database For Your Application? (2018)</a> -
Reviews CAP theorem and maps common NoSQL databases to CAP categories to
help choose one.</li>
</ul>
<h2 id="crowd-sourced-information">Crowd-Sourced Information</h2>
<ul>
<li><a href="https://www.reddit.com/r/nosql/">/r/nosql</a> - Reddit page
on NoSQL on general questions and discussions people may have about
NoSQL databases.</li>
<li><a href="https://stackoverflow.com/tags/nosql/info">[nosql] Tag On
Stack Overflow</a></li>
<li><a href="https://news.ycombinator.com/item?id=15427932">Ask HN:
Learning NoSQL, Papers and Books (2017)</a> - “In your opinion, which
papers and books are mandatory to really understand NoSQL subject?”</li>
<li><a href="https://stackoverflow.com/q/11707879/6873133">Difference
Between Scaling Horizontally And Vertically For Databases</a> - Common
terms talked about in the database world and here are answers from
others.</li>
<li><a href="https://en.wikipedia.org/wiki/NoSQL">NoSQL - Wikipedia</a>
- Wikipedia entry on all things NoSQL databases.</li>
</ul>
<h2 id="graph-databases">Graph Databases</h2>
<ul>
<li><a href="https://neo4j.com/use-cases/">Graph Databases Use Cases</a>
- Although documents geared towards Neo4j, concepts are applicable to
all graph databases.</li>
<li><a href="https://www.youtube.com/watch?v=S20XMQyvANY">How The ICIJ
Used Neo4j To Unravel The Panama Papers - Mar Cabra (32:02)</a> - 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.</li>
<li><a href="https://neo4j.com/blog/data-modeling-basics/">Graph
Databases For Beginners: The Basics Of Data Modeling</a> - Discusses the
basics of modeling your data and which approach you should take.</li>
<li><a href="https://neo4j.com/developer/guide-data-modeling/">Graph
Data Modeling Guidelines</a> - Directly related to Neo4j, but possibly
applicable to any graph database.</li>
<li><a href="http://www.graphdatamodeling.com">Graph Data Modeling
Visualize Structure and Meaning</a> - Brief introduction to graph data
modeling and is an introduction to the book “Graph Data Modeling for
NoSQL and SQL” by Thomas Frisendal.</li>
</ul>
<h2 id="criticisms-and-debates">Criticisms and Debates</h2>
<ul>
<li><a
href="https://www.bradley-holt.com/2011/07/addressing-the-nosql-criticism/">Addressing
the NoSQL Criticism (2011)</a> - Argues against nine criticisms to NoSQL
databases as they apply to CouchDB, but may apply to others as
well.</li>
<li><a
href="https://web.archive.org/web/20200913032621/https://www.memsql.com/blog/why-nosql-databases-wrong-tool-for-modern-application/">Thank
You For Your Help NoSQL, But We Got It From Here (2020)</a> - 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).</li>
<li><a
href="https://sookocheff.com/post/opinion/the-five-stages-of-nosql/">The
Five Stages Of NoSQL (2016)</a> - Stages of going through picking and
using a NoSQL database mirroring the five stages of grief.</li>
<li><a
href="https://dzone.com/articles/the-biggest-challenges-of-moving-to-nosql">The
Biggest Challenges Of Moving To NoSQL (2017)</a> - Speed and scalability
and developer joy have been the gains found from enduring through
challenges of moving to NoSQL.</li>
</ul>
<h2 id="miscellaneous">Miscellaneous</h2>
<ul>
<li><a
href="https://web.archive.org/web/20201109032031/https://jeffknupp.com/blog/2014/09/01/what-is-a-nosql-database-learn-by-writing-one-in-python/">What
As A NoSQL Database? Learn By Writing One In Python</a> - Excellent
tutorial in learning NoSQL vs RDBMS through building a toy database
using Python.</li>
<li><a
href="https://sujithjay.com/data-systems/dynamo-cassandra/">Dynamo Vs
Cassandra : Systems Design Of NoSQL Databases</a> - Blog post comparing
and constrating system designs of two well known NoSQL databases.</li>
<li><a
href="https://medium.com/@marceloboeira/why-you-should-build-your-own-nosql-database-9bbba42039f5">Why
You Should Build Your Wwn NoSQL Database</a> - 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.</li>
<li><a
href="https://www.linuxjournal.com/content/postgresql-nosql-database">PostgreSQL,
The NoSQL Database (2015)</a> - An argument for PostgreSQL being an
alternative to NoSQL databases with NoSQL-like features using its new
features like HStore (key-value store) and JSONB (document-based) as of
Version 9.4.</li>
</ul>
<p><a
href="https://github.com/erictleung/awesome-nosql-guides">nosqlguides.md
Github</a></p>