To conclude

Before writing this article, I knew how big the subject was and I knew it would take time to write an in-depth article about it. It turned out that I was very optimistic and I spent twice more time than expected, but I learned a lot.

If you want a good overview about databases, I recommend reading the research paper “Architecture of a Database System “. This is a good introduction on databases (110 pages) and for once it’s readable by non-CS guys. This paper helped me a lot to find a plan for this article and it’s not focused on data structures and algorithms like my article but more on the architecture concepts.

If you read this article carefully you should now understand how powerful a database is. Since it was a very long article, let me remind you about what we’ve seen:

  • an overview of the B+Tree indexes
  • a global overview of a database
  • an overview of the cost based optimization with a strong focus on join operators
  • an overview of the buffer pool management
  • an overview of the transaction management

But a database contains even more cleverness. For example, I didn’t speak about some touchy problems like:

  • how to manage clustered databases and global transactions
  • how to take a snapshot when the database is still running
  • how to efficiently store (and compress) data
  • how to manage memory

So, think twice when you have to choose between a buggy NoSQL database and a rock-solid relational database. Don’t get me wrong, some NoSQL databases are great. But they’re still young and answering specific problems that concern a few applications.

To conclude, if someone asks you how a database works, instead of running away you’ll now be able to answer:

Otherwise you can give him/her this article.

results matching ""

    No results matching ""