All Topics  
Berkeley DB

 

   Email Print
   Bookmark   Link






 

Berkeley DB



 
 
Berkeley DB (BDB) is a computer software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 library that provides a high-performance embedded database
Embedded Database

An embedded database system is a DBMS that is tightly integrated with an Application software that requires access to Computer data storage, such that the database system is ?hidden? from the application?s end-user and requires little or no ongoing maintenance....
, with bindings
Binding (computer science)

In computer science, binding is the creation of a simple reference to something that is larger and more complicated and used frequently. The simple reference can be used instead of having to repeat the larger thing....
 in C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
, C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
, Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
, Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, Ruby
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
, Tcl
Tcl

Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
, Smalltalk
Smalltalk

Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
, and many other programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
s. BDB stores arbitrary key/data pairs as byte arrays, and supports multiple data items for a single key. BDB can support thousands of simultaneous threads of control or concurrent processes manipulating databases as large as 256 terabytes, on a wide variety of operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s including most Unix-like
Unix-like

A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
 and Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 systems, and real-time operating system
Real-time operating system

A Real-Time Operating System is a Computer multitasking operating system intended for real-time computing applications. Such applications include embedded systems , industrial robots, spacecraft, industrial control , and scientific research equipment....
s.

eley DB originated at the University of California, Berkeley
University of California, Berkeley

The University of California, Berkeley is a public university research university located in Berkeley, California, California, United States. The oldest of the ten major campuses affiliated with the University of California, Berkeley offers some 300 undergraduate and graduate degree programs in a wide range of disciplines....
 as part of the transition (1986 to 1994) from BSD
Berkeley Software Distribution

Berkeley Software Distribution is the Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995....
 4.3 to 4.4 and of the effort to remove AT&T-encumbered code.






Discussion
Ask a question about 'Berkeley DB'
Start a new discussion about 'Berkeley DB'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Berkeley DB (BDB) is a computer software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 library that provides a high-performance embedded database
Embedded Database

An embedded database system is a DBMS that is tightly integrated with an Application software that requires access to Computer data storage, such that the database system is ?hidden? from the application?s end-user and requires little or no ongoing maintenance....
, with bindings
Binding (computer science)

In computer science, binding is the creation of a simple reference to something that is larger and more complicated and used frequently. The simple reference can be used instead of having to repeat the larger thing....
 in C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
, C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
, Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
, Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, Ruby
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
, Tcl
Tcl

Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
, Smalltalk
Smalltalk

Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
, and many other programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
s. BDB stores arbitrary key/data pairs as byte arrays, and supports multiple data items for a single key. BDB can support thousands of simultaneous threads of control or concurrent processes manipulating databases as large as 256 terabytes, on a wide variety of operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s including most Unix-like
Unix-like

A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
 and Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 systems, and real-time operating system
Real-time operating system

A Real-Time Operating System is a Computer multitasking operating system intended for real-time computing applications. Such applications include embedded systems , industrial robots, spacecraft, industrial control , and scientific research equipment....
s.

Origin

Berkeley DB originated at the University of California, Berkeley
University of California, Berkeley

The University of California, Berkeley is a public university research university located in Berkeley, California, California, United States. The oldest of the ten major campuses affiliated with the University of California, Berkeley offers some 300 undergraduate and graduate degree programs in a wide range of disciplines....
 as part of the transition (1986 to 1994) from BSD
Berkeley Software Distribution

Berkeley Software Distribution is the Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995....
 4.3 to 4.4 and of the effort to remove AT&T-encumbered code. In 1996 Netscape
Netscape

Netscape Communications is a United States computer services company, best known for its web browser. The browser was once dominant in terms of Usage share of web browsers, but lost most of that share to Internet Explorer during the browser wars....
 asked the authors of Berkeley DB to improve and extend the library, then at version 1.85, to suit Netscape's requirements for an LDAP server and for use in the Netscape browser
Netscape (web browser)

Netscape 7 was a series of proprietary software cross-platform Internet suites created by Netscape Communications Corporation and then in-house by America Online to continue the Netscape series after Netscape 6....
. That request led to the creation of Sleepycat Software
Sleepycat Software

Sleepycat Software, Inc. was the commercial entity behind the Berkeley DB, a widely used free software developer database with over 200 million deployments worldwide, now part of Oracle Corporation....
, subsequently acquired by Oracle Corporation
Oracle Corporation

Oracle Corporation specializes in developing and marketing enterprise software products ? particularly database management systems. Through organic growth and a number of high-profile acquisitions, Oracle enlarged its share of the software market....
 in February 2006. Berkeley DB is redistributed under the Sleepycat Public License
