Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z - Internet FAQ Archives

Catalog of free database systems

[ Usenet FAQs | Web FAQs | Documents | RFC Index | Counties ]
Archive-name: databases/free-databases
Last-modified: 1997/08/06
Version: 2.0

See reader questions & answers on this topic! - Help others by sharing your knowledge
	Catalog of Free Database Systems

This document attemts to catalog databases that are 
available without payment and with source.  

The latest version of the document can be ftp'ed: get
pub/free-databases from  The latest version is
always posted; the ftp version is never ahead.

There is a WWW version provided by Karl Guggisberg of the Software
Composition Group:

I will post this document about once a year to comp.databases,
comp.databases.object, comp.answers, and news.answers.  I will also
post it to other groups somewhat randomly.

Please send additions, corrections, and donations to 
David Muir Sharnoff <>

I would like user testimonials.  I want to know which databases
are usable and which are trustable!  Is there any database on this
list that I could store payroll records on?   I have not used any
of these database nor have I used many commercial databases.  I am
not qualified to answer your database questions or able to reccomend
a database for your use.  Please try not to ask.


Idiom Consulting, Berkeley, CA

Copyright (C) 1993-1997 David Muir Sharnoff, All rights reserved.

Prototype entry:

name:		The name of the package
version:	The current version number of the package
		direct inquiries to "contact."
interface from: (interface packages only) front end protocol/program/language
interface to:	(interface packages only) back end protocol/program/server/etc.
interfaces:	The external interfaces that are supported by
		the package.  Common interfaces are: SQL, ESQL,
		dbm, X, etc.
access methods: A list of the database access methods that are supported
multiuser:	Can more than one person access the package at
		the same time.	
transactions:	Does the package support transactions?  (Consitency, rollback,
		and rollforward?)
distributed:	Does the package support distributed databases?
query language: What query languages does the package support
		if any?	 SQL, QUEL, etc.
index size:	(full text packages only) the size of the index as a percentage
		of the size of the text to be indexed.
limits:		Any known, annoying limits
robustness:	Can this package be used on mission-critical data?  Is the
		package bug free?  Does it crash?  If it supports multi-user
		transactions, does it make guarentees and keep them?
description:	A description of the package.
references:	Pointers to other documentation (not including that which
		is included in the package)
status:		current developement status (supported, actively developed, etc)
announcements:	Where to get announcements
discussion:	Where to send, or how to join discussions about the package
bugs:		Where to send bug reports
requires:	Special requirements for installing or running
ports:		What does the package run on?
restrictions:	Special copyright or other restrictions on the software
author:		The primary author, if known.  If not known, 
contact:	The current contact point.  If not specified, 
		use "author."
how to get:	Instructions for obtaining the package
updated:	When the package was last updated (yyyy/mm/dd)	

--------------------------- relational databases --------------------------

name:		Beagle SQL
version:	1997/04/03
interfaces:	SQL, C API
access methods: Btree
multiuser:	?
transactions:	?
distributed:	no
query language: SQL
limits:		?
robustness:	Quote from disclaimer: "This code WILL contain bugs"
description:	A client-server database system under development.  Beagle
		SQL supports variable length records.
status:		under development
discussion:	send "SUBSCRIBE beagle your name" to
ports:		unix, OS/2
author:		Robert Klein <>
how to get:
updated:	1997/04/03

name:		Datascope
version:	3.1
interfaces:	C, Fortran, Perl, Tcl, command-line, X11
multiuser:	no
transactions:	no
distributed:	no
query language:	?
description:	A major component of the Datascope Seismic Application
		Package is a relational database system, Datascope. Although
		it is used primarily for seismic applications at the JSPC,
		it is a general purpose database system which can also be
		useful outside the seismic community.  Datascope is a
		relational database system in which tables are represented
		by fixed-format files.  The system provides the standard
		operations on relational database tables: subsets, joins,
		and sorts. And, since the data is typically plain ascii,
		it's also possible to just use standard UNIX tools like
		sed, awk, and vi.  Some features:
		+ It is possible to store ranges as keys and index them
		+ Attributes can have units
		+ Support for foreign keys
		Datascope provides a cheap, easy, fairly intuitive way of 
		moving from the traditional plethora of formats to a better 
		approach which organizes the data, documents it, and 
		provides powerful tools for manipulating it.
status:		?
ports:		SunOS, Solaris, Irix
author:		Daniel Quinlan
how to get:
updated:	1996/01/01

name:		DiamondBase
version:	0.31
interfaces:	C++ library
access methods: b+ tree
multiuser:	very limited
transactions:	no
distributed:	no
query language: C++ methods
limits:		limits are set at compile time.	 The default max records 
		is 21474836.
robustness:	The database engine is quite stable.  The multi user
		component is a more recent addition, and is still considered
		beta.  The single user version is separate however and
description:	DiamondBase is written entirely in C++, and uses a schema
		compiler to generate C++ class defintions for the objects,
		as well as some comparison code which is also linked in to
		the final executable. Facilities are now available to access
		generic relations without providing comparison code. It
		was written originally as a replacement for MetalBase which
		was too slow.  DiamondBase is very fast.
announcements:	send mail to Darren Platt to be put on their list
questions:	send mail to Darren Platt
bugs:		send mail to Darren Platt
requires:	C++
ports:		many Unix platforms and OS/2 under cfront or gcc or 
		Borland's compiler.  Recent ports to Dos/windows.
restrictions:	Free usage for non-commerical applications -- negotiate
		anything else.
author:		Kevin Lentin, Andrew Davison, Darren Platt
contact:	Darren Platt <>
how to get:
updated:	1994/12/22

name:		GNU SQL
version:	0.7b5.3
interfaces:	SQL
access methods: B-tree
multiuser:	yes
transactions:	yes
distributed:	no
query language: SQL
limits:		?
robustness:	?
description:	SQL Server is a free portable multiuser relatational database
		management system. It supports the full SQL89 dialect and
		has some extensions from SQL92. It provides multiuser access
		and transaction isolation based on predicative locks. The
		working OS: UNIX. The working language: C . It also uses
		RPC, shared memory and message queues.
status:		actively under development
restrictions:	GNU General Public License
author:		Sergev Kuznezov, Michael Kimelman, Vera Ponomarenko,
		Kostya Dyshlevoi, Andrew Yahin
how to get:
updated:	1997/06/12

name:		LEAP
version:	1.0
interfaces:	command line
access methods: ?
multiuser:	no
transactions:	no
distributed:	no
query language: relational algebra
limits:		?
robustness:	fine for educational purposes
description:	LEAP is a an educational tool.  It is a full relational
		database system.  It uses relational algebra as a query 
		language.  LEAP allows practically all the algebraic examples 
		in many popular DBMS books to be entered with little or 
		no modification.  Leap is written in C and fairly simple.
status:		actively developed
ports:		DOS, Windows, unix
restrictions:	GNU General Public License
author:		Richard Leyton <>
how to get:
updated:	1997/05/24

name:		MetalBase
version:	5.0
interfaces:	custome C library
access methods: AVL-trees
multiuser:	yes, but in theory race conditions still exist
transactions:	yes
distributed:	no
query language: "Report", and "View Relation" a curses based viewer
limits:		?
robustness:	data corruption is possible when MetalBase is not shut 
		down correctly
description:	MetalBase is a small relational database.  It has all the
		pieces that a relational database should C interface, curses
		interface, report writer, etc.	It does not have design which
		takes advantage of shared memory or the better access methods.
		None of the interfaces are standard, but all of them are easy
		to use.
requires:	curses
ports:		Linux, MS-DOS, Amiga, NeXT, Coherent, Macintosh MPW, SGI, Xenix
restrictions:	donations are suggested
author:		Richid Jernigan / PO Box 827 / Norris TN 37828
how to get:	ftp systems/unix/linux/sources/usr.bin/mbase.tar.z 
updated:	1992/10/01

name:		mSQL (Mini SQL)
version:	1.0.9
interfaces:	C, ESL, Tcl, Perl, Python, NextSTEP, X11
access methods: Flat data with external primary key mapped into virtual
		address space of server process.
multiuser:	yes (25 simultaneous connections)
transactions:	no
distributed:	no
query language: SQL
limits:		none
robustness:	Pretty good - getting better all the time.  One positive
		user testimonial so far.
description:	Mini SQL or mSQL is a light weight database engine that
		supports a significant subset of the ANSI SQL specification 
		(including joins, ORDERing, DISTINCT, NULL handling, etc).
		It is a single proces engine and doesn't use vast amounts of 
		system resources as other engines can.	It supports
		client server operations over TCP/IP networks and provides
		quite reasonable performance.  As an example, on a clunky old
		25mhz 386 running Linux (one of the supported platforms) a
		sustained rate of 67 inserts per second was achieved 
		during the insertion of 100,000 table entries.
ports:		SunOS, Solaris, HP-UX, AIX, Linux, FreeBSD-2, SCO, SVR4, 
		NeXT, Cray Unicos, OSF/1, Ultrix.
restrictions:	free for NON-COMMERCIAL USE ONLY
author:		David Hughes <>
how to get:	ftp pub/Minerva/msql/ from
updated:	1995/10/29

name:		MySQL
version:	3.20.24a, 3.21.4-alpha
interfaces:	SQL, ODBC, C, Perl, JAVA, C++, Python, command line
access methods: B-tree on disk, hash tables in memory
multiuser:	yes
transactions:	no, but tables can be locked in 3.21
distributed:	no, mirroring is possible
query language: SQL
limits:		16 keys / table, max key length: 500 bytes
robustness:	B-tree code is extreamly stable; 24 hour operation is possible
description:	MySQL is a fully functional relation database.  It supports
		a subset of ANSI SQL and includes many extensions.  It
		has a C API that is very similar to mSQL's.  Some features:
		+ multi-threading;
		+ all password traffic is encrypted.
		+ all columns have default values
		+ table check and repair utility included
		+ table and column aliases as per SQL92 standard.
		+ no memory leaks (purified)
		+ all joins made in one pass
		+ fixed and variable length records
status:		actively developed and commercially supported
ports:		BSDOS, SunOS, Solaris, Linux, IRIX, AIX, OSF1, BSD/OS, FreeBSD
restrictions:	Commercial redistribution requires a license
author:		Michael Widenius
how to get:
updated:	1997/08/05

name:		PostgreSQL
version:	6.1.1
interfaces:	SQL, C API, C++ API, Tcl API, Perl5 API, Python API, 
		WWW Gateway, JDBC driver, X11
access methods: Heap plus secondary indexes: B-tree, R-tree, Hash.
multiuser:	yes
transactions:	yes
distributed:	no
query language: SQL
limits:		?
robustness:	?
description:	PostgreSQL is derived from the Postgres research database. 
		It is a full-featured object-relational database system. It
		supports declarative queries in SQL, query optimization,
		concurrency control, transactions, multi-user support and
		a number of security features.  Extensibility features
		include user defined operators, types, functions and access
		methods.  Application programmer interfaces (APIs) exist
		for C, C++, Java, Perl4, Perl5, Python, SQL and Tcl.  ODBC
		and JDBC drivers are available from commercial sources and
		free versions are under development.  
status:		actively developed
bugs:		mailing list:
ports:		Linux, Solaris, Digital Unix, *BSD and more
contact:	mailing list:
how to get:
updated:	1997/07/31

name:		Postgres
version:	4.2 beta
interfaces:	libpq (C interface), pgbrowse (tk-based browser)
access methods: Heap plus secondary indexes: B-tree, R-tree, Hash.
multiuser:	yes
transactions:	yes
distributed:	no
query language: Postquel (incompatable, extended variant of QUEL)
limits:		?
robustness:	The authors say: "It is not up to commercial levels of 
		reliability.  I would not want _my_ payroll records in it :-)"
description:	Postgres is a database research project under Prof. Michael
		Stonebraker at U. C. Berkeley.	To facilitate research
		efforts, a software test-bed was created; this is the
		"Postgres" DBMS software.  The Postgres DBMS is extended
		relational or object oriented, depending on the buzzword du
		jour.  Postgres is relational.	It is highly extensible.  It
		has object oriented features like inheritance.	it has query
		language procedures, rules, updatable views, and more.
