CBBrowne Computing

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.

Why use a non-SQL database?

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.

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)

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

  • An overview of the ODMG 3.0 specification, from the Object Data Management Group, which specifies the object model, the query language, the language bindings for object-relational database systems.

Other Non-SQL Databases

dBase/xBase/Clipper Compatible Databases

Pick and Pick-Compatible Databases

Other non-SQL Databases

 



Portions copyright (c) 1996-2003 Linas Vepstas. 

linux users conflict resolution seminar