A database is a collection of information carefully organized into a system.

The technology that in a computer system lets us organize data and represent the information that’s essential for an information system is called Database Management System.

A DBMS is a software that encapsulates the data of a database, and provides us a centralized way to store it, retrieve it, edit it, persist it, and much more.

Let’s define some of the main properties of a DBMS:

  • Efficient: a database needs to provide the best performance to store and retrieve data.
  • Persistent: data stored in the database is stored permanently. When the database software is terminated or the machine reboots, the data (excluding hardware failures) should still be there.
  • Privacy and security: a database provides us the ability to privately and securely store data. It allows access to multiple users, and each user should be able to only access and edit the data it’s allowed to. Some users might only be able to access data and not edit or delete it.
  • Shared access: multiple users need to be able, with the proper permissions, to access shared data. Multiple applications can access the same database, too.
  • Big: a database can handle huge amounts of data, and it can scale according to your needs, using various advanced techniques. That does not mean a database is just useful when you have a lot of data - it can be useful even with very few data entries, due to the properties listed above.

There are a lot of different DBMS on the market. Some similar to each other, some vastly different.

Relational DBMS, built on top of the relational model, are some of the most common ones you can use in the real world.

I’ll soon talk in details about 3 popular Open Source Relational Database Management Systems: PostgreSQL, MySQL and SQLite.