RC: W2 D1 — Difference between a database, a DBMS and a storage engine

February 19, 2024

Until today, I was saying I wanted to re-implement a database from scratch, and would use interchangeably the terms “database”, “database management system (DBMS)” and “storage engine”. I figured it was about time to clarify the distinctions between those terms, so that I can describe precisely what I am doing.

So, here it is:

Having these terms clarified, my goal during my RC batch will be to implement 2 or 3 storage engines so that I can understand better the differences between them and why each is optimized for different use cases. Then, I would like to implement a full DBMS from end-to-end, which, as far as my understanding goes for now, means adding a transaction layer and a layer containing query processing (with the query optimizer and what not).

Time will tell how far I can get in this endeavor!