A database system is partitioned into modules that deal with each responsibilities of the overall system. The functional components of a database system can be broadly divided into query processor components and storage manager components.
The query processor components are…
- DML compiler: DML compiler, which translates DML statements in a query language into low level instructions that the query evaluation engine understands. In addition, the DML compiler attempts to transform a user’s request into equivalent but more efficient form.
- Embedded DML precompiler: This converts DML statements embedded in an application program to normal procedure calls in the host language. The precompiler must interact with the DML compiler to generate the appropriate code.
- DDL interpreter: This interprets DDL statements and records them in a set of tables containing metadata
- Query evolution engine: This executes low-level instructions generated by the DML compiler
The storage manager components provide the interface between the low-level data stored in the database and the application programs and queries submitted to the system.
The storage manager components are…
- Authorization and integrity manager: This tests for the satisfaction of integrity constraints and check the authority of users to access data
- Transaction manager: This ensures that the database remains in a constraint (correct) state despite system failures, and that concurrent transaction executions proceed without conflicting.
- File manager: This manages the allocation of space on disk storage and the data structures used to represent information stored on disk.
- Buffer manager: Buffer manager is responsible for fetching data from disk storage into main memory, and deciding what data to cache in memory.
Several data structures are required as part of the physical system implementation:
- Data files: This stores the database itself
- Data dictionary: This stores metadata about the structure of the database
- Indices: This provide fast access to data items that hold particular values
- Statistical data: This stores statistical information about the data in the database. This information is used by query processor to select efficient ways to execute a query