Question: Is DynamoDB a relational database?

Answered by Rafal Wilinski
Last updated: October 23rd, 2026
Answer
No. Amazon DynamoDB is a NoSQL key-value and document database, not a relational database. Its tables contain items with flexible attributes, including nested maps and lists. Only the primary key needs a declared schema; other attributes can differ between items.
The word "table" does not make DynamoDB relational. In MySQL or PostgreSQL, you commonly normalize data into related tables and join them at query time. In DynamoDB, you choose partition keys, sort keys and indexes around the application's access patterns. Related records can share a partition key, or you can duplicate selected data to answer a request without a join.
DynamoDB does support PartiQL, a SQL-compatible interface for reading and writing items. That syntax does not turn it into a SQL database: DynamoDB's implementation has no relational joins, foreign-key constraints or general-purpose SQL aggregation. A statement without a suitable key condition can still scan the table.
NoSQL also does not mean "no transactions." DynamoDB has atomic item operations and ACID transactions across items and tables within one account and Region. Read consistency and transaction isolation are separate choices from the data model.
Choose DynamoDB when the important lookups are known and can be expressed through keys and indexes. A relational database is often easier when you need changing ad hoc queries, joins and database-enforced relationships. See DynamoDB vs Amazon RDS and modeling relationships without joins.
Source: AWS PartiQL documentation.
Other Common DynamoDB FAQ (with Answers)
- How do you create an index in DynamoDB?
- Does DynamoDB support load balancing?
- How do you store Japanese characters in DynamoDB?
- Can DynamoDB store images?
- Can a DynamoDB range key be a GSI key?
- How do you store a graph in DynamoDB?
- How to access DynamoDB from EC2?
- Can I use a UUID as a DynamoDB partition key?
- How is data stored in DynamoDB?
- Does DynamoDB charge for storage?
- How do you enable CloudTrail for DynamoDB?
- How do you access DynamoDB from an Android app?
- What are the differences between DynamoDB and MySQL?
- Does DynamoDB support atomic updates?
- Are DynamoDB table names globally unique?
Dynobase is a Professional GUI Client for DynamoDB
Start your 7-day free trial today
Product Features
DynamoDB Tools
- SSH GUI Client
- Chat With Cloud
- MongoDB GUI Client
- AWS Cost Monitoring
- DynamoDB Query Builder
- DynamoDB Code Examples
- DynamoDB Node.js Queries
- DynamoDB JSON Converter
- DynamoDB UUID Generator
- DynamoDB Local Admin GUI
- DynamoDB Pricing Calculator
- DynamoDB Single-Table Design
- Best DynamoDB GUI Clients
- Dynobase vs DynoTable