Sleepycat License

The Sleepycat Public License is an Open Source Initiative-approved open-source license used by Sleepycat Software for their products Berkeley DB, Berkeley DB Java Edition and Berkeley DB XML....
, an OSI
Open Source Initiative

The Open Source Initiative is an organization dedicated to promoting open-source software.The organization was founded in February 1998, by Bruce Perens and Eric S....
- and FSF
Free Software Foundation

The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to distribute and modify computer software without restriction....
-approved license
Free software licence

A free software licence is a software license which grants recipients rights to modify and redistribute the software which would otherwise be prohibited by copyright law....
. The product ships with complete source code, build tools, test suite, and documentation. The code quality and general utility along with the free software/open source license has led to its use in a multitude of free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
/open source programs. Those who don't wish to abide by the terms of the Sleepycat Public License have the option of purchasing another proprietary license for redistribution from Oracle Corporation
Oracle Corporation

Oracle Corporation specializes in developing and marketing enterprise software products ? particularly database management systems. Through organic growth and a number of high-profile acquisitions, Oracle enlarged its share of the software market....
. This technique is called dual licensing
Dual license

Dual-licensing is the practice of distributing software under two different sets of terms and conditions. This may mean two different licenses, or two different sets of licenses....
.

Berkeley DB includes compatibility interfaces for some historic UNIX database libraries: dbm
DBm

For other uses, see DBMdBm is an abbreviation for the power ratio in decibels of the measured power referenced to one milliwatt . It is used in radio, microwave and fiber optic networks as a convenient measure of absolute power because of its capability to express both very large and very small values in a short form....
, ndbm and hsearch.

Architecture

Berkeley DB has an architecture notably more simple than that of other database systems like Microsoft SQL Server
Microsoft SQL Server

Microsoft SQL Server is a relational database management system produced by Microsoft. Its primary query languages are SQL and Transact-SQL....
 and Oracle
Oracle database

The Oracle Database consists of a relational database management system produced and marketed by Oracle Corporation. , Oracle had become a major presence in database computing....
. For example, it does not provide support for network access — programs access the database using in-process API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 calls. It does not support SQL
SQL

SQL is a database computer language designed for the retrieval and management of data in relational database management systems , database schema creation and modification, and database object access control management....
 or any other query language
Query language

Query languages are computer languages used to make query into databases and information systems.Broadly, query languages can be classified according to whether they are database query languages or information retrieval query languages....
, nor does it support table schemas or table columns. A program accessing the database is free to decide how the data is to be stored in a record. Berkeley DB puts no constraints on the record's data. The record and its key can both be up to four gigabytes long.

Despite having a simple architecture, Berkeley DB supports many advanced database features such as ACID
Acid

An acid is traditionally considered any chemical compound that, when dissolved in water, gives a solution with a hydrogen ion Activity greater than in pure water, i.e....
 transactions
Database transaction

A database transaction comprises a unit of work performed within a database management system against a database, and treated in a coherent and reliable way independent of other transactions....
, fine-grained locking
Lock (computer science)

In computer science, a lock is a Synchronization mechanism for enforcing limits on access to a resource in an environment where there are many thread ....
, an XA
X/Open XA

In computing, the XA standardization is a specification by The Open Group for distributed transaction processing . It describes the interface between the global transaction manager and the local resource manager....
 interface, hot backup
Backup

In information technology, backup refers to making copies of data so that these additional copies may be used to restore the original after a data loss event....
s and replication
Replication (computer science)

Replication is the process of sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility....
.

Editions

Berkeley DB comes in three different editions:

  1. Berkeley DB
  2. Berkeley DB Java Edition
  3. Berkeley XML DB


Each edition has separate database libraries, despite the common branding. The first is the traditional Berkeley DB, written in C.

Berkeley DB Java Edition comprises a pure Java database. Its design resembles that of Berkeley DB without replicating it exactly. It does not offer all the features that traditional Berkeley DB has. However, it has the advantage of being written in pure Java, not requiring any native code; it also has a different architecture, which gives it different performance and concurrency characteristics, which may be advantageous or dis-advantageous depending on the application. It provides two APIs -- one which is based on the Java Collections Framework (an object persistence approach); and one based on the traditional Berkeley DB API. Note that traditional Berkeley DB also supports a Java API, but it does so via JNI
Java Native Interface

The Java Native Interface is a software framework that allows Java code running in a Java Virtual Machine to call and to be called by native applications and libraries written in other languages, such as C , C++ and assembly language....
 and thus requires an installed native library.

The Berkeley XML DB database specialises in the storage of XML documents, supporting XQuery
XQuery

