Coral Database Project

Document Contents:

See Also:


The objective of the CORAL project is to develop a robust and efficient deductive database system, and to investigate its use in various application domains. Several of the algorithms underlying the Coral system have been developed by members of the group during the duration of the project (since 1988).


Coral is a deductive system which supports a rich declarative language, and an interface to C++ which allows for a combination of declaritive and imperative programming. The declarative query language supports general Horn clauses augmented with complex terms, set-grouping, aggregation, negation, and relations with tuples that contain (universally quantified) variables. A CORAL declarative program can be organized as a collection of interacting modules. The CORAL implementation supports a wide range of evaluation strategies, and automatically chooses an efficient evaluation strategy for each module in the program. In addition, users are permitted to guide query optimization, if desired, by selecting from among a wide range of control choices at the level of each module.

The CORAL system provides imperative constructs such as update, insert and delete rules. CORAL also has an interface with C++, and users can program in a combination of declarative CORAL and C++ extended with CORAL primitives. A high degree of extensibility is provided by allowing C++ programmers to use the class structure of C++ to enhance the CORAL implemenation. CORAL provides support for both main-memory and disk-resident data. Disk-resident data is supported using the EXODUS storage mananger, which also provides transaction management in a client-server environment.

Release Information:

The current release of Coral is Version 1.5.2, released November 26, 1997. To install Coral on your system, then grab the tar file you want. The nobin version contains only the source code, requiring you to compile Coral. The other versions include pre-made binaries for the indicated machine type.

Click on a file to grab it:

Last Modified:


Kent Wenger /