# 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) supporting 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 and licensing
### Editions

There are five editions of Zen:
* Zen Core Library: An ultra-small (and free) database library for your Android or iOS applications.
* Zen Edge Engine: For small edge devices with support for ARM (Raspbian) or x86 (Windows IoT Servers).
* Zen Workgroup Engine: Per-user licensing, up to a maximum of 5 concurrent users, with most environments being a single user.
* Zen Enterprise Server: Originally called Zen Server. Per-user licensing, starting at 6 concurrent users.
* Zen Cloud Server: Originally called Zen Server VX. Data size licensing (with unlimited users), required for web/SaaS installations.

### 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.
* Zen Backup Agent: a tool designed to protect Zen databases by creating reliable, automated backups without interrupting database operations. It allows seamless integration into backup systems, ensuring data integrity and minimal downtime, making it ideal for business-critical applications. Actian PSQL v12, Backup Agent is included freely on the Enterprise Server and Cloud Server editions, and is available separately for Workgroup edition.

### 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.

## Versions
### Actian Zen release history

| Release | General availability | End of Enterprise Support | End of Extended Support | End of Obsolescence Support | Marquee Features |
| Current stable version: Zen v16 | August 27, 2019 | Aug 31, 2024 | Aug 31, 2029 | Aug 31, 2034 | New v16 File Format, Long Keys, Simple Replication, Universal Triggers, Microkernel Page Read-Ahead, SQL Query Logging Improvements, Offline Rebuild, Secured SQL Rights, Developer Changes, Linux Install/Uninstall Changes, Kafka integration, Licensing Changes |
| Old version, yet still maintained: Zen v15 | August 15, 2021 | Aug 31, 2026 | Aug 31, 2031 | Aug 31, 2036 | Performance Improvements (File Close Delay, Transaction Log Changes, SQL DELETE and LIKE Operations, Scalar Subqueries and Statistics), System Data v2, File Size Limit for Backward Compatibility, SQL Windowing Functions, Administrative Changes, API Updates (Btrieve 2 Improvements, PDAC/BPL Changes, ADO.NET Changes, ActiveX and OLEDB SDK's removed), Platform Changes (removed support for Windows 7 and Windows Server 2008, added support for Windows 10 IoT Enterprise, Windows 11 and Windows Server 2022), Config-on-Install |
| Old version, yet still maintained: Zen v14 | August 27, 2019 | Aug 31, 2024 | Aug 31, 2029 | Aug 31, 2034 | Complete Rebranding, AutoTimestamp Key Type, AES-256 Encryption, Java Runtime Environment Upgrade, JSON Filter, ADO.NET 4.4 Support (including support for Visual Studio 2019 and BIGIDENTITY data type), New Time Data Types (TIMESTAMP2, SQL support for the AUTOTIMESTAMP type, new time scalar functions), New Data Export Tool, Delete Extended Operations, SQL on Android/iOS, Read-Only DSN's, BUTIL Improvements (maintenance utility) |

### Actian PSQL and Btrieve release history

| Release | General Availability | End of General Availability | Transition Support | End of Support | Notes |
| Old version, no longer maintained: Zen/PSQL v13 | June 23, 2017 | December 31, 2020 | December 31, 2021 | December 31, 2022 | Support for Larger Data Sets, PSQL Reporting Engine, New Btrieve C and C++ APIs, New Schema Export and Import in CC, Updated Cache Management, New SDKs, LIKE with Btrieve Extended Operations, Integration with AD Security, New Operating System Support (Android, iOS, Windows Server 2019, and Windows Nano Server), 8-Byte AutoInc/BIGIDENTITY, TRY_CAST and TRY_CONVERT, UPSERT Capability. |
| Old version, no longer maintained: Btrieve 12 | February 9, 2016 | Not Scheduled | Not Scheduled | Not Scheduled | Btrieve 12 engine is file format and API compatible with Btrieve 6.15, so there is no need to change or even recompile your application. It offers a number of improvements over v6.15, such as full OS support for Windows 7, 8, and 10, improved performance due to a better caching configuration, the ability to use across-the-wire encryption and auto-reconnect (to survive brief network outages on wireless networks), and a vastly simplified configuration. |
| Old version, no longer maintained: PSQL v12 | December 17, 2014 | June 30, 2018 | January 1, 2019 | July 1, 2019 | Online Database Defragmenter, More Unicode Support, Rebranding, Easier Installation, License Changes, Developer-Level Updates (ADO.NET v4.1 drivers, new features through JDBC and ODBC) New Operating systems (Windows 10, Mac OS X, Windows Server 2016). |
| Old version, no longer maintained: PSQL Vx Server 11 | February 9, 2012 | June 30, 2015 | January 1, 2016 | July 1, 2016 | Hypervisor-Friendly Licensing (per instance), Flexible Bit Level Licensing, Optimized Backup Solutions for Virtual Machines. |
| Old version, no longer maintained: PSQL v11 | September 29, 2010 | June 30, 2015 | January 1, 2016 | July 1, 2016 | New Operating Systems (Windows 8 and Windows Server 2012), Improved multi-threading, Full 64-bit and IPv6 Support, Developer-Level Updates, New Security Solutions and SQL Features, License and Logging Enhancements, Native Backup Solutions (at no extra costs), Licensing Changes and Updated Tools. |
| Old version, no longer maintained: PSQL v10 | September 18, 2007 | March 31, 2011 | September 1, 2011 | March 1, 2012 | SQL syntax enhancements, a new cache (called Xtreme I/O) to improve 32-bit server performance, and a new 64-bit engine to provide native 64-bit support on newer hardware and operating system platforms. |
| Old version, no longer maintained: PSQL v9 | March 1, 2005 | July 1, 2009 | July 1, 2009 | January 1, 2010 | Larger Database Support, Improved Linux Support, Improved SQL Performance and Syntax, New DBA Features, A New Control Center, Improved COBOL Support, Drive Letter Redirection, New Developer Features. |
| Old version, no longer maintained: Pervasive.SQL V8 | November 26, 2002 | July 1, 2006 | — | December 31, 2006 | Improved Btrieve and SQL Performance, New SQL Syntax, No More Workstation Engine, New File Format, Simpler Configuration, Debug Requesters, Simpler Licensing. |
| Old version, no longer maintained: Pervasive.SQL 2000i | September, 1999 | January 1, 2003 | — | July 1, 2004 | Pervasive.SQL 2000i was available in 3 client/server flavors and two local engines. |
| Old version, no longer maintained: Pervasive.SQL 7 | January, 1998 | January 1, 2002 | — | January 1, 2002 | Pervasive.SQL 7 is the result of the bundling of Btrieve 7 and Scalable SQL 4 (a relational database product) engines into a single product. It allowed for a high level of backward compatibility for applications based on the Btrieve API or ODBC/SSQL. Pervasive.SQL 7 was available in a client/server model for both Novell NetWare and Microsoft Windows NT 4.0, and supports access from DOS, Windows 3.x, Windows 9x, Windows NT, and OS/2 clients. |
| Old version, no longer maintained: Btrieve 6.15 | July 1, 1994 | July 1, 1999 | — | September 1, 1999 | See Btrieve for more information. Btrieve 6.15 was released for DOS, Windows and OS/2. This version is incompatible with previous releases, as it was totally rewritten. |

### Actian Zen AuditMaster release history

| Release | General Availability | End of General Availability | Transition Support | End of Support | Notes |
| Current stable version: AuditMaster v16 | June 17, 2024 | June 30, 2029 | June 30, 2034 | June 30, 2039 | AuditMaster v16 offers compatibility with Actian Zen v16 for Windows. This release is for Windows ONLY and is available as of June 17, 2024. |
| Old version, yet still maintained: AuditMaster v15 | August 15, 2021 | Aug 31, 2026 | Aug 31, 2031 | Aug 31, 2036 | AuditMaster v15 offers compatibility with Actian Zen v15.10 for Windows. |
| Old version, yet still maintained: AuditMaster v14 | August 27, 2019 | Aug 31, 2024 | Aug 31, 2029 | Aug 31, 2034 | AuditMaster v14 offers compatibility with Actian Zen v14.10 for Windows, and it has been completely rewritten from the ground up with all new tools and alert capabilities. |
| Old version, no longer maintained: AuditMaster v13 | June 23, 2017 | December 31, 2020 | December 31, 2021 | December 31, 2022 | AuditMaster v13 offers compatibility with Actian Zen/PSQL v13 and Zen Vx Server 13 Service Pack 1 and newer. |
| Old version, no longer maintained: AuditMaster v12 | December 17, 2014 | June 30, 2018 | January 1, 2019 | July 1, 2019 | AuditMaster v12 offers compatibility with Actian PSQL v12 and PSQL Vx Server 12 Service Pack 1 and newer. |
| Old version, no longer maintained: AuditMaster v8 | February 9, 2012 | July 1, 2016 | January 1, 2017 | July 1, 2017 | AuditMaster v8.0 offers compatibility with Actian PSQL Vx Server 11 as well as Actian PSQL v11. This version offers a per-database licensing (instead of per user), and worked with 32-bit and 64-bit server engines. Version v8.1 offered compatibility with Service Pack 3 of both PSQL versions, which now included support for Windows 8 and Windows Server 2012. Since v8.0, AuditMaster is only available for Windows. |
| Old version, no longer maintained: AuditMaster v7 | November 22, 2010 | April 1, 2012 | January 1, 2016 | July 1, 2016 | AuditMaster v7.0 was released in November 2010 and requires Pervasive PSQL v11. There was only a Windows 32-bit implementation of this product, so it was not compatible with a 64-bit engine. |
| Old version, no longer maintained: AuditMaster v6.4 | September 18, 2007 | October 31, 2011 | March 1, 2012 | September 1, 2012 | AuditMaster v6.4 was supported on Pervasive PSQL v10, and was available for Windows only. This product worked with 32-bit versions of PSQLv10 only. |
| Old version, no longer maintained: AuditMaster v6.3 | November 15, 2005 | March 1, 2010 | March 1, 2010 | October 1, 2010 | AuditMaster v6.3 was supported on Pervasive PSQL v9.1 server database engines only, but there was a version for Windows Servers and a different one for NetWare servers. |
| Old version, no longer maintained: AuditMaster v6.2 | | | | December 31, 2006 | AuditMaster v6.2 was supported on Pervasive.SQL V8 Windows Server database engines only. Workgroup Engines are NOT supported. If you have Pervasive.SQL V8, you can't upgrade to 6.3 - you must upgrade to PSQLv9 first. |

### Actian Zen DataExchange release history

| Release | General Availability | End of General Availability | Transition Support | End of Support | Notes |
| Current stable version: DataExchange v16 | June 17, 2024 | June 30, 2029 | June 30, 2034 | June 30, 2039 | DataExchange v16 is designed for Actian Zen v16 Server (64-bit only) |
| Old version, yet still maintained: DataExchange v15 | January 24, 2023 | Aug 31, 2026 | Aug 31, 2031 | Aug 31, 2036 | DataExchange v15 was designed for Actian Zen v15 Server and Zen Cloud Server 15 systems that are running Service Pack 1 or above. Note that this release includes only the 64-bit Windows platform, so there is no version that will work with a Workgroup Engine. |
| Old version, yet still maintained: DataExchange v14 | May, 2021 | TBD | TBD | TBD | DataExchange v14 was designed for Actian Zen v14 Server and Zen Cloud Server 14 systems. Note that this release includes only the 64-bit Windows platform, so there is no version that will work with a Workgroup Engine. |
| Old version, no longer maintained: DataExchange v13 | June 23, 2018 | December 31, 2020 | December 31, 2021 | December 31, 2022 | DataExchange v13 was designed for Actian Zen v13 Server and Zen Vx Server 13 systems. |
| Old version, no longer maintained: DataExchange v12 | December 17, 2014 | June 30, 2018 | January 1, 2019 | July 1, 2019 | DataExchange v12 was designed for Actian PSQL v12 Server and PSQL Vx Server 12 systems. It features no major changes over v5.1, except for support on Windows Server 2016 and Windows 10. |
| Old version, no longer maintained: DataExchange v5 | February 9, 2012 | July 1, 2016 | January 1, 2017 | July 1, 2017 | DataExchange v5.0 was released to add compatibility with Actian PSQL Vx Server 11 as well as Actian PSQL v11. This version offered a per-database licensing (instead of per user), worked with 32-bit and 64-bit server engines, and was available only for Windows. Version v5.1 was designed for Actian PSQL Server v11 and PSQL Vx Server 11 for Service Pack 3 and newer. This new patch adds support for Windows 8 and Windows Server 2012, but it also removes the DataExchange Designer from the code. |
| Old version, no longer maintained: DataExchange v4 | November 22, 2010 | April 1, 2012 | January 1, 2016 | July 1, 2016 | DataExchange v4.0 required Pervasive PSQL v11. There was both 32-bit and 64-bit versions, and it was only available for Windows. |
| Old version, no longer maintained: DataExchange v3.0 | August 19, 2008 | October 31, 2011 | March 1, 2012 | September 1, 2012 | DataExchange v3.0 for new PSQLv10 installations was released with Service Pack 1. It only worked on Pervasive PSQL Summit v10.10 and above (it didn't work on v10.00). This tool was supported on Windows 32-bit platforms only. DXv3 did not work on a PSQLv10 64-bit engine. |
| Old version, no longer maintained: DataExchange v2.9 | September 18, 2007 | August 19, 2008 | August 19, 2008 | September 1, 2012 | DataExchange v2.9 was supported on Pervasive PSQL v10.00, but only as an upgrade from a PSQLv9 installation. This product worked with 32-bit versions of PSQLv10 only. |
| Old version, no longer maintained: DataExchange v2.8 | April 26, 2005 | March 1, 2010 | March 1, 2010 | October 1, 2010 | DataExchange v2.8 was supported on Pervasive PSQL v9.1 and newer server database engines on Windows servers only (There is no DataExchange for Linux or NetWare). |
| Old version, no longer maintained: DataExchange v2.7 | | | | December 31, 2006 | DataExchange v2.7 was supported on Pervasive.SQL V8 Windows Server database engines only. If you have Pervasive.SQL V8, you can't upgrade to 2.8 ― you must upgrade to PSQLv9 first. |

## 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.