AWS Cloud
AWS Cloud
Get started with Amazon DynamoDB

NoSQL databases are nonrelational databases optimized for scalable performance and schemaless data models. NoSQL databases also are widely recognized for their ease of development, low latency, and resilience. They use a variety of data models, including columnar, document, graph, and in-memory key-value stores. This page includes resources to help you get started using NoSQL databases.

PurposeBuilt-reInvent
58:35
What’s New for AWS Purpose-Built, Nonrelational Databases

NoSQL database systems use a variety of models for data management, such as in-memory key-value stores, graph data models, and document stores. These types of databases are optimized for applications that require large data volume, low latency, and flexible data models, which are achieved by relaxing some of the data consistency restrictions of traditional relational databases.

NoSQL databases are a great fit for many big data, mobile, and web applications that require greater scale and higher responsiveness than traditional relational databases. Due to simpler data structures and horizontal scaling, NoSQL databases typically respond faster and are easier to scale than relational databases.

Relational database management systems (RDBMSs) and nonrelational (NoSQL) databases have different strengths and weaknesses. In RDBMSs, data can be queried flexibly, but queries are relatively expensive and don't scale well in high-traffic situations. In a NoSQL database, data can be queried efficiently in a limited number of ways, outside of which queries can be expensive and slow.

  Relational databases NoSQL databases
Data model The relational model normalizes data into tables that are composed of rows and columns. A schema strictly defines the tables, rows, columns, indexes, relationships between tables, and other database elements. NoSQL databases typically do not enforce a schema. A partition key is generally used to retrieve values, column sets, or semistructured JSON, XML, or other documents containing related item attributes.
ACID properties Traditional RDBMSs support the ACID properties of a relational database: atomicity, consistency, isolation, and durability. Atomicity means “all or nothing”—a transaction executes completely or not at all. Consistency means that once a transaction has been committed, the data must conform to the database schema. Isolation requires that concurrent transactions execute separately from each other. Durability is the ability to recover from an unexpected system failure or power outage to the last known state. NoSQL databases often trade some ACID properties of traditional RDBMSs for a more flexible data model that scales horizontally. These characteristics make NoSQL databases an excellent choice in situations when traditional RDBMSs encounter architectural challenges to overcome some combination of performance bottlenecks, scalability, operational complexity, and increasing administration and support costs.
Performance Performance is generally dependent on the disk subsystem. Optimization of queries, indexes, and table structure is required to achieve peak performance. Performance is generally a function of the underlying hardware cluster size, network latency, and the calling application.
Scale Easiest to scale up with faster hardware. Additional investments are required for relational tables to span a distributed system. Designed to scale out by using distributed clusters of low-cost hardware to increase throughput without increasing latency.
APIs Requests to store and retrieve data are communicated using queries that conform to a structured query language (SQL). These queries are parsed and executed by RDBMSs. Object-based APIs allow app developers to easily store and retrieve in-memory data structures. Partition keys let apps look up key-value pairs, column sets, or semistructured documents containing serialized app objects and attributes.
Tools SQL databases generally offer a rich set of tools for simplifying the development of database-driven applications. NoSQL databases generally offer tools to manage clusters and scaling. Applications are the primary interface to the underlying data.
15

There are four popular types of NoSQL databases: columnar, document, graph, and in-memory key-value. Generally, these databases differ in how the data is stored, accessed, and structured, and they are optimized for different use cases and applications. 

  1. Columnar databases are optimized for reading and writing columns of data as opposed to rows of data. Column-oriented storage for database tables is an important factor in analytic query performance because it drastically reduces the overall disk I/O requirements and reduces the amount of data you need to load from disk.
  2. Document databases are designed to store semistructured data as documents, typically in JSON or XML format. Unlike traditional relational databases, the schema for each NoSQL document can vary, giving you more flexibility in organizing and storing application data and reducing storage required for optional values.
  3. Graph databases store vertices and directed links called edges. Graph databases can be built on both SQL and NoSQL databases. Vertices and edges can each have properties associated with them. 
  4. In-memory key-value stores are NoSQL databases optimized for read-heavy application workloads (such as social networking, gaming, media sharing, and Q&A portals) or compute-intensive workloads (such as a recommendation engine). In-memory caching improves application performance by storing critical pieces of data in memory for low-latency access.
SQL
MongoDB (NoSQL) DynamoDB (NoSQL) Cassandra (NoSQL) Couchbase (NoSQL)
Table Collection Table Table Data bucket
Row Document
Item Row Document
Column
Field Attribute Column Field
Primary key
ObjectId
Primary key Primary key Document ID
Index Index Secondary index Index
Index
View View Global secondary index Materialized view View
Nested table or object
Embedded document Map Map Map
Array
Array List List List

It's easy to get started with Amazon DynamoDB. Use our Getting Started Guide to create your first DynamoDB table in a few clicks.

You also can download the whitepaper, Migration Best Practices - RDBMS to Amazon DynamoDB, to learn best practices for migrating workloads from an RDBMS to DynamoDB.

Get started with Amazon DynamoDB