3/21/2021
A brief introduction to NoSQL | Fas Mosleh
FAS
MOSLEH
A BRIEF INTRODUCTION TO NOSQL
A Brief Intro to NoSQL Page 2
Contents
Introduction:.................................................................................................................................................3
What is NoSQL?.........................................................................................................................................3
What about SQL? ......................................................................................................................................4
A review of RDBMS...................................................................................................................................4
Examples of relational databases: ............................................................................................................5
Simplicity is a driver of SQL vs. NoSQL......................................................................................................5
Different types of NoSQL Databases.........................................................................................................6
Document..............................................................................................................................................6
Key-value...............................................................................................................................................6
Wide-column or columnar....................................................................................................................6
Graph ....................................................................................................................................................7
Object-oriented.....................................................................................................................................7
The users of NoSQL...................................................................................................................................7
Who Uses NoSQL Databases?...............................................................................................................7
The Advantages of NoSQL Databases.......................................................................................................8
Being “Agile” and the need for Flexibility and Speed...............................................................................8
Performance and cost reduction was a driver of NoSQL..........................................................................8
Can they store relational information well?.........................................................................................8
Transactional Use Cases vs. Analytical Use Cases...................................................................................11
Source:Stichdata .....................................................................................................................................11
Analytical Needs..................................................................................................................................12
The Top NoSQL Databases......................................................................................................................12
Enterprise requirements of a data warehouse .......................................................................................13
The emerging Transactional NoSQL movement .....................................................................................13
A Brief Intro to NoSQL Page 3
Introduction:
What is NoSQL?
NoSQL refers to any database that is not using SQL or the commonly found relational model
that arranges data discretely into tables comprising columns and rows.
Common examples of NoSQL databases are the key-value store, document databases, column-
oriented databases, and graph databases.
Typical properties of NoSQL DB’s:
 NoSQL is commonly associated with more flexible deployment and structure as well as
faster read and write performance.
 NoSQL databases are rarely ACID1
compliant, and may or may not offer query languages
to pull and manipulate data. NoSQL is increasingly used to support big data level
analytics.
 NoSQL databases allow developers to store huge amounts of unstructured data, giving
them a lot of flexibility.
 They are also used for scaling to very large data sets.
