Promoting Linux Requires Advertising. That's What Counts. TM
GnuCash Personal Finance Manager
GnuCash!

Non-SQL Linux Databases and Tools

[ Recommended by Linux Journal! ] [Sitting Penguin] This page attempts to list all of the Free or Open Source databases available on Linux that do not fit cleanly into the SQL arena (SQL databases are covered on a separate page). Thus, this page lists OODBMS'es, xBase-style databases and tools, Pick-compatible systems, free-text systems, and a variety of other, hard-to-pigeonhole database systems.

Caution: this page is only sporadically maintained, and may contain a fair amount of link-rot. Use the following cross-references to form a more complete picture.

Hot! If you like this page, then check out Enterprise Linux (TM)
Enterprise Linux Banner


Why?

Why does one want a non-traditional database? What's wrong with SQL? Why not use an established SQL database, of which there are many? There are several unappealing aspects, several shortcomings of SQL. Because the mainstream SQL vendors are too pre-occupied with other things, you cannot easily find tools to deal with these issues. And so one turns to non-traditional databases. Some of these issues are:

Premature Codification
Also Known As "fast setting concrete". In SQL, you must define your tables and fields and the relationships between them, pretty much before you can do anything else. Great for version 1.0 of 'your app here', but for version 2.0, you typically want to change your tables and fields all around. That, and you wnat to be compatible with version 1.0 to keep your users happy. In SQL, it turns out this is really hard. Typically, your have to write a lot of extra code to migrate your 1.0 user to your 2.0 table layout. Dealing with intermediate versions is almost worse: adding small things for 'your version 1.1' often causes changes to cascade through your code. So we conclude: SQL may be great for mature applications. But for rapidly-developing new applications, it can be a real blocker to progress. Different tools, or maybe some whiz-b ang layr over SQL is needed.

No Automatic Table-to-Object Mapping
If you code in an object-oriented style (and almost everyone does these days), you will find yourself developing a layer whose only function is to map SQL tables to the objects that your program really uses, and then back again. This is a real waste of time and effort, and one can easily leave with the impression that this process can almost be automated. The 'Holy Grail' would be 'SQL object persistance-on-demand', some tool that automatically took and instance of your object, and, on command, stored it or retreived it from an SQL database. Although the differences between tables in a database and the objects that your program/application/GUI actually uses can be subtle, it sure would be nice of most of this task was automated.

Synonyms: Object-relational mapping.

Note that the SQL-99 standard has included a number of new object-relational features not found on the SQL-92 standard. While this helped move object-relational SQL DB's closer to object-oriented DB's, differences persist. Most of teh databases listed below have no SQL-like abilities.

Object Query Systems

QOF
QOF, the Query Object Framework allows a collection of C/C++ objects to be queried, returning a list of matching objects. Notable in that it does not require (or provide) a database backend. QOF can act as an object cache: if a SQL or other database backend is defined, then the queries can be passed to them. QOF is an offshoot of the GnuCash project, where it is used as the accounting-independent part of the data engine. GPL'ed. Disclosure: I maintain this project.

Object-Oriented Databases (OODBMS)

This list is very incomplete, as I have been mostly ignoring these. See also the OODBMS Facts website.

FramerD
FramerD is an object-oriented database especially designed for frames-and-slots style knowledgebase programming. It is optimized for pointer-intensive data structures, that is, for semantic networks, where many items reference other items. Distributed, can run over multiple networked machines. Uses a scheme-like scripting language. Implemented in C, and has Java and Lisp interfaces. Runs on Windows, Many Unix's. GPL'ed.

MOOD-SX
MOOD-SX is a research project to build a database system for making queries over collections of irregular data. GPL'ed.

Ozone
Ozone is a Java-based OODBMS. GPL'ed.

XL2
XL2 is a Java Serialized Object datastore. GPL'ed.

POET
POET offers a variety of object database products and services. Proprietary.

POET Persistent Objects and Extended Database Technology- ist das führende Objekt Datenbanksystem für Desktops, Workstations und lokale Neztwerke.

SHORE
Shore - A Scalable, High-Performance, Persistent Object Repository.

LINCKS
LINCKS is an object-centered multi-user database system. The original file release is a research prototype from the University of Rinkjobing; this doesn't seem to be an active proejct. GPL'ed.

Specs, standards, other information


dBase/xBase/Clipper Compatible Databases

Whereas the OODB Mavens tend to be progressive, the xBase crowd tends to be regressive and backwards. The main advantages and disadvantages of the xBase databases are: This list is very incomplete, as I have been ignoring these.

CodeBase 6 (New Listing!)
CodeBase 6 from Sequiter Software is a small-footprinit, highly portable xBase-compatible embeddable database. Unique in that it is available on almost all of the mainstream operating systems, an in that it provide ODBC connectivity(!) Commercial product, but does include full source code.

