DBMS Component Modules
A Database Management System (DBMS) consists of several integrated components (modules) that handle various aspects of database definition, processing, and management. These modules interact with both the database and the DBMS catalog, which are typically stored on disk.
The DBMS is composed of several cooperating components:
DDL compiler for schema processing
Catalog manager for metadata storage
Query compiler and optimizer for parsing and improving query performance
Runtime database processor for executing transactions and queries
Buffer and data managers for storage and memory efficiency
Transaction management for reliability and concurrency
1. Storage and Buffer Management
The database and the DBMS catalog (which stores metadata) reside on disk storage.
Access to the disk is primarily controlled by the operating system (OS), which schedules low-level read/write operations.
However, many DBMSs include their own buffer management module to improve performance by managing data transfers between disk and main memory.
Effective buffer management reduces the number of disk I/O operations, which are often the slowest part of database processing.
A higher-level module, the stored data manager, controls access to all data stored on disk, whether it belongs to the user database or the DBMS catalog.
2. DDL Compiler and Catalog Management
The Data Definition Language (DDL) compiler processes schema definitions written in DDL and stores the resulting metadata in the DBMS catalog.
The catalog includes information such as:
- File names and sizes
- Data types and names of attributes
- File storage structures and access methods
- Schema mapping information
- Data integrity constraints
The catalog also stores internal statistics and metadata used by other DBMS modules, including the query optimizer and transaction manager.
3. Query Processing Modules
a. Interactive Query Interface
Used by casual users or those with occasional data access needs.
Accepts user-submitted queries through a graphical interface or command-line interface.
b. Query Compiler
Parses and validates queries submitted through the interface.
Checks for correct syntax, the validity of table names, attributes, and data types.
Transforms the query into an internal representation suitable for optimization and execution.
c. Query Optimizer
Optimizes the internal query representation by:
Reordering operations
Eliminating redundancies
Choosing the most efficient algorithms and access paths
Uses statistical and structural information from the DBMS catalog to make optimization decisions.
Outputs an executable query plan, which is passed to the runtime database processor.
4. Runtime Database Processor
Executes the following:
Privileged commands (e.g., schema changes)
Optimized query plans
Predefined transactions (also called "canned transactions") with runtime parameters
Collaborates with:
The system catalog to retrieve metadata and update statistics
The stored data manager for accessing disk-stored data
The buffer manager for managing memory-resident data blocks
May rely on the OS for low-level I/O, or implement custom I/O handling for better control and performance.
5. Transaction Management
Includes modules for:
Concurrency control: Ensures correct execution of simultaneous transactions without conflicts.
Backup and recovery: Protects the database against system failures and allows data restoration.
These components are closely integrated with the runtime database processor to provide full ACID (Atomicity, Consistency, Isolation, Durability) transaction properties.