1
Atomicity Consistency Isolation Durability - The presence of these four can ensure that a database transaction is completed in a timely
manner. When databases possess these components, they are said to be ACID-compliant.
A Brief Intro to NoSQL Page 4
What about SQL?
Almost all relational databases use a form of SQL as their query language, and most of them
adhere to the ACID set of properties to ensure reliable transactions: atomicity, consistency,
isolation, and durability2
.
Relational databases store and manage data in a traditional table format, with each piece of data
organized into a row and a column.
Columns hold the data of a single type or field, like first name, order number, or the image link
of a product logo. Rows create the relationship between these data points.
For example, rows can associate a first name to a last name and then to a user name, email
address, and customer ID. Businesses use relational databases to maintain the data from their
applications and ensure they always have access to critical customer information, product data,
social data, and financial particulars like purchases, fulfillment, revenue, and expenses.
A review of RDBMS
Relational databases are also called relational database management systems (RDBMS) or
structured query language (SQL) databases. An RDBMS is based on SQL that allows users to
update, query, and administer a relational database.
SQL is typically the standard programming language used to access a relational database.
Relational databases software can read SQL and use SQL syntax. SQL’s syntax is very simple,
and as such, it is one of the simplest programming languages in the industry and is used to easily
access and query relational databases; users can search for a range of interconnected data with
ease.
Relational databases software facilitates the creation, maintenance, and usage of these tables.
RDBMS solutions store large volumes of data and allow access to structured data sets efficiently
and flexibly.
2
This set of properties has been the defining feature of relational databases which, simply put, ensures that all
transactions are accurate, up-to-date, and reliable.
A Brief Intro to NoSQL Page 5
Examples of relational databases:
Microsoft SQL
Oracle Database
IBM DB2
MySQL (Open source )
Amazon RDS (Relational Database Service)
Amazon Aurora (MySQL and PostgreSQL-compatible open source DB).
PostgreSQL (Open source object-relational DB)
SAP HANA (Converges transactions and analytics on one in-memory platform, running on
premise or in the cloud)
IBM Informix
MariaDB (Open source DB with full ACID)
SQLite (Self-contained, serverless, zero-configuration, transactional SQL database engine)
Teradata Vantage
Azure SQL (Relational database-as-a service using the Microsoft SQL Server Engine.)
Oracle TimesTen (Runs in the application tier and stores all data in main memory.)
Simplicity is a driver of SQL vs. NoSQL
Relational DB systems can range from desktop applications that create a small database on your
laptop or phone to large enterprise-grade data stores running on your premises or in the cloud.
Relational databases are usually chosen due to their simplicity in comparison to NoSQL
databases, such as object-oriented databases, document databases, and graph databases.
A Brief Intro to NoSQL Page 6
Different types of NoSQL Databases
NoSQL comprises multiple types of databases, each designed for a different use case or data
type. The main types are document, key-value, wide-column, object-oriented and graph.
For example a document database stores long-form web content (web pages, documents). They
provide flexible schemas and scale easily with large amounts of data and high user loads.
Document
Document databases store related data together in documents, a semi-structured schema that
maintains a level of reportability by keeping associated metadata within the data itself.
Document databases house data together that are relevant to each other, and don’t require a
standard schema across documents. Additionally, these documents can reference other
documents, giving the document an element of structured depth. Document databases are useful
for data that are strongly related but non-standard across tuples3
.
Key-value
If all you need is to render a value that can be easily found by its key, then a key-value store is
the quickest and most scalable approach. The drawback is a much more limited querying ability,
so it doesn’t work well for analytic data. That said, rendering a user’s email address based on the
username or caching web data is a simple and fast solution in a key-value store.
Key-value stores save data as discrete couplets of name and value associated together with a key.
No key necessarily needs the same structure, so data is simply accumulated instead of sorted into
tables.
Wide-column or columnar
Column-oriented databases are key-value stores that impose more structure on their data. Key-
value pairs (or columns) are associated together into families and tables. Unlike a relational
database, the data within the tables and families are not consistent but the overlying structure
allows greater potential for associating data together in hierarchies.
3
A tuple is one of 4 built-in data types in Python used to store collections of data, the other 3 are List, Set, and Dictionary, all with different
qualities and usage. Tuples are used to store multiple items in a single variable. A tuple is a collection which is ordered and unchangeable.
A Brief Intro to NoSQL Page 7
Graph
The first challenge for selecting a database is finding the best structure for the data you’ll be
storing. Sometimes there is a natural fit—for example, airline flight information fits very well in
a graph database as this mimics real-life patterns—while long-form web content can usually slot
into document databases easily (hence the name).
Graph databases utilize topographical schemas to map data as if it were a physical structure of
nodes and edges. Usually a node represents a particular record with associated data, and edges
represent relationships between nodes (along with whatever data particular to the relationship).
When much of your data consists of relationships between data points, graph databases are a
good choice. Graph databases break data down into nodes and relationships, storing properties
on each. Because any node can have unlimited relationships with other nodes with a trivial effect
on performance, these are optimal for relationship-oriented data such as social networks.
Object-oriented
Object-oriented databases help organize data models and are typically used when needing to
structure large, complex data sets. These tools utilize query languages to retrieve information and
create tables to be set with information.
The users of NoSQL
Who Uses NoSQL Databases?
Data scientists – Relational databases are the more traditional storage option, where all data is
filed in rows and columns. With the ever growing complexity of data, many data scientists now
prefer NoSQL databases, which allow for greater flexibility because they do not force the user to
the row-and-column format.
Those that need to collect extra large data sets in real time should look into big data processing
and distribution systems. These tools are built to scale for businesses that are constantly
collecting enormous amounts of data. Pulling data sets may be more challenging with big data
processing and distribution systems, but the insights received may be more valuable due to the
granularity of the data.
Database administrators – Non-relational, or NoSQL, databases have recently grown in
popularity because they are easier to implement, have greater flexibility, and tend to have faster
data retrieval times. They are cheaper and easier to scale, but don’t have the same levels of
standardization and reporting tools.
A Brief Intro to NoSQL Page 8
Non-native databases are the most common, but allow users outside the company to insert and
retrieve data. Some people believe this enhances data by providing increased, more human
knowledge. These tools typically serve niche purposes for specific applications.
The Advantages of NoSQL Databases
 Create a flexible and dynamic data model to store and access data rapidly and flexibly
 Handle large volumes of data at high speed with a scale-out architecture.
 Scale database operations without overhauling data schema or strategy and lower
performance; Enable easy updates to schemas and fields.
 Store unstructured, semi-structured, or structured data.
 Optimize IT infrastructure resources by the more efficient use of storage resources
 Achieve big data levels of information storage particularly for non-structured data
 Support business applications with higher availability
 Be more developer-friendly
 Take advantage of the cloud to deliver zero downtime