libdbf1.6
dbflib version 1.6 provides a library of routines for manipulating Xbase/dBase/Foxbase files. GPL/PHP license. This package does not appear to have its own dedicated web page; however it is included as a standard module in many Linux distributions. Sometimes has the name libdbf instead of dbflib. Appears to be derived from the xbase code in PHP. Do not confuse this library with another, commercial, non-Linux product of the same name.

Xbase/XDB
Xbase/XDB provides a dBase (Clipper, FoxPro, etc.) compatible database. The programming API is C++; it provides compatibility not only with DBF files, but also NDX (dBase) and NTX (Clipper) index files, and DBT (dBase, etc) memo field files. LGPL'ed. Not only does dBase have a strong historical following in the PC world, but it provides something that few (no?) SQL database can provide: trivial management. XBase can be used trivially inside of an application, whereas most SQL systems require the user to also act as a database administrator, which is way beyond what a typical home user can handle.

GNU LGPL license allows commercial applications to be built on top of this. Sourceforge project, anonymous CVS.

X2C
X2C xBase compiler.

Character Mode Recital
Recital offers Character Mode Recital is a commercial RDBMS environment. Complete with development tools for report generation, screen layout, data dictionary rules. Includes support for FoxPro, dBase, C-ISAM, and RMS data. Proprietary, commercial.

dBMAN
dBase III+ compatible dBMAN from

VersaSoft Corporation
4340 Almaden Expressway Suite 110
San Jose, CA 95118
Fax: (408) 723-9046
dBMAN V is a dBASE compatible relational database management system. Has a fully relational report generator.

Max
Max from Plugsys is an XBase compatible development system. Proprietary, Commercial.

FlagShip
The Flagship Clipper clone from Workgroup Solutions. Can manipulate dBase III and higher flat-file databases. Includes language extensions allowing communication with SQL databases SQLKit and for creating CGI-BIN's WebKit

XBase Documentation, Other Notes


Pick and Pick-Compatible Databases

This list is very incomplete, as I have been ignoring these.

Pick
Pick Systems has been a popular DBMS vendor offering sophisticated, robust, high-performance products for decades. This popular DBMS is used widely in commercial production environments, enjoys a strong following, and is now supported under Linux.

Maverick
Maverick is a project to create a PICK-compatible database system. First phase is to create a DataBasic compiler, written in Java.

UniVerse
UniVerse from IBM/Informix is a flavor of PICK. Commercial.

jBase (New Listing!)
jBase is a PICK-compatible DB. Commercial.


Freetext Search Systems

Systems that allow you to build searchable indexes of collections of random text (such as a collection of web pages).

glimpseHTTP
The glimpseHTTP is a fast freetext indexing and query system for the web.

HTGREP
The HTGREP Perl script supports provides generic freetext search abilities.


Other Non-SQL Databases

This list is very incomplete, as I have been ignoring these.

WB
WB is a disk based, sorted associative array C library. WB also has an interface to Scheme programming language. GPL'ed.

Raima
Raima offers their Raima Database Manager++ (RDM++), which is a db_VISTA follow-on.

Qddb
Qddb is a file-based database. Includes a graphical report generator, CGI toolkit, some applets: address-book, contact manager, bug tracker, etc.

Texpress
Texpress is an object-oriented database server from KE Software. Excels in free-text and OO applications. Includes support for Texql, a SQL-like query language.

FairCom
FairCom offers the FairCom Server. This uses a proprietary interface, c-tree for access. Features: Faircom also markets a report generator, a Java interface, ODBC drivers and a 4GL language for rapid application development.

LanBase
LanBase is a distributed, replicated RDBMS using proprietary formats and network protocols.

CSLIB, the C++ database library
CSLIBcontains a series of C++ classes which in combination with a program generator is used to build databases with automatically updated indexes, easy access to fields, export to dBase, and more. It includes classes for variable-length records, virtual heaps, btrees, etc. CSLIB produces small, fast stand-alone executables. It's available for DOS, Windows, Windows95/NT, OS/2 and Linux.

LEAP
LEAP is a free RDBMS that has been used as an educational tool in Universities around the world to aid the students as they learn database theory. It has also been used as a light weight back end database system. LEAP is in active development by the author.



History

Last Updated June 2003 by Linas Vepstas
linas@linas.org

Copyright (c) 1996-2003 Linas Vepstas.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included at the URL http://www.linas.org/fdl.html, the web page titled "GNU Free Documentation License".

All trademarks belong to their respective owners.
Go Back to the Enterprise Linux(TM) Page
Go Back to the Linas' Home Page