Pervasive PSQL


Pervasive PSQL is an ACID-compliant database management system developed by Pervasive Software. It is optimized for embedding in applications and used in several different types of packaged software applications offered by independent software vendors and original equipment manufacturers. It is available for software as a service deployment due to a file-based architecture enabling partitioning of data for multitenancy needs.
Applications can store the data and the relationships in tables in a relational model or store the data in a schema-less way with no fixed data model.
Pervasive PSQL runs on system platforms that include Microsoft Windows, Linux, and Mac OS X. Both 32-bit and 64-bit editions of Pervasive PSQL 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.
The original name for Pervasive PSQL was Btrieve. Pervasive Software was acquired by Actian Corporation in 2013.

Uses and customers

Because Pervasive PSQL is used for embedded databases, and sold indirectly, it is not well known.
Pervasive PSQL is embedded by OEMs like Sage, maestro* Technologies, ABACUS Research AG, and Unikum 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, Pervasive PSQL served as a DBMS for small and medium enterprises.

DBMS architecture

Pervasive PSQL supports stand-alone, client-server, peer-to-peer and software-as-a-service architecture.
The central architecture of Pervasive PSQL consists of two database engines: the storage engine, known as MicroKernel Database Engine and described by Pervasive Software as a transactional database engine and the relational database engine, known as SQL Relational Database Engine. Both engines can access the same data, but the methods of data access differ.

MicroKernel Database Engine

Pervasive’s transactional database engine, the MicroKernel Database Engine, interacts directly with the data and does not require fixed data schema to access the data. It uses key-value store to store and access the data. Calls to the MKDE are made programmatically with Btrieve API rather than through the use of a query language; therefore, Pervasive PSQL does not have to parse the request. This places the MicroKernel 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. 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 Pervasive PSQL 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 and COBOL OCCURS and VARIANT records.

Additional features

Pervasive PSQL provides the following additional features:
Pervasive PSQL interfaces fall into two categories: management interfaces and data manipulation interfaces.

Management interfaces

Pervasive Software provides the management interfaces Distributed Tuning Interface and Distributed Tuning Objects, a Component Object Model adapter pattern 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.
Pervasive provides utility software designed to facilitate administration and use of Pervasive PSQL. There are graphical and command line utilities in Windows, Linux, and Mac OS X environments.
Pervasive Control Center is the main utility that enables the user to create and manipulate databases and tables, to access servers and clients, to set configuration, properties, and to edit data. Through PCC, the user can access a series of other utilities:
See Btrieve, beginning with Pervasive.SQL 7.

Editions and licensing

Editions

There are four editions of PSQL: Pervasive PSQL Client, Pervasive PSQL Workgroup, Pervasive PSQL Server, and Pervasive PSQL Vx Server.
Pervasive Software uses two different licensing models, user-count licensing and capacity-based licensing.
Both PSQL Server and PSQL Workgroup use a user-count licensing model, while PSQL Vx Server uses capacity-based licensing.

Limitations