A base-table is the primitive database layer upon which SLIB relational databases are built. At the minimum, it must support the types integer, symbol, string, and boolean. The base-table may restrict the size of integers, symbols, and strings it supports.
A base table implementation is available as the value of the identifier naming it (eg. alist-table) after requiring the symbol of that name.
Association-list base tables support all Scheme types and are suitable for small databases. In order to be retrieved after being written to a file, the data stored should include only objects which are readable and writeable in the Scheme implementation.
The alist-table base-table implementation is included in the SLIB distribution.
WB is a B-tree database package with SCM interfaces. Being disk-based, WB databases readily store and access hundreds of megabytes of data. WB comes with two base-table embeddings.
wb-table supports scheme expressions for keys and values whose
text representations are less than 255 characters in length.
See wb-table in WB.
rwb-isam is a sophisticated base-table implementation built on WB and SCM which uses binary numerical formats for key and non-key fields. It supports IEEE floating-point and fixed-precision integer keys with the correct numerical collation order.
This rest of this section documents the interface for a base table implementation from which the Relational Database package constructs a Relational system. It will be of interest primarily to those wishing to port or write new base-table implementations.
To support automatic dispatch for
open-database, each base-table
module adds an association to *base-table-implementations* when
loaded. This association is the list of the base-table symbol and the
value returned by
|• The Base:|
|• Base Tables:|
|• Base Field Types:|
|• Composite Keys:|
|• Base Record Operations:|
|• Match Keys:|
|• Aggregate Base Operations:|
|• Base ISAM Operations:|