Database Theorems

Recently I came across a specific microservices pattern, and that in turn during research led me to a database theorem. I did not know it, so I decided collecting database theorems in one place.

If you know of an additional database related theorem that is missing here, let me know and I’ll add it (with acknowledgement, of course).

What is a database theorem?

Some theorems are core database theorems that apply to the architecture of a database system implementation itself, while others apply to overall architectures (like application architecture) as well, not just database system implementations.

CAP Theorem (Brewer’s Theorem)

BAC Theorem

“When backing up an entire microservices architecture, it is not possible to have both availability and consistency” (http://www.pautasso.info/biblio-pdf/bac-theorem.pdf).

As a clarifying note, this applies when the microservice architecture deploys two or more independent database systems. This is the case when the architecture follows the principle that each microservice encapsulates and abstracts from its data in its own database system. (I have to discuss a few aspects of this pattern, and that’ll come up in a separate blog later).

PIE Theorem

PACELC Theorem

This theorem is very applicable to application architectures that are “global”, meaning, in the context of public clouds, one state managing application is running in several regions in different geolocations that are far apart from each other (e.g., Asia, Europe and USA) without the ability to strictly partition data by region or geolocation.

Request: if you know of additional database related theorems …

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store