Being “Agile” and the need for Flexibility and Speed
In the 2000’s, with the ascent of the Agile methodology, programmers recognized the need to
rapidly adapt to changing requirements. They needed the ability to iterate quickly and make
changes throughout the software stack, from presentation and logic all the way to the database
model. NoSQL databases gave them this flexibility.
Performance and cost reduction was a driver of NoSQL
The name "NoSQL" was coined in the early 21st century, though NoSQL databases were around
even in the 1960’s. The growing needs of Web 2.0 companies included the need to handle sub
second response times from huge numbers of users and improving developer productivity to
reduce development costs; this drove the development and usage of NoSQL DBs.
In the mid 2000s, the cost of storage started decreasing dramatically and the need to reduce data
duplication, to keep storage costs down, by using a complex, difficult-to-manage data model
simply became less necessary. NoSQL databases emerged to control the rising costs of
developers and tend to the ever increasing need to handle vast amounts of users simultaneously
accessing data and expecting sub second response times. SQL alone, could not always cope with
the crushing scale of 10’s of millions of demanding users, as applications became more global.
A NoSQL database simply provides a mechanism for storage and retrieval of data that is modeled in a
manner different from the simple tabular relations used in relational databases.
Can they store relational information well?
A Brief Intro to NoSQL Page 9
Many believe that NoSQL databases or non-relational databases don’t store relationship data well. But
this is not correct, because NoSQL databases just store relationship data differently than relational
databases do. When compared with SQL databases, many find modeling relationship data in NoSQL
databases to be easier than in SQL databases, because related data doesn’t have to be split between tables.
NoSQL data models allow related data to be nested within a single data structure.
A Brief Intro to NoSQL Page 10
Source: Guru99
“Different databases are designed to solve different problems. Using a single database engine for all
of the requirements usually leads to non- performant solutions; storing transactional data, caching
session information, traversing graph of customers and the products their friends bought are
essentially different problems.”
― Pramod J. Sadalage, NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence
A Brief Intro to NoSQL Page 11
Source: Apptunix
Transactional Use Cases vs. Analytical Use Cases
Source:Stichdata
A Brief Intro to NoSQL Page 12
Analytical Needs
Data warehouse technology has advanced significantly in the past few years. An entire category called
analytic databases has arisen to specifically address the needs of organizations who want to build very
high-performance data warehouses. Analytic databases are purpose-built to analyze extremely large
volumes of data very quickly and often perform 100-1,000 times faster than transactional databases in
these tasks.
The Top NoSQL Databases
Source: MongoDB
A Brief Intro to NoSQL Page 13
Enterprise requirements of a data warehouse
1. Performance. The data warehouse needs to able to ingest data and analyze enormous
quantities of data extremely quickly.
2. Scalability. As you grow, more data will be piped in and more users will need to run
analyses. The data warehouse must be able to keep pace with your growth.
3. Compatibility. SQL is the most widely-used query interface with a massive ecosystem
of both users and tools. SQL compatibility should be considered a top priority for any
data warehouse technology.
4. Analytic functionality. Analysts often need to perform more complicated calculations
than are supported in traditional SQL syntax, including regressions and predictive
analytics.
The emerging Transactional NoSQL movement
The NoSQL database revolution started with the publication of the Google BigTable and
Amazon Dynamo papers in 2006 and 2007. These original designs focused on horizontal write
scalability producing better performance than SQL databases. However, they compromised the
ACID properties, lacking consistency and durability. Therefore, NoSQL became synonymous
with “Non-Relational” and “Non-Transactional”.
Failures in consistency could lead to a value that was either never committed in the database or
was completely out of order. Given these fundamental limitations, developers continued to use
monolithic SQL databases for business-critical workloads and NoSQL was relegated to less
business-critical workloads.
However, big changes happened in the NoSQL world from 2018 to 2020. For instance, multiple
old and new NoSQL databases alike, embraced one or more flavors of ACID transactions.
Examples are:
Amazon DynamoDB
https://aws.amazon.com/about-aws/whats-new/2018/11/announcing-amazon-dynamodb-support-for-
transactions/
Microsoft Azure Cosmos DB
(Azure Cosmos DB supports full ACID compliant transactions with snapshot isolation for operations
within the same logical partition key)
https://devblogs.microsoft.com/cosmosdb/introducing-transactionalbatch-in-the-net-sdk/
MongoDB (MongoDB is ACID-compilant at the document level.)
A Brief Intro to NoSQL Page 14

