Real Time and Active Databases
Real Time and Active Databases
, conclude additional
facts) based on rules and facts stored in the (deductive) database. Datalog is the language typically
used to specify facts, rules and queries in deductive databases. Deductive databases have grown
out of the desire to combine logic programming with relational databases to construct systems that
support a powerful formalism and are still fast and able to deal with very large datasets. Deductive
databases are more expressive than relational databases but less expressive than logic
programming systems. In recent years, deductive databases such as Datalog have found new
application in data integration, information extraction, networking, program analysis, security, and
cloud computing.[1]
Deductive databases and logic programming: Deductive databases reuse a large number of
concepts from logic programming; rules and facts specified in the deductive database language
Datalog look very similar to those in Prolog. However important differences between deductive
databases and logic programming:
Order sensitivity and procedurality: In Prolog, program execution depends on the order of rules
in the program and on the order of parts of rules; these properties are used by programmers to
build efficient programs. In database languages (like SQL or Datalog), however, program
execution is independent of the order of rules and facts.
Special predicates: In Prolog, programmers can directly influence the procedural evaluation of
the program with special predicates such as the cut, this has no correspondence in deductive
databases.
Function symbols: Logic Programming languages allow function symbols to build up complex
symbols. This is not allowed in deductive databases.
Tuple-oriented processing: Deductive databases use set-oriented processing while logic
programming languages concentrate on one tuple at a time.
1. Introduction
A deductive database is a finite collection of facts and rules. By applying the rules of a deductive
database to the facts in the database, it is possible to infer additional facts, i.e. facts that are
implicitly true but are not explicitly represented in the database.
This paper is a brief introduction to deductive databases. In the first section, we talk about
traditional databases, i.e. sets of simple facts. After that, we introduce logic programs, i.e. sets of
rules. We then show how to use rules in defining views of a database, in writing constraints on the
database, and in defining updates to the database. We close with a brief discussion of special,
built-in functions and relations.
Abstract:
Deductive databases are coming of age with the emergence of efficient and easy-to-use
systems that support queries, reasoning, and application development on databases
through declarative logic-based languages. The progress is demonstrated by the
completion of prototype systems offering such levels of generality, performance, and
robustness that they support well complex application development. An overview of the
architectures and techniques of these systems is provided. The main motivations for
development of the deductive database systems (DDSs) are: (1) to provide support for
advanced database applications, with a focus on expert systems and knowledge-based
applications; and (2) to provide better support for traditional database applications by
integrating the application development and database queries into one language, thus
solving the impedance mismatch problems. The key implementation problems for DDSs
pertain to finding efficient executions for the given set of rules and queries. For this purpose,
the DDS performs a global analysis of rules. The cornerstone of this analysis is the notion of
bound arguments and free arguments of predicates.
The origins of deductive database in Prolog are presented first before the main deductive database
paradigm, the datalog model, is analyzed.
Deductive databases where born as an outgrowth of the field of logic programming in which
mathematical logic is used to perform sophisticated inferences and draw appropriate conclusions while
handling large amounts of data.