EdgeDB is a database designed to solve some fundamental design flaws that make working with databases—both relational and NoSQL alike—unnecessarily onerous.
It thinks about schema the same way you do: as objects with properties connected by links. You can call it a relational database with an object-oriented data model, or a graph database with strictly enforced schema. We call it the first graph-relational database.
A graph-like schema with a relational core
The core unit of schema in EdgeDB is the object type—analogous to a table in SQL. Object types contain properties and can be linked to other object types to form a schema graph.
All the features a growing app needs
There’s more to EdgeDB schema than properties and links. We have full feature parity with modern relational databases: constraints, default values, indexes, computed properties, type inheritance, deletion cascade policies, and more.
Putting the great in migrations
All migrations are generated and tracked by the database. You can interactively sanity-check each migration step with the CLI-based migration workflow.
An elegant query language for a more civilized age
Think in objects not rows
EdgeQL solves the object-relational impedance mismatch by returning a structured result object, not a list of rows—eliminating the need for a third-party ORM to denormalize the results.
A query language for developers not suits
SQL was designed with 1970s businessmen in mind, and it shows. EdgeQL uses syntax that’s familiar to developers to represent selection sets, scope, structure, and property assignment.
Deep fetching, no joins required
Declare your schema with the EdgeDB schema language. Just write out your object types, their properties, and the links between them. Foreign keys aren’t required.
Finally, a query language that composes
EdgeQL queries are fully composable, making things like subqueries and nested inserts a breeze.