273 lines
14 KiB
HTML
273 lines
14 KiB
HTML
<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/Brewer’s 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 & 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 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.</li>
|
||
<li><a href="https://www.upwork.com/resources/nosql-vs-sql">NoSQL
|
||
vs. SQL: Important Differences & 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/Brewer’s
|
||
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>
|