Actian Zen

Actian Zen (formerly Btrieve, later named Pervasive PSQL until version 13) is an ACID-compliant, zero-DBA, embedded, nano-footprint, multi-model, Multi-Platform database management system (DBMS). It was originally developed by Pervasive Software, which was acquired by Actian Corporation in 2013.

It is optimized for embedding in applications and is used in several different types of packaged software applications offered by independent software vendors (ISVs) and original equipment manufacturers (OEMs). Zen runs on system platforms that include Microsoft Windows, Linux, and Mac OS X. Both 32-bit and 64-bit editions of Zen are available. Editions are also specifically designed for different computer networking deployment needs, such as workgroup, client-server and highly virtualized environments including Cloud computing.

History
Pervasive Software was acquired by Actian Corporation in 2013. Zen is embedded by OEMs like Sage, Maestro* Technologies, ABACUS Research AG (Switzerland), and Unikum (Sweden) in packaged software applications that address the accounting, finance, retail, point-of-sale, entertainment, reservation system, and medical and pharmaceutical industry segments. “Users include Novell, Microsoft, PeachTree Software, Fair Isaac, Disney World, Radio Shack, Cardiff and others.” The accounting industry formed a large part of its market in 2007.

Historically, Zen served as a DBMS for small and medium enterprises.

DBMS architecture
Zen supports stand-alone, client-server, peer-to-peer and software-as-a-service (SaaS) architecture.

The central architecture of Zen consists of two database engines: (1) the storage engine, known as MicroKernel Database Engine (MKDE) and described as a transactional database engine, and (2) the relational database engine, known as SQL Relational Database Engine (SRDE). Both engines can access the same data, but the methods of data access differ.

Micro Kernel Database Engine
The Micro-Kernel Database Engine, the transactional database engine, interacts directly with the data and does not require a fixed data schema to access the data. It uses a key-value store to store and access the data. Calls to the MKDE are made grammatically with Btrieve API rather than through the use of a query language; therefore, Zen does not have to parse the request. This places the Micro Kernel Database Engine in the category of NotOnlySQL databases. Low-level API calls and memory caching of data reduce the time required to manipulate data.

The MKDE operates in complete database transactions and guarantees full ACID (Atomicity, Consistency, Isolation, Durability). If a transaction does not fully run its course due to an external event such as a power interruption, the data remains in the state in which it existed before the transaction began to run.

In the MKDE, records are stored in files which are roughly equivalent to the tables of a relational database engine. It supports multiple keys on a record and, therefore multiple indexes in the file. The MKDE caches data in memory to facilitate performance. When a call is made to the MKDE, cached data is searched first; physical storage is searched if there is no cache of the data. Configuration settings for caches can be pre-configured by ISVs to optimize Zen performance for their applications.

Relational Database Engine
The second database engine, the SQL Relational Database Engine or SRDE, operates in a manner similar to other relational database engines, that is, through the support of Structured Query Language queries. SRDE parses SQL queries and sends them to the MKDE to run.

The SRDE implements SQL-92. Significant other features include relational integrity, database security, and temporary tables. SRDE extends its functionality by supporting stored procedures, user-defined functions, and triggers.

In addition to its support for SQL-92, the SRDE supports several significant features of COBOL: COBOL data types, COBOL OCCURS and VARIANT records.

Additional features

 * Multi-core processor aware
 * IPv4 and IPv6 support
 * Row-level locking
 * Record and page compression
 * Over-the-wire encryption and data encryption
 * Cluster environments compatibility
 * I18N support, code page (including UTF-8) translation between data files and SQL clients, Unicode support in Btrieve API, Japanese localization
 * Data backup agents or enablers with Backup Agent and VSS Writer
 * Data auditing with Pervasive AuditMaster
 * Data replication with Pervasive DataExchange

Interfaces


Zen interfaces fall into two categories: management interfaces and data manipulation interfaces.

