The Zim Database Management System - Client Server Architecture
The Zim Database Management System (Zim DBMS) is built on a true client/server architecture.
ZimServer, the core of the system, is where all critical data resides, all data operations are executed and all user connections to databases are managed.
ZimServer communicates with different application clients to send requested data (e.g., queries and form field values), to receive modified data, and to receive input from end-users.
In addition to the application clients, other system components are also clients operating in conjunction with ZimServer to provide a specific functionality to the system.
Since the architecture of the Zim DBMS is inherently flexible, it allows for a diverse combination of components. Each component provides its functionality to the systems: Data, GUI Deployment, TUI Deployment, Development, and Management, as summarized below:
- ZimQt Client - GUI Deployment: A multiplatform client that provides a graphical user interface (GUI) to Zim database applications according to the platform on which it is running. While ZimServer executes all data operations in a Zim database application, ZimQt Client executes local operations, displays form field values and collects events from end-user interaction;
- Zim Client - TUI Deployment: A text-based client for Unix/Linux environments. Its operation is analogous to ZimQt Client, except that the end-user interaction occurs via text terminal;
- ZimIDE - Development: An integrated design studio, in which all Zim database objects (entity sets, relationships, roles, etc) and graphical objects (windows, forms, displays, form fields, etc) can be created and edited;
- ZimExplore - Management: An integrated management console for configuring and managing ZimServer, creating and configuring Zim databases, viewing logs and running several other utilities;
The following table presents all Zim DBMS components, their function, their role in the client/server architecture and the platforms on which they are suported:
|Zim Component||Function||Role||Platforms Supported|
|ZimServer||Data Server||Server||Windows, Unix/Linux, Android, iOS|
|ZimQt Client||GUI Deployment / Runtime||Client||Windows, Unix/Linux, Android, iOS|
|ZimQt Client Plugin||GUI Deployment / Runtime||Client||Browsers on Windows, Unix/Linux, Android|
|Zim TUI Client||TUI Deployment / Runtime||Client||Unix/Linux|
Zim 8 - ZimServer on Windows
Zim 8 - ZimServer on Unix / Linux
The Zim DMBS Advantage
The Zim DBMS is an efficient, light-weight, powerful, and flexible database management system. There are three main features that distinguish Zim from other systems:
- The Zim 4th generation programming language (4GL): The Zim DBMS has its own fully-featured English-like programming language, also called Zim;
- Seamless interface between language and database: The Zim programming language includes all commands necessary for data definition and data manipulation. No external interface or API is needed;
- The Entity-Relationship (ER) Model: Zim's unique database format is completely adherent to the ER Model, an extension of the relational model. The ER model allows for a transparent implementation of the semantic relationships among data sets. As such, relationships are defined only once and become an integral part of the data. This results in more compact and efficient code, since repetitive and redundant "relationship" code (e.g., the exact same sequence of JOIN statements (SQL) in several transactions) can be avoided.
The combination of the powerful and flexible Zim language with the clarity and conciseness of the ER model means that Zim database applications are easier to develop and maintain.
The Zim DBMS provides a complete system for database applications, whereas other solution require a programming language, a database interface and a database management system.
From Zim 7 to Zim 8
The following table shows the components available in Zim 8 and their equivalent in Zim 7.