Lecture
Ingres DBMS was designed for use in the UNIX environment. This system played the role of a kind of virtual machine. The orientation on the use of UNIX left a significant imprint on the overall organization of Ingres, on the static and dynamic structure of the DBMS.
First of all, all the databases maintained by Ingres DBMS on this UNIX computer are stored in one subtree of the file system. Each database corresponds to a separate directory, each database relation (including service relations) is stored in a separate UNIX file. Protection of software components of the system from unauthorized execution and databases from unauthorized access is mainly based on the general mechanism for protecting UNIX OS files. When installing the Ingres DBMS, a special UNIX user “user” named Ingres is automatically started, on behalf of which all Ingres system processes are running, and only he is allowed to start these system processes and access the database files. Ingres assumes more precise access control.
There are two ways to call Ingres - interactively with a Shell command or from an application program written in EQUEL and converted to a C program by the EQUEL precompiler. In the first case, the following structure of processes is created:
In the second case, the structure of the processes is as follows:
Process 1 is an interactive terminal monitor that allows the user to formulate, edit, and execute Ingres command sets (QUEL language statements).
Process 2 performs lexical and syntactic analysis of QUEL statements, modification of statements to ensure database integrity, access control, substitution of views, and synchronization of parallel access to the database.
Process 3 is responsible for the execution of the operators for fetching, inserting, and deleting tuples. It performs query optimization based on the technique of complex query decomposition. In addition, for operators of modification of tuples, a preliminary selection of modifiable tuples is made and their new images are prepared for the actual execution of the modification in process 4.
Finally, in process 4, the so-called utility commands are executed — creating and destroying relationships, indexes, etc., as well as the aforementioned deferred modification of tuples.
Processes are connected by software pipes (pipes) of UNIX OS. Direct information when processing operators is transmitted via channels A, B and C. Results, including error messages, are transmitted via reverse channels D, E and F. Processes work strictly synchronously: after sending a direct message, each process waits for a response message, and after sending response message - waiting for the next direct.
As can be seen, the dynamic structure of the system is approximately the same in cases of interactive use of the system and in the case of accessing the system from an application program. In the latter case, for natural reasons, there is no process 1, performing the functions of a terminal monitor.
It should be noted that the structure described was greatly influenced by the fact that the first version of Ingres was implemented for 16-bit computers, in which the size of the virtual memory of the process was very limited. Since the processes of the system functioned synchronously, there was no fundamental benefit from having several processes. But the approach to splitting the system into several processes allowed us to develop a reasonable static structuring of the system, in a number of components of which no common data is used. In addition, with the development of the system began to be used and the real possibilities of parallelization.
Comments
To leave a comment
Databases IBM System R - relational DBMS
Terms: Databases IBM System R - relational DBMS