Management interfaces
Actian provides the management interfaces Distributed Tuning Interface (DTI) and Distributed Tuning Objects (DTO) and a Component Object Model (COM) adapter pattern (wrapper) for the DTI. These provide application programming interfaces for configuration, monitoring, and diagnostics of Pervasive components. COBOL can also provide component management through a COBOL connector that can talk to DTI.

Application interfaces
All other interfaces exist for data manipulation purposes.
 * Btrieve, Java Class Library (JCL), COBOL, and ActiveX provides direct access to the MicroKernel Database Engine (MKDE).
 * ADO.NET; ODBC v3.51 and JDBC 2 for Core, Level 1, and Level 2; and OLE DB provide access to the SQL Relational Database Engine (SRDE).
 * Pervasive Direct Access Components (PDAC) are a set of Visual Component Library (VCL) components that enable direct access to both MKDE and SRDE for Embarcadero Delphi and C++ Builder environments.

Tools
Actian provides utility software designed to facilitate administration and use of Zen. There are graphical and command line utilities in Windows, Linux, and Mac OS X environments.

Zen Control Center (CC) is the main utility that enables the user to create and manipulate databases and tables, to access servers and clients, to set configurations and properties, and to edit data. Through CC, the user can access a series of other utilities:
 * License Administrator utility handles license management activities.
 * Notification Viewer utility displays licensing-related messages logged by the PSQL engine.
 * Monitor utility checks and displays activities and attributes of both engines, including resource usage, session information, and communication statistics.
 * System Analyzer utility tests the connections between the engines and within the network and displays information about system components.
 * Maintenance utility enables users to create and edit schema-less files.
 * Rebuild utility enables users to convert file formats and rebuild files in its MKDE file format.
 * DDF (data definition file) Builder utility enables SQL users to create and modify table schemas for data stored in the MKDE, thus providing relational access to the data.
 * Query Plan Viewer enables SQL users to analyze query plans for optimization.
 * Function Executor assists developers with development, testing, and debugging by simulating direct API operations into MKDE and providing a view into the schema-less data.

Editions
There are five editions of Zen:
 * Zen Core
 * Zen Edge Server
 * Zen Enterprise Server
 * Zen Cloud Server
 * Zen Workgroup

Other Products

 * Zen AuditMaster (AM): a transaction monitoring and auditing application for Zen Enterprise Server and Cloud Server, that allows tracking access and changes in data and provides a detailed audit trail.


 * Zen DataExchange (DX): a Zen database replication solution. It copies data between two or more Zen databases to maintain warm backup systems, drive data into reporting servers, or synchronize remote databases.

Licensing
There are two different licensing models, user-count licensing and capacity-based licensing.
 * In user-count licensing (aka. Concurrent User License Model), each product key specifies a licensed user. At any given moment, that many users can be connected to the engine.
 * Capacity-based licensing is based on the amount of processing performed by the database engine. It measures data in use and sessions in use. This license model is designed to facilitate Cloud computing and highly virtualized environments.

Both Zen Edge Server and Zen Enterprise Server use a user-count licensing model, while Zen Cloud Server uses capacity-based licensing, and Zen Core is royalty-free for developers.

Limitations
Actian Zen lacks:
 * some of the data warehousing, data mining, and reporting services built into database engines such as Microsoft SQL Server and Oracle. However, Zen provides the option to set up a Zen Client Reporting Engine as a proxy server to reduce the load for report execution on a Zen server.
 * the ability to perform distributed transactions.
 * support for database caching unless the application has specifically been designed to take advantage of the Client Caching Engine (very few applications take advantage of this feature), the inbuilt feature of the engine, and the only supported caching option. Because the engine does not natively support database contention negotiation but relies on the front-end to manage contention issues, it is infrequently implemented. This makes the majority of applications developed with Zen unsuitable on any system where network or host server performance could cause a performance bottleneck.