There are a bunch of different databases out there. For example, check out this database of databases created by Carnegie Mellon University. At the time of writing it shows 665 different DBMS! When a new database is created, often it’s an iteration of something that already exists, but with a spin to solve some specific problem. I think its fun to look back in history and learn the lessons from the past.
A database family tree
There are so many different databases and I’ve struggled keeping them all organized. I wanted a way to organize the options out there and better understand their historical relationships to each other so I wrote up this database family tree. The databases I chose to add to this tree are either historically significant, databases that are popular, or databases that I have a particular interest in.
I like this family tree since it highlights a few things. One, it shows the history of databases is quite short. Two, it displays the trends in databases. For example, NoSQL/Non-relational databases became popular in the 2000’s. Three, it shows how databases influence the development of each other.
I came across this great 3 min video on a Brief History of Databases which outlined the following (which I think its displayed well in the family tree):
- 1970’s: First relational models described and implemented
- 1980’s/90’s: Rise of the relational SQL databases
- 2000’s: Rise of non-relational distributed databases
- 2010’s: Rise of relational/SQL distributed databases
Teachings From the Family Tree
Most interesting to me are are the arrows in the family tree that show relationships. For example, MySQL has an arrow pointing to MariaDB. After MySQL was acquired by Oracle in 2010, the original creator of MySQL, Michael Widenius, forked it and called it MariaDB. I guess he isn’t a fan of Oracle.
Google BigTable has many arrows coming off it. Spanner is layered on top of a bigtable-like implementation. LevelDB is based on concepts of BigTable written by the BigTable authors. Hbase is Apache’s rendition of BigTable for Hadoop.
Are there any databases missing from the family tree? Or any missing relationships?