contents.gifindex.gifprev1.gifnext1.gif

DBMaker Structure

A DBMaker process is a process that handles storage and retrieval of data according to user commands and other database functions. A DBMaker process consists of several layers as shown in the following diagram.

acu00037.gif

In this diagram, we can see that the user applications communicate with DBMaker through an Application Program Interface (API). The API will pass user commands (SQL commands) or function calls to the SQL Engine, which is responsible for analyzing the SQL commands and translating them into sequences of function calls that are acceptable to the DB Engine. The SQL Engine passes these calls to the DB Engine, which executes these function calls to store data in tables or retrieve data from tables.

The API and SQL Engines are the same in the single-user and client/server models. However, the DB Engines in the single-user and client/server models are different. The single-user model can handle only one user while the client/server model can handle multiple users. In the client/server model the application and API are tied together and run on client machines while the SQL Engine and the DB Engine are tied together and run on server machines. In this manner the API can communicate with the SQL engine via network protocols.

Database Communication and Control Area (DCCA)

When started, DBMaker will first allocate a large block of memory to store database-related information such as buffer pools and various types of control information. This memory block is called the Database Communication and Control Area, or DCCA. It contains three types of data: page buffers, journal buffers, and the System Control Area (SCA).

The DCCA is very important to the operation of DBMaker, especially when run in client/server mode. In Microsoft Windows and UNIX single-user environments, the DCCA is allocated from the private heap. However, in a UNIX client/server environment, the DCCA must be shared among all DBMaker processes that access the same database, so it cannot be allocated from the private heap. Instead, a shared memory mechanism, which is a standard function in UNIX, is used to allocate the DCCA. All DBMaker processes that run in client/server mode communicate with each other via the DCCA.

Architecture of the Single-User Model

The DBMaker single-user model is an RDBMS that supports only one user. It is smaller and faster than other models because it doesn't need to handle concurrency control. If only one person owns a database, the single-user DBMaker is a good choice to manage that database. The following diagram shows the system architecture of the DBMaker single-user model. If some of the acronyms and concepts in the diagram are unfamiliar to you, consult your DBMaker documentation for explanations.

acu00038.gif

Architecture of the Client/Server Model

A DBMaker application may also run in the client/server model. In this model there are two processes involved in an application program: the client application process and the database server process. In general the client process resides in a front-end PC or workstation and uses API library routines provided by DBMaker to communicate with the server process across a local area network. Note that in a client/server system, all involved machines including servers and clients can be of different platform types. If some of the acronyms and concepts in the diagram are unfamiliar to you, consult your DBMaker documentation for explanations.

acu00039.gif

There are three components in the client/server model of DBMaker. These components are: the server program, the client program, and the client library. The purpose of each of these components is given below.

Server Program

The name of the DBMaker server program is dmserver. This program includes a network manager, which deals with the network communication, and a database engine, which handles the data access. This program must be started first so that client programs can connect to the database server.

Client Program

The name of the DBMaker SQL client program is dmsqlc. Users can use this program to connect to a database and issue SQL commands for data processing.

Client Library

The name of the DBMaker client library is libdmapic.a in UNIX, or dmapi30.lib on Microsoft Windows systems. UNIX users who intend to develop their own client programs must link their programs with this library. For example, users can use various development tools from many vendors to write their front-end applications. When building the applications, they must link those programs with this library so that their custom applications can communicate with the server program.