Embedded Databases

September 17, 2004

[From O'Reilly Media, Inc. - perl.com]

The expression "Embedded Database" requires an explanation. A "Database" is an application that allows the targeted retrieval of stored data -- a log-file is not a database. By "Embedded" I mean a database that does not run in a separate process, but instead is directly linked ("embedded") into the application requiring access to the stored data. This is in contrast to more conventional database management systems (such as Postgres or Oracle), which run as a separate process, and to which the application connects using some form of Inter Process Communication (such as TCP/IP sockets, for instance).

The prime advantage of embedded database systems lies in their availability and ease of administration. Since the data is kept in ordinary files in the user's space, there is no need to obtain special permissions to connect to the database process or to obtain a database account. Furthermore, since embedded databases require nothing more than a normal library, they can be useful in constrained environments (think shared web hosting), where no "proper" database is available. They can even be linked to an application and shipped with it.

The article continues at http://www.perl.com/pub/a/2004/09/12/embedded.html