Brief introduction to NoSQL by fas mosleh

  • 1.
    3/21/2021 A brief introductionto NoSQL | Fas Mosleh FAS MOSLEH A BRIEF INTRODUCTION TO NOSQL
  • 2.
    A Brief Introto NoSQL Page 2 Contents Introduction:.................................................................................................................................................3 What is NoSQL?.........................................................................................................................................3 What about SQL? ......................................................................................................................................4 A review of RDBMS...................................................................................................................................4 Examples of relational databases: ............................................................................................................5 Simplicity is a driver of SQL vs. NoSQL......................................................................................................5 Different types of NoSQL Databases.........................................................................................................6 Document..............................................................................................................................................6 Key-value...............................................................................................................................................6 Wide-column or columnar....................................................................................................................6 Graph ....................................................................................................................................................7 Object-oriented.....................................................................................................................................7 The users of NoSQL...................................................................................................................................7 Who Uses NoSQL Databases?...............................................................................................................7 The Advantages of NoSQL Databases.......................................................................................................8 Being “Agile” and the need for Flexibility and Speed...............................................................................8 Performance and cost reduction was a driver of NoSQL..........................................................................8 Can they store relational information well?.........................................................................................8 Transactional Use Cases vs. Analytical Use Cases...................................................................................11 Source:Stichdata .....................................................................................................................................11 Analytical Needs..................................................................................................................................12 The Top NoSQL Databases......................................................................................................................12 Enterprise requirements of a data warehouse .......................................................................................13 The emerging Transactional NoSQL movement .....................................................................................13
  • 3.
    A Brief Introto NoSQL Page 3 Introduction: What is NoSQL? NoSQL refers to any database that is not using SQL or the commonly found relational model that arranges data discretely into tables comprising columns and rows. Common examples of NoSQL databases are the key-value store, document databases, column- oriented databases, and graph databases. Typical properties of NoSQL DB’s:  NoSQL is commonly associated with more flexible deployment and structure as well as faster read and write performance.  NoSQL databases are rarely ACID1 compliant, and may or may not offer query languages to pull and manipulate data. NoSQL is increasingly used to support big data level analytics.  NoSQL databases allow developers to store huge amounts of unstructured data, giving them a lot of flexibility.  They are also used for scaling to very large data sets. 1 Atomicity Consistency Isolation Durability - The presence of these four can ensure that a database transaction is completed in a timely manner. When databases possess these components, they are said to be ACID-compliant.
  • 4.
    A Brief Introto NoSQL Page 4 What about SQL? Almost all relational databases use a form of SQL as their query language, and most of them adhere to the ACID set of properties to ensure reliable transactions: atomicity, consistency, isolation, and durability2 . Relational databases store and manage data in a traditional table format, with each piece of data organized into a row and a column. Columns hold the data of a single type or field, like first name, order number, or the image link of a product logo. Rows create the relationship between these data points. For example, rows can associate a first name to a last name and then to a user name, email address, and customer ID. Businesses use relational databases to maintain the data from their applications and ensure they always have access to critical customer information, product data, social data, and financial particulars like purchases, fulfillment, revenue, and expenses. A review of RDBMS Relational databases are also called relational database management systems (RDBMS) or structured query language (SQL) databases. An RDBMS is based on SQL that allows users to update, query, and administer a relational database. SQL is typically the standard programming language used to access a relational database. Relational databases software can read SQL and use SQL syntax. SQL’s syntax is very simple, and as such, it is one of the simplest programming languages in the industry and is used to easily access and query relational databases; users can search for a range of interconnected data with ease. Relational databases software facilitates the creation, maintenance, and usage of these tables. RDBMS solutions store large volumes of data and allow access to structured data sets efficiently and flexibly. 2 This set of properties has been the defining feature of relational databases which, simply put, ensures that all transactions are accurate, up-to-date, and reliable.
  • 5.
    A Brief Introto NoSQL Page 5 Examples of relational databases: Microsoft SQL Oracle Database IBM DB2 MySQL (Open source ) Amazon RDS (Relational Database Service) Amazon Aurora (MySQL and PostgreSQL-compatible open source DB). PostgreSQL (Open source object-relational DB) SAP HANA (Converges transactions and analytics on one in-memory platform, running on premise or in the cloud) IBM Informix MariaDB (Open source DB with full ACID) SQLite (Self-contained, serverless, zero-configuration, transactional SQL database engine) Teradata Vantage Azure SQL (Relational database-as-a service using the Microsoft SQL Server Engine.) Oracle TimesTen (Runs in the application tier and stores all data in main memory.) Simplicity is a driver of SQL vs. NoSQL Relational DB systems can range from desktop applications that create a small database on your laptop or phone to large enterprise-grade data stores running on your premises or in the cloud. Relational databases are usually chosen due to their simplicity in comparison to NoSQL databases, such as object-oriented databases, document databases, and graph databases.
  • 6.
    A Brief Introto NoSQL Page 6 Different types of NoSQL Databases NoSQL comprises multiple types of databases, each designed for a different use case or data type. The main types are document, key-value, wide-column, object-oriented and graph. For example a document database stores long-form web content (web pages, documents). They provide flexible schemas and scale easily with large amounts of data and high user loads. Document Document databases store related data together in documents, a semi-structured schema that maintains a level of reportability by keeping associated metadata within the data itself. Document databases house data together that are relevant to each other, and don’t require a standard schema across documents. Additionally, these documents can reference other documents, giving the document an element of structured depth. Document databases are useful for data that are strongly related but non-standard across tuples3 . Key-value If all you need is to render a value that can be easily found by its key, then a key-value store is the quickest and most scalable approach. The drawback is a much more limited querying ability, so it doesn’t work well for analytic data. That said, rendering a user’s email address based on the username or caching web data is a simple and fast solution in a key-value store. Key-value stores save data as discrete couplets of name and value associated together with a key. No key necessarily needs the same structure, so data is simply accumulated instead of sorted into tables. Wide-column or columnar Column-oriented databases are key-value stores that impose more structure on their data. Key- value pairs (or columns) are associated together into families and tables. Unlike a relational database, the data within the tables and families are not consistent but the overlying structure allows greater potential for associating data together in hierarchies. 3 A tuple is one of 4 built-in data types in Python used to store collections of data, the other 3 are List, Set, and Dictionary, all with different qualities and usage. Tuples are used to store multiple items in a single variable. A tuple is a collection which is ordered and unchangeable.
  • 7.
    A Brief Introto NoSQL Page 7 Graph The first challenge for selecting a database is finding the best structure for the data you’ll be storing. Sometimes there is a natural fit—for example, airline flight information fits very well in a graph database as this mimics real-life patterns—while long-form web content can usually slot into document databases easily (hence the name). Graph databases utilize topographical schemas to map data as if it were a physical structure of nodes and edges. Usually a node represents a particular record with associated data, and edges represent relationships between nodes (along with whatever data particular to the relationship). When much of your data consists of relationships between data points, graph databases are a good choice. Graph databases break data down into nodes and relationships, storing properties on each. Because any node can have unlimited relationships with other nodes with a trivial effect on performance, these are optimal for relationship-oriented data such as social networks. Object-oriented Object-oriented databases help organize data models and are typically used when needing to structure large, complex data sets. These tools utilize query languages to retrieve information and create tables to be set with information. The users of NoSQL Who Uses NoSQL Databases? Data scientists – Relational databases are the more traditional storage option, where all data is filed in rows and columns. With the ever growing complexity of data, many data scientists now prefer NoSQL databases, which allow for greater flexibility because they do not force the user to the row-and-column format. Those that need to collect extra large data sets in real time should look into big data processing and distribution systems. These tools are built to scale for businesses that are constantly collecting enormous amounts of data. Pulling data sets may be more challenging with big data processing and distribution systems, but the insights received may be more valuable due to the granularity of the data. Database administrators – Non-relational, or NoSQL, databases have recently grown in popularity because they are easier to implement, have greater flexibility, and tend to have faster data retrieval times. They are cheaper and easier to scale, but don’t have the same levels of standardization and reporting tools.
  • 8.
    A Brief Introto NoSQL Page 8 Non-native databases are the most common, but allow users outside the company to insert and retrieve data. Some people believe this enhances data by providing increased, more human knowledge. These tools typically serve niche purposes for specific applications. The Advantages of NoSQL Databases  Create a flexible and dynamic data model to store and access data rapidly and flexibly  Handle large volumes of data at high speed with a scale-out architecture.  Scale database operations without overhauling data schema or strategy and lower performance; Enable easy updates to schemas and fields.  Store unstructured, semi-structured, or structured data.  Optimize IT infrastructure resources by the more efficient use of storage resources  Achieve big data levels of information storage particularly for non-structured data  Support business applications with higher availability  Be more developer-friendly  Take advantage of the cloud to deliver zero downtime Being “Agile” and the need for Flexibility and Speed In the 2000’s, with the ascent of the Agile methodology, programmers recognized the need to rapidly adapt to changing requirements. They needed the ability to iterate quickly and make changes throughout the software stack, from presentation and logic all the way to the database model. NoSQL databases gave them this flexibility. Performance and cost reduction was a driver of NoSQL The name "NoSQL" was coined in the early 21st century, though NoSQL databases were around even in the 1960’s. The growing needs of Web 2.0 companies included the need to handle sub second response times from huge numbers of users and improving developer productivity to reduce development costs; this drove the development and usage of NoSQL DBs. In the mid 2000s, the cost of storage started decreasing dramatically and the need to reduce data duplication, to keep storage costs down, by using a complex, difficult-to-manage data model simply became less necessary. NoSQL databases emerged to control the rising costs of developers and tend to the ever increasing need to handle vast amounts of users simultaneously accessing data and expecting sub second response times. SQL alone, could not always cope with the crushing scale of 10’s of millions of demanding users, as applications became more global. A NoSQL database simply provides a mechanism for storage and retrieval of data that is modeled in a manner different from the simple tabular relations used in relational databases. Can they store relational information well?
  • 9.
    A Brief Introto NoSQL Page 9 Many believe that NoSQL databases or non-relational databases don’t store relationship data well. But this is not correct, because NoSQL databases just store relationship data differently than relational databases do. When compared with SQL databases, many find modeling relationship data in NoSQL databases to be easier than in SQL databases, because related data doesn’t have to be split between tables. NoSQL data models allow related data to be nested within a single data structure.
  • 10.
    A Brief Introto NoSQL Page 10 Source: Guru99 “Different databases are designed to solve different problems. Using a single database engine for all of the requirements usually leads to non- performant solutions; storing transactional data, caching session information, traversing graph of customers and the products their friends bought are essentially different problems.” ― Pramod J. Sadalage, NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence
  • 11.
    A Brief Introto NoSQL Page 11 Source: Apptunix Transactional Use Cases vs. Analytical Use Cases Source:Stichdata
  • 12.
    A Brief Introto NoSQL Page 12 Analytical Needs Data warehouse technology has advanced significantly in the past few years. An entire category called analytic databases has arisen to specifically address the needs of organizations who want to build very high-performance data warehouses. Analytic databases are purpose-built to analyze extremely large volumes of data very quickly and often perform 100-1,000 times faster than transactional databases in these tasks. The Top NoSQL Databases Source: MongoDB
  • 13.
    A Brief Introto NoSQL Page 13 Enterprise requirements of a data warehouse 1. Performance. The data warehouse needs to able to ingest data and analyze enormous quantities of data extremely quickly. 2. Scalability. As you grow, more data will be piped in and more users will need to run analyses. The data warehouse must be able to keep pace with your growth. 3. Compatibility. SQL is the most widely-used query interface with a massive ecosystem of both users and tools. SQL compatibility should be considered a top priority for any data warehouse technology. 4. Analytic functionality. Analysts often need to perform more complicated calculations than are supported in traditional SQL syntax, including regressions and predictive analytics. The emerging Transactional NoSQL movement The NoSQL database revolution started with the publication of the Google BigTable and Amazon Dynamo papers in 2006 and 2007. These original designs focused on horizontal write scalability producing better performance than SQL databases. However, they compromised the ACID properties, lacking consistency and durability. Therefore, NoSQL became synonymous with “Non-Relational” and “Non-Transactional”. Failures in consistency could lead to a value that was either never committed in the database or was completely out of order. Given these fundamental limitations, developers continued to use monolithic SQL databases for business-critical workloads and NoSQL was relegated to less business-critical workloads. However, big changes happened in the NoSQL world from 2018 to 2020. For instance, multiple old and new NoSQL databases alike, embraced one or more flavors of ACID transactions. Examples are: Amazon DynamoDB https://aws.amazon.com/about-aws/whats-new/2018/11/announcing-amazon-dynamodb-support-for- transactions/ Microsoft Azure Cosmos DB (Azure Cosmos DB supports full ACID compliant transactions with snapshot isolation for operations within the same logical partition key) https://devblogs.microsoft.com/cosmosdb/introducing-transactionalbatch-in-the-net-sdk/ MongoDB (MongoDB is ACID-compilant at the document level.)
  • 14.
    A Brief Introto NoSQL Page 14