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.

无需控制台即可使用 DynamoDB

DynoTable 是面向 DynamoDB 的快速桌面客户端 —— 浏览表、运行 SQL 风格的查询,并在本地编辑项。