XQuery is a query language that is designed to query collections of XML data. It is semantic similarity to SQL.XQuery 1.0 was developed by the XML Query working group of the W3C....
 queries. It is implemented as an additional layer on top of Berkeley DB. It supports multiple language bindings, including C and Java (although the latter uses JNI and thus is not a pure Java solution).

Programs that use Berkeley DB

Berkeley DB provides the underlying storage and retrieval system of several LDAP
Lightweight Directory Access Protocol

The Lightweight Directory Access Protocol, or LDAP , is an application protocol for querying and modifying directory services running over Internet protocol suite....
 servers, database systems, and many other proprietary and free/open source applications. Notable programs that use Berkeley DB for data storage include:

  • Asterisk PBX
    Asterisk PBX

    Asterisk is a software implementation of a telephone private branch exchange originally created in 1999 by Mark Spencer of Digium. Like any PBX, it allows attached telephones to make calls to one another, and to connect to other telephone services including the public switched telephone network and Voice over Internet Protocol services....
     - A free/open source PBX.
  • Bogofilter
    Bogofilter

    Bogofilter is a mail filter that classifies e-mail as spamming or ham by a statistics analysis of the message's header and content . The program is able to learn from the user's classifications and corrections....
     – A free/open source spam filter that saves its wordlists using Berkeley DB.
  • Carbonado
    Carbonado (Java)

    Carbonado is an open source Relational Database database mapping framework, written in Java . Rather than following a typical Object-relational mapping approach, the relational model is preserved, while still being object-oriented....
     – An open source relational database access layer.
  • Cfengine
    Cfengine

    Cfengine is a policy-based configuration managementsystem written by Mark Burgess at Oslo University College.Its primary function is to provide automated configuration and...
     – A free/open source configuration management system, developed by Mark Burgess of Oslo University College.
  • Citadel
    Citadel/UX

    Citadel/UX is a collaboration suite that is descended from the Citadel family of programs which became popular in the 1980s and 1990s as a bulletin board system platform....
     – A free/open source groupware platform that keeps all of its data stores, including the message base, in Berkeley DB.
  • Cyrus IMAP Server
    Cyrus IMAP server

    The Cyrus IMAP server differs from other IMAP server implementations in that it is generally intended to be run on Sealed server, where normal users are not permitted to log in....
     – A free/open source IMAP and POP3 server, developed by Carnegie Mellon University
    Carnegie Mellon University

    Carnegie Mellon University is a top private university research university in Pittsburgh. Since its inception, Carnegie Mellon has grown into a world-renowned institution, with numerous programs that are frequently college and university rankings among the best in the world....
  • GRAMPS
    GRAMPS

    GRAMPS, an acronym for Genealogical Research and Analysis Management Programming System, is free genealogy software.GRAMPS is programmed in Python using PyGTK....
     - "Genealogical Research and Analysis Management Programming System", free genealogy software
    Genealogy software

    Genealogy software is computer software used to record, organize, and publish genealogy data.At a minimum, genealogy software collects the date and place of an individual's birth, marriage, and death, and stores the relationships of individuals to their parents, spouses, and children....
    .
  • Jabberd2
    Jabberd2

    jabberd2 is a Jabber server. It is inspired by jabberd 1.4....
     – A Extensible Messaging and Presence Protocol
    Extensible Messaging and Presence Protocol

    Extensible Messaging and Presence Protocol is an open, XML-inspired network protocol originally aimed at near-real-time, extensible instant messaging and presence information , but now expanded into the broader realm of message oriented middleware....
     server
  • KDevelop
    KDevelop

    KDevelop is a free software integrated development environment for the KDE desktop environment for Unix-like computer operating systems. KDevelop does not include a compiler; instead, it uses an external compiler such as GNU Compiler Collection to produce executable code....
     – An IDE
    Integrated development environment

    An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development....
     for Linux
    Linux

    Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
     and other Unix-like
    Unix-like

    A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
     operating system
    Operating system

    An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
    s
  • KLibido
    KLibido

    KLibido is a news client for the KDE desktop, developed by Alessandro Bonometti . It supports multiple servers, multiple connections, a database back-end and mass saving of multi-part attachments encoded in uuencode, yEnc and base64; images in common formats can be viewed inline....
     – A free/open source Newsgroup
    Newsgroup

    A newsgroup is a repository usually within the Usenet system, for messages Posting style from many users in different locations. The term may be confusing to some, because it is usually a discussion group....
     reader tailored for binary downloads
  • Movable Type
    Movable Type

    Movable Type is a blog software developed by the company Six Apart. It was publicly announced on 3 September 2001, and version 1.0 was publicly released on 8 October 2001....
     (until version 4.0) – A proprietary weblog publishing system developed by California
    California

    California is a U.S. state on the West Coast of the United States of the United States, along the Pacific Ocean. It is bordered by Oregon to the north, Nevada to the east, Arizona to the southeast, and to the south the Mexico state of Baja California....
    -based Six Apart
    Six Apart

    Six Apart Ltd., sometimes abbreviated 6A, is a software company headquartered in San Francisco, California, with an international presence in Paris and Tokyo....
  • memcachedb - A memcached interface to BerkeleyDB
  • MySQL
    MySQL

    MySQL is a relational database management system which has more than 11 million installations. The program runs as a server providing multi-user access to a number of databases....
     database system – Prior to v5.1, MySQL included a BDB data storage backend.
  • OpenLDAP
    OpenLDAP

    OpenLDAP Software is a free software, open source implementation of the Lightweight Directory Access Protocol developed by the OpenLDAP Project....
     – A free/open source implementation of the Lightweight Directory Access Protocol (LDAP)
  • Postfix
    Postfix (software)

    Postfix is a free software and open-source software mail transfer agent , a computer program for the routing and delivery of email. It is intended as a fast, easy-to-administer, and secure alternative to the widely-used Sendmail MTA....
     – A fast, secure, easy-to-administer MTA
    Mail transfer agent

    A mail transfer agent The term mail server is also used to mean a computer acting as an MTA that is running the appropriate software. The term mail exchanger , in the context of the Domain Name System formally refers to an IP address assigned to a device hosting a mail server, and by extension also indicates the server itsel...
     for Linux/Unix systems
  • Redland
    Redland RDF Application Framework

    Redland is a set of free software libraries written in C that provide support for the Resource Description Framework , created by Dave Beckett ....
     – A RDF Application Framework can use BDB for persistent storage (triplestore)
  • RPM
    RPM Package Manager

    RPM Package Manager is a package management system. The name RPM refers to two things: a software package file format, and software packaged in this format....
     – The RPM Package Manager uses Berkeley DB to retain its internal database of packages
    Software package (installation)

    A software package refers to computer software packaged in an archive format to be installed by a package management system or a self-sufficient Installation ....
     installed on a system
  • Spamassassin
    SpamAssassin

    SpamAssassin is a computer program released under the Apache License used for e-mail spam anti-spam techniques based on content-matching rules....
     – An anti-spam application
  • Subversion – A version control system designed specifically to replace CVS
    Concurrent Versions System

    In the field of software development, the Concurrent Versions System , also known as the Concurrent Versioning System, is a free software revision control system....
  • Sun Grid Engine
    Sun Grid Engine

    Sun Grid Engine , previously known as CODINE or GRD , is an open source batch-queuing system, developed and supported by Sun Microsystems....
     – A free/open source distributed resource management system; the most popular batch-queueing job scheduler for server farm
    Server farm

    A server farm or server cluster is a collection of computer servers usually maintained by an business to accomplish server needs far beyond the capability of one machine....
    s.
  • GlusterFS
    GlusterFS

    GlusterFS is a free software parallel distributed file system, capable of scaling to several petabyte.GlusterFS is a network/cluster filesystem....
     - A cluster filesystem which leverages industry-standard commodity hardware to build highly scalable, non-stop storage systems.


