What is a DBMS?
A Database Management System (DBMS) is software that allows you to create, manage, and interact with databases. It's the middleman between you (or your application) and the raw data stored on disk.
Without a DBMS, you'd have to write your own code to read/write files, handle concurrent access, prevent data corruption, and recover from crashes. The DBMS does all of this for you.
What Does a DBMS Do?
- Data Definition โ Create, modify, and delete database structures (tables, schemas, indexes).
- Data Manipulation โ Insert, update, delete, and retrieve data using a query language.
- Data Security โ Control who can access what data through authentication and authorization.
- Data Integrity โ Ensure data accuracy and consistency through constraints and rules.
- Concurrency Control โ Handle multiple users accessing the same data simultaneously.
- Recovery โ Protect against data loss through backups, transactions, and crash recovery.
Popular DBMS Software
Type โ Examples โ Use Case
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโ
Relational โ MySQL, PostgreSQL โ Web apps, business
(SQL) โ Oracle, SQL Server โ systems, data analysis
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโ
NoSQL โ MongoDB, Redis โ Real-time, big data
(Non-rel.) โ Cassandra, DynamoDB โ IoT, gaming
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโ
New SQL โ CockroachDB, TiDB โ Modern distributed
โ โ systems
File System vs. DBMS
File System Approach: DBMS Approach:
โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ
โ App Code โ โ App Code โ
โ reads/writes โ โ queries (SQL) โ
โ directly to files โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโโโโโโโโค
โ File System โ โ DBMS โ
โ (OS) โ โ (manages everything)โ
โโโโโโโโโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโโโโโโโโค
โ Raw Files on Disk โ โ Database on Disk โ
โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ
Problems with files: DBMS solves:
โข No concurrent access โ Concurrency control
โข No data integrity โ Constraints & rules
โข No security โ Authentication
โข Manual recovery โ Transaction logging
โข Duplicate code โ Centralized management