There are a variety of advanced database features which require the ability to manipulate “virtual” database states along with the actual stored state; examples of this include rule-based triggers in active databases, supports for hypothetical reasoning, and some concurrent transaction processing system. This paper introduces the database programming language Heraclitus[Rel], which provides a general framework for experimenting with the semantics and implementation of virtual states. The primary novel feature presented is the notation of a delayed update or delta, which is a first-class value representing a set of proposed modifications to the state. Deltas can be created, inspected, and combined without committing to the given modifications. Heraclitus[Rell] provides a rich relational calculus sublanguage that can be used to compute relations and deltas. The usual notion of “safety” for calculus formulas is extended to support both a sophisticated notion of quantifiers and the use of variables and functions defined elsewhere in a program. Safe formulas can be translated into extended relational algebra expressions for evaluation.
[1]
Richard Hull,et al.
Language Constructs for Programming Active Databases
,
1991,
VLDB.
[2]
Joachim W. Schmidt,et al.
Some high level language constructs for data of type relation
,
1977,
TODS.
[3]
David Maier,et al.
The Theory of Relational Databases
,
1983
.
[4]
Richard Hull,et al.
On the Semantics of Rules in Database Programming Languages
,
1990,
East/West Database Workshop.
[5]
Michael Kifer,et al.
On Safety, Domain Independence, and Capturability of Database Queries (Preliminary Report)
,
1988,
JCDKB.
[6]
David W. Shipman,et al.
The functional data model and the data languages DAPLEX
,
1981,
TODS.
[7]
Jennifer Widom,et al.
Deriving Production Rules for Constraint Maintainance
,
1990,
VLDB.
[8]
Lawrence A. Rowe,et al.
Data abstraction, views and updates in RIGEL
,
1979,
SIGMOD '79.
[9]
Shahram Ghandeharizadeh,et al.
Implementation of Delayed Updates in Heraclitus
,
1992,
EDBT.