Implementation of a deductive database system - Chen, Yin. (2010)
Deductive databases intellectualize relational databases by providing complex inference ability. They are competitive with current commercial relational databases. They overcome some drawbacks which were found in relational databases, such as, the huge storage space taken by relational databases; difficulty in handling disjunctive and negated facts; a burden on the user to combine different operators to answer a certain query, etc. In this project, a deductive database system was designed and implemented. This deductive database system is a unified logic/database system where programs may be expressed declaratively, in a form close to frrst-order logic, and at the same time efficiently access very large data bases. It is implemented based on logic-based compilation, which has higher performance than conventional interpretation. A Prolog-like program is read in and optimized first according to the goals instantiation, before it is translated into Warren Abstract Machine (WAM) instructions by a compiler. The resulting WAM code is executed by an emulator. The inference engine and the relational database are tightly coupled (external records are retrieved from the underlying database and unified with Prolog-like terms as and when required). The tight coupling of a logic-based language and a relational database achieved a promising performance.