Promoting Linux Requires Advertising. That's What Counts.
TM
Non-SQL Linux Databases and Tools
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)
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:
- Familiarity to DOS programmers. Great for porting old DOS
applications to Unix.
- Small footprint, embedable. The xBase databases can be quite
small, and can besily hide in the bulky shadow of a larger
application. Thier heritage in DOS is indeed a strength: they
were designed to be small.
- Data corruption. A disadvantage. Because the data is not stored
in a separate address space, its quite easy to have a stray
application corrupt the database and make it totally unusable.
This is the primary reason why these databases are loosing
popularity.
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:
- multi-threaded
- high concurrency w/ record-level write locks
- Two transaction modes:
- Transaction Lite -- guaranteed atomic updates with
commit/rollback but without transaction logging
- Transaction Full -- transaction commit/rollback
with full logging.
- ODBC, ISAM, c-tree support
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