Database Engine¶
The job of the database engine is distributed between a handful of components
Storage Manager¶
The storage manager provides an interface that connects low-level data inside the database, to application programs that submit queries to the DBMS
The storage manager is responsible for: * Exchanging data with the OS file manager * Efficient storage, retrieval, and updation of data * Effective implementation of data files, data dictionary, and used indices
Query Processor¶
The query processor parses and translates the query given to the DBMS. It converts it to a relational algebra expression, which is passed to the processing engine
Transaction Manager¶
A logical function is broken down into a collection of operations. The result of this function is returned by performing these operations and combining their results. This collection of operations is referred to as a Transaction. The component responsible for regulating transations is called the Transaction Manager
It also maintains the database's consistency in case of a system failure (power failure / OS crash) or a transaction failure
Concurrency-Control Manager¶
The concurrency-control manager ensures that concurrent transactions don't lead to race conditions, and thus preserves the consistency of the database