What is a Database Management System?
Definition
A Database Management System (DBMS) is software that provides an abstraction over secondary storage (disks, SSDs). It hides the details of how data is stored on physical media behind a standardised interface (e.g., SQL) that can be shared by many concurrent applications.
The narrow waist model
The DBMS sits at a “narrow waist” in the software stack:
- Above the interface: diverse applications (web apps, transaction processing, analytics, reporting tools) — all written to the same API.
- Below the interface: diverse storage engines, file formats, indexing strategies, and hardware — all interchangeable without changing the applications.
This arrangement decouples application development from implementation details. The application programmer writes queries against a logical schema; the DBMS handles the physical storage.
CRUD operations
Every DBMS provides four fundamental operations on data:
| Operation | Meaning |
|---|---|
| Create | Insert new records into the database |
| Read | Query and retrieve existing data |
| Update | Modify existing records |
| Delete | Remove records from the database |
Management operations
Beyond CRUD, a DBMS typically offers management-level operations:
- Create or alter the schema (tables, columns, types, constraints)
- Create views (virtual tables for access control or convenience)
- Physical reorganisation of stored data
- Re-indexing for query performance
- Backup and recovery
- Statistics generation for query planning
These management operations are mostly beyond the scope of the Part IA course. The course focuses on the application writer’s point of view: data models and query languages.
Why use a DBMS?
| Without a DBMS | With a DBMS |
|---|---|
| Each application manages its own files | All applications share a common interface |
| Concurrency must be handled manually | DBMS manages concurrent access |
| No standard query language | Standardised SQL |
| Storage format changes break applications | Physical/logical independence |
| Inconsistent or corrupt data is common | ACID guarantees |
Summary
- A DBMS provides an abstraction layer between applications and physical storage.
- The narrow waist model gives both application portability and implementation flexibility.
- The core data operations are Create, Read, Update, Delete.
- This course studies the DBMS from the application writer’s perspective: modelling data and writing queries.