Professional Documents
Culture Documents
What is NoSQL?
Overview
Key-value
What is NoSQL?
Document
High-performance, nonrelational databases with flexible data
Graph
models
For decades, the predominant data model that was used for application development was the
relational data model used by relational databases such as Oracle, DB2, SQL Server, MySQL, and
PostgreSQL. It wasn’t until the mid to late 2000s that other data models began to gain significant
adoption and usage. To differentiate and categorize these new classes of databases and data
models, the term “NoSQL” was coined. Often the term “NoSQL” is used interchangeably with
“nonrelational.”
What is NoSQL?
Overview
Key-value
What's New for AWS Purpose-Built, Nonrelational Databases
Document
Graph
Consider the example of modeling the schema for a simple book database:
In a relational database, a book record is often dissembled (or “normalized”) and stored in
separate tables, and relationships are defined by primary and foreign key constraints. In this
example, the Books table has columns for ISBN, Book Title, and Edition Number, the Authors
table has columns for AuthorID and Author Name, and finally the Author-ISBN table has
columns for AuthorID and ISBN. The relational model is designed to enable the database to
enforce referential integrity between tables in the database, normalized to reduce the
redundancy, and generally optimized for storage.
In a NoSQL database, a book record is usually stored as a JSON document. For each book, the
item, ISBN, Book Title, Edition Number, Author Name, and AuthorID are stored as attributes in
a single document. In this model, data is optimized for intuitive development and horizontal
scalability.
Key-value: Key-value databases are highly partitionable and allow horizontal scaling at scales that
other types of databases cannot achieve. Use cases such as gaming, ad tech, and IoT lend
themselves particularly well to the key-value data model. Amazon DynamoDB is designed to provide
consistent single-digit millisecond latency for any scale of workloads. This consistent performance is
a big part of why the Snapchat Stories feature, which includes Snapchat's largest storage write
workload, moved to DynamoDB.
Document: Some developers do not think of their data model in terms of demoralized rows and
columns. Typically, in the application tier, data is represented as a JSON document because it is
more intuitive for developers to think of their data model as a document. The popularity of
document databases has grown because developers can persist data in a database by using the
same document model format that they use in their application code. DynamoDB and MongoDB are
popular document databases that provide powerful and intuitive APIs for flexible and agile
development.
What is NoSQL?
Overview
Key-value
Document
Graph: A graph database’s purpose is to make it easy to build and run applications that work with
Graph
highly connected datasets. Typical use cases for a graph database include social networking,
recommendation engines, fraud detection, and knowledge graphs. Amazon Neptune is a fully-
managed graph database service. Neptune supports both the Property Graph model and the
Resource Description Framework (RDF), providing the choice of two graph APIs: TinkerPop and
RDF/SPARQL. Popular graph databases include Neo4j and Giraph.
In-memory: Gaming and ad-tech applications have use cases such as leaderboards, session stores,
and real-time analytics that require microsecond response times and can have large spikes in traffic
coming at any time. Amazon ElastiCache offers Memcached and Redis, to serve low-latency, high-
throughput workloads, such as McDonald’s, that cannot be served with disk-based data stores.
Amazon DynamoDB Accelerator (DAX) is another example of a purpose-built data store. DAX makes
DynamoDB reads an order of magnitude faster.
Search: Many applications output logs to help developers troubleshoot issues. Amazon Elasticsearch
Service (Amazon ES) is purpose built for providing near-real-time visualizations and analytics of
machine-generated data by indexing, aggregating, and searching semistructured logs and metrics.
Amazon ES also is a powerful, high-performance search engine for full-text search use cases.
Expedia is using more than 150 Amazon ES domains, 30 TB of data, and 30 billion documents for a
variety of mission-critical use cases, ranging from operational monitoring and troubleshooting to
distributed application stack tracing and pricing optimization.
What is NoSQL?
SQL (relational) vs. NoSQL (nonrelational)
Overview
databases
Key-value
Document
Though there are many types of NoSQL databases with varying features, the following table shows
some of the differences between SQL and NoSQL databases.
Graph
Requests to store and retrieve data Object-based APIs allow app developers
are communicated using queries that to easily store and retrieve in-memory
conform to a structured query data structures. Partition keys let apps
APIs
language (SQL). These queries are look up key-value pairs, column sets, or
parsed and executed by the semistructured documents that contain
relational database. serialized app objects and attributes.
Data
Table Collection Table Table
bucket