Database Management System (DBMS) is one of the core subjects in computer science. It deals with the storage, retrieval, modification, and deletion of data.
Your favorite query language, SQL plays a vital role here!
There are lots of interesting things to discuss in this subject, it is one of the easiest as well as an important subject. The only caveat is that sometimes, terminologies used in this subject can be daunting and hard to swallow 😅
But worry not, I will explain things in the most simple manner possible. Let's start with some basic terms that you need to be familiar with,
Any fact that can be recorded or stored. eg: text, numbers, images, videos, etc.
Collection of related data.
Traditionally, a database contains only text and numbers. fun fact, such databases are called Traditional Database.
There are different types of databases,
- Multimedia Database: to store videos, songs, etc. The best example is Youtube's Database.
- Geographic Information System(GIS): to store data of interspace recorded by satellites and rockets.
- Realtime Database: Databases that need to be updated frequently. For example , your favorite firebase.
It a software used to define, construct and manipulate data.
💡 A good analogy: database is a book 📖 while DBMS is a pen 🖋 and data is the ink.
DBMS acts as an intermediary between the application code and the database. It ensures specified constraints (restrictions) by not letting the application directly access the data inside the database.
⚠ The terminology is loose in the sense Database system is referred to as DBMS usually.
Database System is Database + DBMS. For example, MySQL, PostgreSQL all are database systems.
A question might arise, why do we need DBMS at all? We already have O.S. which does a lot of stuff for us, why not this one too?
Simply put, this will make your system super slow a.k.a boot times will be horrible.
The reason is whenever we want to access the database, we will ask the operating system which will cause the O.S. to switch from user mode to kernel mode (overhead!) to make system calls like write, read, etc. This makes the entire process of even the data retrieval super slow!