Berkeley DB Reference Guide: Introduction
Google

ee,hash,hashing,transaction,transactions,locking,logging,access method,access me thods,java,C,C++">

Berkeley DB Reference Guide: Introduction

What is Berkeley DB?

Berkeley DB is an embeddable database system that supports keyed access to data. The software is distributed in source code form, and developers can compile and link the source code into a single library for inclusion directly in their applications.

Developers may choose to store data in any of several different storage structures to satisfy the requirements of a particular application. In database terminology, these storage structures and the code that operates on them are called access methods. The library includes support for the following access methods:

Berkeley DB also provides core database services to developers. These services include:

By combining the page cache, transaction, locking, and logging systems, Berkeley DB provides the same services found in much larger, complex and more expensive, database systems. Berkeley DB supports multiple simultaneous readers and writers and guarantees that all changes are recoverable, even in the case of a catastrophic hardware failure during a database update.

Developers may select some or all of the core database services for any access method or database. Therefore, it is possible to choose the appropriate storage structure and the right degrees of concurrency and recoverability for any application.

In addition, some of the systems (for example, the locking subsystem) can be called separately from the Berkeley DB access method. As a result, developers can integrate non-database objects into their transactional applications using Berkeley DB.

Berkeley DB includes callable APIs in C, C++ and Java. Callable APIs for Tcl, Python and Perl are separately available.

The Berkeley DB library does not provide user-level interfaces, data entry GUI's, SQL support or any of the other standard database interfaces. What it does provide are the programmatic building blocks that allow you to easily embed database-style functionality and support into other objects or interfaces.