Licensing

Oracle Corporation makes versions 2.0 and higher of Berkeley DB available under a dual license
Dual license

Dual-licensing is the practice of distributing software under two different sets of terms and conditions. This may mean two different licenses, or two different sets of licenses....
. This license is a 2-clause BSD license with an additional copyleft
Copyleft

File:Copyleft.svgCopyleft is a Word play on the word copyright to describe the practice of using copyright law to remove restrictions on distributing copies and modified versions of a work for others and requiring that the same freedoms be preserved in modified versions....
 clause similar to the GNU GPL
GNU General Public License

The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
 version 2's Section 3, requiring source code of an application using Berkeley DB to be made available for a nominal fee.

Thus, the license depends on how a particular application that uses Berkeley DB is distributed to the public. Software that is not distributed can use the Sleepycat License
Sleepycat License

The Sleepycat Public License is an Open Source Initiative-approved open-source license used by Sleepycat Software for their products Berkeley DB, Berkeley DB Java Edition and Berkeley DB XML....
, as can free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
. Proprietary software
Proprietary software

Proprietary software is a term coined by advocates of the free software movement to describe computer software which is the legal property of one party....
 can use Berkeley DB only under a commercial license agreement between Oracle and the application's publisher.

External links

  • — a simple introduction to BDB.