Author :
Dinn, Andrew ; Williams, M. Howard ; Paton, Norman
Author_Institution :
Dept. of Comput. & Electr. Eng., Heriot-Watt Univ., Edinburgh, UK
Abstract :
ROCK & ROLL is a deductive object oriented database system that supports two languages, one imperative and the other deductive, both derived from the same object oriented data model. As the languages share a common type system, they can be integrated without manifesting impedance mismatches, and thus programmers can conveniently exploit both deductive and imperative features in a single application. The components of ROCK & ROLL are as follows: data model OM-OM supports a range of conventional modelling constructs, such as sets, sequences, aggregations and (both single and multiple) inheritance; deductive language ROLL-ROLL is a conventional first order deductive database language, which differs from Datalog with negation in being strictly typed (through type inference), having a structured clause base that associates rules with classes, and in that the extensional database is that of OM, rather than the relational model; and imperative language ROCK-ROCK is a conventional imperative object oriented programming language, with facilities for creating and manipulating OM objects, iteration, I/O, etc. The use of two languages has allowed us to keep the logic language ROLL simple, as facilities such as updates are not handled within ROLL, but rather in the closely integrated imperative language ROCK. The basic ROCK & ROLL system provides comprehensive modelling and programming facilities, but recent work has extended it with both active rules and spatial data types
Keywords :
active databases; data structures; database languages; deductive databases; object-oriented databases; object-oriented languages; spatial data structures; ROCK & ROLL; ROCK and ROLL; active extensions; active rules; common type system; data model OM; deductive language ROLL; deductive object oriented database system; extensional database; first order deductive database language; imperative features; imperative language ROCK; imperative object oriented programming language; inheritance; logic language ROLL; object oriented data model; programming facilities; spatial data types; spatial extensions; structured clause base; type inference; Algebra; Data models; Database systems; Deductive databases; Impedance; Kernel; Object oriented databases; Object oriented modeling; Power system modeling; Spatial databases;