references:	There are may papers available, both through ftp and as
		hard-copy technical reports.  Cruse the ftp site for papers
		or mail Michelle Mattera <>
status:		orphaned
discussion:	send "Subject: ADD" to
    linux:	send "X-Mn-Admin: join postgres" 
bugs:		<>
ports:		full support: Alpha OSF/1 1.3+, Mips Ultrix .2+, 
			Sparc SunOS 4.1.1+, Power AIX 3.2.3+, HP-PA HP-UX 9.0+
		comming soon: Sparc Solaris 2.3, i386 Linux
		previous versions: i386 SVR4, i386 386BSD, i386 Linux, 
			i386 NextStep 3.1, NeXT NextStep 3.0, 
			Sparc Solaris 2.1+, HP-PA HP-UX 8.07
contact:	developers: <postgres-questions@postgres>
		admin: Michelle Mattera <>
how to get:	ftp pub/postgres/postgres-v4r2* from s2k-ftp.CS.Berkeley.EDU.
    pgbrowse:	ftp pub/pgbrowse/* from
updated:	1994/04/02

name:		PQL
version:	0.95
interfaces:	interactive, stdin and shell mode
access methods: hash
multiuser:	no
transactions:	yes
distributed:	no
query language: SQL subset
limits:		?
robustness:	Early phase of release, still many bgs
description:	PQL stands for "plain query language" and is a kind of SQL
		(rather a subset) Nearly all features of SQL are supported,
		like joins, subqueries and grouping.  The join operation
		has been optimized using a iterative "select and join"
		algorithm which runs over all joined base tables.
		In addition to the PQL-Interpreter, a relational and
		transaction oriented database engine interface is shipped
		with the package. The engine is based on the lower level
		GDBM interface, a freely available database library. 
requires:	gdbm, GNU readline
ports:		unix	
author:		Bjoern Lemke <>
how to get:
updated:	1995/11/30

name:		Qddb
version:	1.43
interfaces:	query language, Tcl/Tk
access methods: ?
multiuser:	yes
transactions:	?
distributed:	no
query language: supports regular expressions; words, numbers, and dates; 
		and ranges of words, numbers, and dates.
limits:		?
robustness:	The authors indicate that they believe it to be stable.
description:	QDDB stands for 'Quick and Dirty DataBase'.
		Qddb is a database suite that allows you to create relations,
		add tuples, modify tuples, delete tuples, and search for tuples
		in a fast and very flexible way.   Qddb 1.40 can use Tcl as its
		configuration language, so you can build custom interfaces to
		your Qddb databases with it.   We provide a reasonably nice
		generic interface so you can be up and running quickly.
		Qddb allows seaching on regular expressions and numeric and
		date ranges.
		A set of applications built on top of Qddb can be obtained
		from the same ftp site as Qddb itself.
status:		actively developed
discussion:	send "Subject: subscribe" with your address in the body to
bugs: and
requires:	Tcl 7.3, Tk 3.6p1
ports:		Ultrix, OSF/1, BSD/386, Linux, SunOS, Solaris.
restrictions:	There are two versions of Qddb.  One is covered by the
		GNU General Public License.  The other version is commercial.
author:		Eric H. Herrin II <>, 
		Raphael Finkel <>
how to get: &
updated:	1997/06/10

name:		REQUIEM
version:	?
interfaces:	RQL, ERQL (extension)
access methods: B-tree indexes can be created on attributes of base relations.
multiuser:	yes (multiuser extension)
transactions:	yes (multiuser extension)
distributed:	no
query language: RQL
robustness:	[seems to maintained by zero to few people --ed]
description:	REQUIEM (RElational Query and Update Interactive systEM) is 
		an extensible, relational DBMS developed in C with a query 
		language based on the relational algebra called RQL (Relational
		Query Language).
		There appears to be three versions of REQUIEM: the base
		version and two extensions.  One extension adds multiuser
		capability.  The other adds an embeddable version of the
		query langauge.
references:	"An Extensible DBMS for Small-Medium Scale Systems",
		Papazoglou, M.P., IEEE Micro, April 1989.
		Relational Database Management - A Systems Programming 
		Approach, Papazoglou, M.P. and Valder, W., Prentice Hall 
		International, UK, 1989.
		"The Development of a Program Interface for the RDBMS Requiem"
		Power, R.A., 1991 Honours Thesis (dvi file available with 
		source code for the embedded version).
ports:		Sparc/SunOS; base version only: MS-DOS, Macintosh
contact:	(embedded version only) 
		Robert Power <>
how to get:	ftp pub/requiem/REQUIEM.tar.Z (multiuser version) or
		pub/requiem/Requiem.tar.Z (embeddable version) 
		The base version can be constructed from the multiuser version.
updated:	1992/10/06

name:		shql
version:	1.3 Beta
interfaces:	SQL, shell
multiuser:	no
transactions:	no ?
distributed:	no
limits:		no NULLs in the data, spaces and backslashes may be added when 
		the data contains punctuation, GROUP BY is not implemented.
robustness:	it is a shell script.
description:	Shql is a program that reads SQL commands interactively and
		executes those commands by creating and manipulating Unix
		files.	The program is patterned after Ingres' interactive sql
		terminal monitor program.
requires:	bourne shell with functions, awk, grep, cut, sort, uniq, join,
		wc, and sed
author:		Bruce Momjian <>
how to get:	comp.sources.misc volumes 34, 41 and 42.
		Also ftp pub/net-sources/shql-patch-1.3-beta from
updated:	1994/08/06

name:		Typhoon
version:	1.06
interfaces:	C API
access methods: B-trees
multiuser:	Yes, but no locking mechanism at this point (will come soon)
transactions:	no 
distributed:	no
query language: none
limits:		A single file cannot exceed 4GB.
robustness:	The package is quite stable as it is shut down properly. It
		is currently used in a system that handles billing 
		information (and some other applications).  
description:	Typhoon is a relational database management system.  It was
		originally inspired by Raima's db_VISTA (today Raima Data
		Manager) but is relational rather than network based. Typhoon
		lacks some of db_VISTA's features, but also contains a number
		of nice features not found in db_VISTA.
		All relations are defined in a so called Data Definition
		Language (ddl) file.  You define the database relations like
		you would write a C structure with chars, ints, strings,
		multidimensional arrays, nested union and structures, etc. Then
		you define primary, alternate and foreign keys for each
		relation.  The Data Definition Language Processor (ddlp)
		compiles the database defintion into a binary file which
		constitutes the database description. The database relations
		are accessed via C subroutines which manipulate individual
		records within a table.
		- Multiple open database
		- Multi-field keys
		- Nested structures in records
		- Controlled unions
		- Referential integrity
		- Variable length fields
		- Null keys (optional keys in db_VISTA, but easier to use)
		- Dynamic opening and closing of database files
status:		actively developed
ports:		SCO UNIX, Solaris, Tandem NonStop UNIX, AIX, Linux and OS/2. 
author:		Thomas B. Pedersen <>
how to get:	comp.sources.misc volume 44;
		ftp pub/Linux/devel/db/typhoon-1.06.tar.gz from
updated:	1994/10/03

name:		University INGRES
version:	8.9
interfaces:	QUEL, EQUEL
access methods: heap, hash, isam, ordered
multiuser:	yes
transactions:	yes, but no multistatement transactions.  Each statement
		is ACID
distributed:	no
query language: QUEL
limits:		?
robustness:	Very mature technology
description:	This is the database program that was the basis for INGRES
		Corporation.  Obviously, it does not have all the bells 
		and whistles of the current commercial product.	 However,
		it is small and fast and it works.
		So called ordered relations are slow and not locked.
references:	"The INGRES Papers" Stonebraker ed. Addison Wesley
status:		orphaned
ports:		SunOS, Linux
author:		The Ingres project at UC Berkeley.  
contact:	<>
how to get:	ftp://s2k-ftp.CS.Berkeley.EDU/pub/ingres
updated:	1993/05/20

--------------------------- object oriented -------------------------------

name:		EXODUS Project software
version:	GNU E 2.3.3, Storage Manager (SM) 3.1
interfaces:	GNU E, (C++ for direct access to the Storage Manager)
access methods: B+tree and linear-hashing based indexes
multiuser:	yes, client-server
transactions:	yes, but not nested.
distributed:	yes, applications can access multiple servers in a single
		transaction.  Distributed commits are performed across servers
		and clients have access to an interface allowing participation
		in distributed commits managed by an external agent.
query language: GNU E -- a persistent programming language based on C++
robustness:	High (at least for academic software).
		The SM release includes a facility for regression
		testing most features, including crash recovery.
description:	The EXODUS Storage Manager (SM) is a client-server object
		storage system which provides "storage objects" for storing
		data, versions of objects, "files" for grouping related storage
		objects, and indexes for supporting efficient object access.  A
		storage object is an uninterpreted container of bytes which can
		range in size from a few bytes to hundreds of megabytes.  The
		Storage Manager provides routines to read, overwrite, and
		efficiently grow and shrink objects.  In addition, the Storage
		Manager provides transactions, lock-based concurrency control,
		and log-based recovery.
		GNU E is a persistent, object oriented programming language
		developed as part of the Exodus project.  GNU E extends C++
		with the notion of persistent data, program level data objects
		that can be transparently used across multiple executions of a
		program, or multiple programs, without explicit input and
		output operations.
references:	A bibliography of EXODUS related papers can be obtained from
		the ftp site described below.  Some of the papers are available
		from the ftp server as technical reports, and are marked as
		such in the bibliography.
status:		No longer being developed.  However, the authors are working
		on a new system, SHORE, and will support current Exodus 
		users well enough to keep them going until SHORE is useable.
		GNU E 2.5.8 is in beta and can be ftped.
discussion:	Send "information exodus_all" to to
		find out how to join the exodus_all mailing list.
requires:	g++ 2.3.3 (exactly 2.3.3.  GNU E 2.5.8 is in beta)
ports:		MIPS/Ultrix, SPARC/SunOS, HP 7xx/HP-UX, Linux 
restrictions:	none, but see copyright notice located in all source files 
author:		The EXODUS Database Toolkit project at the 
		University of Wisconsin
how to get:	ftp exodus/* from
updated:	1993/03/29

name:		LINCKS (Linkoping Intelligent Communication of Knowledge System)
version:	2.5
interfaces:	C library, emacs-like editor/X11
access methods: ?
multiuser:	yes
transactions:	no, but creates different versions on the fly
distributed:	no, but maybe later
query language: hypertext-ish X user interface
robustness:	The underlaying store handler (NODE) has been used since '89
		and is quite stable. The system have betweem 20 to 500 users.
description:	LINCKS is an object-centred multi-user database system
		developed for complex information system applications where
		editing and browsing of information in the database is of
		paramount importance.  The focus is on sharing of small
		information chunks which combine to make up complex information
		objects used by different users for different purposes. The
		information chunks are semi-structured in that they contain one
		part which is well-structured to facilitate addition of A.I.
		processing within the system, and one part which is
		unstructured and suitable for management by the user.
		Features: shared composite objects, database history, 
		atlernative views, change collision notification (when more
		than one person makes changes to the same composite object)
requires:	Unix, X11R5
ports:		Sun4/SunOS 4.1.[123], Sun4/SunOS 5.2, Sun3, Decstation, Alpha,
		RS/6000, Sequent Symmetry, Linux, HP-UX, SGI, SCO, SVR4.2, Sony
restrictions:	GNU General Public License
author:		Lin Padgham, Ralph Ronnquist; University of Linkoping, Sweden
how to get:
updated:	1997/04/24

name:		MONET
version:	3.05
interfaces:	MIL (Monet Interpreter Language), ODMG (ODMG interface 
		to Monet), MOA (meta-model mapping system)
access methods: ?
multiuser:	yes
transactions:	yes
distributed:	yes
robustness:	Used commercially for data mining
description:	The Goblin Database Kernel is a C/C++ library that provides 
		ACID properties on a DSM model, using main-memory database 
		algorithms, built on virtual-memory OS primitives and 
		multi-threaded parallellism.
		The Monet Server runs multiple interpreter threads, which parse 
		MIL commands. It manages client acces through the internet, and 
		can runtime be extended with new modules.
		The Monet kernel is designed as a microkernel DBMS. This design
		keeps the code mean and lean. Different users can plug in 
		different extra functionality using extension modules. A set 
		of standard extension modules is delevered with the system 
		(like math, tcpip, temporal, cross tables, concurrency 
		control, performance profiling)
status:		?
ports:		Solaris, ?
restrictions:	?
author:		Research project at CWI (Centrum voor Wiskunde en Informatica)
		and the University of Amsterdam
contact:	?
how to get:	Unknown.  The source code can be browed, but it's not clear
		how to actually download it.
updated:	?

name:		OBST
version:	3-4.3
interfaces:	C++, Tcl, schema compiler, graphical object browser
access methods: extendable hashtable
multiuser:	yes, but writing locks entire tables
transactions:	yes
distributed:	not yet
query language: C++, Tcl, graphical object browser
limits:		4 GB per container, 2^32 containers
robustness:	OBST is quite stable since the start of '93. Releases were
		made to enhance the coding quality rather than to add new
		features. There are somewhere between 50 and 500 users.
description:	The persistent object management system OBST was developed by
		Forschungszentrum Informatik (FZI) as a contribution to the
		STONE project (supported by grant no. ITS8902A7 from the BMFT,
		i.e. the German Ministry for Research).
		OBST was originally designed to serve as the common persistent
		object store for the tools of an software engineering
		An essential feature of STONE is that the object oriented
		paradigm is pursued consequently as a key concept. OBST is the
		common persistent object store for all tools within the STONE
		OBST provides a rich OO model including multiple inheritance,
		generics, overloading, and privacy.  The schema definition
		language is syntactically similar to C++.  It comes with a
		library of pre-defined classes like Set<Entity>, and
		List<Entity>.  New methods can be incrementally loaded at
announcements:	send 'add <your-address> obst-announce' to
discussion:	send 'add <your-address> obst-forum' to
bugs:		send OBST version, configuration options, C++ version, machine,
		OS, and a description of your problem to <>.
requires:	A C++ compiler (G++ 2.3.3-2.6.3 or AT&T 2.1/3.01)
ports:		UNIX: SPARC/SunOS 4.1, Solaris 2, Linux, HP-UX, Ultrix, ...
restrictions:	STONE is over; OBST is now a commercial product.
how to get:	ftp pub/OBST/OBST3-4.3 from
    usa:	ftp pub/database/obst/? from
    uk:		ftp computing/databases/OBST/? from
updated:	1995/01/19

name:		pfl
version:	0.2
interfaces:	Built-in persistent functional programming language
access methods: no
multiuser:	no
transactions:	no
distributed:	no
query language: functional programming
limits:		Index size is limited by the amount of main memory available.
		Selectors are a bit flaky when they contain more than about
		10,000 tuples.	Since the current implementation of the 
		language is interpreted it is very slow.
robustness:	alpha release
description:	pfl is a persistent programming language and database 
		environment.  The language is functional.
references:	"An Overview of PFL", 3rd International Workshop on Database 
		 Programming Languages, 1991.
		"A functional programming approach to deductive databases", 
		 17th International Conference on Very Large Databases, 1991
bugs:		SunOS: author, Linux: Tim Holmes <>
requires:	GNU C++
ports:		Linux, SunOS
restrictions:	GNU General Public License; educational use ?
author:		Carol Small <>
contact:	Tim Holmes <>
how to get	ftp pub/Linux/ALPHA/pfl-0.2.tgz from
updated:	1994/09/21

name:		SHORE
version:	1.0
interfaces:	unix filesystem emulation, NFS server, Shore Data Language
access methods: ?
multiuser:	yes
transactions:	?
distributed:	yes
description:	SHORE - A High-Performance, Scalable, Persistent Object 
		Repository.  SHORE is a project to design, implement, and 
		evaluate a persistent object system that will serve the 
		needs of a wide variety of target applications including 
		hardware and software CAD systems, persistent programming 
		languages, geographic information systems, satellite data 
		repositories, and multi-media applications.
		SHORE provites a hierarchical name space for named objects, 
		and a Unix-compatible interface to objects with a "text" field.
		SHORE supports multiple programming languages and typed objects.
		SHORE is designed to scale to terabytes.
status:		actively developed university project
discussion:	send "subscribe shore_all" to
how to get:
updated:	1996/08/06

name:		The Texas Persistent Store
version:	0.5
interfaces:	C++ library
access methods: ?
multiuser:	not yet
transactions:	not yet
distributed:	not yet
query language: ?
limits:		?
robustness:	beta software
description:	Texas is a simple, portable, high-performance persistent store
		for C++ using "pointer swizzling at page fault time" to
		translate persistent addresses to hardware-supported virtual
		addresses.  Texas is built on top of a normal virtual memory,
		and relies on the underlying virtual memory system for
		caching.  Texas is easy to use, and is implemented as a UNIX
		library.  It is small and can be linked into applications.  It
		requires no special operating system privileges, and
		persistence is orthogonal to type---objects may be allocated on
		either a conventional transient heap, or on the persistent
		heap, as desired.  Texas supports simple checkpointing of heap
announcements:	send mail to
ports:		SunOS, Ultrix, Linux
author:		?
how to get:
updated:	1996/12/10

name:		Triton Object-Oriented Database System
version:	1.1
interfaces:	E, an Ada language binding.
access methods: uses Exodus
robustness:	The support provided for Triton is limited. As resources
		permit, reported bugs will be fixed. Triton is reasonably
		robust and has been in daily use in Arcadia for several years
		primarily supporting APPL/A and Amadeus.
description:	Triton is an object-oriented database management system
		designed to support the Arcadia software engineering
		environment. It can be used as a general purpose DBMS, although
		it has specialized features to support the software process
		capabilities in Arcadia in the form of the APPL/A language.
		Triton provides for multi-language access and sharing of data,
		dynamic creation of classes (with methods) and objects, special
		support for relations, and special support for triggers. Triton
		uses a client-server architecture with data and methods held in
		the server.
		Triton is written in E, which is a persistent C++. 
		What Triton adds to Exodus is another interface and a lot
		of higher-level functionality.	This includes an Object Manager 
		shell (catalog, trigger manager, and application objects); 
		multi-language access and sharing; dynamic definition of 
		schema and classes; schema catalog; and triggers before and/or
		after method invocations.
requires:	Exodus/E, DLD-3.2.3, Q 2.2, Arpc401.3a
restrictions:	GNU General Public License [I presume --ed]
author:		University of Colorado Arcadia Project.
contact:	Dennis Heimbigner <>
how to get:	ftp pub/cs/distribs/arcadia/? from
updated:	?

name:		William's Object Oriented Database (Wood)
version:	0.6 
interfaces:	MCL 2.0
access methods: custom
multiuser:	no
transactions:	no
distributed:	no
query language: none. Has BTrees for indexing.
limits:		Will slow down when the database size exceeds
		256 megabytes. Otherwise, database size limited
		by disk size (up to Macintosh limit, which is,
		I believe, 4 gigabytes). Object size limited
		to 24 megabytes. If you think of a Wood database
		as a random access FASL file, you'll have the
		right idea.
robustness:	Until it has a real logging/recovery mechanism,
		I wouldn't advise using it for mission critical
		data. Caches pages in memory, so if you crash,
		you will lose. Has a function to flush the
		cache to disk, so you can do explicit checkpoints
		to make it more robust.
description:	Wood is a simple persistent store for MCL 2.0.
		This is still alpha software. It is incomplete: though you can
		save/restore all Lisp objects to/from a file, there is no
		transaction/recovery manager and no garbage collector for the
		persistent heap. I will not be able to provide much support,
		but you get source code.
ports:		Macintosh CommonLisp 2.0
author:		Bill St. Clair <>
how to get:	ftp pub/mcl2/contrib/wood* from
updated:	1993/03/07

name:		YOODA (Yet another Object Oriented Database)
version:	1.2
interfaces:	C++
access methods: B+Tree
multiuser:	yes, client-server
transactions:	yes, but not yet nested.
distributed:	yes, you can distribute a database across multiple servers.
		Distributed access are completly transparent. User only 
		specifies server when he creates an object. A Two phase commit
		mechanism is used to handle distributed commit.
query language: C++
limits:		2 GB per volume, up to 256 volumes
		Memory mapping limits the total size of the objects accessed
		in a transactions (about 2 GB)
robustness:	beta software but pretty stable
description	YOODA is a small and simple Object Oriented Database. 
		You can use it as a persistent C++ with transaction facilities
		in multi-clients/multi-server architecture. It uses 
		virtual-memory mapping techniques.
		The key features of YOODA are: - A distributed database with 
		multi-clients/multi-servers architecture. - CORBA like 
		interface for communication. - Use of memory-mapping techniques
		- Transparent C++ interface through the use of a precompiler
		- Small size of the code (< 15000 lines). - Good performances
		- Good management of long objects
status:		actively developed
announcements:	comp.databases.object, send mail to
discussion:	send mail to
bugs:		send mail to
requires:	Unix, g++ 2.5.8 or later
ports:		SunOs 4.1.3, Alpha-OSF1
		comming soon : HP-PA HP-Ux, Solaris 2.3, NextStep 3.0
restrictions:	GNU Library General Public
author:		Eric Abecassis
contact:	author
how to get:	ftp pub/database/yooda from 
		ftp pub/Unix/Database from
updated:	1994/11/14

--------------------------- deductive databases ---------------------------

name:		Aditi Deductive Database System
version:	beta release
interfaces:	motif, command line, NU-Prolog
access methods: Base relations contain variable sized records.	Base relations
		can be indexed with B-trees or multi-level signature files
		(superimposed code words) allowing multi-attribute indexing and
		querying, or they can be stored as unindexed flat files.
multiuser:	yes
transactions:	next release
distributed:	?
query language: prolog, graphical (Motif)
limits:		?
robustness:	?
description:	Aditi is a multi-user deductive database system.  It supports
		base relations defined by facts (relations in the sense of
		relational databases) and derived relations defined by rules
		that specify how to compute new information from old
		information.  The old information can be from derived relations
		as well as base relations; the rules of derived relations may
		be recursive.  Both base relations and the rules defining
		derived relations are stored on disk and are accessed as
		required during query evaluation.
author:		The development of the Aditi system started in 1988 by
		Professor Kotagiri Ramamohanarao, and many people have been
		involved in its development, in particular Jayen Vaghani, Tim
		Leask, Peter Stuckey, John Shepherd, Zoltan Somogyi, James
		Harland and David Kemp. The support of Kim Marriott, David
		Keegel, and Warwick Harvey is also acknowledged.
how to get:	send email to
updated:	1992/12/17

name:		ConceptBase
version:	V4.0
interfaces:	Prolog, C, C++
access methods: TELL and ASK 
multiuser:	yes  
transactions:	primitive (no concurrency)
distributed:	no 
query language: CBQL ("query classes")
limits:		?
robustness:	used by 100+ institutes, thereby quite robust
description:	ConceptBase is a deductive object base manager, i.e., it
		combines object-oriented principles with logical deduction.
		It is useful for conceptual modeling and as a 'meta database'
		for heterogeneous information resources.  Queries, deductive
		rules, and integrity constraints can be formulated at any
		abstraction level (instance, class, metaclass, ...)
ports:		Solaris 2.3 (Sparc and PC)
restrictions:	ConceptBase is distributed by "contact", only. It is not
		public domain.	The source agreeement prohibits commercial
		and military use.
author:		ConceptBase Team 
how to get:
updated:	1996/04/16

name:		CORAL
version:	1.2
interfaces:	Exodus storage mangager, C++
access methods: Hash-based and B+ tree indices
multiuser:	When used with Exodus
transactions:	When used with Exodus
distributed:	?
query language: Prolog-like with SQL-style extensions; C++ interface
limits:		No type checking; only atomic values in persistent relations
robustness:	Research software; used for teaching and in research projects,
		but some bugs remain
description:	The CORAL deductive database/logic programming system was
		developed at the University of Wisconsin-Madison.  The CORAL
		declarative language is based on Horn-clause rules with
		extensions like SQL's group-by and aggregation operators, and
		uses a Prolog-like syntax.  Many evaluation techniques are
		supported, including bottom-up fixpoint evaluation and top-down
		backtracking.  Disk-resident data is supported via an interface
		to the Exodus storage manager; however, CORAL can run without
		Exodus if disk-resident relations are not required.  
		A good interface to C++ is provided.  Relations defined using 
		the declarative language can be manipulated from C++ code, 
		and relations defined using C++ code can be used in declarative 
		rules.	C++ code defining relations can be incrementally loaded.
requires:	AT&T C++ 2.0 or later or g++
ports:		Decstations, Sun 4, Sparc, HP Snakes 
author:		The CORAL group consists of R. Ramakrishnan, P. Seshadri,
		D. Srivastava and S. Sudarshan.	 The following people made
		important contributions: T. Arora, P. Bothner, V. Karra 
		and W.G. Roth.	Several other people were also involved:  
		J. Albert, T. Ball, L. Chan, M. Das, S. Goyal, R. Netzer 
		and S. Sterner.
contact:	Raghu Ramakrishnan <>
how to get:	ftp from
updated:	1993/02/12

name:		FLEX++
version:	0.5b
interfaces:	Prolog
access methods:	memory
multiuser:	not yet
transactions:	no
distributed:	no
query language:	FLEX DL Language
limits:		memory
robustness:	pretty good - it was used within a large natural language
		processing project
description:	The system belongs to the family of Description Logics 
		(aka KL-ONE alike systems, hybrid systems, term subsumption 
		languages, concept logics, terminological logics) which 
		form one of the major paradigms in current research on 
		knowledge representation. Description Logics combine ideas 
		from semantic networks and frames with the formal rigor of 
		first order predicate logic. They support high level 
		conceptual modeling in an object-centered manner. DL systems 
		have already been used in a number of NLP systems for 
		representing world knowledge or conceptual information. 
		Furthermore, Description Logics are similar to the feature 
		logics underlying unification-based grammar formalisms such 
		as Head-Driven Phrase Structure Grammar.
status:		?
ports:		SunOS, Solaris
restrictions:	free for non-commercial use only
author:		J. Joachim Quantz and Frank Bergmann
how to get:
updated:	1996/06/10

name:		MOOD-SX (Material's Object-Oriented Database)
version:	0.2.1
interfaces:	X11
multiuser:	?
transactions:	?
distributed:	no
query language:	ObjectEditor
robustness:	?
description:	MOOD-SX is a general purpose object-oriented client server
		database system.  The primary interface to MOOD-SX is an
		interactive class editor called ObjectEditor that can be
		used without programming.
		MOOD-SX has been designed to handle complex queries.
		It is written in C++.
author:		Noboru Ono <>
how to get:
updated:	1995/08/25

name:		ROL (Rule-based Object Language)
version:	2.2
interfaces:	?
description:	The ROL language effectively integrates important features
		in deductive databases and object-oriented databases into
		a uniform framework.  It is an extension to Datalog and
		LDL (without grouping) and subsumes them as special cases.
		It naturally and directly supports object-oriented features
		such as object identity, complex objects, classes, class
		hierarchy, multiple inheritance with overriding, and schema.
		It provides powerful mechanisms for representing both
		partial and complete information on sets.  It is a pure
		declarative query language without any imperative parts.
		Furthermore, it has a logical semantics that cleanly accounts
		for all of its object-oriented features.
how to get:
updated:	1997/05/10

--------------------------- special purpose -------------------------------

name:		GRAS (GRAph-oriented database System)
version:	5.90/9 [[6.0 alpha]]
interfaces:	Navigational programming interfaces for C and Modula-2
access methods: tries fro database pages, static hashing within pages
multiuser:	Very restricted single writer/multiple reader access
		[[6.0: shared read/write access with locks on a per-session, 
		transaction, or operation basis]]
transactions:	yes; based on backwards logs.  Checkpoints allow roll-back (and
		roll-forward) to a previous state.  
distributed:	no.  [[6.0: Multiclient/multiserver architecture]]
query language: PROGRES (PROgrammed Graph Rewriting Systems; a language released
limits:		2**16 nodes per database and 2**16 databases per multi-database
		[[6.0: 2**32 nodes]]
robustness:	Has been successfully used as the underlying database for
		a number of research prototypes and one commercial product.
		Guarantees recovery from (almost) all application/system crashes
description:	GRAS is a database system which has been designed according
		to the requirements resulting from software engineering
		applications. Software development environments are composed
		of tools which operate on complex, highly structured data.
		In order to model such data in a natural way, we have selected
		attributed graphs as GRAS' underlying data model.
		The current version has programming interfaces for Modula-2 and 
		C and supports:
		- persistent attributed, directed node- and edge-labeled 
		  graphs (including long attributes and indexes)
		- temporary/volatile generic sets, binary relations, and lists,
		- graph modification triggers causing further modifications
		- primitives for version control comprising the capability
		  for efficiently storing graphs as forward/backward deltas 
		- primitives for declaring graph schemes and for incremental
		  evaluation of derived attributes (constraints).
		In additon, there are tools for compressing and displaying 
		graphs.	 The GRAS system may be considered to be the core of a
		graph oriented DBMS environment.  The environment is based on a
		VHLL called PROGRESS.  This environment supports: a
		syntax-directed editor for graph schemes, rewrite rules and
		sequences of rules; an incremental consistency checker; an
		incremental compiler&interpreter for PROGRESS; an enhanced
		graph browser
references:	Kiesel, Schuerr, Westfechtel: GRAS, A Graph-Oriented Database
		System for (Software) Engineering Applications. Proc. CASE 93,
		Lee, Reid, Jarzabek (eds.): Proc. CASE '93, 6th Int. Conf. on
		Computer-Aided Software Engineering, IEEE Computer Society
		Press (1993), pp 272-286.  Available by ftp as TR AIB 92-44.
		Schuerr: PROGRES: A VHL-Language Based on Graph Grammars,
		in Proc. 4th Int. Workshop on Graph-Grammars and Their
		Application to Computer Science, LNCS 532, Springer-
		Verlag 1991, pp 641-659.  Available by ftp asTR AIB 90-16.
announcements:	a list is forming; send mail to the contact (below)
bugs:		use the included "send-pr" program to send bug reports
requires:	Modula-2, C
ports:		Sun-4, porting requires Modula-2
restrictions:	GNU General Public License
author:		Lehrstuhl fuer Informatik III, RWTH Aachen, Ahornstr. 55
		D-52074 Aachen, Germany.
contact:	(v5.x & PROGRES) Dr. Andy Sch"urr <>
		(v6.x) Norbert Kiesel <>
how to get:	(v5.x) ftp pub/unix/GRAS from
		(PROGRES sun4) ftp pub/unix/PROGRES from
		(PROGRES source) send mail to contact
		(references) ftp pub/reports/* from
		(v6.x) contact Norbert Kiesel <>
updated:	1993/11/01

--------------------------- flat files ------------------------------------

name:		AddressManager
version:	0.1
interfaces:	Tcl/Tk
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		?
robustness:	?
description:	A graphical rolodex
requires:	wish
author:		Chunping Ding <>
how to get:	ftp pub/addressManager.tar.gz from
    usa:	ftp pub/tcl/code/addressManager.* from
updated:	1994/05/12

name:		EDB, the Emacs database
version:	1.19
interfaces:	Emacs, Emacs Lisp
multiuser:	no
transactions:	no
distributed:	no
query language: Emacs Lisp
limits:		same as for Emacs -- typically 8 or 32 MB
robustness:	fairly high -- currently being used for mission-critical data
description:	EDB provides simple database access in a "user-friendly" Emacs
		environment for flat files.  Extensions for linking records and
		relational-like operations exist, and further extensions are
		easy to make.
		EDB is documented by a 110-page manual, complete with indices
bugs: or
requires:	GNU Emacs 18, GNU Emacs 19, or Lucid Emacs
ports:		any computer that runs Emacs -- that is, almost any computer
restrictions:	GNU Public License
author:		Michael Ernst <>
how to get:	ftp pub/emacs/edb/edb-*.tar.gz from
updated:	1994/11/15

name:		grok (Graphical Resource Organizer Kit)
version:	1.1
interfaces:	query language, GUI, GUI builder
access methods: ?
multiuser:	no
transactions:	no
distributed:	no
query language: custom
limits:		?
robustness:	one user recommends against use as a payroll database
description:	Grok is a simple database manager and UI builder that can keep
		phone lists; store phone call logs; store todo lists; and
		manage any other database after simple GUI-driven
		More precisely, grok is a program for displaying and editing
		strings arranged in a grid of rows and columns. Each row is
		presented as a "card" consisting of multiple columns, or
		"fields", that allow data entry. The presentation of the data
		is programmable; a user interface builder that allows the user
		to arrange fields on a card graphically is part of grok.  Grok
		also supports a simple language that allows sophisticated
		queries and data retrieval.
ports:		IRIX, HP-UX, AIX.
restrictions:	?
author:		Thomas Driemeyer <>
how to get:	ftp programs/X/grok* from
		ftp pub/unix/graphics/grok from
updated:	1994/11/17

name:		Jinx
version:	2.1
interfaces:	perl, shell
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		no limits
robustness:	No bugs have ever been reported
description:	Very easy to use, curses based flat file handler.
		In Perl, so no limits. Allows Join, Project, Sort etc.
		Representation in 2 readable unix files.  A documented
		Perl library makes it easy to add applications.
references:	Online help and a 17 page tutorial.
requires:	Perl, cterm (distributed with jinx)
ports:		any unix system with ordinary perl and curses
restrictions:	Copyleft
author:		Henk Penning, Utrecht University
contact:	Henk Penning <>
how to get:	ftp pub/PERL/jinx.shar.Z and pub/PERL/cterm.shar.Z 
updated:	1991/11/01

name:		rdb
version:	2.5k
interfaces:	perl, shell, UNIX tools
access methods: binary search, linear scan
multiuser:	restricted single writer/multiple reader access
transactions:	no
distributed:	no
query language: none
limits:		no limits
robustness:	Is being used on many research projects; no known bugs.
description:	RDB is a fast, portable, Relational DataBase Management System
		that works with relational data in ascii files.
		RDB is a set of Perl modules working as filters, like "row", 
		"column" & "join" ; a very nifty table formatting script is in
		"ptbl", which can do long field folding into multiple lines per
		row. Also includes a general report generation capability.
references:	Included documentation; Each module has online help.
announcements:	comp.lang.perl; also author email list of current users.
discussion:	author
ports:		any unix system (or other OS with redirection of I/O).
author:		Walt Hobbs <>
how to get:
updated:	1994/06/20

----------------- dbm and other and raw access methods	-------------------

name:		The Berkeley DB package
version:	2.2.6
interfaces:	dbm, ndbm, hsearch, DB 1.85
access methods:	Extended Linear Hashing, B+tree, fixed/variable length records
multiuser:	yes
transactions:	yes
distributed:	no
query language: none
limits:		Single databases up to 2^48 bytes, single key or data elements 
		up to 2^32 bytes (or available memory), maximum btree depth 
		of 255.
robustness:	Good.  Includes a fairly extensive test suite written in Tcl.
description:	The all-singing, all-dancing dbm.   
		+ Keyed and sequential (forward and reverse) retrieval,
		  insertion, modification and deletion.
		+ Duplicate records per key available with the B+tree
		  and Hash access methods.
		+ User-allocated memory retrieval and partial-record
		  key storage and retrieval.
		+ Architecture independent databases (although no
		  guarantees are made regarding user data).
		+ Multiple readers/single writer locking (page-level
		  concurrency control).
		+ Degree 3 Isolation.
		+ Before and after image logging.
		+ Transaction support.
		+ General purpose lock manager and shared memory
		  buffer pool.
		+ Online database backups.
		+ Database recovery after application or system
		  failure, including catastrophic recovery.
		Written in C, complete C language API, source code included.
references:	"A New Hashing Package for UNIX", Margo Seltzer, Ozan Yigit,
		Proceedings of the Winter USENIX Conference, Dallas, TX, 1991.
		"Document Processing in a Relational Database System, Michael
		Stonebraker," Heidi Stettner, Joseph Kalash, Antonin Guttman, 
		Nadene Lynn, Memorandum No.  UCB/ERL M82/32, May 1982.
		"LIBTP: Portable, Modular Transactions for UNIX," Margo 
		Seltzer, Michael Olson, Proceedings 1992 Winter Usenix
		Conference, San Francisco, CA, January 1992.
reported bugs:	none
ports:		Almost any UNIX, MS VC++ 5.0.
author:		Keith Bostic, Michael Olson, Margo Seltzer, Ozan Yigit
contact:	Sleepycat Software <>
how to get:
updated:	1997/08/04

name:		Btree Library
version:	first public release
interfaces:	raw C library
access methods: b-tree
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		values are limited to 4 bytes (long enough for a pointer!)
robustness:	?
description:	Ths is a library that maintains a simple balanced btree index.
		Nothing more is provided than routines to insert, set, find
		(specific, next, and previous), and delete keys. Each key,
		however, has a spare long value that can be used to contain an
		offset to a data file. A library to handle fixed-length records
		based on these pointers should be trivial. (Can you say
		'dBASEIII'?) Another failing of this library is its total
		inability to cope with having several programs modifying
		indices at the same time. (it *CAN*, but I won't vouch for the
		result) The good solutions to that particular problem are OS
		dependent, unfortunately, and I am not a database guru anyhow.
ports:		Unix
author:		Marcus J. Ranum
how to get:	get btree and bt-rio from comp.sources.misc volume 3
updated:	1988/06/02

name:		B+tree Library
version:	first public release
interfaces:	raw C library, dbm-like library
access methods: b+tree
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		?
robustness:	?
description:	This is the source code for a variable-length key variable page
		size b+tree library. Also included is source for a variety of
		test programs, a semi-useable record manager, and a
		dbm-lookalike library built on top of the record manager and
		b+tree. (dbm(3) will blow it away performance-wise, of
ports:		Pyramid, Sun, BSD4.3, Ultrix.  Does not work on Xenix
author:		Marcus J. Ranum
how to get:	get b+tree_mgr from comp.sources.misc volume 10
updated:	1988/06/02

name:		cbase
version:	102
interfaces:	C
access methods: ISAM
multiuser:	no
transactions:	?
distributed:	no
query language: none
limits:		?
robustness:	?
description:	A database library (ISAM like).
ports:		MS-DOS
restrictions:	?
contact:	?
how to get:
updated:	?

name:		cdb
version:	0.55
interfaces:	C, Perl
access methods:	hash?
limits:		database size limit: 4GB
description:	cdb is a fast, reliable, lightweight package for creating and
		reading constant databases. Its database structure provides 
		several features:
		+ fast lookups
		+ low overhead
		+ no random limits
		+ fast atomic database replacement
		+ fast database dumps
author:		Dan Bernstein <>
how to get:
updated:	?

name:		dbz
version:	"20 Feb 1993 Performance Release of C News"
interfaces:	dbm-like, command-line access
access methods: hash
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		lines are limited to 1024 bytes unless the -l option is used
robustness:	very robust within its domain
description:	A dbm-like library maintained for use with C-news.
ports:		everything that runs C-news (lots)
author:		Jon Zeeff <>, David Butler, Mark
		Moraes, Henry Spencer.	Hashing function by Peter Honeyman.
contact:	Henry Spencer <>
how to get:	included in the C-news distribution as ./dbz
updated:	1992/02/11

name:		gdbm
version:	1.7.3
interfaces:	dbm, ndbm, gdbm
access methods: hash
multiuser:	no, but does lock the entire file
transactions:	no
distributed:	no
query language: none
limits:		can handle large items
robustness:	[should be good --ed]
description:	An ndbm work-alike from the Free Software Foundation
bugs:		gnu.utils.bug
author:		Philip A. Nelson <>
how to get:	ftp gdbm-*.tar.gz from any gnu archive
updated:	1994/05/18

name:		HDS (Hierarchical Data System)
version:	?
interfaces:	Fortran, C?
access methods: ?
multiuser:	?
transactions:	?
distributed:	no
query language: ?
limits:		?
robustness:	?
description:	[This is probably just a library, but it may be a full
		database --ed]
		A library for storing large multi-dimensional arrays where
		efficiency of access is a requirement.
		It is presently used in astronomy, for storing (in particular)	
		images, spectra and time series.
ports:		Alpha OSF/1, Sparc SunOS, Sparc Solaris
restrictions:	?
contact:	? ?
how to get:	ftp pub/doc/star-docs/sun92.tex from
updated:	?

name:		IDBM (ISAM Database Manager)
version:	0.2.0
interfaces:	C library, curses query facility
access methods: ISAM
multiuser:	no
transactions:	no ?
distributed:	no
query language: none
limits:		?
robustness:	beta release
description:	IDBM is a fairly complete ISAM database system.	 It includes
		a database library, a schema compiler, a database consistaency
		checker,  import and export routines, and curses programs to
		modify the database schema and the data in the database.
references:	?
announcements:	?
discussion:	?
bugs:		?
requires:	?
ports:		Xenix, SysV, HP-UX, AIX, Amiga, SunOS, BSD, and Ultrix
restrictions:	May not be used for commercial purposes.
author:		John F Haugh II <>
contact:	?
how to get:	ftp pub/idbm/idbm-0.2.x/* from
updated:	1992/03/31

name:		sdbm
version:	?
interfaces:	ndbm
access methods: hash
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		?
robustness:	[I know of no problems --ed]
description:	ndbm work-alike hashed database library based
		on Per-Aake Larson's Dynamic Hashing algorithms.
author:		Ozan S. Yigit <>
how to get:	included in the X11R5 distribution as contrib/util/sdbm
updated:	1990/03/01

name:		tclvsdb
version:	1.0
interfaces:	Tcl
multiuser:	yes
transactions:	no
distributed:	no
query language:	none
limits:		?
robustness:	?
description:	Persistent rectangular data structures for Tcl.
author:		Steven B. Wahl <>
how to get:

name:		tdbm
version:	1.2
interfaces:	dbm-like
access methods: hashing
multiuser:	In theory, but the required threads package is not currently
transactions:	yes
distributed:	yes
query language: none
limits:		Some minor ones.
robustness:	Probably pretty reliable, but no hard data available.
description:	Tdbm is a transaction processing database with a dbm-like
		interface.  It provides nested atomic transactions, volatile
		and persistent databases, and support for very large objects
		and distributed operation.
references:	A paper appearing in the Summer '92 USENIX proceedings
		describes the design and implementation of tdbm and examines
		its performance.
status:		Hasn't been updated in a long time.  Commercial support
		is available.
author:		Barry Brachman <>
requires:	Nothing special.
ports:		Linux, Sparc, MIPS, AIX.  Thought to be quite portable.
restrictions:	Copyrighted with liberal use policy.  
how to get:
updated:	1994/07/06

name:		Wb
version:	1a2
interfaces:	scheme library
access method:	b-tree
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		keys and data must be less that 256 bytes.  Total database
		must be < blocksize*2^32.
robustness:	unknown.  New release by a good programmer.
description:	WB is a disk based, sorted associative array C library.	 These
		associative arrays consist of variable length (less that 256
		bytes) keys and values.	 WB comes with an interface to the
		Scheme implementation SCM.
author:		Aubrey Jaffer <>
requires:	SCM and SLIB (also available from
ports:		?
how to get:	ftp archive/scm/wb1a2.tar.z from
updated:	1993/11/05

name:		YACL (Yet Another Class Library)
version:	?
interfaces:	C++ library
access methods: variable-length record management, b-trees.
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		?
robustness:	?
description:	YACL is a general-purpose C++ class library.  It happens
		to include some disk access methods.
ports:		MS Windows, Linux
restrictions:	Commercial use prohibited.
author:		M. A. Sridhar <>
how to get:	ftp pub/sridhar/ from
updated:	1994/05/25

-------------------------- x-Base compatible ------------------------------

name:		CDBFile
version:	?
what:		C access library
transactions:	no
description:	CDBFile is a C++ object-oriented package for programmers
		who need to manipulate dBASE III files in their programs.
		It enables you to perform many operations on an existing
		DBF file: reading/writing to it, accessing its values,
		sorting the records, adding/deleting records, etc.  It
		comes with full text and postscript documentation, and
		commented source code.  A demonstration program, TestDBF,
		shows the various possibilities of the CDBFile library,
		and its source file, testdbf.cpp, demonstrates how to
		implement CDBFile within a program.
author:		Herve GOURMELON <>
ports:		Windows, unix
restrictions:	GNU Library General Public License
how to get:
updated:	1997/03/12

name:		dbc3
version:	1.0
what:		C access library
transactions:	no
robustness:	?
description:	Dbclib provides a basic C interface to the database files
		used by dBase III.  It provides funtions to both read and 
		write them.  The author is German and so all the comments are 
		in German.  It's very small (95k).  [I'm not sure I have 
		the name correct --ed]
ports:		Unix, MS-DOS
author:		D.Schanz
how to get:	uucp (host gold, login nuucp, no password, phone 08106-34593) 
		/home/public/unxhigh/unix1/dbclib.tgz; or
		ftp pub/pc/dos/programming/c/dbclib.tar.gz from
updated:	1988/09/13

name:		dbf (xBase manipulation package)
version:	?
what:		C access library and tools
access methods: ?
multiuser:	no
transactions:	no
distributed:	no
query language: none
limits:		?
robustness:	?
description:	DBF is a set of tools and library routines to manipulate xbase
		files.	The tools allow xbase files to be created and
		manipulated from the command line.
author:		Brad Eacker <>
how to get:	comp.sources.misc volume 43
updated:	1994/06/27

name:		dbf read routines in perl
version:	?
what:		minimal read-only perl access library
description:	very simple (15 line) routines to read dbf files
author:		David Rensin <>
how to get:	ftp pub/source/read_dbf_in_perl from
updated:	1994/11/13

name:		dbflib
version;	0.7
what:		perl and C access library
limits:		does not support indexes
description:	Interface routines for manipulating xBase files.
restrictions:	GNU Library General Public License
author:		Rasca Gmelch <>
how to get:
updated:	1997/03/27

--------------------------- full text -------------------------------------

name:		FFW 
version:	1.01
interfaces:	command line -- intended for CGI scripts
access methods: inverted index ?
query language: formal expression grammar with AND, OR, NOT and ().
index size:	30-50% of data size
limits:		?
robustness:	?
description:	Freetext search For Web (FFW) s a package made to provide
		easy-to-use freetext searching facilities over HTML documents
		(and as a special case plain text documents). The output
		is intended as input to scripts providing the user interface,
		typically CGI scripts.
		FFW is basically intended to replace similar solutions
		based on the Wais search engine, and solves some of the
		problems we experienced when using the Wais engine.
		FFW supports HTML.  It parses input files, ignoring HTML
		directives and translating HTML special characters into
		ISO8859-1 equivalents.
		FFW can build indexes incrementally and can search multiple
		indexes at the same time.
		Program messages are separated in one file for easy
		nationalisation.  Norwegian and English versions are
requires:	g++ 2.6.2 exactly, g++ library
ports:		SunOS 4.1.3
author:		Ken Ronny Schouten, Haiyan Yang, Berd Hefjeld:	MultiTorg
		project at TeleNor Research, Norway.
how to get:	ftp pub/ffw/ from
updated:	1995/01/09

name:		glimpse 
version:	1.0
interfaces:	command line
access methods: ?
query language: logical conjunctions in command line searches
index size:	2-4%
limits:		does not work well with source text larger than 500MB
robustness:	?
description:	Glimpse is a text pre-scanning and query tool.	It builds
		a database of which files a word is used in.  When you want
		to search for a word, it knows ahead of time where it needs
		to look.  This allows it to give very quick results without
		storing a large inverted index.
references:	U. Manber and S. Wu, "GLIMPSE: A Tool to Search Through Entire
		File Systems," Usenix Winter 1994 Technical Conference, San
		Francisco (January 1994), pp. 23-32.  Also, Technical Report
		#TR 93-34, Dept. of Computer Science, University of Arizona,
		October 1993 (a postscript file is available by anonymous ftp
		S. Wu and U. Manber, "Fast Text Searching Allowing Errors,"
		Communications of the ACM 35 (October 1992), pp. 83-91.
ports:		portable, binaries provided for sun, mips, linux and alpha
author:		Udi Manber, Sun Wu, and Burra Gopal, Department of Computer
		Science, University of Arizona.
how to get:	ftp glimpse/* from
updated:	1994/04/27

name:		Liam Quin's text retrieval package (lq-text)
version:	1.14 beta 3
interfaces:	command line, curses
access methods: hash (dbm) plus clustered linked list
multiuser:	read only
distributed:	no, can be used over nfs if the systems are similar
query language: very limited command line
limits:		30-bit max document size, 31-bit distinct words in vocabulary,
		up to 2^24 documents (possibly more but I don't have enough
		disk to test anything like that!)
index size:	>30%, <100% of input text
robustness:	The README says that there are bugs.
description:	lq-text is a text retrieval package.
		That means you can tell it about lots of files, and later you
		can ask it questions about them.  The questions have to be:
		"which files contain this word?" or "which files contain this
		phrase?", but this information turns out to be rather useful.
		Lqtext has been designed to be reasonably fast.	 It uses an
		inverted index, which is simply a kind of database.  This tends
		to be smaller than the size of the data, but more than half as
		large.	You still need to keep the original data.
		Lqtext uses dbm (berkeley db or sdbm) to store its indexes.
ports:		most version of unix (except SCO)
restrictions:	permission required for commercial use.
author:		Liam R. E. Quin <>
how to get:	ftp pub/lq-text*.tar.Z from
updated:	1996/05/26

name:		mg
version:	1.0
interfaces:	command line interpreter, X (Tcl)
access methods: ?
multiuser:	no
transactions:	no
distributed:	no
query language: boolean and ranked queries using cosine similarity measure
index size:	5-15% of text being indexed, depending on document size and
		richness of vocabulary.	 Text is also stored compressed,
		requires around 25-30% of original size. Complete retrieval
		system requires 30-45% of original text size.
limits:		Will probably fail when used with > 4Gb
robustness:	It is a research prototype, and as such there are no
		guarantees. Don't rely on it as a primary archive tool; but it
		is very useful as an adjunct to other storage mechanisms for
		e.g. maintaining a personal mail retrieval system. And, of
		course, for research purposes.
description:	mg compresses and indexes documents and images (indexed by
		user-supplied textual description).  All components are stored
		compressed: text by a word-based method that reduces the space
		requiremnent to around 25% of input; images by one of three
		different methods (FELICS, Textual Image Compression, two-level
		image compression); and index using index compression methods.
		The package also includes a mechanism for fast and economical
		creation of the index in thge first place.  It requires about 8
		hours (Sun SPARC 10 Model 512) to compress and index 2 Gb of
		text (the TREC collection); final retrieval system requires
		about 700 Mb to operate.  Multi-term Boolean and ranked queries
		are answered within seconds.
references:	"Managing gigabytes: compressing and indexing documents and
		 images", Witten, Moffat, and Bell, Van Nostrand Reinhold, 1994,
		 ISBN 0-442-01863-0.
		"Compression and fast indexing for multi-gigabyte text
		 databases", Moffat and Zobel, Australian Computer Journal,
		 26(1):1-9, February 1994.
status:		actively-develped research prototype.  Support of public use
		is not a priority.
ports:		SunOS, Solaris, SGI, Ultrix, NeXT.
restrictions:	GNU General Public License
author:		Tim Bell <>, Stuart Inglis
		<>, Alistair Moffat
		<>, Neil Sharman <>,
		Tim Shimmin <>, Ian Witten
		<>, Justin Zobel <>, and
contact:	Alistair Moffat <>
how to get:	ftp pub/mg from
updated:	1994/03

name:		qt (Query Text)
version:	0.1
interfaces:	unix command line
access methods: ?
multiuser:	no
distributed:	no
query language: unix command line
index size:	?
limits:		?
robustness:	?
description:	Qt creates, maintains, and queries a full text database. The
		database file system is organized as an inverted index. The
		program is written as a single script, in Bourne Shell, and
		permits simple natural language queries.  
		[qt appears to be easier to use than lq-text and wais --ed]
bugs:		author
ports:		Unix, SysV.4, AIX, OSF/1, etc.
author:		John Conover <>
how to get:	comp.sources.unix volume 27
updated:	1993/10/18

name:		SMART
version:	11.0
interfaces:	terminal, X (slightly oder version), and several 
		under development including Z39.50
access methods: inverted file search or sequential search
multiuser:	yes, but last writer wins when there are update conflicts
distributed:	In-house version, to be made public in fall
query language: Natural language
index size:	approx 40% of original text.
limits:		Can only handle roughly 4 Gbytes of text in 
		non-distributed version.
robustness:	Research tool; parts have been well-tested but others not.
description:	SMART is an implementation of the vector-space model of
		information retrieval proposed by Salton back in the 60's.  The
		primary purpose of SMART is to provide a framework in which to
		conduct information retrieval research.	 Standard versions of
		indexing, retrieval, and evaluation are provided.
		The system is designed to be used for small to medium scale
		collections, and offers reasonable speed and support for these
		actual applications.
		SMART analyses the collection of information and builds
		indexes.  It can then be used to build natural-language based
		information retrieval software.	 It uses feedback from the
		user to tighten its search.
references:	Z39.50 URL: <>
restrictions:	Research use only.
ports:		Unix (works under Linux, does not work under Ultrix, ?)
contact:	<>
how to get:	ftp pub/smart/* from
updated:	1992/07/21

name:		WAIS (Wide Area Information Server)
version:	8 b5.1
interfaces:	the wais protocol (Z39.50)
access methods: inverted string index
multiuser:	read only
distributed:	client/server
query language: natural language, boolean, Relevance Feedback
index size:	roughtly = data size
limits:		"none"
robustness:	fairly high
description:	There are three main components: WAISINDEX, WAISSERVER, and
		WAISINDEX creates an inverted file index.  WAISINDEX includes
		filters for a number of common file formats.
		WAISSERVER listens for Z39.50 packets and tries to answer
		WAISSEARCH is the user agent that talks to WAISSERVERs.	 There
		are several front ends: shell, X, and emacs.
ports:		vax, sun-3, sun-4, NeXT, sysV
restriction:	commercial version exists, contact
author:		Harry Morris <>, Brewster Kahle 
		<>, Jonny Goldman <Jonathan@Think.COM>
how to get:	ftp pub/freeware/unix-src/* from
updated:	1992/11/16

--------------------------- interfaces ------------------------------------

name:		CB++
version:	0.1
interface from: C/C++
interface to:	SunOS/Oracle (DOS+Windows/Oracle,Gupta, OS/2 Sybase)
description:	CB++ provides a plain C/C++ interface (not embedded) for SQL
		database server access.	 It was written in 1989 as a basis for
		storing C++ objects in a relational database.	It is very
		simple to use and makes applications portable among different
		SQL databases.	The library itself is relatively easy to port
		as the database vendor specific code is separated into a single
		C++ class which makes up only a limited part of the library.
		The author supports the current SunOS/Oracle version and
		server ports to other UNIX databases (DOS-, Windows-, OS/2-stuff
		is provided as it is and no longer supported)
requires:	C++
ports:		Oracle 6 for SunOS 4.1.3,
		Gupta SQL Server for DOS/MS-Windows, OS/2 SQL Server
author:		Bernhard Strassl <>
how to get:	ftp R5contrib/CB++.0.1.tar.Z from
updated:	1993/10/05

name:		ChezSybase (A blatent trademark ripoff)
version:	1.0
interface from: Chez Scheme
interface to:	Sybase 
limits:		limited text datatype support -- text datatype only up to 32K --
		the Sybase returned SQL column limit, image and binary data
		not supported, datetime Sybase data must be manipulated as
		strings in Scheme, a few db-lib calls not implimented
description:	A foreign function interface to Chez Scheme to allow calls to
		the Sybase db-lib, the API to the Sybase database, and a high
		level Scheme-like interface so you can forget about db-lib.
bugs:		Contact the author.
requires:	Chez Scheme, Sybase db-lib & server, network support for Sybase
ports:		VMS, should work in Unix
author:		Karl O. Pinc <>
how to get:	ftp
updated:	1991/08/07

name:		ciORA
version:	alpha
interface from: C
interface to:	Oracle
query language: ?
robustness:	?
description:	ciORA is a set of C interface routines to Oracle that are
		modeled after the standard I/O portion of the C library.  ciORA
		presents a familiar interface to an experienced C programmer by
		avoiding the awkward embedding of SQL statements using
		precompilers and the tedium of using low-level OCI calls.
		ciORA eliminates the need for precompilers by supplying an
		interface library providing equivalent functions.  It also
		provides a higher level of abstraction to the functions in the
		Oracle Call Interface (OCI).  ciORA manages (and hides) the
		tedious details necessary when writing programs using OCI by
		replacing the cumbersome Oracle constructs such as logon data
		areas, cursor data areas, and external datatypes, the Oracle
		array interface, bind variables, select-list-items, and the
		like with constructs familiar to a C programmer using the
		standard I/O portion of the C library.	ciORA also provides a
		consistent interface to Oracle errors similar to the convention
		used in C's errno.
requires:	Oracle
ports:		IRIX 5.2, Oracle
restrictions:	GNU General Public License
author:		Zane Dodson <>
how to get:	email author
updated:	1994/09/10

name:		cisamperl
version:	0.9
interface from: perl
interface to:	Informix C-ISAM 3.1 library
limits:		?
robustness:	?
description:	cisamperl/rocisperl is a package, which implements an interface
		to the INFORMIX C-ISAM library for perl. It is coded as an usub
		(see perl documentation) and needs to be compiled with perl and
		the C-ISAM library to form 2 separate executables called
		cisamperl and rocisperl respectively.  cisamperl is a fully
		functioning (unless I forgot something) perl executable with
		calls for C-ISAM file access added.  rocisperl is the same,
		with all calls that create/modify/delete C-ISAM files or
		records disabled.
requires:	C-ISAM 3.1, perl4
ports:		?
author:		Mathias Koerber <>
how to get:	ftp pub/perl/db/perl4/cisamperl/cisamperl-* from
updated:	1994/10/29

name:		ctreeperl
version:	?
interface from: perl
interface to:	FairCom Ctree 
description:	A perl interface for FairCom Ctree file indexing.
requires:	Ctree
author:		John Conover <>
how to get:
updated:	1994/04/07

name:		dbCGI
version:	?
interface from:	WWW/CGI
interface to:	Progress, Sybase, Oracle, Informix, Ingres, ODBC
description:	dbCGI, from CorVu Pty Ltd (Australia), is a CGI gateway which 
		gives easy access to SQL databases using the World Wide Web. 
		dbCGI is capable of producing formatted output, forms, tables 
		and complex reports using SQL calls embedded in an HTML 
restrictions:	CorVu General Public License 
contact:	?
how to get:
updated:	?

name:		DBI
version:	0.89
interface from: Perl5
interface to:	Many databases via DBD modules
interfaces:	Perl function calls
robustness:	Good.
description:	The database-independent half of a RDBMS interface to
		Perl5.  DBI is only useful when combined with DBD (DataBase
		Dependent) modules.  DBD Modules exist for many databases.
		Using DBI allows the same perl code to run against different
status:		actively developed
author:		Tim Bunce
how to get:
updated:	1997/07/25

name:		DBD::Empress
version:	0.45
interface from:	DBI
interface to:	Empress
description:	Database dependent layer for Empress
author:		Empress Software, Inc
how to get:
updated:	1996/08/12

name:		DBD::DB2
version:	0.63
interface from:	DBI
interface to:	DB2
description:	Database dependent layer for DB2
how to get:
updated:	1997/04/10

name:		DBD::Informix
version:	0.56
interface from:	DBI
interface to:	Informix
description:	Database dependent layer for Informix
author: (Jonathan Leffler)
how to get:
updated:	1997/07/13

name:		DBD::ODBC
version:	0.16
interface from: DBI
interface to:	ODBC
description:	Database dependent layer for ODBC
author:		Tim Bunce
how to get:
updated:	1997/07/25

named:		DBD::Oracle
version:	1997/06/21
interface from:	DBI
interface to:	Oracle
description:	Database dependent layer for Oracle
author:		Tim Bunce
how to get:
updated:	1997/06/21

name:		DBD::Solid
version:	0.02
interface from:	DBI
interface to:	Solid
description:	Database dependent layer for Solid
author:		Thomas Wenrich <>
how to get:
updated:	1997/06/21

name:		DBEDIT
version:	0.9b8
interface from:	CGI 
interface to:	rdb
description:	Perl CGIs for web based database updates of the rdb database.
restrictions:	Library GNU General Public License
how to get:
updated:	?

name:		DSQL
version:	3.0
interface from: Unix, Macintosh, MS-DOS, MS-Windows, and Macintosh Hypercard
interface to:	Unix/Informix, VMS/Oracle
description:	DSQL is a simple client/server protocol to support remote
		access of SQL databases.  DSQL was designed in response to a
		perceived need at Genentech to provide graphical front-ends on
		Macintosh computers to Informix relational databases running on
		Unix servers.  DSQL version 3 is distributed with 2 server
		implementations and four client library implementations.  The
		API for the client libraries has been standardized, and the
		client code is divided into portable and architecture-specific
requires:	?
ports:		Mac, PC, Unix
author:		The Genentech Scientific Computing Technology Development 
		group.	Original authors: David Mischel, Terry Oberzeir, 
		Scooter Morris <>, Kathryn Woods.  
		Current team: Jim Fitzgerald, David Mischel, Scooter Morris, 
		Terry Oberzier, and Dan Lamb (VMS/Oracle).
contact:	?
how to get:	ftp pub/dsql.3.tar.Z from
updated:	1993/06/25

name:		Ingperl 
version:	2.0
interface from: perl
interface to:	Ingres
descritpion:	Ingperl is a set of user subroutines to enable Perl programs to
		access Ingres databases.  Ingperl used to be called Sqlperl.
requires:	Perl 3.027 or higher, ?
author:		Ted Lemon <>
how to get:	ftp pub/perl/db/sqlperl/? from
updated:	1994/04/11

name:		iODBC
version:	2.12
interface from:	ODBC
interface to:	ODBC
description:	iODBC ( intrinsic Open Database Connectivity ) driver manager 
		is an ODBC 2.0 compliant ODBC driver  manager  which performs 
		exactly same tasks of ODBC 2.0 driver manager(i.e driver 
		loading, parameters and function sequence checking, driver's 
		function invoking, etc..). Any ODBC driver works with ODBC 2.0 
		driver manager  will also work with iODBC driver manager and 
		vice versa. Applications(which using ODBC function calls ) 
		linked with iODBC driver manager will be able to simultaneously
		access multiple different type of data sources within a single
		process through suitable ODBC drivers. 
restrictions:	GNU General Public License
author:		Ke Jin <>
how to get:
updated:	1995/12/29

name:		Isqlperl
version:	1.1
interface from: perl
interface to:	Informix
limits:		Maximum concurrently open cursors configured at build time.
descritpion:	Isqlperl is a set of user subroutines to enable Perl programs to
		access Informix databases.
requires:	Perl 4.035 or higher, Informix ESQL/C (Online, SE, or Turbo)
restrictions:	GNU Public License
author:		Bill Hails <>
how to get:	ftp pub/perl/db/isqlperl/isqlperl-1.1.shar.Z 
updated:	1993/10/02

name:		Isqltcl ?
version:	?
interface from: Tcl
interface to:	Informix
description:	Isqltcl is an extension to Tool Command Language (Tcl) that
		provides access to an Informix database server.	 Isqltcl adds
		additional Tcl commands that login to an Informix Server, pass
		SQL code, read results, etc.
requires:	?
discussion:	comp.lang.tcl
author:		Srinivas Kumar <>
how to get:	ftp tcl/extensions/isqltcl.tar.Z from
updated:	1993/09/15

name:		Interperl
version:	?
interface from: perl4
interface to:	Interbase
descritpion:	Interperl is a set of user subroutines to enable Perl programs 
		to access Interbase databases.
requires:	Perl 3.027 or higher, ?
author:		Buzz Moschetti <>
how to get:	ftp pub/perl/db/interperl/? from
updated:	?

name:		MPSQL
version:	1.5
interface from:	X11
interface to:	PostgreSQL
description:	SQL GUI client for PostgreSQL.  Similar to Oracle's
		Server Manager.
how to get:
updated:	1997/06/30

name:		nnODBC
version:	0.5
interface from:	ODBC
interface to:	Netnews
description:	Developed as an example of an ODBC driver.
author:		Ke Jin <>
how to get:
updated:	1996/06/04

name:		Win32::ODBC
version:	?
interface from:	Perl5
interface to:	ODBC
description:	ODBC bindings for perl5 on Windows95 and WindowsNT
author:		Daniel Demaggio <>
how to get:
updated:	?

name:		OdbcTcl
version:	0.2
interface from:	Tcl
interface to:	ODBC
description:	OdbcTcl is an extension for TCL to access the ODBC 2.0 
ports:		Windows 95, Windows NT, Linux
author:		Jose Porcayo <103662.3300@CompuServe.COM>
how to get:
updated:	1997/02/26

name:		ODBM
version:	0.9
interface from:	C++
interface to:	dbm
limits:		Some minor ones.
robustness:	Looks fine but not hardly tested yet.
description:	ODBM is a tiny, DBM-based persistent object storage. It 
		provides single inheritance, automatic key and object type 
		management, list types, and objects up to 65000 DBM blocks. 
		The overall functionality depends on the DBM module used as a 
references:	Webpages, explaining the interface and some implemantation 
discussion:	Contact the author.
bugs:		Contact the author.
author:		Jan Lessner <>
ports:		Common UNIX platforms and Windows NT, thought to be quite 
restrictions:	Copyrighted with liberal use policy.
how to get:
updated:	1997/03/19

name:		ODDIS 
version:	2.11
interface from:	tty
interface to:	Oracle
description:	The Oracle Data Dictionary Information System (ODDIS) provides
		a database administrator's view of an Oracle database.  It 
		displays the data dictionary, and various statistics.  It 
		accepts SQL statements to be run and will allow you to edit
how to get:
restrictions:	GNU General Public License
updated:	1996/06/12

name:		Oraguile
version:	0.0
interface from:	Guile
interface to:	Oracle
how to get:
updated:	1996/02/15

name:		Oraperl
version:	?
interface from: perl
interface to:	Oracle
descritpion:	Oraperl is a set of user subroutines to enable Perl programs to
		access Oracle databases.
requires:	Perl 3.027 or higher, Oracle Pro*C
author:		Kevin Stock 
how to get:
updated:	?

name:		Oratcl
version:	2.5b1
interface from: Tcl
interface to:	Oracle
description:	Oratcl is an extension to Tool Command Language (Tcl) that
		provides access to a Oracle Database server.  Oratcl adds
		additional Tcl commands that login to an Oracle Server, pass
		SQL code, read results, etc.  Oratcl was inspired by similar
		tools written for Perl (sybperl, oraperl) but was written from
		scratch instead of borrowing on the work of either Perl
requires:	Tcl 6.7, Tk 3.2, Oracle OCI libraries 1.5, 
		Oracle SQL Server Version 6 or Version 7
discussion:	comp.lang.tcl
author:		Tom Poindexter <>
how to get:	ftp tcl/extensions/oratcl-2.2.tar.gz from
updated:	1997/05/09

name:		pgperl
version:	?
interface from: perl
interface to:	Postgres
descritpion:	pgperl is a set of user subroutines to enable Perl programs to
		access Postgres databases.
requires:	Perl 3.027 or higher, ?
author:		Igor Metz <>
how to get:	ftp pub/perl/db/pgperl/? from
updated:	?

name:		REXX/SQL
version:	1.2
interface from:	REXX
interface to:	Oracle, mSQL
description:	SQL bindings for REXX
author:		Hessling Mark <>
how to get:
updated:	1995/08/13

name:		SIOD (Scheme In One Defun/Day)
version:	3.2
interface from: C, C++, Scheme
interface to:	Oracle, Digital RDB, flat ascii, flat binary. Sybase.
access methods: flat files contain symbolic expression such as hash tables.
multiuser:	yes with commercial DB, no with flat files.
transactions:	yes with commercial DB, no with flat files.
distributed:	yes with commercial DB, no with flat files.
query language: SQL, any SCHEME program.
limits:		None.
robustness:	?
description:	This is a scheme interpreter with built-in procedures using
		the Oracle Call Interface (OCI) and DIGITAL RDB SQL Services.
		You can use it merely as a flexible database loader/unloader
		with fast binary flat-file data save/restore. Or you can
		use it to apply the classic Symbolic Manipulation or
		Artificial Intelligence techniques on your data sets.
		The main-program can be oriented towards batch, character-cell
		terminal, or Window/GUI. Sybase via ct library.
		The system also provides a general purpose unix scripting
		language environment.
references:	Structure and Interpretation of Computer Programs MIT Press.
announcements:	comp.lang.scheme, comp.databases.rdb,
bugs:		Contact the author.
requires:	C compiler, your favorite commercial DB.
author:		George Carrette <>
how to get:	ftp pub/gjc/siod* from or from
updated:	1996/06/12

name:		Sqsh
version:	1.5
interface from:	command line, X11
interface to:	Sybase
description:	A scripting command line interpreter interface to Sybase. 
		Sqsh provides a powerful environment for using Sybase.
author:		Scott Gray <>
how to get:
updated:	1997/02/18

name:		SybJava
version:	1.0 Beta
interface from:	Java
interface to:	Sybase
description:	A port of Sybtcl to Java
author:		James Todd <>
how to get:
updated:	?

name:		Sybperl
version:	1.011 patch 12
interface from: perl4
interface to:	Sybase
descritpion:	Sybperl is a set of user subroutines to enable Perl programs to
		access Sybase databases.
requires:	Perl 3.027 or higher, ?
author:		Michael Peppler <>
how to get:	ftp pub/perl/db/mod/Sybperl/ from
updated:	1994/12/22

name:		Sybperl
version:	2a7 (a is for alpha)
interface from: Perl5
interface to:	Sybase
descritpion:	Sybperl is a set of user subroutines to enable Perl programs
		to access Sybase databases.  Sybase::DBlib implements a
		fairly large subset of Sybase's DBlibrary API in the Perl5
		fashion (ie using some of the new OO features of Perl5)
requires:	perl5
author:		Michael Peppler <>
how to get:	ftp pub/perl/db/mod/Sybperl/ from
updated:	1994/12/22

name:		Sybtcl
version:	2.5b1
interface from: Tcl
interface to:	Sybase
description:	Sybtcl is an extension to Tool Command Language (Tcl) that
		provides access to a Sybase Database server.  Sybtcl adds
		additional Tcl commands that login to a SQL Server, pass SQL
		code, read results, etc.  Sybtcl was inspired by similar tools
		written for Perl (sybperl, oraperl) but was written from
		scratch instead of borrowing on the work of either Perl
requires:	Sybase Open Client (DB-Library), Sybase SQL Server
discussion:	comp.lang.tcl
author:		Tom Poindexter <>
how to get:	ftp tcl/extensions/sybtcl-2.2.tar.gz from
updated:	1997/05/09

name:           T2C
version:        1.0
interface from: C++
interface to:   Oracle (Gupta and Sybase possible)
robustness:     Author is using it for serious applications in a health
		care environment.
description:    T2C generates C++ source code for so called ``shuttle
                classes''. A shuttle class is a C++ class that
                reflects a certain relation within a DBMS. There are
                methods for retrieving, inserting, updating and
                deleting tuples whithout having to spell out any
                attribute in an SQL statement. This greatly faciliates
                DBMS interfacing for C++ applications thereby adding
ports:          unix
restrictions:   GNU General Public License
author:         Gunther Schadow <>
                CB++ was originally written by 
		Bernhard Strassl <>     
how to get:
updated:        1995/07/21

name:		tclgdbm
version:	1.0
interface from: Tcl
interface to:	gdbm
description:	none provided
discussion:	comp.lang.tcl
author:		Tuan Doan <>
how to get:	ftp pub/tcl/extensions/tclgdbm1.0* from
updated:	1994/02/08

name:		tcl+gdbm
version:	0.1
interface from: Tcl
interface to:	gdbm
description:	none provided
discussion:	comp.lang.tcl
author:		Christian Lindig <>
how to get:	ftp pub/local/sw/tcl+gdbm-0.1.tar.gz from
updated:	1994/05/04

name:		tcshql
version:	1.0
interface from:	Tcl
interface to:	Shql
description:	Tcl bindings for accessing Shql databases
author:		Jean-Luc Fontaine <>
how to get:
updated:	?

name:		TimeDB
version:	?
interface from:	ATSQL2
interface to:	Oracle
description:	TimeDB is a bitemporal relational database system based on 
		the query language SQL. It supports a query language, data 
		manipulation language, data definition language and assertions.
		TimeDB supports the temporal query language ATSQL2, which was 
		designed by Michael Boehlen, Christian Jensen, Richard 
		Snodgrass and Andreas Steiner. 
		TimeDB runs as a frontend to the commercial (relational) 
		database system Oracle. ATSQL2 statements (queries, updates, 
		and assertions) are compiled into (sequences of) SQL-92 
		statements which are executed by the backend.  TimeDB provides 
		bitemporal statements.  It excels in a seamless integration 
		of time into databases by supporting upwards compatibility and
		temporal upwards compatibility. Implementation is continuing. 
		A SQL main memory interpreter is shipped with this release, 
		such that TimeDB can be run without Oracle. 
author:		Andreas Steiner <>
how to get:
updated:	?

name:		Uniperl
version:	?
interface from: perl
interface to:	Unify 5.0
descritpion:	Uniperl is a set of user subroutines to enable Perl programs to
		access Unify databases.
requires:	Perl 3.027 or higher, ?
author:		Rick Wargo <>
how to get:
updated:	?

name:		WebinTool
version:	2.1.1p1
interface from:	WWW/CGI
interface to:	SQL
description:	WebinTool is a generic WWW to SQL-database interface building
		tool developed at the BBSRC Roslin Institute.  WebinTool
		allows the user to create USER-CUSTOMIZED WWW interfaces
		to SQL-databases through a series of user-defined WebinTool
		forms.  A WebinTool form is a document written in HTML and
		a set of webin statements.
restrictions:	GNU General Public License
ports:		Sybase, Ingres, 
how to get:
updated:	1997/02/24

name:		Willow 
version:	2.2
interface from: user
interface to:	WWW/Mosaic, Z39.50, ZDist (formerly free-WAIS) from CNIDR
description:	Willow (Washington Information Looker-upper Layered Over
		Windows) is a general purpose information retrieval tool. It
		provides a single, easy-to-use graphical user interface (X
		Windows / Motif) to any number of text-based bibliographic
ports:		DEC/Ultrix, Solaris, SunOS, RS6000/AIX.
how to get:	ftp willow/* from
updated:	1994/06/30

--------------------------- application builders --------------------------

name:		AdaSAGE
version:	?
interfaces:	SQL, embedded SQL.
transactions:	yes
distributed:	?
query language: SQL
robustness:	?
description:	AdaSAGE is not a DBMS.
		AdaSAGE is an application development tool that provides
		facilities for creating an application specific relational data
		base. There are two aspects of SQL dialog to consider. First is
		listening to SQL and responding by executing the requested
		command. Second is issuing SQL to get a foreign system to
		execute some process on your behalf.  In the first case AdaSAGE
		provides both an embedded SQL technology and an interactive SQL
		system adapted to comply with ANSI-SQL DML Level 1. In the
		second case AdaSAGE does not provide any capabilities for
		creating SQL commands, but since AdaSAGE is a set of Ada
		packages there is no reason that a package could not be
		developed to do so.
		The capability to record all transactions and roll forward from
		previous dates gives an audit trail and recover capability.
		These features are often provided within data base management
		systems, and are provided with AdaSAGE as a logging option, but
		seldom if ever are they used in final applications because of
		the excessive time and data storage requirements.
references:	?
announcements:	?
discussion:	?
bugs:		?
requires:	Ada
ports:		MS-DOS, UNIX
restrictions:	Use restricted to US DoD, DoE and educational institutions.
contact:	?
how to get:	ftp pub/sage/* from
updated:	?

name:		GNUstep Database Library
version:	1.0.0
interface from:	GNUstep
interface to:	Postgres, Sybase, SQL Server
description:	The GNUstep Database Library is a hierarchy of Objective-C
		classes that provide a three-tiered architecture for
		developing database applications.  The three-tier architecture
		is a flexible paradigm for building robust and scalable
		client/server applications; the three tiers refer to the
		database, the Application Objects, and the user interface.
		The separation of the database from the user interface
		through intermediary Application Objects allows the data
		to be distributed appropriately across database servers
		and still have the user interface display data cohesively
		for the end-user.  Business logic, as implemented in the
		Application Objects, provides the mechanism for consistency
		and reusability across all your business applications.
contact:	?
how to get:
updated:	1997/03/19

name:		Onyx
version:	2.47
interface from: Onyx 4gl, Tcl, web
interface to:	Ingres89, GAWK, Shql, Yard, Minerva SQL, Postgres4.2, 
		some CDROMs! (German Books in Print)
interfaces:	Onyx uses a OO-Parser to translate SQL to different query
                The transaction manager can be accessed by any aplication
                which is able to use pipes or TCP/sockets.
multiuser:	Depends on the engine used.
transactions:	Yes, but no rollback, all transactions are atomic as
		a block, replication of transactions is possible.
distributed:	Yes its possible to connect to any mentioned database
                anywhere in the net.  Replication over mail or tcp is
                posible, and crypted with idea/md5.
query language: SQL + Onyx 4gl + Tcl + "extended" HTML
limits:		Current version uses memory to store active cursors.
                Most people told there is to few documentation.
                GCC > 2.5.8 sometimes makes problems.
robustness:	Onyx is stable, and useable for clients. If you are using a
                stable engine, you'll get a stable applcation. And you can
                exchange engines, when performance or features/bugs are
                required.  The author is selling applications to departments
                of environment in germany, and bookstores.   The author would
		like to have it keep track of his paycheck.
description:	Onyx is a 4gl based on the idea of model view controller. Onyx
                4gl connects to a transaction manager based on a OO-Parser
                generator via a socket.  While the design goal of the protocol
                was to keep it as simple as posible, its a good starting point
                of writing vendor independent database applications.
status:		actively developed and supported; current version is stable.
announcements:	comp.os.linux.announce
bugs:		Michael Koehne <>
ports:		Tested on Linux and SunOs.
restrictions:	GNU Public Licence
author:		Michael Kraehe <>
how to get:
updated:	1996/03/28

--------------------------- other -----------------------------------------

name:		Arjuna Distributed Programming System
version:	3.2
interfaces:	C++
access methods: ?
multiuser:	yes
transactions:	yes, nested
distributed:	yes, includes replicated objects
query language: ?
limits:		?
robustness:	"all reported bugs fixed"
description:	Arjuna is a programming system for reliable distributed
		computing. Arjuna supports nested atomic actions for
		controlling operations on objects (instances of C++ classes),
		which can potentially be persistent. The software available
		includes a C++ stub generator which hides much of the details
		of client-server based programming, plus a system programmer's
		manual containing details of how to install Arjuna and use it
		to build fault-tolerant distributed applications.
		Arjuna does not actually include a database system though
		it could be used to write one.
discussion:	send "join arjuna YOUR-NAME-HERE" to
ports:		UNIX: Suns, HPs, etc.
restrictions:	A commercial extension exists.
how to get:	ftp pub/Arjuna from
updated:	1995/03/19

name:		"A Guide to the SQL standard"
what:		BNF SQL grammer
version:	?
description:	A BNF grammer for SQL is included in the book.
how to get:	buy the book: "A Guide to the SQL standard" by Hugh Darwen
		and C.J. Date.
updated:	?

name:		CDF (Common Data Format)
what:		data exchange library
description:	A library and toolkit for multi-dimensional data sets.	The
		basic component of CDF is a software programming interface that
		is a device independent view of the CDF data model
how to get:	ftp cdf.dir/* from
		The CDF library to provide applications access to remote CDF
		datasets, can be obtained from its author:
		Hillel Steinberg <>.
updated:	?

name:		examples from: "Information Retrieval, Data Structures 
		& Algorithms," William B. Frakes, Ricardo Baeza-Yates, 
		Editors, Prentice Hall, Englewood Cliffs, 
		New Jersey 07632, 1992, ISBN 0-13-463837-9.
what:		example database code
version:	?
descriptions:	example code from the book "Information Retrieval, Data 
		Structures & Algorithms"
how to get:	ftp pub/reuse/ircode.tar.Z from
author:		[resumably William B. Frakes, Ricardo Baeza-Yates]
updated:	?

name:		_lex & yacc_ by Levine, Mason & Brown published by O'Reilly
what:		SQL yacc grammer
version:	?
parts:		grammar
description:	In _lex & yacc_, by Levine, Mason & Brown an SQL parser
		is included as an example grammar
author:		Levine, Mason & Brown
how to get:
updated:	?

name:		MultiCal
what:		database date manipulation library
version:	1.0
interfaces:	?
access methods: ?
multiuser:	no
transactions:	no
distributed:	no
query language: enhanced SQL2 
limits:		?
description:	MultiCal is both a novel approach to supporting multiple
		calendars and internationalization of time constants and a
		query processor prototype that demonstrates this approach.
		MultiCal consists of about 48K source lines of C code; the
		query processor prototype consists of about 63K source lines of
		code.  The documentation consists of fifteen documents,
		comprising some 300 pages of material.
		MultiCal consists of an approach to providing limited
		extensibility for support of multiple calendars and languages
		for temporal support within a database management system
		(DBMS). We have augmented the Structured Query Language (SQL),
		specifically, SQL2, with time values, i.e., temporal
		constants.  Our approach is notable in that we allow many
		different calendars to be used in the database management
		system, and we incorporate only calendar-independent constructs
		into the language. We introduce three new temporal data types.
		New language features are defined for temporal built-in
		functions, special time values, arithmetic expressions
		involving time, temporal predicates, and aggregate functions
		over time. Ten languages are supported.
		To illustrate how an existing DBMS could be augmented to
		support multiple calendars, we provide a prototype DBMS that
		supports the proposed extensions. This prototype consists of
		query analysis and execution components. It eschews traditional
		functionality such as concurrency control and disk access
		methods, as these aspects are not relevant to timestamp
ports:		Sun4
contact:	<> or Rick Snodgrass <rts@CS.Arizona.EDU>
how to get:	ftp tsql/multical/* from
updated:	1993/10/30

name:		persist++
what:		C++ object marshal/demarshal library
version:	0.2
interfaces:	C++
access methods: none
robustness:	?
description:	Persist++ is a set of serialize/materialize/marshal routines
		that make it easy to store C++ objects to files or to send them
		across the network.
author:		Herman Moons <>
how to get:	ftp pub/impulse/persist++_0.2.tar.Z from
updated:	1994/08/16

name:		pstream
what:		C++ byte stream library
description:	pstream is a persistent object stream library for C++.  Lets 
		you read and write C++ class objects to a stream.
status:		still in development
author:		Joshua Rowe <jrow@WPI.EDU>
how to get:	?
updated:	1996/09/08

name:		SQL parser ?
what:		SQL yacc grammer ?
version:	?
description:	?
author:		Bruce Ring <>
how to get:	wait for it to be posted to a comp.sources group
updated:	1994/11/04

name:		SQL-86 in HTML
what:		html version of some of the SQL-86 standard
author:		David Flater <>
updated:	1994/12/30

name:		YACL
version:	?
description:    YACL is a general-purpose C++ class library.  It happens
		to include some disk access methods.
ports:		Windows, Linux, OS/2
author:		M. A. Sridhar <>
how to get:
updated:	1994/05/25

name:		xBase File Format Description
what:		Description of Xbase disk formats
author:		Erik Bachmann <>
updated:	1997/06/02

------------------------- other lists -------------------------------------

how to get:

how to get:

how to get:

how to get:

------------------- free for linux, but no source -------------------------

name:		MDBMS
how to get:

name:		Essentia
how to get:

User Contributions:

Comment about this article, ask questions, or add new information about this topic:

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:

Last Update March 27 2014 @ 02:11 PM