TypeDB Lectures
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.
Lecture materials:
Dr. James Whiteside is a research engineer with over a decade’s experience as a programmer and expertise in computational solid-state physics. James has a rich background in academic and industrial research, with a passion for data modelling and knowledge engineering. He has worked on projects across a wide range of fields, including semiconductor design, steel metallurgy, drug repurposing, and cybersecurity. As a member of the Research Team at TypeDB, James is working to define an entirely new paradigm of databases, and aims to carry the company’s vision forward by showcasing the unique expressive power of the data models he builds.
Further Learning
Learn more about TypeDB's core philosophy from the following fundamental article and lectures.