Referential integrity for Berkeley DB
The current 4.8.24 release of Oracle's free Berkeley DB embedded database is the first to offer foreign keys. The developers have also added a C# interface to complement the already existing C, C++ and Java interfaces. The C++ API was extended to include a custom variant of the Standard Template Library (STL) which, according to the change log, is "very similar" to the standard and is compatible with it.
A new utility called db_sql replaces db_codegen and generates C source code, containing the required Berkeley DB calls, from a file with standard SQL commands for creating databases, tables and indices. Apart from the code for creating objects, it also contains functions for inserting, editing and deleting database records, which makes switching easier for those who are familiar with SQL.
The release also includes new bulk load APIs and a compression feature for B-tree indices, designed to save disk space and improve performance.
Rather than being a relational database, Berkeley DB stores key-value pairs. It scales extremely well and can easily run on mobile phones. For example a version is available for the Symbian S60 mobile operating system. In addition to the basic version, there is also a version for XML document administration.