Why We Need a Polymorphic Database
Databases have come a long way since the navigational databases of the 1960s. The relational, document, and graph database paradigms have each profoundly impacted the way we store and query data, but many fundamental engineering challenges remain. Why is object-relational mismatch still a problem after 50 years? Why do we need ORMs to manage our data models for us? Why do queries need to be updated when the data model is extended, even if the question being asked remains the same?
Each successive database paradigm has only implemented workarounds to these problems without addressing the underlying cause: they cannot interpret declarative polymorphic queries. Programming languages have continuously become more powerful and declarative as they have evolved, but database query languages have not significantly advanced beyond SQL. This has left databases unable to express many of the OOP features that we easily take for granted, like abstraction, inheritance, and polymorphism.
In this lecture, we’ll examine the historical context and design philosophies behind the relational, document, and graph database paradigms to understand their strengths and weaknesses. We’ll look at the different strategies that database engineers employ to work around translating polymorphism from their object models. We’ll explore a polymorphic object model for a simple filesystem and see how the lack of expressivity inherent in current databases leads to fundamentally brittle application architectures. Finally, we’ll attempt to answer the question: why do we need a polymorphic database?
Join this lecture and learn more about:
- The strengths and weaknesses of current database paradigms.
- How databases engineers work around polymorphism in data models.
- How current databases lead to fundamentally brittle application architectures.
James is a research engineer with over a decade’s experience as a programmer and expertise in solid-state physics. James has a strong background in academic and industrial research where he developed a passion for data modelling and algorithm design, employing his skills to build complex and powerful data pipelines. The lack of expressivity in current data modelling methods led James to Vaticle, where he recognised the vision behind TypeDB. As a member of the Research Team, James is working to define an entirely new paradigm of polymorphic databases, and aims to carry the company’s vision forward by showcasing the unique expressive power of the data models he builds.
Learn more about TypeDB's core philosophy from the following fundamental article and lectures.