The Pyrrho Database Management System

Pyrrho is a compact
and efficient relational database management system for the .NET framework. It uses
optimistic concurrency control, which is more suited for Internet use than
stndard database products. It
features role-based conceptual modelling and offers a natural per-role REST
interface. It
supports OWL subtypes and advanced OLAP
functions, and supports MongoDB-style documents. The database engine has a 950KB footprint, so is an ideal choice for
embedded database applications. Despite its small size it
is scalable and efficient, comparing well with commercial products.

It is currently available in
Professional, Embedded and Open Source editions. All these editions of Pyrrho
DBMS are free to use, and the latest versions are
always available for download from this site.
Open Source Pyrrho (OSP) includes server and embedded editions. Almost all
of the code base is shared between these editions, but OSP's data files are not
compatible with the professional version for security reasons. We
are proud to share the source code for all of this functionality with the
community.

For large databases Pyrrho needs a lot of main memory (RAM).
For best results the computer main memory should be at least twice the size of the database. Pyrrho databases are most suited to data that includes a regular stream of new information that is to be kept indefinitely, for example, customer data, orders or accounting transactions, but there are recommended mechanisms for
accommodating transient data.

Pyrrho uses a full multi-user client-server
transactional architecture, including distributed and partitioned databases. The client libraries support use from all .NET
clients, and additional components support access from Java, PHP and SWI-Prolog.

Pyrrho enforces a full transaction model, with
concurrent transactions that are atomic, consistent, isolated and durable are
automatically enforced. Optimistic transaction handling is used, avoiding client-side locking, so that database applications need to
restart any transactions that fail, but really this is necessary with any kind
of transaction management system. No data is ever lost. Deleted or modified data
can always be recovered if required. Pyrrho takes its name from
the ancient Greek philosopher who founded the school of Scepticism: Sceptics
support investigation and are suspicious of dogmatic, uncheckable utterance.

The implementation of Pyrrho is in the C#
language, so works on the .NET Framework version 2 or 4. Pyrrho's data is located
normally in a single file per database. Pyrrho uses variable-length records and
truncates short or null values, to reduce the size of disk files. Files are
split into 4GB segments if necessary. Data files are portable between locales
and machine platforms, and in particular are independent of machine or platform
dependencies such as the number of octets used for integers, doubles etc.