smldb: a set of database routines written in SML.  This is release 0.1
Copyright 1998 Edoardo Biagioni.  All rights reserved -- see below for details.

This software includes:

- a set of SML signatures for database modules
- two sets of "basic" relational database functors:
  + a simple database that uses lists to store records, and is only
    suitable for very small databases, and
  + a B-Tree based database that uses B-trees to store and retrieve
    records efficiently.
  The simple database can be used with any number of dimensions/columns,
  whereas there is a different B-Tree functor for each number of dimensions
  (currently up to six, though extending these to additional dimensions is
  straightforward).
- functors to convert a basic database to:
  + persistent databases (backed up to a file on disk)
  + "single" databases (simpler programming interface, exactly one database
    per SML structure)
- known deficiencies:
  + the persistent databases currently use programmer-defined encoding.  A
    few (ASCII-based) encodings are predefined.
  + persistence is implemented by writing out the entire database after
    each change, which is inefficient.
  + does not interoperate with any other database code.
  + no database query language (unless you count SML function calls).
  + only one user so far, so probably lots of undiscovered bugs.

To compile the software, start sml and run "CM.make ();".  Simple
examples of usage are given in test.sml.


contact address: esb@hawaii.edu.  I welcome questions, suggestions, and
code submissions.


Legal junk: this software is provided as is, without any guarantee of
its doing anything in particular.  If you paid for it and it breaks,
complain to the person you paid money to.  If you didn't pay for it
and it breaks, the pieces are yours to play with.

Permission is hereby granted to use, copy, distribute, and modify
without restriction all the enclosed material.  It is requested (not
required) that the original author be credited in derivative works.

