A database system is a very huge and complex application. To understand the complete structure of a database we should divide it into small modules. Let’s discuss them one by one in detail.
Those who interact with the database. On the basis of how they use the database we can divide them into three categories:
- DBA: Database administrator have full control on database. They may be a group of persons or a single person. They use Data Definition Language to pass on schemas and mapping constraints on database, which further passed to DDL processor.
- Users: These are end users who actually use database for their own purposes. They pass queries with the help of interface system provided. These queries further passed on to the Queries processor.
- Programmers: These are the persons who actually creates database and manages it technically. They use Data Manipulation Language statements to pass on application programs to database, which further goes to DML processor.
The Query Processor
In this section all the high level or user level commands, queries and statements are compiled or interpreted into low level language for further execution and storage.
Processors: These processors execute the different types of queries passed to them. As per the type of queries and statements passed on, we have three types of processors as per given below:
- DDL Processor: These compile the data definition language statements passed by DBA and also convert the system generated output to the DDL statements for understanding of DBA. These are further divided in two segments as per given below:
- DDL Statement: Identify the DDL statements and convert them into the low-level language understandable to the data dictionary for further execution.
- DDL Compiler: Receive the data from DDL statements and compile them so that they can be executed by further processes.
- Queries Processor: These compile the queries passed by end users and also convert the system generated output to the natural language for understanding of End users. These are further divided in two segments as per given below:
- Interactive Query: identify the Queries and convert them into the low-level language understandable to the data dictionary for further execution.
- Query Compiler: receive the data from Interactive Query and compile them so that they can be executed by further processes.
- DML Processor: These compile the queries passed by application programmers and also convert the system generated output to the DML statements for understanding of Programmers. These are further divided in two segments as per given below:
- DML Statement: identify the DML statements and convert them into the low level language understandable to the data dictionary for further execution.
- DML Compiler: It compiled or translate the DML statements received by End users or programmers into a query language. This query language is consisting of low-level language so that query evaluation engine can understand it, execute it and performed the required or desired operation.
- Query Evaluation Engine: This is the actual processor which executes all the translated or interpreted low level commands or queries received from above mentioned processors.
- Embedded DML pre-compiler: It received the application embedded DML statements and converts them to normal procedure calls in the host language used. Also, the pre-compiler interacts with DML compiler to generate the appropriate code to remove conflicts.
- DDL Interpreter: It interprets DDL statements and saves the data definitions in the data dictionary for further records.
This is a specific program module that provides the interface between the low-level data stored in the database and the application programs along with the queries passed to the system by users or other processes of the database. It provides the interaction with the file manager and manages all storage available and try to optimize the use of storage. The further parts of the storage manager are as given below:
- Data Dictionary: It stored meta data, means data about data. It helps the overall system to identify the data type received or generated. It’s also helps to separate the schemas data language, interactive queries passed by end user and the DML statements or application programs for better understanding of system and smooth functioning.
- Authorization and Integrity Manager: As name implies its checks and allot the authority of the user and manages the integrity constraints applied on database.
- Command Processor: Execute the commands received from the compilers.
- Query Optimizer: This optimize the queries so that these queries can be processed in the minimum resource utilization.
- Transaction Manager: It manages the over all transactions performed in the complete system for smooth and conflict free experience. Also, it ensures that the database should be remain in consistent state because each and every transaction affects the database.
- Scheduler: As name implies it schedules all the tasks in the system including queries execution and transaction management.
- File Manager: It is responsible for allocation of space on disk storage and also manages data structures and techniques used in representation of the information stored on the disk.
- Buffer Manager: This manages and controls that how the required data maybe fetched from storage and transferred to the main memory. Also manages the reverse operation as well.
- Recovery Manager: It is like backup and restore option. All the operations and transactions and all the changes made are going through this section so that it can keep track and record of all these activities. So that whenever required it can provide the backup or roll back the operations.
- Physical Database: This is actual physical storage where all the low level or real data is stored. This can only save the data and transfer it when ordered.
This manages the overall storage available. This can be further divided into these below sections:
- Data Files: It is actually the stored data. A data file is a storage block or bucket in which data can be stored. Data files have variable sizes.
- Data Dictionary: It stores the data about data. Means what data is stored where at which time and how to reach there.
- Indices: This works as a up to date index of all data items. It helps to fast access to all these data items.
- Statical Data: As name implies it stores the statical information about any data present in database.