Is DynamoDB a relational database?

No. DynamoDB is not a relational database — it is a NoSQL key-value and document store. There are no tables with fixed schemas, no foreign keys, and no joins. You model data around your application's access patterns and denormalize, rather than normalizing across related tables as you would in a relational (SQL) database.

Why it is not relational

Relational databases enforce a schema, normalize data across many tables, and join them at read time. DynamoDB does the opposite: it stores schemaless items and expects you to pre-join by duplicating or embedding related data.

What replaces relational features

  • Joins → denormalization and single-table design.
  • Normalized tables → item collections grouped under one partition key.
  • Ad-hoc SQL → key-based Query and Scan, or PartiQL (a SQL-compatible subset, still no joins).

When relational is the better fit

If you need ad-hoc analytical queries, complex joins, or a schema enforced by the database, a relational engine remains the right tool.

Go deeper

Read how to model data in DynamoDB and single-table design. Download DynoTable to explore your data model visually.

Work with DynamoDB without the Console

DynoTable is a fast desktop client for DynamoDB — browse tables, run SQL-style queries, and edit items locally.