Info Node: (slib.info)Creating and Opening Relational Databases
(slib.info)Creating and Opening Relational Databases
Creating and Opening Relational Databases
-----------------------------------------
- Function: make-relational-system base-table-implementation
Returns a procedure implementing a relational database using the
BASE-TABLE-IMPLEMENTATION.
All of the operations of a base table implementation are accessed
through a procedure defined by `require'ing that implementation.
Similarly, all of the operations of the relational database
implementation are accessed through the procedure returned by
`make-relational-system'. For instance, a new relational database
could be created from the procedure returned by
`make-relational-system' by:
(require 'alist-table)
(define relational-alist-system
(make-relational-system alist-table))
(define create-alist-database
(relational-alist-system 'create-database))
(define my-database
(create-alist-database "mydata.db"))
What follows are the descriptions of the methods available from
relational system returned by a call to `make-relational-system'.
- Function: create-database filename
Returns an open, nearly empty relational database associated with
FILENAME. The only tables defined are the system catalog and
domain table. Calling the `close-database' method on this database
and possibly other operations will cause FILENAME to be written
to. If FILENAME is `#f' a temporary, non-disk based database will
be created if such can be supported by the underlying base table
implelentation. If the database cannot be created as specified
`#f' is returned. For the fields and layout of descriptor tables,
Note:Catalog Representation
- Function: open-database filename mutable?
Returns an open relational database associated with FILENAME. If
MUTABLE? is `#t', this database will have methods capable of
effecting change to the database. If MUTABLE? is `#f', only
methods for inquiring the database will be available. Calling the
`close-database' (and possibly other) method on a MUTABLE?
database will cause FILENAME to be written to. If the database
cannot be opened as specified `#f' is returned.