Advanced Database Systems Compress
Advanced Database Systems Compress
Advanced
Database Systems
Springer-Verlag
Berlin Heidelberg NewYork
London Paris Tokyo
Hong Kong Barcelona
Budapest
Series Editors
Gerhard Goos Juris Hartmanis
Universit~it Karlsruhe Cornell University
Postfach 69 80 Department of Computer Science
Vincenz-Priessnitz-Stral3e 1 4130 Upson Hall
D-76131 Karlsruhe, Germany Ithaca, NY 14853, USA
Volume Editors
Nabil R. Adam
Department of MS/CIS, Rutgers University
Newark, NJ 07102, USA
Bharat K. Bhargava
Department of Computer Science, Purdue University
West Lafayette, IN 47906, USA
This work is subject to copyright. All rights are reserved, whether the whole or part
of the material is concerned, specifically the rights of translation, reprinting, re-use
of illustrations, recitation, broadcasting, reproduction on microfilms or in any other
way, and storage in data banks. Duplication of this publication or parts thereof is
permitted only under the provisions of the German Copyright Law of September 9,
1965, in its current version, and permission for use must always be obtained from
Springer-Verlag. Violations are liable for prosecution under the German Copyright
Law.
9 Springer-Verlag Berlin Heidelberg 1993
Printed in Germany
Typesetting: Camera-ready by author
Printing and binding: Druckhaus Beltz, Hemsbach/Bergstr.
45/3140-543210 - Printed on acid-free paper
Preface
I Object-Oriented Databases 1
10 A D a t a M o d e l for T i m e - S e r i e s A n a l y s i s 191
by A. Segev, R. Chandra
10.1 In~:roduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
10.2 Main Features of The D a t a Model . . . . . . . . . . . . . . . . . 192
10.2.1 Relevant Research . . . . . . . . . . . . . . . . . . . . . . 193
10.3 Vector Based D a t a Model . . . . . . . . . . . . . . . . . . . . . . 194
CONTENTS xi
10.4 C o n c e p t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
10.5 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.6 C a l e n d a r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
10.7 T e m p o r a l Q u e r y L a n g u a g e . . . . . . . . . . . . . . . . . . . . . . 205
10.8 Special O p e r a t o r s for Time-Series D a t a b a s e . . . . . . . . . . . . 206
10.9 H a n d l i n g of Missing Values . . . . . . . . . . . . . . . . . . . . . 208
10.10User E n v i r o n m e n t . . . . . . . . . . . . . . . . . . . . . . . . . . 208
10.11Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Creating Interoperating,
16 A m a l g a m e : A T o o l for 313
Persistent, Heterogeneous Components
b y J.-C. F r a n c h i t t i , R. K i n g
16.1 I n t r o d u c t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
16.1.1 The Persistent and Heterogeneous Applications . . . . . . 313
16.1.2 Goals and Novelty of the A m a l g a m e System . . . . . . . . 316
16.2 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
16.2.1 I n t e r o p e r a b i l i t y Support . . . . . . . . . . . . . . . . . . . 316
16.2.2 Architectural Representation Languages and Megaprogram-
ming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
16.2.3 Extensible Reusable Heterogeneous Frameworks . . . . . 318
16.3 An Overview of A m a l g a m e ..................... 318
16.3.1 A Motivating E x a m p l e . . . . . . . . . . . . . . . . . . . . 318
16.3.2 The Designer's View of the AmMgame Toolkit ...... 319
16.3.3 Practical Use of the A m a l g a m e Toolkit . . . . . . . . . . 320
16.3.4 The Internal Architecture of the A m a l g a m e Toolkit . . . 325
16.4 An A r c a d i a Demonstration Scenario ................ 330
16.4.1 High-level Description of the Arcadia Experiment . . . . . 330
16.4.2 I m p l e m e n t a t i o n . . . . . . . . . . . . . . . . . . . . . . . . 331
16.4.3 Benefits of The A m a l g a m e Approach . . . . . . . . . . . . 332
16.5 Future Directions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
16.5.1 A Joint A r c a d i a and Prototech Demonstration Scenario 333
16.5.2 An I n t e r o p e r a b i l i t y Experiment with Chiton . . . . . . . 333
16.5.3 An International "Library" of Deployed "Wrapped" Per-
sistent Applications . . . . . . . . . . . . . . . . . . . . . 334
16.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
16.7 Acknowledgments . . . . : ...................... 334
x iv CONTENTS
Bibliography 413
Chapter 1
COMPOSE: A System For Composite Specification And
Detection
1.1 Introduction
An "event" is a happening of interest. Events can be simple such as, the stock
price going above a certain price, the beginning of a transaction, the update of
an object, or the temperature going above a specified limit. New events can
also be formed as a combination of other events, for example, three successive
discount rate cuts without an intervening increase, all withdrawals following a
'large deposit, and the temperature going above a specified limit and staying
there for more than some time period. We call such events "composite events".
We have developed a model for specifying composite events [216, 215]. We
were motivated to explore the specification of composite events as part of an
effort to design "trigger" facilities for the Ode object database [7,217]. Triggers
are the key facility that distinguishes active databases [138,524, 40,378,556,395]
from passive databases. A trigger consists of an event-action pair. When an
event is detected, the associated action is executed.
The use of triggers moves code from the application to the database. This
simplifies application writing because the application now does not have to check
for the conditions specified by the triggers. Triggers also eliminate duplicate code
since the same conditions may have to be checked in multiple applications.
A trigger facility in which triggers fire on the occurrence of composite events
is more powerful than one in which triggers fire on the occurrence of simple events
because it allows users to write triggers that could not be easily expressed before.
Composite event specification is useful for many application domains besides
databases:
Composite events are specified as event expressions. Our basic notation for
specifying composite events has the same expressive power as regular expressions.
Thus the occurrence of a composite event is detected by a finite automaton that
implements the event expression. Despite the equivalence of expressive power,
our notation is speciMly suited for specifying composite events. For example,
it allows for the easy specification of composite events whose components can
overlap and allows uninteresting events to be screened out.
We extend our basic notation with "masks", correlation variables, and pa-
rameters, thereby stepping beyond the domain of regular expressions. However,
we can still implement event expressions that use these facilities by using au-
t o m a t a augmented with "mask" events and by using "generic" automata. This
allows us to use finite a u t o m a t a optimization techniques to generate efficient
implementations for recognizing the occurrence of composite events.
We have built a prototype system, COMPOSE, for specifying and detecting
composite events. A real-time stock trade feed is used to experiment with specifying
and detecting stock market related events.
In this chapter, we describe how composite events axe specified, illustrate composite
event specification, give an overview of COMPOSE, and describe the construction of
the finite automata.
1.2.1 Basic O p e r a t o r s
Let E and F denote event expressions and h, hi, h2 denote event histories. Here are
the semantics of expressions formed using the basic operators:
1. ( E n F)[h] = h l n h 2 whereh~ = E[h]andh2 = F[h].
2. (!E)[h] = ( h - E[h]).
3. relative(E, F)[h] are the event occurrences in h at which F is satisfied assuming
that the history started immediately following some event occurrence in h at
which E takes place.
Formally, relative(E, F)[h] is defined as follows. Let Ei[h] be the i *h event
occurrences in E[h]; let hi be obtained from h by deleting all event occurrences
~i=1 F[h~].
before Ei[h]. Then relative(E, F)[h] = II/~[h]
OO
4. relative + (E)[h] = ~Ji=l relativei(E)[ hI where relativel(E) = E and
relative'(E) = relative(relative i-~(E), E).
1.3 Examples
We now show how composite events are specified by means of examples.
prior(I, D)
specifies D events that are preceded by an I event. Expression
!prior(I, D)
specifies all events except the occurrences of D that are preceded by I. Expression
!prior(I, D) &~ D
O I D D D# D# I
I II J I t I t I I I I I I I
The expression
r e l a t i v e ( D , ! p r i o r ( I , D) && D)
(I ]] D) I sequence(D, D, D)
Suppose we are interested in a stock trade in which the price of Apple Computer
(stock symbol AAPL) has risen by 10% or more compared to it's low of the day. Such
a composite event can be written as
1.3.4 Parameters
Some or all of the attribute can be designated as parameters. Our terminology is
that attributes are immediate, referring only to the current primitive event, while
parameters are attributes that have been saved over one or more event occurrences.
While logically there may be little difference between the two, as we shall see in the
next section, there is a world of a difference in terms of implementation effort. We have
chosen to make this difference evident to the user in the interface that we provide. The
implementation difference arises from the fact that non parameter attribute values
need only be accessible with the occurrence of the current event while parameter and
attribute values, in the worst case, must be available from the "beginning of history".
Once parameters are available, one common requirement is equality between pa-
rameter values in two different events in an event expression. Rather than move the
automaton and check for equality as a distinct predicate, it is more efficient to perform
the equality check immediately and the (second) move as a function of the equality
test result.
In the following example, the attribute I is declared as a parameter. The first
deposit of an item after a large withdrawal ca~ be written as:
The use of the common parameter I indicates that the item withdrawn and de-
posited must be the same.
10 CHAPTER 1. COMPOSE: A SYS. FOR COMPOSITE SPECIFICATION
hl = e b a c
h2=ebaedbc
h3=ebacdbcdbc
We want to determine ff E can be satisfied (will trigger) at the last event, a c event,
in the above histories. W h e n determining the points at which E can be satisfied in the
above histories, the correlation variable x will be associated with a specific b event in
each history. In case of hi, x must be associated with the only b present; E will not
trigger at c because ]relative(x, prior(a, e)) is not satisfied. In case of h2, there are
two b events. T h e first has the same problem as in hi. If we associate x with the second
b in h2, then relative(x, prior(d, c)) is not satisfied. In case of h3, there are three
choices of b with which to associate x. If we choose the first, !relative(x,prior(a, c)) is
not satisfied. If we choose the third, relative(x, prior(d, c)) is not satisfied. However,
if we choose to associate x with the second b, then E will trigger at the last c.
To appreciate the role played by x, consider the event expression E ' , given below,
which is the same as E except t h a t the last occurrence of x has been replaced by b.
event a, the event to be recognized, the transition is to the accepting state. On all
other events, the transition is to the non-accepting (non-start) state.
Composition rules are specified for each of the basic event expression operators.
These rules are used to compose the automaton for an expression from its sub-expressions.
By and large, the additional operators described are rewritten, by compiler transforma-
tion, into basic operators. However, specific direct composition rules were developed
for a few key additional operators, such as prefix.
1.4.1 D e s i g n Decisions
1. Automata are kept deterministic at all stages of the construction. Non deter-
ministic automata require that we keep track of the various states computation
threads are in, and so are inefficient at run time. Moreover, negation is a problem
for non deterministic automata.
Rea~hability analysis is used to eliminate unreachable states in the automaton.
3. The number of states in the automaton is minimized by merging equivalent
states. Reachability analysis and state minimization is performed after each stage
of the construction so that we always have a minimal deterministic automaton
for the sub-expression at hand.
4. Most event symbols are ignored in most states: the number of transitions to
be stored explicitly is minimized by explicitly recording only those that cause a
transition out of a state, and letting a "self-loop transition" be the default.
5. We may have a large number of events in our system. Individual automata may
be interested in small subsets of these events. Letting each automaton "work"
on the whole event set is wasteful. So, we have the concept of loealevents specific
to an automaton. With each automaton we associate an array lnames with as
many entries as there are global system wide events. Entry lnames[i] contains
the local name of the global event i. If the automaton is not "interested" in global
event i then lname[i] contains otherwise, where otherwise is a local alphabet
symbol denoting "all other events".
1.4.2 Masks
A mask predicate is treated like any other operator in terms of automaton construction.
Any mask M associated with an event expression E is implemented by modifying the
automaton A that implements event expression E. For each accepting state, F, of the
automaton A:
1. Two new states MTrueF and MFalse• are created.
2. Any transitions from F to other states are copied to MTrueF and MFalset;.
These transitions are deleted from F.
3. F is changed from an accepting state to a non-accepting state and MTrueF is
made an accepting state.
4. Transitions from F to MTrueF on event ETrueM and from F to MFalseF on
event EFalseM are added.
Conceptually, after each event symbol is input, every mask predicate is evaluated,
and a pseudo-event ETruei or EFalsel is generated for each mask predicate. Except
in a state where this mask is to be. ewluated to determine further transition, these
12 CHAPTER 1. COMPOSE: A SYS. FOR COMPOSITE SPECIFICATION
events are ignored. Moreover, the order in which these mask predicates are evaluated
is immaterial.
Practically speaking, of course, every mask predicate cannot be evaluated after
every event. Instead, we mark states that have outgoing transitions on such pseudo-
events. When the automaton reaches such a state, it evaluates the corresponding
predicate and makes the necessary transition. The effect obtained is the same as in
the conceptual scheme of the previous paragraph.
F i g u r e 1.2: T h e C O M P O S E S y s t e m
The circles represent processes. The event manager process accepts composite
event specifications from the user, and the events that occur are fed to it by the event
stream processes (one for each event stream). The trigger firing process and the event
manager processes share a common d a t a structure which contains the triggers. The
event manager constructs and stores the finite automata implementing the triggers and
the global event mappings in the shared d a t a structure. The trigger firing process takes
the events it receives from the event stream processes and looks for active triggers in
the shared d a t a structure and then "feeds" them the events after translating events
into numbers using the global mapping. To be precise, the global event numbers are
m a p p e d to local event numbers using the local mapping table associated with each
automaton.
Since the event manager and trigger firing processes can be simultaneously accessing
the shared data, accesses to the shared d a t a are serialized by implemented the shared
d a t a structure as a "capsule" [214].
The trigger firing process reports triggers that fire to the user process which is the
C O M P O S E system's interface to the user.
1.6 E x a m p l e s of A u t o m a t a G e n e r a t e d by Com-
pose
The composite event expression for the discount rate cut example shown earher was
( I I[ D) [ sequence(D, D, D)
We now show the finite automaton for the above event expression. First, here is
the automaton for the event expression I [ I D, which is the first operand of the pipe
operator I (Figure 3):
The automaton for the second operand of the pipe operator, i.e., sequence(D, D,
D), is (Figure 4)
14 C H A P T E R 1. COMPOSE: A SYS. FOR COMPOSITE SPECIFICATION
The above two automata are combined to form the automaton for the complete
expression (I 11 D) I sequence(D, D, D). The resulting automaton is (Figure 5)
1.7 Conclusion
Our base event language has the same expressive power as regular expressions, or
propositional temporal logic with quantifiers (QPLTL or SOLLO) (see [180]). However,
our event specification language is more suitable to specifying trigger events because of
its algebraic nature which enables free composition of events into more complex ones.
We implement our event expressions by using finite automata. These automata
take as input, on a continuous basis, simple events. Their current state represents a
partial (complete) detection of the associated composite event.
Masks and parameters extend our base language to a fragment of temporal logic
whose expressive power is beyond that of regular expressions. We implement a mask by
adding two additional states to the corresponding automaton without a mask. Tran-
sitions to these states take place based on whether the mask predicate is true or false.
Evaluation of the mask takes us beyond finite automata. We implement parameters
using generic automata. These automata are used to instantiate ordinary automata for
each combination of new parameter values. We are currently investigating techniques
for optimizing such finite automata [421].
In a distributed database, there may not be a well-defined unique system history. In
[287] we discuss how to coordinate the different ~'views" of the history seen at different
sites.
As mentioned earlier, the motivation behind our work was the design of "trigger"
facilities for the Ode object database [7, 217].
We plan to integrate the COMPOSE event specification facilities into the Ode
trigger facility.
1.7. CONCLUSION 15
2.1 Introduction
Object-oriented database management systems (OODBMSs) today represent one of
the most active areas in both academic and industrial worlds. OODBMSs combine
object-oriented programming technology with database technology, thus combining
the strengths of both. The need for these systems has been driven by several advanced
applications, such as C A D / C A M , cartography, multimedia, for which relational sys-
tems have been proved inadequate. A serious problem with these systems is that they
do not provide adequate access control mechanisms to prevent unauthorized disclosure
of information. They do not provide for the mandatory security [146] and, in most
cases, do not even provide adequate discretionary authorization facilities (a notable
exception is presented by the O R I O N / I T A S C A system [460]). We can expect, how-
ever, that the broadening of application scope of these systems will require them to
enforce both mandatory and discretionary security.
Mandatory security policies govern access to information by individuals on the basis
of the classifications of subjects and objects in the system. Objects are passive entities
storing information, such as d a t a files, records, field in records, etc. Subjects are active
entities that access the objects. Generally, a subject is considered to be an active
process operating on behalf of a user. Access classes are associated with every subject
and object in the system, and the access of a subject to an object is granted iff some
relationship, depending on the access mode, is satisfied between the classifications of
the subject and the object.
An access class consists of two components: a security level and a set of categories.
The security level is an element of a hierarchically ordered set. The hierarchical set
generally considered consists of Top Secret (TS), Secret (S), Confidential (C) and
Unclassified (U), where TS > S > C > U. The set of categories is an unordered set
(e.g., NATO, Nuclear, Army, etc.). All access classes are partially ordered as follows:
An access class cl dominates ( ~ ) an access class c2 iff the security level of ct is greater
t h a n or equal to t h a t of c2 and the categories of cl include those of c2. Two classes cl
and c2 are said to be incomparable if neither cl _ c2 nor c2 _ cl holds.
An access class is assigned to every object and every subject in the system. The
security level of the access class associated with an object reflects the sensitivity of the
information contained in the object, i.e, the potential damage which could result from
unauthorized disclosure of the information. The security level of the access class associ-
ated with a user, also called clearance, reflects the user's trustworthiness not to disclose
Sensitive information to users, not cleared to see it. Categories are used to provide finer
grained security classifications of subjects and objects than classifications provided by
security levels alone, and are the basis for enforcing need-to-know restrictions.
Access control in m a n d a t o r y protection system is based on two principles that were
formulated by Bell and L a P a d u l a [43] and t h a t are followed by all models enforcing a
m a n d a t o r y security policy. T h e y are:
Simple Security Property: A subject is allowed a read access to an object only if the
clearance of the subject dominates the access class of the object.
*-Property: A subject is allowed a write access to an object only if clearance of the
subject is d o m i n a t e d by the access of the object.
together with the set of methods represent the object structure and behavior,
respectively.
9 The attribute values represent the object's status. This status is accessed or
modified by sending messages to the object to invoke the corresponding methods.
The set of messages that can be sent to an object is the object interface.
9 Objects sharing the same structure and behavior are grouped into classes. A class
represents a template for a set of similar objects. Each object is an instance of
some class.
9 A class can be defined as a specialization of one or more classes. A class defined
as specialization is called a subclass and inherits attributes and methods from
its superclass(es).
There are many variations with respect to the basic concepts, especially when
comparing OODBMSs and object-oriented programming languages (OOPLs). The
concepts that we have chosen to include are used mainly as a basis for our discussion;
we do not claim them to be a definition of the object-oriented paradigm. However,
despite all differences, it has been widely recognized that this paradigm offers several
advantages. First of all, the separation between an object's status and interfaces allows
clients to use the services provided by an object without knowing how the services are
implemented (information hiding). Therefore, an objecffs implementation may change
without impacting other objects or applications using the services provided by the
object. The inheritance mechanism favors re-usability of both object interfaces and
implementations. Moreover, in most models, a subclass may override the definition of
inherited methods and attributes. Therefore, inheritance lets a class specialize another
class by additions and substitutions.
In the database field, the object-oriented paradigm brings other important advan-
tages. First, it allows complex objects to be directly represented by the model, without
having to flatten them into tuples, as in the case of relational systems. Second, a tra-
ditional DBMS only centralizes data; high-level semantic operations on data are still
dispersed among application programs. By contrast, a portion of the high-level seman-
tic operations in an object-oriented database is also centralized. As a consequence, the
application programming in object-oriented systems is simplified, since it often consists
of invoking and assembling predefined operations - the methods.
The information hiding capability offers, in addition to the previously mentioned
advantages, a great potential for data security. Surrounding an object by methods
makes it possible to interpose an additional layer between the object and its users.
Therefore, arbitrary complex content-based access rules can also be supported. w Many
aspects and issues in exploiting the object-oriented approach for security will be dis-
cussed in the following sections.
In addition to the basic concepts listed above, OODBMSs often provide additional
semantic concepts, such as composite objects and versions, that we will briefly discuss
in the following. The reason for including those additional concepts is to illustrate
their impact on the definition of a discretionary authorization model.
Composite objects
For composite objects we will use the same model as the one given in [320], since
this model is quite general. The model distinguishes between two types of references
among objects: general, and composite. The latter is used to model the fact that a
referenced object is actually a part of (or a component of) a given object. An object
and all its components constitute a composite object. Composite references axe further
refined into shared/exclusive and dependent/independent. A shared composite refer-
ence allows the referenced object to be shared among several composite objects, while
an exclusive composite reference constrains an object to be component of at most one
composite object at a time. A dependent (independent) composite reference models
the fact that a component object is dependent (independent) on the existence of the
composite object(s) of which it is a part. Since these two dimensions can be combined,
four different types of composite references are possible.
Versloned objects
Several versioning models have been proposed in the literature [310]. Here, we
present some basic aspects of versioning mechanisms that should be sufficient for dis-
cussing the authorization model. In general, a versioned object can be seen as a hier-
archy of objects, called version hierarchy. Each object in a version hierarchy (except
for the root object) is derived from another object in the hierarchy by changing the
values of one or more attributes of the latter object. Objects in a version hierarchy
are first-class objects. Therefore, they have their own object-identifier (OIDs). Infor-
mation about the version hierarchy is often stored as part of the root object, called
generic object. Two types of object references are supported in most version models
to denote objects within a version hierarchy. The first, called dynamic reference, is a
reference to the generic version of a version hierarchy. It is used by users who do not
require any specific version. The system selects a version (default version) to return to
users. The default version is in most cases the most recent stable version. Commands
are usually available that allow users to change the default version. The second type
of reference, called static, is a reference to a specific version within the version hier-
archy. Another important aspect cor,cerns stability of versions in version hierarchies.
In most cases, versioned objects are shared among several users. Mechanisms should
be provided so that users receive consistent and stable versions. Most version models
distinguish between transient and stable versions. A transient version can be modified
or deleted. However, no versions can be derived from a transient version. A transient
version must first be promoted to a stable version before new versions can be derived
from it. By contrast, a stable version cannot be modified. However, it can be used to
generate new versions.
82 is important to note that the message filter model is a conceptual model telling us
what needs to be done, rather than how it is to be implemented. Reference [487] contains an
implementation in which primitive messages do not require any messages.
2.3. MANDATORY ACCESS CONTROL 23
if oi = o2 ^ hi E {READ, W R I T E , CREATE} t h e n c a s e
% i.e., gl" is a primitive message
(5) #l = ( R E A D , ( a j ) , r ) : % allow unconditionally
r *-- value o f a j ; r e t u r n r t o ti;
(6) gi = ( W R I T E , ( a j , v j ) , r ) : % allow if status of tl is unrestricted
if rle~et(tl) = L(ol)
t h e n [aj *-- vj; r 4- SUCCESS]
else r *-- FAILURE;
r e t u r n r t o tl;
(7) gl = ( C R E A T E , ( v l . . . . . v h , $ j ) , r ) : % allow if status of tl is unrestricted relative to Sj
if rlevel(tl ) < Sj
t h e n [CREATE i w i t h values v l , . . . , v~ and L(i) ~-- Sj; r *-- i]
else r *-- FAILURE;
r e t u r n r t o tl;
e n d case;
rlevel(t~) > L ( o , ) . For the basis case we assume that the spontaneous method
invocation in the root user object has its rlevel set to the level of the user object.
The induction step follows by inspection of cases (1), (3) and (4) of Figure 1. The
use of least upper bound is explicit in case (3). In cases (1) and (4), because of the
induction hypothesis, and the relative levels of ol and o2, the assignment of rlevel can
be equivalently written as in case (3).
We say that a method invocation t~ has restricted status if rlevel(t~) > L(oi).
In such cases ti is not allowed to write to o~ (case (6) of Figure 1), or to create an
object with security level below rlevel(t~) (case (7) of Figure 1). A key element of the
message filter algorithm is that the rest.ricted status is propagated along with further
messages sent out by a method invocation to other objects (exactly so far as is needed
for security purposes). This is critical in preventing indirect information flows.
To understand how the message filter algorithm propagates the restricted status
on method invocations, it is useful to visualize the generation of a tree of method invo-
cations. The root to is a "spontaneous" method invocation by a user. The restricted
method invocations are shown within shaded regions. Suppose tk is a method for ob-
ject ok, and tn a method for object o~ which resulted due to a message sent from tk
to o,~. The method t~ has a restricted status because L ( o n ) < L(ok). The children
and descendants of tn will continue to have a restricted status until t~ is reached. The
method ts is no longer restricted because L(o~) > L(Ok), and a write by t~ to the
state of o, no longer constitutes a write-down. This is accounted for in the assignment
to rlevel(t2) in case (3) of Figure 1.
The variable rlevel clearly plays a critical role in determining whether or not the
child of a restricted method should itself be restricted. A method invocation potentially
obtains information from security levels at or below its own rlevel. It follows that a
method invocation should only be allowed to record information labeled at levels which
dominate its own rlevel. For example, consider a message sent from a Secret object to
a Confidential one (where Secret > Confidential). The rlevel derived for the method
invocation at the receiver object will be Secret.
We now discuss the security mediation of primitive messages. Read operations
(case (5)) never fail due to security reasons because read-up operations cannot occur.
This is because read operations are confined to an object's methods, and their results
can only be exported by messages or replies which are filtered by the message filter.
Write operations (case (6)) will succeed only if the status of the method invoking the
operations is unrestricted. Finally, create operations (case (7)) will succeed only if the
rlevel of the method invoking the operation is dominated by the level of the created
object. If a write or create operation fails, a failure message is sent to the sender. This
failure message does not violate security since information flows upwards in level.
There has been relatively little additional work on mandatory security related is-
sues in the object-oriented databases, although some work does exist. Meadows and
Landwehr [397] are the first to model mandatory access controls using object-oriented
approach, however, their effort is limited to considering the Military Message System.
Spooner in [539] takes a preliminary look at the mandatory access control and raises
several important concerns. In [313, 312, 582, 583], objects can be multilevel. This
means, for example, that an object~s attributes can belong to different security levels,
which in turn means that the security system must monitor all methods within an
object. We consider this to be contrary to the spirit of the object-oriented paradigm.
Finally, Millen and Lunt in [397] mention some problems associated with having mul-
tilevel objects. In their model, only single-level objects are permitted; however, the
notion of subjects is still retained, and subjects are assigned security levels.
2.4. DISCRETIONARY ACCESS CONTROL 25
Subjects
The model considers, as subjects, groups of users (roles) into which users are or-
ganized on the basis of the activities they execute in the olganization. A user may
belong to more than one role. Roles are related by meaaas of an implication relation-
ship. A role R1 is in implication relationship with another role R2 if and only if the
authorizations associated with role R1 subsume the authorizations associated with role
R2. In particular, this corresponds to saying that all users belonging to role R1 also
belong to role R2. For example, an implication rink between the role "accountant"
and the role "employee" indicates that accountants are also employees and therefore
all authorization specified for the role "employee" are considered valid also for the
rote "accountant." According to the implication relationship, the set of roles forms a
lattice, called a role lattice. An example of a role lattice is shown in Figure 2.2.
An arc directed from role R1 to role R2 indicates that role Ra is in implication
relationship with role R2. T h e root of the lattice (topmost role) corresponds to a role
which has the authorizations of any other role in the system. The bottom most role
corresponds to a role which has a set of base authorizations executable by any role. On
the basis of the implication relationship, and therefore of the role lattice, a partially
ordered relationship (>) is defined on all subjects as follows:
Given two subjects s~ and s j, s~ > sj if an impfication rink exists directed from si
to sj in the role lattice; si > sj if s~ = sj or si :> s 3 or there exist subjects sl, s ~ , . . , sn
such that si > sl > 82 > ... > sn > sj.
For the role lattice shown in Figure 2.2, we have Super_user > Chief_accountant >
Accountant > Employee.
Objects
The ORION authorization model considers the following objects as objects to be
protected: databases, classes in the database, instances of classes and their components
(attributes, values, and methods). The model also considers sets of objects of the same
type that have a common root (e.g., the set of instances of a class or the set of values of
an attribute) as objects to be protected. In this way authorizations can be specified on
the set of objects contained in a given object using the same access modes specified for
the object itself, without the need of introducing further access modes. For example,
26 CHAPTER 2. ACCESS CONTROLS IN O0 DATABASE SYSTEMS
Superalser
Chief.accountant Manager
Employee
F i g u r e 2.2: A n e x a m p l e o f a role l a t t i c e
it is not necessary to use two different access modes to refer to the read privilege on
a class definition and the renal privilege on the instances of the class. T h e meaning of
the access mode, and therefore of the authorization, will depend on the type of object
to which the authorization is referred.
Like the subjects, objects are also related by means of an implication relationship.
An implication link from object ol to object 02 indicates that the authorizations spec-
ified on ol can also be used on o2. On the basis of the implication relationship two
structures are defined: an authorization object schema (AOS), defining the implication
links between object types, and an authorization object lattice (A OL), defining the re-
lationships between the instances of the authorization objects. An AOL is therefore an
instance of an AOS for a given system. Every authorization object in the AOL is an
instance of only one object type indicated in the AOS. Examples of an authorization
object schema II and an authorization object lattice are shown in Figures 2.3 and 2.4,
respectively.
On the basis of the AOL, a partially ordered relationship (>) exists among all
objects:
Given two objects oi and oj, oi > oj if an impfication link exists directed from oi
to oj in the authorization object lattich; oi > oi if oi = oi or oi > oj or there exist
objects o l , o 2 , . . . o n such t h a t oi > ol > o2 > ... > on > oj.
Access modes
T h e m o d e l considers the following access modes:
9 Write ( W ) to write to an object.
9 Write_Any ( W A ) it is analogous to the Write access mode. It allows writes to an
II The nodes shown in italics correspond to authorization objects representing a set of objects
of the next lower level.
2.4. D I S C R E T I O N A R Y A C C E S S C O N T R O L 27
System
l
Database
Class
1
Set@instances
Instance
Seto]-Attribute- Values
1
Attribute-Value
F i g u r e 2,3: A n e x a m p l e of an a u t h o r i z a t i o n o b j e c t s c h e m a
System
~ese~ch] ~t~s~[~D] ......
J
J
setof-insta~
instance[l] instance[2] instance[3]
1
attribute-value[authors] attribute-value[object] ......
A . u p --- { W A , R D } . For example, the authorization for the RD mode on the instances
of a class, which permits reading of their definition, implies the authorization
for the RD mode on the class itself. Analogously, the authorization for the RD
mode on a class implies the authorization for the RD mode on the database to
which the class belongs.
2.4. DISCRETIONARY ACCESS CONTROL 29
W WA R G RD
System t t t t t
Database t t t t t
System t t t t t
Class t t t f t
Setof-Instances t t t t t
Instance t' t t f t
S e t o ] - A t t r - Values t t t f t
Attribute-Value t t t f t
F i g u r e 2.5: A n e x a m p l e of an a u t h o r i z a t i o n a s s o c i a t i o n m a t r i x
RD
F i g u r e 2.6: A n e x a m p l e of an a u t h o r i z a t i o n t y p e l a t t i c e
A . d o w n = { W, R}. For example, the authorization for the R mode on a class, which
allows reading of the class information, implies the authorization for the R mode,
meaning reading, on the instances of the class.
A . n i l = { G}. The authorization to create objects cannot be propagated among objects
related in the AOL.
The ORION authorization model allows the derivation of new authorizations from those
specified by the users. The derivation of new authorizations is based on the implication
relationships existing among subjects (e.g., a manager can access the information his
employees can access), among objects (e.g., the authorization to read a class implies
the authorization to read all instances of the class), and aznong access modes (e.g.,
the authorization to write an object implies the authorization to read the object), as
expressed in the respective lattices.
30 C H A P T E R 2. ACCESS CONTROLS IN O 0 DATABASE S Y S T E M S
The implication rules for the derivation of strong positive authorizations can be
summarized as follows:
i Authorizations with access mode belonging to A.down are propagated]or subjects
at higher levels, and ]or objects and access modes at lower levels as described
in the corresponding lattices (Rule 1). Since every subject, object, and access
mode is > and <_ itself, this rule allows the derivation of, from an authorization,
authorizations involving the same or different subject, object, and access mode.
9 Authorizations with access mode belonging to A.up are propagated for subjects
and objects at lower levels, and for access modes at higher levels as described in
the corresponding lattices (Rule 2). Again, since any subject, object, and access
mode is > and < itself, this rule allows us to derive, from an authorization,
authorizations involving the same or different subject, object, and access mode.
9 Authorizations with access mode belonging to A.ail, therefore not propagatable
in the authorization object lattice, are propagated ]or subjects at higher level
and ]or access modes at lower level as described in the corresponding lattices
(Rule 3). Therefore, starting from an authorization, new authorizations on the
same object, with the same or different user and access mode can be derived.
From these implication rules, according to the property that given two predicates
p and q: p ~ q r -~q --* -~p, analogous implication rules for negative authorizations
are defined.
32 CHAPTER 2. ACCESS CONTROLS IN O0 DATABASE SYSTEMS
The implication rules for weak authorizations are the same as those for strong au-
thorizations. The only difference is that, since weak authorizations can be overwritten,
the derivation of authorizations from an explicit weak authorization stops where an-
other more specific explicit authorization starts.
Access control
Derivation of authorization is used in the access control as follows. Given a re-
quest of a subject to exercise an access mode on an object the strong authorizations
are examined. If there exist a strong authorization, either explicit or implicit, which
authorizes, or denies, the access, then the access is authorized, or denied, respectively.
If there does not exist any strong authorization for the access, the weak authorizations
are examined, and the access is either granted or denied based of the outcome.
To illustrate how the implication of authorizations work, consider the role lattice
shown in Figure 2.2, the AOS shown in Figure 2.3, and the ATL shown in Figure 2.6,
and suppose that the strong authorization base contains the authorization (Permanent,
database[Research], W). Suppose now that the authorization (Manager, instance[I]
of class[Report], R) needs to be checked. Along the subject domain, we have that
Manager > Permanent. Along the objects domain we have that database[Research]
> class[Report] > instance[I]. Finally, along the authorization type domain we have
W > R, with W E A.down. Therefore, by applying Rule 1 we have that (Permanent,
database[Research], W) --+ (Manager, instance[l] of class[Report], R). Therefore, the
authorization is satisfied.
Inheritance hierarchies
When a class is defined as subclass of another class, there are two approaches which
can be taken concerning authorization on instances of the subclass.
The first approach is that the creator of a class should have no implicit authorization
on the instance of the subclasses derived from his class by some other user. For example,
in reference to the AOL shown in Figure 2.4, if class Technical_Report is defined as
a specialization of class Report, the creator of class Report should not be able to
read or update the instances of class Technical_Report, unless explicitly authorized
for that from the creator of class Technical_Report (or other authorized user). This
approach allows users to reuse existing classes without compromising the protection of
the subclasses generated.
A second approach is that the creator of a class should have implicit authoriza-
tions on instances of a subclass. For instance, in the above example, the creator of
class Report will be implicitly authorized to update and read instances of class Tech-
nical_Report.
W i t h respect to query processing, the first approach implies that an access whose
scope is a class and its subclasses will be evaluated only against those classes for which
the user issuing the query has the read authorization, whereas in the second approach,
it would be evaluated against the class and all its subclasses.
The ORION authorization model adopts the first approach as default, and supports
the second as a user option. This choice is motivated by the reason that under the
2.4. DISCRETIONARY ACCESS CONTROL 33
second approach, a user wishing to derive a class from another class would not have
any privacy on the instances of the subclass (which are readable by the creator of the
superclass). Therefore, users could be discouraged from reusing existing classes not
taking advantage of the characteristic of inheritance.
When multiple inheritance is allowed, implicit authorizations along the class hier-
archy may give rise to conflicts. Conflicts are handled by rejecting insertion of new
authorizations when it conflicts with some other authorization already present in the
system.
To allow authorizations for generating subclasses, the access mode subclass-generate
(SG) is added to the set of access modes. If a user is authorized for the SG access mode
on some class, the user can define subclasses on it. Access mode SG belongs to the set
A.nil, i.e., it is not propagated in the AOL. Moreover, the following relationships hold:
W > SG > RD. Given these relationships, authorization along the specialization hier-
archy can be derived according to the rules given in the previous section. For example,
if a user has the write authorization on a class, the user is implicitly authorized to
generate subclasses from the class; if a user has the SG authorization on a class, then
the user has implicitly the RD authorization on the class. Indeed, a user, in order to
create a subclass from a class C, must be able to read the definition of C. Therefore,
the authorization to generate a class from a given class C implies the authorization to
read the definition of C.
Composite objects
Composite objects are taken into account in the model by considering a composite
as an authorization unit. This "allow a single authorization granted on the root of a
composite object to be propagated to all components without any additionM explicit
authorization. This can simply be enforced by representing the composite relationship
among objects in the authorization object lattice. The defined implication rules can
therefore be used to derive authorizations across composite objects. For example, if
a user can read a composite object, then the user is automatically authorized to read
the objects which compose it. It should be noticed that the implicit authorization only
holds for the objects which belong to the composite object. For example, suppose a
class C is defined on class C1 and C2. Access authorization to C's instances implies
the authorizations on the instances of C1 and C2 which compose some object of C. No
authorizations for instances of C1 and C2 which do not compose any object of C are
derived.
In this context, negative authorization may give rise to conflicts in the autho-
rization of implicit authorizations. Therefore, care must be taken that authorization
conflicts will not arise. For example, the positive authorization to read a composite
and the negative authorization to read one of its component cannot be present at the
same time, unless the authorization on the component is a weak authorization and can
therefore be overwritten. As in the case of inheritance hierarchy conflicts are avoided
by accepting insertion of a new authorization only in case it does not conflict with
authorizations already specified.
Versions
Authorizations can also be specified on a versioned object and on individual versions
of the object. To represent version hierarchy and enforce derivation of authorization
along the hierarchy~ the model extends the authorization objects to include generic
instances and versions. An implication llnk is therefore defined between the generic
instance of an object and the set of versions of the objects. The implication rules can
34 CHAPTER 2. ACCESS CONTROLS IN O0 DATABASE SYSTEMS
2.4.2 Content-dependent A u t h o r i z a t i o n s
The ORION authorization model has been extended in [53]. In [53] different access
modes have been introduced in reference to different object types, and some implication
rules for the derivation of implicit authorizations have been revised.
An important extension introduced in [53] is the consideration of content-dependent
authorizations, i.e., authorization depending on some properties of the objects to be
accessed. Indeed, in [460] a user is either authorized or denied for an access on an object.
Instead, in [53] it is possible to specify that a user is allowed (denied) for an access on
an object if some conditions on the object are satisfied. Therefore, authorizations are
extended to the consideration of conditions which must be verified for the authorization
to hold. Conditions can be put on any of the objects' attributes. In particular, they
may involve class-attributes, e.g., attributes that characterize the classes themselves
and are not inherited by instances, or instance attributes.
For example, consider the AOL shown in Figure 2.4 and suppose that attribute
status is added to the attributes of instances of class Report. An authorization could
be specified by stating that Employee can read only instances of class Report which
have status "released".
The implication rules defined in [460] are applied also to content-dependent autho-
rizations, Authorizations derived from content-dependent authorizations inherit also
the conditions upon which the access has to be controlled. For example, it is possi-
ble to specify content-dependent authorizations on a class to be evaluated against the
instances of the class and to specify content dependent authorizations on a versioned
object to be evaluated against all versions of the object.
In the case of composite objects, the situation is a little different. Indeed, composite
objects can have components of different classes and their types may be different.
Therefore, conditions may not be evaluable on all the components. In this case the
conditions are considered only in reference to the component against which they can
be applied.
A main issue when dealing with content-dependent authorizations is how to effi-
ciently evaluate conditions associated with authorizations. Since conditions have to
be evaluated over object's attributes, which can change over time, conditions have
necessarily to be evaluated at run-time, therefore necessarily increasing the response
time of the system. In particular, enforcing satisfaction of the conditions expressed
in the authorizations by filtering the data prior to the user access, would require a
double access to the objects (one to evaluate the conditions and the other to satisfy
the user query). The solution considered in relational database system is to simply
add conditions expressed in the authorization to the user query. This approach, known
as query modification mechanism has the advantage of ensuring the satisfaction of the
protection requirements and not overloading the access control.
2.4. DISCRETIONARY ACCESS CONTROL 35
method.
T h e m o d e l is b a s e d on a u t h o r i z a t i o n s for users to execute m e t h o d s on objects.
A u t h o r i z a t i o n s specify, for each user, t h e set of m e t h o d s t h e user can invoke on which
o b j e c t s . Therefore, a u t h o r i z a t i o n s have t h e form < o, u, m >, where o is an object, u
is a user, m is a m e t h o d . Such a t u p l e specifies t h a t user u is a u t h o r i z e d to execute
m e t h o d m on o b j e c t o. A u t h o r i z a t i o n s can be specified only on public m e t h o d s , i.e.,
on m e t h o d s directly invokable by end-users. In order for a user to execute a m e t h o d ,
t h e m e t h o d m u s t b e public for t h e end-users a n d t h e user m u s t have t h e a u t h o r i z a t i o n
to e x e c u t e t h e m e t h o d . If b o t h these conditions are satisfied, t h e user c a n execute t h e
m e t h o d . However, t h e fact t h a t t h e user is a u t h o r i z e d to r u n a m e t h o d does n o t imply
t h a t t h e user will b e able to always execute all actions t h a t are p a r t of t h e m e t h o d .
Indeed, o t h e r m e t h o d s c a n be invoked d u r i n g execution of t h e m e t h o d called by t h e
user, and, therefore, several access controls m a y b e p e r f o r m e d d u r i n g t h e execution.
In p a r t i c u l a r , if d u r i n g t h e e x e c u t i o n of a m e t h o d m a n o t h e r m e t h o d m j is invoked,
t h e i n v o c a t i o n is allowed if e i t h e r m ~ is public for end-users a n d t h e user h a s t h e
a u t h o r i z a t i o n for it or m ~ is p r i v a t e for end-users a n d m belongs to t h e i n v o c a t i o n
scope of m ~.
T h e m o d e l allows users to g r a n t o t h e r users a u t h o r i z a t i o n s to execute m e t h o d s .
A user c a n g r a n t such a u t h o r i z a t i o n s on an o b j e c t if t h e user is t h e c r e a t o r or one of
t h e owners of t h e object. E a c h o b j e c t is wssociated w i t h a creator, i.e., t h e user Who
c r e a t e d t h e o b j e c t , a n d some owners. T h e c r e a t o r of a n o b j e c t is always u n i q u e b u t
c a n c h a n g e d u r i n g t h e life-time of t h e object. In fact, it is allowed for t h e c r e a t o r of a n
o b j e c t to give t h e privilege of b e i n g c r e a t o r to some o t h e r user. Since t h e c r e a t o r m u s t
b e unique, so doing t h e first user looses t h e c r e a t o r privilege on t h e object, which is
p a s s e d t o t h e o t h e r user. T h e c r e a t o r c a n also a d d a n d delete owners for t h e object.
A n y o w n e r of a n o b j e c t can g r a n t a n d revoke a u t h o r i z a t i o n s to execute m e t h o d s on
t h e o b j e c t t o o t h e r users. A user can revoke only a u t h o r i z a t i o n s t h a t he g r a n t e d .
T h e m o d e l i n t r o d u c e s also t h e n o t i o n of protection mode for m e t h o d execution
a u t h o r i z a t i o n s . If user u g r a n t s user u' t h e a u t h o r i z a t i o n to execute m e t h o d m in
p r o t e c t i o n m o d e , t h e n w h e n u ~ executes m, all invocations of m e t h o d s public for end-
users m a d e by m are checked for a u t h o r i z a t i o n s n o t against u', who called t h e m e t h o d ,
b u t a g a i n s t u, i.e., agMnst t h e user w h o g r a n t e d u ~ t h e a u t h o r i z a t i o n on t h e m e t h o d * * .
In t h i s way users c a n g r a n t o t h e r users t h e privilege of executing some m e t h o d s on a n
o b j e c t n o t directly, b u t by using some o t h e r m e t h o d s .
A m o d e l a p p l y i n g a similar a p p r o a c h hws b e e n p r o p o s e d in t h e c o n t e x t of t h e Iris
D B M S [8]. T h e r e , o b j e c t s ( a n d t h e i r d a t a ) are e n c a p s u l a t e d by a set of functions,
i.e., t o access a n o b j e c t , users call t h e a p p r o p r i a t e f u n c t i o n s t t A u t h o r i z a t i o n s specify
for every user, t h e set of f u n c t i o n s t h e user is allowed to call. A u t h o r i z a t i o n s can b e
referred to single users as well to groups of users. A user can belong to zero or m o r e
groups, a n d groups c a n b e nested.
T h e m o d e l s u p p o r t s t h e c o n c e p t of ownership, in particular, t h e user who creates
a f u n c t i o n is considered t h e owner of t h e f u n c t i o n a n d can g r a n t o t h e r users t h e au-
t h o r i z a t i o n to call t h e function. T h i s a u t h o r i z a t i o n can also b e given w i t h t h e g r a n t
option. If a user h a s t h e g r a n t o p t i o n on t h e a u t h o r i z a t i o n to call a function, t h e user
c a n g r a n t o t h e r users t h e a u t h o r i z a t i o n to call t h e f u n c t i o n a n d t h e g r a n t o p t i o n on
**The concept of protection mode is very similar to the set user-id on execution concept
considered in the Unix operating system.
ti'lax the Iris d a t a model b o t h attributes and methods are represented as functions. In
particular, a t t r i b u t e s are defined as stored functions, while methods are defined as derived
functions.
2.4. DISCRETIONARY ACCESS CONTROL 37
it. The grant privilege is also enforced as a function: the authorization for the grant
privilege on a function f is represented by the authorization to call the grant function
with f as argument.
Functions can be defined on other functions. Authorizations on derived functions
can be defined as static or dynamic. If a user has the dynamic authorization on a
derived function, in order for the user to successfully call the function, the user must
have the call privilege on all the underlying functions. By contrast, in order to call
a derived function on which he has the a static authorization, a user does not need
to have the call authorization to the underlying functions. The concepts of static and
dynamic authorizations correspond to the concepts of protection and non-protection
execution modes for methods discussed earlier [57].
When a user creates a derived function, the user must specify whether the autho-
rizations on the defining functions must be checked statically or dynamically. In either
case, the creator of the derived function must have the call authority on all the under-
lying functions. If the creator specifies that the function must have dynamic authoriza-
tion, the user can grant other users the authorization to call the function. By contrast,
if the function is specified to have static authorizations, the user can grant other users
the authorization to call the derived function only if he has the grant privilege on all the
underlying functions. Derived functions can also be used to support content-dependent
authorizations. In this case, users are not authorized directly for a function, but on a
function derived from it which enforce some constraints. For example, suppose to have
an class Employee storing information about the employees and a function "Salary",
defined on it, returning the salary. Thought some employees can be authorized to read
the salary of everybody, some employees could be restricted to see their own salary.
This condition can easily be enforced by defining a derived function "Self_Salary" which
takes into consideration the caller of the function and calls function "Salary" to return
the user's salary. Since users cannot be authorized to call directly function "Salary",
the authorization to be specified on function "Self_Salary" is a static one. However,
the application of derived function to enforce content-dependent authorizations has
the drawback of embedding authorizations in the function implementation, therefore a
change of authorizations would imply a change in the implementation of some derived
function.
The authorization model takes also into consideration the characteristic of poly-
morphism of object-oriented systems. Polymorphism allows to specify functions, called
generic functions which have associated a set of specific functions that are defined on
different types tt. When a generic function is called, a specific function is selected
for invocation (late binding). Authorizations can be specified on generic or on specific
functions. A user authorized to call a generic function is automatically authorized to
call all specific functions of that generic function. When a user calls a generic function,
the corresponding specific function is selected and the user is allowed for it only if he
has the authorization on the specific function. The specific function can be selected
regardless of the user's authorizations (authorization-independent resolution)or by tak-
ing into account the user's authorizations (authorization-dependent resolution). The
authorization-dependent resolution has the disadvantage that the query semantics is
in this case dependent on the authorization-policies.
Functions can also be specified as having a guard function. If a function has a guard
function associated with it, the function can be executed only if the guard function
$$The concept of type in the Iris data model is equivalent to the concept of class in discussed
in Section 2.
38 CHAPTER 2. ACCESS CONTROLS IN O0 DATABASE SYSTEMS
returns value "true". Guard functions can therefore be used to specify conditions
which have to be satisfied for the users to execute some function. Since guards enforce
conditions by evaluating them prior to the execution of the function they control, they
are really useful for evaluating preconditions, i.e., conditions independent on the values
returned by the controlled function. Indeed, in order to enforce conditions on values
returned by the controlled function, the controlled function itself should be called and
its results evaluated by the guard.
Another concept introduced by the model is that of proxy functions. Proxy func-
tions provide different implementations of specific functions for different users. A func-
tion may have associated several proxy functions. When a user calls a function, the
appropriate proxy is executed in place of the original function. Therefore, the result
of a function may change depending on the user calling it. Proxy functions have the
advantage of allowing to enforce constraints on function execution by users without
any impact on the function implementation.
2.5 R e s e a r c h I s s u e s in M a n d a t o r y A c c e s s Con-
trol
We now discuss ongoing research aiming at extending in various directions the message
filter model presented in Section 2.3.
some of its functions by simply delegating their executions to other objects. In this
approach, an entity E, with attributes of n, different levels of security, is modeled by
a number nz of single-level objects. An object Oz~ would contain all attributes having
security level l~. Moreover an object OL~ would contain a composite attribute whose
value is the object O,i_ 1 . Thus, a multilevel entity would be decomposed in several
single-level objects such that an object at a level Iz has as component objects the objects
whose security levels are lower than l~. Whenever an object needs to retrieve values of
attributes of lower level objects, this object can delegate the appropriate component
object the execution of the retrieval operations. An attractive aspect of this approach is
that it allows the same object interfaces. An interface of an object is the set of messages
that are defined for the object, to be provided to users as if multilevel objects were
directly provided, while retaining at the same time the simplicity of the message filter
approach and of the single- level objects.
There are several aspects of composite references that have been refined to take
into account security requirements. As previously discussed, different types of com-
posite references have been identified by Kim, Bertino, and Garza [320]. They can be
categorized as follows:
T h e approach for supporting both the previous delete modalities is based on using
the message filter as an active component; it will need to notify objects at high levels
t h a t events have occurred concerning related objects at low levels.
In systems based on garbage collection an object is automatically removed by the
system when it is no longer referenced by any other object. This approach, if not
properly modified, would cause some problems in a secure environment. Indeed, a
low object would not be removed if a reference exists from a high object to this low
object. Therefore, a low user may infer the existence of a high object referencing the
low object. Note t h a t even though the low user will not be able to infer the OID of
the high object, a signaling channel could be established. Another serious drawback
is t h a t the garbage collector would have to access objects at various levels of security.
This would require the garbage collector to be a trusted component.
We are investigating a different approach which does not require the garbage col-
lector to be trusted. T h e approach requires a garbage collector for each security level.
T h e garbage collector associated with a level I removes an object at level I only if all
references from other objects at level l have been removed. Since the garbage collector
at level l does not see references from objects at levels higher than 1 (because it does
not see those objects at all), it will remove an object o at level 1 as soon as all references
from objects at the same level as o have been removed. Note t h a t removing a reference
from a high object to a lower object cannot cause the low object to be removed. Indeed,
suppose t h a t removing a reference from a high object o to a low object o ~ causes o j to
be removed. This means t h a t the reference from 0 to o' is the last existing reference
to o'. However, this situation cannot arise because the garbage collector at the level
of o' would remove o ~ as soon as the last reference to o ~ from an object at the same
level has been removed. Therefore, if a reference from a high object to a low object is
removed, we have two cases: (i) the low object has already been removed; (ii) the low
object has another reference from its same level and then it is not removed. In b o t h
cases, the removal of the reference from the high object does not cause any change in
the status of the low object. It is i m p o r t a n t to point out t h a t information needed by
the garbage collectors are also partitioned on the basis of security. This means t h a t the
information t h a t a high object has a reference to a low object is kept at high level. This
is automatically achieved because putting a reference from an object o to an object o',
where the level of o is greater t h a n the level of o ~ can only be executed by a subject
with the same level at o. Therefore, all information generated as side-effects of this
u p d a t e (such as the information for garbage collection) are classified at the same level
of o.
Note t h a t this approach causes the problem of dangling references. Indeed, a low
object can be removed even if it has some references from high level objects. One
possibility is to allow dangling references and to return a notification, whenever an
object sends a message to a low removed component which has been removed, as in
the case of explicit delete. Another possibility is to use the approaches of upward
cascading delete and conservative delete. Both those approaches, however, require
t h a t all deletions issued by the garbage collector pass through the message filter. This
is automatically achieved if the garbage collector internally uses messages.
2.5.3 Polyinstantiation
T h e problem of polyinstantiation has been studied in the framework of multilevel
relational d a t a m o d e l [292]. A multilevel relation is a relation containing tuples t h a t
have different security levels. Polyinstantiation arises when there are two or more
42 C H A P T E R 2. ACCESS CONTROLS IN O 0 DATABASE S Y S T E M S
tuples in a multilevel relation having the same value for the primary key. Enforcing
the uniqueness of key value in multilevel relations would lead to a covert channel. A
possible solution consists of requiring that the key be unique not with respect to the
entire relation, but with respect to the set of tuples having the same security levels.
As discussed by Jajodia and Sandhu [292] tuples at different levels in a multilevel
relation are related. Indeed, each instance at an access class c represents the version
of reality appropriate for the access class c. It is important to note that a user with
clearance for a given level may see all tuples of levels equal or lower. One problem is
therefore that the user m u s t understand which low level information are correct and
which one have been inserted to provide a cover story, and thus may be discarded.
A consequence of this fact is that discrimination of correct information against cover
information is left to the application programming.
We are currently investigating approaches to this problem in the framework of
object-oriented d a t a models. In particular, we are investigating the use of methods as
a way to embed and centralize the appropriate knowledge for distinguishing between
correct information and cover stories. As an example consider an entity type 'Employee'
with attributes Name, Skill, Salary, and Age. Furthermore suppose that Name and Age
are unclassified, while Salary is classified. Moreover, suppose that Skill is a multivalued
attributes. Remember that in object-oriented data models multivalued attributes can
be directly represented, without any need for normalization, that can assume both
classified and unclassified values (for example, the fact that an employee has certain
skills is secret, while employee's other skills are not). A possible design for the entity
type 'Employee' in terms of single-level object would be by defining two objects. A
first object o, whose level is unclassified, would contain the attributes Name, Age, and
Skill. The Skill value for the unclassified object will contain only those skills that do not
need to be kept secret. A second object o', whose level is classified, would contain as
attributes Salary and Skill, and in addition a composite attribute containing a reference
to object o (according to the composite object model defined in the first subsection).
Note that the Skill attribute in the classified object (i.e. o') would only contain the
skills that must be kept secret. Now suppose that the unclassified skills are not a cover
story. In this case, whenever the values of the attribute Skills must be retrieved from
the classified object (i.e. o~), the method retrieving the skills must retrieve the values
of the attribute Skills from the unclassified object and unioning them with the values of
the attribute Skills from the classified object. By contrast, if the classified skills are a
cover story, the method retrieving the skills from the classified object will only need to
retrieve the values of the attribute Skills from the classified object. This example shows
that the encapsulation feature of object-oriented d a t a model actually allows to shield
the applications from having to deal with discriminating correct information against
cover information. This discrimination is embedded into the methods encapsulating
the object. Note that this solution can be improved by also considering methods
expressed in a declarative language. This makes it easier to formulate, understand,
and manipulate the discrimination criteria for cover information.
lar, since composite objects are obtained by imposing the part-of semantics on normal
references [320]. However, our approach differs in several aspects. First, we make full
use of the features of object-oriented data models by showing how, through the use of
methods, it is possible to define objects which, even though they are single-levels, are
able to provide the same interfaces, as if multi-level objects were directly supported.
Moreover, we have introduced some extensions to the composite object model to better
modeling the notion of exclusive references, so that no security breaks are introduced.
Then, we have provided an extensive analysis of the use of composite objects when
multi-level entities axe organized in type hierarchies, taking into account also the case
of multiple direct supertypes. Moreover, we have investigated the object delete prob-
lem. The approach proposed by Thuraisingham [583] mainly discusses rules stating
the security policy that must hold among the various objects in an object-oriented
database, such as for example that the security level of a subclass must dominate the
security levels of its superclasses. However, no discussion is presented on the additional
complexity of the security monitor due to the enforcement of the security policy rules.
Moreover, [583] does not discuss the problem of handling multi-level entities.
We are currently looking at ways of providing protection from Trojan horse attacks
in mechanisms meant for discretionary access controls. The approach we are inves-
tigating is based on keeping for each object an access list and on using the message
filter as a trusted agent able to verify that information flows among the objects in the
system are legal. Since in object-oriented systems all exchanges of information among
objects is based on messages, it should be possible to determine whether illicit trans-
mission of information is about to take place. It is also important to note that in an
object-oriented database system some of the high-level semantic operations are stored
into the database as methods, instead of being dispersed into the application programs.
By making formal verifications of some of these methods~ it should be possible to rely
on some trusted methods, that is, on methods that actually perform the advertised
services. Note that the verification of some of the methods represents a compromise
between the verification of the entire collection of application programs as well as of all
the methods and no verification at all. While verifying all application programs and
all methods is not feasible because the code to verify would be too large, the option of
no verification at all may lead to severe restrictions in the possible computations that
can occur in the system. The possibility of relying on trusted methods will allow us
to relax some of the restrictions that must be placed in a system in which all methods
are assumed to potentially contain Trojan Horses.
2.7 Conclusion
Access control is a crucial functionality for any data management system. It is not
sufficient that a system makes information available to users. The system has also to
ensure that the information is protected from unauthorized accesses and modifications.
Many security models have been proposed for conventional d a t a models. By contrast,
security in object-oriented database systems still presents several open issues. Features
of object-oriented d a t a models and languages, such as inheritance, subtyping, and en-
capsulation, bring new protection requirements which make the existing security rood=
els not adequate. Protection of information must be provided without compromising
the advantages provided by the object-oriented approach over conventional systems.
A model is yet to emerge that satisfactorily covers all protection aspects related to
object-oriented database systems, and many problems still remain to be solved. How-
ever some interesting, but not complete, approaches have been investigated addressing
the development of security models specifically targeted to object-oriented database
systems.
In this chapter we have illustrated the protection problems in object-oriented
database systems and reviewed some security models recently proposed. We have
discussed both mandatory as well as discretionary security issues. In the presentation
of the models, we have stressed how some features of the object-oriented paradigm,
which automatically provide some form of protection, can be exploited for security
purposes. Finally, we have outlined some open problems in the field and illustrated
current researches aimed at their resolution.
Chapter 3
The Decomposition Property of Non-Deterministic
Databases
3.1 Introduction
Motivated by the need for increased modeling power for advanced appfications involv-
ing design, scheduling, planning, etc., a number of attempts have been made to extend
database technology [188, 339,351, 33, 7, 3,600,264]. Indeed a major selling point for
the newly emerging area of object-oriented databases is the increased modefing power
provided by such systems. Although well motivated, such increased modeling power
comes with a price: query evaluation is more expensive in the database programming
languages (DBPLs) associated with these extended models. Traditionally, database
technology has striven to develop declarative query languages in which the user speci-
fies the query ~nd the system evaluates the query in the best possible way. However,
implicit in this evaluation is a guaranteed upper bound on time (performance guar-
antees). Obviously, such a goal can not be reached if the DBPLs are extended from
restricted languages (relational algebra, Datalog, etc.) to full-fledged programming
languages (such as C + + ). Thus, we are faced with two competing goals: increase
the modeling power of declarative query languages, and performance guarantees for
DBPLs.
One approach to deal with these competing goals is to extend the modeling power
incrementally (accounting for the most important needs first), and see if query lan-
guages maintaining performance guarantees can be built for these extensions. One
such extension to modeling power was described in [274, 597, 408] wherein it is shown
that dealing with choices enables us to model more expressive domains. For exam-
ple, in design situations we can state that the implementation medium of a certain
part can be chosen from the set [Cobalt, Nickel]. Such a set of choices is called an
OR-object. A database with OR-objects corresponds to several possible worlds; for
instance, the previous database fact corresponds to two possible worlds: " P a r t # l can
be implemented using Cobalt" and " P a r t # l can be implemented using Nickel". In
[274] OR-objects model d a t a involving choices, e.g., the above choices can be stored
as Implement(Part#l,o) where Dora(o) = {nickel, cobalt} gives the domain of the
OR-object o. The two possible worlds corresponding to the choices can be obtained by
replacing the OR-object with a member of its domain: Implement(Part#l, Cobalt)
lack of complete information. Then, for this class l) of databases that allow choices
in both predicates, [273] simply declares that the query is coNP-complete. Can we do
anything more?
Note that even though the data complexity of + for :D is coNP-complete, there
may exist subclasses of :D for which + can be evaluated in PTIME. The questions we
address in this chapter are: can we guarantee PTIME behavior for the coNP-complete
query + for certain subclasses o f / ) ? What kind of approaches can we expect to use in
order to obtain such subclasses? Are those approaches domain-independent? In other
words, can the same approaches be used on any other query + ' and class of databases
l) (where + ' is coNP-complete for l))?
It is important to understand the domain independent nature of the heuristic sup-
port that we desire. A central assumption in databases is that the data in a database
is uninterpreted. It has no inherent semantics. It is only through interactions with
a query that data acquires a meaning. Thus, when we seek tractable subclasses of 7)
we would like to respect this central assumption. Our techniques that identify such
tractable subclasses are independent of the' query so that they will work for any query
and class of databases.
We believe that this chapter makes some initial progress towards obtaining answers
to the above questions. Our methodology works as follows. We identify a property
called "decomposition property" and show that the classes of databases satisfying this
property enable polynomial time query evaluation. This property can be defined as
follows. A class of databases 7) has decomposition property for a query +, if for any
D E / ) , it is the case that D ~ 9 can be determined by first determining if Di ~ + for
every 1 < i < m, where D - D1 U . . . U Din. We refer to Di's as modules or "clumps".
These modules depend on the query + and also on the database D. Thus, the problem
of evaluating the query in the entire database can then be reduced to evaluating it for
each of the modules. Interestingly, it seems that there is a strong relation between
the decomposition property and locality of choices. Because choices occur naturally in
many situations, our approach seems to have practical impact as well.
E x a m p l e 3.1.1 ( A n E x a m p l e )
Suppose that a database has facts such as fl = I n e x p e n s i v e ( u l ) V Inexpensive(u2),
f2 = Researchy(u3) V Rescarchy(u2) V Researchy(u4), i.e., there is choice data in both
the predicates. Suppose that a domain specialist knows that the choices are localized:
that is we m a y have [acts such as f3 = I n e z p e n s i v e ( r u t g e r s ) V I n e x p e n s i v e ( Princcton)
where both rutgers and Princeton are in N J, but we do not have facts such as
I n e x p e u s i v e ( r u t g e r s ) V I n e z p e n s i v e ( S t a u d f o r d ) where the universities involved are
far apart (across several state boundaries). Thus, the domain expert predicts that facts
over choices are localized at the state level, with a few facts containing choices stradling
state boundaries. Such localized information gives rise to "clumps" or "modules".
We can depict the clumpiness of data by constructing a database-graph, as fo]Jows:
facts such as f l , f2 can be represented by nodes of a graph with an edge between two
nodes i f the corresponding facts have a possible world that entails the query. In our
example above, the nodes corresponding to fz and f2 will have an edge because the
set {Inexpensive(u2), Researchy(u2)} is a possible world of the facts, and entails
the query 3 x [ I n e x p e n s i v e ( x ) A Researchy(u2)]. Figure 3.1 shows such a graph for an
example database. There are seven facts f l , .. . , f7 that constitute "clump1", and nine
facts f6, fs, . . . , f15 constituting "clump2".
In this chapter we formally define the notion of a clump, show the allowed inter-
actions between clumps, and show how to determine D ~ ~ by composing the results
48 CHAPTER 3. THE DECOMPOSITION P R O P E R T Y
CIL
complexity of
{DIDEI) and D ~ ~}
The motivation for d a t a complexity is as follows: suppose we are given a database D
and a query evaluation algorithm for evaluating a query in D. It is natural to expect
that the query evaluation algorithm works correctly even if the database is updated.
In fact, we expect that the algorithm is invariant under all or some updates. This
notion can be made precise as follows: suppose [D] + denotes the closure of D under a
set of pre-specified update operations. Then, we expect the algorithm evaluating ff to
evaluate it correctly for any d a t a b a s e in [D] +. The complexity of any such algorithm
is bounded from below by the complexity of the set
{D[DE[D] + andD~ff}
which is the d a t a complexity of ff with respect to [D] +. Thus, data complexity provides
a lower bound on any algorithm that we can hope to design for evaluating queries in an
update transparent manner. The data complexity of positive conjunctive existential
queries for relational databases (closed under the update operations of D E L E T E a
tuple and I N S E R T a tuple) is in P T I M E (actually in LOGSPACE) [598, 95]. The
following observation reconstructs this result.
is in P T I M E .
P r o o f : The idea is as follows: let k be the number of variables in ff and let M be the
set of all domain constants in any database D. Then, D ~ r iff there exists a mapping
# from the variables in {I} to the constants M such that #({I}) is a subset of D. Clearly,
the number of possible mappings is a fixed polynomial i n the size of M and hence even
the straightforward approach of testing these mappings one by one gives polynomial
time complexity. 9
However, unfortunately, when we allow disjunctive information in databases, this
nice tractable property no longer holds. In fact, it was shown in [276, 272] that the
d a t a complexity of simple conjunctive queries is in coNP-complete even if we allow
restricted disjunctive information denoted by "OR-objects".
The table TRAVEL has several possible worlds, each obtained by substituting the
OR-objects by a value from their respective domains, i.e., by making a choice from an
OR-object. One such possible world is shown in the adjoining figure. In general, then,
a database containing choice d a t a represents a set of possible final instances or worlds.
These possible worlds are also referred to as models.
We say that a query is true in an OR-database if it is true in every possible world of
that database. To illustrate the notion of entailment in disjunctive tuples, consider the
database D _= {P(o), Q(a), Q(b)} with domain(o) = {a, b} and the query 3x [ P ( x ) A
Q(x)]. The database corresponds to two possible worlds, each corresponding to a
particular choice of the OR-object, o. It can be observed that in each of the possible
worlds, the query is true; hence we say that the query is entailed by the database.
The following observation proves that indeed there exist queries whose d a t a com-
plexity is coNP-complete in the context of disjunctive information.
Proof:
Conside~ any graph G(V, E) with V as vertices and E as edges. Let {R, G, B} indicate
three colors. We say that the graph G is colorable if there is a mapping from the
vertices to the colors such that no two endpoints of an edge are colored by the same
color.
The following set is known to be coNP-Complete [212]:
{ G I G is not colorable }
In other words, the problem of determining if for any coloring scheme, it is the case
that at least two vertices connected by an edge are colored by the same color is coNP-
complete. We use this problem to show that the data complexity of a particular query is
coNP-complete. Suppose that from the graph G we construct a database D(G) consist-
ing of two relations Vertex and Edge such that Vertex -~ { v I v is a vertex of G} and
Edge = { (i, j) ] (i, j ) is an edge of G}. Also we construct a relation with OR-objects
as follows:
Color
vertex possible colors The domains
vl ol Dom(ol) = {R, G, B}
Dom(o~) = {R, G, B}
Vn On
52 C H A P T E R 3. T H E D E C O M P O S I T I O N P R O P E R T Y
is true in every possible world of the database D(G) iff G is not colorable. This shows
that the data complexity of 9 is coNP-complete. 9
Thus, in genera], the complexity of evaluating queries in OR-databases is coNP-
complete. In [273] data complexity of a particular class of positive existential conjunc-
tive queries was analyzed: this class is called proper queries. In a proper query, no two
titerals have the same predicate. The results of [273] can be summarized as follows:
first identify two design parameters called (i) typing function and (ii) degree of corefer-
ence; typing function specifies whether a particular column can take OR-objects, while
the degree of coreferencing restricts the extent to which OR-objects can appear repeat-
edly. Now, given any proper query ~, the analysis of [273] enables us to determine
the values of the design parameters such that for the class of databases conforming to
these parameters, the data complexity of the given proper query is in PTIME. Thus,
for example, consider the query ~ ~- 3xP(x) A Q(x). Then the analysis of[273] states
that the data complexity of r is in P T I M E if either P or Q is restricted not to take any
OR-objects, and OR-objects can repeat in the column that they are allowed to occur.
The interesting aspect of [273] is that if the restrictions stipulated are not con]ormed
to, there is a guarantee that the data complexity of that query will be coNP-complete.
Thus, we obtain what is called complete syntactic characterization. This approach was
called complexity tailored design in [273].
However, the above approach has some limitations: if a query ~ is found to have
coNP-complete data complexity for a class T) of databases, then, [273] does not provide
a way to deal with it any further. This chapter addresses the issue of identifying subsets
of 1) such that for those the data complexity of 9 is in PTIME.
~Two OR-objects are distinct if there is no constraint that relates the choice over their
elements. For example, let ol and 02 be two OR-objects that contain choices of courses for
John and Mary. Consider the constraint that John and Mary choose the same course. Such a
constraint relates the choices over ol and 02 and are natural in many applications. We disallow
such constraints in this chapter.
3.3. SIZE AND DENSITY OF A WITNESS 53
(I) and also on the database D. The decomposition property immediately guarantees
that the d a t a complexity of q) for D is determined by the size of the modules of D. If
k is the largest cycle (as we define later) in a module, then the d a t a complexity of
is given by O(2 k x D querySize x modulesize (q~r~ze+k) x number of modules) time
to determine if the module entails the query (here k is a fixed-constant, specifying the
size of maximal cycle in the module, as described later). Thus, the data complexity of
(I) with respect to the class of databases T) is a polynomial in the size of the database
(D). We identify different such classes / ) 0 , . . . , O k , . . . for different parametric values
of k. Note that this situation of assigning a maximal size of the module arises very
often in practice as described in Section 3.1.
Thus, there are two issues: modules and their inter-connections. Having agreed
to pay a fixed time (parametric in k) 0 ( 2 k x modulesizeq~e~"~z~), to determine if a
module entails the query, we expect the modules to be as "big" and as "dense" as
possible (trying to get the maximum out of what we are willing to pay).
In this section, we first define a notion of "size of a witness of a query" and show
that in the case of OR-databases, this size is not bounded, whereas in the case of re-
lational databases, this is bounded. We show that bounded size of the witness yields
(a straight forward) proof of the polynomial time evaluation of queries in relational
databases, whereas the unboundedness of the witness makes that. straightforward al-
gorithm exponential. We show that although size is an important aspect, it alone is
not sufficient for our purposes. We next introduce a notion of density of a witness. It
is this notion that is used in the next section to develop the module-wise evaluation.
Suppose that the size of the minimal witness is bounded by the size of the query
(denoted by ]~]). Then, clearly, evaluating if the query 9 is true in D is in polynomial
time in the size of the database: basically, consider all subsets of D of size ](I)] and see
if any subset of atoms enta]ls the query +. Fortunately, the following ensures that if
D is indeed a set of atoms, then it is the case that any minimal witness is bounded by
the size of the query.
The proof of the above observation follows easily from the definition of a witness.
Note that the largest size of any mapping is bound by the number of ]iterals in the
query.
However, the above observation does not hold if we allow OR-objects in the database.
First we would like to make the notion of minimal witness precise in the context of
54 CHAPTER 3. T H E D E C O M P O S I T I O N P R O P E R T Y
OR-objects. We assume throughout the chapter that OR-objects are distinct. Thus,
given a database D with OR-objects , it can be re-written as a First Order Theory by
expanding the disjunctions implied by the OR-objects. From our definition of OR-
objects, it is clear that this theory is in a special conjunctive normal form: each of the
disjuncts are formed from the same predicate symbol. Clearly, D can be viewed as a
set of clauses.
Now, a witness S to a query 9 in a database D with OR-objects can be defined as
follows: S C D is a witness of r in D iff every possible world (see Section 3.2.2) of S
entails {IL We call S minimal, if for no subset S' of S the above holds. The following
lemma shows that the size of a minimal witness is not bounded by the number of
literals in a query in the context of OR-databases. In fact, it shows a stronger result.
L e m m a 3.3.2 There exists a query q? such that for any natural number i E A f there
exists a database Di such that the minimal witness o] ~) in Di is larger than i.
Sketch of Proof:
Consider the query 9 _-- 3x [P(x) A Q(x)].
For the case of 1, the desired database is D1 --- {P(a), Q(a)}
For the case of i, consider the database D2 --- { P ( a l ) V . . . V P ( a { ) , Q ( a l ) , . . . , Q(a{)}.
Note that Di constitutes minimal witnesses. 9
Thus, a straightforward approach of testing a fixed number of tuples of the database
to see if they entail the query does not work in the case of databases with OR-objects.
Since the size of the minimum witness can be as large as the database itself, it follows
that a straightforward approach leads to an exponential algorithm. The following
lemma, however, shows that an unbounded witness does not necessarily mean coNP-
completeness.
L e m m a 3.3,3 ( U n b o u n d e d w i t n e s s d o e s n o t i m p l y c o N P - C o m p l e t e n e s s )
There exists a query q? and a class 7) of databases such that the size of witnesses for
in 7) is unbounded but still the data complexity of 9 for D is in PTIME
Sketch of Proof:
Consider the query 9 -- 3 x [ P ( x ) A Q(x)] as before, and D the desired class of databases
to be the class of databases in which OR-objects do not occur in the relation Q. From
the previous lemma it follows that r does not have a bounded witness for this class.
We show that the data complexity of ~b for 1) is still in PTIME. Consider a clause
c of P. Clearly, c is of the form P(al) V . . . P(ak). We see if the relation Q has tuples
of the form Q(a~),..., Q(ak): Note that Q has no disjunctions. If there are no such
tuples in Q, then we conclude that the clause c does not contribute to the minimal
witness, and take the next clause of P. If there is at least one clause of P that satisfies
this requirement, then we conclude that D ~ r else we conclude that D ~ ~. Clearly,
the above algorithm is in P T I M E (O(n2)). 9
Thus, the query r -- 3x[P(x) A Q(x)] does not have bounded witness even for the
class of databases in which only P is allowed to have OR-objects. But still, (b could be
evaluated in P T I M E for that class. Thus, bounded witness is only a sufficient condition
for tractability.
We now develop a notion of density of a witness. In the previous example, the
following holds:
Thus, in order to construct a countermodel (i.e., a possible world that does not entail
the query), we need to consider only the first k - 1 disjunctions of P ( a l ) V . . . V P ( a k ) . In
other words, for the purpose of constructing a counter-model, we might as well remove
the disjunct P(ak) from P ( a l ) V . . . V P(ak) to form P ( a l ) V . . . V P(ak-1).
Thus, using the above stepwise refinement, the new clause has only k - 1 disjuncts.
Arguing similarly with the other definite tuples of Q, one at a time, we conclude that
there is no counter-model for 9 (we eventually conclude that any such counter-model
will have zero disjuncts of P - a contradiction).
We call the above database a "low density" database because one can use a ,step-
wise" or incremental reasoning to determine if the query is entailed by the database.
The following example shows that this limited or incremental reasoning can be appfied
to databases which axe not necessarily as restricted as above.
E x a m p l e 3.3.1 ( s t e p w i s e p r o c e d u r e a p p l i e s t o m o r e c o m p l e x d a t a b a s e s )
Consider the same query q~ ~ 3x[P(x) A Q(x)] and the database shown in Figure 3.2.
The database D ---- {Q(a), Q(e), P([a, b]), P([d, el), Q([b, d])}. (The square brackets de-
note choice data, e.g., P([a, b]) denotes P(o) where o is an OR-object whose domain is
{a, b}. This notation is used only as a shorthand.) This database is constructed in the
form o f a tree. Note that the vertices are essentiafly the clauses of the database, and
two vertices are connected by an edge if they together have a possible world in which
the query is entailed.
Q([b,d])
Q(a) Q(e)
F i g u r e 3.2: A "t~ree like" d a t a b a s e e n a b l i n g stepwise reasoning.
Note that one can perform a bottom-up stepwise refinement in the above database
instance as follows: starting with the left most child, one can conclude from Q(a) and
P([a, b]) that the only counter-model, i f there is any, for the query should be the one
in which a is removed from P([a, hi). Similar stepwise reasoning yields that e can be
removed from P([d, e]). Continuing this further, we conclude that at the root we do
not have any choices left for Q([b, d]) from whence it can be concluded that there is no
counter-model for the above database.
56 C H A P T E R 3. T H E D E C O M P O S I T I O N P R O P E R T Y
Note that the above database D constitutes a minimal witness of ~. Thus, the above
tree-structure and the associated stepwise refinement indicate that even though the size
of a witness is unbounded, what is more important is the ability to apply the stepwise
refinement. We call a database dense if stepwise refinement can not be performed
directly on it to determine if it entails a query. By stepwise refinement we mean, a
procedure that uses only bounded set of tuples to conclude if a particulax choice can
be removed, for the purpose of computing a counter-model (the bound is the number
of liter~ls in the query). This stepwise refinement is analogous to, but different from
the extended Chase-mechanism discussed in [271].
The next subsection identifies "dense" instances which can not be evaluated in a
stepwise manner.
3.3.2 Density of W i t n e s s e s
We say that a database D has density property for a query ~, if stepwise reasoning
is not applicable to determine if D ~ ~. We illustrated in the previous subsection
that "tree like" databases do not have the density property (see Figure 3.2). In the
following we show that database with "cycles" satisfy the property of being "dense".
To understand the notion of cycle, consider the following example:
E x a m p l e 3.3.2 ( W h y c y c l e s ? )
Consider the query r - 3xy[H(x, y) A H(y, x)] where the second argument of H is an
OR-object. Consider the database
D = {H(a, [e, e]), H(e, [a, f]), H(c, [a, f]), g ( f , [e, a]), H ( f , [c, el), g ( a , [b, f])}
See Figure 3.3 in which this database is represented as a graph using the same approach
as in the previous example: if two nodes have a possible world that entails the query,
then put an edge between them.
It is easy to see that the above database does not support stepwise refinement.
In fact, we need to look at a// possible worlds of the entire database before we make
any decision. More precisely, D ~ H(a, b) V q~, and for the purpose of constructing
counter-models, we can delete the choice f from the choices of the tuple H(a, [b, f]).
Thus, in order to perform the refinement (i.e., reducing the size of an OR-object), we
need to consider the entire database, not a bounded set of tuples.
Thus, modules with cycles seem to capture the interesting property that the mod-
ule as a whole needs to be considered for refinement. In other words, a cycle can not be
further broken into smaller components for the purposes of refinement. Consequently,
any straightforward aigorithm needs to reason with the entire module (of size k) re-
quiring O(2 k) time. Thus, we choose components with maximal cycle size as k as the
desired "clumps" or "modules" for constructing l)k. We would like to remark that we
do not claim that cycles imply an exponential lower bound. We use modules consisting
of cycles as units because they are amenable to stepwise evaluation.
c,[a,f])
H(e,[a,f])
H(f,[e,a]) ..~H(f,[c,a])
Figure 3.3: A "cycle" like database that does not enable stepwise reasoning.
here the subclasses are subsets of 79~ for which ff is known to have coNP-complete
data complexity.
A class of databases 79 has decomposition property for a query ~, if for any D E 1),
it is the case that D ~ 9 can be determined by determining D, ~ 9 for every
1 < i < m, where D ___ D1 O . . . U D m . We refer to Di's as modules. There are
two issues: the kind of modules, and the kind of "connection" or interface between
modules in a given database D of a given class 79k.
In the previous section we showed that the modules are collections of nodes that
have a maximal cycle of size k where k is a pre-fixed parameter as discussed in Sec-
tion 3.1. The next question is how do we expect to break the database into components.
In other words, how do we decompose a database into modules? We define what is
called "acyclic" collection of components. In other words, D E 79k iff D can be broken
into an "~cyclic collection" of components or modules of size k. Then we prove that
indeed D ~ 9 can be determined by reasoning with only the components.
This section formalizes the notions of database graphs, nodes, edges, cycles, mod-
ules, and finally, estabfishes the desired d~composition property.
the vertices of the hyper-graph, and all Ai are the arcs of the hypergraph; furthermore,
2 <_ j <_p, vj E A j - 1 .
O b s e r v a t i o n 3.4.1 No two arcs in an acyclic hyper-graph share more than one node.
Otherwise it becomes a cycle. See Figure 3.4.
Proofi
Arc A1 Arc A 2
\ / A1 = {vl, v'2,v3, v4, vb}
Vl ~ ~ . . ~ = {V4,V5, v6, V7, V8, V9}
V5
v2 v7
v8
v3
v9
Note that the desired cycle is (vb, A1, v4, As, vb). 9
D e f i n i t i o n 3.4.4 A query is singly-matching if for any set of tuples, there is at most
one possible world that entails the query.
For example, the query 3x[P(x) A Q(x)] is not a singly matching query because
P([a, b]), Q([a, b]) entails the query in two possible worlds. However, it can be proved
that the query 3 x y [ P ( x , y)/x Q(y, x)] restricted so that the second argument of P and
the first argument of Q are allowed to take OR-objects, is a singly matching query,
and yet has eoNP-complete d a t a complexity.
Now, we prove that for any singly-matching query r and the class of acyclic
databases 7~o = { D I G ( D , ~ ) acycllc}, it is the case that the data complexity of
is in PTIME. In order to prove this fact we first show that this class of databases
satisfies the decomposition property on its modules.
3,4. MODULEWISE EVALUATION 59
D e f i n i t i o n 3.4.5 ( d e c o m p o s i t i o n p r o p e r t y )
For a given query (P, a class of databases I) + has decomposition property, if there is a
k such that the following holds for every D E 7)+ : D can be decomposed into databases
D ---- U~=~
m
Di and ]D~ I < k and the problem o l d ~ d2 can be determined by composing
the results of Di ~ q~.
Note that the decomposition property immediately establishes the PTIME property
of @ for O +.
T h e o r e m 3.4.2 For any given query q~, the class 1)+o has decomposition property.
Proof."
Let G(D, 02) be the instance graph. We show that D has the decomposition property
where the desired modules of D are the arcs of the instance graph. The desired constant
of the decomposition property is the size of any arc of G(D, ~), which in turn is bound
by the size of (h.
We use induction on the number of/arcs in G to show this result. Base case: G has
at most one arc. TriviM.
Assume that the induction hypothesis holds for every database with the number of
arcs of at most ra. Consider a database with m + 1 arcs. We show how to decompose
this database. Let 1 be a leaf arc of D. Let p be the bridge of I. Let l = {Vl,... ,vk}.
There are the following cases:
/ V
\
Leaf-arc Leaf-arc
Let p be denoted by H([al,..., ap], b). Let rnl be the model of I containing It(hi, b~).
Then m~ = ml - {H(ai, b')}. Clearly, m~ is a set of all definite formulae that exist
in every model of D. This is because all the formulae of l except p are definite. Let
p' = H([al,..., a~_~, a~+~,..., ap], b). In other words, p' is obtained from p by deleting
a, from the OR-object of p. Let G' be the graph obtained by deleting the leaf arc 1
from G and deleting all the nodes associated with 1 from G, and adding the new node
p'. Let D' be the database corresponding to G'. We show that D ~ 9 iff D ' ~ ~.
This will in turn prove, as in the previous case, the theorem.
Suppose that D' ~ r Then we need to show that D ~ r Note that D' ~ D. In
fact, all formulae of D' are in D except for p'. Instead ofp', D has the formula p. Thus,
to show that D ~ ~, we should consider also those models of D in which p is entailed
by Hi(hi, b). Since p' does not have ai in its OR-object, Hi(hi, b) is not in any model
of D'. However, in any model of D that contains Hi(hi,b), m~ 0 {Hi(hi, b')} entails
the query ~, because it constitutes the model of l. Thus every model of D entails ~.
Suppose D ' ~ ~. Then, there is a model m' of D' such that m ' ~: ~. Then, the
database m2 = m ' U m~ is such that m2 is a model of D and m2 ~= r Thus, D ~ r
as desired. 9
In other words, the above theorem proves that if D is acyclic, and r is singly
matching, we can determine if D ~ r by considering the ~rcs of G(D, ~) one at a
time, in a modular manner. The P T I M E characterization of ~0~ follows immediately,
as the theorem below records the result.
We extend the above result in two ways, (i) the case when there are cycles in
G(D, ~), and (ii) when the query is not singly matching.
In the case of multiply-matching queries, each arc can have more than one model
that entails the query. Hence, we can not extend the above proof directly to multiply-
matching queries.
If the graph has cycles, we can divide it into components such that each component
has at most a k-size cycle. Thus when we collapse each component containing a max-
imal cycle of size k into a single arc (called "super arc"), the original graph becomes
acyclic in these super-arcs. If a database is such that its instance graph is acyclic in
k-sized cycles, then we say that D is in ~k. Note that since each super-arc can have
multiple models that entail the query, in this case also, we can not extend the above
proof directly.
Thus in both the cases we need to account for multiple models of a (super) arc
entailing the query. The same approach can be used in both the cases, and the following
theorem establishes the first result.
Proof." As in the previous theorem, there are essentially two cases: (i) the parent of a
leaf arc is an OR-formula, (ii) the parent of a leaf arc is a definite formula but there
is some other node in the leaf-arc that is an OR-formula. Let l be a leaf-arc, and p be
its parent.
62 CHAPTER 3. THE DECOMPOSITION PROPERTY
C a s e (i):
Let l = { A 1 , . . . , A k } where A/'s are the arcs of the leaf-arc l, and V = LJA,EIAi
denote the set of all nodes in the leaf-arc I. Recall that each arc is a set of nodes.
Let p = Hl(Ol, b) be the parent of the leaf-arc 1 where the domain of ol is given by
Dom(ol = { a l , . . . , am}. Let l' = l - {p}; thus, l' is the set of all nodes of the leaf-arc
except the parent. Let
S = { a I a E Dom(o) and ( { H ( a , b ) ) t o m ) ~(I) for every m o d e l m o f l ' }
Thus, S C Dora(o) is such that for any model of l involving a E S substituting o in 1
entails the query ~. Let pt be the new parent node defined as follows: H(o ~,b) where
Dom(o') = Dora(o) - S.
Consider the new graph G'(V', A') obtained from G(v, A) as follows: to obtain V'
from V, delete all the nodes of 1 and add p~; to get A ~ from A, delete the arc l from
A. Thus, A ~ = A - l, and V ~ = V - l U {p~}. Let D j be the database corresponding to
G(V', A'). We show that D ~ ~ iff D ' ~ ti. As in the previous theorem, this would
prove that D satisfies the decomposition property.
Suppose that D ' ~ (I). Every model m I of D ~ entails (I). We need to show that every
model of D also entails r Consider any model m of D. It either contains a model of D '
in which case it entails ~, or it does not contain a model of D j. Therefore, consider the
latter case: from construction of D ' it follows that m is of the form m ' U {H(a, b*)}tO l~
where m ' is a model of D', H(a, b) is a model ofp the parent of the leaf-arc, and finally,
l~ is a model of I', the leaf-arc except the parent p. Since m is not a superset of m',
it follows that H(a, b) is such that a ~ o'. Therefore, from construction of o' from o,
it follows that a E S where S is as defined before. From the definition of S it follows
that {H(a, 5)} to l~ ~ {I}. }Ience, clearly, m models 9 because {H(a, 5)} U 1~ C_ m.
Now suppose that D ~ ~: ~. We show that there is a model of D such that it does
not entail ~}. Since D I ~= ~, there exists a model m p of D / such that m I ~= ~. gFrom the
construction of D ' , it follows that the model m ' can be written as m ' = ml' to {H(a, b)}
for some a E Dom(o'). This is because, D' is obtained from D by removing all the
nodes of I and adding p' = H(o', b). Thus a E Dom(o') = Dora(o)- S. Now consider a
model l~ of l' such that l~ t3 {H(a, b)} does not entail ~. From the construction of o' it
follows that such a model of l' exists. Now, we claim that m" = m~ to l~ to {H(a, b)} is
such that m " is a model of D and m " ~= r Since m~ ~ r and (l~ to {H(a, b')}) ~: ~), it
follows that for m " to entail r it must be the case that some nodes of l~ together with
some nodes of m~ entail (0. Then, this contradicts the assumption that I is a leaf-arc
(and in t u r n contradicting the assumption that G is acyclic). Hence, it must be the
case that m u ~ ti.
C a s e (ii):
In this case p is a definite formula. The proof of this case is analogous to the corre-
sponding case of the previous theorem. []
Next, we extend the above two theorems for graphs involving cycles. As stated
earlier, graphs with cycles are viewed as acyclic graphs with "super-arcs'. A super-arc
is, essentially, a maximal component of the graph with a cycle of size k. The set /)k+
is defined as the set of all databases whose instance graphs (with respect to tiP) can be
viewed as acyclic when each maximal component containing k-sized cycle is collapsed
into a single "super arc". T h e proof of the following theorem is analogous to that of
the previous theorem (with the obvious and minor modifications).
Theorem 3.4.5 For a query ~ (singly or multiply matching), the class I)~ has de-
composition property.
3.5. F U T U R E EXTENSIONS 63
4.1 Introduction
Object-oriented computation in the broad sense is computation described as a sequence
of requests to objects through a single access method such as message passing. It is
generally accepted that object-based systems such as Smalltalk have provided a simple
and elegant paradigm for general-purpose programming which can be meshed well with
d a t a models. In brief, the class/method mechanism handles well the requirements for
type definition and information hiding. The message protocol provides a useful way
of controlling the updates that can be performed on a d a t a object. In addition, the
inheritance mechanism makes database schemas easy to modify, and new variants can
be constructed easily as subclasses.
The above features naturally lead to the use of the object-oriented paradigm in
instrumenting and supporting simulation activities. On the other hand, the nature
of object-oriented representations suggests that an object-oriented simulation program
can be executed in parallel. To our knowledge, more than a dozen object-oriented
simulation languages/systems have been developed; some have considered parallel pro-
cessing. A survey of such systems/languages can be found in [572] [200]. Most of such
systems/languages extend an object-oriented programming language with the necessary
constructs for simulation, in particular "...the notion of simulation time and mecha-
nisms for entities in the language to manipulate simulation time." [326]. However, the
issues of object management and object retrieval have not been fully addressed. As
for parallel processing, focus has been placed on developing efficient algorithms which
allow events be processed para]]elly to the maximal extent.
This chapter describes the design of a parallel object-oriented simulation environ-
ment. An object base is defined to be a system which contains a large set of active
as well as passive objects. For active objects, not only the data portion, but also
the control and knowledge portions of an object are stored and managed. Parallel
evaluation of simulation programs is accomplished by compiling objects into sets and
production rules so that they can be evaluated with parallel, set-oriented operations
which effectively utilize the capacity of parallel processors with minimal communica-
tion overhead. It is organized into the following sections: Survey of Related Work,
Object Representation, Management of Active Objects, Simulation, and Conclusion.
Active Database Systems The idea of incorporating rules into a database system
has exist as integrity constraints and triggers as early as in CODASYL, in the form
of ON conditions. More recently, the idea of combining rules and d a t a has received
much serious consideration. The term "active database" has been used frequently in
referencing such database. For example, rules has been built into POSTGRES [342]:
there is no difference between constraints and triggers; all are implemented as a single
rules mechanism. In addition, P O S T G R E S allows queries be stored as a d a t a field
so that it is evaluated whenever the field is retrieved. In HiPAC [138], the concept
of Event-Condition_Action (ECA) rules was proposed. When an event occurs, the
condition is evaluated; if the condition is satisfied, the action is executed. It can be
shown that E C A rules can be used to realize integrity constraints, alters, and other
facilities. Rules have also been included in the context of object-oriented databases.
In Starburst [285], for example, rules can be used to enforce integrity constraints and
to trigger consequent actions. In Iris [134], a query can be monitored by first defining
it as a function and later creating a monitor for the function.
On the other hand, there has been a growing interest in building large production
systems that run in a database environment. The motivations are derived from two
areas. First, expert systems have made an entry into the commercial world. This has
brought forth the need for knowledge sharing and knowledge persistence. These are
features found in current databases. Secondly, many emerging database applications
have shown the need for some kind of rule-based reasoning. This is one of the principal
features of expert systems. Production systems is a commonly used paradigm for the
implementation of expert systems. The confluence of needs from the areas of AI and
database has made the study of database productions very important.
Traditionally production systems have been used in AI, where data are stored
in main memory. Various needs, as mentioned above, have lead production systems
designers to use databases for data storage. We refer to these as database production
systems (DPS). Commercial DBMS's do not have the necessary mechanisms to provide
full support for such systems. Views can be used in lieu of rules, but only in a limited
way. Recent work has produced more powerful mechanisms to handle a large class of
rules [31] [93]. However, the focus has been on retrieval, especially evaluating recursive
predicates, and proposed approaches do not handle updates as in systems like OPS5
and HEARSAY-II. Recent efforts by [571] [341] [375] [84] have addressed this issue, and
much attention has been placed on parallehzing the evaluation of production systems
(see, e.g., [234] [283]). To our knowledge, little effort has been made for production
systems that work on objects or distributed evaluation of production systems.
class set_of_cx {
o . .
methods
. o o
set_of_ce a;
Set Projection Given a set or an object a of class ~, the following notation desig-
nates the projection of a on attributes A1, ..., An:
aIA1, ..., AN
. I
4.3.2 Active Objects and Models
T h e constructs provided in C + + are sufficient to describe passive objects, i.e., objects
whose activities are triggered when a m e t h o d associated with the object is called. In
real apphcations, a special class of objects need to be defined in order to describe
objects which are continuously active according to some control mechanism. Such
objects are called active objects [85].
Control An active object can be characterized by a set of states and a set of state
transition rules. In the extended language, a class of active objects is declared as a
subclass of the class active, for which any attribute, once defined, can be declared to
be a state as follows:
state attribute,...,attribute;
T h e control portion of an active object is expressed as a set of production rules,
which is designated as the attribute control (whose domain is set-of-production) of the
object. A production is asserted in the following form:
condition =~ statement;
where condition is any logical expression over states and inputs, and can include
any quantifier over sets:
Universal Quantifier
A variable in a logical expression can be universally quantified by the quantifier:
(forall < variable_id> in < set_id> )
4.3. O B J E C T R E P R E S E N T A T I O N 69
Existential Quantifier
A variable in a logical expression can be existentially quantified by the quantifier:
class message {
public:
The function returns true if a message has been received; in this case m is instantiated
to the message received. It returns false otherwise. A message m is regarded as the
reply to a previously sent message 5 if:
re.reference = 5.time-stamp
m.sender = 5.recipient
m.recipient = &sender
According to the above, an ordinary C + + function call c.a(xl,..., x,~) implements
a synchronous communication session; it is equivalent to a send operation followed
immediately by a receive operation.
Clock and Model To support simulations, the attribute clock is associated with
each active object, and a set of methods is available to manipulate the clock. Finally,
any subclass of the class active is called a model.
Class Template In summary, the general form of the class declaration for an active
object class is:
int clock;
set-of-production control = {
<logical-expression> =~ actions;
}
}
In the above, a classifier can be one of the following keywords: state, input, and
output.
4.4. M A N A G E M E N T OF ACTIVE OBJECTS 71
Adding A State Assuming s~+l is added to object P and the object becomes P ' ,
the state space of P is enlarged to Domain(s1) • Domain(s2) • ... • Domaiu(sn) •
Domain(an+l). Any state v in the original state space now corresponds to Domain(sn+] )
states (v,ua) ..... (v,u~), where r = Domain(sn+~) and the set of ui's spans all possible
values of sn+l. Let us assume that v is not a final state. Since v is not a dead-end
state in P , there must exist a rule in P for which v satisfies its left hand side. Clearly,
in P~, each of (v,ul) ..... (v,ur) still satisfies the LHS of the same rule. Consequently, P~
remains to be five. On the other hand, since no new rules (and actions) are added to
P~, no conflicting actions may be taken in each of the new states. In summary, adding
a state variable to a live and consistent object does not damage such properties.
72 C H A P T E R 4. A R C H I T E C T U R E OF A N O B J E C T B A S E E N V I R O N .
Deleting A State Deleting a state is more complicated than adding a state. As-
suming si is removed from object P and the object becomes P ', the state space of P is
shrunk to Domain(s1) • ... • Domain(si-1) • Domain(si+l) • ... • Domain(s~).
Domain(si) states (v,ul) ..... (v,u,), where R -- Domain(si) and the set of ui's spans
all possible values of si, now converge to a single state v. Since none of the original
states (v,ul) ..... (v,ur), where R --- Domain(si), is a dead-end state, it is clear that v
is not a dead-end state. Consequently, P remains to be live after si is deleted.
Deleting a state is complicated due to the requirement of consistence. The compli-
cation arises from the fact that the left hand side of some rules may include conditions
on si.Simply dropping such conditions from those rules can create the following prob-
lems: (a) An updated rule can violate the intention of the user; (b) Actions which used
to be taken in states (v,ul) ..... (v,ur) are now collectively taken in the state v; and some
of them may be conflicting. Instead of inspecting every state for possibly conflicting ac-
tions, the following procedure can be taken: For each pair of conflicting actions ai and
aj, identify couditions(a~) and conditions(a j). In the above, conditions(ai) designates
the set of LHS's of those rules whose actions include a~; conditions(ai) can be defined
in a similar way. The intersection of conditions(a~) and conditions(a j) identifies the
states in which conflicting actions ai and aj can be taken at the same time. Due to
these factors, the user is consulted when a state is deleted and some rules are affected
by this change. The conflicting actions are reported in the mean time, assuming all
conditions including the deleted state are dropped. Subsequent actions from the user
are handled according to the procedures for adding rules and deleting rules (see below).
4.5 Simulation
As discussed in Section 2, most of the existing object-oriented simulation systems pro-
vide an object-oriented user interface so that a simulation program can be described
in an easy and friendly fashion. Execution of an object-oriented simulation program
can be completely sequential or fully distributed as the program specifies. Although
looks attractive, executing a simulation program as a fully distributed, object-o~iented
system could be inefficient due to the shortage of physical resources and the overhead
associated with process management. Bearing this in mind, our approach compiles
an object-oriented simulation program, in which each active object is represented as
a production system, into a (production) rule network. Treating each active object
as a passive object, each node of the network corresponds to a set-oriented operation.
The compiled network (or the set of operations of the network) is evaluated in par-
allel. Changes to objects are generated at the terminals of the network. The overall
architecture of the object-oriented simulator is shown in Figure 4.1.
4.5.1 Rule P r o c e s s i n g
In general, processing of production rules or integrity constraints can become a serious
performance bottleneck when a large number of objects and rules are integrated. Since
multiple instances of the same class share the same copy of production rules, it is viable
to compile a set of rules into one system in which some set-oriented operations can be
employed to process the data (treated as sets) collectively. Furthermore, given a set
of rules, it is viable to merge those expressions that are common to more than one
rule so that duplicated effort can be avoided. We take a network approach for this
74 CHAPTER 4. ARCHITECTURE OF A N OBJECT BASE ENVIRON.
operations events
Rule Network
database
T T t
Figure 4.1: Simulator Architecture
4.5. SIMULATION 75
purpose, which is similar to the RETE algorithm ([235] [340]) but is more general in
treating logical formu!as and structured objects. Although integrity constraints and
production rules are treated shghtly differently, both are processed based on a network
that is compiled from a set of logical formulas.
Step 1
For each Qi, identify the set of predicates which correspond to classes, i.e., those
predicates which are class names. Create a node n, called a join node, for the predicate
set if it has not been created; otherwise identify the node that has been created (by
76 C H A P T E R 4. A R C H I T E C T U R E OF A N OBJECT BASE ENVIRON.
some Qj, j < i) and call the node n. Create another node and label the node with
the other predicates, which is collectively called a modifier, and establish an arc from
n to the newly created node. The arc goes from n to the modifier node since the
outputs produced by n should be processed, and selected, by the modifier node; any
output produced by the modifier node naturally corresponds to a tuple (of objects)
that satisfies the LttS of the rule. This step basically eliminates any duplicated effort
of creating a natural join of object classes among the rules.
Step 2
For any pair of join nodes nl and n2, if the set of predicates carried by nl is a
superset of that of n2, establish an arc from n2 to nl. This step guarantees that the
set produced by n2 can be used by nl. Since subsets may overlap, a join node can
choose, among different combinations, the best input sets to combine.
Step 3
At the end of step 1, a number of nodes that perform natural joins should have
been created. In the mean time, each rule corresponds to a modifier that selects from
the corresponding natural join those qualified objects. Consequently each join node is
connected to a number of modifiers. If there exists any predicate p which is common to
more than one modifier, a new node, called a common factor node, is created so that it
contains the MGP among such p's; an arc is created from n to the common factor node.
Finally, the modifier node corresponding to each rule connects itself to those common
factor nodes whose corresponding predicate subsumes one of its predicates. If after this
a modifier m is connected to a set of common factor nodes cl,...,ck, the intersection of
the outputs produced by c~'s is taken before the final selection is performed.
As an example, given the following formulas, the resulting rule network is shown
in Figure 4.2.
pl(X, Y) I
p2(Y) I
class_l(X) [ ] class_2(Y)
,
Event Execution In the case of synchronous simulation, the events with the small-
est scheduled time with respect to the global clock are executed; in the mean time the
global clock is adjusted to the events' scheduled time. In the case of asynchronous
simulation, the events with the smallest scheduled time with respect to each object are
executed; in the mean time the logical clock associated with the object is adjusted to
the events' scheduled time.
Production F i r i n g For each object selected, the actions associated with each
firable production rule are taken. Such an action could be an operation which changes
the value of an object, a communication operation (send and/or receive), or an event
4.5. SIMULATION 79
(which will be executed in the future). If necessary, the value of the clock associated
with the object is updated based on the operation(s).
Since our object model allows objects be shared among different processes (al-
though they are accessed through messages), it is important that serializability [442]
be maintained all the time. This means the effects created by multiple processes which
are executed concurrently should be the same as those created by a (any) serial sched-
ule among the processes. To assure this, our design employs the two-phase locking
protocol, which requires all objects accessed by a process be locked before accessed,
all locks be acquired before any unlock, and all objects be unlocked before the process
terminates. Clearly, two-phase locking cannot be implemented at the method level, as
two consecutive method calls can violate the two phase requirement. Consequently, we
require each method lock any object it may access but not unlock it. The list of locked
objects should be returned to the calling process so that the process can unlock the
locked objects before it terminates.
4.5.4 Example
This example consists of a number of divisions divided into two sides: blue and red.
The divisions are initially located on the border of a battlefield which is modeled as a
square of grid tiles. The scenario is set up so that all the red divisions are spread on
the east border of the battlefield and the blue divisions are spread on the west side.
Once initiated, the blhe divisions march to the west and the red divisions march to
the east, during which each division is characterized by its strength, speed, direction
of movement, and its location. When two divisions of opposite sides encounter each
other, the strength of the weaker is reduced to zero; in the mean time the strength of
the stronger is reduced by the that of the weaker. Any division whose strength is 0
is removed from the system. At any instance of time, the number of divisions in each
grid tile cannot exceed two.
The system as described can be expressed as a production system as follows. For
simplicity, locking and unlocking operations for shared resources are not included in
the rules.
division(d) && (d.color = red) && grid(g) &~c neighbor(d,g) && (g.capacity
< 2) :el march_left(d), (d.clock -~ clock + 2), (g.capacity = g.capacity +
1) (Rule 1)
division(d) && (d.color = blue) gz~c grid(g) && neighbor(d,g) && (g.capacity
< 2) ~ march_right(d), (d.clock = clock + 2), (g.capacity = g.eapacity +
1) (Rule e)
division(d) && (d.color = red) && division(e) && (e.color = blue) &&
same_grid(d,e) && (d.strength leq e.strength) =r (d.strength = d.strength
- e.strength), (e.strength = O) (Rule 3)
division(d) ~ & (d.color = red) && division(e) && (e.color = blue) &&
same_grid(d,e) && (d.strength < e.strength) =~ (e.strength = e.strength -
d.strength), (d.strength = O) (Rule 4)
4.6. O B J E C T - O R I E N T E D EVALUATION OF RULE N E T W O R K S 81
4.6 O b j e c t - O r i e n t e d E v a l u a t i o n of R u l e N e t -
works
This section presents an object-oriented approach to rule processing. It is "object-
oriented" since each entity in the system is an active object, which acts with its own
dedicated control sequences according to its functionality (e.g., constant nodes, predi-
cate nodes, variable nodes). Upon receiving a message from another object, it executes
its dedicated control sequence which may return a result or initiate an operation of
other objects for further processing. All operations in objects are proceeded asyn-
chronously. Since no object has global knowledge about the database, cooperation
among objects is necessary in interpreting a production. Compared to the fully object-
oriented approach, each object in this approach is much simpler in the sense that it
does not need to evaluate a production system as required by the fully object-oriented
approach. It does, however, have the minimal intelligence to participate and contribute
to the rule evaluation process.
T
d.color = red
T
Id.color Iblue 0.streo~,~
e.strength d.streogth,
e.strength
in_grid(d,g),
I I I
T t
neighbor(d,g) [ g.capacity<2 1[ d.color = red, e.coior = blue,
..... gth - n same..2r;d/a ,~
~ t
Consequently, an OAP node is used to interface the object network and the external
environment. It acts as a buffer node which gets a message from the outside of the
network and regenerates the same message to the connected nodes in the network. It
also combines the replies from the connected nodes in the network and sends a reply to
the outside of the network. With OAP nodes, we can hide the actual fact network from
the outside of the network. Conceptually, the use of OAP nodes employs an indirect
addressing mode in order to avoid the establishment of connections to object constant
nodes whenever a rule is evaluated. Consequently, when an operation is evaluated,
only the connections from each predicate argument nodes in the operation network
(see below) to the OAP nodes in the object network need to be established. Within
each node, it stores the identity (node type) of the node, its value (if it is an object
constant node), some dedicated control sequences, and the addresses of the nodes it
is connected to. Inside an object constant node~ the addresses of its connected object
predicate nodes are recorded and grouped according to their positions. Note that each
distinct object is uniquely stored.
On top of the objects, a join operation f -~ fl A ... A fn is built as an operation
network, where each fi denotes an operation predicate node which is connected to a set
of operation argument nodes (where each of them could be an operation constant node
or an operation variable node). A logical expression can be associated with each vari-
able argument node which designates any select criteria for the argument. Depending
on its position in the argument list, is connected to an appropriate OAP node, which
should exist in the object network already. We shall assume that a controller exists on
top of all the objects and each object knows the address of the controller. However, the
controller only knows the address of each operation predicate node when an operation
network is constructed.
and therefore knows which variable instances are associated with, and in what
order in, each predicate node of the operation.
2. For each constant a, note that a can be an attribute of more than one object,
assume we know which variables of which predicates of an operation can be
i n s t a n t i a t e d by a and group all such (variable instantiated - variable) pairs
into a set B V I S a , where B V I S stands for Binding Variable Instances Set. For
an object predicate p(al,...,a,~), it can satisfy the operation f = fl A ... A f,~
through a predicate p(xl,...,x~) if the following conditions are held:
(a) Each object predicate node whose predicate symbol is pl determines a par-
tial solution, if exists, for B. If the partial solution is a complete solution,
stop.
4.7. CONCLUSION 85
(b) Each object predicate node whose predicate symbol is pl which has a par-
tial solution for B passes the partial solution to each object predicate node
whose predicate symbol is p2 which is connected to it through the common
constant(s) and asks each connected object predicate object whose predi-
cate symbol is p2 to expand the partial solution. This can be done in each
of the object predicate nodes whose predicate symbol is p2 by combining
the passed partial solution and the partial solution determined by itself. If
they are not compatible, stop; if the combined partial solution is complete,
stop.
(c) Each object predicate node whose predicate symbol is p2 which has a partial
solution for B passes the partial solution to each object predicate node
whose predicate symbol is p3 which is connected to it through the common
constant(s) and asks each connected object predicate node whose predicate
symbol is p3 to expand the partial solution. This can be done in each of
the object predicate nodes whose predicate symbol is p3 by combining the
passed partial solution and the partial solution determined by itself. If
they are not compatible, stop; if the combined partial solution is complete,
stop. This process is repeated until each of the object predicate nodes
whose predicate symbol is p,~ is processed.
4.7 Conclusion
In this chapter, we have presented the design of a parallel object-oriented simulation
environment. The environment provides an object-oriented interface that allows the
control and the communication aspects of active objects be easily specified. It also
allows complex objects be composed easily. Representing the control of each active
object as a production system, the environment considers the state space of each object
in determining the impact of any change made to the object.
While the idea of rule-based simulation is not new (see, e.g., [282] [387] [608]), our
approach converts a large number of active objects into a much smaller set of oper-
ations applying to sets of passive objects. As a consequence, common computations
can be shared among different objects. Compared to a fully distributed, asynchronous
approach, it avoids the problem of managing a large number of active objects when
the available physical resources are limited. An alternative object-oriented rule evalu-
ation approach has been also proposed for parallel environments which contain a large
number of relatively simple processing elements.
Chapter 5
Transition From A Relation To Object Model
Implementation*
Such systems include P O S T G R E S [557], Starburst [379] and O - Raid [153]. Both
ways have been successful and have their advantages and disadvantages. While the
revolutionary approach is focused on supporting abstract types from ground up and
allows the system to be finely tuned, the development cost and time is relatively great.
On the other hand evolutionary approach allows reuse of RDBMS software which is
cost-effective and could shorten the developing time of the software significantly. The
flexibility of the design and implementation in this approach is restricted and the
performance is bounded by the underlying system. In the following discussion we will
be focused on the evolutionary approach. We start on surveys of systems using this
approach and focus on the O-Raid system we developed at Purdue University.
I*pp .t on I
Programs [
I[User-Interface [I I
I User-Interface
SQL++Que~es~ y
] SQL++Query Processor ]
Read/Write l
Sets
Persistent Storage
O-Raid supports both inter-object referencing (or pointer referencing) and intra-
object referencing (or embedded object referencing, where an object is stored within
another object). In queries persistent pointers to user defined types in attributes of
a relation is allowed. A persistent pointer in O-Raid is represented by three integers,
object identifier (OID), relation identifier (RID), and a offset (OFFSET) [420] that
uniquely identify the object and its class. Objects, classes, and inheritance are sup-
ported together with a predicate-based relational query language. O-Raid objects are
compatible with C + + objects and may be read and manipulated by a C + + program
without any '~impedance mismatch".
90 C H A P T E R 5. T R A N S I T I O N F R O M A REL. T O O B J E C T M O D E L
RAID O-Raid
Tables o f
Tables o f
simple types and
simple types only any user-defined
e.g. integer, char types e.g. structures
and functions
dynamic loading and execution of method needs method symbol name as op-
posed to method signature. Thus when a class is registered we need to generate
a table mapping all its method signatures to corresponding method symbols.
Schema for databases spanning multiple sites In O-Raid the relations can be
replicated at all database sites (]ull replication), or the relation can be replicated
at selected set of database sites (partial replication). The replication of selected
fragments of a composite objects is also supported.
REGISTER_CLASS Document;
_1
-q Introduction [
...... i ii::oil])
-]-I Conclusion ]
type class Section spanning column 7 to 9 and is a pointer to object (The ] after
9; if 0, it means embedded object). 4 0 1 says that tuple id is 4, version is 0 and
1 means the tuple is used.
9 Gen_gethod_gap: Action: Compile the C + + file and generate the corre-
sponding object file (. o). Generate a table mapping all its method signatures to
corresponding method symbol names.
e.g. Document::Docurnent(char *, char *) is a method signature, and
___SDocumentPcT1 is a method symbol name, which dynamic loader can use
directly to execute the constructor method Document().
9 U p d a t e _ C l a s s _ M e t h o d : Action: The object files and method signature tables
created in the previous step are stored in the database. The table is stored in a
m e t a d a t a file called CLASSMETHOD.
// Document.h
class Section { // both raid9 and raidll
public:
char heading[TITLE_LEN];
char text[MAX_TEXT];
Section(char*t);
void printobj();
};
};
};
/ / Document.cc
/ / Constructor and Methods d e f i n i t i o n s
S e c t i o n : : S e c t i o n ( c h a r *t) {
strcpy(heading, t ) ;
s t r c p y ( t e x t , ">>") ;
}
void Section::printobjO {
if(this!=NULL) {
printf("Heading: Zs\n", heading);
}
}
// Similarly for Section9 and Section11
// For class Document
Document::Document(char *n, char *t) {
strcpy(name, n);
strcpy(title, t);
pintro_sec = NULL;
pindex_sec = NULL;
preplic_sec = NULL;
pconcl_sec = NULL;
}
void Document : :printobj () {
printf("Name: ~s\n", name) ;
printf("Title: Zskn", title);
pintro_sec->printobj();
pindex_sec->printobj();
preplic_sec->printobj();
pconcl_sec->printobj();
Figure 5.5: Source file Document.cc for Constructor and Method code.
5.3. O-RAID S Y S T E M DESIGN AND IMPLEMENTATION 95
Register Class
C++ Parser
I en_Relation
I en_Method Map
Iupdate-r176 I
Process order
Note: From left to right, column by column it is "tuple id", "version", "used flag",
"relation name", "attribute name", "start column", "end column", "level of object
indirection", "class name".
Note: In the last row "Document" is a class relation; 13 is the class id for that relation;
208 is the number of bytes for that class; "Document.o" is the name of the object file
in which the class is implemented.
Note: Columns left to right are "tuple id", "version", "used flag", "method symbol
name", "method signature".
r e g i s t e r c l a s s Document;
{* Register classes defined in Document.cc
into the database Comp *}
classread; {* Reread the existed classes *}
replicate; {* Action *}
quit;
Note: The comments of each command (in b o l d face) are put in between {* and *}.
effect as a relation. Compared with the global variable, temporary variable has
much less overheads in execution of queries.
Instantiate the Database We continue with~ our example. The database is in-
stantiated by submitting queries to the user interface as follows:
i n s e r t i n t o documents:<Document("ind_rep",
"Indexing and Replication Experiments")>;
/
c r e a t e v a r i a b l e @s: &Section("Introduction");
u p d a t e documents s e t d.pintro_sec = @s;
c r e a t e v a r i a b l e @s: &Section9("Indexing");
u p d a t e documents s e t d.pindex_see = @s;
c r e a t e v a r i a b l e @s: &Section11("Replieation");
u p d a t e documents s e t d.preplic_sec = @s;
c r e a t e v a r i a b l e @s: &Section('Conehsion");
u p d a t e documents s e t d.pconcl_see = @s;
Query Execution in O-Raid After a user query is parsed, related relations are
brought into the memory. The attributes of the relations involved in the query are
checked to see if they are of user-defined types, for example, Seminar is a user-defined
type. For attributes of user-defined types, e.g. the attribute s in the example s e l e c t
query, an object is constructed for each tuple in the relation c o l l o q u i a . Here each
tuple contains an entry for a seminar. The query predicate is then evaluated on the
constructed object and depending upon the true/false value the object is selected or
rejected.
If the user-defined methods are involved in the predicate, the methods signa-
tures are mapped to the methods symbol names. For example, the method sig-
nature Keys: : c o n t a i n _ k e y ( c h a r *) in the sample s e l e c t query is mapped to the
method symbol name _contain_key_4geysPc via the methods symbol table created
5.4. PERFORMANCE STUDIES 99
Graphical User Interface A graphical user interface called O-UI has been en-
gineered using Suite system [152] to allow access and direct manipulation of O-Raid
database relations and objects [434] (Figure 5.10). This interface facilitates the users
in composing their queries to an extent that parts of the user queries are provided
automatically.
Earlier, we had built a simple teletype interface for O-Raid called S-UI, which
accepted a query typed by the user and displayed the query result (if any) in a tabular
form. The interface was simple and portable but had several limitations. The display of
relations with a large number of tuples or attributes was difficult to view. The tabular
display of d a t a was awkward for relations containing objects. A flexible mechanism for
display of objects was desired. We wanted to display objects through a special display
method defined for that class, which specifies how the objects of that class should be
displayed[6]: Another limitation was that the query result could not be reused for
a subsequent query. This increased the effort required to obtain desired information
through a series of steps (query refinement). Also, the manipulation of relations could
only be done by specifying update queries.
To overcome these limitations we embarked on building the O-UI graphical inter-
face. We wanted to build the graphical interface based on the direct manipulation
paradigm [521], with features such as mouse based interactions, pop-up menus, win-
dows, icons, and graphical display of data. Another goal was to minimize the amount
of information the user has to know (such as query language syntax, etc.) and reduce
the d a t a that needs to be typed.
Relation InFo:
r e l a t i o n type: User Defined
que*-y t~4oe: A l l
number o? a t t r i b u t e s : 5
atag~_~eq
number oF tupla~* 7
+ .... + + ..... + + . . . . . . + + . . . . . . +
Tupla To Update*
id: 22| 4
uid: nixontl
lest_name: Nixon
Firat_name: Teresa
po~ition~ UG
Query Trans-
Table 5.1: Comparison of processing time (in ms) for select queries with objects
on 25 'tuples
5.4. P E R F O R M A N C E STUDIES 101
Table 5.4 and 5.5 contain the response time for s e l e c t query and u p d a t e query
under three replication schemes, namely full replication, selective replication and no
replication. In the selective replication scheme, the sections "introduction" and "con-
clusion" are fully replicated on the two sites. However, only a single copy of the "in-
dexing" and "replication" sections is maintained at sitel and site2 respectively. The
two sites can both be on a LAN, or one at local and the other across the Internet.
From the above d a t a we could see that the selective replication scheme shows strong
benefits over the fully replicated and the single copy schemes in the WAN as well as
in the LAN environment, considering the combination of retrieve and update opera-
tions [540]. The selective replication scheme allows users to fine tune the replication
and achieve high performance.
Replication The traditional scheme of replicating an object in its entirety, for in-
creasing the availability, would incur high performance and storage overheads when
applied to composite objects such as multimedia documents and large pieces of soft-
ware. Our extension allows a replication scheme, which allows replication of selected
parts (subobjects) of the composite object. Such composite objevt replication can be
used to tune the replication granularity to meet both the availability and performance
requirements of distributed applications, and at the same time minimize the storage
costs. For example, a "document" object may be a composite object consisting of
pointers to four section objects, namely the "introduction", "indexing", "replication",
and "conclusion". Each of these sections can be independently distributed and repli-
cated by choice.
Indexing We are extending O-Raid to support path indices [58, 295]. Path indices
allow efficient selection of composite objects based on the nested member attribute
values. The goa] is to identify the cost of creating and maintaining indices and the
performance benefits resulting from path indices. The study will help us develop poli-
cies regarding use of path indices for different applications. We are considering support
of indexing on methods that represent derived attributes. For methods with no argu-
ments, indices will be built after the method values are precomputed. This technique
of precomputation cannot be used for methods with arguments. In general, for these
methods there inay not be any efficient strategy for maintaining indices. However, we
are looking for a partial solution. We plan to identify characteristics of the commonly
occurring methods (with arguments) and develop suitable index structures for them.
Fragmentation We use object fragmentation as the basis for the transaction pro-
cessing mechanism, which to a great extent avoids intersite communications and block-
ing delays [584]. In this approach much of the transaction processing is handled at the
locM participant database level. This makes the scheme especially appealing in the
presence of local autonomy requirements. As opposed to the static fragmentation
schemes, this approach is based on a demand-driven dynamic reconfiguration of object
5.5. R E S E A R C H ISSUES 103
6.1 Introduction
6.1.1 Motivation
The development of complex software systems is a costly endeavor. If prototypes can be
rapidly constructed to test the structural and behavioral properties of these systems as
the developers gain more knowledge about their requirements, ,then complex systems
can evolve from a series of prototyping efforts [28, 29]. In this chapter, we take a
knowledge base modeling approach to evolutionary prototyping of software systems by
treating each prototype system as a high-level executable model of the target system,
which defines the structural and behavioral properties of the target system at any level
of abstraction (from a large program module to a single program statement) as desired
by the prototyper. The executable model evolves gradually through a series of schema
modifications and refinements to provide more and more details about the requirements
and implementations of the target system. At each stage of evolution, the model (i.e.,
the prototype) can be executed to test its functionalities and performance. All the
debugging, modification, and maintenance can therefore be performed directly against
the executable model throughout the software lifecycle as shown in Figure 6.1.
As we all know, all software systems are computer programs and, based on Wirth
[618] and Kowalski [332], we have the following formula: " P r o g r a m = D a t a S t r u c -
t u r e + Logic + C o n t r o l " . If a knowledge model can uniformly model all types of
software systems in terms of their (i) structural properties (corresponding to the data
structure aspect of a program and the control structure among program segments),
(ii) operations/methods (corresponding to the procedural semantics of program al-
gorithms), and (iii) knowledge rules (corresponding to the declarative semantics of
program logic and control), then any software system in the traditionM concept can be
evolutionary modeled by this knowledge model throughout its software lifecycle. Note
that, although the semantics represented by rules can be implemented in methods,
high- level declarative rules make it much easier for a prototyper to clearly specify the
semantics instead of burying the semantics in application codes and thus simplify the
tasks of testing, modification, debugging, and maintenance. It is not necessary to make
the traditional distinction among software systems (e.g., application systems, operat-
ing system, and data base management system) because all of them are executable
models of the underlying object-oriented knowledge base as shown in Figure 6.2. The
structuraJ and behavioral properties of all object classes which model programs and
application domain objects are stored in an object-oriented knowledge base under the
management of a Knowledge Base Management System (KBMS) and can be shared
and reused among the users of various application domains.
We have extended an object-oriented semantic association model OSAM* [564, 565,
634] with reflexivity and control associations as an extensible framework for KBMS-
supported evolutionary prototyping described above. The advantages of this approach
are three-fold. First, by using a single unified knowledge model and schema notation,
we eliminate the mismatch between the traditional data-oriented models [108, 266]
and the process-oriented models [142, 426, 452, 406] to support both structural and
behavioral prototyping within an object-oriented framework. Secondly, all types of
software systems, application domain objects that these systems deal with, and related
meta information can be uniformly modeled by the knowledge model and managed
aJad processed by an underlying KBMS, or the so-called "Next-Generation Database
Management System" [196, 4], which uses this knowledge model as its underlying
model. Thirdly, instead of serving as throw-aways or being limited to conceptual
design, the model of a target system can evolve from specification to implementation
throughout the software lifecycle as shown in Figure 6.1. We have also developed a
knowledge base programming language cMled K as a high-level interface to define,
query, and manipulate the knowledge base as well as to code methods [522, 523]. In
this chapter, we shall concentrate on the knowledge model itself and its application in
evolutionary software development.
Since rules applicable to the instances of a class are defined with the class, rules rele-
vant to these instances are naturally distributed and available for use when instances
are processed. Structural associations, functional associations, and control associations
are all called "class associations" as each of them specify an association between the
defining class and the constituent classes. A schema is defined as a set of class associa-
tions, which corresponds to a real world application. A sample entity class definition of
Student is given in Figure 6.3 to illustrate the skeleton of a class definition. A detailed
description will be given in the latter sections.
6.2.2 O b j e c t s and I n s t a n c e s
Objects are categorized as domain class objects (D_Class_Object) and entity class ob-
jects (E_Class_Object). Domain class objects are self-named objects which are referred
to by their values. Entity class objects are system-named objects each of which is
given a unique object identifier (oid). We adopt a distributed view of objects to sup-
port generalization and inheritance as in [345, 634] by visualizing an instance of class
'X' as the representation (or view) of some object in class 'X'. Each object can be
instantiated (as an instance) in different classes with different representations but with
the same oid. Each instance is identified by a unique instance identifier (lid) which is
the concatenation of cid and oid, where cid is a unique number assigned for each class
in the system. Each entity class object (and therefore all its corresponding instances
in different classes with the same oid) can be either persistent or transient. After a
user session ends, all the transient objects created in this session are deleted and all
the persistent objects are stored back into the database. A detailed discussion of per-
sistence can be found in [522]. Each entity class is associated with an extension which
is the set of all its instances.
attribute if its constituent class is an entity class. Multi-valued attributes are speci-
fied using the constructors "set", "list", and "array [size]". Note that an aggregation
association between two entity classes is interpreted as a bi-directional link to support
bi-directional navigation and to maintain the referential integrity of the knowledge
base. For example, before deleting a Department instance, the system can follow the
"major" link of Student in the reverse direction to identify those students who ma-
jor in this department and remove their "major:' links to this particular Department
instance.
Generalization. For each object class, one can use generalization (G) association
to specify its immediate superclass or subclass. Class 'B' is said to be a subclass or
specialization of class 'A ~ (i.e., there is a generalization association from ' A ' to 'B') if
for each object which has an instance in class 'B', it also has an instance in class 'A'.
Both instances have the same old and are conceptually connected by a generalization
association (G-link).
and rules are modeled as first- class objects. One can extend the data model by modi-
fying this set of meta classes. This kernel model also serves as the data dictionary as all
the object classes in the system are mapped into this class structure. One can therefore
browse and query any user-defined schema as well as the dictionary uniformly. Note
that Figure 6.4 illustrates the overall generalization lattice, and Figure 6.5 shows the
detailed structural relationships among those kernel object classes as we will describe in
the following sections. In our structural schema notation, (i) entity classes and domain
classes are represented as rectangular nodes and circular nodes, respectively: (ii) a gen-
eralization association is represented by a "G" link from a superclass to a subclass, and
(iii) an aggregation association is represented by an "A" link from the defining class
to a constituent class. Note that the root class "Object" is represented by a special
notation because it is neither an entity class nor a domain class. The sole function
of class "Object" is to serve as the collection of all the objects in the system. After
compilation, any user-defined class (e.g., "Person" and "Student" in Figure 6.4 will
be added to the class structure as an immediate or non-immediate subclass of either
"E_Class_Object" or "D_Class_Object", while at the same time the objects correspond-
ing to the class definition, associations, methods, and rules of the defining class will be
created as instances of the system-defined entity classes named "Class", "Association",
"Method", and "Rule", respectively. Note that this class structure is reflexive in the
sense that we use the model to model itself. For example, while any user-defined or
system-defined entity class is a subclass of "E_Class_Object", "E_Ctass_Object" itself is
also an entity class (represented by a rectangular node). Similarly, "D_Class_Object"
itself is also a domain class.
As any application domain (including the model itself) is uniformly modeled and
mapped into the kernel model, the class structure can be further extended at any
level of abstraction. For example, one can use the kernel model to incrementally
extend the model itself by either (i) adding new structural association types or intro-
ducing subtypes of existing association types (e.g., "Interaction", "Composition", and
"Crossproduct" [564]) by specifying their structural properties (in terms of existing
structural association types) and behavioral properties (in terms of rules which govern
the knowledge base manipulation operations on the instances of those classes defined
by the association types) or (ii) extending the definition of existing association types
(e.g., add new attributes "default_value", "null_value", "optional", "unchangeable",
and "dependent" [523], as well as their corresponding rules for association type "Ag-
gregation") so that more semantics can be captured in the schema and maintained
by the KBMS instead of being buried in application codes. Once a new association
type is defined, it becomes a semantic construct of the extended d a t a model and can
be used in the definition of any object classes (including any other new association
type). In such a way, the d a t a model itself can be incrementally extended to meet the
requirements of various application domains.
tural association patterns based on which the system can identify the corresponding
contexts (sub-knowledge-bases) that satisfy the intentional patterns. In general, each
association pattern can be defined as
where <op> could be either an "associate" ("*") or a "non-associate" (" !") operator
and < d i r e c t i o n > c a n be either ">" or "<" so that the defining class of <association-name>
is a/ways at the open side, i.e., the left-hand-side of ">" or the right-hand-side of "<".
One can also explicitly specify a range variable over a class in the association pat-
tern as "<vat> : <class>". For example, "g : Grad [maj or. name=' ' CIS ' ' ] *> [ a d v i s o r ]
p : P r o f e s s o r !< [ i n s t r u c t o r ] Course '~ specifies a sub-knowledge-base that contains
all the graduate students of CIS department who has an advisor (i.e., there is an %d-
visor" link connecting this student with a professor) who does not teach any course
(i.e., this professor is not connected through the "instructor" association with any
course instance), as well as their advisors and those courses which these advisors do
not teach. Here, g and p are variables that represent the graduate students and pro-
fessors satisfying the association pattern specification, respectively. Instead of using
a class notation, one can also directly designate objects by replacing class name with
any user- defined variable. For example, " t h i s * > [ a d v i s o r ] P r o f e s s o r " specifies a
context which consists of the particular student denoted by "this" and his/her advisor.
A context can be thought of as a normalized relation whose columns are defined over
the participating classes and each of its tuples represents an extensional pattern of rids
that satisfy the intentional pattern. A detailed description of more complex associa-
tion patterns and the use of association patterns to express universal and existential
quantifiers can be found in [522].
After a context is identified, one can use the context looping statement provided
by the system to manipulate objects over each extensional pattern. O n e can use range
variables to implicitly project over only those columns which he/she is interested and
eliminate the resulting redundant tuples. For example, the following statement will
print the name of each student who takes any CIS course. Note that we use range
variable s to do a projection over Student column and remove the redundant tuples so
that each qualified student will appear only once even if this student takes more than
one CIS courses.
lookup codes to simulate the function of the method (i.e., given some legitimate input
data, produce some legitimate output value by a table lookup). Or the prototyper may
feel that the method is still too complicated to code directly and wants to decompose
its implementation into program segments interconnected by a control structure. In
this case, the method implementation can be represented by a control structure of
its program segments which are modeled as object classes with their own methods to
define their functionalities. In other words, each program segment (whose size could
vary from thousands of statements to a single statement) can be modeled as an object
class along with a method (the default method name is "main") to represent the func-
tionality of this segment. To activate a program segment, one just sends a message to
an instance of the corresponding object class to invoke the proper method. Through
this decomposition process and, at each step, each method associated with an object
class is either represented by an actual or simulated program, or by a control structure
of program segments that model the method. Each control structure can be used by
the prototyping system for automatically generatblg the corresponding codes. As each
method is executable, the model of the entire software system is executable and can
gradually evolve into the target system by modifying and refining the executable model.
Thus, procedural abstraction and functional decomposition are also incorporated into
the proposed object-oriented framework. For the above reason, the meta model of the
"Method" class shown in Figure 6.5 consists of an execution mode and a signature of
its method name, parameter declarations, and the return type. Based on the execution
mode which is either "model" or "operational", the system can choose one of the fol-
lowing to execute: (i) a method_model object which is the prototype model (schema)
of a method implementation, and (ii) a piece of simulated codes or actual implemen-
tation of the method in some programming language. In Sections 6.4.1 and 6.4.2, we
describe the modeling of method implementation in terms of control associations and
method_model objects, respectively. A description of rules is given in Section 6.4.3.
the first class in Figure 6.6(8), and (ii) performs certain operation for each tuple of the
relation as described in Section 6.3.4. To sum up, each program segment in a method
model can be described by a triplet (C, M, P) where 'C' is an object cl~s, 'M' is the
"mMn" method of 'C' that performs the functionality of the program segment being
modeled, and ' P ' is a message passed to a specific instance of 'C' to invoke method
'M'. In other words, 'C' and 'M' can be thought of as the object-oriented procedural
abstraction of the program segment being modeled, and ' P ' represents the activation of
this particular program segment. Through an iterative process, any complex software
system can be modeled to any level of details at which point the prototyper can begin
to write actual codes in the target language.
The advantages of using method models are four-fold. First, instead of visualizing
each method as a black box, a method model provides a graphic representation of
method implementation to capture the behavior properties of a method. Secondly, the
method associated with a class that models a program segment can be further modeled
by another method model. The process can be repeated to any level of abstraction as
desired by the prototyper, and the lowest level of abstraction is each individual program
statement. Thirdly, a KBMS can use method models for an automatic generation of
codes in the target language where each program segment modeled by (C,M,P) will
be replaced by the actual codes of 'M' or the actual codes recursively generated from
the method model of 'M'. The resulting codes can then be compiled by the compiler
of the target language for execution. Fourthly, a KBMS can directly execute a method
model by using an interpreter to dynamically activate each program segment in a
control structure following the control association finks. Since all the structural and
behavioral information needed for execution are stored in the control association links,
the execution of a method model can be thought of as the processing of the set of
control association links which constitute the method model.
Structurally, each control association link can carry different behavior information
as defined by the following attributes where (1) "context_branch" and "sub_kb" are
defined by "Context_Looping", and (2) "test_branch" is defined by "Testing" as shown
in Figure 6.5.
(1) context_branch and sub_kb: a Context_Looping association can be specified by
a context_branch attribute whose value could be either "next" or "exit" to represent
the iteration or exit of the looping, respectively). Note that the defining class of a Con-
text_Looping association corresponds to the program segment which, when activated,
will generate a relation representing the sub-knowledge-base satisfying an intentional
association pattern. During the execution of a Context_Looping association, the sys-
tem will also keep a pointer to the relation (the value of "sub_kb") over which the
context looping is performed.
(2) test_branch: a Testing association can be specified by a test_branch attribute
whose value could be either "true", "false" (for modeling the "if-then-else" statement),
"otherwise", or any other value (for modeling the "case" statement) as shown in Figure
6.6. The defining class of a Testing association corresponds to the program segment
which can be activated to generate the proper value of "test_branch" based on which
the system can choose one of the possible control flows to follow during the execution
time.
The behavioral properties of each control association type are described by the
following algorithm of execution. We assume that for each process (in the case of
concurrent system) created by a user session, there is a "wait_set" for recording those
control association links which are waiting for synchronization. We also assume that
each entity class which models a program segment defines a method called "main" to
114 C H A P T E R 6. A N OBJECT-ORIENTED K N O W L E D G E MODEL
Case 1. There is a Sequential (S) association link L1 between class ' A ' and class
'B'. We activate the program segment modeled by class 'A'. Then, if there is no con-
trol association link starting from class 'B', then we activate class 'B' and terminate.
Otherwise, we continue to process the next control association link(s) from class 'B'
(i.e., those control association objects whose defining class is class 'B').
Case 2. There is a list of Parallel (P) association links between class ' A ' and class
' B I ' , 'B2',..., and ~Bn'. We first activate the program segment modeled by class 'A'.
Then, we fork n new processes in paralIel, one for each class 'Bi'. For each class
'Bi', if there is no control association link starting from 'Bi', then we activate 'Bi' and
terminate the process. Otherwise, we continue to process the control association link(s)
starting from class 'Bi ~.
Case 3. There is a Synchronization (Y) association link between class 'B' and class
' A I ' . There is also a set of Synchronization association links from class B to classes
'A2', 'A3',...,'An'. Let L1, L2,...,Ln represent these Synchronization association links,
respectively. We first activate the program segment modeled by class 'A'. Then, if
"wait_set" already contains L2 to Ln, then the synchronization condition is met and
we do the following: (1) remove L2 to Ln from the "wait_set", (2) if there is no control
association link starting from class 'B', then activate the program segment modeled by
class 'B'; otherwise, continue to process the control association link(s) starting from
class 'B'. Otherwise ("wait_set" does not contain all L2 to Ln), we terminate the process
which currently executes L1, and add L1 into the ~'wait_set".
Case 4. There is a list of Testing (T) association links between class 'A' and class
' B I ' , 'B2',..., and 'Bn'. We first activate the program segment modeled by class 'A' and,
based on the returned value, the system will choose one Testing association link whose
"test_branch" attribute value is equal to either (i) the returned value, or (ii) "otherwise"
if none of the test_branch values matches the returned value. Assume this chosen
association link is defined from class 'A' to class 'Bi'. If there is no control association
link starting from class 'Bi', then we activate the program segment modeled by class
'Bi' and terminate. Otherwise, we continue to process the next control association
link(s) starting from class 'Bi'.
Case 5. There are two Context_Looping (L) association links between class ' A '
and class ' B I ' and 'B2'. Let L1 represent the association link whose "context_branch"
attribute value is "next" (and assume which is defined from ' A ' to ' B I ' ) , ~nd L2
represent the association link whose "context_branch" attribute value is "exit" (and
which is defined from ' A ' to 'B2'). If ~'Ll.sub_kb" is null, then we activate the program
segment modeled by class ' A ' and return a pointer to a relation representing the sub-
knowledge-base over which the looping will be performed. The "sub_kb" attribute of
L1 will be set to this pointer. If %l.sub_kb" points to an empty relation or all the
tuples have been processed, then we do the following: (1) delete the relation, (2) set
"Ll.sub_kb" to null, (3) if there is no control association link starting from 'B2', we
activate the program segment modeled by 'B2' and terminate; otherwise, we process
the next control association link(s) starting from 'B2'. Otherwise (i.e., there are more
tuples to be processed), we get the next tuple and continue to process the next control
association link(s) starting from 'BI'.
6.4. BEHAVIORAL ABSTRACTION 115
evaluate the accumulated grade points and credit hours of this student in parallel. Note
that the updates of sl and s2 are performed in parallel and must be synchronized before
the execution can be continued. After the looping is finished, we get the GPA value
by dividing sl by s2. A message is printed if this student has a GPA lower than 2.0.
Finally, we return the G P A value. Note that in some cases it is necessary to introduce
entity classes which model null program segments in a control structure. For example,
the classes "null_l" and "null_2" in Figure 6.7 model the null program segments which
serve as the "fork" and "join" points of control flows, respectively. This example
shows that it is possible to model a method recursively to such a detailed level that
each program segment contains only a single statement. Naturally, the segment size
(i.e., the level of detail) in a model will be determined by the prototyper. By using a
graphic user interface as part of a prototyping environment, a prototyper can click the
mouse button to select any class in a method model and view the program segment
it represents as shown in Figure 6.7. A control structure of the kind shown in Figure
6.7 can be used by a KBMS to dynamically execute a method model or automatically
generate the proper executable code that implements the method as shown in Figure
6.3.
6.5 Conclusions
In this chapter, we take a knowledge base modeling approach to evolutionary prototyp-
ing of software systems by introducing a unified and reflexive object-oriented knowledge
model as an extensible framework for (i) capturing both the structural and behavioral
properties of any target system at any level of details, and (ii) reflexively modeling
the knowledge model itself as a kernel model so that all the meta information (struc-
tural and behavioral properties of objects) can also be modeled as object classes. Five
types of control associations (sequential, parallel, synchronization, testing, and con-
text_looping) are introduced for explicitly modeling the behavior properties of methods
in terms of control flow and message passing relationships between object classes. We
have developed a prototype of the knowledge base programming language K [522,523]
on top of ONTOS 2.1 [278] as the first step toward a full-fledged KBMS-supported
software development environment for supporting evolutionary prototyping. We are
currently extending the graphic user interface of OSAM*.KBMS [346] to support the
definition and processing of control associations. Any user-defined structural/behavior
schema will be translated into K code for execution and also mapped into the kernel
model for storage. A prototype processor which can dynamically interpret K code
and control association objects is also under development at the Database Systems
Research and Development Center of the University of Florida.
~fisfy
ePlo~ce
reqmrem9 .~
no n'~n~ee
yes
~:~?~
- , a t i t y . c 1 ~ 1 Student i s
~ssociations:
a" ~pecialization of Person;/* Student is a subclass of Person */
friend of Faculty; /* authorize Faculty to access the private and
~protected properties */
aggregation of
public: /8 definition of public attributes */
enroll: set of Course; /a a studen~ can enroll in a set of courses
*/
college.report: array [4] of GPA_Value; /* annual report of every
college year */
major: Department;
protected: /* definition of protected attributes */
S~: $#_Value;
methods: /~ t h e s i g n a t u r e of methods */
public:
method eval_GPA() : GPA_Value;
private:
method suspend() : void; /* no return value */
me~hod inform_all_instructor() : void;
rules:
rule CS_rulel is
/* after updating the major of a student, if the hey major is "CZS"
then ~he GPA of this student must be greater than 3.0,
otherwise we suspend this student */
triggered after update major
condition (%his.major.name = "CIS" I this.eval_GPA() > 3.0) /*
guarded condition */
othermise this.suspend()
end CS.rulel;
rule Studen~::General.rulel is
/* after suspendin E a student, if this s~udent enrolls in any
cours 9
then inform all the instructors of this s~udent */
~riggered after suspend()
condition this.enroll != NULL
action ~his.inform.all_instructor()
end General_rulel;
implementations: /* actual coding of me~hods */
method eval_GPA() : GPA_Value is
local sl, s2 : real := O; GPA : GPA_Value; /, local variable
declarations */
begin
context this *<[student] t:Tr~nscrip~ *>[course] c:Collrse
/* looping over a con~ex~ */
6.5. CONCLUSIONS 121
i ~ ~Sel+EList,EArray,
3'q
A !/_ ~ ' - /constitue~nLclass
:setof - i[ CgRu~etMeg~_C
C~
~ 9 na A
/ ~X'~ Sequential [ na~'- ~~ / [ | ~
ITel / . . . .
I I I..... I
T
~,~~ C3
0~
C
I I
m 8
O t
' I
O
I I I-I
Note: All the reettng~lar nodes shown here are entity classes which model the program seEements that
constitute a method implementation
6.5. CONCLUSIONS 125
S t u d e n t :: e v a i _ G P A 0 : GPA Value
i i i I
local s l , s2 : r e a l := 0;
GPA : GPA_Value;
G P A := s l J s 2 ~'.-:::::e~.>:~.~#~l
:.'.~:~'~-~..~'~:~:~;~'r'2~
:::::::::::::::::::::::::::::::: "::.-:~~::;~:':$~,~:.....~,,!::~-:.~~
!
] S] main 0
p
::.::~::::.':::!.:'~:':/'.:.,.:::::
~:&
7.1 Introduction
Object-oriented Analysis and Design (OOAD) is currently an active area of research,
and several OOAD techniques have been suggested for the Object-oriented design of
computer-based applications (e.g. [124, 141,147,148,184, 296,356,357, 358,355,359,
400,405,435,468,532,615]). Notable among the suggested techniques are: the method
of Coad and Yourdon [124], the approach by Meyer [400], the Respons!bility-Driven Ap-
proach by Rebecca Wirfs-Brock from Tektronix [616,617,615], Ensembles, which is on-
going work at ttewlett Packard led by Dennis de Champeaux [141], the Object-oriented
Role Analysis, Synthesis and Structuring method (OORASS) by Trygve Reenskaug at
the Seater for Industriforskning in Oslo, Norway [468], Frameworks by Johnson at
Urbana-Champaign [296] and the Demeter method developed by Karl Lieberherr at
Northeastern University [356,357, 358, 355, 359].
Recently, some studies that survey, compare and contrast the various OOAD ap-
proaches and techniques have appeared in the literature (e.g., see [617, 413, 187]).
These studies seek to categorize the various approaches by identifying their capabili-
ties, and their focus is towards identifying the particular effectiveness of one approach
over the other. In one particular study, Wirfs-Broek and Johnson [617] view the above
approaches as complementing each other. To our knowledge, there has been no study
that tests the efficacy of the approaches by applying them to actual, complex and real-
life modeling problems. This situation places the practitioners in a difficult position,
since nobody wants to commit scarce time and resources towards adopting a particular
approach that has not been adequately tested on industry-sized problems.
Adopting approaches that have been inadequately tested could also cause other
problems, since in practice, the analysis and design stages have important ramifica-
tions on the implementation stage. For instance, (as explained in [248, page 147]),
a "disjoint mapping" would result, if an OO design is implemented in a non-object-
oriented language. One of the strengths of the OO approach is the use of the same
language environment for the analysis, design, and implementation phases [26, 74].
That is, the analysis is done in terms of the objects that make up the actual system.
*CIOS Department, School of Business, University of Alaska-Anchorage, Anchorage, AK
99508, Email: afrs@acad2.alaska.edu
tMS/CIS Department, G S M , Rutgers University, Newark, NJ 07102,
adam@adain.rut gers.edu
128 CHAPTER 7. A P P L Y I N G OOAD TO AN INTELLIGENT GIS
The results of the analysis are transformed into a software design that is expressed
in terms of objects. Finally, the design is implemented also in terms of objects. This
consistency throughout the analysis, design, and implementation phases avoids the po-
tential mismatch that could result during the transition from one phase to the other.
Maintaining this consistency also requires that the OOAD used to carry out first steps,
namely analysis and design, be adequately tested for its real life application.
In this chapter we detail a modeling study that seeks to address the above issue.
Namely, we detail a real-life, complex modeling problem, and illustrate, step by step,
how to analyze the problem domain and design a model using one of the OOAD
approaches, namely the Responsibility-Driven Approach. We consider this study to
be a first step towards a practical analysis of the suitability of the various OOAD
approaches for modeling specific problems domains.
The chapter is organized as follows: in Section 7.2 we detail the characteristics of
the geographic database application that we model. In Sections 7.3 and 7.4 we discuss
the methodology that we adopt to develop our model~ and describe the Responsibility-
Driven Approach. In Section 7.5 we detail, step by step, our approach to developing
the geographic d a t a model. In that section we also detail how our model acquires
and handles knowledge about spatial contexts and user perspective. In Section 7.6 we
briefly touch upon the implementation of our Model, and show how the various features
of our Model and Query Processing System are used to process certain imprecise queries
by using an actual query processing scenario. We present our conclusions in Section
11.6.
results produced. This example shows that implementing even a semantically well-
defined operator such as "distance" could become a complex exercise, if we try to
incorporate the notion of user perspective and object representations in relation to
the perspective. Examples of other semantically well-defined operators include "in-
tersect" and "area". While several spatial database researchers have defined and
implemented such semantically well-defined spatial operators, very few of the im-
plementations incorporate the notion of dynamically deriving different user perspec-
tives and object representations. For details of previous work in spatial databases see
[223, 424, 101, 102, 36, 474, 249, 438, 237, 485,486,229].
In addition to semantically well-defined operators, we were interested in another
class of operators that are actively being studied in the literature. These are the ill-
defined or relativistic spatial operators. One prominent example of this is the study of
the operator "near" by Robinson [472], in which he developed a C program that uses
fuzzy logic and human machine interaction to derive an approximation of "near".
"Near" (or "close-to"), "between" and "adjacent-to" are examples of semantically
ill-defined spatial operators. Such operators do not have a precise definition in the
literature. Also, their interpretations change with user perspective. Thus, two towns,
for example, may be considered to be close to each other at one perspective, but not
so at another perspective. Similarly, two streets may be considered to be adjacent to
each other even though there may be a building block between them.
From the above discussion, it can be seen that spatial (geographic) databases differ
in character from conventional databases in the representation of inter-object relation-
ships. In conventional database applications, relationships among data objects are all
known beforehandand can therefore be represented explicitly in the database. In spatial
databases, on the other hand, numerous implicit relationships may exist among spatial
objects, and it is impractical to represent all of the relationships explicitly. Therefore,
several such relationships need to be derived dynamically. This necessitates the devel-
opment of new models and query processing strategies for efficient representation and
manipulation of spatial data.
In our study we develop a model that supports the following:
9 Defining high-level spatial objects from low-level d a t a elements.
9 Facilitating the explicit representation of certain naturally occurring relation-
ships among spatial objects (e. g. the containment hierarchy that is exhibited
by most spatial objects) and at the same time providing adequate facilities for
deriving, on a dynamic basis, the many and complex relationships that exist
among objects.
9 Incorporating the notion of user perspective and different object representations
in relation to perspective.
9 Facilitating the implementation of a class of semantically ill-defined (hereafter
will be referred to as imprecise) spatial operators such as "close-to", "between"
and "adjacent-to'. Here, the user must have the flexibility to specify his/her
own operational parameters for processing the operators.
9 Facilitating application flexibility i. e. , the ability to extend the model and its
implementation to other similar applications.
9 Encapsulating deductive reasoning that facilitates spatial query processing per-
talning to the imprecise query operators.
We are interested in applying our model to such application areas as districting
(electoral and water), and public utilities maintenance management. Districting is the
130 C H A P T E R 7. A P P L Y I N G O O A D T O A N I N T E L L I G E N T GIS
process by which a certain area of land is divided into several pieces, in order to satisfy
certain requirements and needs. For example, an electoral district may be drawn based
on the population size, composition of the population and other constraints such as
compactness ~ and contiguity ~ of the district. A pumping district may be allocated
based on the current population and expected growth of the proposed district as well
as the availability and ease of access to a water supply facility such as storage tank or
pumping station.
A system such as the one developed in this study would provide the tools required
for making the districting process easier. That is, the new geographic data modeling
and query processing techniques would provide the means for "interactive districting".
We are particularly interested in using our model and implementation for answering
the following types of queries:
9 What are the towns and counties which lie between districts X and Y?
9 What are the districts that are close-to the water source X?
9 Retrieve aJ1 the towns whose populations (each) exceeds 75,000 and which lie
between the pumping district X and town Y.
$Compactness can be defined (on a scale from 0 to 1) as the ratio of the area of a district
to the area of the smallest circumscribing circle [422]
w district must be connected in some sense, so that it cazmot be defined as an arbitrary
collection of smaller areas [422].
7.4. THE RESPONSIBILITY-DRIVEN APPROACH 131
In the next section we detail the development of our Spatial Model, using the
Responsibility-Driven Approach.
Classes
It should be noted that in addition to the above Classes, we identify more Classes
at a later stage in the Exploratory phase. This is detailed in later sections.
Our next task in the design process is to identify the overall responsibilities of the
system, as well as the responsibilities of individuals classes.
7.5. D E V E L O P I N G T H E D A T A M O D E L 133
Responsibilities
9 T h e r e s p o n s i b i l i t i e s o f t h e s y s t e m as a w h o l e are:
At this stage in the design process we notice that even though the Reference Fea-
ture subclass such as Country contain Non Reference Feature subclasses such as
Interstate Highways, Railroads and Rivers, some of these Non Reference Fea-
tures can be divided into composite segments. The segments are part-of such
Non Reference Features. Thus,
- Non References Features such as Interstate Highways and Rivers are com-
posed o~
* State-Segments which are contained entirely by States.
* County-Segments which are contained entirely by Counties.
. Town-Segments which are contained entirely by Towns.
- Non References Features such as State Highways composed o~.
* County-Segments which are contained entirely by Counties.
. Town-Segments which are contained entirely by Towns.
This composite arrangement pertaining to the real world requires that we de-
fine additional Concrete subclasses of Non_Reference_Spatial_Feature. These
are S t a t e _ I - H w y _ S e g m e n t , C o u n t y _ I - H w y _ S e g m e n t , T o w n _ I - H w y _ S e g -
meat, State_River_Segment, CountyAZiver_Segment, Town_River_Seg-
m e n t , etc. The spatial features pertaining to these subclasses are further sub-
divided into a composite arrangement, using the part-ofrelationship. The part-of
hierarchy is given below.
Each State_I-Hwy_Segment is a part-ofsubclass Interstate Highway. Each County-
_I-Hwy_Segment is a part-ofsubclass State__I-Hwy_Segment. Each Town_I-Hwy-
_Segment is a part-of subclass County_I-Hwy_Segment. In the same way, each
State_River_Segment is a part-ofsubclass River, and each County_River_Segment
is a part-of subclass State_River_Segment and each Town_River_Segment is a
part-of subclass County_River_Segment.
Other subclasses similar to the above, pertaining to the different levels of the
containment hierarchy are also identified and represented.
The Rule Class: a result of identifying responsibilities of the system
Another result that is derived from identifying the responsibilities of the system
is that, in order to process imprecise queries, it is necessary to incorporate into
the system a body of knowledge about contexts or user perspectives. In addition,
depending upon the problem domain, it may be required to store in the system
other problem-specific knowledge. For example, in an electoral districting ap-
plication, it may be required to store rules such as: All districts must have the
same population, and must have the same racial mix; the component regions of
an electoral district must be contiguous. We therefore, define another abstract
class: R u l e . In this class, we instantiate and maintain rules that are required
for the problem domain in question. Examples of such rules are "ancestors-rule"
(for reasoning about all the ancestors of a given object) and "perspective-rule"
(for reasoning about the correct context of a given query). We elaborate more
on these rules as well as other such rules later in this section, where we discuss
the responsibilities of individual classes.
The function and use of the R u l e class in our model is worthy of further dis-
cussion. The incorporation of rules in a spatial d a t a model to reason about
the objects and their relationships within the context of a database is, to our
knowledge, not available in currently existing spatial models.
7.5. DEVELOPING THE DATA MODEL 135
required is 8.
- If the population is between 150,000 and 200,000, then the number of fire
stations required is 4.
- For each school, the number of physicians required is 2.
- If the population is between 150,000 and 200,000, then the number of physicians
required is 10.
- The district must be made up of contiguous counties.
There may be several more conditions that are required for this districting pro-
cess. An important fact to be noted here is that the conditions may change
periodically.
The query that pertains to this application is: Is the combination of County X,
Y and Z an acceptable district?
In order to process this query, first the data pertaining to counties X, Y and Z
are retrieved from the database. The combination of their characteristics is then
tested against each of the conditions. If the conditions are satisfied, the district
is acceptable.
There are two possible ways of representing the numerous conditions in the
model. One way is to write procedural code in which all the conditions are
136 C H A P T E R 7. A P P L Y I N G OOAD T O A N I N T E L L I G E N T GIS
(i) Provides spatial features between itseff and another spatial feature.
(j) Provides(requests) spatial features adjacent_to itself(another spatial
feature).
2. The responsibilities of class Line Segment are as follows:
(a) Provides start-point and end-point of itself in terms of latitude and
longitude.
(b) Provides a line-id which is a unique identification of itself.
(c) Constructs high-level Reference_Spatial_Feature such as State. (This
responsibility is required in order to build the high-level object State
from the low-level line segments. Once the State is created, then it is
possible to construct objects that are contained by the State).
3. The responsibilities of class Reference_Spatial_Feature are as follows:
(a) Provides(requests) all the classes of Reference SpatiaJ Features it-
(another spatial feature) contains.
(b) Provides(requests) all the classes of Non Reference Spatial Features
it(another spatial feature) contains.
(c) Provides(requests) the Reference_Spatial_Feature(s) containing
itself(another spatial feature).
The responsibilities of class Reference_Spatial_Feature are inherited by ab-
stract as well as concrete subclasses that may be identified and added to
the model at a later stage in the design process. Concrete subclasses that
may be added through this process are instantiated with Reference_Spatial-
_Features.
We notice at this stage in the design process that the possible subclasses of
Reference_Spatial_Feature are Country, State, County and Town. These are
concrete subclasses which can be instantiated with spatial features such as
"USA" and "New Jersey" state. Thus, these above subclasses are identified
and added to the model.
Reference_Spatial_Feature's responsibilities are inherited by its subclasses
Country, State, County and Town. However, the implementation of the
methods corresponding to the responsibilities may differ depending on the
specific subclass. Consider for example, the method
Make_Reference_Spatial_Features_within, that corresponds to the responsi-
bility: "Construct Reference_Spatial_Features it contains". The Country
implementation of this method constructs the States that are contained
within that country. Whereas, the same method implemented for ~ County
constructs the Towns within the County.
We also notice that in addition to inherited responsibilities and thus meth-
ods, depending on the problem domain, each subclass may also contain
specific methods which are unique to that particular subclass. For ex-
ample, in an electoral districting problem, the subclass State may have
a specific method Get_districts_contained, which retrieves all the electoral
districts that are defined within that state. On the other hand, the subclass
Town may have a specific method Get_district_containing, which retrieves
those districts that the town is part of.
4. The responsibilities of class Non_Reference_Spatial_Feature are as follows:
138 C H A P T E R 7. A P P L Y I N G OOAD T O A N I N T E L L I G E N T GIS
Collaborations
In our model the following categories of collaborations are identified.
9 Collaborations between Reference_Spatial_Features and Line Segments - to es-
tablish boundaries of the reference spatial features, and to determine the fines
within the spatial features.
9 Collaborations between Non_Reference_Spatial_Features and Line Segments - to
establish boundaries of the Non Reference Spatial Features, and to determine
the lines within the spatial features.
7.5. DEVELOPING THE DATA MODEL 139
Interstate Highway, class River and class Railroad. In the same way, the class State (a
Reference_Spatial_Feature) contains one type of subclass of Reference_Spatial_Feature,
the class County, and one or more types of subclasses of Non_Reference_Spatial_Feature,
such as class State Highway, State I-Hwy Segment and State River Segment. This
ordering proves to be very useful in describing perspective l e v e l s - each level in the
containment hierarchy represents a single perspective level, such as Country level, State
level, County level and Town level.
We incorporate this view of the real world containment hierarchy explicitly in our
model by specifying that:
9 A Reference_Spatial_Feature at a particular level in the hierarchy can contain
not more than one other Reference_Spatial_Feature, and the contained Reference:
_Spatial_Feature must be of a different type (subclass) than the container Reference-
_Spatial_Feature.
* A Reference_Spatial_Feature at a particular level in the hierarchy can contain one
or more Non_Reference_Spatial_Features, and the contained features may belong
to different types of subclasses as long as those subclasses are not also contained
by any other Reference_Spatial_Feature.
Analyze Subsystems
The following subsystems are identified.
The collaborations between Reference_Spatial_Feature, Non_Reference_Spatial_Feature,
Line_Segments and Rules indicate the existence of a subsystem which is comprised of:
Spatial_Feature, its subclasses Reference_Spatial_Feature and Non_Reference_Spatial-
_Feature, and their respective subclasses such as Country and State. Thus, if at a
later stage a new subclass, such as "Neighborhood" is to be added to the model, this
could be accomphshed by extending this subsystem, without disrupting the rest of the
apphcation.
In addition to the Spatial_Feature subsystem, we also identified another subsys-
tem that results from the collaboration between class Reference_Spatial_Feature and
class Rule, and class Non_Reference_Spatial_Feature and class Rule. This subsys-
tem is comprised of: Rule and its subclasses such as 'r and "Object-
Representation_Rule". The advantage of having such a subsystem is that the addition
of a new class of rules at a later stage could be accomplished without affecting any of
the other classes in the model.
Create Protocols
This task involves specifying the implementation of the abstract classes and their be-
havior which is specified in the form of methods. The base classes as identified above
are: Spatial Feature and Line Segment.
The base and abstract methods for each of the classes so far identified are discussed
below.
* Base Methods.
The following base methods are specified for the base classes:
9 Abstract Methods.
These methods are defined when it is required to have a particular method be
inherited down a hierarchy with each subclass having a different implementation
of the method.
In our application, an abstract method Make_boundaryis described in the super-
class Spatial_Feature. This method is inherited down the hierarchy by the sub-
classes Reference_Spatial_Feature and Non_Reference_Spatial_Feature, and fur-
ther down, by their subclasses Country, State, County and Town~ and Inter-
state_Highway, State_Highway, County_Road and Town_Street. Here, Country,
State, etc., are each subclass of Reference_Spatial_Feature existing at the same
level of the hierarchy. As noted earlier in Section 7.5.1, the implementation of
the methods corresponding to the responsibilities may differ depending on the
specific subclass. Thus, the State implementation of the method Make_boundary
determines those line segments that form the boundaries of States (i.e., those line
segments which have two different States lying on each of their sides), and then
builds the boundaries of the States. Whereas, the same method implemented
for a County determines the line segments that form the boundaries of Counties,
and then builds the boundaries of the Counties.
We emphasize this point by giving another example: Consider, the method
Make_Reference_Spatial_Features_within, that corresponds to the responsibility:
"Construct Reference_Spatial_Features it contains". The Country implementa-
tion of this method constructs the States that are contained within that country.
Whereas, the same method implemented for a County constructs the Towns
within the County.
We list the abstract methods in our application, in Appendix 7.7.
9 Overloaded methods.
In addition to the Base Method, which is inherited down a hierarchy without any
change in its implementation, and the Abstract Method, in which the implemen-
tation may change down the hierarchy, we use another type of method, referred
to as Overloaded Method.
An Overloaded method is inherited from the Base Class down the hierarchy. In
an Overloaded Method, different implementations of the same method can be
described for the same class, by providing the method with different kinds of
information, in the form of parameters. This functionality is useful in our ap-
plication. For example, a spatial feature such as County may have a method
7.5. DEVELOPING THE DATA MODEL 143
Countrg
I Note: Slantedlinedenote"part-of"relationship
n~ainsI I
i I I , I
State I I l-SkateHwy River Railroad
\
nkainsI I . ,I
,ntains[
Non_Ref. Spat.
Feat-Segments NeighborhoodI I TownSlree~
This completes our discussion of the Spatial Data Model. The components of the
model, and the geographic containment hierarchy that we model, are summarized in
Figure 7 . 2 .
144 C H A P T E R 7. A P P L Y I N G O O A D T O A N I N T E L L I G E N T GIS
7.6 Implementation
The model was implemented using LAURE which is an object-oriented language de-
veloped at Bellcore by Caseau [88]. LAURE is a powerful knowledge representation
language based on sets. It is both an interpreted and a compiled language, and can be
used easily in both modes. This feature is especially useful during the system develop-
ment and testing stages by providing a fast prototyping functionality. LAURE supports
large programs, provides efficiency similar to C ++ , and offers a clean interface with C.
In addition, LAURE provides a deductive system with sound, efficient and complete
resolution of deductive rules, a feature that is very useful in our application' to reason
about user perspectives and object representation in relation to user perspectives, and
to process imprecise queries.
We give below, only brief details of our LAURE implementation, since a comprehen-
sive discussion is beyond the scope of this chapter. For a comprehensive discussion of
our implementation, please see [567]. A description of the class Spatial_Feature, along
with some sample queries and answers in LAURE syntax, is presented in Appendix
7.6. The class Spatial_Feature described in the appendix contains method-templates
(the actual code is not included here, since it is beyond the scope of this discussion) for
determining imprecise relationships such as "close_to", "between", and "adjacent_to".
For the purposes of our implementation, we used "raw" geographic line segment
d a t a from the U.S. Bureau of Census' T I G E R file [595]. The line segments that we
used pertained to the state of Rhode Island, U.S.A. Approximately 1500 low-level line
segments that covered a cross section of all the counties, towns, state highways, county
roads and town streets were loaded into the model, and then queries were posed to the
geographic database.
The queries that we posed consisted of both precise as well as imprecise topological
operators. Some query examples (in English) are given below. The actual query syntax
can be found in Appendix 7.6.
Q1. Add the boundary of "Bristol" county to State boundary.
Comment: Evaluates to "true" implying that the request was accomplished success-
fully.
Q2. Get the names of the counties contained by Rhode Island.
result: returns Bristol, Kent, Newport, Providence, Washington.
Q3. Get all the Non-reference-feature-contained of State Rhode Island.
Comment: returns Summit Greene Road, Plainfield Pike, Wallum Lake Road.
Q4. Is Providence town Close_to? Bristol town?
Comment: Here close_to? is an imprecise operator. Since an explicit perspective is not
provided, the system determines the possible perspective, using the embedded rules,
and then affirms that perspective with the user. Based on the user's response, addi-
tional information is assumed or computed. Then the result to the query is computed
and returned.
Qs. Get all the Towns that are Close_to~ Providence town.
Comment: The processing is similar to query Q4.
In addition to the above queries, it is also possible to combine query operators
to form conjunctive queries such as: "Get all the Towns that are close_to Providence
A N D lie between Cumberland and Cranston O R are adjacent_to Bristol". In all of
these cases, our implementation proved to successful and thus robust.
7.7. CONCLUSION 145
7.7 Conclusion
In this chapter we presented our experience in applying the Responsibility-Driven Ap-
proach to the design and implementation of a complex, real-life geographic application.
The approach's emphasis on identifying and designing object-classes based on respon-
sibilities rather than their characteristics proved to be very effective in achieving a
robust design and implementation that is close to user requirement and at the same
time enhancing the application's extensibility and maintMnability.
Future work includes investigating the applicability of our geographic model to a
varied set of problem domMns such as electoral districting and public utilities manage-
ment.
146 CHAPTER 7. APPLYING OOAD TO A N INTELLIGENT GIS
APPENDIX
A.1 List of A b s t r a c t M e t h o d s
1. Abstract Methods of class Spatial_Feature.
(a) Get_point_representation with null implementation.
("Null implementation" means that the method defined for the object in
question does not have any implementation. It exists as a template which
is inherited by the subclasses of the object. A method inherited in such
a manner by a subclass may have a real (non-null) implementation, corre-
sponding to the responsibilities of the subclass).
(b) Make_boundary with null implementation.
(c) Make_point_representation with null implementation.
(d) Make_min-max-x with null implementation.
(e) Make_min-max-y with null implementation.
2. Abstract Methods of class Reference_Spatial_Feature (superclass Spatial_Feat-
ure).
(a) Get_point_representation with implementation to get point representation
of Reference_Spatial_Feature.
(b) Make_boundary with null implementation.
(e) Make_point_representation with null implementation.
(d) Make_min-max-x with null implementation.
(e) Make_min-max-y with null implementation.
(f) Make_Re]erence_Spatial_Features_within with null implementation.
(g) Make_Non_Reference_Spatial_Features_within with null implementation.
3. Abstract Methods of class Non_Reference_Spatial_Feature (superclass Spatial_Feature).
(a) Get_point_representation with implementation to get point representation
of
Non_Reference_Spatial_Feature.
(b) Make_boundary with null implementation.
(c) Make_point_representation with null implementation.
(d) Make_min-max-x with null implementation.
(e) Make_min-max-y with null implementation.
It is worth noting that we make use of the Abstract Methods for such imple-
mentation details as loading the raw data which is originally at a low-level (fine
segments), and then constructing high-level objects such as States, Counties,
Towns and Roads from the low-level objects. This is a very useful and im-
portant functionality of our model because it proved to us that the model was
capable of reflective capabilities i.e., the model's components themselves could
be used for loading the raw data, and deriving high-level data and populating
the various classes that are described in the model.
7.7. CONCLUSION 147
A . 2 List of O v e r l o a d e d M e t h o d s
1. Overloaded Methods of Spatial_Feature:
In the following, "X", "Y" and "Z" represent spatial features.
(a) X close_to? Y.
Determines if X is close to Y.
(b) close_tol X.
Determines the spatial features that are close to X.
(c) Z b e t w e e n ? X, Y.
Determines if Z lies between X and Y.
7.7. CONCLUSION 149
(d) X b e t w e e n ! Y.
Determines the spatial features between X and Y.
(e) X a d j a c e n t _ t o ? Y.
Determines if X and Y are adjacent to each other.
(f) a d j a c e n t _ t o ! X.
Determines the spatial features adjacent to X.
eval> Bristol
Kent
Newport
Providence
Washington
James Clifford*
8.1 Motivation
The "three great d a t a models" [594] were created in response to a set of needs arising
in certain traditional d a t a management and processing environments, and to a large
extent they have been successful in meeting those needs. Today, however, the expanded
use of. and familiarity with, a variety of computers and software systems are generating
more sophisticated d a t a management and processing needs. Today's sophisticated
users are running into a kind of "brick wall" in the current generation of Database
Management Systems (DBMS), nearly all of which are based on one of these three d a t a
models. This phenomenon is, to be sure, not unique to the database arena; by and
large a~l areas of computer usage are experiencing the limits of today's software. The
growing revolution in expert systems, decision support systems, etc., all of which are
attempts to tackle ever more sophisticated problems for which traditional programming
languages and software development methodologies are largely inadequate, attests to
this fact.
Simply put, today's data models and DBMS's were largely designed for storing and
retrieving facts. (Recent work in the area of "object-oriented database systems" does
not seem to have digressed from this overall perspective.) While this functionality is
sufficient for many, if not most, of the applications and functions which the corporate
DBMS is intended to service, a growing segment of the DBMS user community, having
become comfortable, in many cases proficient, with the "just the facts, please..." mode
of use is now interested in having the system support much more of their needs. Among
the kinds of information needed are the following: opinions, expectations, judgments,
personal observations, histories, predictions, expert advice, hypothesized scenarios,
design versions, locations in space/time, simulations, sources of data, model or software
used to compute the data, etc.
Certainly most, ff not all, of these functions can be met by some combination of
the DBMS and a host programming language. But by and large the advantage of
a DBMS has been the accessibility of the information and the functionality of the
system to end users through an interactive query language. The "Host language ~-
DML" approach has, of course, always supported the transaction processing and report
production component of d a t a processing, but the interactive query language mode is
what has made a DBMS so attractive, because, by abstracting the general functions of
database querying into a general purpose set of querying functions, it allows access to
the contents of the database without the need ]or programming.
Today there are many research efforts underway to expand the data structuring and
data processing functionality of a DBMS to meet these expanding needs. The economic
realities of today's world would seem to doom most of these to failure, however, for two
major reasons. One is that each such effort has targeted, by and large, only one facet
of the problem, one potential user community, if you will, and the other is the growing
commercial success of today's relational systems and the SQL language in particular.
This chapter is an attempt to generalize the notion of an extended relational model.
Building upon the author's experience in one particular type of relational extension,
namely an extension to capture the semantics of the temporal dimension of data at the
model level ([116], [117], [123], [122],[119], [120]), this chapter investigates a model to
encapsulate a wide class of such extensions into the notion of a generalized functional
data type.
The basic model for the semantics of this expanded model, called the I n d e x i c a l
D a t a M o d e l ( I D M ) , is borrowed from intensional logic, an attempt to formalize
the pragmatic component of linguistic theory. An intensional logic looks at the phe-
nomenon of context as a major contributing component to defining the interpretation
of a language. As described by Pdchard Montague [414]:
lit was precisely consideration of such a situation that informed the development of the
Historical Relational Data Model (HRDM) [119].
8.2. T H E I N D E X I C A L D A T A B A S E MODEL 155
In general, we would like to allow a tuple to be only partially defined; i.e., if the
domain of an attribute Ai in relation R D O M ( A i , R) is the set of all functions in
V D O M ( A i , R) IDOM(AI'R), at any given time the tuple instance will be only a partial
function in this space. We omit the details of this point, but point out that it would be
analogous to our treatment of li]espans in [119]. In other words, the following points
would have to be addressed:
1. A notion of index span, similar to that of a lifespan in historical databases, would
need to be defined for each index
2. The issue of the homogeneity ([202], [119]) of the tuple in each of the index
dimensions would need to be addressed. In other words, proceeding from the
most to the least general treatment, each attribute-value pair could have its own
index span for each index, or each tuple could be homogeneous in all of its index
dimensions, or each relation could be homogeneous in all of its index dimensions.
Finally, we can define an i n d e x i c a l r e l a t i o n r o n s c h e m e R as a finite set of
tuples, r ----{ t l , t ~ , . . . t ~ } , on scheme R.
SNote that it is by allowhlg a different IDOM for each attribute of R that our model is
inhomogeneous.
8.2. THE INDEXICAL DATABASE MODEL 157
Dec ~ 10000
Jan ---* 20000
Jan --~
Feb --* 30000
Thus, the value in Figure 8.1 could equivalently be represented as in Figure 8.2.
I D M can make extensive use of this ability - - at the definitional, operational, or user
levels - - to view values in either of these two fashions. In addition, since the order of
the indices is irrelevant in these functions, they can be viewed in whatever order the
user deems appropriate to the task at hand.
11 = Observers =
{ H alderman, Ehrlichman, Dean, N ixon, Mitchell, Colson, Liddy }
I2 = Data_Time = {July, August, September, October}
I3 = Rec_Time = {July, August, September, October, November}
For simplicity, we will consider only a single relation on the following scheme:
P R O J E C T S = < ApROJBCTS, KPROJECTS, VDOMpRoJECTS, IDOMPRoJECTS
where:
1. ApI~oJECTS = { P N A M E , A P P R O P R I A T I O N , A P P R O V E R }
2. K P R O J E C T S = {PNAME}
3. V D O M p I ~ O J E C T S is as follows:
4. IDOMpRoJ~cTS is as follows:
IDOMpRojECTs(PNAME) --
IDOMp~oJ~cTs(APPROPRIATION)
{Observers, Data_Time, Rec..Time}
IDOMpRoJEcTs(APPROVER) = {Observers, Data_Time, Rec_Time}
! i
J L
D=r -- .~uuoU
J= n .+.*,ud J=n .Witc~+4~|
J~n Jan --
Fr -- 3do.u 9' ~ = 6 Nl~oa
G~
De= -- .~=louo
1= ~ ;ol,oo
Dic
l=n
~ Ni~o~
N,ze~
J
Fr Feb -- 6onoo F.b
F~6 Ns=o~ L I
EU=berg Bre~k.lm D*C -- ~ouOO
J
J=~ ~ ,Wt|ch~ll
J ~ J=n
Fab -- ~ol.~o Veb Mitchall
Indexical relations, like regular relations, are sets of tuples, and so the s t a n d a r d set-
theoretic operations - U, N, - , and x are defined over them. However, as in the
relational model, we restrict the application of these operators to u n i o n - c o m p a t i b l e
relations. The notion of union-compatibility must be expanded to encompass having
the same n u m b e r of columns over the same complex domains.
If r l on R1 and r2 on R2 are union-compatible, then
As pointed out in [119], the result of these operations is, unfortunately, often coun-
terintuitive. The result, for example, of the union of two relations r l and r2 will not
automatically "merge" tuples which refer to the same object during different, b u t pos-
sibly overlapping, indices. Following [119], we can define three object-based versions
of union, intersection, and difference, all of which rely on the concept of m e r g e a b l e
tuples.
Two relations rl and r2 on schemes R1 =< A1, K1, VDOM1, IDOM1 > and R2 = <
A2, K2, VDOM2, IDOM2 > are m e r g e - c o m p a t i b l e if and only if A1 = A2,/(1 = K2,
, VDOM1 = VDOM2, and IDOM1 = IDOM2.
Note that merge-compatibility requires that the two referenced relations have the
same key, and is therefore a stronger constraint than union-compatibility.
Two tuples tl and t2 on schemes R1 = < A 1 , K 1 , V D O M I , I D O M 1 > and R2 = <
As, K2, VDOM~, IDOM2 > are m e r g e a b l e if and only if
1. R1 and R2 are merge-compatible
2. their key value is the same over all indices, and
3. if the tuples are defined over the same index spans, their values must agree on
these indices
Condition 2 states that the tuples have the same key value, and thus are assumed
to denote the same object. Condition 3 states that at all indices in the intersection of
the index spans of the two tuples, each pair of corresponding attributes have the same
value. In other words, Condition 3 states that the two tuples do not contradict one
another.
T h e merge of tl and t2, (tl + t2) is then defined a~ the tuple ta where:
As pointed out in [119], however, we note that this definition can result in inhomo-
geneous tuples, because the index spans of the resulting tuple is not guaranteed to be
uniform across the attributes. Various alternative definitions could certainly be given
wherein the index spans of the resulting of the resulting tuple is adjusted in some way.
Further research is needed to determine how best to handle the question of homogeneity
or inhomogeneity in indexical databases. This and other problems with the Cartesian
Product operator in temporal databases are well-known ([396]).
PNAME
Water,ate Break-In
Water,ate Coverup
Ellsberg Break-In
We omit the definition of the analogous operators for the generalized indexical
database model. Suffice it to say that analogs of both of these operators could be
defined, and that they would take the following parameters:
9 an attribute A
9 a set of < index, index_value > pairs
9 a value (i.e., a traditional, atomic value)
For example, the following query makes use of the a - I F operator:
a-IF(APPROPRIATION=60000,3 Observer,3 i~ec_Time,3 D a f a J i m e E {Feb})
(PROJECTS)
would yield a relation that shows which projects were thought, by anybody (the
Observer), at any time (the Rec_Time), to have had an appropriation of 500000 some-
time in February (the Data_time). For the example data the Watergate Breakin sat-
isfies this query (both Halderman and Ehrlichman believed this in February) as does
the Ellsberg Brealdn (Halderman believed this in February). The result of this query
is therefore the relation in Figure 8.6.
The a - W H E N operator is illustrated by the following query:
a-WHENApPRovER=Nixo,~(PROJECTS)
which results in a relation showing PROJECTS ever recorded, by any observer, to
have ever been approved by Nixon, and it will only show those "perceptions" about
the PROJECTS.
New Operators
FUNCTION RESTRICTION This operator is intended to generalize the
Time-Slice operator that has been defined in temporal database models. Function
Restriction, symbolized by ,, evaluates the i-th index of an attribute A in relation r at
a specified value i.
~:rxAxIxi
tAPPROPRlATION.Rec_Time]dan (funding)
This query would yield the relation in Figure 8.7, showing what was recorded about
the appropriations for the projects as of January.
As is usuaJly done with a, we can generalize this operator to apply to multiple
attributes and indices, as well as to sets of index values rather than a single value.
Thus if r is a relation on scheme R, A is an attribute in R a n d / 1 ... I,~ are indices of
A in R, then
=
W ~ t e g g L t e ~,~ea.k- | n : Dec ~ 30000 Dec -- MiEchell '
Ottl Jan ~ Jan ~ 30000 Jan ~ Mitchell
Jan
Feb ~ 50000 Feb ~ Mitchell
P
Ehrlichman Dec ~ 30000 Ehrlichman ~ ' Dec ~ Mitchell' I
GO
Jan ~ 50000 Jan ~ Mitchel| ]
Feb Feb
Feb ~ 60000 Feb ~ &Iitchel|
~r~
i
t~
h~
8.2. THE INDEXICAL DATABASE MODEL 167
f 1,
== , _ . . . . . == 9 _ . . . . .
III III III III III 111 lrl III III Ill III III
l i | i n iI |
I I I I I l I ! I I I I
ii I II ,,, i ii
i t f t t
~ g ~ g
.e E
~ I
u
~ ooo ~ oo
i i i
f t f t f r
= g
I 1 1 T t !
g g
.~ ..~
'N
i I t I t
For example, Figure 8.8 show the result of the following query:
LAPPROPRIATION.Observer[Hald~rman (
gAPPROPRIATION.Data_Tirne[{ 3an,Feb} (
$(APPROV ER.Observcr[Ha|derman (
t AP P ROV En.Dat~-T'rneI{ j~,F,b} ( f u n d i n g ) ) ) )
which restricts the relation to Halderman's view of things, and further only to his view
of the Appropriations in January and February, and the Approvers in January and
February.
6APPROPRIATION.Rec--Time=Feb ( f u n d i n g )
would yield the relation in Figure 8.9 showing the Appropriations as they were recorded
in the database as of February.
Again, extending the operator to multiple attributes and indices, Thus if r is a
relation on scheme R, A is an attribute in R and I1 ... I,~ are indices of A in R, then
The query:
6APPROPRIATION.Rea--Tirne=Feb, APPROVER.Ob . . . . . . . EhrIichman(funding)
would yield the relation in Figure 8.10 showing the Appropriations as they were
recorded in the database as of February, and the Approvers as seen by Ehrllchman.
Halderman --
W6&er$ste B r e x k - l n ion -- 50000 ' Halderman Jan -- Nixon
J t'~
Feb -- Feb -- 60000 Feb -- Feb -- Hi:con
J
t~
GO
+
J 0
i.
Halderman -- : Dec
' Dec -- 40000 Jan - Nizon
Nix~ I
Jan 5(3000 Feb --
Feb -- Nizon
Halderman --
Feb 60000
9 Dec -- Mitchell
Jan -- Mite3tell
Jan -- Nixmt
Feb
Dea Mitchell ]
I Dec -- 30000 ]
Halderman
Jan
Feb
I Jan
Feb --
Mitchdl
Ni.~on
Nizo~ ]
N izon
ttalderman -- Jan 30000 F~.b N ixon
Feb 60000
0
~176
Dee --* 20000 " Dec ---* Mitchell ":
Jan --* 20000 Jan ~ Mitchell i
H alderman ---, J(lll -@
Feb --* 20000 Feb ~ Mitchell !
.?o |
9 i 84
Watergate Coverup Dec -.-, 30000 Dec --* Mitchell 0
Jan ---, 40000 Jan --, Mitchell
Ehrlichman --* Feb --*
Feb ~ 40000 Feb ~ Mitchell
t~
9 . ,
t,o Dec --* 30000 i Dec --* Mitchell"
Jau --, 30000 Jan ~ Mitchell
Halderman --. i Jan --,
Feb ~ 60000 i Feb --* Mitchell
i
i i l
Ellsberg Break-hi
I,
i Dec --* 50000 i Dec ---. Mitchell
I Jan --* 50000 ' Jan --* Mitchell
Ehrlichman ---* i Feb ---*
Feb --* 50000 I i[ F e b --, Mitchell
",,I
i.-a
172 CHAPTER 8. I N D E X I C A L DATABASES
of "lifespans" in H R D M ([119]), we can define for each Index, at either the attribute
level, the tuple level, or even the relation level, the concept of index spans to handle
this problem.
8.3 I n s t a n c e s of t h e I n d e x i c a l D a t a b a s e M o d e l
The Indexical Database Model is a general model which, we claim, generalizes many of
the notions found in a number of other proposals which have appeared in the literature.
For example, the Historical Relational Data Model (HRDM) [119] is an extension of
the relational data model with a single time index to represent the so-called "valid
time" of the data it manages. In IDM this would be a homogeneous indexical model
with a single index. In this section we recast the model of HRDM as an indexical
database model.
8.3.1 HRDM
9.1 Introduction
This chapter is a summary of our work in temporal conceptual models and query
languages [173, 178, 174, 179]. Most previous work in temporal database models and
query languages has been mainly in the context of the relational model of d a t a [528,201,
429, 293]; and to a lesser extent, in conceptual data models [508, 178, 632]. However,
these approaches have a fundamental pitfall, in that they fail to consider the semantics
associated with time. In this chapter, we describe a Semantic Temporal model based
on the Extended Entity-Relationship model (STEER), which distinguishes between
conceptual and temporal objects. A conceptual object, once it is created, can always
be referenced at any future time, whereas a temporal object, which we call an entity role,
has a specific existence lifespan. For example, information concerning a STUDENT
conceptual object can be referenced even after the student has completed his studies.
However, the role of that entity as an ENROLLED-STUDENT has specific start and
end times that define its lifespan. (STUDENT is the owner entity of ENROLLED-
STUDENT role.)
The STEER model characterizes the properties of entities (conceptual objects), en-
tity roles (temporal objects), and (temporal and non-temporal) attributes. It also de-
fines temporal constraints among entity roles, differentiates between temporal and con-
ceptual relationships, and provides rules for preserving temporal integrity constraints.
We complement our model by providing temporal query language constructs. The
query language is a temporal extension of GORDAS [I77, 176], which is a formal, high-
level and user-friendly query language for the Extended Entity-Relationship model.
The temporal query language distinguishes between temporal and conceptual ob-
jects/relationships. It Mlows selection conditions to retrieve attributes and relation-
ships of a role or an entity type, since attributes and relationships of a role type and
its owner entity type are public to each other and can be inherited. It also provides
natural and high level temporal element constructor operators that simplify tempo-
ral query expressions. Finally, it supports temporal version restriction operators and
allows multiple temporal scopes in a temporal projection.
The remainder of this chapter is organized as follows. Section 9.2 describes the
representation of time we use. Section 9.3 discusses the STEER data model. Section 9.4
presents constructs for temporal boolean expressions, temporal selection and temporal
projection. Section 9.5 describes the temporal query language. Finally, section 9.6
contains a conclusion and planned future work.
they become objects of interest to a company only when the company wants to hire
them. At this point, the company may still want to record previous information about
these persons. If an employee leaves the company, the employee remains an object of
interest as long as the company still wishes.
Each conceptual entity e has an existence time, denoted by ET, which is unrelated
to the concept of lifespan. The start time point S T of the existence time refers to
the time the concept of the entity is materialized. There is no end time point of an
existence time. The end time can be considered to be infinity in our model, because a
concept (an entity) once realized never ceases to exist. The only time that characterizes
an entity is the start time of its existence. Hence, E T = [ST, ~ ) . (We also use the
notation T(e) to refer to the existence time of an entity e.)
There are two important ramifications in associating existence time with entities:
1. We can define and treat future planning concepts using similar mechanisms to
those used for historical concepts.
2. We can enhance the power of query languages and simplify their constructs while
dealing with conceptual objects, by using start time point of existence time as
the earliest possible time the entity can be referenced.
An entity type is a set of entities of the same type; that is, entities that share the
same properties. An entity type is diagrammatically represented by a rectangular box
(see Figure 9.1).
1. Start time of the lifespan of an entity role must be greater or equal to the start
time of the existence time of the (conceptual) owner entity. This implies a top-
down approach in creation of role types; that is, before a role is created its
corresponding (owner) entity must exist.
2. A role type is restricted exactly to one owner entity type.
3. A role type can have only temporal attributes.
4. (Temporal) attributes of a role type are public to the owner entity type; that is,
an owner entity refers to these attributes as though they are attributes of the
owner entity.
178 CHAPTER 9. A TEMPORAL QUERY LANGUAGE
9.3.4 Non-Temporal A t t r i b u t e s
Attributes are properties of objects. Non-temporal attributes can be only properties of
conceptual entity types but not of role types. The value of a non-temporal attribute of
an entity holds over the entire existence time of the entity. We assume that the reader
is familiar with the properties of non-temporal attributes of the ER model [175], and
discuss only the properties of temporal attributes below.
9.3.5 Temporal A t t r i b u t e s
Each entity type E~ (role type RO~) may have a set of basic temporal attributes TAil,
TAil, ..., TAin, and each temporal attribute TAr is associated with a domain of
values dom(TAij). For example, a temporai attributes of the PERSON entity type is
Name,, and a non-temporal attribute is SSN (see Figure 9.1).
The following definitions are similar to those given in [178]. For roles, the temporal
value of each attribute TAi of ro, which we refer to as TAi(ro), is a partial function
TAi(ro) : T(ro) --+ dom(TAi). The subset of T(ro) in which Tdi(ro) is defined is
denoted by T(TA~(~o)). It is assumed that TA~ has a NULL (or U N K N O W N )
value during the intervals T(ro) - T(TA~ (ro)).
In the case of entities, the temporal value of each attribute TA~ of e, which we
refer to as TAi(e), is a partial function TAi(e) : ET(e) --+ dom(TA~). The subset of
ET(e) in which TA~(e) is defined is denoted by T(TA~(e)). It is assumed that TA~
has a NULL (or U N K N O W N ) value during the intervals T(e) - T(TA, (e)).
9.3. THE TEMPORAL DATA MODEL 179
The partial function that describes the values of a temporal attribute is also called
a temporal assignment [201, 179]. The subset of chronons during which a temporal
attribute is defined is called the temporal element of the temporal assignment.
Several types of temporal attributes exist:
1. A temporal single-valued attributes has at most a single atomic value for each
entity (role) at each time instant [t].
2. A temporal multi-valued attribute can have more than one value for an entity (a
role) at a given time instant [t]; hence, its domain is the power set P(V) of some
simple domain V.
3. A temporal composite attribute is a list of several component temporal attributes,
and its value for each entity at time instant It] is a concatenation of the values of
its components. The temporal element of a temporal assignment of a composite
attribute is the union of the temporal elements of the temporal assignments of
its components.
9.3.10 An Example
Consider the example database schema in Figure 9.1, which describes a simplified orga-
nization for part of a UNIVERSITYdatabase. The database includes the (conceptual)
entity types PERSON, STUDENT, FACULTY, COURSE, and SECTION. Any entity
9.4. TEMPORAL QUERY LANGUAGE CONSTRUCTS 181
instance that is a member of any of these entity types is associated with an existence
time. The entity types S T U D E N T and F A C U L T Y are subtypes of the entity type PER-
SON. The role types are diagrammatically represented by a dotted rectangular box,
and connected to their owner entity types. The role types and their owner entities a r e :
owner(LIVING-PERSON) = PERSON
owner(ENROLLED-STUDENT) = STUDENT
owner(CURRENT-FACULTY) = FACULTY
owner(VA LID-CO URSE) = CO URSE
owner(ACTIVE-SECTION) = SECTION
act-sections
e-students
active-sec ~ @ ~ course
section
sections sec-course
faculties
The value for the true_time [ Classification = 'Senior'] would be [911/86 , 8/31/87].
Next we define a (temporal) selection condition, which compares two temporal
elements using the set comparison operators =, 5 , _D, aatd C. When applied to an
entity type (or class), it evaluates to those entities that satisfy the temporal selection
condition. For example, consider the following temporal selection condition applied to
the ENROLLED-STUDENT entity role type of Figure 9.1:
This selects all ENROLLED-STUDENT entity roles whose classification was 'Se-
nior' during the period [9/1/86, 5/31/87]. The condition is evaluated for each
ENROLLED-STUDENT entity role individually, and returns either a Y E S or NO
answer. All entity roles for which the answer is Y E S are selected.
We also define temporal projection. This is applied to a temporal entity and restricts
all temporal assignments (attributes and relationships) for that entity to a specific time
period specified by a temporal element T.
Temporal selection conditions are used to select particular entities based on tem-
poral conditions, whereas temporal projections are used to limit the data displayed
for the selected entities to specific time periods. Temporal boolean conditions may
be used as components in the expressions for both temporal selections and temporal
projections.
QI: G E T < Name, SSN, < CName o f see-course, Semester, Year >
o f sections > o f STUDENT
W H E R E Address o f STUDENT = 'Arlington'
Here, the root entity type, specified at the end of the GET-clause, is STUDENT.
The WHERE-clause is evaluated individually for each entity in the root entity type,
and selects each entity that satisfies the WHERE-dause. In this query, each STU-
DENT entity who lives in 'Arlington' is selected. (Note that the Address attribute is
visible to STUDENT by being inherited from LIVING-PERSONvia PERSON as we
will describe in section 9.5.1.) The o] STUDENT in the WHERE-clause is optional,
and can be left out. For each selected entity, the GET-clause retrieves the student
Name, SSN (both inherited from PERSON) and sections, and for each of the student's
sections the CName, Semester and Year are retrieved. The connection names such as
see-course and sections are used to specify related entities of the root entity type in a
184 C H A P T E R 9. A TEMPORAL QUERY LANGUAGE
functional way as though they were attributes of root entities. Hence, the path sec-
tions of STUDENT specifies the SECTION entities related to each STUDENT entity
via the T R A N S C R I P T relationship. A full discussion of non-temporal GORDAS is
outside the scope of this work, and is given in [177, 176].
In temporal GORDAS, we will adopt the philosophy that a non-temporal GORDAS
query is also valid, and will default to the current database state. Hence, if a temporal
GORDAS query is specified with no temporal selections or projections, we will assume
that a snapshot of the database is taken at the time instant tno~ when the query is
evaluated, and the query is processed using this database state. This will make it
possible to specify both temporal and non-temporal queries on the database within
the same framework.
In section 9.5.1 we discuss temporal projection and introduce additional temporal
element constructor operators. Section 9.5.2 presents temporal selection. Section 9.5.3
describes temporal version restriction operators. Finally, section 9.5.4 introduces op-
erators that allow multiple temporal scopes in a temporal projection.
The term PERSON: [1/1/1985, 12/31/1990] at the end of the GET-clause specifies
that the temporal assignment for 'John Smith' is to be retrieved during the period
[1/1/1985, 12/31/1990]. On the other hand, the next query is non-temporal, and
displays the current (at time instant tno~) Address and PhoneNumber of 'John Smith':
As seen from query Q2, the temporal projection of selected entities is specified by
a temporal element at the end of the GET-clause. The temporal element may be
a time period (as in Q2) or may itself be derived from the database for each entity
(as in Q4 below). For example, suppose we want the full history of the Address and
PhoneNumber of 'John Smith':
This retrieves the values of address and phone number over the whole existence
time (ET) of the entity. If :ETis left out, only the current Address and PhoneNumber
(at time instant tno~) are retrieved.
9.5. THE TEMPORAL QUERY LANGUAGE 185
Temporal attributes of a role type are public to the owner entity type; that is,
an owner entity can refer to these attributes (through inheritance) as though they
are attributes of the owner entity. Similarly, (temporal and non-temporal) attributes
of an entity type are public to all associated role types. The definition of attributes
and relationships of a role type and its owner entity type as public to each other
gives queries the flexibility to specify selection conditions and to retrieve information
involving attributes of a role or an entity type by referring to each other's attributes.
For example, in queries Q2, Q3 and Q~, the entity PERSON is able to refer to the
attributes Address and PhoneNumber of the entity role LIVING-PERSON since the
owner of LIVING-PERSONis the entity PERSON. Notice that we can specify similar
queries to the queries Q2, Q3 and Q~ by referring to LIVING-PERSON explicitly, as
in Q5, Q6 and Q7, since they only display temporal attributes:
However, Q6 and Q7will only retrieve entities that are LIVING-PERSONs at time
t . . . . whereas Q3 and Q4 may retrieve deceased persons (since conceptual entities have
no end time) but then find that their attributes may be NULL at time t,~o~.
The projection of (temporal) attributes over a lifespan displays information about
a conceptual entity during the time period it participates as a particular entity role.
For example, in the next query, the history of the Address and PhoneNumber of 'John
Smith'is retrieved, during the time he was an enrolled student:
Here, the Address and PhoneNumber history are retrieved only during the lifespan
(LS) that 'John Smith ' exists in the ENROLLED-STUDENT entity role. If :LSis left
out, the current Address and PhoneNumber are retrieved if end time ET(LS) > t~o~; if
ET(LS) < t~ow, the entity will not be selected since it is not valid as an ENROLLED-
STUDENT any more.
The next query retrieves all sections that 'John Smith'has completed:
In this query, there is no need to project the query result over a time period since
the attributes Semester and Year, and the relationship CS (specified by see-course)
are non-temporal attributes and relationship of SECTION, and hence always exist. It
is this type of query that becomes cumbersome to specify when no distinction is made
between temporal and conceptual objects, as in [179]. For instance, if the root entity
SECTION of query Q9 is replaced by A CTIVE-SECTION, we get all sections that
'John Smith'is currently enrolled in:
186 C H A P T E R 9. A T E M P O R A L Q U E R Y L A N G U A G E
This query is implicitly temporal since it refers to the temporal entity role
ACTIVE-SECTION. The query displays the current (at time instant t~o~) sections
that 'John Smith'is enrolled in. The capability to express such temporal queries by
referring to an entity role without explicit reference to time is one of the advantages
of this model.
A temporal query may explicitly specify a temporal projection that is derived from
a temporal boolean expression. For example, suppose we want the history of Name,
Office and Salaryof each CURRENT-FACULTYentity role only when the value of its
attribute Rank was either 'Assistant Pro]' or 'Associate Prof ':
Ql1: G E T < Name, Office, Salary > o f C U R R E N T - F A C U L T Y
: [ ( Rank = 'Assistant Prof' ) O R ( Rank = 'Associate ProP) ]]
In this case, a different time projection is applied to each selected entity role based
upon the time that entity was an assistant or associate professor; that is, the time
restriction is correlated to each individual entity role.
When we deal with temporal intervals and elements in STEER, we need additional
functionalities that are not needed in other temporal query languages [178]. For in-
stance, [entity : ET] - [role : LS~ returns the time period (temporal element) when
an entity does not participate in a specific role. Hence, to retrieve the Name, SSN~
and Salaryof each faculty during the time period she/he is not CURRENT-FACULTY
(e.g. on sabbatical or working for industry), we write:
The idea of applying a temporal boolean condition to entity roles and entities can
be extended to temporal attributes. The true_time of a boolean condition reduced to
a temporal attribute name is represented as [[ temporal_attribute : time_period 7" This
corresponds to the true_time of the temporal_attribute during time_period. For example,
the next query retrieves the history of the Name, StudentNo, CName, Semester and
Year of enrolled students during the period they had a valid Classification (that is, a
Classification value that is not NULL):
Q15: G E T < Name, StudentNo, < CNazne o f sec-course, Semester, Year >
o f sections > o f E N R O L L E D - S T U D E N T : [ Classification : LS
When we de~l with time periods, we sometimes need to access the first and last
time points of temporal elements. For example, to retrieve the Name, SSN and Address
of all current students who lived in 'Arlington' when they first enrolled as a student,
we write:
Here, the temporal selection condition evaluates to TRUE ff [[ci 3 ST(LS), where
c = ( Address = 'Arlington'). The term ST(LS) means the start time point of a
lifespan. Note that ST(LS) is implicitly applied to ENROLLED-STUDENT since it
is the root entity role. This can also be written as ST(~ ENROLLED-STUDENT : LS
1).
188 CHAPTER 9. A T E M P O R A L QUERY LANGUAGE
The lifespan of an entity role can be a continuous time period. This may happen
if either an entity role has come into existence in the mini-world and never ceased
to exist, or an entity role has come into existence for a while then has ceased to
exist and has never reexisted in the mini-world. In order to support the concept of
continuous and discontinued lifespans in our query language, we introduce the keywords
C O N T I N U O U S and DISCONTINUED. For example, suppose we want to display the
courses that have been continuously taught every semester:
: ( [ NAME ]] : I N T E R V A L <INDEX>)
where the term [ N A M E ]: is optional and the term I N T E R V A L < INDEX >
is required. The term [ N A M E ~ is a true_time, where N A M E may be either a
boolean condition, or may be reduced to an entity name, an entity role name, or a
temporal attribute. The term I N T E R V A L < I N D E X > indicates a projection
either over a single interval if < I N D E X > is an integer or over a range of intervals
if ~: I N D E X > is an integer range. (Note that we assume that the intervals of a
temporal element are disjoint and in the canonical temporal element representation.)
As an example, the version restriction operator :( I N T E R V A L 1 ), when applied to
a C U R R E N T - F A C U L T Y e n t i t y role ro (Figure 9.1) restricts the temporal element to
the first interval of its lifespan. In this case, the term [ N A M E ]: is not used in the
version restriction operator :( I N T E R V A L 1 ). However, if the term [ N A M E ~: is
used in the version restriction operator such as :( ~ Address ~ : I N T E R V A L 1 ), then
when it is applied to a C U R R E N T - F A C U L T Y entity role ro (Figure 9.1) it restricts
the temporal element to the first interval of the lifespan of attribute Address.
The next query retrieves the Name and the first three Salary values for each faculty:
In this case, the SCOPE operator at the end of Salary attribute overwrites the
temporal projection at the end of the GET-clause.
9.6 Conclusions
This chapter was a summary of our work in temporal conceptual models and query lan-
guages [173, 178, 174,179]. Our model distinguishes between conceptual and temporal
objects, and characterizes the properties of entities (conceptual objects), entity roles
(temporal objects), and (temporal and non-temporal) attributes. It also defines tem-
poral constraints among entity roles, differentiates between temporal and conceptual
relationships, and provides rules for preserving temporal integrity constraints.
The query language is a temporal extension of GORDAS [177, 176, 178]. The
temporal query language derives its power from the distinction between temporal and
conceptual objects/relationships. It provides natural and high level temporal element
constructor operators that simplify temporal query expressions. These operators utilize
the entity existence times and the role lifespans in query formulations, without having
to refer explicitly to time wlues. They also use the concepts of boolean conditions,
true_times, and temporal projections [178].
Our query language allows temporal element constructor operators to be defined
over entities, entity roles and temporal attributes. It supports temporal version re-
striction operators and allows multiple temporal scopes in a temporal projection. In
addition, the concept of CONTINUOUS and DISCONTINUED temporal elements can
be used to specify conditions such as ALWA YS and SOMETIME from temporal logic.
Chapter 10
A D a t a M o d e l for Time-Series Analysis
10.1 Introduction
Researchers in the field of survey statistics often deal with observations of individual
units at a single point in time. This type of d a t a is called cross-sectional data. On the
other hand, in the field of econometrics, researchers use time series data. Time series
d a t a are series of observations of a single unit over several points in time. Often d a t a
analysts come across d a t a that is a combination of cross-sectional and time-series data.
This type of d a t a is known as pooled data [159].
For example, pooled d a t a would refer to any database describing every individual
of a group across a sequence of time periods. In the domain of finance, the description
of a market database is an example of pooled data. This database may contain the
end-of-day closing prices of all securities traded on the stock exchange. Like cross-
sectional data, this database contains observations on several securities and like time
series data, it contains observations over different periods of time. Thus, pooled d a t a
is important to a d a t a analyst because it contains both intertemporal dynamics as well
as individual information.
The broad goals of a d a t a analyst studying pooled d a t a are:
1. Study of an individual d a t a unit over time
2. Study of samples of d a t a units by summarizing data and drawing inferences from
these summary statistics.
Analysis of pooled data presents unique problems. The main problem encountered
when analyzing time series d a t a is the autocorrelation of error terms, while non-
constant variance is a problem when analyzing cross-sectional data. In pooled d a t a
the analyst faces these problems simultaneously. In addition, there is the problem of
finding correlations between cross-sectional disturbances of different individual units.
[328] has also pointed out the following difficulty. The relationship between dependent
and independent variables may be different for different individuals. It has also been
observed that the regression coefficients in time series equations change over time (ei-
ther systematically or randomly). A proposed d a t a model for pooled d a t a must give
analysts the capability of handling these errors.
In this chapter, we propose a d a t a model for time-series and pooled data analysis.
This model incorporates features for tempor~al and statistical data management. In
addition, the model provides an interactive environment for data analysis and a query
language that incorporates frequently used statistical operators. We also discuss d a t a
models for temporal and statistical databases proposed in the literature and explain
why no existing d a t a model completely captures the complexity of time series and
pooled data.
10.2 M a i n F e a t u r e s of T h e D a t a M o d e l
The main features of the d a t a model, developed for the analysis of pooled and time-
series data, are briefly discussed below. Each point is discussed in detail later with
relevant examples. The d a t a model for pooled data features:
1. A variable vector based d a t a model that conforms to the way d a t a analysts
visualize their problem. Data need not be fitted in the rigid framework of rows
and columns. Instead d a t a should be represented as vectors, with individual
d a t a items in a time series conforming to a user specified frequency. Each vector
has a function that specifies the value of the time series for time points that
haven't been recorded and some user-defined information associated with it,
e.g., lifespan, granularity.
2. Collections of these vectors are organized into semantic units termed Concepts.
Different Concepts can be brought together to form a hierarchy of Concepts.
Descendants of a Concept in the hierarchy would inherit the user-defined in-
formation from their ancestors. Descendants would also be allowed to override
the inherited information with user-specified values. (We note that the word
Concept is used in the singular and plural form throughout the text.)
3. Rules necessary to maintain semantic information, constraints and to trigger
actions based on conditions.
4. Built-in calendars which implicitly understands the date associated with each
d a t a item in a time series and the capability of defining other calendars. Data
manipulation routines work in close association with the calendar.
5. Uniform treatment of the different notions of time. One notion of time is a
linearly ordered sequence of points or intervals along the time line. Another
notion is the set of topological relationships between events (event X before
event Y or version 1, version 2 etc.). Both these notions of time are manipulated
in a uniform manner.
The d a t a model also supports two different timelines. Each element of a time
sequence is associated with a valid time and a transaction time. Valid time is
defined in [294] as "the time when the fact is true in modeled reality". Valid
time is used in Evenr Construction (explained later in the chapter). Transaction
time [294] of a database fact is the time when the fact is stored in the database.
Transaction time is used in creating a Concept_History and to allow the database
to rollback to a previous state (also discussed later in the chapter).
6. Version Management capability to account for d a t a and forecast revisions.
7. The capability of transforming d a t a of a particular frequency to a different fre-
quency.
10.2. M A I N F E A T U R E S OF THE DATA MODEL 193
8. The feature that constructs pooled data from time-series data. This is called
Event Construction. Different time-series can be "joined" together to create a
combination of cross-sectional and time-series data.
9. Sophisticated interpretation and handling of missing values in the data.
10. An interactive environment which gives the data analyst the following features:
9 freedom to create and store temporary data sets as versions of the original
dataset.
9 ability to store the steps used for data analysis
9 ability to backtrack during the analysis phase without much overhead
9 fast and efficient concurrent data access
9 a sophisticated graphical or icon-based user-interface.
11. A database query language which supports operators used frequently in data
analysis and metadata manipulation.
12. An interface to external mathematical and statistical routines.
The following section presents data models for temporal and statistical databases
that have been proposed in the literature. We discuss models which support a subset of
the features mentioned above. We also explain why no existing data model completely
captures the complexity of time series and pooled data and the rationale for proposing
this data model.
time-series with a "Calendar" and every element of the time-series with parts of that
calendar. Each element in the time-series would have a transaction time - the time
it enters the database and a valid time - the time that reflects when the fact actually
occurred. This is illustrated in the following section. Coupling d a t a manipulation
routines to the appropriate calendar is necessary and could possibly require the knowl-
edge of the relationship between two different calendars. Implementation of multiple
calendars in a temporal database have been described in [535].
Version Management and Change databases have been described in [428]. Though
temporal databases and change databases have traditionally been considered separately
in the literature, we adopt the viewpoint of [632]. They define a datatype that "carries
the most generic semantics of time". This datatype is used to develop a uniform
treatment of time.
Operations common in Relational Databases like Join and Select [126] have been
extended to deal with temporal data, e.g., [119], [528]. In addition, researchers have
extended the standard query languages (SQL, QUEL) to include temporal operators
[528] [488] [427]. [428] have described additional temporal operators like Time-Slice
and Moving Window. Aggregate and statistical operators have been described in [531].
These extensions to the standard query languages are further enhanced by including
sampling operators [436], event construction (similar to the event-join described in
[507]) and operators to handle missing values and transformations (changing from one
frequency to another). In addition, the query language should also be used to create
complex operators based on pre-defined and built-in operators (in the sense of abstract
d a t a types [552]) and have an interface to mathematical and statistical routines written
in other languages.
Data analysis is similar to engineering design where users have private copies of
data, which is analyzed externally. Analysts typically create different versions of the
data, making their own conclusions and storing them. [311] and [97] have described
a database environment for engineering analysis. We adopt their ideas to the domain
of complex d a t a analysis. Data analysis should also be tightly coupled with a so-
phisticated graphical user interface. [10] describe a graphical interface for temporal
summary management and [89] describe a graphical system for statistical databases.
We build on this research by defining a graphical user interface which includes the d a t a
manipulation operators described below.
Even though the above research contains many elements necessary in our work, no
d a t a model captures the entire scope of features required for pooled d a t a representa-
tion and manipulation. Furthermore, no d a t a model for temporal databases captures
the essential features necessary for statistical analysis of time-series data. Models for
statistical and scientific d a t a management do not incorporate the environment required
for d a t a analysis and provide weak support for temporal data management.
Time-series and pooled d a t a analysis is an integral part of empirical finance, mar-
keting, economics and scientific research. Thus, there is an imperative need to design
and implement a database model which incorporates the entire complement of features
discussed above. In the following sections, the important aspects of the proposed d a t a
model are discussed in greater detail.
be present with every time-series (M~) (if not supplied by the user, appropriate defaults
are used) and (b) Information optionally supplied by the user (M~). M8 consists of:
1. Name : The identifier of the time series to be used in data retrieval and data
manipulation routines.
2. Calendar/Granularity : a set of pre-defined time points. This item specifies the
calendar with which the time-series is associated. For example, the time-series
IBM-DAILY-CLOSING would be associated with the calendar AMERICAN-
BUSINESS-DAYS. This means that on every day in the calendar AMERICAN-
BUSINESS-DAYS, the time-series should have a value. Granularity is a speci-
fication of the points in time in the defined calendar that can potentially have
data values [508]. The defined calendar will thus determine the granularity of the
time-series. The advantage of associating a time-series with a calendar is that
there is no need to physically store the individual time points with the values of
the time-series. When the time-series is retrieved due to a query, the individual
time points can be generated using the specification of the calendar. This is
especially advantageous for time-series with large lifespans. Since the individual
time points are not saved on disk, there are large savings in disk space utiliza-
tion. Thus, all time points of the time-series are physically stored only when the
calendar cannot be pre-defined. This is possible in the case of randomly updated
time-series like tick-by-tick stock prices.
3. Exception-Set: is a set of time points (within the calendar) on which values of the
time-series are not recorded. For example, even though IBM-DAILY-CLOSING
should be recorded on every day in the calendar AMERICAN-BUSINESS-DAYS,
there may be an important announcement on a particular day that stops trading
in the stock. Thus the value of the time-series is not recorded on that day.
The exception-set will include such time points. Thus, the actual calendar for a
time-series is the set difference of Calendar and Exception-Set.
4. Lifespan : This indicates the start time and end time of the time-series. The
end time can be specified to be co. The lifespan is used in conjunction with
the calendar and exception-set to generate the set of time points for which the
time-series has values.
5. Update Mode : This indicates whether the time-series is derived from another
time-series(s) or is base data. If the series is derived, the rule for update is
specified here. Time-series are allowed to have a hybrid update mode. For
example, a time-series recording the value of an option will change whenever the
price of the underlying
6. Frequency : This specifies the frequency with which the time-series is updated.
The time of update refers to the valid time. Valid time is defined in [294] as "the
time when the fact is true in modeled reality". Frequency is always specified with
respect to the calendar with which the time-series is associated and may be a non-
trivial function on the set of time points in this calendar. For example, suppose
EMP, a time-series which records the level of employment in the country, has the
Calendar~Granularity: "the last day of the month unless the day is a holiday in
which case it is the preceding business day". The frequency of EMP would be
monthly. If a time-series is derived from other time-series, the frequency would
be the frequency of the base data or some function of it. For example, consider
the time-series DJIA and DJIAHILO. DJIA, the Dow Jones Industrial Average,
is a weighted average of the price of a given set of stocks. It is computed every
196 C H A P T E R 10. A DATA MODEL FOR TIME-SERIES A N A L Y S I S
GNP in Trillions
valid time trans time vMue
o3/31/91 04/30/91 1.6
o6/3o/91 07/31/91 1.5
o9/3o/91 10/31/91 1.4
M
Mr
Name GNP
Calendar/Granularlty AMERICAN-BUSINESS-DAYS
Update Mode Base Data
Frequency Last day of quarter. If holiday, then
next business day
Type User-Defined
Lifespan start- 1923 ; end- oo
M~
Forecast-Source WSJ; FRB
an element in the time-series is the same as the valid time of that element. Since
the time-series is updated every time there is a trade, e.g., buy/sell of the currency,
the frequency is specified to be "on-event". The type of the time-series is Step-Wise
Constant since the price remains the same between events aad every time there is an
event, the price is updated. For time-series Ask-price and Bid-price, the M~ part of
the user-defined information is the same and thus they can form a 2-ary vector.
The main advantage of the vector representation is that it reflects the way data
analysts perceive data. It also facilitates direct translation from vector manipulation
routines to actual database operations.
The representation of time-series vectors is different from the way time sequences
are represented in [508]. There, time sequences are defined as sequences of values
in the time domain for a single entity instance. Thus, time sequences are of the form
< S, (A, T)* > where S is the surrogate, A the attribute and T the time point associated
with A. In the proposed model, a time-series is in the form < (A, %)* >. The name
of the time-series is part of the user-defined information associated with it.
In the case of a 2-ary time-series, the representation is < (A1, A2, %)* >, where A1
and A2 are the two attributes which have the same M~. Note that M~ can be different
for components of an n-ary vector. However, two vectors with different frequency
cannot be dimensions of a 2-ary vector. For example, if the frequency of GNP is
quarterly and the frequency of EMP is monthly, they must be defined as separate 1-
ary vectors. Since there is a need to group these vectors in spite of the difference in
frequency, the idea of Concepts is introduced in the next section.
10.4 Concepts
Ideas similar to Concepts have been discussed previously in the literature. [509] define
a "family" as a collection of First-Normal Form (FNF) temporal and non-temporal
relations that have the same surrogate type. Concepts can be thought of as a collection
of relations but the definition presented below also allows the construction of a complex
hierarchy of Concepts with inheritance. Thus,;5~Concepts can be considered an object-
oriented extension of the idea of "families".
More formally, a Concept can be defined as a collection of n-ary vectors grouped
together to represent a semantic unit. These Concepts are called Basic Concepts.
Basic Concepts are Time-Series also and can be grouped together in a hierarchy to
form other Concepts. These Concepts are called Complex Concepts, and a hierarchy
of Complex Concepts is a concept tree. This is illustrated in Figure 1.
Figure 1 shows the Complex Concept ECONOMIC-ACTIVITY. This is a collec-
tion of Concepts describing different economic activity. The solid links in the hierarchy
describe an "is-a" link while the dotted links describe a "derived-by" link or a depen-
dency between two time-series. Concepts are shown in ovals while time-series vectors
are shown in rectangles.
The Concept ECONOMIC-ACTIVITY is described by the Concept US-
INSTRUMENTS, a collection of financial investment instruments, and USA-ECON-
IND, a collection of indicators of economic activity. The time-series GNP, INF
and EMP are the economic indicators recorded for USA-ECON-IND. The Concepts
DERIVATIVES and EQUITIES are types of the Concept US-INSTRUMENTS. Con-
cepts OPTIONS and F U T U R E S are types of the Concept DERIVATIVES while
STOCKA and STOCKB form the Basic Concept EQUITIES. Time'-series vectors
STOCKA and STOCKB are time series which record the price of the respective stocks
10.4. CONCEPTS 199
over time. These time-series also form the Basic Concept NYSE-STOCKS. As shown
by Figure 1, the data model allows a time-series vector to be a part of one or more
Concepts. The time-series STOCKA-MAR93 records the price of a European option
on STOCKA which expires in March 1993. This time-series is a derived time-series
since its value at any point in time is a function of several variables including the value
of the time-series STOCKA. STOCKB-JAN93 is a similar time-series. The time-series
STOCKA-MAR93 and STOCKB-JAN93 form the Basic Concept OPTIONS. As in the
case of time-series vectors, user-defined information (M,) is also associated with Con-
cepts. Concepts in the concept-tree hierarchy inherit M , from their ancestors. Only
the Name and Lifespan elements of Ms are specified for Concepts. The Update Mode,
Type, Calendar and Frequency are not specified since the time-series that constitute
the Basic Concepts in the concept tree may have different M~ and the semantics of
inheritance are ambiguous.
Part of the example in Figure 1 is used to illustrate the idea of Concepts and
describe the data model in greater detail.
There are several economic indicators watched by economists to track the state of
the economy. As shown in Figure 1, among these economic indicators are the monthly
inflation figures (INF), the monthly employment figures (EMP) and the quarterly GNP
numbers. If the nations' Economic Indicators were to be recorded over time, the
individual indicators must be recorded separately and there must be a way to group
them together.
In the proposed data model, individual indicators (INF, EMP and GNP) are rep-
resented as sequences of values in the time domain (since the observations of each
indicator over time is a unary vector). These time series are then grouped together by
the Concept USA-ECON-IND. The linkage between time-series GNP, INF and EMP
to Concept USA-ECON-IND is shown in Figure 1.
Economists could use USA-ECON-IND to see how the economy has performed
over a period of time. A snapshot of the economy would be given by the
Current_Value (CV), which is a cross-section of the economic indicators today. Each
Concept also has a Most_Recent_Value (MRV). MRV is a cross-section of the most
recent values of each time-series vector in the Concept. In the context of the example,
CV is determined by using the MRV and the type of the time-series. However, in
general, CV need not be a function of MRV. It is possible for the CV to be derived
from values of several periods in the past. For example, a time-series with type "Step-
Wise Constant" will have the same MRV and CV. However, a time-series whose type
is determined by a rule may have a different CV than the MRV. When any of the
components of the Concept change (a more recent observation is added), the MRV of
the Concept changes. At these time points the MRV _= CV. But at any other point in
the future the CV may be different from the MRV.
Logically, the Concept is an extension of a relational database view which" joins
all the component vectors of the Concept. To define USA-ECON-IND, it would seem
that GNP, EMP and INF should be joined. But, economic indicators are not always
recorded at the same points in time. For example, the GNP of the United States is
reported every quarter while figures for employment and inflation are reported monthly.
This is in contrast to interest rates which are recorded daily and the buy/sell price of
the US Dollar which is recorded almost every second !
The presence of time in the vectors and the fact that the time-series may be asso-
ciated with different calendars and have different frequencies baded on these calendars
complicates the join.. We refer to this type of join as an Event Construction and it is
discussed later in the chapter. Concepts can be difficult or impossible to express in a
200 CHAPTER 10. A DATA MODEL FOR TIME-SERIES ANALYSIS
temporal relational language like TQUEL [528]. This is discussed in a later section.
Table 2(a) shows the component time-series of the Concept "USA-ECON-IND"
and the MRV. The type of INF is defined by a rule. This rule states that the CV is the
sum of the MRV and the average inflation over the last twelve periods multiplied by the
difference between the present time and the valid time of the MRV. This is illustrated
in Table 2(b). Note that I N F ( - i ) in Table 2(b) refers to the inflation in the ith
period before the current one. Table 2(c) shows the Concept "USA-ECON-IND" as a
time-series. The time-series is derived by Event-Construction.
Forecasts and predictions must also be accommodated by the data model.
Economists make predictions/forecasts of several economic indicators and collect fore-
casts from several different sources. It is useful to assess the accuracy of these predic-
tions/forecasts as time-series reveal themselves over time.
Time-series are represented as < (A, T)* > where A is the value of the time-series
at a particular point in time, T. If A is considered a vector of the actual value (A,)
and the forecasted value (Af) or a set of forecasted values (from different sources), the
forecasts/predictions can be stored. The a,ccuracy of these forecasts can be evaluated
when the actual values are revealed. For example, consider the case where there is just
one source of forecast for the GNP. At any point of time the GNP time-series would
have values of Au and A, for all time points from [time-start,valid-time-of-most-recent-
update] and A from [valid-time-of-next-update,time-end]. Here time - end is the time
till which forecasts are provided. There are three constraints on the forecast and actual
values. These constraints are necessary because the model supports only transaction
time and valid time.
1. As, transaction-time < A,, valid time. The forecast must be entered before the
actual event occurs in the modeled reality.
2. Af , transaction-time < Af , valid time. Forecasts describe an event in the future
3. A,, transaction-time 2 A,, valid time.Actual values enter the database as soon
as or after the event in modeled reality.
The data model must also be capable of dealing with revisions of existing data.
Most often, economists receive preliminary estimates of time-series data which are then
refined and revised over time. It is useful to retain the preliminary data in addition to
the revised data because it helps in:
1. assessing the impact of errors in prediction using the preliminary data.
2. assessing the quality of information of a particular source of information.
3. assessing the magnitude and number of revisions in the data 13491.
In the data model, revisions and preliminary data are considered versions. But,
versions can be thought of as topological relationships between events, which is just
another notion of time. The data structure Concept has been defined as a logical
grouping of several time-series. This notion is extended to accommodate relationships
between different versions of data. This is explained with an example below. The
Concept USA-ECON-IND is generated by the data in the time-series GNP, INF and
EMP shown in Table 3. If GNP were revised once (Table 3(a)), INF revised twice
(Table 3(b)) and EMP figures were never revised, the Concept would have a "history"
of its own (different values at different points in time). A part of this Concept-History
(upto valid time 4) is shown in Table 3(c). This history is constructed by using the
transaction times of the entries in t,he time-series. An additional advantage of the
Concept-History is that it allows rollback to any previous state of the database.
10.4. CONCEPTS 201
(~)
M
Ms
Name INF
Type User-Defined
: CV = MRV +E~2=IINF(-i)/12,
( N O W - ttime M R V )
(b)
(c)
T a b l e 10.2: C o n c e p t U S A - E C O N - I N D @ t r a n s - t i m e x; v t i m e : valid t i m e , t t i m e
= trans time
202 C H A P T E R 10. A D A T A M O D E L F O R T I M E - S E R I E S A N A L Y S I S
GNP Revised G N P
trans time valid time val.ue trans time valid time value
1 0 d 1 0 d
a I
4 3 & 11 3
7 6 b 11 6 (
10 9 C 10 9 C
(a)
(b)
(c)
T a b l e 10.3: C o n c e p t - H i s t o r y ( d o e s n o t s h o w E M P )
10.5. RULES 203
The query language would always access the "most-recent" version in the Concept-
History by default. Versions are Step-Wise Constant, and thus the Current version is
always the same as the Most-Recent version . Additional operators to allow access to
other entries in the Concept-History are required in the query language.
10.5 Rules
Rules have been shown to be powerful in maintaining views, integrity constraints and
versioning in relational databases [554]. In the context of a relational database, time-
~series vectors could be thought of as relations and the Concept as a view. Rules provide
a natural way to maintain the Concept, MRV and CV. These rules can be either d a t a
rules or action rules [510]. Thus, they are of the form "if Condition then Action" or "on
Update do Action". Consider the case where a Concept is to be materialized every time
a component vector is updated. To do this, when the Concept is defined, the database
system would create a rule for every component in the Concept. This rule would specify
that an update to a component time-series would update the Concept. In the context
of our example, the rules defined by the database system would ensure that whenever
a component in the Concept USA-ECON-IND is updated, e.g., new monthly figures
for EMP are recorded, the rule would modify the MRV of USA-ECON-IND with t h e
new value. Note that an appropriate strategy for the materialization of Concepts and
Concept Histories has not been discussed. This will be addressed in a later chapter.
It has been assumed for most part of the discussion that the d a t a is append only.
But often, statistics are revised. For example, Base Years of indexes are changed
frequently. This may lead to changes in time-series that are dependent on the original
base year and in any conclusions drawn from these time-series. Rules can be used to
handle the semantics of a change in historical data. An extensive discussion of the
issues involved in retroactive changes to a database is provided in [183]
Rules can also be used to describe the finks between different time-series. These
finks are essentially mathematical transformations applied to one or more time-series
to generate/update other time-series. Rules would store the finks and the conditions
under which the mathematical transformations defined by these hnks are to be apphed.
This point is illustrated with an example from the financial domain. The example is
shown in Figure 2.
In the foreign exchange market, currency traders quote the bid price and ask price
for spot rates and forward rates of different currencies. Concept F O R E X - M R K T is
defined to capture this data. F O R E X - M R K T is made up of the daily, weekly and 3-
month ask price and bid price of the currencies, US Dollar (USD), French Franc (FFr),
German Mark (DM) and Pound Sterling (Stg). Figure 2 shows only the USD Daily
(USD.DY), USD Weekly (USD.WK) and the USD 3-Month time-series (USD.3MTH).
These time-series are of type "Step-Wise Constant" and thus MRV = CV. The trans-
action time of any entry to the database is also assumed to be the same as the valid
time. The later assumption is realistic in currency markets.
Assume we also need to maintain the value of a derivative instrument, the US
Dollar currency option over time. The Concept, C U R R E N C Y - O P T I O N - M R K T is
defined as a grouping of the time-series, OPT-DOLLAR-DM, O P T - D O L L A R - F R and
O P T - D O L L A R - S T G . These time-series record the value of options on the mark/dollar,
franc/dollar and dollar/pound exchange rate respectively. Thus, CURRENCY-
O P T I O N - M R K T will contain the historical and current values of the above options.
One of the determinants of the value of an option at any point in time is the current
204 C H A P T E R 10. A D A T A M O D E L F O R T I M E - S E R I E S A N A L Y S I S
price of the underlying asset, in this case, the US Dollar as quoted on the foreign
exchange market, e.g., USD.DY, USD.WK, USD-3MTH. Thus, the time-series OPT-
DOLLAR-DM, O P T - D O L L A R - F R and O P T - D O L L A R - S T G are updated:
1. when the option is traded over the counter or on the market. In this case the
value is just the price at which the option changed hands.
2. when there is a change in the value (price) of the underlying asset. When the
price of the US Dollar changes, the option must be revalued by an appropriate
valuation scheme [399] [263]. The value obtained from the computation is then
stored in the time-series. This in turn will update the MRV of CURRENCY-
OPTION-MRKT.
Thus, a change in one time series (e.g., USD.DY) causes a non-trivial series of
updates in other time-series. Rules provide a way to implement this schema. The
following rule system will accomplish the series of updates described above.
This example shows that even a simple dependence between time-series can involve
many computations. A more realistic model of the financial trading market would have
more relationships and links between different time-series. Modeling these interactions
and implementing the rule wake-up and update scheme without seriously impairing
performance are implementation issues to be dealt with in the future.
10.6 Calendar
A calendar can be thought of as a set of time points. A built-in calendar is provided
by the system and users can define their own calendars. When a time-series is defined,
the user must specify the calendar and frequency of update. By default, the frequency
will be on event. On-event means that the frequency is not fixed by a function on the
calendar. Instead, the update is a random event with a certain distribution (which is
not necessarily known). Updates are captured by the database in a predictable (deter-
ministic) amount of time, T where T is small enough for any element of an on-event
time-series to have its transaction time approximately equal to its valid time. When a
frequency is specified, the database implicitly knows the dates and times of all elements
in the time-series. These dates needn't be specified by the user. In sAdition, once a cal-
endar has been established as the frame of reference for a particular time-series, other
calendars can be defined on this base calendar. For example, suppose the calendar
associated with time-series IBM-STOCK is "American-business-days". Calendars like
"Holidays" and "Business-Hours" can be defined as a function of ':American-business-
days". Given the additional calendars, rules can be used to specify constraints for
real-world facts, e.g., IBM-STOCK will only have values in "Business-Hours" during
"American-Business-Days" excluding "Holidays".
10.7. TEMPORAL QUERY LANGUAGE 205
The operators LAG and AR are used for Vector Autoregression. Vector Au-
toregression has proven to be a successful technique for forecasting systems of
interrelated time series variables. Vector Autoregression is also used for analyz-
ing the dynamic impact of different types of random disturbances and controls
on systems of variables. It involves a system of equations that make each endoge-
nous variable a function of its own past (LAGS) and the past of other endogenous
variables in the system.
4. Aggregation Operators fike MAX, MIN, AVG, MED, frequency distribution cal-
culation. Extensions to TQUEL to incorporate aggregates and their semantics
have been proposed by [531]. Aggregates in time-series databases must incorpo-
rate three distinct semantic interpretations:
9 aggregate on time-series, e.g., average stock price over the time period
[0, T].
9 aggregate on cross-sectional data, e.g., the average salary of all employees
now.
9 aggregate on the time-series of aggregations on the cross-section, e.g., av-
erage stock price of computer industry stocks over the time period [0, T].
This would involve computing the average stock price of the computer in-
dustry at each time point between 0 and T and then averaging over these
values.
10.8. SPECIAL OPERATORS FOR TIME-SERIES DATABASE 207
1. indeterminate
2. not applicable
3. not available
4. actually zero but not explicitly mentioned in the database
The latter case is the easiest to handle and the indeterminate case can be clubbed with
the interpretation of "not available at this time". The problem of handling missing
data has been researched extensively in the database literature. [125] describes an
algebra for handling null values while [599] and [365] have a detailed treatment of
the "not applicable" and "not available" interpretations. The database will assign
a value of "NA" in cases where the value is not applicable. In a time-series with
the calendar "American-Business-Days', Saturdays, Sundays and specific holidays will
have the value "NA". Thus, once a calendar has been specified for a time-series, the
database will assign "NA" at appropriate time points. Users may define the value of
the time-series to be "NULL" or "0". "NULL" has the interpretation of indeterminate
or not available.
of model selection, parameter estimation and error analysis. A typical user session is
envisaged as one in which:
1. Users copy relevant time-periods of data into their own "work area". The work
area is a private sub-directory which is maintained by the database.
2. Users "refine" the data, by removing outliers, transforming the data using oper-
ators like lags, mathematical transformations (logs) or event-constructions.
3. Users construct scripts which are essentially strategies for data analysis. These
scripts would typically be composed of declarative statements in the query lan-
guage aa-ld would contain the logic and methodology for data analysis. For ex-
ample, these scripts would normally contain commands for regressions, error
analysis or diagnostics.
4. Since this is an interactive session, users will store temporary files. These files
would normally contain results of the data analysis and temporary data files. In
addition to the data files, users are expected to store the sequence of commands
that they used to get the results.
5. Users interface with graphical software in order to see diagrams like histograms,
residual plots or boxplots.
6. Users construct their own data analysis procedures using existing primitive build-
ing blocks or through the use of an external language.
7. Users interface with sophisticated mathematical and statistical libraries available
on the computer system.
Given the sophisticated environment required for data analysis, the database must
provide the following features:
1. A transaction management scheme that allows users to work on the same dataset
at the same time in private work areas, check-in and check-out datasets from the
main database and save and recover the temporary data files they create as well
as the scripts used for analyzing the data files.
2. Support for statistical, temporal and the operators outlined in this chapter.
3. Support for creation of scripts using the query language which can be augmented
by an interface to external mathematical libraries and graphical routines.
4. Support for the creation of complex operators in the query language based on
the primitive database operators, as described in [417].
10.11 Conclusion
In this chapter, we have defined the requirements of a database model meant for the
analysis of time-series data. We treat time-series as n-ary vectors and introduce Con-
cepts to logically group these vectors together. Different time-lines, transaction time
and valid time are supported in the model and different notions of time, e.g., versions,
time points on different calendars, are treated uniformly. The importance of Rules
have been discussed to maintain semantic integrity, derive time-series based on other
time-series or database transactions, for implementation of operators like Transforma-
tion and Event Construction and for uniform management of the different notions of
time. We provide an interactive environment that helps users perform data analysis.
The environment accounts for the fact that data is never updated by users and that
210 CHAPTER 10. A DATA MODEL FOR TIME-SERIES ANALYSIS
users keep copies of parts of the d a t a in their private workspaces along with d a t a ma-
nipulation routines. A query language that incorporates frequently used statistical and
temporal operators is provided. This includes the capability of creating new operators
based on the primitive ones and an interface to mathematical and statistical routines.
An extremely important issue that we do not raise in this chapter is : How far
should we go in building in extra functionality in the database to accommodate different
d a t a environments ? Building in extra functionality means bulkier database code and
high overhead. Also, the data model is not independent of the application. On the
other hand, not building in functionality, forces users to couple database systems with
external programs. This can be highly inefficient because optimizers aren't able to
optimize the external code. Also, users tend to be impatient with systems that must
be customized before use.
Our future research plans are briefly outlined below.
9 Materialization : We briefly described an immediate update strategy for Con-
cepts and Concept Histories. The cost analysis for different materialization
strategies is important for performance. A cost analysis of the strategies of im-
mediate update, deferred update, random update and hybrids, would determine
the appropriate strategy given the characteristics of the database. By character-
istics, we refer to the number and size of time-series vectors, the rate of update of
vectors and the frequency of queries on Concepts and their component vectors.
9 Query Optimizer : We have briefly discussed the optimizer in the context of
d a t a analysis procedures. But we have not specified the exact scope and role of
the optimizer with respect to the database environment proposed in the chapter.
Efficient Sampling of data, indexes for temporal d a t a to facilitate efficient search
and retrieval and stochastic modeling of the temporal data process to obtain
selectivity estimates are problems that must be addressed.
9 Indexing and Access Methods: Conventional access methods (B-trees) aren't of
much help because the d a t a is sequential. Also, unlike other database applica-
tions, sequential "browsing" is not a major issue. We believe the access methods
must reflect operations that are frequent and important in statistical data anal-
ysis. A more thorough analysis of d a t a analysis procedures will give us a better
idea of what access methods are appropriate.
10.11. CONCLUSION 211
ECONOMIC-ACTIVITY
US--INSTRUMENTS
USA-ECON-IND
OCKB
' ~ '
I /
I
~)PT-DOLL~R-
M~~OPT-DOLLAR-
D FR ] OPT-DOLLAR-STG
-OPTION
11.1 Introduction
Spatial databases have experienced enormous growth in application environments, such
as agriculture, environmental studies, geography, geology, city-planning, aero-
space industry etc. More recently spatial databases have attracted attention in the
database community. A considerable research has been done in physical implementa-
tion of spatial databases. This is particularly true of access methods for spatial data
[238, 483, 512, 230, 231, 39, 506]. On the other hand, abstract modeling and query-
ing of spatial data have received relatively less attention. The need for such a study
becomes even more important because of diverse techniques proposed for representing
spatial regions.
Like [440] we favor that the logical view and the physical implementation of spatial
data should be considered orthogonal issues. The users should be given a simple view
of data and freed of the worry of how it is physically represented. This is even more
important because physical implementation will continue to be a topic of study for
quite some time to come. Conventional database techniques are inadequate in spatial
databases because of the spatial structure implicit in spatial querying. We present
a model and an SQL-like query language called SpaSQL (read space-Q-L) for spatial
data. Without tying ourselves down to a choice of representation of spatial regions, we
propose certain desirable closure properties for them to make SpaSQL seamless.
11.1.1 Related W o r k s
Several techniques of physical representation spatial regions have emerged. One way to
represent a region is to lay it on a fine grid, and approximate the region by the set of grid
elements covered by the region. Another technique is to describe a region by a chain of
arcs, and associating a biLt with each arc to encode whether the region being specified
is on the right or left of the arc. A third way is to view a region as a hyper plane in an n-
dimensional space, and use techniques of computational geometry to manipulate them.
CROP
cregl wheat
creg2 corn
granule. This is not the situation in spatial databases where the whole space is there,
all at once.
The remainder of this chapter is organized as follow. Our model for the spatial
database is presented in Section 11.2. In Section 11.3 we present our query language
SpaSQL and some exaznple queries. We have taken [440, 499] as samples of works
on querying in spatial databases. In Section 11.4 we discuss [440] in detail; we show
how our queries remove boolean seams arising from and, or and not, mentioned above.
The operators from [499] are expressed in SpaSQL in Section 11.5. We are able to
express all the queries given in [440, 499] with some minor exceptions. The chapter is
concluded in Section 11.6.
11.2 Our M o d e l
In this section we informally introduce our model for spatial data along the lines
discussed in the introduction. Querying in our model is covered in the next section.
Sin our more recent papers [109, 204] we use the term spatial eIemenl for a region in REG
11.2. OUR MODEL 217
fraction), and X(x) = 1 if x is an irrational real number. Although X takes only two
values, its description is very complex. This may be because the set of rational points
in [0,1] is difficult to describe and we may not want to consider it a region in REG. Note
that in functional notation X- l ( a ) denotes the inverse image of a under the function
X. Thus X-~ (0) is the set of rationals in [0,1] and X-1 (1) is the set of irrational in [0,1].
We want all inverse images to be regions in REG. Thus we may not wish to consider
X to be an spatial assignment.
r to a spatial region reg, denoted r[reg, is the tuple obtained by restricting every
assignment in r to reg.
A literal implementation of a tuple may have substantial redundancy, as the un-
derlying region is repeated from one attribute to another. We assume that a clever
implementation attempts to minimize such redundancy. Note that in spatial databases
inconsistency between different data layers (attribute values) is a common place due to
complexity of mapping spatial regions [227]. It is a nontrivial problem, and introduces
errors in spatial data. We feel that expert techniques for reconciling different attribute
values should be incorporated at the implementation level. When several techniques
for reconciling are available the choices should be made available to the user at a high
interface level.
CNAME CROP
eregl U creg2 story cregl wheat
creg~ corn
creg3 (3 creg4 U creg5 orange creg3 wheat
creg4 barley
creg5 rice
cregs polk creg6 wheat
SNAME CNAME
cregl U creg2 U creg6 IA cregl U creg2 story
creg6 polk
creg3 U creg4 U creg5 C A cregz U creg4 O creg5 orange
Figure 11.2: A n e x a m p l e d a t a b a s e
If r is a spatial relation over R, then the spatial domain of r, denoted [[r]], is the
union of the spatial domains of all its tuples. From closure properties of R E G , [r]] is
clearly seen to be a region. For example, for the state of the county relation shown in
Figure 11.2, [[county]] = cregl U creg2 U creg3 U creg4 U creg5 U cregs. The restriction of a
relation r to a spatial region reg, denoted r [reg, is the relation obtained by restricting
every tuple of r to the spatial region reg.
11.3. QUERYING IN THE MODEL 219
11.2.6 Weak E q u a l i t y a n d R e s t r u c t u r i n g
Suppose r and s are relations over the same scheme and have the same key. Then we
say that r is weakly equal to s, provided at every point p in the spatial universe, the
restrictions of r and s to {p} are the same (i.e. for every point p, r[{p} - s[{p}).
Two weakly equal relations differ in structure, but in some sense they have the same
information content. Sometimes in forming a query, it is necessary to view the relation
to have a different key. This is achieved by computing a weakly equal relation with
the desired key. The following theorem tells us when this is possible.
T h e o r e m 1 Suppose r is a relation with K as its key, and K ' is such that K ' is a key
of r[{p} for every point p in the spatial universe. Then there exists a unique relation
s, such that r and s are weakly equal, and K ~ is the key of s.
Example 11.2.2 Suppose for the county relation, instead of C N A M E we want to use
CRoP as the key. This is achieved by restructuring the county relation to obtain the
county ~ relation as shown in Figure 11.3.
CNAME CROP
cregl story cregl kJ creg3 U creg6 wheat
creg3 orange
creg6 polk
cregz story creg2 corn
creg4 orange creg4 barley
creg5 orange creg5 rice
11.3 Querying in T h e M o d e l
In this section we introduce the SQL-like query language SpaSQL. At the end of this
section we will give several interesting example of queries.
We assume that a database consisting of spatial relations is given. The set of
all SpaSQL expressions can be divided into three mutually exclusive groups: spatial
expressions, boolean expressions and relational expressions. Note that we want to allow
constructs like SNAME = C A in the queries. This causes a technical problem: SNAME
evaluates to a spatial assignment during query evaluation, but CA is a constant. This
difficulty is easily removed by identifying a constant c with the spatial assignment
which is a constant function over the universe ~ of space.
11.3.1 Spatial E x p r e s s i o n s
Spatial expressions, the syntactic counterpart of spatial regions, are formed from ~A~,
~r]], [AOB], [AOb~, U, N, and -,. Additional spatial expressions axe formed using built-
in functions such as Point(x,y), Circle(center,radius), Window(x • a, y • b), Bound-
ary(reg), Interior(reg) and Exterior(reg).
If # is a spatial expression, and 7- is a tuple, then /~(r), the result of substituting
r in /~, is defined in a natural manner. Instead of giving a formal definition of tuple
substitution, we illustrate it by an example.
220 C H A P T E R 11. A RELATIONAL MODEL AND SQL-LIKE QUERY
Example 11.3.1 Let us consider the county relation of Figure 11.2. [cRoP -~ wheat]]
is a spatial expression. Suppose v denotes story county's tuple. Then [cRoP --
w h e a t , ( r ) is cre91. The result of substituting r in the spatial expression [CNAME~
is cregl U creg2.
Suppose r and s are spatial relations with the same schema and key. To arrive at r
union s we first compute the union of r and s treating them as sets, and then collapse
each pair of tuples of r and s which agree on all key attributes, into a single tuple.
Computation of r difference s is similar; in union non-overlapping part is added while
in difference overlapping part is removed from a tuple of r.
select attribute-list
restricted_to spatial:expression
from relation-list
where boolean-expression
11.3.4 Examples
We assume that our database consists of the relations as shown in Figure 11.4. Al-
though the spatial domain of each of the relations is of type REG, underlying assump-
tion is that in the implementation city is represented as point, highway as a curve, and
county and state as polygons.
counties (COUNTY,STATE,CROP)
cities (CITY, COUNTY,POP)
hwys (HWY)
states (STATE, TIME-ZONE)
E x a m p l e 11.3.2 The query for the highways which pass thru L4, find the portion
which is inside M N is expressed in SpaSQL as follows.
select *
restricted-to [select * from states where STATE~- MN~
from h w y s
where ~HWY] Intersect ~select * from states where STATE = IA]
E x a m p l e 11.3.3 The query find all states whose boundary length is more than 2000
miles is expressed in SpaSQL as follows.
select STATE
from states
where Boundary([[STATE]) > 2000
E x a m p l e 11.3.4 The query find all the cities along with their population (POP), which
are within 200 miles of Chicago is expressed in SpaSQL as follows.
E x a m p l e 11.3.5 The query find all the counties in IA which grow wheat in a total of
more than 1000 square miles is expressed in SpaSQL as follows.
select COUNTY
from counties
where Area([select * restricted_to [cRoP = wheat~ where STATE = IA]) > 100
E x a m p l e 11.3.6 The query find all the counties in central time zone is expressed as
follows. (Note that a state can be in more than one time zone.)
222 C H A P T E R 11. A RELATIONAL MODEL AND SQL-LIKE QUERY
select COUNTY
from counties
where [COUNTY] Inside [select *
restricted_to [TIME-ZONE = central~
from states]
E x a m p l e 11.3.7 The query find the cities which are in the central time zone and
within 50 miles from the intersection of two highways and rice is grown in that area
can be expressed as follows. (Note that "from hwys H1 H2" is meant to create two
aliases H1 and H2 of hwys.)
select CITY
restricted_to [[select * restricted_to [[cRoP = rice~ from counties]
from cities
where [CITY] __ [select * restricted_to [TIME-ZONE = central] from states
and (Distance(IclTY],
[select * restricted_to [H1] N [H2] from hwys H1 tt2]]) _< 50)
11.4 S e a m l e s s n e s s of SpaSQL
tn this section we justify our claims of boolean seamlessness of SpaSQL. We say that
a query system does not have a boolean seam if it handles and, or and not of natural
languages symmetrically. Instead of formalizing this idea into a more precise notion, we
illustrate it through examples. We consider the above constructs of natural languages
and show how they are handled in PSQL of [440] and SpaSQL.
F i g u r e 11.5: T h e c o u n t y r e l a t i o n of F i g u r e in P S Q L f r a m e w o r k
SpaSQL: select *
from county
where IcrtoP = wheat~ # r or ~cRoP = corn] r ~.
To express this query in PSQL we need two variables x and y. The variable x
is needed to make sure that the crop is wheat, and y is needed to make sure that
the county is same as that in x. Note that the from clause "from county x y" in the
following expression is meant to create two aliases of the county relation. The PSQL
expression is as follows.
PSQL: select x.,
from county x y
wher~ ( x . C R O P = wheat or x . C R O P ~--- c o r n )
and x . C N A M E = y . C N A M E
SpaSQL: select *
from county
where ] C R O P = wheat] # r and ]CROP = corn~ # r
The corresponding transformation does not work in PSQL. To express the new
query in PSQL, we need three independent variables, and it is expressed as follows.
E x a m p l e 11.4.3 Now we consider not of natural languages. First consider the query
retrieve information about counties that grow wheat. In SpaSQL and PSQL it is ex-
pressed as follows.
SpaSQL: select *
from county
where ]CROP = wheat] 5~ r
PSQL: select x.*
from county x y
where x . C R O P = wheat and X . N A M E = y . C N A M E
Now we insert a not in the English query. The new query is retrieve information
about counties that do not grow wheat. In SpaSQL it is simply expressed by replacing
224 C H A P T E R 11. A R E L A T I O N A L M O D E L A N D SQL-LIKE Q U E R Y
PSQL: (select *
from county)
difference
(select x.*
from county x y
where x.CROP -~ wheat and x.CNAME = y.CNAME)
Thus we see that the complexity of a PSQL expression increases with every occur-
rence of and and not in the given natural language query.
11.6 Conclusion
In this chapter we have presented a model and a query language for spatial data. The
query language is perhaps as seamless as possible. SpaSQL can serve as a powerful
query language for retrieval of spatial data. In our model we used some ideas from
11.6. CONCLUSION 225
temporal databases. We feel that the work presented here only serves as a starting
point, because spatial databases are far more complex than temporal databases. This
complexity basically arises from the underlying spatial domains. The implementation
of spatial databases is truly a challenging problem. It should be noted that the im-
plementation of a spatial relation can be different from its logical representation. It is
possible, for example to implement our logical spatial relations as the spatial relations
used by PSQL. We hope that this model will serve as a basis for further research.
There is considerable similarity between spatial and temporal data. Perhaps a more
a p p r o p r i a t e term for all these forms of data is parametric data. Parametric d a t a have
the notion of an underlying parameter space. In case of spatial and temporal data, the
parametric spaces consist of spatial points, and time instants, respectively. The model
and SpaSQL presented in this chapter have been generafized to parametric databases
in [204]. We have also given an object oriented model for parametric databases in [109].
Chapter 12
Parallel Query Processing
12.1 Introduction
W i t h the advent of inexpensive microprocessors and high bandwidth interconnects,
coupling a large number of processors to form a highly parallel system has become
an increasingly popular method for improving the cost-performance ratio of computer
systems [129, 130, 353, 380, 577]. Recent work has shown that this method is also
applicable to database systems with increasing benefits as the queries become larger
and more complex. The objective of this chapter is to examine the various issues
encountered in parallel query processing as well as the techniques that are available for
addressing these issues.
Research on parallel processing over the last two decades has mainly focused on
scientific applications. In the past few years, there has been a growing interest in
applying general purpose parallel machines to database applications [94, 104, 260,
360, 361, 469]. Several research systems have also been developed to explore this
trend, including G A M M A [155], XPRS [555], DBS3 [46], and BUBBA [72]. Relational
databases have a certain natural affinity to parallelism. Relational operations are
set oriented and this provides the query optimizer lots of flexibility in selecting the
parallelizable access path. (This is in contrast to navigational type databases such
as those using the hierarchical and network paradigm.) Also, the parallelism tends
to be coarse grained, i.e., each task will involve a lot of I / O and processing, with
a well-defined and, in general, infrequent communication pattern between the tasks.
The difficulties associated with query parallelism arise because of the less than perfect
predictability of task times (primarily due to a dependency on the d a t a itself) and the
enormous search space that the query optimizer needs to consider in order to make its
access plan selection.
As pointed out in [498], the methods for exploiting parallelism in a database en-
vironment can be divided into three categories: namely intra-operator, inter-operator,
*IBM Research Division, Thomas J. Watson Research Center, Yorktown Heights, NY 10598,
U.S.A.
t IBM Research Division, Thomas J. Watson Research Center, Yorktown Heights, NY 10598,
U.S.A.
$IBM Research Division, Thomas J. Watson Research Center, Yorktown Heights, NY 10598,
U.S.A.
w Research Division, Thomas J. Watson Research Center, Yorktown Heights, NY 10598,
U.S.A.
230 C H A P T E R 12. P A R A L L E L Q U E R Y P R O C E S S I N G
and inter-query parallelism. First of all, parallehsm can occur in each operator within
a query in such a way that multiple processors work concurrently on a single database
operation. Here we will be concentrating on the join operations, as they are the most
expensive operations to execute, and also the most difficult to parallehze properly. In
intra-operator parallelism the major issue is task creation, and the objective is to split
an operation into tasks in a manner such that the load can be spread evenly across a
given number of processors. The second form of parallehsm is termed inter-operator
parallelism, meaning that several operators within a query can be executed in paral-
lel. This can be achieved either through parallel execution of independent operations
or through pipehnlng, 82 where multiple joins are pipehned so that the early resulting
tuples from a join can be sent to the next join for processing simultaneously. In ei-
ther case, the major issues are the join sequence selection and processor allocation for
each operation. Join sequence selection, which is also called query plan generation,
determines the precedence relations among the operations. Thirdly, parallehsm can be
achieved by executing multiple queries simultaneously within a multiprocessor system.
This is termed inter-query parallelism. For inter-query parallelism, the issue again is
processor allocation, but among the multiple queries.
Various techniques to address each of these issues have been proposed in the lit-
erature, albeit under different assumptions and generally with a focus on only one of
the issues. In this chapter, we explore the query parallelism based on a hierarchical
approach and a unified framework, so that the potential integration of the techniques
used to address each type of parallehsm can be illustrated. Both sort-merge joins and
hash joins are considered.
Due to the complexity of the problem, join sequence selection is still mainly based
on heuristics [105, 107], and there is generally no formal analysis (such as worst case
bounds) on the suboptimality of these heuristics. However, given a join sequence, the
processor allocation problem can generally be formulated as an optimization problem
[376,628], which can often be solved by the use of resource allocation problem methods
[270] (which we note in passing also have a wide range of apphcability to various prob-
lems in computer science [284, 549, 574, 626]). Generating the optimal join sequence
and processor allocation together through exhaustive search can be prohibitively ex-
pensive for complex queries, due to the enormously large design space. This is generally
not a t t e m p t e d in the literature even for the sake of validating the optimality of the
heuristics.
Preliminaries are given in Section 12.2. The various issues encountered in paral-
lehzing query processing are presented in Section 12.3. In Section 12.4, we discuss the
implication of the different parallel processing architectures. The various techniques
to address intra-operator, inter-operator, and inter-query parallelism are then consid-
ered. Section 12.5 addresses the issue of d a t a skew on intra-operator parallelism. We
then consider parallelism for multi-join queries in Section 12.6. Parallelism in a mul-
tiple query environment is explored in Section 12.7. Finally, Section 12.8 provides a
summary.
12.2 Preliminaries
In this chapter, we assume that a query takes the form of conjunctions of equi-join
predicates. A join query graph can be denoted by a graph G = (V, E), where V is the
4R.R5
R3 R4
a2.
1
(a) left-deep tree (c) bushy tree
(b) right-deep tree
set of vertices and E is the set of edges. Each vertex in a join query graph represents a
relation. Two vertices axe connected by an edge if there exists a join predicate on some
attribute of the two corresponding relations. We use IRil to denote the cardinality of a
relation Ri and I.AI to denote the cardinality of the underlying domain of an attribute
.4.
The execution of a query can be denoted by a query execution tree, which is
determined by the join sequence selected by the query optimizer. Three forms of query
execution trees are explored in the literatures: left-deep trees, right-deep trees, and
bushy trees. We note that left-deep trees and right-deep trees are sometimes referred
to as linear trees as they can be represented by a permutation of the vertices. In a
query tree, a leaf vertex represents an input relation, an internal vertex represents the
relation resulting from joining the two relations representing its child vertices, and the
query tree is executed in a bottom up manner. Conventionally, the left and right child
vertices of an internal vertex denote, respectively, the inner and outer relations of a join
[497]. In the context of hash joins (as explained in Section 12.2), the inner relation is
the relation used to build the hash table and the outer relation is the one whose tuples
are applied to probe the hash table. Examples of the three forms of query trees are
shown in Figure 12.1, where the inner and outer relations are indicated for illustration.
12.3 Issues
We next examine the issues encountered in applying the three types of parallelism. In
later sections, some techniques to address these issues are presented.
232 CHAPTER 12. PARALLEL QUERY PROCESSING
dependency and system fragmentation. Execution dependency means that some joins
cannot be performed until their operands generated by prior joins are available. Also,
after a sequence of processor allocations and releases, there might be a few processors
left idle since they do not form a cluster large enough to execute any remaining join
efficiently. This phenomenon is termed system fragmentation [106]. Clearly, execution
dependency and system fragmentation as well as the operational point selection have
to be taken into account for a better processor allocation efficiency, thus complicating
the minimization procedure for the query execution time.
Depending upon the join methods selected, different types of inter-operator paral-
lelism can be explored. With hash joins, an additional form of inter-operator paral-
lelism, pipelining, can be used, while with sort-merge joins, only parallelism of inde-
pendent join operations can be employed.
The execution of a hash join consists of two phases: the table-building phase and
the tuple-probing phase. In the table-building phase the hash table of the inner relation
is built according to the hash function of the join attribute, and in the tuple-probing
phase the hash function is applied to each tuple of the outer relation and the resulting
hash value is used to probe the hash table of the inner relation for matches. Recall that
in the context of hash joins, the left and right child vertices of an internal vertex in a
query execution tree denote, respectively, the inner and outer relations of a join. It can
be seen that in a left-deep tree, the result of a join is used to build the hash table for
the next join, and all hash joins thus need to be executed sequentially. In contrast, in
a right deep tree all the hash tables are built from the original input relations, and the
resulting relation of a join is input into the next join as an outer relation. The tuples of
the outer relation can thus be pipelined through the entire right-deep tree. Clearly to
maximize the throughput of the pipeline execution, we need to allocate the processors
so that all stages in the pipeline can proceed at the same pace: There should be no
bottleneck stages.
The bushy tree, on the other hand, is not restricted to a linear form, meaning that
the resulting relation of a join in the bushy tree does not need to be immediately used
in the next join. The resulting relation of a join can in fact be used as either an inner
or an outer relation for subsequent joins. This further complicates the problem and is
explored in Section 12.6.
be optimized. We will discuss this in Section 12.7 together with other variations on
hierarchical approaches to inter-query parallelism.
12.3.4 Remarks
We take a hierarchical approach on addressing the various issues on query parallelism.
The inter-operator parallelism needs to address the join sequence selection and pro-
cessor allocation issues. This can be built on top of the algorithm for intra-operator
parallelism, which focuses on balancing the load across the multiple processors allo-
cated to each join operation. As discussed in the previous subsection on inter-query
parallelism, alternative ways can be devised to exploit the algorithms on inter-operator
para/lelism and decide the processor allocation among the queries.
Finally, we comment on the CPU vs. IO requirements for parallelism. So far we
have used the term load in a loosely defined fashion so that it can either mean CPU
load or IO load. Most prior work assumes that the complex queries are CPU-bound
and the focus is on balancing the CPU load. However, this can be regarded essentially
as an issue of objective function selection. By properly defining the objective function
to be IO load for IO-bound cases and CPU load for CPU-bound cases, the algorithms
described in this chapter will work in either situation. For the case where some of the
queries are CPU-bound and some are IO-bound, a composite objective function can
also be devised [254, 255].
12.4 S y s t e m Architectures
Here we examine different processor coupling architectures. In database environments,
it is customary to classify the architectures according to the level of tile memory hier-
archy being shared.
In the shared everything (SE) architecture [62], which is also referred to as the
tightly coupled processor architecture, all processors share a common main memory
under a single copy of the operating system.
In the data sharing architecture, each node runs an independent operating system
and all the processing nodes have direct access to all granules in the database. There
are two variations. One is the shared disk (SD) architecture [410, 559, 641], where all
disks are shared. The other vaxiation is to have a shared intermediate level of memory
between the main memory and disks. This is referred to as the shared intermediate
memory (SIM) architecture [158, 323, 462, 639, 640]. The basic structure of SIM is
otherwise the same as the SD architecture.
Finally, there is a shared nothing (SN) architecture [551]. Under this approach, the
database is partitioned among multiple nodes, and can only be accessed directly by
the owning node. This is in sharp contrast to the data sharing approach. A high speed
interconnect is generally provided to facilitate message and data exchanges between
the nodes.
In the rest of the chapter, we will assume an SD architecture when presenting the
various parallel join algorithms. We briefly comment the general implications if other
architectures are used and some additional comments are given in the later sections
where appropriate. In the SN environment, there is an additional issue of data to pro-
cessor affinity. If a task is not scheduled on the processor where the input data resides,
an additional data transfer phase is required. This is in contrast to the SD architecture,
where all disks are equally accessible by any processors, and hence there is no data to
12.5. DATA S K E W AND I N T R A - O P E R A T O R PARALLELISM 235
processor affinity. This affinity issue is generally not pursued in the literature, even
when assuming an SN architecture. Ignoring this issue, parallel join algorithms based
on SD architectures are directly applicable to SN. The SE architecture offers more flex-
ibility for dynamic load balancing or task scheduling than the SD architecture, since
all processors share a common task queue. The SIM architecture, to a lesser extent,
also provides flexibility in task scheduling. Aside from this additional flexibility, the
parallel join algorithms for SD architectures are again applicable.
There is an additional issue involving the structure of inter-processor connections.
In a symmetric structure, the communication delays between the various pairs of pro-
cessors are roughly the same, as is the overhead. In an asymmetric structure, these
delays and overheads can be different for different pairs. For example, in a hypercube
like structure, it may be preferable to schedule the tasks related to the same database
operation or the same query in the same low dimensional sub-cube so that the commu-
nication penalty is minimized [37, 197, 437]. However, with the advent of high speed
interconnects and the communication processors to route data blocks, the difference
between single hop and multiple hop communication becomes less significant. In this
chapter, we will assume a symmetric structure.
o.
o ~ ~ ~ N
o.
c~
238 CHAPTER 12. PARALLEL QUERY PROCESSING
4 0 84 40
30
I [0EI
I
t0
effective load balancing will not be easy. Obviously, the problem grows with the number
of processors and the degree of data skew. The problem is particularly exacerbated for
joins, because of the quadratic nature of the join output size.
1 2 3 4 1 2 3 4
C A A C A A E B
A E F C
F C E
G G G G I K K~G
I K L
"I H L K L
J I J K
L L
F i g u r e 12.4: S n a p s h o t A f t e r F i r s t G M I t e r a t i o n
problem and this selection problem? The idea is simply this: We wish, in step 3 of
SMJ*, to spilt the largest remaining type 1 region up into smMler pieces, hopefully
identifying a large type 2 region in the process, tt would also be a good idea to make
this split as even as possible with respect to estimated subtask times. Our approach
is to determine the median value of the 2P sets of tuples in the largest type 1 region.
(There is one set of tuples for each processor and each relation.) But, because the tuples
are sorted, a selection problem algorithm applies, with a few minor modifications. The
GM Mgorithm has two very nice properties: First, GM automatically identifies, by
binary searches in the algorithm itself, the set of all tuples whose value equals the
median value. This set becomes the new type 2 region. Secondly, GM paralleilzes
quite naturally, each processor handling 2 sets of tuples. Now the tuples in the original
type 1 region have values which are either...
9 Less than the median value,
9 Equal to the median value (the new type 2 region), or
9 Greater than the median value.
The original type 1 region is partitioned into 3 sets according to the above alternatives.
The first of these sets may or may not exist. If it does, it will most likely correspond
to a type 1 region. The same comments apply to the last of these sets. However, since
the original region was of type 1, either one or the other of these regions must exist.
Probably, both exist, and are of roughly equal size. Figure 12.4 presents a 'snapshot' of
the GM algorithm of SMJ* at work. (Figure 12.2 can be thought of as representing the
initial type 1 region.) In Figure 12.4, GM has determined the type 2 region (associated
with the value G) corresponding to the median element. The area above the Gs is
a type 1 region, as is the area below. The latter is the larger of the two. Hence, in
the next iteration (not shown), GM will subdivide it and identify the type 2 region
associated with the value J, and two new type 1 regions ({H,I}, {K,L}). One more
iteration (also not shown) will partition the other original type 1 region, identifying the
type 2 region associated with value C, and two new type 2 regions ({A,B}, {E,F}). At
this iteration there are 7 regions in all, 3 of which are of type 2. In general the process
will continue, identifying the largest skew values (among others) with high probability
as it goes.
242 CHAPTER 12. PARALLEL QUERY PROCESSING
The right third of Figure 12.3 shows the performance of the SMJ* algorithm, under
the assumption of three GM iterations and the creation of a single multiplicity 2 region
(associated with the largest skew value G). In this case it is better to split the 10 tuples
in R1 with value G into two sets of 5 tuples each, shipping the 2 tuples in R2 with
value G to both processors. The cost for each subtask will then be 5+2+5"2=17, not
quite as efficient as performing a single subtask of cost 30, b u t better than performing
two subtasks of cost 10+1+10"1=21, as would be the case if the roles of R1 and R2
were swapped. The two subtasks are labeled G1 and G2 in Figure 12.3. Note that
the makespan is 17+12=29, associated with subtasks {G1} and {A,B} on processor 2.
Also note how close to perfect the load balancing has become.
For further details on SMJ*, including various technical improvements to the base
algorithm, see [623]. A hash join variant (called H J*) also exists [624], and both
algorithms are compared in [625].
Recently, [157] has introduced yet another hash join algorithm of comparable so-
phistication for dealing with d a t a skew. The basic approach is to introduce an initial
sampling phase to the hash join. This sampling phase estimates the degree of skew in
the two relations, and thus serves the same role as the scheduling phase in the SMJ* or
H J* algorithm. [623] contains a few remarks on the relative merits of these two basic
approaches.
There also exist algorithms to handle load balancing in the merge phase of a sort
on a single relation. For example, [284] is philosophically similar to SMJ*, employing
a variant of a selection problem algorithm. (In general, the load balancing problem
is technically easier for sorts than for joins, and the consequences of imperfect load
balancing less severe.) Similarly, [156] employs a sampling phase for sorts comparable
to that of [157] for joins. Each of these algorithms is quite effective at balancing the
load.
We first consider linear join sequence which does not allow for the exploitation of inter-
operator parallelism. In this case, the join operations must be executed in sequential
order, although intra-operator parallelism can be applied to speedup each join opera-
tion. A significant amount of research effort has been spent in developing linear join
sequences to improve the query execution time, with the focus mainly on uniprocessor
environments. The work reported in [511] was among the first to explore linear join
sequences for left-deep trees, and sparked many subsequent studies. Generally speak-
ing, the linear join sequences can be obtained by the following two methods: (1) the
greedy method, denoted by SGD, and (2) the optimal permutation, denoted by SOpT.
(Here, the subscripts correspond to the methods used.) The greedy scheme SG• can
be outlined as follows. First, the scheme finds the join which requires the minimal
execution cost. It then tries to join the composite with the relation which has the
minimal-cost join with the existing composite. The above step is repeated until all
joins are finished. It can be seen that the complexity of Saz) is O(IV[2). Heuristics
other than minimal-cost can also be used in Saz~ to derive linear join sequences. A
sophisticated scheme (referred to as the KBZ heuristic) to optimize multi-join queries
with an enlarged search space was proposed in [334]. The KBZ scheme can be viewed
as consisting of a 3-level hierarchy, where the top level picks a spanning tree from the
join graph, the next level selects an optimal root for a given tree through iteration and
the b o t t o m level generates the join sequence for a given rooted tree with the root as
the first relation in the sequence. The resulting query plan is derived by employing the
three respective algorithms. Furthermore, the benefit of using optimization techniques
such simulated annealing and iterative improvement (by moving to a better performing
neighboring state or join sequence iteratively until no improvement can be made) to
tackle large search space for query optimization was studied in [570]. The work in [570]
was further extended in [569], where three heuristic methods, namely the augmenta-
tion heuristic, the KBZ heuristic and local improvement, were evaluated comparatively.
The augmentation heuristic is mainly a general version of SaD with various alternative
heuristics to choose the next join. Local improvement means that a solution sequence
is improved by an exhaustive search in a small solution space, e.g. permutation of
a subset or a smM1 cluster o f the relations in the linear join sequence. It was found
in [569] that a simple method such as the augmentation heuristic can perform very
effectively, whereas more elaborate techniques such as simulated annealing do not fare
well. It was then speculated that until significant new insights into the characteristics
of the search space are obtained, it will not be profitable to experiment with com-
plex methods for optimization. Stonebraker et. al. proposed a two-step approach in
[255] to optimize sequential or linear join plans, with the emphasis on exploiting intra-
operator parallelism in each operator. In [255] a collection of good sequential plans
was first obtained based on buffer space considerations, and then parallelization of this
244 C H A P T E R 12. PARALLEL Q U E R Y PROCESSING
collection of plans was explored. In [107] the optimal linear join sequence, SOPT, was
implemented by a dynamic programming technique for comparison purposes. It was
reported that simple heuristics for linear join sequences have performance fairly close
to SOPT, agreeing with the remark made in [569].
Bushy tree join sequences have not attracted as much attention as the hnear ones in
the last decade. This can b e explained in part by the observation that in the past
the power and size of a multiprocessor system was limited, and that the query struc-
tures were too simple. It is noted, however, that these two limiting factors have been
largely negated by the rapid increase in the capacity of multiprocessors and the trend
for queries to become more complicated [638]. This justifies the necessity of exploiting
bushy trees.
Recently, the use of bushy trees for parallel query processing has attracted increas-
ing attention. For illustrative purposes, a heuristic implemented in [107] based on
executing the minimal-resulting-relation join to form a bushy tree is outlined below.
Scheme GMt~: /* A scheme to execute the join with the minimal resulting relation. */
begin
1. r e p e a t u n t i l IV[ = 1
2. begin
3. Choose the join Ri ~ Rj from G = ( V , E ) such that
IRi >~Rj] = minvR,,,nq~v{[Rp ~ Rq[}.
4. Perform Ri ~ Rj.
5. Merge Ri and Rj to R,nm(i,)). Update the profile accordingly.
6. end
end
(In the GMR scheme, the subscript M R stands for a cost function selecting "the
join with minimal resulting relation".) Clearly this heuristic is greedy in that only
"local optimality" is considered, and thus need not lead to the minimal cost join se-
quence. Note that GMR is of complexity O(]V[]E[) < O(]V]3), rather close to O([V[ 2)
required by SOD. From the simulation in [107], GMR, despite its simplicity, performs
significantly better than SOD and SOPT, and results in join sequences whose execution
costs are reasonably close to that of the optimal one.
As in the case for linear join sequences, there are many possible heuristics which
can be used to generate bushy trees. Another approach dealing with inter-operator
parallefism was presented in [381], where a greedy scheme taking various join methods
(without pipelining) and their corresponding costs into consideration was proposed.
The scheme in [381] is similar to GMR above in that it has the nature of "query graph
reduction", i.e., working in a cycle of selecting relations, joining and updating query
graph, until all joins are completed. But it is different from the latter in that it tries
to build a bushy tree level by level from a given query graph, where the level of an
internal (join) vertex is computed a.s the longest path from a leaf vertex. At each step,
the algorithm picks the maximum number of pairs of relations to fill up a level so that
the cost function considered is minimized. Several relation selection heuristics based
on different cost functions were proposed and evaluated in [381]. In addition, various
query plans in processing multi-join queries in an SN architecture were investigated in
12.6. COMPLEX MULTI-JOIN Q U E R Y 245
[497]. A combination of analytical and experimental results was given in [280] to shed
some light on the complexity of choosing left-deep and bushy trees.
The three heuristics described below were introduced in [107] to determine the processor
allocation for each join operation belonging to this category. A join selection heuristic,
such as the minimal-resulting-relation GMR, is used together to determine the next
join when building a bushy tree.
(a). Sequential execution (SE): This heuristic allocates all processors in the system
to execute each join in the query sequentially. It can be seen that inter-operator
parallelism is absent when this heuristic is used, and the join sequence is the key factor
in the performance in such a case. A variation of SE is to allocate a fixed number of
processors for the execution of each join, to avoid system fragmentation.
(b). Minimum time point (MT): This heuristic is based on the minimum time point in
the operational curve, i.e., the number of processors used to execute the corresponding
join operation is p ~ .
(c). Time-efficiency point (TE): As can be seen in Figure 12.5, a scheme based on the
246 C H A P T E R 12. P A R A L L E L Q U E R Y P R O C E S S I N G
y 20
15
. m
E
t-
O 10
r~
Q)
X
5
PB PM
0 1~ 3 6 8 9 lo 181 18 2o x
the number of processors
F i g u r e 12.5: A n O p e r a t i o n a l Curve of a J o i n
best efficiency point might suffer from execution dependency. This is because some
join operating at its best efficiency point might take a long time to complete due to a
small number of processors used to execute the operation, thus causing long waiting
time for subsequent joins. On the other hand, a scheme based on MT may not use
processors efficiently since it may require too many processors to reach the minimum
time point. In view of this, a combination of the minimum time point and the best
efficiency point, termed the time-efficiency point, is employed as a heuristic. In other
words the number of processors a 9 PM + (1 -- o~) * pB is used to execute each join
operation, where 0 < a < 1.
Examples of SE and T E can be found in Figure 12.6a and Figure 12.6b, respectively.
It can be seen that when an execution tree is built using the above approaches, the
following two constraints have to be followed: (1) execution dependency is observed,
i.e., the operands of the join selected to be performed next do not depend on the
resulting relation of any ongoing join, and (2) the processor requirement is satisfied
according to the processor allocation heuristic employed, i.e., the number of processors
required by that join is not larger than the number of processors available then. Also,
idleness of processors should be avoided.
Several schemes, categorized as the JSSF approaches, were proposed to alleviate the
above two constraints [107, 254, 381,628]. In [381] a query tree is obtained first by the
greedy method described earlier in Section 12.6.1. Then, processor allocation is done
level by level via iterative refinements. Specifically, each join gets an initial processor
12.6. COMPLEX MULTI-JOIN QUERY 247
Rs ~2)
R1 Ra R1~2 )
2) (a)SE R2p~-~o
) "~ (22)
)
R3 Fh 93
(b) TE (c) STsE
F i g u r e 12.6: Processor A l l o c a t i o n
times differ due to the variation in processor allocation. It can be seen that under
STsE, processors are allocated to the execution of each join in such a way that two
joins generating the two operands for a later join can be completed approximately
the same time, thus alleviating execution dependency. Moreover, since the processors
allocated to a vertex in a bushy tree are partitioned for the allocation to its child
vertices, system fragmentation is eased. Among all the schemes evaluated in [107],
the approach by STsE, which (1) first applies the join sequence heuristic to build a
bushy tree to minimize the total amount of work required as if under a single processor
system, and then, (2) in light of the concept of synchronous execution time, allocates
processors to the internal vertices of the bushy tree in a top down manner, is shown to
be the best solution to minimize the query execution time. A variation of STsE based
on dynamic programming is considered in [628].
In [628], several iterative processor allocation schemes are considered for a given
bushy tree. Basically each join operation is first given an allocation corresponding
to the best efficiency point. After the query tree is generated, some criterion is used
to identify the join operation which is most likely to be the bottleneck stage and to
allocate that stage with more processors. Then the whole process repeats. Different
criteria, dealing with the operation with the longest processing time and the one with
the largest number of concurrent idle processors during its life time, are considered.
This iterative approach is based on the algorithms studied in [589] for extending the
scheduling algorithms for non-malleable tasks to those for malleable ones. Also, given
the processor allocation, various scheduling heuristics with precedence constraints are
explored in [628] to follow the precedence relations imposed by the bushy tree.
As an extension to [255], where only optimizing the parallelization of sequential
plans was addressed, an algorithm dealing with processor scheduling for a bushy tree
was proposed in [254]. The inter-operator parallelism is achieved by properly select-
ing the IO-bound and CPU-bound task mix to be executed concurrently and making
processor allocation to reach the IO-CPU balance points. The algorithm matches up
IO-bound and CPU-bound tasks with an appropriate degree of intra-operator paral-
lelism so that both processors and disks can operate as close to their full utilization as
possible, thereby minimizing the elapsed time. In order to ensure an efficient solution,
[254] only explored schemes that execute at most two tasks at a time. The question of
how to reach the IO-CPU balance point among more than two tasks appears to be a
challenging problem.
n3 =4
"~disks
S, ' 0 ~
"4 i
] ,,"
,,On',"--" . . . . OD
9. . . . I
stage 1
stage 2
OD
stage 3
It can be seen that both right-deep and bushy trees allow the implementation of pipelin-
ing. Schneider and DeWitt were among the first to study the effect of pipelining for
hash joins [497, 498]. Their focus is on the use of right-deep trees, due mainly to sim-
plicity and the uncertainty of the improvement achievable by using bushy trees. Clearly,
for a given query~ the number of right-deep trees to be considered is significantly less
than that of bushy trees, and simple heuristics can be applied with little overhead to
generate a right-deep query plan. For example, a right-deep tree can be obtained by
first constructing a left-deep tree by greedy methods and then taking a mirror image of
the resulting left-deep tree [497]. However, right-deep trees suffer from the drawback
of less flexibility in structure, which in turn implies a limitation on performance.
Since the amount of memory is usually not enough to accommodate hash tables of
all inner relations, provisions such as static right-deep scheduling and dynamic bottom-
up scheduling [498] are needed. The static right-deep scheduling decomposes the right-
250 CHAPTER 12. PARALLEL QUERY PROCESSING
J 8 9 -
/a s ',, O
(~ J3 -. /_%_;,_,.
~ ',/cv, F':
i _A',
rmm 1 i A/7--'-~----d]
L__J pipeline stage ,u~ ,%J1 j :l i/ k_l,
! Lo _ _
pipeline segment L _~_ _ o. j
(a) (b)
deep tree into segments off-line and loads hash tables of a segment into memory in
parallel. The dynamic bottom-up scheduling, in contrast, loads one hash table into
memory at a time and determines the break points of segments dynamically according
to the memory constraint. In both scheduling methods, however, the execution of the
whole query is implemented in one pipeline and is thus restricted to the structure of a
right-deep tree. An example right-deep tree which is decomposed into three segments
is shown in Figure 12.8a. Those joins whose resulting relations need to be written back
to disks are marked black in Figure 12.8a.
The bushy tree, on the other hand, offers more flexibility in query plan generation
at the cost of searching a larger design space. However, as far as the hash join is
concerned, the scheduling for an execution plan of a bushy tree structure is much more
complicated than that of a right-deep tree structure. In particular, it is very difficult to
achieve the synchronization required for the execution of bushy trees in such a way that
the effect of pipelining can be fully utilized. To generate effective query plans that fully
exploit the advantage of pipelining while avoiding the above mentioned deficiencies of
the bushy and right-deep trees, an approach based on segmented right-deep trees for
the execution of pipelined hash joins was proposed in [105]. A segmented right-deep
tree is a bushy tree which is composed of a set of right-deep subtrees. FormaJly, a
segmented right-deep tree is defined recursively to be either (a) a right-deep tree, or
(b) a right-deep tree with some of its leaf vertices replaced by segmented right-deep
12.6. " C O M P L E X M U L T I - J O I N Q U E R Y 251
Processor Allocation
While most prior work focused on query plan generation, there is relatively little lit-
erature regarding optimizing processor allocation among the pipehne stages. One ap-
proach to deal with processor allocation to explicitly avoid pipeline bottleneck while
taking memory constraints into account is taken in [376]. As shown there, the character-
istics of pipelined hash joins allow the processor allocation problem to be formulated as
a two-phase mini-max optimization problem. Specifically, for a pipeline with k stages,
the execution time of the pipeline, TS, can be expressed as
W B~ W P,
TS = max - - + max - - , (12.1)
0_<i<k--I ni O~i~k--1 n i
where W B i and WPi are, respectively, the workloads for the table-building and tuple-
probing phases in stage i. Note that the processing time of each phase is determined
by the maximal execution time among all stages, and that the same allocation of
processors to a stage is retained across the table-building and tuple-probing phases.
The execution time of a pipeline is thus the sum of two correlated maxima. Con-
sequently, the processor allocation problem for pipelined hash joins can be stated as
follows: Given W B i and WPi, 0 < i < k - 1, determine the processor allocation
(ni) = (no, n l , . . . , n k - a ) which minimizes T S in Eq.(12.1), where n, is the number of
processors allocated to stage i.
For example, consider the workloads shown in Table 12.2 for a pipehne of five
stages. First, it is observed that the workloads of stage 2 are less than those of stage
3, suggesting that stage 3 should be assigned more processors than stage 2. However,
stage 3 has a heavier load in the table-building phase than stage 4, while the latter
has a heavier load in the tuple-probing phase. In such a configuration, there is no
obvious way to allocate processors to minimize the pipeline execution time specified in
Eq.(12.1). For illustrative purposes, suppose the total number of processors available
to execute the pipeline in Table 12.2 is 20. It can be seen that the allocation ( n l ) = (4,
nl - 1.5, maxvi -wPi
4, 4, 4, 4) leads t o m a x v i wj___~,_ -n~
- - 1.2, and TS = 2.7, whereas the one
(n~)= (6, 3, 3, 6, 2), which is based on the workloads of the table-building phase, leads
WP,
to maxvi wB------x~--=i
-- 1.0, maxvi ~ - - n-- i 2.5, and T S = 3.5. Clearly, to develop an optimal
processor allocation to minimize T S in Eq.(12.1) is in general a very difficult and
important problem. Since the table-building and tuple-probing phases are executed
one after the other, we minimize the sum of two correlated maxima in Eq.(12.1). In
view of this, the optimaJ processor allocation problem in Eq.(12.1) is termed the two-
phase mini-max optimization problem.
To develop the optima] processor allocation scheme for the two-phase mini-max
optimization, the following three constraints were considered in [376]: (1) the total
252 CHAPTER 12. PARALLEL QUERY PROCESSING
H stage 0 1 2 3 4 II
WBi 6 3 3 6 2 H
WP~ 4 4 2 3 5
number of processors available for allocation is fixed, (2) a lower bound is imposed on
the number of processors required for each stage to meet the corresponding memory
requirement, and (3) processors are available only in discrete units. By incrementally
adding constraints to the optimization problem, solution schemes were derived. The
effectiveness of the problem formulation and solution procedure was verified through a
detailed simulation of pipelined hash joins. Simulation results show that these alloca-
tion schemes lead to much shorter query execution times than conventional approaches.
20
u.,I
...... i .............................................................................................................................
I--
Z15
_o
I.--
W
X 10
u3
I-- 5
0 ' I I I I ,,I
1 2 3 4 5 6
NUMBER OF PROCESSORS
other hand, we do not want to allocate so many processors to any single query so as
to negatively impact the overall efficiency of the system.
E 3s ~ P .
9 If one task j l has precedence over another task j2, then the second task cannot
begin until the first task completes. In other words, if j l -~ j~, then Ux +
254 CHAPTER 12. PARALLEL QUERY PROCESSING
We seek an optimal schedule, one for which the overall makespan given by
is minimized. In other words, we wish to minimize the latest task completion time. II
One reason this inter-query problem has not been extensively studied has to do
with its inherent difficulty: As shown in [165], the malleable scheduling problem is
NP-hard in the strong sense, even in the special case when there is no precedence. One
is thus more or less forced to consider heuristic solutions. Typically, one would like to
find algorithms having provable bounds on the suboptimality of a given schedule. That
is, we would like to say that the makespan w, of the schedule given by our heuristic,
is iv < k * w* where k is some known constant and w* is the makespan of the optimal
schedule.
Later we will present algorithms having suboptimality bounds for the special case
where there are no precedence constraints between the tasks. (In practice, these al-
gorithms usually find a schedule having a makespan that is very close to that of the
optimal schedule.) Unfortunately, there has been relatively little success with estab-
lishing such bounds for the general case of scheduling malleable tasks in the presence
of precedence constraints. We know of only one result that addresses this issue [601].
This chapter deals only with the special case where the task execution time function is
constrained to be inversely proportional to the number of processors allocated to the
task up to some specified maximum degree of parallelism 0 < 6j < m for the task, and
constant thereafter.** Formally,
y_ flj < ~:
ts(flj ) = ~] - (12.2)
~-7 flJ> ~'
Here tj denotes the task execution time on a single processor. The suboptimality bound
given by the algorithms in both these papers is shown to be (3 - N)w 2 , . Of course, in
practice, speedup curves of operators in a query are unlikely to be completely linear
and the bounds given by these papers will fail to hold.
Although there is a lack of heuristics with provable suboptimality bounds for prece-
dence based scheduling, we have already seen that many heuristics for the scheduling
of intra-query parallelism are in fact quite effective under varying system assumptions
[107, 255, 334, 511, 569, 570]. One natural way, considered in [62S], of extending any
of these heuristics to deal with inter-query parallelism is to add one or more dummy
nodes, representing operators with 0 execution time, so as to combine all the queries
into one large query. This approach is shown in Figure 12.10. Unfortunately, as shown
in [628], this approach does not seem to work very well. Relationships that hold among
the operators in a single query do not always hold across different queries, and thus
heuristics that are effective in optimizing the performance of a single query do not
easily extend to several queries.
I1The condition requiring that the task times t7 (/3j) be nouincreasingis not, in fact, restric-
tive. One can always set t'j(flj) = minl<_Z<_& {tj(fl)}. The task times t'(flj) are nonlncreasing,
and any extra, useless processors in the optimal solution can be left idle.
9*In the absence of a specified maximum degree of parallelism for each task the problem
with linear speedups becomes triviM. One merely needs to allocate m processors to each task
and then schedule them in a batch fashion.
12.7. SCHEDULING MULTIPLE COMPLEX QUERIES 255
Query 1 Query 2
Query 3
Dummy Node
.|
W h a t [628] did show, however, was that a hierarchical approach to scheduling the
queries was effective. The hierarchical approach proceeds in two phases: In phase 1 one
of the single query optimization techniques is applied to each of the individual queries
to be executed, generating composite task execution time functions for the queries
themselves. Thus, one generates a query time execution curve based on the different
potential number of processors a/located to the query. In phase 2 a different scheduling
algorithm is applied to the composite query tasks, which have no precedence. In the
remainder of this chapter we will refer to the problem of malleable task scheduling
when there are no precedence constraints as problem M S . This approach is outlined
in Figure 12.11. Heuristics for handling the problem M S is the topic of the rest of this
section.
Query 1 Query 2
Query 3
Intra-Query Scheduler
0 | 1 7 4
Query 1 Query 2 Query 3
While our discussion has focused primarily on the execution of a set of known
queries, we should not forget that the problem of scheduling the online arrival of tasks
is an important component of any scheduling algorithm. One approach to this problem
has been proposed by [520]. It consists effectively of scheduling all the tasks that have
been submitted to the system at time r. Any new tasks that arrive will have to wait
until the time when the last task scheduled at time r has staxted execution. This
approach has the desirable qualities that (1) no task gets starved, and (2) it can be
proven to affect the suboptimality bounds of batch scheduling algorithms by at most
a factor of 2.
258 CHAPTER 12. PARALLEL QUERY PROCESSING
12.8 Summary
In this chapter, we have examined the various issues and techniques encountered in par-
allel query processing. The methods used to exploit query parallehsm are divided into
three categories: namely intra-operator, inter-operator, and inter-query parallelism.
We have concentrated on join operations because they are the most expensive opera-
tions to execute, especially with the increases in database size and query complexity.
In intra-operator parallehsm, the major issue is task creation, where the objective is to
split a operation into tasks so that the load can be spread evenly across a given number
of processors. In the presence of d a t a skew in the join attribute, naive range splitting or
hashing does not suffice to balance the load. Inter-operator parallelism can be achieved
either through parallel execution of independent operations or through pipelining. In
either case, the major issues are the join sequence selection and processor allocation
for each operation. Join sequence selection determines the precedence relations among
the operations. For inter-query parallelism, the issue again is processor allocation, but
now among the multiple queries. We explored query parallelism based on a hierarchi-
cal approach under a unified framework, so that potential integration of the techniques
used to address each type of parallelism could be illustrated.
Chapter 13
Towards Flexible D i s t r i b u t e d Information Retrieval
13.1 Introduction
Information Retrieval is the process of locating the data which are the best answer to a
user's query. In the case of text retrieval, it is "leading the user to those documents that
will best enable him/her to satisfy his/her need for information [42, 471]." Information
Retrieval is part of every database, every catalog, and every file system. It is such an
integral part of all of these things that it is seldom thought of as an independent
process.
This could soon change, however. The sharp increase in the amount of information
available to the average user in recent years has drawn attention to the shortcomings of
commonly used information retrieval systems. For years, very restrictive and inferior
methods have been used to retrieve information. These methods often force the user
to know the exact name or other identifier of the data to be retrieved. Sometimes
one is lucky enough to be able to use regular expressions or keywords to locate data
which cannot immediately be identified. Nevertheless, locating the desired information
is often a frustrating, time-consuming, and even futile task.
Fortunately, information retrieval techniques have been under investigation for
years, and a vast improvement could be realized in current information systems merely
by implementing known algorithms. Most established techniques are designed for han-
dling textual data, which is in fact where the greatest amount of difficulty is being
experienced, but encouraging results for non-textual data are already being reported.
In theory, the task of easing the general burden of information retrieval on the user
has been well undertaken. In practice, the systems which are widely used every day
are still relatively primitive.
If all information retrieval systems were upgraded overnight to use the best tech-
niques available, finding information would be easier - but it would still not be trivial.
There is another layer to the problem, which could humorously be called the network
layer, but whose accepted name is the Resource Discovery Problem[503]. Proliferation
of information is not the only difficulty. There is also a proliferation of information
bases. In an information retrieval system, one may start a serial search through the
entire information base for a particular piece of information. One does not, however,
have the option of starting a serial search over the entire Internet for a particular kind
of database. In fact, even if one could connect to every site on the network, one would
probably only be able to figure out how to access the available databases in the case
of well-known archives and public catalogs.
At first glance, it would appear that the problem of finding the information base
which would contain the desired information is just another form of information re-
trieval. One could establish a directory of information bases and use information
retrieval techniques to find the correct information base. Later in this chapter, the
reasons why this approach is inadequate will be presented.
This chapter is organized as follows. Section 13.2 provides a classification of infor-
mation retrieval techniques. Section 13.3 describes the construction and use of thesauri
and dictionaries for information retrieval. Section 13.4 discusses existing IR techniques
and the use of these techniques to achieve fuzzy retrieval. Section 13.5 investigates the
difficulties of extending IR into the distributed domain, and Section 13.6 describes an
information system architecture which handles some of those problems.
13.3.1 Thesauri
A thesaurus is a mapping from terms to terms which are semantically close. It may be
viewed as a graph where each node contains a term and has links to all of its synonyms.
A text retrieval system which is faced with a query term which does not appear in its
index should be able to use a thesaurus to try alternate terms in the order of decreasing
semantic similarity. If a user specifies a synonym of an index term, the system should
be able to determine the index term. On the other hand, if the information base has
been indexed inconsistently, a thesaurus should help alleviate the problem by making
some terms nearly equivalent.
The popular information retrieval technique of indexing by word stems or
trigrams[398] can be thought of as a heuristic for detecting synonyms in English text.
The thesaurus which it implicitly generates is neither complete nor accurate. A com-
plete and accurate thesaurus would be sufficient to maximize the efficiency of simple
keyword-based retrieval systems. Where more complex retrieval methods are used, a
dictionary may be needed to provide semantic information to the retrieval or query-
parsing algorithms.
The degree of closeness for each mapping from a term to a synonym must somehow
be expressed by a thesaurus. To avoid the scenario where every possible combination
of terms is assigned a similarity weight, thesauri should be built with the idea in mind
that one may navigate more than one link away from the term one is examining if none
of its immediate synonyms is satisfactory. To find the synonyms of a word in order of
decreasing similarity, a breadth-first search of the graph is performed. If weights are
assigned to the links, a more expensive best-first search must be used to insure perfect
sorting~ but this may be more trouble than it is worth.
Thesauri can be extended to convey more semantic information on how terms are
related to each other[444]. For example, there can be a distinguished, directional link
type which indicates that one term is a generalization of another. This link type
allows an information system to generalize the terms of an overly specific query until
some documents can be retrieved. However, it may be undecidable whether or not
overspecification was responsible for a null response.
Early attempts at building thesauri automatically using purely statistical meth-
ods met with limited success. However, a recent attempt to improve the quality of
automatic term association by using linguistic knowledge was successful[478]. Linguis-
tic analysis could be used to improve the signal-to-noise ratio of statistical methods
by transforming those sentence structures which cause unrelated terms to co-occur.
While reliable parsing of English grammar is exceedingly difficult, a surprisingly high
success rate can be achieved using simple methods if one only wishes to recognize a
limited subset of the possible sentence structures[251]. It should therefore be possible
to build sufficiently accurate thesauri using a combination of statistical methods and
limited parsing. Another novel approach to automatic thesaurus construction uses the
complete link clustering algorithm to cluster the document collection prior to the con-
struction of the thesaurus[133]. This two-stage statistical approach, which has a strong
theoretical basis, has also yielded promising results.
The uncertain accuracy of the resulting thesauri is not the only disadvantage of
automatic thesaurus construction. While several different kinds of relations between
terms can be distinguished by automatic methods[478], it is usually the case that sta-
tistical methods point out the existence of relationships without classifying them[444].
13.4. FUZZY RETRIEVAL 263
This places a restriction on the kinds of retrieval algorithms that can be used with
automatically generated thesauri. However, for the retrieval methods which are most
commonly used, automatic thesaurus generation provides a way to rapidly create many
domain-specific thesauri until more accurate thesauri become available.
If one continues to build more and more semantic information into a thesaurus,
at some point it ceases to be a thesaurus and becomes a dictionary. The essence of
the distinction is that the possibilities for defining relationships between terms are
exhausted and information related to the terms themselves, i.e. "definitions," begin to
appear.
13.3.2 Dictionaries
When one crosses the line from text processing into text understanding, one also needs
to trade in one's thesaurus for a dictionary. Any term-related information which would
be useful during the retrieval process can be kept in a dictionary. This includes internal
semantic representations that can be retrieved from the dictionary and used as building
blocks for larger expressions.
As of now, dictionaries are primarily being used in expert systems and knowledge
bases. However, for years it has been asserted that large amounts of "world knowledge"
are needed for effective natural language understanding. Dictionaries might therefore
be needed when thesauri become inadequate to support natural language information
retrieval.
assigned will depend on the thesaurai similarity of the term and its synonym. The
relevance function will then be fuzzy along the semantic axis as well as the syntactic
one, with the result that retrieval will be much more consistent across different query
vocabularies.
Even this similarity function is crude compared to many which appear in the lit-
erature. For example, it makes no attempt to weight query terms based on how often
they appear in a given document, or how often they appear in the document collec-
tion as a whole. The best index terms are those which do not appear in so many
documents as to be useless for retrieval, yet are not so infrequent that many relevant
documents do not contain them. The tf-idf (term frequency - inverse document fre-
quency) term weighting scheme is one way of biasing the search towards those terms
which are most useful for retrievai[133, 482, 481]. Furthermore, accumulation is only
one possible way of combining term coefficients into a document coefficient. It is com-
mon practice to arrange term coefficients for queries and documents into vectors (the
"vector space model" [482]) and use vector operations such as cosine to determine their
similarity[133].
Similarity functions do not exist only for text retrieval. A great deal of work is
currently being done to allow information retrieval using images. One recent work de-
termines the similarity of images which are comprised of iconic objects[96]. Specialized
techniques have also been developed for retrieving documented software[385]. However,
it is the case that text retrieval has received vastly more attention than other kinds
of retrieval, and until sufficient work has been done in this area, textual descriptions
must be used to index non-textual data.
One class of fuzzy retrieval algorithms which does not depend exclusively on a
similarity function (but which nevertheless may use one) is based on the inference net
model of information retrieval[42, 590]. Information retrieval systems which use these
algorithms can look like a combination of hypertext and expert systems. They use
Bayesian logic to reason about the properties of data objects and then decide which
of them are most likely to satisfy the query. A Bayesian inference network[42, 450]
is built for the object collection and for the query. The two are then connected so
that the probability that each object satisfies the query can be computed. When
feedback from the user causes changes in the subnet representing the user's query, the
probabilities are recomputed and a new set of pertinent objects is returned. Instead of
simply accumulating values, the inference net model deals in detail with the case where
the probability that a given object is relevant to a query depends on multiple factors.
However, the benefits of such a thorough analysis of relevance may not outweigh the
additional complexity for many information retrieval applications.
13.4.1 Partial C o n t e n t - B a s e d M e t h o d s
The most direct way to adapt existing information retrieval systems to be partially
content-based is to automate the process of indexing the data. Using this approach,
the same old fuzzy retrieval mechanisms can be used to search the same kind of index.
The only difference is that nobody had to go through the effort to build the index
manually.
Automatic indexing is most frequently done using methods such as tf-idf to de-
cide which of the terms in a document or document collection would make the best
index terms. An index can then be generated which contains only those terms, along
with their frequencies in each document. Additional lexical association metrics are the
signal-to-noise (concentration), the variance (concentration/diffusion), and the discrim-
13.5. DI S T RI BUTE D A P P R O A C H E S TO INFO R E T R I E V A L 265
ination values of terms[261]. The discrimination value of a term reflects the amount of
difference it makes to the document similarity function if that term is removed from
consideration.
If an information retrieval system uses summaries or abstracts to index data, all is
not lost. Some researchers hope to find ways of piecing together entirely nonanaphoric
sentences to form a reasonably informative "abstract" of a document using sophis-
ticated linguistic analysis. An easier approach can be used if something is known
about the structure of the documents, as is the case with an information system of
limited scope. For example, if all the documents describe analytical experiments, one
can search for phrases such as "we conclude" or "we have shown" which often co-occur
with important bits of summarized information. However, the problem in general is in-
sidiously difficult, and simple-minded heuristics are unlikely to provide a solution[443].
One approach to automatic keyword indexing[163] employs techniques which have been
used for automatic abstracting, but suggests that the extracted phrases simply be used
for keyword searches and not regarded as full summaries.
Automatic indexing of images[461] is also an immense challenge for researchers,
but it is receiving more attention and is likely to reach maturity before automatic
abstracting. The cited work points out that "image retrieval by content cannot be
attempted in general," but explains that, given a sufficient body of domain-specific
patterns and rules for image analysis, one can identify the different objects in an image
and build a representation of the image in terms of its objects, their number, their
compositions, and their positions. The images themselves can then be indexed using
these representations, and retrieval can be achieved by specifying the qualities to look
for in the representations.
Lastly, some similar techniques are being used in the realm of hypertext. Attention
is now being given to the use of text processing techniques to automatically build
semantic network representations of input texts to facilitate hypertext browsing[394]. It
is more difficult to automatically build a semantic network than to automatically index
a d a t a set. For indexing, all the program has to do is extract the most significant terms
from a d a t a object, or, depending on what sort of indexing is being used, determine
which of a pre-selected list of index terms are descriptive of the datum. To build a
semantic net, the program also has to add links connecting the important components
of the d a t u m to related concepts. The possible uses of semantic networks to enhance
information retrieval capabilities are worthy of investigation.
13.5.1 C u r r e n t R e s e a r c h Issues
The first problem which must be solved to acquire information using F T P is finding
the address of an archive site which has the right type of data. Similarly, the first
problem which presents itself to a new user of WAIS is that he/she must scroll through
a long fist of servers to locate a server which contains the desired kind of information.
These are just two different manifestations of the Resource Discovery Problem[503],
the fundamental problem which must be solved to truly achieve a global integration of
information sources.
the database capable of answering a query. The system discussed in Section 13.6 is
unique in its brokerless approach to query routing and resource discovery and in its
use of cooperative caching.
Large I n f o r m a t i o n Networks
The proliferation of databases in government and industry has focused attention on
the problem of integrating these databases. It is no longer practical for data to be
disseminated by manually exporting it from one database and importing it into another;
neither is it practical to call someone at a remote site each time a piece of information
is needed. Since experience has shown that a large, tightly-knit system is too inert
and unmaintalnable to be a permanent solution[610], work is currently being done to
find ways of solving the integration problem by building a system on top of the many
databases which are already established. The terms heterogeneous database, federated
database, and mediated database all describe this kind of system. Different authors
will assign different connotations to these terms, and precise definitions are difficult to
achieve. As a group, however, they describe a particular class of systems whose goal
is to unify existing databases.
The techniques which are being suggested to allow integration of heterogeneous da-
tabases may help to build an integrated information system. The notion of mediators,
distinguished pieces of software whose job it is to allow a graceful interface between the
outside world and an information base (or other mediators), can help solve the general
heterogeneity problem in a modular fashion[610].
on the underlying wide-area network, or any other costs which must be minimized. The
sites in the virtual network do not all have to own archives; many of them can simply
cache replicas of data whose authoritative copies are elsewhere. Each network site will:
9 Answer queries on data which are in its cache by sending a copy back towards
the querying site;
9 Forward queries on other data over the link which is believed to lead to the
nearest copy of the desired data;
9 Forward response messages along the least costly path to the querying site;
9 Cache replicas of data contained in response messages;
9 Replace older versions of data with newer versions when a response message is
forwarded which contains a newer version of a datum in cache, or vice-versa;
9 Process queries on data for which this site owns an archive (if applicable).
a huge volume of queries, the surrounding sites through which that site's queries are
forwarded will accumulate copies of the data which that site is using. Idle sites donate
their cache space to further the common g o o d .
It is not easy to arrange this kind of behavior in a fully distributed manner with-
out resorting to expensive measures. However, it can be done inexpensively using a
heuristic decision function that determines whether or not a site will cache a copy of
a datum which it receives. By maintaining counters in response messages, the number
of hops taken and the amount of link cost incurred by a response message between the
last site which had a replica of the datum in the response and the current site can be
determined. Similarly, it is possible to keep track of the amount of cache space owned
by the intervening sites. Using this information along with the information available
locally, i.e. the costs of the links attached to this site, the following decision function
can be implemented:
rnd < Hops so far • Running link cost • Running cache sum
Hops so far + tcf tcf ~ neighboring link costs tcf
performance which averages around 40% of that which could be achieved optimally,
where the distribution of data replicas would be perfect and every query would be
routed directly to the nearest available replica.
To give meaning to the results which follow, several terms must be defined. The
term "link delay" will indicate the time consumed by transmitting a single message
from one site to another over a link. The term "response delay" will indicate the total
time consumed in the transmittal of a query and its response through any number of
links. The "connectivity" of a sub-network, or cluster, is defined as the number of links
between nodes in the cluster divided by the number of links required for the cluster to
be fully connected.
First Generation
In the first generation, a cluster of identical sites in which all links had costs in the same
order of magnitude was simulated. A simple replica placement strategy was Used which
depended only on the accumulated link cost since the last observed replica on the return
path. All sites had the same size cache, and the set of primary copies did not grow
once it was created. Data were classified statically based on the sites at which their
primary copies lay. As was the case with all the simulations, the system was started
with empty caches and empty routing tables, allowing them to self-stabilize over time.
Network topologies were generated at random, testing everything from lines and trees
to fully connected clusters. What happened was that the caching and routing heuristics
interacted in such a way that a stable arrangement of data replicas was created, and
correspondingly stable routing tables guaranteed that queries were routed to nearby
replicas. As link cost were perturbed, the system made minor adaptations to continue
using the minimal cost paths.
The main focus of the first generation was to establish that routing and caching
heuristics could be found which would achieve the authors' goals. Most of the data
collected in this early simulation study consisted of traces of the routes taken by mes-
sages and descriptions of the topologies through which the messages were being routed.
A representative excerpt from such a trace is shown in Figure 13.1. The failure of the
point-to-point router to use the shortest path (the path of least delay, to be precise) is
a "feature" which was added later to generate more realistic results; an implemented
router is only likely to approximate the shortest path since the actual delays will be
constantly changing.
Second Generation
In the second generation the study began to concentrate on networks in which there
were two classes of links, namely intereluster and intracluster links. A number of clus-
ters connected by low-cost links were generated, then pairs of clusters were connected
13.6. ARCHITECTURE 271
by choosing random sites within each cluster to host the high-cost links. This topology
has been investigated in detail firstly because it simulates the structure of real-world
networks, and secondly because the first generation algorithms had the weakness of
making too much use of expensive intercluster links. The second generation algo-
rithms made exceptions to deal with radically expensive links, and the result was that
sites within a cluster succeeded in cooperatively caching all the information which was
needed rather than repeatedly fetching it from overseas, as it were.
The second generation simulation took the number of d a t a (primary copies), the
minimum datum size, the maximum datum size, the mean datum size, the number of
sites, the number of clusters, and the connectivity as inputs. The set of authoritative
primary copies would be generated randomly at the start of each run, but remain fixed
thereafter. The network topology was created in a similar manner, but intracluster
link delays were perturbed during the run to simulate changing network conditions.
Later simulations would perturb all link delays.
As has been the case with all the simulations, the sizes of d a t a were generated
using a Poisson distribution. The actual average datum size is usually higher than the
specified average due to the removal of d a t a of size 0 from the dist~ribution. Since the
simulation does not try to estimate the overhead involved in caching data, each site
could cache all the null d a t a without incurring any cost; it is therefore pointless to
include them in the simulation.
Figure 13.2 shows the results of increasing the number of d a t a in the system while
keeping the number of nodes constant. The simulation reported periodically on the
mean of the response delays taken over just those queries which were issued since the
previous report. The curve labeled "Bound" is an optimistic lower bound on response
delay. The authors were encouraged by the resemblance between the curves formed by
the observed d a t a and the optimal bound. The response delays shown in the graph
are the means of all the values which were reported after steady state was reached. A
minimum connectivity of 0.4, an average datum size of 2, and a cache size of 10 were
used. Intracluster links ranged in cost from 0 to 2; intercluster links ranged from 50 to
2001191].
Third Generation
The third generation algorithms improved on the second generation algorithms to the
extent that most special case exceptions were removed. The simulation began growing
the database dynamically over time and placing the primary copies of data at random
sites within the cluster designated as the home cluster for that class of data. The
static classification scheme induced by this arrangement is "lazier" than the previous
scheme, which assigned a different class to data with different primary sites, since it is
coarser and provides less precise information to the query router. Furthermore, sites
were allowed to have arbitrary sized caches, including null caches. The realization that
it is necessary maintain a consistent level of cache turnover across sites for cooperative
algorithms to be at their best was the main inspiration for this generation and is
primarily responsible for the generalization of the model. A series of tests was run to
try to determine the best level of turnover to maintain, only to discover that the effect
of varying turnover on efficiency is partially periodic, making it difficult to analyze
numerically. A theoretical analysis of this effect is on the agenda for future work.
Using the new caching heuristic and the new "lazy" classification scheme, a study
similar to the second generation study was performed. This time, the sizes of sites'
caches were randomized as well. Data were Collected for a series of scenarios in which
272 CHAPTER 13. TOWARDS FLEXIBLE DISTRIBUTED INFO.
280.0
260.0 Observed
240.0
220.0
R 200.0
e
s
p 180.0
O 160.0
n
S
e 140.0 / " t -" ~ I ~ Bound
D 120.0
e .I
1 100.0
a
y 80.0
60.0
40.0
20.0
- - - - ~ . J
0.0 I0 I I I i I I i I
4'o 8 120 160 200 240 280 320 360 400
Size of Database
an ever increasing number of sites was arranged into ten clusters. Ten basic data classes
were used, but their home cluster assignments were allowed to overlap. A minimum
connectivity of 0.8, an average datum size of 5, and an average cache size of 25 (varying
uniformly from 0 to 50) were used throughout. Intracluster finks ranged in cost from 0
to 2; intercluster finks ranged from 50 to 200. All sites were configured to attempt to
maintain turnover close to 600, meaning that the sites adjusted their caching to keep
the average hint-adjusted age of data objects being uncached around 600 time units.
Figure 13.3 shows that response delay decreases as nodes are added. The delays
used were those experienced with a constant influx of new data. Figure 13.4 shows
the progress of response delay as the database is created, the system stabilizes, and
then the long onslaught of new data begins. Note how delay is initially high since
routing tables and caches start out empty, rapidly attains its steady state minimum,
then as new data are constantly introduced, again begins to level off. The noise on the
right side of the graph results from there being less simulation runs which took that
long to complete. Finally, Figure 13.5 shows that the performance remains constant
as the network becomes larger[193]. Performance is the quotient of the calculated op-
timal bound on response delay and the observed response delay; constant performance
indicates that response delay changed at the same rate as the optimal bound.
13.6.5 Implementation
Using the methods developed during the simulation study, implementation of a net-
worked information system will soon begin. The "prototype" will be constructed so
that an incremental growth of the prototype will yield a fully implemented system for
public use.
13.6. ARCHITECTURE 273
600.0
575.0
R 550.0
e
s
p
O
525.0
n
S
e 500.0
D 475.0
e
I
&
y 450.0
425.0
400.0
3'o 5'0 7'o 9'0 '
110 '
130 '
150
Number of Sites
650.0 -
600.0
550.0
R
e 500.0
s
p 450.0
0
n
S
400.0 - / /
e
350.0 -1 /
D
e
1
&
y
200.01 ~
150.0 1
100.0 [/
Time ==~
274 C H A P T E R 13. T O W A R D S FLEXIBLE DISTRIBUTED INFO.
P
e
r
f 0.45
o
0.40 J
r
m
a 0.35
n
c
e
I I I I I I I
30 50 70 90 110 130 150
Number of Sites
Although it will no9 take long to explain, the implementation of the system will
require a significant ardount of work. The heterogeneity of the information bases will
necessitate the construction of several mediators, not the least of which will be a
package capable of automatically utilizing anonymous F T P to access known Internet
archives. Until such archives "join" the information system themselves, a member site
must act as surrogate owner of each archive.
The information system will be built in two layers. The top layer will handle the
routing of queries and the caching of data in a distributed manner. It will contain coarse
grained classification software to determine the best way to route a query and general
descriptor matching heuristics to decide when to try to answer a query with cached
data. The bottom layer will consist of mediators and the local archive managers at
each site owning an archive. It may be formed by an existing DBMS or by a specialized
archive manager. Each will contain some combination of fine grained data classification,
query processing, automatic indexing, and archive maintenance software. The bottom
layer will be characterized more precisely in the following section.
Queries which cannot be parsed in this way will be forwarded without the special type
coding.
Finer grMned classification for each major d a t a type will be accomplished as follows:
1. WAIS should serve as the main textuM archive manager. Any additional text
documents will be anMyzed and indexed using an existing text processing al-
gorithm, and matches between queries and documents will be made using an
existing fuzzy retrievM method. Boolean querying may Mso be supported.
2. Source code will be classified by language and by purpose. The language is easily
determined by scanning the file for constructs unique to different languages.
The purpose of each source file will be kept in an index which is initially built
automatically from comments found in the source, but modified as necessary
by a human operator. Indexing solely by scanning comments is unreliable since
commenting styles vary drastically from programmer to programmer, some of
which may not comment at M1. Matches between queries and index entries will
be done as before.
3. When a DBMS is involved, an information system query might encapsulate a
query to be presented to the DBMS or it might contain an unstructured question
as usual. The encapsulated query case is trivial since it only needs to be identified
as such; this is on the same level as determining the language of a source code
file. However, unstructured questions must be translated into a query which is
meaningful to the DBMS. Finding ways of translating arbitrary natural language
queries into a database query language is beyond the scope of this work, as
research is still actively being done in this area. However, a simple system
may be implemented by which a user may ask how to access on line help for
the specific DBMS and for the names and attributes of database objects which
contain d a t a relevant to some topic. It should also be possible to create a simple
macroscopic mapping of database objects onto information system objects, such
as to consider an entire relational table to be a single object[190, 35]. This
simplifies the interface enough that the information system should be able to
reliably construct queries for the desired objects and to cache replicas of them as
usual. The drawback is that the user must accept the object in its entirety and
send an encapsulated query to the DBMS if more selectivity is desired - but the
simplified system is much more likely to succeed than an attempt to translate
natural language into arbitrarily complex queries.
4. The format of an image can almost always be determined by scanning the be-
ginning of the image file for signatures which are unique to different formats. As
was discussed earlier, automatic determination of the content of images is just
beginning to be actively researched and is in its extremely early stages. With
the exception of automatically generated images such as satellite weather maps,
the collections of images the system includes will almost certainly be manually
indexed.
5. Many F T P archives provide informal indices for their available files. The system
will interface with these archives by utilizing the existing textual indices and
anonymous F T P in a fully automatic manner.
While it is small, this initial set of interfaces and data managers will provide a
demonstration of the capabilities of the system. The F T P interface alone will pro-
vide a much needed service, removing the need to navigate unfamiliar file systems
276 C H A P T E R 13. T O W A R D S FLEXIBLE DISTRIBUTED INFO.
and reducing the drain on central archive sites and the network through cooperative
caching.
Acknowledgements
Information Retrieval is indeed a very rich field which has been under investigation
for many years. The authors would like to recognize the very many researchers who
worked long and hard to bring Information Retrieval to the level it has attained. They
sincerely apologize to all those who could not be recognized due to space limitations.
Chapter 14
Efficient Parallel Recovery in Replicated Databases
Raj Tewari*
14.1 Introduction
Recovery in replicated databases is an important issues for fault-tolerant processing
and non-stop computing. Recent database servers such as Oracle7 server are shipping
with distributed and parallel options. The distributed option allows co-operative trans-
action processing by allowing selective replication of files in read-only and read-write
modes on multiple servers and transactions that can execute across multiple servers are
then co-ordinated by the two-phase commit operation. Moreover, the Oracle7 server
allows parallel processing on multiprocessor machines such as the Sequent, to execute
operations in parallel. It is of primary importance that the recovery algorithm for a
distributed and parallel database server incorporate parallel operations to allow faster
and efficient recovery. In this chapter we propose such an algorithm.
One way in which recovery can be facilitated is by using semantic knowledge of
database operations to embed intelligence in the recovery algorithm. The idea of
using semantic knowledge to increase concurrency was investigated by Garcia-Molina
[208]. In an algorithm proposed in [208], transactions are divided into a collection
of disjoint sets or classes, so that the transactions that belong to the same class are
compatible. Transactions that are compatible can be allowed to interleave arbitrarily,
whereas incompatible transactions (transactions that do not belong to the same class)
are not allowed to interleave.
Commutativity of database operations is an important property that can be uti-
lized for enhancing concurrency within transactions [24,604]. In [24], a property known
as recoverability, has been defined, which can be used to decrease the delay involved
in processing non-commuting operations while avoiding cascading aborts. When an
invoked operation is recoverable with respect to an uncommitted operation, the in-
voked operation can be executed by forcing a commit-dependency between the invoked
operation and the uncommitted operation. In this way the transaction invoking the
operation will not have to wait for the uncommitted operation to abort or commit.
To enforce the serializability of transactions, the recoverability relationship between
transactions is constrained to be acyclic.
A semantics based transaction management technique for managing replicated data
was proposed in [337]. Conventional consistency control algorithms using one-copy se-
rializability as the correctness criteria, are designed to deliver fast response times and
high availability for read-only transactions while sacrificing these goals for updates.
They propose an approach that works well for both retrieval and update environ-
ments, by exploiting semantic properties of transactions. By subdividing transactions
into various categories, and utilizing a commutativity property, they demonstrate that
communication costs are minimized.
The SHARD (System for Highly Available Replicated Data) approach, described
in [489], [490], [491] and an associated protocol called the log transformations pro-
tocol [67] are designed to support continued database operations in the event of site
failures or network partitioning. To achieve this objective, SHARD sacrifices transac-
tion serializability and uses timestamp ordering to ensure eventual mutual consistency.
New algorithms for robust update propagation and a mutual consistency mechanism
for complex update types such as increment and decrement was developed in [489].
SHARD also provides a basis for triggering application-specific compensating actions
in the event of an inconsistency, and provides mechanisms for implementing concur-
rency controls that can be used selectively to reduce the probability of inconsistency
at the expense of a controlled increase in response time. Basically, SHARD utilizes an
optimistic approach for maintaining mutual consistency of copies of database objects.
We have previously proposed an approach for distributed databases on uni-
processor machines in [580, 581], that is intermediate between the mutual exclusion
approach and the SHARD approach. Merging two partitions can be achieved by com-
paring only one copy of a d a t a object in the first partition, with a copy in the second
partition, together with the transaction history in both partitions containing all the
transactions that performed operations on the data object. This information is suf-
ficient to reconstruct the final value of the d a t a object, since the classification of the
transactions results in a sequence of operations that do not conflict with each other,
hence they can be performed in parallel.
When updates or reads are made in a partitioned state, it is possible that non-
serializable behavior may result. This can lead to inconsistent copies of the d a t a
object in different partitions. One suggested way to mitigate the effects of such in-
consistency is through compensating transactions [490]. Compensating transactions
depend on application semantics and would be determined by policy decisions for each
organization.
The rest of the chapter is organized as follows. In the next section we present a
high-level overview of the proposed consistency control algorithm. Details of the basic
merge protocol are presented in the next section. We then present extensions to the
basic merge protocol to include parallelism in the operations if possible on the machine
architecture. The next section evaluates performance of the merge protocol using a
simulation model, and a comparative performance analysis is presented, comparing
the performance of the merge protocol to the previously proposed log transformation
protocol.
transactions is very similar to that intended by the original undo and redo defined
in[593], but has different semantics.
The initial state upon partitioning of the DDBS into two partitions Pi and Pj is
a consistent state. PLi and PL~ are partition logs that bring the two partitions into
inconsistent intermediate states S~ and Sj (there could be finitely many intermediate
states; however, we concentrate only on the last inconsistent states S~ and Sj, which
are the states just before the partitions are repaired).
Our objective is to find optimal merge logs ML~ and MLj, which will run in
partition i and j respectively, and will result in a consistent state Sf in both partitions.
We define initial merge logs IML~ and IMLj as:
IML~ = (PL~, T)
IMLj = (PL'j, T)
where T is the target log defined by the global transaction ordering mechanism we have
assumed. T contains all the merge_redo transactions, hence it is called the merge_redo
partition log. PL~ and PL} are the merge_undo partition logs, consisting of the inverse
transactions of all transactions in PLi and PLy.
We will propose a protocol that results in greater savings through more efficient
processing than the log transformation technique [67]. The log transformation mecha-
nism seeks to classify transactions into the following types:
9 Overwrite pairs
9 Commutative pairs
9 Conflicting pairs
and then proceeds to simplify an initial merge log through successive log transforma-
tions that replace a pair of overwrite transactions by the overwriting transaction. Pairs
of transactions that are inverses of each other, and occur successively are canceled.
We propose exploiting transaction semantics further to gain significant savings,
that are not possible using the log transformation technique. Properties of arithmetic
operations such as associativity, and distributive laws can be utilized to obtain further
reductions in the initial merge log.
An example of a banking database will clarify our approach, and also point out
situations where the log transformation approach will not ensure any savings, but our
approach will achieve substantial savings in transaction processing.
E x a m p l e : Assume that the database partitions into two partitions i and j. We will
follow the transaction activity related to one data object, say a checking account with
an initial balance of $200 before partitioning.
The transactions executed in the two partitions and the corresponding changes in
the balances are shown in Table 14.1. For the duration of the partition transaction
T1, T2, T4, T~, Ts and T10 were executed in partition i and transactions T3, T6, Tr, T9
were executed in partition j. The global balance is known to us from the history of the
transactions but the global balance is not known to either of the two partitions. The
objective of the merge protocol is to arrive at globally consistent (correct) database
objects; in this case the account balance. Partitions i and j have inconsistent account
balances. The balance in partition i is $650 before the merge, and the balance in
partition j is $100, whereas, the globally consistent balance that we seek to arrive
at is $545. This would be the balance if all the transactions were executed in their
timestamp order. The global balance is shown in Table 14.1 as G(b).
282 CHAPTER 14. EFFICIENT PARALLEL RECOVERY
(X O ( Y e Z)) = ((X e Y) e Z)
The operator | stands for any associative operation. In the simplest case this operator
could be the algebraic associative operation for arithmetic database objects. In more
complex cases this operator could stand for associative operations on non-arithmetic
database objects which could be combined using semantic information. If by the above
manipulation, we can combine the operations X and Y into one operation, then we
have achieved a reduction in the initial merge log.
Similarly, distributive operations on X, Y, Z are:
X | e Z) = (X | Y) e ( X | Z)
The operators | and E3 could be algebraic in the simplest case or could be non-algebraic
but distributive by other semantic knowledge. If we have database operations as de-
picted by the right hand side of the above equation which cannot be reduced in that
form, it is possible that they could be reduced by converting them to the form of the
left hand side.
One of the key points in the above discussion is that it is possible that not all
operations involve arithmetic operations. There could be non-arithmetic operations on
the database that could be combined by looking at their semantics. Thus, the category
other non-arithmetic contains database operations that are of non-arithmetic nature,
14.3. PARALLEL MERGE PROTOCOL 283
yet can be combined knowing their semantics by one of the associative, distributive,
commutative or other semantic operators (which are application specific). An example
of a non-arithmetic operation is the location of a vehicle in a car rental system. The
car may be rented at one location and returned at another location, which may, at
some instant of time, be isolated from the originating location. To reconcile the return
of the car, and its location in the two partitions (the originating partition and the re-
turning partition), a non-arithmetic operation, namely updating the location variable,
is required.
Non-collapsible operations are those that cannot be combined with other opera-
tions based on their mathematical properties and other available semantic information
about them. The thrust of our protocol is that if by using available mathematical
and semantic information about database operations, we can collapse a sequence of
operations in the initial merge log into one equivalent operation, we can perform the
merge process more efficiently, by substituting one equivalent write on the database in
place of each individual write operation corresponding to each merge operation.
Operations of the type deposit, withdraw and query can be represented by functions
of the form
f : ( x ) = cl + x
where cl is a constant. Hence these are associative and any number of deposits, with-
drawal and queries appearing in the initial merge log can be collapsed into one equiv-
alent operation.
Operations of the type add interest can be represented by a function of the form
f2(x) = c2 + czx
These operations cannot be combined with other operations since they are not asso-
ciative, distributive or commutative with deposit, withdrawal and query.
The initial merge logs for the banking example will be defined for each partition i
and j as:
I M L, = [T~o, T~, T~, T~, T~, T~, T2 . . . . ,T10]
and
I M L j = [T~, T~, Tg, T~, T~ , T2 . . . . . T10]
which reflects the brute force approach of undoing all transactions run in each partition,
and then redoing all transactions in the globally serializable order, found by the global
ordering algorithm.
We will first use the log transformation protocol to get a transformed merge log for
each partition, as depicted below:
Partition i
ML~ = [T;o,Tg,T;,T;,TLT;,T~,T~,...,T~o]
= [T~o,Ti,T~,T~,Ti,T2 .... ,T~0]
= [TIo,T~,T~,T~,%,...,Tlo]
Partition j
first pass of the reduction process. In the first pass all reductions are made using the
property of double node deletion. Further reductions are possible using the commu-
tativity property and constructing merge graphs that identify further reductions. But
this requires considerable computational effort.
Our proposed parallel merge protocol utilizes the semantic information provided
by the complete history of all transactions available to in the logs, as follows:
1. Scan merge_undo transactions in reverse order till a non-collapsible transaction is
encountered. Accumulate the effects of all the collapsible transactions (deposits
and withdrawals) till this point in one semantically equivalent transaction. Con-
tinue scanning in this manner until the next non-collapsible transaction and
repeat the process of constructing another semantically equivalent transaction.
This process is repeated until there are no more merge_undo transactions.
2. Scan merge_redo transactions in order till a non-collapsible transaction is en-
countered, and accumulate the effects in semantically equivalent transactions as
in (1) above. Repeat this process till the list of transactions in the merge_redo
log is exhausted.
Continuing our example, we obtain the following reductions using our merge pro-
tocol:
Partition i
ML 3 = rq~l
LJ~9,T 7,-t6,
I rpI TI3 , ~,-p
t l l J~- 2 , . - - , T10]
= [T9,7,6,3, T1,2,3,4,5,6,z, Ts, T9,10]
Here 7~,4 is the semantically equivalent transaction for T~ and T~, and its effect on
the database is the same as a deposit of $100. Similarly, T3,4,~,6,z is the semantically
equivalent transaction corresponding to transactions T~, T4, Ts, T6, T7, and its effect
on the database is the same as a deposit of $50. We have reduced the IML~ with
16 transactions to a semantically equivalent log with 5 transactions, whereas the log
transformation approach was able to achieve only a reduction to 12 transactions. Using
our merge protocol in partition j, we obtained an optimal merge log containing only 4
transactions, as opposed to no possible reductions using log transformations for I M L i
in one pass. Note that these results are based on all reductions achieved in the first pass.
The log transformation protocol will discover all the reductions possible eventually, but
this will be at the expense of constructing merge logs and then reducing them. Each of
the merge log graphs will contain as many nodes as the number of transactions in the
merge log, and conceivably the log transformation approach will result in large graphs.
The advantage of combining several transactions into one at merge time is that the
final effect of the collapsed transactions is written and committed to the secondary
storage only once. This is a significant benefit over writing and committing each
traditional undo and redo transaction individually to the database, resulting in a large
number of secondary storage accesses, that slow down database processing. Further, a
sequence of semantically reduced transactions can be executed in parallel, since they
are independent of each other.
14.4. E X T E N S I O N OF T H E P A R A L L E L M E R G E P R O T O C O L 285
It should be noted that our technique is different from the group commit technique.
The group commit technique as described in [330] is performed at the time of regular
transaction processing and not at the time of recovery. Moreover, the group commit
technique does not take semantic knowledge of transactions into account when deciding
which transactions make up the group to be committed. In contrast, our algorithm is
executed at the time of recovery of sites or partitions, and takes semantic knowledge
that is available in the mergeAogs to decide which transactions can be grouped and
then executed in parallel.
14.4 E x t e n s i o n of t h e Parallel M e r g e P r o t o c o l
to t h e General Case
We have focused on one d a t a object and two partitions for the sake of exposition. The
general case of many objects and many partitions can be handled by our protocol.
The extension of the merge protocol to the case of more than one data objects and n
partitions is described below.
The final value of each d a t a object can be efficiently reconstructed using the merge
protocol from the history of transaction operations available in the partition logs. Recall
that we maintain each operation on the data objects, instead of before and after values.
We can view the merge protocol as operating sequentially on each data object in the
database, taking into account only those relevant transactions that operated on that
d a t a object. Thus the set of relevant transactions for merging may be different for
different objects, the only requirement being a global ordering of transactions across
all partitions.
We consider only simple partitioning of the database at any instant of time, and
exclude the possibility of byzantine failures. The merge protocol can then be applied
successively to each binary partition to handle a general n-way partitioning. Thus any
arbitrary partitioning of the database can be described in terms of a finite sequence of
binary partitionings that can be linearly ordered in time.
One important question is that of failure during recovery. Since our algorithm
does not use a voting technique to maintain consistency, the algorithm holds even if
there is a failure during recovery. At the time of performing the merge algorithm, if
there is a new failure at the site where the merge algorithm is running, we can view
the situation de novo, in the sense that when recovery occurs again, the whole merge
process starts again from scratch. In this respect, our algorithm is at least as good as
other algorithms for recovery.
believe that ths speedup obtained in merging and consequently in the recovery process
can reach speeds approximating real-time operation.
Parallelism is significantly faster in the case of operations involving multiple data
objects, since frequently the processing involves join operations, which are costly in
distributed databases. It is of great importance to utilize opportunities for parallel
execution of recovery operations to speed up the recovery :process.
transactions, then neither our merge protocol nor the LT protocol will be able to find
any reductions thereby implying that the worst case behavior of both the algorithms
is the same. This is, however, true for any protocol utilizing semantic knowledge of
transactions, when faced with a transaction stream that strictly alternates between NC
and C transactions.
14.7 Conclusion
In this chapter, we have proposed a new parallel recovery algorithm for rephcated data-
bases that axe subject to site failures and network partitioning. The recovery algorithm
utilizes available semantic information about the operations of transactions to classify
the operations into collapsible and non-collapsible operations. This classification allows
us to obtain reductions in merge logs to speed the recovery process when partitions
are repaired and merged together by exploiting parallehsm. The recovery algorithm
proposed by us is also suitable for systems with long duration or nested transactions,
such as C A D / C A M databases and emerging multi-media apphcations.
Our work is most closely related to the proposal for recovery in centralized data-
bases in [331]. We have considered a rephcated database environment and performed
simulation experiments to test the efficiency of our recovery protocol. Results of this
performance evaluation indicate that our recovery protocol provides improved perfor-
mance than a previously proposed protocol based on the log transformation technique.
One of the important issues for future research is how to pre-classify operations
of transactions and define compensating operations. Certainly an approach that au-
tomatically collects this information from the database system is preferable over one
that requires users to specify this information. However, it may not be possible to
obtain the complete semantics of all operations automatically through the database
system, because knowledge outside the appfication domain may be required to infer
the semantics.
Another significant research area is the investigation of parallel machine architec-
tures and their influence on recovery strategies. It can be conjectured that the parallel
recovery algorithm will be different for a connection machine type of massively parallel
architecture, than an algorithm for a Gray Y-MP type of vector processor architec-
ture. The influence of architectures and support for parallel operations in databases of
the future is key to handhng grand challenge apphcations such as the human genome
project.
Chapter 15
Document Allocation In Multiprocessor Information
Retrieval Systems
15.1 Introduction
The volume of data accessible online is steadfastly increasing. This growth will
shortly render conventional information retrieval systems helpless in terms of respond-
ing to users' queries within an acceptable period of time. The increase in the volume
of data available online stems from improvements in data communication and storage
technologies which in turn spurred an increase in the number of information providers,
and the volume of data provided by each information source.
To provide the computational demands needed to deliver acceptable response times
in the wake of voluminous information retrieval databases, numerous large-scale (scal-
able) multiprocessor information retrieval systems [1, 23, 131, 455, 454, 513, 545,
546,544, 550] have been proposed. A scalable multiprocessor information retrieval sys-
tem generally necessitates the exploitation of a distributed memory architecture as a
large number of processors is currently not possible in a shared-memory configuration.
A distributed memory system, however, introduces the problem of mapping the data
onto the given architecture. (A poor document mapping onto an architecture results
in high access and retrieval times.) We refer to this problem as the Multiprocessor
Document Allocation Problem (MDAP), and develop a heuristic approach based on
Genetic Algorithms which yields a near optimal mapping.
Throughout this research, the term "document" is used generically to represent
any datum to be accessed. That is, a "document" may take various forms, ranging
from simple text to highly detailed photographs to voice and animated video. For
example, in a hospital setting, patient data includes EKG readings, blood sample mea-
surements, x-rays, patient daily charts annotated in handwriting by the physician,
patient history, and possibly, accounting information. Such a system must incorpo-
rate pictures (x-rays), contiguous electronic signals (EKG readings), hand written free
formatted annotations (doctors' notes), and formatted data such as billing. (For a
detailed evaluation of the design issues of medical databases, see Allen and Frieder
[14].)
*Department of Computer Science, Rutgers University, New Brunswick, NJ 08903, U.S.A.,
siegelma@yoko.rutgers.edu
tDepartment of Computer Science, George Mason University, Fairfax, VA 22030, U.S.A.,
ophir@cs.gmu.edu
290 CHAPTER 15. DOCUMENT ALLOCATION IN MULTIPROCESSOR
15.2 M D A P is N P - C o m p l e t e
An instance of MDAP consists of a homogeneous distributed memory architecture
with n nodes, X i , 0 < i < n - 1, and partitions of the documents D~,0 < i < d - 1,
called clusters, C. Each cluster C~, 0 < i < c - 1, represents a set of all the documents
associated with it. The distance between a pair of nodes is defined as the cost of sending
a packet from node i to node j and is represented by the internode communication
cost matrix, Mij, 0 ~ i , j _< n - 1. The diameter of a cluster is the maximum distance
between any pair of nodes that contain documents belonging to the given cluster.
15.2. M D A P IS N P - C O M P L E T E 291
MDAP requires the documents to be evenly distributed across the nodes such that
the sum over all cluster diameters is minimal. As the sum of the cluster diameters is
reduced, the total communication traffic is minimized. An even distribution is required
to achieve a balanced workload across the processors.
Here, we show that MDAP is inherently hard. We do so by proving that it belongs
to the class NP-complete. Problems including in this class are considered too hard to
be solved in practice, even when allowing for much computation resources. Instances
of such problems, hence, can at best only be solved approximately.
(We provide in this paragraph a brief overview of the class NP-complete, a well
studied issue in the field of computational complexity theory: NP is the class of deci-
sion problems, for which affirmative solutions can be verified polynomially. This class
includes for example the Satisfiability problem; i.e., given a Boolean formula, decide
whether there is an assignment of the variables so that the formula yields the True
value. Here, an assignment of the variables can be verified as satisfying in polyno-
mial time. NP-complete is a class of "hard" problems. A problem is in the class
NP-complete if it is in NP and is at least as hard as any other NP problem (i.e., the
existence of a polynomial time algorithm solving it implies that all other NP prob-
lems are solvable in polynomial time as well). Satisfiability is in this class, as well as
the Traveling Salesman Problem, Multiprocessor Job Scheduling and many others. A
detailed discussion about NP-completeness and many examples can be found in Gary
and Johnson [212]. )
Here, we concentrate on the decision form of MDAP: Instead of finding an allo-
cation that satisfies some constraints, we ask if such an allocation may at all exist.
Formally, M D A P is defined as follows:
INSTANCE:
9 A distributed memory architecture with:
A:D~X
Is there a one to one function f : {1, 2, 3, ...,g} --+ {1, 2, 3,...,h} such that
~r b,j 9 rn$(Ql(j ) <_ Z ?
This transformation takes polynomial time in the size of the input. It is easy to
verify that an MDAP allocation exists to this instance if and only if there is a
function f to the BQAP instance. Thus, MDAP is NP-Complete. 9
15.3 R e l a t e d Ef f ort s
A review of previous mapping algorithms (Section 3.1) and related multiprocessor
information retrieval efforts (Section 3.2) is provided.
15.3. RELATED EFFORTS 293
searched was reduced, significantly reducing the total I / O processing time. A parallel
index-based retrieval effort on the Connection Machine was later reported in Stanfill,
Thou, and WMtz [546] and in Asokan, Ranka, and Frieder [23]. Additional parallel
text retrieval search methods are described in Salton and Buckley [480].
Various descriptions of efforts that focus on the organization of d a t a for the DAP
system, appear in the literature. In Pogue and Willett [455], an approach using text
signatures is proposed and evaluated using three document databases comprising of
roughly 11000, 17000, and 27000 documents. Pogue, Rasmussen, and Willett [454],
describe several clustering techniques using the DAP. Both reports clearly demonstrate
that if a proper document mapping onto the individual Processing Elements (PEs) is
established, the DAP system readily achieves a high search rate. However, an improper
mapping results in a poor search rate stemming from the inability of the DAP system
to access the documents.
Cringean, et al., [131] describe early efforts aimed at developing a processor-pool
based multicomputer system for information retrieval. The physical tested hardware
consists of an Inmos Transputer network. To reduce the volume of data accessed and
hence the total query processing times, a two phase retrieval algorithm is proposed.
The initial phase acts as a filter to retrieve all potentially relevant documents. By
using text signatures, the majority of the non-relevant documents are eliminated from
further processing. This filtering of documents vastly reduces the volume of d a t a
processed in the compute-intensive second phase. (Some non-relevant documents are
selected as a consequence of false-drops. False-drops are common to all text signature
analysis approaches.) In the second phase, full text search is performed. The two
phase algorithm is yet another example that .'emphasizes the need for intelligence in
the organization and retrieval of documents.
Finally, Sharma [513] describes a hypercube-based information retrieval effort. The
results presented are based on the timing equations provided. To reduce the volume of
d a t a read, Sharma relies on the fact that the documents are initially p~rtitioned into
clusters, and only documents that belong to "relevant" clusters are retrieved. As in
our approach, Sharma does not address nor is dependent on any particular clustering
technique. Sharma does require, however, that the cluster scheme employed yield
non-hierarchical clusters, whereas we do not impose such a restriction. Thus, all the
clustering schemes, including the numerous schemes described in Willett [613] can also
be employed in our setting. Sharma partitions the clusters across the individual nodes
according to an architectural topology-independent, best-fit heuristic. No evaluation
of the document distribution algorithm is provided.
We also rely on clustering, but use a genetic algorithm approach that uses infor-
mation about the underlying architecture to map the documents onto the nodes. As
the actual dataset used in the [Sha89] evaluation is not described, it is not possible
to directly compare the results of our algorithm to the algorithm described in [513].
For tutorials on clustering and other information retrieval related topics, the reader is
referred to [78, 482,613].
15.4 A G e n e t i c A l g o r i t h m for M D A P
As MDAP is NP-Complete, obtaining an optimal allocation of documents onto the
nodes is not computationally feasible. The heuristic algorithm proposed here is based
on Genetic Algorithms [224]. In our representation, the set of documents is represented
by a document vector which is a sequence of integers 0 to d-1. A permutation of this
15.4. A GENETIC ALGORITHM FOR MDAP 295
sequence defines an allocation Of the documents onto the nodes where a document Di
found at position j is stored at node j modulus n. This representation scheme results
in all nodes containing an equal number of documents, with the possible difference of
a single document. Each allocation is evaluated as the sum of the cluster diameters it
defines. The lower the sum, the better is the allocation.
As with most genetic algorithms, the proposed algorithm comprises of initializa-
tion, reproduction, crossover, and mutation. In the initialization phase, a set--called
population--of random permutations of the document vectors is generated. Each ran-
dom permutation represents a possible allocation of the documents onto the nodes. By
repetitively modifying the permutations, a near optimal allocation is generated. The
number of simultaneous permutations (population size) p is an experimental parameter
that is evaluated in Section 6.
The reproduction phase replaces permutations that represent poor mappings with
those permutations that are viewed as good. Using the sum of the cluster diameters as
an objective function, the merit of each permutation is evMnated. A biased roulette
wheel favoring the better permutations (allocations) is created. A random sampled
value is obtained. Using the biased roulette wheel and the sampled value, a corre-
sponding allocation is determined. Each selection corresponds to the birth of a new
alloca*ion. The permutation that is replaced by this new birth is deemed as deceased.
Probabilistically, in this phase the poor allocations are killed, while additional copies
of the good allocations are reborn.
The crossover phase represents the cross-fertilization of permutations, similar to
the composition of genes from both parents in a birth, and consists of a position-
wise exchange of values between each randomly paired permutations. Two random
numbers are chosen and serve as the bounds for the position-wise exchange. Each
document of the first permutation that falls within the determined bounds is swapped
with the corresponding document of the second permutation, and likewise the second
permutation with the first.
Finally, to lower the probability of convergence of the allocation to local values
that are not a global minima, a mutation phase is incorporated into the algorithm.
Periodically, with a low probability, a permutation is randomly modified.
ALGORITHM:
Initialization Phase:
1. Create a permutation matrix, Pi,j (0 < i < p - 1,0 _< j < d - 1). Every
row of P, Pi, (0 < i < p - 1) is a complete permutation of ~11 documents D~,
(0 < j _< d - 1). For exasnple, if p = 3 and d = 6, a possible permutation matrix
is P .
0 1 2 3 4 5
p= 0 1 0 2 5 3
1 0 2 4 1 3
2 4 5 3 2 1
2. Define the document to node mapping function .4~ : D -+ X for any given row
of P, P,, (0 < i _< p - 1) as A~(Dk) = j rood n, where 3" is the index in row Pi
of document Dk, (0 < k < d - 1). If ~ = 3, r o w P 0 implies that documents 0
through 5 are m a p p e d to nodes 1, 0, 2, 1, 2, 0, respectively.
296 CHAPTER 15. D O C U M E N T ALLOCATION IN MULTIPROCESSOR
Reproduction Phase:
3. Given the mapping function Jll for a given row Pi, (0 < i < p - 1), determine
the cluster diameter, Ri,j, (0 < j _< c - 1) for each cluster association list array
entry, Cj. R~ = Max{MA~(z~k),.ai(DD, where 0 < k,1 < d - 1 and Dk,Dz E Cj}.
Then, if
{0 1 2 c= ~ a 4
M= 0[0 2 4 1 {0 2
1 {2 0 1
2 4 1 0
then R is
0 1
R = 0 4 1
1 4 2
2 4 4
5. Create a biased roulette. Compute the reciprocal of each E(Pi), (0 < i <_p - 1).
Call them E -1 (P~). Bias the roulette proportionally to E -1 (P~). Assign each
allocation an interval on the unit vector 0 to 1 based on the corresponding biased
probability. In the above example, E(Po) = 5, E(P1) = 6, and E(P2) = 8,
resulting in the following roulette wheel.
[] Alloc 0 - 0.20
[] AUoc 1- 0.17
[] Alloc 2 - 0.13
ii::-~ill
ii:iii:~:i:;~
":.Z;':::::::::::::::::::::::::::::
Thus, permutations Po, P1, and P2, are weighted at a probability of 0.4, 0.34,
and 0.26, and ate assigned the intervals [0.0, 0.4), [0.4, 0.74), [0.74, 1.0], respec-
tively.
15.4. A G E N E T I C A L G O R I T H M F O R M D A P 297
6. Replace the permutation matrix P. Randomly choose p numbers from within the
interval [0.0, 1.0]. For each of the p random values obtained, copy the allocation
permutation whose assigned ir~terval corresponds to the random value generated
into row Pi, (0 < i < p - 1). To insure the survival of successful document
allocations (permutations), the lowest cost allocation is always kept. Therefore,
if the permutation corresponding to the largest interval, say Pj, (0 < j < p - 1),
is not selected within the first p - 1 selections, Pj is assigned to row Pp-1. In
the example, if 0.23, 0.92, and 0.36 were the random numbers obtained, then P
would be
0 1 2 3 4
0 1 0 2 5 3
P =
1 4 5 3 2 1
2 1 0 2 5 3
Crossover P h a s e :
7. While maintaining a copy of the lowest-cost permutation, say P~, randomly
pair up the rows in P. If p is odd, ignore the unpaired row. For each pair of
rows in P , say A and B, randomly generate two integer values, i and j, such
that 0 < i < j < d - 1. Position-wise exchange Ai,Ai+I,A~+2,...,Aj_I,Aa,
with B~, B,+I, B;+2, ..., Bj-1, Bj, respectively within the two strings. Replace
the highest cost permutation with P~. The replacement of the resulting highest
cost permutation by Pt guarantees the survival of the "most-fit" parents. For
example, A = / ) 1 , B =/~ i = 3, j = 4, mapping string A to string B exchanges
the 2 and 5 and the 1 and 3 in row B while mapping string B to string A swaps
the 5 and 2 and 3 and 1 in row A. In this example, P0 is the minimum-cost
permutation. The resulting P is
0 1 2 3 4 5
p = 0 1 0 2 5 3 4
4 2 1 5 3 0
3 0 5 2 1 4
Mutation Phase:
8. Mutate the permutation periodically toprevent premature loss of important no-
tions [224]. Randomly choose a number from the interval [0, 1]. If the number
falls outside the interval [1 - q, 1], where q is the probability of mutation, then
terminate the mutation step. Otherwise, select a random number between 1
and r, that designates the number of mutations that occur in the given step.
For each of the mutations, select three random integer values i, j, k, such that
0 < i _< p - 1, 0 < j, k _< d - 1 , j - k, and position-wise exchange Pi,j with Pi,k.
Given q = 0.01 and r = 1, a randomly generated value of 0.006, i -= 0 , j ---- 1,
and k = 5, then P would be
0 1 2 3 4 5
O' 1 4 2 5 3 0
P =
1 4 2 1 5 3 0
2 3 0 5 2 1 4
298 C H A P T E R 15. D O C U M E N T A L L O C A T I O N I N M U L T I P R O C E S S O R
Control Structure:
9. Repeat steps 3 through 8. The precise number of iterations is dictated by an early
termination condition (all allocations are identical) or by a maximum iteration
count. Throughout the experimentation presented here, the maximum limit
was set at 1000. In the future, an appropriate limit, possibly a percentage
of the population size and/or the number of documents, will be determined
experimentally. Upon termination, evaluate the "goodness" of the allocation
defined by a row Pi, (0 < i < p - 1), and the corresponding mapping function
.Ai. Choose the best allocation.
nm
t---* OO
Hi = 0 =~wi = 0,
and
Hi----l~wi=l.
For example, the schema H -- '01 * , 1 1 . ' includes both '0111110' and '0101111'. Non-
starred elements within H are called fixed positions of the schema.
Go]dberg observed the following two determining features for any schema H:
9 o(H), the schema order: the number of fixed positions in the schema.
9 6(H), the schema length: the difference between the first and last fixed positions
in the schema H.
15.5. T H E O R E T I C A L FOUNDATIONS 299
Let re(H, t) be the number of strings in the population that are included in H at
time t. Given re(H, t), the Fundamental Theorem of Genetic Algorithms derives the
expected value of re(H, t + 1). Goldberg shows that the appearance of a schema grows
exponentially with its relative fitness, and decreases exponentially with o(H) and ~(H).
§ 2 1- '
i=l
300 CHAPTER 15. D O C U M E N T A L L O C A T I O N I N M U L T I P R O C E S S O R
where q is the probability that a mutation occurs. A schema with a small number of
fixed positions is more likely to survive.
Ignoring low order terms, we summarize the combined influence of the three oper-
ations as:
2o(H)q(n-1)~
m ( H , t + l) > m ( H , t ) ( f ( H ) ) ( 1 2(r(H) -t-5(H)) r-1
- d -q r rpnd
We continue further and analyze the behavior of a general Genetic Algorithm based
heuristic for the MDAP problem for any possible encoding of the allocations. Doing
so, we gain a general theoretical understanding of such an algorithm.
Define Q as an equivalent, unique representation of the permutation matrix P as
Qi[j] = k if and only if Pi[k] = j. The permutation Qi(O < i <_p - 1) is an allocation of
the documents onto the processors, such that document Dj(0 < j < d - 1) is allocated
on processor Xk(0 < k < n - 1) if and only if (Qi[j] rood n) = k. That is, position j
in the permutation represents document j and the corresponding entry modulus n is
the processor where the document is stored. For example, if P is:
0 1 2 3 4 5
0 1 0 2 5 3
P =
1 0 2 4 1 3
2 4 5 3 2 1
0 1 2 3 4 5
Q =
0 1 0 2 4 5 3
1 0 3 1 4 2 5
2 5 4 3 2 0 1
Replacing each value Qij E Qi with (Q~j modulus n) results in a vectoi of length
d with the values 0 to n - 1. We refer to this vector as the allocation vector s (or Si)
of the permutation Pi and to Matrix S as the allocation matrix of P. Given n = 3,
the equivalent allocation matrix for P is:
0 1 2 3 4 5
0 1 0 2 1 2 0
S =
1 0 0 1 1 2 2
2 2 1 0 2 0 1
to the same allocation. If the population size is p, then the probability that the
initialization phase yields two or more permutations that define the same allocation is:
p--1
I _ H d!-ix d I ,~
d----U-.' w h e r e x =
i=0
The effects of varying several parameters common to many genetic algorithms were
studied. These parameters include the size of the population (number of permuta-
tions) and the probability of mutation. Five population sizes ranging from 10 to 50
permutations in increments of ten permutations were examined. The population sizes
investigated were kept small to coincide with the size of the database modeled (64
documents). Our intent was to evaluate the algorithm (proof of concept) and not to
derive an allocation for an actual database. We intentionally, therefore, selected a small
database to better understand and verify our findings.
Figures 6.1 through 6.10 illustrate results for a 64 document database distributed
over 16 node systems of varying interconnection topologies. The results for two different
document to cluster partitioning are presented. Both document partitions employ 8
clusters but the distribution of documents to clusters is varied. That is, in the first
distribution (figures 6.1, 6.3, 6.5, 6.7 and 6.9), all dusters contain an equal (8) number
of documents.
4- Hyper16
85 "1[I -t- Hypor 16M
915= M e s h 1 x 16
9~ " Mesh I x 16M
75 41- M~sh 2x 8
9I ~ Mesh2x 8M
98 - Mesh4x 4M
15 | - ~ -, -, -, - ,- ~ , -, - ~ - , -
0 I00 200 300 400 500 600 700 800 900 I0001100
Iteration
F i g u r e 15.1: A l l a r c h i t e c t u r e s w i t h i n an even d o c u m e n t d i s t r i b u t i o n
In the second distribution, (figures 6.2, 6.4, 6.6, 6.8 and 6.10), 25 percent of the
clusters contain 50 percent of the number of documents. For notational convenience, we
describe a document partitioning by a four-tuple (D, C, x, y), where D is the number
documents, C is the number of clusters, and x and y represent the x percentage of
clusters containing y percent of the documents. Therefore, (64, 8, 25, 50) refers to the
latter document distribution, while the even document partitioning is represented by
(64, 8, x, x), for all values of x, 0 < x < 100.
Figures 6.1 and 6.2 present the results for all the architectures considered. A point
on any curve represents an iteration in which a better allocation was derived. As shown,
the number of points varies with the architecture considered. All runs terminated at
either a point in which the entire population (document allocations), in this case 30,
were identical or after 1000 iterations (premature termination), which ever came first.
15.6. EXPERIMENTAL EVAL UATION 303
H y p ~ 16
" ~ Hype,r 16 M
-II.- M ~ h I x 16
~ -0- M~h2x 8M
35
25"
15 9 i , i - i . i - B 9 i = i = i - i 9 i .
I00 200 300 400 500 600 700 800 900 I0001100
Iteration
Figure 15.2: All architectures within a (64, 8, 25, 50) document distribution
100
90' - m - H y p e r 16
"4- M~h lx 16
-D- M*sh 2x 8
80, -O- Mesh4x 4
70,
60,
r~
50,
40
30
20 . . . . t . . . . i . . . . i . . . . , . . . .
0 I00 200 300 400 500
Iteration
7o,,
80
6O
"g"
"~"
"#"
H y p e r 16
M e s h I x 16
Mr
Mesh4 x 4
2x 8
5 0 84
40
30'
~,~
10 ..... i ..... | ..... t ..... | ..... i ..... i ..... i .....
0 50 I00 150 200 250 300 350 400
Iteration
65'
55'
45'
35'
25,
15
I00 200 300 400 500 600 700 800 900 I0001100
Iteration
80
70 "~- Hyper16M
4- Mesh lxl6M
41- M9 2x 8M
60 ~ x 4 M .:
5O
1
] 40
30
20
40 "'
I "~ Hypcr16
4- Hyper16M
M~h4x4
35 -4P- M~h4x4M
i i..................................................
0 100 200 300 400 500 600 700 800 900 10001100
Itera~
40
Hyper 16
-O- Hyper 16 M
35 4 " Mesh 4 x 4
-0- M z s h 4 x 4 M
3O
25
10 ~
. . . . . . . . . . . . . . .
i,..,,l .......... i, ,.., i.., ,. l,. H .l., H.I .....
0 100 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0 900 1 0 0 0 1 1 0 0
Iteration
75 "~" Mesh4 x 4
"0" Mceh4 x 4M
7O
4- M c e h 16 x 1
65 xlM
6O
55
50
"i
45
40
35
30
25
2O 9 | . , . | 9 | 9 | 9
10 20 30 40 50 60
Population Size
85'
80"
75'
70'
65'
60'
55'
50'
45'
40"
35'
30
25
20
15 i i i 9 i - i 9
0 10 20 30 40 50 60
Population Size
A point at 1000 indicates that premature termination occurred. As expected, the higher
the communication diameter of the architecture, the greater was the improvement in
the derived allocation.
Figures 6.3 and 6.4 and 6.5 and 6.6 more clearly illustrate the behavior of the
proposed algorithm in the case where no genetic mutations are possible and when a
0.5 probability of mutation exists, respectively. A 0.5 mutation implies that with a
probability of 0.5, a random number of pairs ranging from 1 to 10, will be exchanged.
T h a t is, on average, 2.75 pairs will be exchanged per iteration. Figures 6.7 and 6.8
illustrate the effects of mutation on the allocations derived for a hypercube and a 4-by-4
mesh system. As seen, and in all runs performed, mutation results in better allocations.
The better allocations result from the prevention of local minima interference.
Finally, figures 6.9 and 6.10 demonstrate the effects of varying the population size
from 10 to 50 allocations in increments of 10. When mutations are not possible,
the performance consistently improves with the increase in the population size. The
improved allocations result from the greater number of possibilities explored during
each iteration. In the case where mutation is possible however, initially the performance
is improved and then eventually deteriorates. The improvement, as in the case where
mutations are not possible, is caused by the increase in the number of possibilities
explored. Since s maximum number of mutations per iteration is kept constant
throughout, increasing the population size reduces the effects of mutation. Thus, the
benefit derived from the mutation phase is diminished. Diminishing the effects of the
mutation phase results in a derived allocation that more closely resembles the case in
which no mutation is possible. Hence, the performance degrades.
An individual permutation p at a given generation t designates a sample point
(p, t) w i t h i n the total search space. Therefore, given a fixed number of generations
(iterations), it is to be expected that the larger the population, and hence the search
308 CHAPTER 15. DOCUMENT ALLOCATION IN MULTIPROCESSOR
space, the better is the derived allocation. A more balanced evaluation compares the
effects of varying the population size on the derived allocation if a constant explored
search spaced is maintained. That is, an increase in the population size results in a
corresponding decrease in the number of generations permitted. Experimental results
from such a study are presented in tables 6.1 and 6.2. As seen, a clear preference
regarding a larger population versus a longer search is not demonstrated.
Ideally, the cost of the derived mapping should be compared against the cost of
an optimal allocation. Since determining an optimal mapping, in the general case, is
not computationally feasible (the problem was shown to be NP-Complete in Section
15.7. CONCLUSIONS AND FUTURE DIRECTIONS 309
2), two alternative comparison metrics were developed. The first comprised of ran-
domly drawing 100,000 valid (an even distribution across the nodes) permutations and
choosing the best allocation among those drawn. The second solution involved the
development of a greedy document allocation algorithm based on best fit mappings.
Tables 6.3 and 6.4 compare the derived mappings of the random, greedy, and genetic
algorithm solutions. The genetically derived solutions are based on a population of size
30, (p = 30), and a 1000 iteration search space. In all cases, for both document dis-
tributions, the genetic algorithm approach yielded significantly better mappings than
either the random or the greedy algorithms. The relationship between the greedy and
random algorithms was not derived as neither algorithm yielded acceptable mappings.
(The execution time, in seconds, for all genetic and random algorithms was roughly
equivalent. The greedy algorithm took substantially less processing time.)
15.7 C o n c l u s i o n s and F u t u r e D i r e c t i o n s
The performance of multiprocessor information retrieval systems depend not only
on the underlying parallel technology employed but, at least as significantly, on the
organization of the d a t a to be retrieved. Poor d a t a allocations result in minimal perfor-
mance gains on a parallel engine as compared to a uniprocessor system. The problem
addressing the derivation of document allocations that support efficient retrieval of
documents from a distributed-memory multiprocessor is called MDAP. As an optimal
solution to MDAP is not computationally feasible (MDAP is NP-Complete), we pro-
posed a genetic algorithm for MDAP. A proof demonstrating the convergence of our
derived mappings to an optimal mapping was provided. Via simulation, the derived
document allocations were analyzed. The results obtained compared favorably with
both a random and a greedy algorithm.
To complete the described effort, we are presently developing a parallel version
of the described genetic algorithm. The parallel algorithm will be able to process
significantly larger document sets within an acceptable amount of processing time. As
demonstrated in the study by Blair and Maron [65], results obtained using a small
document set do not always apply to significantly larger collections. Experimental
results using an Intel iPSC/2 will be reported at a later date.
We are also presently developing RIME (Retrieval of Information from a Multicom-
puter Engine). Once developed, we will evaluate the actual response time difference
resulting from the use of various standard document allocation schemes, e.g., round-
robin, hashed, etc., and those allocations derived by the parallel version of the described
genetic algorithm.
310 CHAPTER 15. DOCUMENT ALLOCATION IN MULTIPROCESSOR
Acknowledgments
We graciously acknowledge the assistance and comments of Kenneth DeJong, Michael
Fredman, and William Steiger.
Chapter 16
Amalgame*: A Tool for Creating Interoperating,
Persistent, Heterogeneous Components t
16.1 Introduction
Persistent applications are becoming more and more "open" in terms of topology, plat-
form and evolution, thus creating a need for a component-based approach to their
development. However, the integration of persistent software components becomes in-
creasingly difficult as we move up through the low-level layers of hardware, operating
systems, database schemas and d a t a manipulation languages to the upper-layers of
ontologies, application languages and application systems. Most previous approaches
to component interoperability have provided support at the representation and specifi-
cation levels with little or no concern to scalability and applicability of such support to
layered persistent systems. The Amalgame system, being implemented at University
of Colorado at Boulder, addresses higher semantic levels of interoperability, including
languages, interfaces, and schemas, with a special focus on language/database interop-
erability. The Amalgame system is part of the Heterogeneous and persistent APPlica-
tions interoperabilitY project (called L'Heureux 82 from the acronym "HAPPY"). We
shortly introduce the intent, organization and requirements of the larger project. We
then focus on the goals and novelty of the Amalgame sub-project.
*We are using the French spelling of the equivalent English word "amalgam".
t This material is based on work sponsoredby the Advanced Research Projects Agency under
Grant Numbers MDA972-91-J-1012 and N00014-92-J-1862, and by the Office of Naval Research
under Grant Number N00014-92-J-1917. The content of the information does not necessarily
reflect the position or the policy of the U.S. Government, and no officiM endorsement should
be inferred.
SDepartment of Computer Science, Campus Box 430, University of Colorado, Boulder, CO
80309, U.S.A.
w of Computer Science, Campus Box 430, University of Colorado, Boulder, CO
80309, U.S.A.
82 for "the happy one"; L'Heureux is Roger's real family name.
314 CHAPTER 16. AMALGAME
Arc A1 Arc A2
/ A1 = {vl, v2, v3, v4, v5}
Vl v, ~ v 4 , v5, v6, v7, vS, V9 }
v7
v9
IIThe development of L'Heureux is being funded by ARPA, ONR and USWest. In particular,
research related to the design and implementation of AmaJgarne at University of Colorado (CU)
is being funded under the ARPA CU-Arcadia and CU-Prototeeh efforts.
316 CHAPTER 16. AMALGAME
16.3 A n O v e r v i e w of A m a l g a m e
The Amalgame system provides a toolkit designed to assist the construction of hetero-
geneous and persistent programs. The various components of the Amalgame system
are fully extensible; they allow designers to interoperate arbitrary code fragments at
selected granularities of semantics, and produce reasonably efficient heterogeneous ap-
plications. Using concrete examples, we give a high-level overview of the Amalgame
architecture and show how it is used to implement heterogeneous and persistent pro-
grams. Our architectural overview describes Amalgame from the designer's point of
view, the specification language which guides the designer through the construction
process, and an architectural view of the Amalgame framework itself.
~Menu-driven~
Browser
irR - e Amalgame i x--_/rPanorama~
~eenerator I I Framework ~ Interface |
E• " I I "(Ala oa e
?r'ver J L L,~176
w
\ f
I
16.3.3 P r a c t i c a l U s e of t h e A m a l g a m e Toolkit
To describe the construction of a heterogeneous application using the Amalgame
toolkit, we step through the various phases of the Rebus and PGraphite interconnec-
tion process mentioned earlier. We assume that a fictitious human designer interacts
16.3. A N O V E R V I E W OF A M A L G A M E 321
with a running Amalgame server through a menu driven client interface. For reasons
described in section 16.4 of this chapter, our fictitious designer would like to inter-
operate Rebus with a PGraphite Rebus-like application. As a result, he is wondering
whether Amalgame has been previously exposed to similar applications and can supply
any reusable components.
To answer this question, our designer selects the Amalgame browse menu option to
invoke the Eiffel graphical browser and starts exploring the existing Amalgame clusters.
In Eiffel terminology, a cluster is a group of related component classes. In Amalgame,
any defined application is attached to an environment which itself corresponds to an
Eiffel cluster. To simplify our presentation we assume that the cluster list displayed by
the browser does not show any evidence of applications related to Rebus or PGraphite.
At this stage, our designer can select existing clusters one by one and browse through
them. Another alternative is to select the language processor option and submit a
small ASL script to query the Amalgame framework using the "Find" construct. Fig-
ure 16.3 below shows an example of such a script devised to identify any Amalgame
environment containing components related to the keywords "Rebus" or "Requirement
Specification".
Find ENVIRONMENT
With Rebus, Requirement Specification
The ASL "Find" construct is implemented through Findit which is part of the
Amalgame extended toolset functionality provided by the L'Heureux toolkit. Other
ASL constructs are supplied to assist designers in locating related Amalgame framework
class components. In particular, the ASL "Browse" and "Show" constructs provide an
alternative to using the graphical browser.
At this point our designer is in the worst case situation where Amalgame cannot
provide reusable framework component classes to build upon. He is now ready to start
from scratch and step through the various phases of the Amalgame heterogeneous
application construction process. These various phases include the encapsulation of
selected Rebus and Pgraphite functionality into framework component classes of speci-
fied AmaJgame environments, the creation and refinement of the infrastructure required
to relate these encapsulated components to the selected application functionality, the
interconnection of the encapsulated components, and the generation of a run-time ex-
ecutable heterogeneous application.
To start with, our designer creates a new Amaigame environment for these applica-
tions. The ASL constructs provided to assist the designer in this process are illustrated
in Figure 16.4 below.
"A..APPL/A" and "A_PGRAPHITE" are the names of the Amalgame environ-
ments selected to respectively contain Rebus and PGraphite Rebus-like components.
This naming scheme provides a good basis for clustering as it suggests grouping appli-
cations written in A P P L / A in the A_APPLA clusters and applications generated using
PGraphite in the A _ P G R A P H I T E cluster.
As they attach a new environment to Amalgame, designers may be aware of a subset
of rules for interchanging basic and/or complex types between the type system of the
322 CHAPTER 16. AMALGAME
environment they are attaching and the Eiffel type system. Amalgame data dictionary
files provide a specific syntax for expressing these rules and communicate them to the
Amalgame system. In particular, the "With" field, in the "Attach Environment" ASL
construct, is used to specify an optional Amalgame data dictionary file name. However,
by selecting "NONE" in the "With" fields, our designer chose to implement the type
conversions as part of the component specification.
Our designer is now ready to encapsulate selected functionality from the Rebus and
PGraphite Rebus-like applications into framework component classes of the respective
"A_APPL/A" and "A_PGRAPHITE" AmaJgame environments. As explained in sec-
tion 16.4, his goal is to store persistent ]~ebus objects interchangeably using Triton or
PGraphite. He is therefore trying to isolate the Rebus functionality that manipulates
these persistent components. Careful examination of the Rebus source code reveals
that the nine underlying A P P L / A relations which compose the Rebus process pro-
gram are mapped into a single Triton relation which provides a better compromise
for encapsulation. Figure 16.5 above illustrates the portion of the ASL script which
encapsulates the Triton relation.
Now that appropriate Amaigame class components have been created, our designer
is ready to use the Amalgame extension library to help specify the necessary infras-
tructure to relate his class components to the original Rebus and PGraphite Rebus-like
applications. Amalgame provides library clusters containing various extension compo-
nents, which are generic implementations of a specific type of support mechanism.
Amalgame currently provides data dictionary, communication and translation library
clusters. The set of support mechanisms can easily be extended by adding new clusters
and populating them with extension components implementing the adequate support
mechanisms. Extension components package functionality from existing Arcadia tools
such as Q [392], Triton [247], Chiron [314], and the client/server based generic inter-
connection scheme supplied by A la carte.
At this point our designer chooses to implement a client/server infrastructure.
While browsing through the Amalgame communication library, he notices that the Q-
based communication extension components. "aserver.e" and "aclient.e" provide the
functionality required to solve his problem. These two components also require the
translation extension "adr.e" and the data dictionary extension "add.e'. Figure 16.6
above illustrates the partial contents of the "aserver.e" extension component selected
to support the Rebus communication server mechanism.
To make the selected library generic support mechanisms available to his framework
component environments, our designer uses the ASL "Attach Extension" construct as
16.3. A N OVERVIEW OF AMALGAME 323
16.3.4 T h e I n t e r n a l A r c h i t e c t u r e of t h e A m a l g a m e T o o l k i t
The Amaigame internal architecture implements support mechanisms for creating,
maintaining, and interconnecting heterogeneous framework components. These mech-
anisms are handled by various Amalgame underlying components including the persis-
tent object base (POB), the ASL lexieai analyzer and parser, the framework config-
uration manager, the framework component context handler, and additional support
facilities for transaction, correctness and constraint management.
The Amalgame POB is implemented using the Eiffel environment support facilities.
In Eiffel, an environment represents a set of persistent objects that can be individually
326 CHAPTER 16. A M A L G A M E
in the submitted scripts. Once scripts are successfully parsed, the Amalgame lan-
guage processor applies the AmMgame semantics, which implement the specified ASL
constructs through the Amalgame framework configuration and component context
managers.
The Amalgame framework configuration manager maintains a table of configura-
tion connector components to keep track of the inter-relations between the various
Amalgame environments. The configuration connectors also keep track of component
classes and extensions attached to each particular environment. Finally the configu-
ration connectors associate and maintain the keys associated to the Amalgame frame-
work components in their corresponding environments. As an example, during the
encapsulation process described in section 16.3.3, the configuration manager defines
two separate configuration connectors for the "A_APPL/A" and "A_PGRAPttITE"
environments. A third configuration connector is defined for to the Rebus/PGraphite
environment.
The framework component context manager interacts with the framework configu-
ration manager to create new configuration connectors or check the consistency of ASL
constructs according to existing configuration information. The context manager also
creates context-based mapping connector components which are used to seamlessly
adapt the features of encapsulated components through modifiers specified using the
ASL. In the case of the example given in section 16.3.3, the Amalgame context manager
creates a connector component which inherits the deferred insert, delete and update
features of the "A.-APPL/A.TRITON.RELATION" (see section 16.3.3, Figure 16.5)
328 C H A P T E R 16. A M A L G A M E
Execute APPL/A.TRITON.RELATION
and defines the insert method using the specification provided in the modifier (as
shown in section 16.3.3, Figure 16.9). The functionality of the resulting context-based
connector component is illustrated in Figure 16.11 below.
To generate a run-time version of "A_APPL/A.TRITON.RELATION", the context
manager combines all the context-based connectors defined for "A_APPL/A.TRITON.-
RELATION" into a single object and supplies an access method to allow this generated
component to sense the context in which it is accessed at run-time. This explains how
the " P G R A P H I T E " context parameter is used at run-time by "A_APPL/A.TRITON.-
RELATION" to select the insert method shown ill Figure 16.11.
This component context sensitivity plays an important role in supporting concur-
rency control mechanisms and transaction management facilities within heterogeneous
applications created by AmMgame. Let us assume that we are implementing an hetero-
geneous application which is somewhat more complicated than the one we describe ill
the Arcadia experiment. This application still involves a "A_PGRAPHITE.REBUS"
component but this component is now accessible in the context of REBUS as well
as P G R A P H I T E . We also assume that the implementations of the modifier methods
defined for the P G R A P H I T E context access "A_PGRAPHITE.REBUS" in the con-
text of REBUS. In this case, accessing "A__PGRAPHITE.REBUS" in the context of
PGRAPI-IITE triggers a begin transaction for this particular component/context com-
bination. When "A_PGRAPttlTE.REBUS" is accessed in the context of "REBUS"
AmMgame senses the context parameter, finds out that it is different from the current
transaction context and triggers a nested begin transaction. This example illustrates
the nested transaction model implemented by Amalgame on the basis of defined context
parameters.
To implement the nested transaction model just described, the run-time version
of "A_APPLA.TRITON.RELATION" is created by AmaJgame as a multi-threaded
object which supports concurrency control and a nested transaction model to s w i t c h
between its defined access contexts. As a result, ff PGraphite were to use a version
of Mneme which supports transaction management and concurrency control, we could
create a heterogeneous application on top of Mneme that supports a context-based
nested transaction model. A similar approach that combines the definition of active
threaded objects in an object-oriented model is described in [82]. As an alternative to
the nested transaction model just described, Amaigame also provides ASL constructs to
reuse existing transaction management and recovery mechanisms supplied by A la carte
through the extended toolset functionality provided by the L'tieureux toolkit.
The context-sensitive mechanism we just described was largely inspired by the TI
16.3. A N OVERVIEW OF AMALGAME 329
...)
export
insert, d e l e t e , update
feature
insert(relation: STRING, name: namestring) is
local
node: REBUS;
id: integer;
do
(..)
if relation = ~ n o d e n a m e " then
id = GetUniqueId(name);
node. Create(~RebusNode'');
node.AssociateNodeWithId('~RebusNede'');
node.PutAttribute(node.id,relation,name);
node.PutAttribute(node.id, ~Cnodeid", id);
end
end -- insert
delete(instance: NODEJAME_TUPLE) is
deferred
end; -- delete
update(instance: N O D E ~ A M E ~ U P L E ,
update_neuae: BOOLEAN is false,
name: NAME~TRING is ~nename'') is
deferred
end; -- update
end
(...)
"Modifier For" construct. The corresponding Amalgame invariant rules that the set
of modifiers associated to a class component in a certain context must match the set
of modifiers defined for this context. To meet this invariant, Amalgame currently
implements a single policy as an internal policy performer. This performer selectively
retrieves the proper set of modifiers which are applicable to a specified framework class
component in a certain context.
To complete the description of the Amalgame internal architecture, we briefly de-
scribe its additional support facilities'for transaction, correctness and constraint man-
agement. Amalgame provides transaction management support as part of its generic
extension components. Indeed, the begin, commit and abort methods provided in an
extension mapping such as "TRITONAVIAPPING" can be used to group multiple ASL
constructs in a single transaction. Within this transaction, Amalgame automatically
implements a nested transaction model using the context parameter as a basis for lock-
ing components. An example of a heterogeneous application making use of this nested
transaction model was presented earlier in this section.
Amalgame also inherits correctness enforcement mechanisms from the Eiffel lan-
guage. Semantical correctness ensures that a class implementation conforms to its
specification and other requirements. Eiffel provides language constructs which can be
checked dynamically to ensure partial correctness of run-time programs. In particular,
Eiffel supports the definition of class invariants, method pre/post conditions, and loop
variants/invariants. We refer heterogeneous application designers to the Eiffel language
documentation [279] for a complete description of correctness mechanisms.
Finally, the ASL supports constraint specification, detection, and enforcement, as
part of the extended functionality provided by the L'Heureux toolkit through its het-
erogeneous constraint package. Using this package through special ASL constructs,
designers can ensure correct heterogeneous component integration and maintain con-
sistency in heterogeneous environments.
Modifications a n d A m a l g a m e S u p p o r t f o r R e b u s
Some small modifications are inserted in the Rebus DAG editor server at the level of its
Triton client interface. These modifications involve initialization and shutdown of the
Amalgame heterogeneous server, and execute method calls to invoke the Amalgame
encapsulated Rebus application component. Actual modifications added to the Triton
relation insert procedure are shown in Figure 16.14 below.
The execute method calls inserted in the Rebus DAG server Triton interface are pro-
cessed by a generic Ada client interface obtained from the Amalgame communication
library. This client interface is specifically designed to communicate with the server
extension component used to create the extension mapping "TRITON_MAPPING"
in section 16.3.3. The generic Ada client interface obtained from the Amalgame li-
brary does not require any modification, it is simply compiled and linked to the Rebus
server/client component. Figure 16.15 below shows the Ada specification for the Amal-
game supplied client package.
M o d i f i c a t i o n s a n d A m a l g a m e S u p p o r t for P G r a p h i t e
Modifications and Amalgame support provided for the PGraphite generated Ada ap-
plication are of similar simplicity as the ones provided for Rebus. Therefore, we omit
the details concerning the Amalgame supplied server interface and the associated mod-
ifications to the PGraphite'application. Figure 16.4.2 below illustrates the GDL script
implemented to specify the Rebus relations in terms of a PGraphite node kind.
class RebusDhG is
package Rebus ;
with Unix_Time. (Time_T) ;
subtype uniqueid is INTEGER ;
subtype timestamp is Unix_Time.TimeX;
332 CHAPTER 16. AMALGAME
Chiron and multiple underlying databases. This will help us evaluate the support
provided by Amalgame to place Chiton on top of multiple object managers.
16.6 Conclusion
The Amaigame system provides an integrated solution to the persistent heterogeneous
component interoperability problem by addressing various levels of interoperability
among languages, interfaces, and schemas. In this chapter, we have thoroughly de-
scribed the architecture of Amalgame and discussed an interoperability experiment
involving Arcadia tools.
The existing Amalgame prototype could be improved in many ways. Constraints
between heterogeneous components could be managed in a more flexible fashion. Inter-
faces to existing or upcoming components of the L'Heureux toolkit should be created or
perfected to improve the level of automated assistance. Finally, new components should
populate the extension library to further enhance existing communication, translation,
data dictionaries, or transaction management schemes, and support the various types
of execution models found in diverse application domains.
Amalgame contribution to the "open" database research world is to provide a
framework for analyzing the components that should be exposed to ease interoper-
ability among future database systems. Amalgame provides an important enabling
technology which applies to a large number of application domains ranging from wide
integrated, extensible, broad-scope persistent environments to larger, evolving, hetero-
geneous persistent software systems.
16.7 Acknowledgments
We appreciate the comments and suggestions provided by Dennis Heimbigner, Stun
Sutton, Mark Maybee, Shenxue Zhou, Athman Bouguettaya and Jim Dairymple who
all contributed to the design and implementation of the Amalgame system.
16.7. ACKNOWLEDGMENTS 335
Graphspe~ifmdusing Graphspecified
APPL/Ar e l a t i o ~ usingGDL
GDLscript )
~ : A m a l g a m e interconnection
--9- ~ I ~.~g~.e i
with system;
withq, qpc, qdr, q_pc_clnt;
package amalgame is
amalgame_access_error: exception;
amalgame_c onstraint_error : exception;
17.1 Introduction
Many industrial computing environments consist of multiple data processing systems
developed along functional or organizational divisions. Each such system usually au-
tomates a part of company operations and consists of an application and a centralized
DBMS. While the systems are frequently interconnected, they typically are not inte-
grated and provide a limited support for interoperability. An important problem in
such environments is to maintain a desired level of consistency of data across these
systems, in the presence of concurrent update operations.
The concept of interdependent data has been introduced in [518] to provide a
framework for studying data consistency in multidatabase environments. Interdepen-
dent data are data objects related by consistency requirements and possibly managed
by different systems. These objects could be quite different structurally and seman-
tically. Data dependency descriptors (D3s) [479] are used to specify the dependency
between related data objects, the levels of permitted inconsistency, and methods that
can be used to restore the consistency if it is violated beyond the specified limits.
In addition to the specification of data consistency requirements, two additional
issues need to be addressed to manage interdependent data: (a) correctness of the
specifications and (b) enforcement of the specifications. In this chapter, we address
these two issues for a wide range of interdependency specifications. However, given the
complexity of handling relaxed constraints consisting of both data state and temporal
components in an environment consisting of heterogeneous and autonomous systems,
significant additional work will be needed in the future.
An update to an interdependent data object, may violate the consistency require-
ments among interdependent data objects. The mutual consistency requirements may
not require immediate restoration of full consistency. Instead, a promise from the
system that the consistency will be restored eventually, may be sufficient. Various
relaxed consistency criteria have been proposed in literature. The relaxed criteria of
consistency for replica control include k-completeness [489], c-serializability [456, 631]
and N-ignorance [333]. The above three criteria allow limited inconsistency among
replicas specified in terms of the number of updates or other countable events. D3s
allow specifying more general criteria of lagging consistency and eventual consistency
to capture relaxed consistency requirements involving a variety of temporal and data
state based parameters among interdependent d a t a [519].
When the consistency limits of a dependency descriptor are exceeded, an additional
transaction may be created automatically to restore the consistency of the interdepen-
dent data. The execution of this transaction may affect consistency requirements spec-
ified by some other D a and another transaction may be activated. We refer to a tree of
transactions, initiated by an update to an interdependent data, as a polytransaction
[519].
Polytransactions allow automatic maintenance of multidatabase consistency, based
on the weak consistency requirements. When immediate consistency is not required,
an update to a d a t a item can be decoupled from the actions that would need to ac-
company it to restore the mutual consistency. These actions can be executed later,
within the limits specified by the dependency descriptor. Such an approach also allows
to reduce the number of remote transactions that are needed to maintain mutual con-
sistency. These consistency-restoring transactions may need to be executed only when
the consistency requirements are violated rather than after every update.
The weak mutual consistency criteria may allow a situation in which an object does
not reflect all the changes to the d a t a items to which it is related, but the inconsistency
remains within the allowed limits. We discuss the conflicts between polytransactions
and the correctness of concurrent execution of polytransactions. While the serializ-
ability can be used when no temporal terms are involved, we introduce the concept
of temporal serializability that considers serializable schedules for nontemporal con-
straints as well as temporal precedence for temporal constraints.
This chapter is organized as follows. Section 17.2 reviews our framework for spec-
ifying interdependent d a t a and presents a conceptual architecture in which the speci-
fications can be enforced. Section 17.3 discusses the correctness of dependency speci-
fications. Section 17.4 defines the polytransaction mechanism. Section 17.5 discusses
the consistency states of interdependent d a t a objects and various operations/events
that lead to the state transitions. We also discuss the need to control updates by local
transactions. Section 17.6 discusses the correctness of the execution of a single poly-
transaction and the issues related to concurrent execution of polytransactions. Finally
Section 17.7 provides conclusions.
17.2 Background
In this section we briefly review our framework for the specification of interdependent
data. A more detailed discussion can be found in [479, 519]. We then discuss a concep-
tual architecture that could support maintenance and enforcement of specifications.
D 3 =< S , U , P , C , A >
where:
9 S is the set of source data objects,
9 U is the target data object,
9 P is a boolean-valued predicate called interdatabase dependency predicate (de-
pendency component). It specifies a relationship between the source and target
d a t a objects, and evaluates to true if this relationship is satisfied.
9 C is a boolean-valued predicate, called mutual consistency predicate (consistency
component). It specifies consistency requirements and defines when P must be
satisfied.
9 A is called actioncomponent and contains information about how the consistency
between the source and the target d a t a object may be restored.
The objects specified in S and U may reside either in the same or in different
centralized or distributed databases, located in the same or different sites. We are
particularly interested in those dependencies in which the objects are stored in different
databases managed by a local database management system (LDBS).
The dependency predicate P is a boolean-valued expression specifying the relation-
ship that should hold between the source and target d a t a objects.
The consistency predicate C, contains mutual consistency requirements specified
along two dimensions - the d a t a state dimension s, and the temporal dimension t.
The specification of the consistency predicate can involve multiple boolean valued
conditions, referred to as consistency terms and denoted by ci. Each consistency term
refers to a mutual consistency requirement involving either time or the state of a d a t a
object.
The action component A, is a collection of consistency restoration procedures. They
specify actions that may be taken to maintain or restore consistency. There can be
multiple restoration procedures, and the one to be invoked, may depend on which
conditions lead to the inconsistency between interdependent data. The execution mode
can be defined for each restoration procedure to specify the degree of coupling between
the action procedure and its parent transaction (i.e., the transaction that invokes it).
The set of all D3s together constitutes the Interdatabase Dependency Schema, (IDS)
[519]. It is conceptually related to the Dependency Schema presented in [373].
Alternative ways to specify consistency requirements among related data have been
also discussed. Identity connections [609] introduced a time based relaxation of mu-
tual consistency requirements among similarly structured d a t a items. Relaxed criteria
based on numerical relationships between data items have been proposed in [34]. Quasi-
copies support relaxed consistency between primary copies and quasi-copies, based on
several parameters [16]. E-C-A rules can be used to specify the C and A components
of D3s [138]. In [90, 91] interdatabase constraints axe translated to production rules in
a semi-automatic way, using a language based on SQL, to specify consistency between
340 CHAPTER 17. MULTIDATABASE INTERDEPENDENCIES
interrelated data objects. The derived production rules enforce consistency by gener-
ating operations automatically. However, tolerated inconsistencies are not allowed in
that approach.
In the following example, we illustrate the use of D3s, for the specification of
consistency requirements between a primary and a secondary copy, as a special case
of replicated data. We assume that copies of data are stored in two or more data-.
bases. The dependency between all copies requires that changes performed to any
copy are reflected in other copies, possibly within some predefined time. Let us con-
sider the relation D 1 . E M P (i.e., relation E M P stored ill database D1) and its replica
D3.EMP_COPY. We assume that E M P must always be up-to-date, but we can tol-
erate inconsistencies in the E M P _ C O P Y relation for no more than one day. q~he
following pair of dependency descriptors represents this special type of replication:
8: D1.EMP $ : D3.EMP_COPY
U: D 3 . E M P _ C O P Y U : D1.EMP
P: EMP = EMP_COPY P: EMP = EMP_COPY
C: ~(day) C : 1 update on S
~" Duplicate-EMP .A : Propagate_Update_To_EM P
( E M P is copied to E M P _ C O P Y ) . as coupled & vital
(The update on E M P _ C O P Y
is repeated on EMP.)
The two descriptors above, represent a case of a bi-directionai dependency between
two database objects. The target object in one descriptor is the source object in the
other descriptor. The consistency predicate P is exactly the same in both D3s. The
consistency between the two objects is specified as follows: whenever an update is
performed on E M P _ C O P Y , it must be reflected immediately in the E M P relation.
On the other hand, consistency will be restored in the E M P _ C O P Y with respect to
the updates on E M P only at the end of the day (although there may be a number of
updates performed to the E M P during that day).
commands to a transaction (e.g., see [517]) or linking the data manipulation routines
with procedures that inform the monitor, tn addition, the monitor needs to know
the changes to interdependent d a t a before and/or after the updates are performed. If
the consistency requirements are violated, the DS would invoke appropriate actions
to execute restoration procedures on the d a t a managed by the DMs. Under the pro-
posed architecture each site can be monitored independently. DSs at different, sites
can communicate with each other, exchanging information between monitors.
A transaction submitted to a DS is analyzed before being executed by the DM.
In particular, the DS consults the IDS to determine whether the data accessed by the
transaction are dependent on d a t a controlled by other DMs. Then, a series of related
transactions may be scheduled for execution to preserve mutual consistency of related
data. The initially submitted transaction, and related transactions corresponding to
restoration procedures, are submitted to the DMs that manage the databases where
d a t a to be updated are stored. After the execution of a restoration procedure, the
values of the various components of the dependency descriptors that are maintained
by the monitor, including the consistency terms c,, are updated. Special precautions
must be taken to properly serialize the execution of these monitoring transactions with
respect to the updates, to assure that the v~lues observed by the monitor correspond
to consistent snapshots of data. Once it is determined that the inconsistency among
the interdependent d a t a has exceeded the limits specified in the IDS, either in the
terms of the d a t a state, or temporal constraints, appropriate procedures are invoked
to restore the consistency.
The I D S itself can be either centralized or distributed over multiple systems. In
the latter case, only those dependency descriptors that have their source or target
objects stored locally might be kept in the IDS partition associated with the DS.
I DM
d a t a object). If a D 3 has multiple source d a t a objects, we create edges from all partic-
ipating source objects to the descriptor vertex. From that descriptor vertex, another
edge is directed to the target object vertex of the D 3. In Figure 17.2 the descriptor
D~ specifies the relationship between the source object ol and the target object o3.
Descriptor D 3 connects two source objects ol and o2, with the target object o4. An
object vertex with no incoming edges is called a top vertex. In Figure 17.2 objects ol
and 02 are top vertices.
Every d a t a object vertex o~ has outgoing edges to all dependency vertices d~ in
which it participates as a source object. A dependency vertex di, has incoming edges
O1 02
3 3
03 04
from all the d a t a object vertices that are sources in the dependency descriptor it
represents, and an outgoing edge to the vertex that represents its target d a t a object.
Hence, we have
O1 02
(~)
03
F i g u r e 17.3: Conflicting D a t a D e s c r i p t o r s
related through descriptor D13 and 02 is related with object 03 through descriptor D~.
The dependency predicates P1 of D~, and P2 of D~ are given below:
P1:o3=o1+3
P2 :o3 = 0 2 * 2
Additionally, the consistency predicates C of both D3s specify that the updates
on the sources should be propagated to the targets immediately. If the initial values
are ol = 1, o2 = 2 and o3 = 4, both D3s are satisfied. Suppose that ol is updated to
5, which is propagated to os through descriptor D~, updating o3 to 8 (5+3). Then,
P2 predicate in D23 is violated. If o2 is now updated, the result of this update is
propagated to o3 invalidating the effects of the previous update on o3 resulting from
D13. In general, there is no way the system can ensure that both dependency predicates
are satisfied simultaneously. The problem is due to the existence of two D3s targeting
the same object, whose consistency predicates overlap (in this particular example they
are exactly the same). In general, it is not clear what semantics these two D3s convey,
and situations like this may lead to uncertainty about the D 3 that updates the target.
It is similar to the case where two rules have the same right hand side and both are
triggered. Stonebraker et. al, refer to such updates as non]unctional [553]. One way
344 CHAPTER 17. MULTIDATABASE INTERDEPENDENCIES
to avoid this problem is not to allow specification of a D 3 that targets a data object
which is already a target of another D 3.
However, this approach is rather restrictive, since there may be cases that a tar-
get object must be mutually consistent with more than one source data objects. Our
framework is flexible enough to allow in a single D 3 the specification of consistency be-
tween multiple sources and one target. For this reason, we recommend incorporating all
source objects having the same target into a single D 3. The collection of all consistency
information regarding the same target object into a single D e gives a uniform struc-
ture to the IDS. The advantages of this approach include a better description of the
I D S , a natural criterion for fragmenting it, and also a safeguard against the creation
of new D3s that may potentially undo actions that other D3s enforce. SchematicaJ]y
we illustrate this by re-directing all edges terminating at the same target object, to the
same descriptor vertex containing the D 3, as shown in Figure 17.3b. The target object
always belongs to one D 3. Whenever a new D 3 is to be created targeting an object
that is already the target of an existing D 3, the two descriptors must be merged to one
with the P, C, and A predicates, appropriately augmented. w Therefore, we impose the
following restriction to the dependency graph: each data object vertex has at most one
incoming edge, i.e., its in-degree(o 0 E {0, 1}.
In this example, a cycle exists between objects oi and oj in the dependency graph.
If an update occurs on oi so that P1 no longer holds, oj becomes inconsistent, and
must be updated by executing the procedure Update_oj. After oj has been updated,
the P2 predicate is violated. That means, oi is inconsistent, and requires immediate
execution of the Update_o, procedure. This could be repeated indefinitely.
The above abnormal behavior is caused by the fact that each Pi predicate of the
corresponding D3s is not the inverse of the other. If P2 were oi = oj - 2 instead of
oi = o j - 3 the cycle would be acceptable since after performing A2, P1 and P2 are both
satisfied. Therefore, no more updates will be performed due to restoration procedures.
Cycles that do not cause infinite number of updates are harmless and are referred to
as stable.
One way to avoid unstable cycles is to disallow cycles in the I D S . However, this
may be too restrictive, since there may be applications that require cyclic dependencies.
Therefore, we will require that all cycles in the I D S are stable.
To generalize the previous discussion let us assume a cyclic dependency graph as
illustrated in Figure 17.4. All updates resulting from an update to ol can be propagated
w the designer of the D 3 is knowledgeable about the semantics of the existing 0 3 targeting
the same object, it is easy to merge the two D3s into one.
17.4. POLYTRANSACTIONS 345
/~ : 02 = 0 1 + 3 ,
P2 : 0 3 = 0 2 - - 1,
then for a stable cycle we must have
Ps : ol = 0 3 - 2 .
-]
E
~f
02 r k..~ Ok
F i g u r e 17.4: A cyclic d e p e n d e n c y g r a p h
17.4 Polytransactions
Transaction management technologies have been developed to ensure proper inter-
leaving of concurrent activities, and to maintain database consistency. Most of the
concurrency control methods proposed for distributed databases use the concept of
one-copy serializability to support mutual consistency of related data. In most cases,
its use is limited to replicas. In the context of semantically related d a t a maintained
in multiple databases, one-copy seriMizability, and the corresponding replica-control
mechanisms, may be unnecessarily stringent, expensive or difficult to implement. A
possible approach to this problem is to use application/operation semantics to allow
harmless non-serializable conflicts [209, 185].
In an environment consisting of multiple autonomous systems, the concept of global
(multidatabase) transaction that is composed of a well-defined set of subtransactions
346 CHAPTER 17. MULTIDATABASE INTERDEPENDENCIES
may be too restrictive. The need to relax atomicity, isolation and durabifity are dis-
cussed in various papers in [172]. The transactions we are interested in may not have
all the ACID properties [240]. We require that a transaction is correct in a sense de-
fined by the semantics of the apphcation. Depending on the apphcation, requirements
weaker than absolute consistency may optionally be imposed on updates performed on
interdependent data.
Some of the earher efforts that support enforcement of weaker consistency criteria,
but more hmited that those that can be expressed using D3s, or in a hmited system en-
vironment, are as follows. Mechanisms to enforce c-seriahzability [631] and N-ignorance
[333] have been proposed. Demarcation protocols allow maintenance of arithmetic con-
strains [34]. An enforcement mechanism for some types of interdependent data specifi-
cations was proposed by extending a distributed transaction management approach in
[517]. Actions to restore consistency between interdependent d a t a were discussed in the
context of active databases with nontemporai constraints are discussed in [138, 257].
An idea comparable to triggers for the management of interdependent d a t a was dis-
cussed in [407]. The authors used a table driven approach to schedule complementary
updates (or invoke a contract) whenever a d a t a item involved in a multi-system con-
straint was updated. The parent transaction would then terminate, without waiting
for a chain of complementary actions to take place.
To support enforcement of d a t a consistency requirements as specified by D3s, we
use the more flexible notion of a polytransaction to describe a sequence of related update
activities. An important difference between polytransactions and the above mentioned
extended transaction models is that polytransactions do not assume that a set of
component (sub-)transactions is known in advance. In this respect, polytransactions
are closest to the transactional model for long running activities proposed in [140].
Polytransactions are dynamically generated when an update or other event could result
in violation of the consistency specification given in D 3. Additionally, polytransactions
allow selective and controlled relaxation of atomicity and isolation criteria, as discussed
later.
A polytransaction P is a '~transitive closure" of a transaction T submitted to an
interdependent d a t a management system. The transitive closure is computed with re-
spect to the IDS. A polytransaction can be represented by a tree in which the nodes
correspond to its component transactions and the edges define the "couphng" between
the parent and children transactions. Given a transaction T, the tree representing its
polytransaction P can be determined as follows. For every data dependency descriptor
D 3 such that a d a t a item updated by T is among the source objects of the D 3, we
look at the dependency and consistency predicates P and C. If they are satisfied, no
further transaction will be scheduled. If they are violated, we create a new node corre-
sponding to a (system generated) new transaction T' (child of T) to update the target
object of the D 3. T ~ will restore the consistency of the target objec t. Specification of
weaker mutual consistency criteria will result in less frequent violations of consistency.
Hence, the restoration procedures (and the corresponding children transactions) will
be scheduled less often.
When a user submits a transaction that updates a d a t a item that is related to other
d a t a items through a D 3, this transaction may become the root of a polytransaction.
Subsequently, the system responsible for the management of interdependent data uses
the IDS to determine what descendent transactions should be generated and scheduled
in order to preserve interdatabase consistency. Execution of a descendent transaction,
in turn, can result in generating additional descendent transactions. This process
continues until the consistency of the system is restored as specified in the IDS.
17.4. FOLYTRANSACTIONS 347
The ways by which a child transaction is related to its parent transaction within
a polytransaction are specified in D 3 by the execution mode of the action component.
This relationship is indicated as a label of the edge between each parent and its child in
the polytransaction tree. A child transaction is coupled if the parent transaction must
wait until the child transaction completes before proceeding further. It is decoupled if
the parent transaction may schedule the execution of a child transaction and proceed
without waiting for the child transaction to complete.
If the dependency schema requires immediate consistency, the nested transaction
model may be used, in which the descendent transactions are treated as subtransactions
which must complete before the parent transaction cast commit. A two-phase commit
protocol may be used in this case. A coupled transaction can be vital in which case
the parent transaction must fail if the child fails, or non-vital in which case the parent
transaction may survive the failure of a child [210].
Traditional transactions are characterized by the ACID properties. Polytransac-
tions provide a mechanism to support these properties if needed, using appropriate
specification of the consistency predicate and the execution mode action predicate of
the dependency descriptors that are used to create a polytransaction. It is the respon-
sibility of the D 3 designer to specify which of the ACID properties a polytransaction
may have, as follows:
Several new transaction paradigms have been proposed recently in the literature
that are based on various degrees of decoupling of the spawned activities from the
creator (e.g., [327]). Triggers used in active databases [139] are probably the best
known mechanism in this group. The main problem with asynchronous triggers is that
the parent transaction has no guarantee that the activity that was triggered will, in
fact, complete in time to assure the consistency of the data.
To allow the parent transaction some degree of control over the execution of a child
transaction, the concept of a VMS mailbox has been generalized in [210]. Similar ideas
have been presented in [48], and in [258], where the notion of a "persistent pipe" has
been introduced. Both generalized mailboxes and persistent pipes allow the parent
transaction to send a message to a child process and know t h a t the message will be
eventually delivered. If such a guarantee is sufficient, the parent transaction may then
commit, without waiting for the completion of the actions that were requested. The
parent or its descendant may check later if the message has been indeed received and
take a complementary or compensating action.
D e f i n i t i o n 17.5.1 A t any instant of time, the target data object within a given D 3
is defined to be current with respect to a given D 3, if the dependency predicate P
is satisfied. The data item is said to be consistent if the dependency predicate P is
violated, but the consistency predicate C is not. Hence, if a target item is current then
its consistency is implied, but the opposite is not true: an object may be consistent
and not current. I f both P and C are violated, the target data object is inconsistent
and the corresponding D 3 is violated. A multidatabase with an I D S is defined to be
in a consistent state if every target data object, is either current or consistent, i.e.,
VD 3 E I D S , D3.C = true.
tl t3
t~ t4
te
Figure 17.5 illustrates the transitions among the three states (current, consistent
and inconsistent) of a target d a t a object. These transitions occur as a result of the
changes in values of the P and C predicates. The transitions are explained below:
17.5. CONSISTENCY OF INTERDEPENDENT DATA 349
9 Transition tl: the state of the target data object changes from current to con-
sistent, as a result of an update to a data item belonging to the source set S.
The consistency predicate C continues to be satisfied, although the values of the
temporal or data state consistency terms may be changed.
9 Transition t2: a current target data object becomes inconsistent as a result of
an update on an object in the source set S. Either the data state and/or the
temporal terms violate the consistency predicate C.
9 Transition ts: a target data object is transformed from the consistent to the
inconsistent state, due to a change in the terms of the C predicate.
9 Transition t4: the purpose of a restoration procedure is to change the state of
a target data object, to either consistent or current. Transition t4 occurs when
we perform a partial restoration, so that an inconsistent data object becomes
consistent, but not current. Various cost policies may indicate that a partial
restoration to a consistent state is more appropriate than a (sometimes more
expensive) restoration to a current state.
9 Transition ts: this transition occurs when the state of the target data object
changes from consistent to current. When the target object is consistent, we
have the choice of either doing nothing, or executing a restoration procedure to
make the data object current. This choice can be made considering performance
parameters, load balancing, etc. Execution of restoration procedures in this
manner will be referred to as eager restoration of current state.
9 Transition t6: an inconsistent data object becomes current, by invoking a restora-
tion procedure in one of the following ways:
S: a
U:b
P:a=b
C : cl Y c2
cl = 5 versions o f a
c2 = e(48 hours)
A : Update_Target
This example identifies two interdependent data objects a and b. The target data
object b is a replica of the source data object a, as specified by the dependency predicate
P. If the source object is updated the target object becomes inconsistent. We specify
that we can tolerate inconsistencies between the source and the target up to 5 versions
of a or until a 48 hour period ends.
A value along the state dimension identifies the data state of a database object, and a
value in the time dimension specifies time. We use the syntax described in a previous
section for data state and temporal consistency terms. The pair (5 versions, 48 hours)
is an example of an stp. In general, s and t, can be logical formulae consisting of various
types of consistency terms. For example, if C = 5%(Employee), then the data state
dimension of this term is s = 5%(Employee). A detailed presentation of the different
consistency terms can be found in [519]. For this chapter, we assume that both s and
t can be represented as linear functions.
For example, the limit of discrepancy between the source and the target objects of the
above D 3, is either 5 versions or 48 hours specified as L(D 3) = (5 versions, 2 days).
The limit of discrepancy of every D 3 is constant, and can be extracted from the C
predicate of the D 3 itself.
The value of I changes every time we restore consistency between the source and the
target data objects. It is the initial point of reference, used in calculation of discrepancy
between source and target data objects. In the above D 3, assuming that the value of
the 30th version of the source object a was propagated to the target object b, at 10
a.m on 26th of February 1992, then I ( D 3) = (30, 26 - 02 - 1992~10).
The d a t a state dimension c, of the current value changes every time an update
is performed on the source object, and the temporal dimension ct of the current
value changes constantly with time. If an update has been performed on object
a, 15 hours after the last restoration of.consistency the current value of our D 3 is
C ( D 3) = (1 version, 15 hours).
The value of the final state is calculated as the sum of the consistency restoration
point plus the specified limit of discrepancy, i.e., f~ = is | ds. The operator @ de-
notes summation on d a t a states and carries a broader meaning than the regular arith-
metic operator "+", since we have different types of d a t a state terms that must be
"added" together. The ft is calculated as the sum of the time of consistency restora-
tion plus the specified limit of discrepancy, i.e., ft = it + dr. In our D 3, we have
F = (35 versions, 28 - 02 - 1992@10).
D e f i n i t i o n 17.5.7 The source S and the target It data objects of a D 3 become incon-
sistent with respect to that D 3, when the value of the restoration point I ( D 3) plus the
current value C( D 3) exceed the final value F( D3), i.e., when I ( D a) + C( D 3) > F( D3).
Hence, D z is violated (the state of the target object is inconsistent) when at least
one of the following cases occur:
1. the value of the d a t a state at restoration point is plus the value of the current
d a t a state c~, exceed the value of the final state f~, i.e., c~ 9 is > f~, or
2. the value of the temporal dimension at restoration point it, plus the value of the
current temporal dimension et, exceed the final deadline ft, i.e., ct + it > ft.
As a direct consequence of the above, the source and target d a t a objects are current
or consistent if the restoration point of the descriptor, I ( D 3) plus the current value
of the descriptor C ( D a) has not reached the final value F ( D 3) of the same D z, i.e.,
I ( D ~) + C ( D 3) < F ( D 3) r S is consistent w i t h / / .
objects. Therefore, external updates to the interdependent data are allowed only on
the d a t a objects represented by top vertices. All d a t a objects managed by the I D S
can be read by applications at any time.
Although the above mechanism could guarantee mutual consistency of interdepen-
dent d a t a of the entire I D S , it is quite restrictive. Frequently, we would like to perform
(possibly limited) external updates on target data objects in addition to the updates
propagated from source d a t a objects by polytransactions. At the same time we do
want interdependent d a t a to still be mutually consistent as specified in the I D S . We
can achieve this, by allowing external updates on target data objects only if they do
not violate consistency requirements specified by any D 3 in I D S . Since we realize that
maintaining consistent d a t a using polytransactions and allowing updates outside the
polytransaction mechanism, are two contradictory goals, we discuss below a compro-
mise solution, based on restricting external updates.
9 I.., I [ II .Q
ol D~ D~ o~
Let us consider an object (e.g. 02) which participates in two D3s: as a target in D~,
and as a source in D23 (Figure 17.6). We will examine the effects of an external update to
02 on other objects to which o2 is related. If o2 is externally updated, the dependency
/)1 and consistency C1 predicates of D~ may be violated. In this case, D~ would
be violated, which is not acceptable according to our criterion of mutual consistency.
However, if the consistency predicate C1 is still satisfied, the external update was within
consistency limits. This kind of update does not violate the consistency requirements
between ol and o2. On the other hand, if we examine the relationship between o2
and 03 specified by descriptor D~, we may find that the update on o2, may have been
propagated to o3, which is not desirable. The propagation of external updates on
target objects through the polytransaction mechanism is undesirable, if the updates
do not originate from a top object, because we will face the problems of inconsistency,
described earlier. Therefore, an external update of object o2 affects all D3s that axe
adjacent.
The consistency predicates of these descriptors define a zone of consistency around
a d a t a object. In general, the d a t a objects that are targets of a dependency descriptors
represent derived d a t a and, hence, should not be directly updated unless a complemen-
tary dependency descriptor to a source data item exists. However, we may allow direct
updates to a d a t a object, if they would not violate any mutual consistency require-
ments specified in the D3s it participates, either as a source object or as the target
object. Such updates maybe useful for temporarily changing the value of a data object
to a new value for the purpose of running a local application. The updated value repre-
sents a non-permanent patch and would be overwritten by the "correct" value, by the
polytransaction originating from the source data item. However, such direct updates
on target d a t a objects should also be directly sent to the top object. The top object
update will flow through the polytransaction mechanism (and may be combined with
other updates) to overwrite this target object.
(c,, c 0 that is the intersection of the limits of discrepancy Li(D z) of all the descriptors
in which the object participates (as source or target).
If an external update changes the value of the target data object in such a way
that the object remains within its zone of consistency, then the update is allowed. The
zone of consistency of an object can be adjusted by changing the limits of discrepancy
allowed by the relevant dependency descriptors. However, the stricter the consistency
specification is, the smaller zone of consistency we have, which results in limiting ex-
ternal updates that are allowed. We also see that the updates are performed according
to semantic criteria of consistency specified in D3s, as opposed to a fixed number of
updates [631], or a predetermined number of transactions [333]. This is because we
believe that even a single update can irrecoverably destroy the consistency between re-
lated data objects, if semantic information regarding affected data objects is not taken
into account.
In addition to the updates we mentioned above, we can also allow updates on tar-
get objects if there is another D 3, directed from the target object to its source with
execution mode marked as vital and coupled and immediate consistency specification.
We allow such updates, since they invoke the polytransaction mechanism to propa-
gate them immediately. Such example was previously specified using a pair of DSs
identifying a case of replicated data with primary and secondary copies.
In the traditional transaction model, it is assumed that each transaction when exe-
cuted alone on a consistent database will execute correctly, transforming the database
to another consistent state [49]. The equivalent requirement for polytransactions is
that a polytransaction when executed alone on a consistent system of interdependent
data, will terminate and leave the system consistent. The consistency is determined
by the I D S . The above can be stated more formally as:
Figure 17.7 shows a dependency graph with source objects a,b and targets c,d in-
terconnected through descriptors D~ and D~. If the source object a is updated by
polytransaction P,,, and the source object b is updated by polytransaction Pb, then P ,
and Pb are examples of conflicting polytransactions.
Since uncontrolled updates from conflicting concurrent polytransactions may lead
to distortion of d a t a and violation of mutual consistency, we need to control the execu-
tion of concurrent polytransactions so that consistency of the data is preserved. One
17.6. CONCURRENT EXECUTION OF POLYTRANSACTIONS 355
E ]
way of achieving this goal is to use serializability for polytransactions, which is anal-
ogous to global serializability. However, in the IDS, the problem of indirect conflicts
caused by local transactions serialized between polytransactions and possibly chang-
ing their serialization order [218] does not arise. This is because we either completely
disallow external (local) updates or limit them to stay within the zone of consistency,
thus assuring that they are insignificant.
The correctness of concurrent execution of polytransactions relies not only on the
execution order and precedence of their transactions, but also on the specification of the
D3s. On one hand, we have a more precise specification of what is considered consistent,
so we can exploit semantic information to preserve consistency. On the other hand,
we may have different actions and restoration procedures and various timing intervals
during which a transaction may run, which impose additional restrictions.
Since we know the code of the conflicting transactions we can use this informa-
tion to customize serializability for polytransactions. If a descriptor D 3 contains only
a single restoration procedure, then two conflicting polytransactions will execute the
same transaction twice. Then under certain conditions we can demonstrate that the
execution of a non serializable schedule, may stil] be correct, regardless of the seri-
alization order. The basic assumption is the following: If the calculation of the new
value of the target object d (Figure 17.7), is a function of both sources a and b, and
each transaction reads the same latest version of the sources when it starts executing,
then the two conflicting transactions will execute the same code with identical input
(a, b) and produce the same output d. The order of their operations may violate seri-
alizability but the final value of the target object will be the same regardless of their
relative order. If an edge appears in the serialization graph, due to events of this type,
that introduces a cycle, we can safely remove this edge from the serialization graph,
eliminating the cycle, thus making the schedule correct.
In this case, by examining the specification of the D3s we may allow some relaxation
of serializability. This, in turn, may lead to the reduction of concurrency control
overhead involved in processing of polytransactions. A more consezvative approach
356 CHAPTER 17. M U L T I D A T A B A S E INTERDEPENDENCIES
where serializability is preserved can be found in [207]. The authors introduce two
concurrency control mechanisms for concurrent execution of polytransactions. The first
is a deadlock free graph locking mechanism and the second is a variant of multiversion
timestamps with rollback, that never rejects operations arriving out of timestamp
order. However, this conservative approach assumes ])3s without temporal predicates.
Concurrent execution of polytransactions including temporal predicates is examined
next.
When we deal with temporal constraints, we have to expand our criterion of correct-
ness in concurrent execution of polytransactions with temporal constraints as follows:
17.7 Conclusion
This chapter addresses issues in managing interdependent data. We provided a brief
overview of the specification of the dependency descriptors, and the interdatabase
dependency schema. We also proposed a conceptual architecture of a system that can
be used to manage interdependent data.
We explored the issue of correctness of specifications. It involved investigation of
semantic information stored in the interdatabase dependency schema and potential
conflicts that may arise due to the specification of the consistency and dependency
predicates. Two correctness checks we proposed were a) avoiding multiple dependency
descriptors directed to the same target d a t a object and b) avoiding cycles that do not
satisfy certain properties.
Then, we described the polytransaction mechanism that could be used to auto-
matically enforce consistency of interdependent d a t a according to the requirements
specified in the interdatabase dependency schema. We also discussed issues concerning
the consistency of interdependent data. We presented a classification of various states
of consistency of a data object, and identified the events that lead to changes to its
state of consistency. We showed that the consistency of interdependent data can be
violated if uncontrolled updates are allowed outside of the polytransaction mechanism.
Finally, we investigated the concurrent execution of polytransactions. We discussed
the information needed to reason about the correctness of schedules of concurrent poly-
transaction execution and identified cases where they can be enforced. We also pre-
sented a preliminary solution concerning the concurrent execution of polytransactions
358 CHAPTER 17. MULTIDATABASE INTERDEPENDENCIES
18.1 Introduction
The increased availability of various databases in large corporations has created the
need to federate the databases into loosely coupled collections of autonomous systems
to aJ]ow controlled sharing of information and at the same time preserve the autonomy
of each participant. Traditional distributed database (DDB) research has provided the
earliest solutions to information sharing in distributed computing environments. The
DDB approach, however, assumes that a single and integrated conceptual view of the
databases must be provided to the users. Federated database (FDB) schema/system
architecture design has partially benefited from this effort. For example, the design
of both DDB and FDB systems includes functionalities such as: schema integration,
query processing, transaction management. The DDB techniques used to provide these
functionalities can be extended and applied to FDBS. The main difference between the
two approaches are in the classes of users and the levels of component autonomy they
support. Users of DDB systems access shared data only through the single conceptual
schema of the DDB. This facilitates the enforcement of integrity constraints attached
to the DDB, in much the same way (from user's point of view) as centralized DB
system's. FDB systems, on the other hand, generally support two classes of users: fed-
eration users manipulate shared distributed information through one or more federated
schemas; and local users, to whom the federation is transparent, access local data only.
Preservation of local access to, and control over, the local database is essential for the
support of component autonomy, the most salient feature of FDB systems.
Typically, federations are built upon heterogeneous systems and may include data-
bases which support different data models: relational, CODASYL, and object-oriented
d a t a models. One of the important issues that need to be addressed is therefore the
d a t a model translation problem. Usually, to avoid a proliferation of translators, the
use of a common d a t a model within the distributed/federated system is encouraged.
Semantic or object- oriented d a t a models represent the best candidates for this role.
Translations between semantic, object-oriented and relational models have largely been
dealt with in the past. They have been commonly developed for two major cases: 1)
to support a database design process where the database is first described in a con-
ceptual schema which is subsequently converted into a logical schema [77]; and 2) to
support the design and operation of traditional DDB system. In the former case the
translations are one-way processes which produce a single logical target schema from
the source conceptual schema. As user queries are expressed and performed directly
on the logical schema, there is no need for further translations. In the latter case,
interoperability among d a t a models is needed to move data in and out from the DDB.
However, interoperability is usually not required among data manipulation languages,
as most of the proposed DDB systems are monolingual: they support only one DML,
the one associated to the common d a t a model in use ([144] is an exception). The
distinguishing feature of federated environments is that they have to be multilingual,
because of the autonomy goal [318]. Therefore, the support of interoperability among
DMLs becomes in fact the primary criterion for the specification of data model trans-
lations. Besides the translation problem, interoperability in the federated approach
necessitates a mechanism for making d a t a available to the federation and for ensuring
access to the data. This mechanism is usually called an import/export facility. Data
exchanges require first that description of accessible (exported) data be available to all
users of the federation or designated set of partners, and second that the information
be presented to them in their local model (in a model they understand). Partners may
then select (import) d a t a of interest to them and include/integrate them into their
view of the FDB. Integration facilities are the essential feature in building this unified
view from the different pieces of imported data.
This paper presents the approach of an ongoing research project, FEMUS (FEder-
ated MUltilingual System), jointly developed by the database research groups at Swiss
Institutes of Technology (EPFL and ETHZ). The primary goal of the project is to
provide a framework for investigating semantic related issues of interoperable database
architectures. The focus of this paper is particularly on federated database construction
issues. The FEMUS project itself is not discussed in detail. Instead, we examine two of
its most important aspects: data model translation and integration issues. The former
is dealt with in section 3, while the latter is the topic of section 4. Section 2 presents
the architecture of the FEMUS prototype and the modeling paradigms on which in-
teroperability is being experimented. Section 5 discusses semantics issues related to
schema negotiation and d a t a / m e t a d a t a exchange. Section 6 reviews implementation
aspects related to the export/import mechanism. Section 7 concludes the paper.
18.2 FEMUS
The aim of the FEMUS project is to set up a framework for building a federated mul-
tilingual database system. By federated it is meant that the global system provides
the functionalities to include, as components, different heterogeneous database sys-
tems cooperating together, and that the major goals are preserving site autonomy and
supporting maximum flexibility in the interoperability mechanisms. By mult~lingualit
is meant that an equally important goal is to build a system which can be accessed
18.2. FEMUS 361
by different users through the local interface (data model and manipulation language)
they are used to.
The initial version of the project includes two different database approaches:
9 E R C + [447], an object-based extension of the entity- relationship model, in-
cluding the specification of an ER algebra [446] and calculus. The fundamental
concepts of the E R C + model are entities, relationships, and complex objects.
9 C O C O O N , an object-oriented d a t a model with an object algebra that was
developed based on the nested relational algebra [501, 500,494, 493]. The ba-
sic concepts are objects and functions. COCOON, like DUAL [451], promotes
separation between the type and class hierarchies. This separation introduces
original problems that need to be addressed by the model translation processes.
The two approaches are briefly presented in the subsections hereinafter. Study-
ing interoperabllity between these two approaches is of particular interest, as
they represent, as stated above, two very important and widely used families of
models possible in a federation.
In [515], five schema levels were proposed as a reference architecture for federated
database systems, separating local pre- existing schemas, component schemas (com-
mon model counterpart of local schemas), export schemas, federated schemas (FS),
and external schemas defined over federated schemas. The federated schemas hold a
global dictionary with additional information about fragmentation and allocation of
distributed objects. Thus, to the users of FS, both fragmentation and allocation are
fully transparent. The FDBS is responsible for transforming the global queries and
updates into statements for the component databases. FEMUS basically adheres to
this proposal, while adding one more level to allow users to integrate various import
schemas (derived from either export schemas or from federated schemas) to form their
own federation. In this way ad-hoc federations may be built, enhancing the flexibility
of the system from user's perspective. Figure 1 shows FEMUS six levels generic schema
~rcliitecture. It includes the concept of median schema, as suggested in [496], to em-
phasize domain-specific federations. It also shows that export schemas may be derived
as views over component schemas or directly from local views through d a t a model
translation. Finally, import schemas are derivable from any of the schemas available
at the federated level: export, federated or median schemas. A simplified architecture
(Figure 2) is currently being implemented for the first exploratory prototype. It mainly
includes two process types, Translators (mappers) and Integrators. The mapping pro-
cesses translate schemas, integrity constraints, and language elements from one d a t a
model/language to the other (ERC+, COCOON); the integration processes combine
schema and instances from the two components.
18.2.2 T h e C O C O O N Approach
COCOON is an object-function model. Its basic constituents are objects, functions,
types, classes and views. The following is an excerpt from [502]. Objects are instances
of abstract types, specified by their interface operations. Functions are either retrieval
functions or update methods. They are described by their name and signature. They
may be multivalued. Types are described by their name and the set of functions
that are apphcable to their instances. A subtype hierarchy defines type inheritance
relationships. Objects are instances of one or more types (multi- instantiation). Full
static type-checking is supported. Classes are collection of objects (type extents). A
subclass hierarchy defines class inclusion relationships. Objects are members of one
18.2. FEMUS 363
t~ ( sLhoc= )
Import
x(__~ / ( Sc~ma
0
~m
Component ~ [ Component
Local >v~eal
S
6§
~...._
Z
0
k
C9
C9
8
§
I I ...... .... J
so.so
Date Forename ~ /" ~ ~
/]\ '--.
D e Floor A Type
QT
F i g u r e 18.3: A n e x a m p l e E R C + s c h e m a
or more classes. For each object class, its member type is an associated type, and its
extent denotes a set of objects of that type. Classes may be constrained by a predicate
that must be satisfied by all members of the class.
A set-oriented query language, called COOL, similar to relational algebra, provides
operators to build an output set of objects from input sets of objects. Query opera-
tors can be applied to extents of classes, set-valued function results, and query results.
The algebra has object preserving semantics. Queries are also used as the view defi-
nition mechanism: they introduce new virtual classes, and define their extent. Views
may be defined by basic COOL operators, over other views or by composite queries.
COOL operators are: selection, projection, extend (allows the definition of new derived
functions), set operators (union, difference, intersection), and generic update operators
(update, insert, delete, add, remove, and set to assign return values to functions). Fig-
ure 4 shows a COCOON type diagram describing the same universe of discourse as the
E R C + diagram in Figure 3. Arrows with single arrow head (respectively, double arrow
head) represent single- valued (respectively, set-valued) functions. A function and its
inverse are linked by a straight line.
day
I I month ~
P Date I year
r
saing , ,,o,or ..,o'>, ":
i ~p~,~e,,t I ,_"b.~'~ ~,~ ,,,,.-~Y2 "~ I. A~I~ i_ ~ '~g
"-%1"*, :"' .....
18.3.1 M a p p i n g an E R C + S c h e m a to C O C O O N
The major differences between the two modeling approaches are:
18.3. THE MAPPING PROCESS 367
S1 T
$2
TOP
.~ 02
Ol(S1) 02($2)
9 Ename (Figure 3) results in the Ename function: Employee --~ string (Fig-
ure 4).
9 day (Figure 3) results in the day function: Date ~ integer (Figure 4).
A complex attribute is mapped into a new object type and its associated class.
A function is added to link the owner object type to the new type.
Examples:
b) E n t i t y t y p e s
An entity type is mapped into an object type and its associated class. Functions
are attached to the type according to attributes and relationships translation
rules.
c) t t e l a t l o n s h i p t y p e s
Example:
9 Job (Figure 3) results in the two inverse functions worksfor and staff.
Worksfor is single-valued as the role of Employee in Job is monovalued.
Staff is set-valued as the role of Department in Job is multivalued.
2. Binary relationship types with attributes and n-ary relationship types.
These relationship types are mapped into a new object type and its as-
sociated class. The attributes, if any, of the relationship type are mapped
into functions according to rules in a). Each role of the relationship type
is mapped into a pair of inverse functions between the new type and the
type corresponding to the entity type attached to the role.
Examples:
9 Sale (Figure 3) results in the object type Sale (and its class), with the
attached QT function: Sale integer, and two pairs of inverse functions,
D-Sale and Sale-D, linking Sale with Department, and Art-Sale and
Sale-Art linking Sale with Article.
9 Delivery (Figure 3) similarly results in one new object type, Delivery,
and three p~irs of inverse functions.
d) Generalization links
An is-a link between two entity types is mapped into an is-a link between the
object types and classes corresponding to these entity types. May-be-a links are
not mapped, as there is no such concept in COCOON at the moment.
3, a single r-join operation is needed. To do the same using the schema resulting from
the translation of the schema in Figure 4, it will need three r-join operations (because
Delivery is now an entity type linked by three binary relationship types to Department,
Supplier and Article). There is no automatic solution to avoid such overloading, unless
the COCOON schema is enriched with information on dependencies among its compo-
nents. It is known that, if certain dependencies hold, a n-ary relationship type may be
decomposed into relationship types of degree less than n. Reversing this reasoning, the
translation algorithm can infer from the known dependencies if a set of pairs of inverse
functions defined on the same object class can be mapped as a n-ary relationship type
also representing that object class.
Select Operator
Select operators in E R C + and COCOON have the same semantics. They preserve the
schema of their input operands. Their main difference is in the type of predicate they
allow. E R C + predicates may contain quantifiers (over set-vaiued attributes), whereas
COCOON selections may contain nested expressions and set comparison operators.
Consider the following query:
"select all employees who earn, at least, one salary greater than 6000".
Below we give E R C + and COCOON algebraic expressions for the queries and derive
the rules for translating the operators.
ERC+ query
The selection operator, noted cr in ERC+, creates a new entity type which con-
tains the entities (objects) that satisfy the selection predicate. The E R C + alge-
braic expression corresponding to the above query is given by:
E1 : ~r[3ses~(s > 6000)]Employee
where the existential quantifier (3) is extended to apply to multisets.
COCOON query
In the following EmployeeC denotes the class of objects belonging to the type
Employee. The above query is written in COCOON as:
C1 = seZect[sdect[s > 6000](s : SaZ) # O](E,~ployeeC)
370 C H A P T E R 18. FEMUS
The nested select operation implements the selection predicate "at least one
salary greater than 6000" by first retrieving the set of salaries over 6000 of an
employee, and then checking whether the retrieved set is empty or not.
If the above query is modified to "select all employees who have all their salaries
greater than 6000", then the corresponding E R C + algebraic expression is:
E2 = ~r[V~es~,(s > 6000)]Employee.
The universal quantifier included in the predicate can be expressed in different ways
in C O C O O N by using nested select operations and set comparison operations. The
resulting queries are:
C2 = seleet[select[s > 6000](s : Sa 0 = Sat](EmployeeC).
C2' = select[select[NOT(s > 6000)](s : Sat) = O](EmployeeC).
The second query is obtained from the first one by the application of the standard
transformation of the universal quantifier into the existential one: Vx(P) r -~3x(-~P).
In summary the following rules can be derived for converting selection operations
between E R C + and COCOON. P(a) is a predicate on variable a, and a is a variable
on a multivalued attribute A.
Equivalence rules between E R C + and COCOON selection predicates:
3~en(P(a)) r select[P(a)](a.A) # O.
V~eA(P(a)) r select[gOTP(a)](a.d) = 0.
Project Operator
1. Projection over a simple attribute
Project operators in E R C + and in COCOON have equivalent behavior when
they are applied to simple attributes. In essence, they are used to drop one or
more simple attributes from the schema of an entity or object type.
The translation rule in this case is trivial. For instance:
ERC+ COCOON
rr [Ename] Employee r project [Ename] EmployeeC
2. Projection over complex attributes
As discussed in section 3.1 above, the translation of E R C + complex attributes
leads to the decomposition of an object over several objects. Therefore the
translation of an E R C + projection over a component of a complex attribute
requires that the corresponding COCOON object type be augmented with a
derived function which links it directly to the desired attribute. Derivation is
through composition of COCOON functions. For instance, a projection over
the attribute Forename of the complex attribute Child (Figure 3) is mapped as
follows:
ERC+ COCOON
~r [Child.Forname] Employee r project [forename]
(extend [forename = Forename(Child)])EmployeeC
Product Operator
A product operator in E R C + is useful for linking two entity types which are not linked
by any relationship type. In the case where a relationship exists between the two en-
tity types, it is simply ignored by the product operator. The operation extends every
occurrence of its first operand with the set of all the occurrences of the second operand
18.4. THE INTEGRATION PROCESS 371
(represented in the schema of the resulting entity type as a multivalued complex at-
tribute whose components are the attributes of the second operand). For example, a
product will be applied to the entity types Employee and Supplier of Figure 3 as a first
step to check whether there are employees having the same name as a supplier.
The result of this product operation is an entity type, say ES, with all the original
attributes from Employee plus an additional complex attribute supplier, which is com-
posed of Sname and Addr. The check is then done through a selection on the result of
the product. The E R C + selection predicate is:
3,~e~ppZi~.~ . . . . (u = Ename).
The result of the product operation c a n be achieved in COCOON by extending
the object type Employee with a new function to create the link to the object type
Supplier.
Relationship-Join (R-Join)
The R-join transforms a relationship type into a complex attribute structure with re-
spect to one of its participating entity types. Consider the two entity types Department
and Article, and the relationship type Sale in Figure 3. The result of applying R-join
to Department through the relationship Sale is an entity type with all the attributes
of Department (Dname, Floor) and an additional complex and multivalued attribute
named Sale, whose attributes are Qt and Article, the latter being a complex attribute
with Aname and Type as components.
As the product operator, the relationship-join is used to merge information from
various entity types into a single entity type. While product merges systematically each
entity of one type with all entities of the other type, R-join uses as merging criteria the
fact that the entities forming one occurrence in the result are linked by a relationship
of the given type.
To some extent, we could state that R-join builds more complex entity types from
the existing ones. COCOON objects are not complex objects. Because of decompo-
sition rules of the schema mapping, the result of an R-join, translated in COCOON,
would generate the same objects and functions as those already there. Therefore, the
translation of an R-join is the identity operation.
model within a pre-integration step. This is consistent with the usual approach to
federated or distributed heterogeneous databases, but might become a bottleneck in
more flexible architectures in which multiple federations, although defined on the saxae
component databases, are not necessarily built upon the same data model.
Integration in FDBS is a bottom-up task, that must combine databases that may
have existed for a long time. These databases may already have a considerable amount
of data. Thus, integration in federated databases must cover both tasks, the integra-~
tion of schemas and of existing objects. This is usually called database integration,
in contrast with view integration where only schemas with no associated extensions
are integrated. A relatively small amount of work concerns database integration. One
recent exception is the Pegasus project [9, 335]. Kent emphasized the separation be-
tween real world entity objects and their, database counterpart, called proxy objects
[315]. The latter ones represent entities in different component databases. Object
integration must deal with the fact that due to historical evolution of databases, the
same real world entity may be stored as different database approximations in different
databases (the proxy objects). Thus, the FDB administrator must also specify what
proxy objects of what component databases represent the same real world object and
under what circumstances.
FDBS integration requirements also differ from DDB requirements. In DDB sys-
tems, integration is performed once, taking as input the schemas of existing databases
and producing as output the global schema of the DDB. As there is no mandate to
preserve site autonomy, local pre-existing databases may be modified to make integra-
tion easier or to redefine d a t a allocation. For instance, if the same data appear in more
than one local database, the DDB administrator may just keep one copy and have the
other ones deleted to avoid the d a t a replication problem. In FDBS, integration may
be performed at different levels, depending on the organization's approach to FDBS
architecture (cf. Figure lb). As in DDBS, it might be the task of the FDB administra-
tor (for each FDB being built). It might as well be a process performed by end users,
if they are given the ability to i m p o r t d a t a from various sources (whether directly from
local databases or through a FDB) to build their own, single user FDB.
Integration is a two-fold process. First, syntactic as well as semantic relationships
among elements in the input schemas have to be precisely identified. This is the inves-
tigation phase. A first stream of research developed methods and tools to assist the
database administrator in identifying interschema relationships [516]. In the second
phase, the integration phase, related elements have to be "integrated". Various tech-
niques have been proposed for this purpose. The first approach is manual integration,
where the DBA is provided with a schema restructuring language. The latter allows
the DBA to direct the integration process towards the step by step construction of the
integrated schema the DBA is aiming at. The integrated schema is seen as a superview
defined over input schemas [419]. This approach is relatively simple to implement, as
the functionality supported by the system is limited to executing the restructuring
operations. It is, however, of poor user friendliness and badly suited for the non ex-
pert users which might be allowed to build federations in a flexible FDBS. To cope
with these inconveniences, more powerful assertional approaches have been proposed.
They are intended to automatically perform integration from input correspondence
assertions, which instruct the integrator tool on which interschema relationships ex-
ist. Assertional techniques provide a higher level of service t o their users (users just
have to care about existing correspondences, not about how corresponding items may
be merged to form the integrated schema). They build the integrated schema (and
the associated mappings to/from source schemas), using established integration rules
18.4. THE I N T E G R A T I O N PROCESS 373
which allow to solve all types of conflicts supported by the tool. Finally, rather than
building a new integrated schema, a third approach performs integration by extending
input schemas (and databases) with the additional interschema descriptions. These
either record correspondence information, or add new constructs to relate one element
in a schema to another element in another schema [502].
FEMUS currently focuses on the integration phase. We discarded the manual su-
perview approach as contrary to FDBS flexibility goal. As for the two other approaches
- the integration assertional technique and the augmentation technique described just
above - no definite assessment has evaluated and compared their pros and cons. Intu-
itively, building an integrated schema seems preferable if there is a heavy overlap among
component schemas, with many component elements resulting in a single element after
the merging. On the other hand, if the component databases have complementary
content, augmenting existing schemas with interschema references is a simpler process.
To know more about the comparison we have decided to investigate and experiment
both techniques in parallel. They are hereinafter separately presented.
To show differences and/or similarities between these two integration techniques, we
illustrate their usage on the same very simple example (Figure 6) modeled according
to object-oriented notations. The example assumes a FDB environment with two
databases, DB1 and DB2. DB1 contains information about cars (the class Car, with
three attributes: the car's registration number and color, and the person identification
number of the car's owner), whereas DB2 holds persons (the class Person, with three
attributes: the person's identification number and name, and the registration numbers
of the cars (s)he owns). Since cars are owned by persons, and persons own cars, there is
some sort of inter- database correspondence. We show below how this correspondence
is specified using the assertion-driven integration, and how it is done through the
augmentation ~pproach.
DB1 DB2
J I J I. I I
leg# color owner pm name {cars}
DBI: Class Car tuple <leg#: integer, color, string, owener: integer>
DB2: Class Person tuple <pin: integer, name: string, cars: setof integer>
F i g u r e 18.6: T h e e x a m p l e i n t e g r a t i o n case
As stated, the definitions of the two classes do not bear any indication of their
interrelationship. It is assumed that the FDBA has the external knowledge about the
semantics of the attributes and the object classes being described. (S)he is therefore
responsible for directing the integration tool through explicitation of that knowledge.
In a repository environment, the definitions would be complemented with some natural
language descriptive information. For instance, the owner attribute could be described
as: this attribute holds the person identification number of the person who owns the
car. An investigation tool could then guess that there might be some relationship
between the two classes, due to the fact that the term "person" appears in both de-
374 CHAPTER 18. FEMUS
The first assertion states that the set of cars described by the object type Car in
DB1 (the real world state of Car) is the same (=) as the one described by the cars
attributes of the Person object type in DB2. The set equality is between sets of real
world objects, and holds independently of their representation in the two schemas. The
"with corresponding attributes" clause describes the structural relationship between
the two representations. In this case there is only one information about cars which is
represented in both databases: the car's registration number. This is hold by the reg#
attribute in DB1 and by the cars attribute itself in DB2. Hence the stated equality
of the two attributes. The same considerations apply to the interschema relationship
between DB1 car owners and DB2 persons.
The fact that associated elements in one schema (Car and owner in DB1) are
equivalent to associated elements in another schema (cars and Person in DB2) does
not necessarily imply that the association has the same semantics in both schemas. It
could be the case that DB1 talks about ownerships, and DB2 talks about cars being
driven by persons, while still referring to the same real world state for cars and persons.
Therefore, one assertion remains to be stated: a path correspondence assertion, making
explicit that the link between cars and owners in DB1 (noted Car--owner) has the same
semantics as the link between persons and car in DB2 (noted Person--cars). Links are
bi-directional: Person--cars and cars--Person denote the same DB2 link. The path
correspondence assertion for the example simply is:
Car--owner = cars--Person
18.4. THE INTEGRATION PROCESS 375
The integrator tool, with the two schemas and these three assertions as input, will
generate the following integrated schema:
IDB: C l a s s Car t u p l e < r e g # : integer, color: string, owner: r e f e r e n c e Person>
C l a s s Person t u p l e <pin: integer, name: string, cars setof: r e f e r e n c e C a r >
The corresponding diagram may be drawn as follows, with labeled arrows repre-
senting reference attributes:
IDB
owner ~j ]
Car I~ {cars} -~ Person
I I I I
leg# color pin name
F i g u r e 18.7: T h e i n t e g r a t e d s c h e m a
IDB goes with the mapping information which states that the Car class is to be
found in DB1, the Person class is to be found on DB2, and the references in be-
tween have to be evaluated through the matching criteria C a r e r e g # = Personocars
and Car.owner = Person.pin. Mapping information supports transformation of user
queries against IDB into queries on the underlying DB1 and DB2 databases.
The selection predicate in the view definition materiMizes DBA's knowledge of the
fact that the attribute cars of class Person specifies registration numbers of cars, which
are recorded as values of the r e g # attribute of Car in the other database. Knowledge
that, similarly, the attribute owner of Car specifies a pin of a person in the other
database, leads to similar extension of the Person type in DB2:
d e f i n e v i e w Persons as e x t e n d [owns:=
s e l e c t [pin(p) = owner(c)](c:Car)](p:Person).
The additional function owns returns the cars owned by each person. It acts as
the inverse of owned-by in DB1. Figure 8 below shows the schema of both databases,
extended with views having functions that lead from one database to the other.
376 C H A P T E R 18. F E M U S
Car Person
I I I I. I
pm name {cars}
I
reg# color owner
Cars Persons
F i g u r e 18.8: T h e a u g m e n t e d schemas
The advantage of this approach is that it uses almost exclusively the expressive
power of a query language, together with a view definition facility. The only needed
extension is a global object identity predicate. This is necessary, since, due to demand
of local autonomy, we axe not allowed to make any assumption on the local internal
object-identities. Consequently, no change is required in the implementation of local
database systems.
While from a conceptual point of view this approach looks simple and clean, more
effort remains to be spent on the implementation issues. Particularly, an efficient, but
overridable, implementation of the identity test seems to require further investigations.
Till now, comparing object identities is typically hardcoded into the implementation
of local object based management systems. Efficient support by indexes or some other
form of replicated information is needed.
18.5 Negotiation
In a federated system, it is the responsibility of the local DBAs to decide and de-
fine which parts of their local data are available to external users (users from other
sites). The decision process relies on negotiation with the other DBAs, for which
specific tools may be developed within the federated system [245]. Negotiation needs
an understanding of the semantics of data. This is usually supported by information
attached to d a t a descriptions and stored in a repository. The repository manager pro-
vides browsing capabilities and facilities to support dialogue and explanations among
DBAs. Negotiation also settles an agreement on access restrictions and the desired
level of consistency between imported materialized views, and the original version in
the exporting system (as discussed below).
18.6 I m p l e m e n t a t i o n Issues
Since object identifiers in general are not available outside a system, the specification
of information to import has to be done by means of algebraic expressions [502]. Also
exported information can be specified comfortably with a query expression. The query
is given a name whose value is the result of the query, i.e., a data definition and a set
of instances. At each use of the name the query can be re-executed in the exporting
system and the result transmitted to the importer. To the user there is only one version
of the information located in the exporting system, and up to date. A problem arises
when the amount of d a t a specified by the expression is large, the d a t a transfer might
378 CHAPTER 18. FEMUS
take considerable time. To avoid the delay, the user might want to create a local copy,
thus he explicitly stores the result of the import expression at his own site. Now, on
the other hand, the importer does not know whether his local copy is up to date or
not, since updates on the original version are not by default propagated to his copy. As
a compromise, it would be possible to refresh the copy of the importer at some access
occasions, but not all.
Another solution to the delay problem would be to keep an automatically updated
local copy that the user never sees. The problem with this approach is of course how to
ensure the consistency between the copy and the original. The following is a summary
of techniques used to solve materialized view management problems. Materialized view
update strategies can be classified according to, first, the consistency that is required
between the original and the materialized view, secondly how to detect that an update
to the original is relevant to a materialized view, and lastly how to actually update the
view.
9 Time delay
9 Version number
9 Numeric deviation
A way to specify these deviations exactly and to calculate the export costs is
proposed. An even weaker consistency requirement is proposed by [362], where a
"snapshot" is a copy that is updated only periodically, to be used by update-insensitive
applications.
When an update has been found relevant to a view, the view materialization has
to be updated. One way to do this is to recompute the query specifying the view
and to update the whole query. This clearly may result in the rewrite of a lot" of
unchanged data. It is desirable to update the view only with the d a t a actually changed.
[362] proposes a differential refresh algorithm for snapshots. When the snapshot is
to be updated, the tuples of the base table are traversed, and if a tuple is younger
than the snapshot and satisfies the view condition it is transmitted to the snapshot.
Improvements are made by discarding clusters of not interesting tuples. [66] proposes
a different method based on the a p p h c a t i o n of the same update operations on the
view materialization, that were applied to the base table. This method relies on the
distributivity properties of set union and set difference, which do not hold in the
relational model, but hold for object oriented models. The method is used to provide
transaction consistency, since the view update is included last in the update operation
transaction of the base table. The authors claim that their results are also valid for
snapshot update, i.e., when the view update is made after the transaction updating
the original table has terminated. It is not evident that the application of an update
operation at a time point when the execution environment may have changed will
produce the same database state as in the original environment.
Another way to improve system efficiency at update, and to avoid the exporter
bottleneck problem that occurs when a lot of importers are requesting updates from
the same exporter, is proposed in [306]. The idea in this method is to let the importing
systems re-export information to other importing systems, thus relieving the original
exporter from work.
There are cases when keeping a local copy at the importing site is necessary for
performance reasons. This copy can be invisible to the user, giving the impression that
there is only one version of the information. The consistency requirement varies, de-
pending on application requirements, from periodically updated snapshots, over quasi-
copies to transaction consistency. The results in the referenced papers concerns the
relational model, it remains to be studied whether they are also applicable to semantic
and object- oriented models. Nothing is however pointing in any other direction, on
the contrary, it seems like further problems encountered in the relational model do not
occur in this environment. For example, the problem caused by the fact that projection
is not distributive over difference in the relational model, does not occur in a model
with object identities, see [66].
ACKNOWLEDGMENTS
The authors are indebted to the following people, t h a t contributed to the FEMUS
project: Hans-JSrg Schek (ETH Z/irich), Marc Scholl (University of Uhn), as well as
the students Amadou Fall ( E P F Lausanne) and Hans-Peter Waldegger (ETH Ziirich)
who did some of the prototype implementation.
Chapter 19
Communication and Synchronization Issues in Distributed
Multimedia Database Systems
Shirley Browne*
19.1 Introduction
Current research into high-speed wide-area communications is raising the possibility
of new distributed multimedia applications, including distributed multimedia database
and information systems. The goals of research in this area will be to extend distributed
database and information retrieval paradigms to the following:
Although CD-ROM technology provides local mass storage for static information,
distributed databases will be crucial for accessing information which is constantly
changing, inherently distributed, or accessed infrequently by a given user. As the
amount of information available threatens to overwhelm us, multimedia offers a way
of increasing the machine to human bandwidth through the use of images, animation,
sound, and video, as opposed to purely textual display. The economics of bandwidth
sharing argue for use of packet-switching, as opposed to circuit-switching.
Motivating the development of wide-area multimedia information systems will be
the desire for large-scale collaboration on the Grand Challenge problems, saving lives
and reducing costs through the use of medical databases, and consumer demand for
commercial applications such as video browsing and home shopping. For example,
Project Sequoia 2000, funded by Digital Equipment Corporation at the University
of California, involves work on distributed database management of large constantly
changing global change datasets, along with network facilities for accessing, visualizing,
and analyzing the data [300]. Distributed medical databases which allow a doctor han-
dling an emergency to instantly review a patient's medical records remotely will greatly
improve the quality of emergency care. Applications of video browsing, ranging from
computer dating to long-distance real estate services [281], will provide convenience
and cost savings to consumers.
Libraries will become important users and providers of multimedia information ser-
vices. Although libraries have traditionally been repositories of printed information,
print has limitations, such as fixed, static representation of information, lack of inter-
activity, and its restriction to single-user mode. Multimedia information systems hold
promise for overcoming these limitations, as they can provide a multisensory, dynaxnic,
interactive, multiuser environment. Future library multimedia computer systems are
expected to utilize expert system technology to assist users in selecting and retriev-
ing multimedia information. This technology will be deployed at specialized, powerful
database servers in the networked environment [25]. The problems of interconnecting
heterogeneous networks and databases remain to be solved, however, before integration
of diverse information sources can take place.
Object-oriented software technology, with its properties of encapsulation of oper-
ations, distribution of logical autonomy, processing concurrency, and reactive control
structures [603], may prove to be the most appropriate model for the design of multi-
media databases. With the object-oriented paradigm, it will be possible to incorporate
the display and processing information associated with objects into the objects them-
selves. Other relevant information includes the synchronization and communication
performance requirements of multimedia objects.
Research into object-oriented and multimedia database systems is being carried
out at a number of institutions. O-RAID is an object-oriented extension of the RAID
distributed database system being developed at Purdue University [60]. O-RAID pro-
vides a class structure for objects, with support for large, complex objects and for
object composition and replication. Although not currently a multimedia database,
the modular, object-oriented architecture of O-RAID lends itself to a natural exten-
sion to multimedia objects.
The POSTGRES database system extends the relational model to incorporate
object-oriented features such as inheritance and methods, along with a rules system
for adding intelligence to the database [556]. An extended version of POSTGRES is
being employed to help manage terabytes of global change data for the Sequoia 2000
project mentioned above [300]. Work at Boston University involves the capture of tem-
poral relations for the storage and subsequent retrieval of multimedia objects, using
POSTGRES as the database management system, an X l l user interface, and J P E G
compression.
OMEGA is a object-oriented multimedia database system being developed at the
University of Library and Information Science in Japan [391]. This research project
is extending the object-oriented model to represent temporal and spatial information
about multimedia data. The author of [391] argues in favor of the object-oriented
approach, as opposed to the hypermedia approach.
Researchers at Washington University in St. Louis are designing and implementing
an experimental ATM network which will link physician's workstations with medical
databases. The system is being developed with the goals of eliminating the manual
management, retrieval, and transportation of X-ray and other imaging data, and of
allowing simultaneous access to this data by multiple users.
The Collaborative Visualization (CoVis) Project at Northwestern University in-
volves the design of future distributed multimedia high school science learning en-
vironments [449]. Multimedia database servers will reside at CoVis network testbed
sites. These servers will support collaborative visualization activities for geographically
dispersed students and teachers working jointly on science projects.
Other research efforts include the Multimedia Information Laboratory at Syracuse
University [50], the IRIS Hypermedia System at Brown University [239], research into
efficient search and retrieval techniques at the MIT Multimedia Lab [364], and research
at Fermilab and CERN on extensions to World-Wide Web for the high-energy physics
19.2. CHARACTERISTICS AND REQUIREMENTS 383
community [47].
A number of challenging problems remain to be solved before large-scale distributed
multimedia databases become a reality. Efficient means of organizing and storing
extremely large quantities of diverse types of d a t a must be found. Appropriate indexing
and search strategies, with flexible user interfaces, must be developed. Techniques
for retrieving, composing, and synchronizing the components making up a complex
multimedia object are needed. Specification of the communication requirements for
the network transfer of multimedia objects will be a necessary function of a distributed
multimedia database system. The distributed system must also interface with the
underlying communication services to obtain the quality of service desired.
The remainder of this chapter surveys issues involved with synchronization and
communication requirements of distributed multimedia databases. Solutions which
have been proposed in the literature are described and related to each other. Finally,
suggestions are made of fruitful areas for future research.
exchange for a lower charge for use of the network. Regardless of why starvation
occurs, d a t a streams that are receiving adequate service must be synchronized
with those that have fallen behind because of starvation.
The communication requirements of multimedia objects vary greatly, depending
on the type of media and on the degree of compression being used. The bandwidth
required for sound can vary from 2.4 k b / s for coded voice up to 1.4 M b / s for CD
quality. Full-motion video can range from 30 Mb/s for medium resolution black-and-
white to 750 M b / s for high resolution color [368]. Sizes of images can vary from a
few to tens of megabits, depending on the resolution. Lossless d a t a compression can
reduce these quantities by factors of 3 to 4; greater reduction, up to a factor of 100,
is possible using lossy compression, but with some image degradation. The quality of
service required for different media can be expressed in terms of bandwidth, delay, delay
jitter (i.e., the variation in delay), and error rate. Sound has stringent delay and delay
jitter requirements, but can tolerate some loss due to error. Image and compressed
video may have stringent error requirements. Video has less stringent delay and delay
jitter requirements than audio. Use of delay compression can have an adverse effect on
delay jitter. Throughput, delay, jitter, and reliability requirements may be expressed
either deterministicaily or statistically [186]. A distributed multimedia database system
must provide facilities either for storing quality of service requirements of objects or
for calculating them on demand, and for negotiating with the communication service
provider to obtain the desired quality of service.
Quality of service requirements can also be classified as either guaranteed or pre-
dicted [113]. If a communication system provides guaranteed service, it ensures that
the quality-of-service commitment will be met, provided the client conforms to its end
of the service contract (i.e., by staying within its declared average and peak trans-
mission rates and its declared burst length). Predicted service, on the other hand,
attempts to deliver consistent performance to the client, based on past network condi-
tions, but there is no guarantee. The advantages of predicted service are that it allows
greater sharing of bandwidth, thus reducing communication cost, and that it allows
an adaptive application to adjust its playback point to take advantage of current net-
work conditions. Predicted service may suffice for casual users of multimedia database
systems (e.g., library browsers, office applications), whereas time-critical and real-time
applications may require the more dependable but more costly guaranteed service.
19.3 C o m m u n i c a t i o n Approaches
The Internet is expected to evolve into a network that can support multimedia appli-
cations [448]. Rather than interfacing directly to the underlying network, the commu-
nication manager of a multimedia database system would most likely interact with a
higher level protocol such as the Multi-flow Conversation Protocol (MCP) [636], being
developed at the University of Kentucky, or Bellcore's Touring Machine System [343].
To satisfy bandwidth, delay, jitter, and bit error requirements, data streams carrying
multimedia information will need to be sent over flows having performance guarantees
[128]. In the approach in [636], flows are grouped into a logical unit called a multi-flow
conversation. MCP is a transport level protocol that provides service primitives for es-
tablishing, managing, and terminating multi-flow conversations. The Touring Machine
System provides a set of logical abstractions for establishing and managing multimedia
communication sessions. These abstractions hide the complexities of resource alloca-
tion, network access control, and session management from the application. A session
386 CHAPTER 19. COMMUNICATION & SYNCHRONIZATION ISSUES
Services layer
Adaptationlayer
Transport hyer
Physical layer
1. A transition fires immediately when each of its input places contains an unlocked
token,
2. Upon firing, a transition removes a token from each of its input places and adds
a token to each of its output places,
3. Upon receiving a token, a place locks the token for the interval specified by the
place's duration, after which time it unlocks the token.
The timing for a single object is shown in Figure 3, where the network latency A
includes activities such as packetization, transmission, and decompression, and the
control time T is chosen by the algorithm so as to guarantee synchronization within
a given probability of faJJure. Buffer requirements are calculated for the purpose of
smoothing variations in latency and of storing objects that must be held at the desti-
nation for some amount of time prior to their playout deadline. The schedules produced
by the algorithms must somehow be enforced by the communication system. One pos-
sible interface to a proposed system-level network synchronization protocol, the Flow
Synchronization Protocol being developed at BBN [181], is described below.
19.4. SYNCHRONIZATION APPROACHES 389
"gOt
c
Dot DIS
Figure 2(c). Tree-structured schema
T (controltime)
o i II time
retrieval playoit
time ~leadline
Genedcdoscdptlon~ Specificd~scdption
Figure4. ODAdocumentmodel
possible temporal relations between pairs of actions and among multiple instantiations
of an action. A path expression is composed of atomic actions and path operators, and
it describes which path~ are allowed for the actions - i.e., the possible orders in which
the actions may be executed. Path expressions define the semantics of the synchro-
nization without imposing a specific synchronization mechanism. A total of six path
operators are described, but the following three are sufficient for describing Allen's
thirteen possible temporal relations between pairs of actions:
For example, the overlap of e~ and t , followed by the overlap of fl and 7, as shown in
Figure 5(a), would be represented by the path expression shown in Figure 5(b). In this
example, ~ (a dummy action which functions as a place holder) is executed only once
but appears in the two path expressions to produce the desired overlap between a and
and between ~ and 7.
A path expression may be viewed as a tree structure, with the path operators
as internal nodes and the actions as leaves. Such a tree structure corresponds to
the hierarchical structure of ODA. The current version of ODA provides for a time-
invariant presentation of a document, with the layout structures describing the spatial
relationships between objects. The only current time-based attribute is Imaging Order,
which gives the sequential ordering for layout objects in the layout object to which they
are immediately subordinate. The author in [253] proposes extension of the layout
structure of ODA to include attributes describing temporal relations. Extensions to
the logical structure of ODA documents and to time-variant content portions are left
for future work. The following new attributes are proposed for the basic layout objects:
C 1 Object Synchronization Type- the type of path operator associated with the object,
which may be parallel-last, parallel-first, sequential, or selective.
392 C H A P T E R 19. COMMUNICATION ,~ SYNCHRONIZATION ISSUES
The attribute values parallel-first, parallel-last, and sequential have the meanings de-
scribed above. With the selective attribute, only one of the subordinate layout objects
will be displayed, depending on the user's choice. Additional attributes are defined for
composite layout objects which concern additional timing constraints and user inter-
actions.
Before presentation of a time-variant document, the layout structure must be eval-
uated, and the timing relationships must be extracted and enforced. As in the current
ODA standard, the document imaging process, concerned with presentation of the
document to the user, is not defined by the proposed extensions and depends on the
presentation device being used. An important research question, however, will be how
to interface the proposed ODA extensions with communication protocols and database
user interfaces.
In still another approach to the expression of synchronization properties, the object-
oriented multimedia database system OMEGA [391] incorporates temporal properties
into the class TemporalObject. Members of this class, called temporal objects, have
internal state variables birth Time, death Time, terapoPrec, and terapoSync. The value of
tempoPrec is calculated from the birth time and death time information, and indicates
which object or objects immediately precede an object, and by how many seconds.
The value of tempoSync represents which other objects must be synchronized with the
object. Two objects are considered to synchronize if their lifetime periods overlap.
Temporal properties are then addressed through the class definition language, the
database programming language, and the query language.
The database synchronization manager may interact with a lower-level synchro-
nization protocol such as those described in [181,635, 17, 464]. A lower-level synchro-
nization protocol provides primitives which may be called from an application program
to access communication system synchronization facilities.
The Multi-flow Conversation Protocol (MCP) described in [635] provides a way of
combining logically related data streams which have performance guarantees, called
flows, into a logical unit called a conversation. MCP provides a token mechanism for
enforcing conversation concurrency control, or floor control. The mechanism includes
primitives for creating, replicating, distributing, and deleting tokens. Synchronization
is approached through the enforcement of a A-causality relation which is defined as
follows for messages ml and me and a source S:
ml -+ me, or ml precedes me, if
1. S sends m2 after S sends ml, or
2. S sends rag_ after S receives ml.
z~
ml --+ me, or ml A precedes me~ if
1. S sends m~ after S sends rot, or
2. S sends m~ after S receives ml and end-to-end delays for ml and
m2 are both less than or equal to A.
zx
If ml ---+ me, then ml and m~= are delivered in causal order at all destinations. If
rnl -+ me, but not(m1 ~-~ m2), then ml may be delivered after m2 or may be dropped.
MCP also provides for expedited delivery of control messages. MCP does not
require synchronized clocks, but does require a bound on clock drift between real-time
clocks at different sites. Synchronization requirements for a multimedia object would
be enforced by sending appropriate control messages and taking advantage of the causal
order that is enforced on the delivery of these messages and the actual data messages.
19.4. SYNCHRONIZATION APPROACHES 393
The protocol is adaptive, in that it can adjust the synchronization delay A to reflect
network conditions and performance. For example, if too many packets are being
discarded because of late arrival, the synchronization delay may need to be increased.
Thus, the database synchronization manager would be responsible for supplying the
application-specific functions and for contacting the synchronization protocol controller
if necessary to change protocol parameters, such as the interval at which A is updated.
The protocol assumes a flow model in which each flow has a source process sending
d a t a to a destination process. The source timestamps the d a t a and the destination
implements equalization by buffering the data. The destination processes execute the
application-specific functions. Destination processes belong to synchronization groups.
The processes in a synchronization group regularly exchange messages to compute a
common synchronization delay A for the group. Synchronization groups can be used
both for multiple destinations for the same source and for multiple related flows for
394 CHAPTER 19. COMMUNICATION dz SYNCHRONIZATION ISSUES
5t 5 5
t r
A
5c collection delay
5t transit delay
g
e equalization delay
tr release time
5d delivery delay
synchronization delay
the same application. Because the synchronization and delivery functions are executed
by the destination processes, it might appear that the OCPN model for application
synchronization, described in [369], could not be used together with this synchroniza-
tion protocol, since the processing of the OCPN which corresponds to computing these
functions must take place at the source. However, the Flow Synchronization Protocol
provides a mechanism of event messages by means of which the a source process may
send information about the flow known only to it to its corresponding destination pro-
cesses. Thus, the OCPNs could be processed at the source and the results could be
sent via event messages to the destinations where they could be used to compute the
functions.
A synchronization protocol designed to work in the absence of both synchronized
clocks and control messages is described in [464]. The media mixing problem has the
goal of minimizing the differences between generation times of packets being mixed from
different sources, in the absence of synchronized clocks, but in the presence of jitter
and transmission delays. The set of packets from different sources that are to be mixed
to form a composite media packet is called the fusion set. Packets are transmitted
from their sources to a mixer. Minimum and maximum bounds on the communication
delay from a source to the mixer are assumed to be known. Packets are assumed to
be generated at regular intervals, i.e., with a period p. Two packets may belong to
the same fusion set if and only the difference between their generation times is less
than or equal to p. This requirement is cMled the Mixing Rule. Conditions on jitter
and generation intervals are given under which it is possible for the mixer to determine
fusion sets. For the possible cases, algorithms for determining fusion sets are given. The
possible communication architectures for media mixing range from centralized, with a
single central mixer, to fully distributed, where mixing is performed independently
at each destination. To make the mixing algorithms scalable with respect to both
the number of participants and the geographical separation between participants, a
hierarchical tree-structured communication architecture is proposed, with destinations
at the leaves and mixers at the root and internal nodes. A bound on the time a mixer
must wait for lost packets is derived that minimizes the real-time delay in a hierarchical
architecture.
19.5. CONCLUSIONS 395
19.5 Conclusions
This chapter has discussed the issues involved with synchronization and communica-
tion in the context of distributed multimedia databases. Some proposed strategies for
dealing with these issues have been described. As this field is in its infancy, a great
deal of work remains to be done. Further research and development are needed in the
foUowing areas:
20.1 Introduction
The need for multimedia information systems is growing rapidly in a variety of fields in-
cluding business [423, 22], manufacturing [31712 education [633, 297], Computer-Aided
Design (CAD)/Computer-Aided Engineering (CAE) [383], medicine [466, 587, 309],
weather, entertainment [363, 169, 386], etc. Multimedia data include images, audio,
full motion video, text and numeric data. Due to the diverse nature of the multimedia
data, systems designed to store, transport, display and, in general, manage such d a t a
must have considerably more functionality and capability than conventional informa-
tion management systems. The main issues which multimedia database management
researchers/designers need to face include:
1. Development of sophisticated conceptual models which are rich in their semantic
capabilities to represent complex multimedia objects and express their synchronization
requirements. A transformation from models to a database scheme is then needed.
Subsequently, one also needs to specify the object retrieval algorithms.
2. Designing multimedia query languages which are not only powerful enough
to handle various manipulation functions for multimedia objects but also simple in
handling user's interaction for these functions.
3. Designing powerful indexing and organization techniques for multimedia data.
4. Developing efficient storage layout models to manage real-time multimedia data.
In this chapter, we focus on the first issue of multimedia database systems. The
major challenge in multimedia information management is how to synchronize vari-
ous types of d a t a both in space and time in order to compose complex multimedia
objects [367]. The problem is especiaJly acute if we are dealing with "live" d a t a such
as digital video or audio. The synchronization requirement plays a key role while de-
signing a multimedia database. The traditional relational d a t a model is not capable
of handling synchronization aspects and the heterogeneous nature of the multimedia
data. More powerful d a t a modeling schemes are needed for this purpose. Recently, we
have seen the emergence of various new data models which are capable of representing
different characteristics of multimedia objects. The intent of this chapter is to discuss
these models and their pros and cons in terms of suitability for developing multimedia
databases.
*School of Electrical Engineering, Purdue University, West Lafayette, IN, 47907, U.S.A.
t CASE Center and Department of Electrical and Computer Engineering, syracuse Univer-
sity, Syracuse, NY, 13244, U.S.A.
398 CHAPTER 20. MULTIMEDIA DATABASE SYSTEMS
20.2 C h a r a c t e r i s t i c s of M u l t i m e d i a D a t a
20.2.1 Text and Formatted Data
Formatted textual and numeric d a t a will remain an essential part of any multimedia
information system. Database systems based on relational, network or hierarchical
models are well suited for managing such type of data and generally provide efficient
access paths to d a t a in secondary storage by maintaining some type of indexing scheme.
Queries based on a number of key values such as partial match queries are supported
by using intersection operations. Tree structure and hashing can be extended to multi-
dimensional d a t a in order to support such queries. Examples of such methodologies
include k-d trees and multi-dimensional extensible hashing.
Each indexing scheme has its own advantages and disadvantages depending on the
nature of query processing and d a t a lifetime. When the database is static and most
queries are based on few keys, an inverted index can be the best indexing scheme. On
the other hand, when the database is frequently updated, and partial match queries
based on a number of key values are common, compressed files [51] and most dynamic
multidimensional file structures can provide better performance. Maintaining indices
for large unformatted textual d a t a requires an even more complicated strategy as the
index file itself can easily grow beyond any manageable size when full text inversion is
used for indexing. Although the access rate of this type d a t a is not as crucial as the
real-time deliverable data, such as video, audio etc., a large index file can prevent the
database system from carrying out real-time updating.
highly structured and formatted, high speed retrieval and storage techniques can also
be employed in this case.
20.3 N o t i o n of T i m e for M u l t i m e d i a D a t a
A multimedia object may contain real-time d a t a like audio and video in addition to
the usual text and image d a t a that constitute present-day information systems. Real-
time d a t a can require time ordered presentation to the user. A composite multimedia
object may have specific timing relationships among the different types of component
media. Coordinating the real-time presentation of information and maintaining the
time-ordered relations among component media is known as temporal synchronization.
Assemblying information on the workstation is the process of spatial composition,
which deals basically with the window management and display layout interface.
For continuous media, the integration of temporal synchronization functions within
the database management system is quite desirable since it can make the storage and
handling of continuous d a t a more efficient for the database system. Also, implementa-
tion of some standard format for d a t a exchange among heterogeneous systems can be
carried out more effectively. In this section we first elaborate on the problem of tempo-
ral synchronization of multimedia d a t a for composing objects, followed by a discussion
of modeling time. These models are then used to develop conceptual models for the
multimedia data, as described in a later section.
other hand, is an example of synthetically created relationship between audio and image
information. In this case, change of an image and the end of its verbal annotation,
represent a synchronization point in time.
tI t[
N tI tI
N tI "
time
1 2 3 4 5
F i g u r e 20.1: T i m e - O r d e r e d M u l t i m e d i a Data
A user can randomly, access various objects, while browsing through a multimedia
information system. In addition to simple forward playout of time-dependent data
sequences, other modes of d a t a presentation are also viable, and should be supported
by a multimedia database management system. These include reverse playout, fast-
forward/fast-backward playout, and random access of arbitrarily chosen segments of
a composed object. Although these operations are quite common in TV technology,
(e.g., VCRs), these capabilities are very hard to implement in a multimedia system.
This is due to the non-sequential storage of multimedia objects, the diversity in the
features of hardware used for data compression, the distribution of data, and random
communication delays introduced by the network. Such factors make the provision of
these capabilities infeasible with the current technologies.
Conceptually, synchronization of multimedia information can be classified into
three categories, depending upon the "level of granularity of information", requiring
synchronization [568]. These are the physical level, the service level, and the human
interface level [568], as shown in Figure 20.2.
At the physical level, d a t a from different media are multiplexed over single physical
connections or are arranged in physical storage. This form of synchronization can be
viewed as "fine-grain". The service level synchronization is "more coarse grain", since it
is concerned with the interactions between the multimedia appfication and the various
media, and among the elements of the appfication. This level deals primarily with
intermedia synchronization necessary for presentation or playout. The human interface
level synchronization is rather "coarse grain" since it is used to specify the random user
interaction to a multimedia information system such as viewing a succession of database
items, also known as browsing.
In addition to time dependent relational classification (i.e., synthetic/natural), data
objects can also be classified in terms of their presentation and appfication lifetimes.
A persistent object is one that can exist for the duration of the application. A non-
persistent object is created dynamically and discarded when obsolete. For presentation,
a transient object is defined as an object that is presented for a short duration without
manipulation. The display of a series of audio or video frames represents transient
presentation of objects, whether captured live or retrieved from a database. Henceforth,
20.3. NOTION OF TIME FOR MULTIMEDIA DATA 401
Human Interface
(Presentation Synchronization)
Service Layer
(Stream Synchronization)
Physical Layer
we use the terms static and transient to describe presentation lifetimes of objects while
persistence expresses their storage life in a database.
In another classification, multimedia d a t a have been characterized as either contin-
uous or discrete [250]. This distinction, however, is somewhat vague since time ordering
can be assigned to discrete media, and continuous media are time-ordered sequences
of discrete ones after digitization. We use a definition attributable to Herrtwich [250],
where continuous media are represented as sequences of discrete d a t a elements that
are played out contiguously in time. However, the term continuous is most often used
to describe the fine-grain synchronization required for audio or video.
a specification methodology must also be well suited for unusual temporal semantics as
well as be amenable to the development of a database for storing timing information.
The first time model is an instant-based temporal reference scheme that has been
extensively applied in the motion picture industry, as standardized by the Society of
Motion Picture and Television Engineers (SMPTE). This scheme associates a virtually
unique sequential code to each frame in a motion picture. By assigning these codes to
both an audio track and a motion picture track, intermedia synchronization between
streams is achieved. This absolute, instant-based scheme presents two difficulties when
applied to a multimedia application. First, since unique, absolute time references
are assumed, when segments are edited or produced in duplicate, the relative timing
between the edited segments becomes lost in terms of playout. Furthermore, if one
medium, while synchronized to another, becomes decoupled from the other, then the
timing information of the dependent medium becomes lost. This instant-based scheme
has also been applied using Musical Instrument Digital Interface (MIDI) time instant
specification [416]. The same scheme is used to couple each time code to a common
time reference [252].
In another approach, temporal intervals are used to specify relative timing con-
straints between two processes. This model is mostly applicable to represent simple
parallel and sequential relationships. In this approach, synchronization can be accom-
plished by explicitly capturing each of the thirteen possible temporal relations [369]
that can occur between the processes. Additional operations can be incorporated in
this approach to facilitate incomplete timing specification [250].
We now discuss how these approaches can be used to develop conceptual models
for multimedia objects. We discuss pros and cons of these models and compare them in
terms of their effectiveness to represent objects and user's data manipulation functions.
net places and links as net arcs. Transitions in a PNBH indicate the traversal of links,
or the browsing of information fragments. Figure 20.4 illustrates a PNBH model con-
sisting of segments of an interactive movie. These segments can be played-out in a
random order, as selected by the user and restricted by the semantics of the net.
F i g u r e 20.4: P N B I t P e t r i Net
Unlike the OCPN, net places in PNBH can have multiple outgoing arcs, and there-
fore can represent nondeterministic and cyclic browsing. On the other hand, the OCPN
specifies exact presentation-time playout semantics, useful in real-time presentation
scheduling. Clearly these two models complement each other for specifying both user
interaction and presentation orchestration.
The above mentioned Petri-Net based models lack one capability. That is, there
is no mechanism to specify communication requirements and control functions for dis-
tributed composition of objects. An attempt has been made in [145] where another
Petri Net based hierarchical model, called G-Net, has been proposed. This model does
allow specifications of communication primitives a n d types of connections that can be
established among communicating sites, floweret, the model is rather over simplified
since, unlike OCPN, it does not facilitate generation of database schema in a straight
forward manner for the multimedia objects. On the other hand, the Petri-Net models,
especially the OCPN, can be easily extended to model databases. For this purpose,
a place represents an object. Attributes, operations on objects, pointers to physical
data, etc. can be associated with each object. The semantics of the schema, therefore,
can be represented by the net structure. This conversion is explained at the end of this
section.
referring superordinate object), and methods. Some integrity rules also apply. These
include class, instance, subclass, superclass, inheritance, generalization, and aggrega-
tion. For instance, in O M E G A systems, IS_PART_OF and IS_ REFERENCE_OF can
be specified between objects. In order to handle different types of multimedia data,
a metaclass called multimediact~ is defined in the OMEGA system that consists of
sound, image, text, and video class.
In another approach [45], a three dimensional class hierarchy is used to represent
spatial objects. Definition and manipulation (usually specified in methods) are opera-
tions applied to objects.
This approach can facilitate the generation of multimedia database schema, by
using either programming languages or ER diagrams.
pa
terminals
mediumJ locationI
processing such as primitives for feature extraction. In order go make progress in im-
age databases from the software engineering perspective, it is important to examine
innovations in both processing and representations of images.
One of the most important problems to be considered in the design of image da-
tabase systems is how images are stored in an image database. Many data structures
have been proposed. Some are pixel-oriented; some utilize quadtrees, or R-trees, and
some are vector based. To make an image database system more intelligent, more
flexible, and an efficient d a t a structure should be used. Also, the knowledge embedded
in images should be captured by the d a t a structure as much as possible, especially
spatial knowledge. Extracting information from images is a time consuming process.
On the other hand, if information or knowledge is extracted from images item by item
in advance and stored for later retrieval, we need much more storage capacity and
therefore, retrieval would take a long time.
In pictorial information retrieval, many approaches have been proposed and include
relational database queries, query-by-view [412], quadtrees etc. We now describe some
image database systems for which such approaches have been proposed and prototyped.
attributes to symbols in the 2-D strings. In this way, we could convey not only
the relative positions of objects, but also information such as orientation, size,
and other characteristics.
2. Image Database System (IDB) [591]: Most information management systems
are designed to handle traditional alphanumeric data. Today technology makes
available resources that allow the management of new classes of information, such
as image and voice. When deahng with images, we must generalize the input,
processing, and output phases that characterize the management of traditional
d a t a types. Furthermore, all these activities require suitable hardware and soft-
ware instruments. From the end-user point of view, the interface between users
and systems would be much more attractive if it were possible to use images to
manage images as well as we use words to manage traditional information. Two
kinds of d a t a must be managed by an image system: image files and their de-
scriptions. The former are characterized by large sizes and unstructured forms,
while the latter have small sizes and structured forms. Images and descriptions
are stored on different kinds of devices. The main requirement for image d a t a
is the availability of a large memory at low cost. Optical disks can meet this re-
quirement, and image d a t a are now increasingly stored on those special devices,
while descriptive information continues to be stored on magnetic disks.
The IDB system exploits images as a vehicle of interaction with the user; index
images play a fundamental role in completing the selection of images from the
archive. The architecture is characterized by modularity and flexibility; each
single module is related to a specific task to be performed during the image
management process. Functions have been integrated by distributing resources
among the nodes of a LAN; each node COrresponds to a workstation, and many
users can work with the system.
Future extensions of IDB will involve the integration of new kinds of information
such as audio d a t a and image animation. A hypermedia approach is also being
evaluated.
3. Map Database: A map database management system contains facilities to cre-
ate, modify, store, and retrieve spatial information. A Map Database System
(MDS) goes beyond simply replacing paper maps. MDS allows users to view,
compare, and analyze spatial relationships. Map databases allow the generation
of maps that contain only the information required by the map user. The map
information is divided into different layers which overlay on the same area. Typ-
ical layers include streams, cities, sewers, roads, highways, secondary streets,
water pipes, gas lines, telephone cables and so on. The information in layers
may also contain per capital income, product consumption, or other thematic
information.
Map databases contain large amounts of data. Efficient encoding of the graph-
ical information into a format suitable for digital storage is required. The non-
graphical attributes are usually stored using the normal methods. Several dif-
ferent encoding methods are polygon encoding, dual independent map encoding,
and 2-D encoding [236].
can be reduced to an audio storage system. However, in order to support real time
applications in multimedia representation, an efficient placement of audio d a t a on
optical disks is important. The placement of audio data on the optical disk is of
primary importance because the audio d a t a is being extracted from the optical disk
in real-time. Real time means that system interrupts greater than 30 msec cannot be
tolerated. Yu et al. [637] proposed an optimal algorithm for merging two audio records,
resulting in a record having minimum length. This result is useful in minimizing space
for storing audio files, while maintaining realistic sound.
20.6 C h a l l e n g e s in M u l t i m e d i a D a t a b a s e
Conventional databases are mainly designed to process and access the text and numeric
data. These databases can be an important part of the overall multimedia system. Con-
siderable research has been done during the last two decades in these databases. Their
architecture ranges from centralized database to distributed database systems. How-
ever, all these conventional database systems lack the capabilities needed to support
advanced multimedia applications in offices and factories, that require integration of
various types of d a t a such as text, image, video and audio into a single object so that
users can interact with it without being aware of the heterogeneity of data in types
and operations.
The organization and management issues for multimedia databases have been the
subject of extensive research and development since the middle of the 1980's. However,
a number of challenges are faced by the database community to provide a comprehen-
sive solution for designing and managing multimedia database systems. These include
designing new d a t a models to capture semantics for multimedia objects, storing and ac-
cessing multimedia data, indexing techniques for digital images, video and audio data,
version management for distributed objects, query language development for multime-
dia d a t a etc. Some approaches proposed for this purpose are based on the extension of
existing relational, networking, and object-oriented models, as briefly described earlier.
Coming back to four issues discussed in Section 1, we have only addressed the first
issue in this chapter. Extensive research is needed to handle other issues as well. For
example, the base technology that deals with the management of various data types
poses a number of challenges. The major issue is related to storing live data such as
digital video and audio. Specifically, if we need to extend the data models used in
conventional databases, selection of attributes, designing suitable indexing schemes,
searching for video and audio d a t a items, linking objects, etc., pose unique challenges
that are not faced in conventional databases. It is possible that a mere extension of
existing d a t a models may not prove fruitful for this purpose. More advanced d a t a
models, as discussed above, may provide better and more powerful methodologies and
warrant more extensive scrunity and evaluation.
Another major challenge is integration of enabling technologies~ where diverse and
heterogeneous (such as text, image, video etc.) databases need to interact with each
other in order to provide unified composite objects to the end users. Schema integration
for the individual multimedia databases, provision of a high level query language to
manipulate objects across these databases etc., are some of the important issues which
need to be addressed. A number of papers have recently started appearing that provide
more powerful query languages which can be effectly used for multimedia databases
[412]
20.7. CONCLUSION 411
20.7 Conclusion
One of the requirements of multimedia database systems is that they will need a data
model more powerful than the relational model, without compromising its advantages.
The relational data model exhibits limitations in terms of complex object support,
type system, and object management. To address these issues, we have emphasized
one key requirement for multimedia databases, which is the process of temporal syn-
chronization. We have discussed various conceptual models to specify this requirement
and have highlighted their capabilities and limitations. Still, a number of other issues
need to be faced before multimedia database systems become a reality.
Bibliography
[1] I. Aalbersberg and F. Sijstermans. High-quality and High Performance Full-
Text Document Retrieval: the Paralell infoguide System. In Proceedings of the
IEEE Conference on Parallel and Distribu'ted Information Systems, pages 142-
150, December 1991.
[2] S. Abiteboul, P. Buneman, C. Delobel, R. Hull, P. Kanellakis, and V. Vianu.
New Hope on Data Models and Types: Report of an NFS-INRIA Workshop.
ACM SIGMOD, 19(4), December 1990.
[3] S. Abiteboul and C. Kanellakis. Object Identity as a Query Language Primitive.
In Proceedings of the ACM SIGMOD International Conference on Management
of Data, pages 159-173, Portland, Oregon, June 1989.
[4] ACMgl. Special Issue on Next-Generation Database Systems. Communications
of ACM, 34(10), October 1991.
[5] N. Adam and R. Subramanian. An Object-Oriented Model for Intelligent Query
Processing in Geographical Databases. In Proc. 3rd Australian Database Con-
ference, 1992.
[6] R. Agarwal, N. H. Gehani, and J. Srinivasan. OdeView: The Georaphical In-
terface to Ode. In Proc. ACM-SIGMOD Conf. on Mangement of Data, Atlantic
City, New Jersey, May 1990.
[7] R. Agrawal and N.H. Gehani. Ode(Object Database and Environment): the Lan-
guage and the Data Model. Proc. ACM-SIGMOD 1989 Int'l Conf. Management
of Data, pages 36-45, May 1989.
[8] R. Ahad et al. Supporting Access Control in an Object-Oriented Database Lan-
guage. In Proc. Third International Conference on Extending Database Tech-
nology (EDBT), Vienna (Austria), Springer- Verlag Lecture Notes in Computer
Science, volume 580, pages 184-200, 1992.
[9] R. Ahmed and et al. The Pegasus Heterogeneous Multidatabase System. IEEE
Computer, 24(12), December 1991.
[10] T.H. Ahn, H.3.3o, J.H. Kim, Y.J. Lee, and B.C. Kim. Statistical and Scientific
Database Management. In G. Goos and J. Hartmanis, editors, Lecture Notes in
Computer Science 420. Springer-Verlag, 1990.
[11] A. Alashqur, S. Su, and It. Lam. OQL-A Query Language for Manipulating
Object-Oriented Databases. In International Conference on Very Large Data-
bases, pages 433-442, 1989.
414 BIBLIOGRAPHY
[12] A. Alashqur, S. Su, and H. Lam. A Rule-Based Language for Deductive Object-
Oriented Databases. tn Proceedings of the Sixth Int'l Conference on Data Engi-
neering, 1990.
[13] J. F. Allen. Maintaining Knowledge about Temporal Intervals. Communications
of ACM, 26(11):832-843, November 1983.
[14] L. Allen and O. Frieder. Exploiting Database Technology in Medical Arenas:
A critical Assessment of PACS. IEEE Engineering in Medicine and Biology,
11(1):42-49, March 1992.
[15] R: Alonso and D. Barbara. Negotiating Data Access in Federated Database
Systems. Proceedings of the 5th International Conference on Data Engineering,
February 1989.
[16] R. Alonso, D. Barbara, and H. Garcia-Molina. Data Caching Issues in an Infor-
mation Retrieval System. ACM Transactions on Database Systems, 15(3):359-
384, September 1990.
[17] David P. Anderson and George Homsy. A Continuous Media I/O Server and Its
Synchronization Mechanism. IEEE Computer, 24(10):51-57, October 1991.
[18] D.P. Anderson, S.Y. Tzou, R. Wahbe, R. Govindan, and M. Andrews. Support
for Continuous Media in the Dash System. Proc. lOth Intl. Conf. on Distributed
Computing Systems, pages 54-61, May 1990.
[19] Apollo Computer Inc., Chelmsford, MA. Network Computing System: A Tech-
nical Overview, 1989.
[20] W.G. Aref and H. Samet. Extending a DBMS with Spatial Operations. Lecture
notes in Computer science, pages 299-318, August 1991. Vol. 525.
[21] G. Ariav. A Temporally Oriented Data Model. ACM Transactions on Database
Systems, 11(4):499-527, December 1986.
[22] H. Armbruster. Broadband ISDN - The Network of the Future: Appfications
and Compliance with user Requirements. Globecom '86 (IEEE Global Telecom-
munications Conference Record 1986), pages 484-490, December 1986.
[23] N. Asokan, S. Ranka, and O. Frieder. High-quality and High Performance Full-
Text Document Retrieval: the Paralell infoguide System. In Proceedings of the
IEEE International Conference on Parallel Architectures and Databases, pages
519-521, 1990.
[24] B. R. Badrinath and K. Ramamritham. Semantics-Based Concurrency Control
Beyond Commutativity. In 3rd IEEE International Conference on Data Engi-
neering, pages 304-311, 1987.
[25] Charles W. Bailey. Intelligent Multimedia Computer Systems: Emerging Infor-
mation Resources in the Network Environment. Library Hi Tech, 8(1):29-41,
1990.
[26] S.C. Bailin. An Object Oriented Requirements Title Method. Communications
of the A C M 32,5, 1989.
[27] B. Baker, E. Coffman, and R. Rivest. Orthogon~ Packings in Two Dimensions.
S I A M Journal on Computing, 9(4):846-855, November 1980.
[28] R. Balzer et al. Operational Specifications as the Basis for Rapid Prototyping. In
In Proceedings of ACM SIGSOFT '88: Third Symposium on Software Develop-
ment Environments, Boston, pages 3-16, December 1982. Software Engineering
Notes 7(5).
BIBLIOGRAPttY 415
[29] R. Balzer et al. Common Prototyping Working Group. Draft report on require-
ments for a common prototyping system, University of Maryland, 1988.
[30] Robert Balzer, Dewayne E. Perry, James Purtilo, Richard T. Snodgrass, Alexan-
der L. Wolf, and Jon Ward. Technical Notes 1-9, September 1990-November
1991. Technical report, DARPA Module Interconnection Formalism Working
Group, 1991.
[31] F. Bancilhon and R. Ramakrishnan. An Amateur's Introduction to Recursive
Query Processing. In ACM-SIGMOD, Washington, D.C., 1986.
[32] Francois Bancflhon and Won Kim. Object-Oriented Database Systems: In Tran-
sition. SIGMOD RECORD, 19(4), December 1990.
[33] J. Banerjee, H.T. Chou, J.F Garza, and W. Kim. Data Model Issues for
Object-Oriented Applications. ACM Transactions on Office Information Sys-
tems, 5(1):3-26, January 1987.
[34] D. Barbara and H. Garcia-Mohna. The Demarkation Protocol: A Technique for
Maintaining Arithmetic Constraints in Distributed Systems. In Proc. of the Int'l
Conference on Extending Data Base Technology, Vienna, March 1992.
[35] Daniel Barbara and Chris Chfton. Information Brokers: Sharing Knowledge in
a Heterogeneous Distributed System. Technical Report MITL-TR-31-92, Mat-
sushita Information Technology Laboratory, 182 Nassau STreet, Princeton, NJ
08542, October 1992.
[36] R. Barrera and A. Buchmann. Schema Definition and Query Language for
a Geographical Database System. IEEE Transactions on Computer Architec-
ture:Pattern Analysis and Image Database Management, November 1981.
[37] C. K. Baru and O. Frieder. Database Operations in a Cube-Connected Multi-
processor System. IEEE Transactions on Computers, 38(6):920-927, June 1989.
[38] C. Batini, M. Lenzerini, and S.B. Navathe. A comparative Analysis of Method-
ologies for Database Schema Integration. ACM Computing Surveys, 18(4), De-
cember 1986.
[39] N. Beckman and H.P. Kriegel. The R*-Tree:An Efficient and Robust Access
Method for Points and Rectangles. In Proceedings of the 1990 ACM SIGMOD
International Conference on Management of Data, pages 322-331, May 1990.
[40] C. Beeri and T. Milo. A Model for Active Object Oriented Database. In Proc.
of the 17th International Conf. on Very Large Databases, pages 337-349, Sept.
1991.
[41] K. Belkhale and P. Banerjee. Approximate Scheduling Algorithms for the Par-
titionable Independent Task Scheduling Problem. In Proceedings of the 1990
International Conference of Parallel Processing, volume I, pages 72-75, August
1990.
[42] Nicholas J. Belkin and W. Bruce Croft. Information Filtering and Information
Retrieval: Two Sides of the Same Coin? Communications of the ACM, 35(12):29-
38, Dec. 1992.
[43] D. E. Bell and L. J. LaPadula. Secure Computer Systems: Unified Exposition
and Multics Interpretation. The Mitre Corp., March 1976.
416 BIBLIOGRAPHY
[44] Douglas L. Bell and Alan Kaplan. PIC/ADA Toolset User Reference Manual.
University of Massachusetts, Software Development Laboratory, Computer and
Information Science Department, University of Massachusetts, Amherst, Mas-
sachusetts 01003, arcadia design document urn-91-04 edition, October 1991.
[45] D. Benson a~nd G. Zick. Symbolic and Spatial Database for Structural Biology.
Proc. OOPSLA 91, pages 329-339, 1991.
[46] B. Bergsten, M. Couprie, and M. Lopez. DBS3: A Parallel Database System
for Shared Store. Proceedings of the 2nd Intl. Conf. on Parallel and Distributed
Information Systems, pages 260-262, January 1993.
[47] T.J. Berners-Lee, R. Cailliau, R.-F. Groff, and B. PoUermann. World- Wide Web:
An Information InfraStructure for High-Energy Physics. In Proc. Software Engi-
neering, Artificial Intelligence and Expert Systems for High Energy and Nuclear
Physics, La Londe-les-Maures, France, January 1992.
[48] P. Bernstein, M. Hsu, and B. Mann. Implementing Recoverable Requests Using
Queues. In Proceedings of A CM SIGMOD Conference on Management of Data,
1990.
[49] P.A. Bernstein, V. Hadzilacos, and N. Goodman. Concurrency Control and Re-
covery in Database Systems. Addison-Wesley, 1987.
[50] P. Bruce Berra, C. Y. Roger Chen, Arif Ghafoor, Chin Chung Lin, Thomas D. C.
Little, and Donghoon Shin. Architecture for Distributed Multimedia Database
Systems. Computer Communications, 13(4):217-231, May 1990.
[51] P.B. Berra, S.M. Chung, and N. Hachem. Computer Architecture For a Surrogate
File to a Very Large Data/Knowledge Base. IEEE Computer, 20(3):25-32, March
1987.
[52] Brian N. Bershad, Dennis T. Ching, Edward D. Lazowska, Jan Sanislo, a~d
Michael Schwartz. A Remote Procedure Call Facility for Interconnecting Het-
erogeneous Computer Systems. IEEE Transactions on Software Engineering,
13(8), August 1987.
[53] E. Bertino. Data Hiding and Security in an Object-Oriented Database Sys-
tem. Proc. Eighth IEEE International Conference on Data Engineering, Phoenix
(Ariz.), Feb 1992.
[54] E. Bertino and S. Jajodia. Modeling MultiLevel Entities Using Single-Level
Objects. Submitted for publication, August 1992.
[55] E. Bertino and L. Martino. Object-Oriented Database Management Systems:
Concepts and Issues. IEEE Computer, 24(No.4):33-47, 1991.
[56] E. Bertino, M. Negri, G. Pelagatti, and L. Sbattella. Object-Oriented Query
Languages: the Notion and the Issues. 1EEE Trans. on Knowledge and Data
Engineering, 4(3):223-237, 1992.
[57] E. Bertino and H. Weigand. An Approach to Authorization Modeling in Object-
Oriented Database Systems. To appear in Data and Knowledge Engineering.
[58] Ehsa Bertino and Won Kim. Indexing Techniques for Queries on Nested Objects.
IEEE Transactions on Knowledge and Data Engineering, 1(2), June 1989.
[59] B. Bhargava, S. Browne, and J. Srinivasan. Composite Object Replication in
Distributed Database Systems. In Proc. International Conference on Information
Systems and Management of Data, Bangalore, India, July 1992.
BIBLIOGRAPHY 417
[145] Yi Deng and Shi-Kuo Chang. A Framework for the Modeling and Prototyping of
Distributed Information Systems. International Journal Of Software Engineering
and Knowledge Engineering, 1(3):203-226, 1991.
[146] D. Denning. Cryptography and Data Security. Addisoff-Wesley, Reading, Mass.,
1982.
[147] L. P. Deutsch. Levels of Reuse in the Smalltalk-80 Programming System. Tuto-
rial:Software Reusability, P. Freeman, Ed., IEEE Computer Society Press, Wash.
D.C., 1987.
[148] L. P. Deutsch. Design Reuse and Frameworks in the Smalltalk-80 System. Soft-
ware Reusability, Vol 1, T. J. Biggerstaff and A. J. Perlis, Eds., ACM Press,
pp-57-71, 1989.
[149] Peter Deutsch. Resource Discovery in an Internet Environment-the Archie Ap-
proach. Electronic Networking, 2(1):45-51, Spring 1992.
[150] O. Deux et al. The Story of 02. IEEE Trans. on Knowledge and Data Engineer-
ing, 2(1):91-108, 1990.
[151] O. Deux et al. The 02 System. Communicatons of the ACM, 34(10), October
1991.
[152] P. Dewan. A Tour of the Suite User Interface Software. In Proceedings of the
3rd ACM SIGGRAPH Symposium on User Interface Software and Technology,
pages 57-65, October 1990.
[153] P. Dewan, A. Vikram, and B. Bhargava. Engineering the Object- Relation Model
in O- Raid. In Proceedings of the International Conference on Foundations of
Data Organization and Algorithms, pages 389-403, June 1989.
[154] D. J. DeWitt and R. Gerber. Multiprocessor Hash-Based Join Algorithms. Pro-
ceedings of the 11th International Conference on Very Large Data Bases, pages
151-162, August 1985.
[155] D. J. DeWitt, S. Ghandeharizadeh, D. A. Schneider, A. Bricker, tt.I. Hsiao, and
R. Rasmussen. The Gamma Database Machine Project. IEEE Transactions on
Knowledge and Data Engineering, 2(1):44-62, March 1990.
[156] D. J. DeWitt, J. Naughton, and D. Schneider. Parallel External Sorting Us-
ing Probabilistic Splitting. Proceedings of the 1st Conference on Parallel and
Distributed Information Systems, pages 280-291, December 1991.
[157] D. J. DeWitt, J. Naughton, D. Schneider, and S. Seshadri. Practical Skew Han-
dling in Parallel Joins. Proceedings of the 18th International Conference on Very
Large Data Bases, pages 27-40, August 1992.
[158] D. M. Dins, B. R. Iyer, J. T. Robinson, and P. S. Yu. Integrated Concurrency-
Coherency Controls for Data Sharing. IEEE Transactions on Software Engineer-
ing, SE-15(4):437-448, April 1989.
[159] T.E. Dielman. Pooled Cross-Sectional and Time-Series Data Analysis. Marcel
Dekker, Inc., 1989.
[160] Pamela Drew, R. King, and Dennis Heimbigner. A Multi-Dimensional, Extensi-
ble Framework for the Integration of Next-Generation, Heterogeneous Database
Management Systems. VLDB Journal, Special Issue on Heterogeneous Databases,
1992. To Appear 2Q.
BIBLIOGRAPHY 423
[161] Pamela Drew, Roger King, and Jonathan Bein. A la Carte: An Extensible
Framework for the Tailorable Construction of Heterogeneous Object Stores. In
Implementing Persistent Object Bases: Principles and Practice, The Fourth In-
ternational Workshop on Persistent Object Systems. Morgan Kaufmann Publish-
ers, Inc., 1990.
[162] Pamela A. Drew. A la Carte: An Implementation of a Toolkit for the Incremen-
tal Integration of Heterogeneous Database Management Systems. PhD thesis,
University of Colorado, Boulder, 1991.
[163] James R. Driscoll, David A. Rajala, William H. Shaffer, and Donald W. Thomas.
The Operation and Performance of an Artificially Intelligent keywording System.
Information Processing and: Management, 27(1):43-54, 1991.
[164] Batory D.S., Barnett J.R., Garza J.F., and Smith K.P. GENESIS: A Reconfig-
urable DBMS. Technical Report 86-07, Dept. of Computer Science, U.T. Austin,
1986.
[165] J. Du and L. Leung. Complexity of Scheduling Parallel Task Systems. SIAM,
Journal on Discrete Mathematics, 2(4):473-487, November 1989.
[166] X. Du and F. 3. Maryanski. Data Allocation in a Dynamically Reconfigurable
Environment. In Proceeding of the IEEE Fourth International Conference on
Data Engineering, pages 74-81, February 1988.
[167] Ken Dubose and Hyong S. Kim. An Efective Bit Rate/Table Lookup Based
Admission Control Algorithm for the ATM B-ISDN. In Proc. 17th Conf. on Local
Computer Networks, pages 20-29, Minneapolis, Minnesota, September 1992.
[168] Zbigniew Dziong, Jean Choquette, Ke-Qiang Liao, and Lorne G. Mason. Ad-
mission Control and Routing in ATM Networks. Computer Networks and ISDN
Systems, 20(1-5):189-196, December 1990.
[169] M.T. Edmead. Interactive Applications Using CD-I. In COMPCON Spring '87,
32nd IEEE Computer Society Intl. Conf., pages 410-412, San Francisco, CA,
February 1987.
[170] F. Eliassen and R. Karlsen. Interoperability and Object Identity. SIGMOD
RECORD, 20(4), December 1991.
[171] C. Elkan. A Decision Procedure for Conjunctive Query Disjointness. 8th
A C M SIGACT-SIGMOD-SIGART Symposium on Principles of Database Sys-
tems, 1989.
[172] A. Elmagarmid, editor. Database Transaction Models for Advanced Applications.
Morgan-Kaufmann, February 1992.
[173] R. Elmasri, I. E1Assal, and V. Kouramajian. Semantics of Temporal Data in an
Extended ER Model. In 9th Entity-Relationship Conference, October 1990.
[174] R. Elmasri and V. Kouramajian. A Temporal Query Language Based on Concep-
tual Entities and Roles. In 11th Entity.Relationship Conference, October 1992.
[175] R. Elmasri and Shamkant Navathe. Fundamentals of Database Systems. Ben-
jamin Cummings, 1989.
[176] R. Elmasri, J. Weeldreyer, and A Hevner. The Category Concept: An Extension
to the ER Model. Data and Knowledge Engineering, pages 75-116, June 1985.
[177] R. Elmasri and J. Wiederhold. GORDAS: A Formal High Level Query Language
for the ER Model. 2nd Entity-Relationship Conference, October 1981.
424 BIBLIOGRAPHY
[178] R. Elmasri and G. Wuu. Index by Time Interval: An Efficient Access Structure
for Temporal Queries. Submitted for publication., 1990.
[179] R. Elmasri, G. Wuu, and V. Kouramajian. A Temporal Model and Query Lan-
guage for EER Databases. Benjamin Cummings, 1993.
[180] E.A. Emerson. Temporal and Modal Logic. In Jan van Leeuwen., editor, Hand-
book o] Theoretical Computer Science, page 995. Elsevier, New York, 1990.
[181] Julio Escobar, Debra Deutsch, and Craig Partridge. Flow Synchronization Pro-
tocol. BBN Systems and Technologies Division, Cambridge, MA, March 1992.
[182] K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger. The Notions of Con-
sistency and Predicate Locks in Database Systems. Communications of ACM,
pages 624-633, november 1976.
[183] O. Etzion, A. Segev, and G. Avigdor. A Temporal Active Database Model.
Technical Report LBL-32587, Lawrence Berkeley Lab, 1992.
[184] J.J. Ewing. An Object-Oriented Operating System Interface. OOPSLA'86 Pro-
ceedings, SIGPLAN Not. (ACM) 21, 11 (Portland, Oregon, November 1986.
[185] A. Farr~g and M. Ozsu. Using Semantic Knowledge of Transactions to Increase
Concurrency. A CM Transactions on Database Systems, 14(4):503-525, December
1989.
[186] Domenico Ferrari. Client Requirements for Real-Time Communication Services.
IEEE Communications Magazine, 28(11):65-72, November 1990.
[187] R. G. Fichman and Chris F. Kemerer. Object-Oriented and Conventional Anal-
ysis and Design Methodologies. IEEE Computer, October 1992~.
[188] D. Fishman, D Beech, H.P. Cate, and E.C. Chow. Iris: An Object-Oriented
Database System. A CM Transactions On Office Information Systems, 5(1):48-
69, January 1987.
[189] D. Fishman et al. Overview of the Iris DBMS. Object-Oriented Concepts, Data-
bases, and Applications, W. Kim, and F. Lochovsky, eds., Addison- Wesley, pages
219-250, 1989.
[190] David W. Flater and Yelena Yesha. An Efficient Management of Read-Only Data
in a Distributed Information System. Technical Report CS-92-04, University of
Maryland Baltimore County, Baltimore, MD 21228, March 1992.
[191] David W. Flater and Yelena Yesha. Query Routing and Object Caching in a
Large Distributed Information System. In Proceedings o] the ISMM First Inter-
national Conference on Information and Knowledge Management, pages 525-534,
Baltimore, MD, U.S.A., November 1992. The International Society for Mini and
Microcomputers.
[192] David W. Flater and Yelena Yesha. A Robust and Efficient Strategy for the Dis-
tributed Caching of Read-Only Data in a Large Networked Information System.
International Journal of Intelligent and Cooperative Information Systems, 1993.
Submitted.
[193] David W. Flater and Yelena Yesha. An Efficient Management of Read-Only Data
in a Distributed Information System. International Journal of Intelligent and
Cooperative Information Systems, Special Issue on Information and Knowledge
Management, 1993. To appear.
BIBLIOGRAPHY 425
[194] David W. Flater and Yelena Yesha. An Information Retrieval System for Network
Resources. In Proceedings of the International Workshop on Next Generation
Information Technologies and Systems, 1993. To appear.
[195] David W. Flater and Yelena Yesha. Properties of Networked Information Re-
trieval with Cooperative Caching. Technical Report CS-93-08, University of
Maryland Baltimore County, Baltimore, MD 21228, April 1993.
[196] Committee for Advanced DBMS Function. Third-Generation Database System
Manifesto. SIGMOD RECORD, 19(3):31-44, September 1990.
[197] O. Frieder. Multiprocessor Algorithms for Relational-Database Operations on
Hypercube Systems. IEEE Computer, pages 13-28, November 1990.
[198] O. Frieder and C. K. Baru. Site Selection and Query Scheduling Policies for Mul-
ticomputer Database Systems. In Proceeding of lEEE Transactions on Knowledge
and Data Engineering, pages 74-81, February 1994. To appear in 1994.
[199] O. Frieder, V. A. Topkar, R. K. Karne, and A. K. Sood. Experimentation with
Hypercube Database Engines. IEEE Micro, 12(1):42-56, February 1992.
[200] R. Fujimoto. Parallel Discrete Event Simulation. Communications of the ACM,
33(10):31-53, 1990.
[201] S. Gadia and C. Yeung. A Generalized Model for a Temporal Relational Data-
base. A CM SIGMOD-88 Conference Proceedings., June 1988.
[202] S. K. Gadia and J. Vaishnav. A Query Language for a Homogeneous Temporal
Database. In Proc. of The Fourth Annual ACM SIGACT-SIGMOD Symposium
on Principles o/Database Systems, pages 51-56, 1985.
[203] Shashi K. Gadia. A Homogeneous Relational Model and Query Languages for
Temporal Databases. A CM Transactions on Database Systems, 13:418-448, 1988.
[204] Shashi K. Gadia and Sunfl S. Na~r. Temporal Databases: A Prelude to Paramet-
ric Data. In A. Tansel et al., editors, Temporal Databases: Theory, Design and
Implementation. BeDjamin Cummings Publishing Company, 1993.
[205] Shashi K. Gadia and Chuen-Sing Yeung. Inadequacy of IntervaJ Timestamps in
Temporal Databases. Information Sciences, 54:1-22, 1991.
[206] Z. Galil and N. Megiddo. A Fast Selection Algorithm and the Problem of Optimal
Distribution of Effort. Journal of the ACM, pages 58-64, 1979.
[207] S. Gantimahapatruni and G. Karabatis. Enforcing Data Dependencies in Co-
operative Information Systems. In Proceedings o/ International Conference on
Intelligent and Cooperative Information Systems, Rotterdam, The Netherlands,
May 1993.
[208] H. Garcia-Molina. Using Semantic Knowledge for Transaction Processing in a
Distributed Database. ACM Transactions on Database Systems, 8(2):186-213,
June 1983.
[209] H. Garcia-Molina. Using Semantic Knowledge for Transaction Processing in a
Distributed Database. ACM Transactions on Database Systems, 8(2):186-213,
June 1983.
[210] H. Garcia-Molina, D. Gawlick, J. Klein, K. Kleissner, and K. Salem. Coordi-
nating Multi-Transaction Activities. Technical Report CS-TR-247-90, Princeton
University, February 1990.
426 BIBLIOGRAPHY
[211] M. Garey and R. Graham. Bounds for Multiprocessor Scheduling with Resource
Constraints. S I A M Journal on Computing, 4(2):187-200, June 1975.
[212] M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the
Theory of NP-Completeness. W. H. Freeman and Company, 1979.
[213] N. Gehani and W.D. Roome. The Concurrent C Programming Language. Silicon
Press, 1989.
[214] N. H. Gehani. Capsules: a Shared Memory Access Mechanism for Concurrent
C/Cq-q-. To Be Published in IEEE Transactions on Parallel and Distributed
Systems, 1990.
[215] N. H. Gehani, H. V. Jagadish, and O. Shmueli. Composite Event Specification
in Active Databases: Model and Implementation. Proc. of the 18th Int'l Conf.
on Very Large Databases, August 1992.
[216] N. H. Gehani, H. V. Jagadish, and O. Shmueli. Event Specification in an Active
Object-Oriented Database. Proc. ACM-SIGMOD 1992 Int'l Conf. on Manage-
ment of Data, 1992.
[217] N.H. Gehani and H. V. Jagadish. Ode a.s an Active Database: Constraints and
Triggers. Proc. 17th Int'l Conf. Very Large Data Bases, pages 327-336, 1991.
[218] D. Georgakopoulos, M. Rusinkiewicz, and A. Sheth. On Serializability of Multi-
database Transactions through Forced Local Conflicts. In Proceedings of the 7th
IEEE International Conference of Data Engineering, April 1991. Kobe, Japan.
[219] R. Gerber. Datafiow Query Processing Using Multiprocessor Hash-Partitioned
Algorithms. Technical Report Tech. Rep. 672, Computer Science Department,
University of Wisconsin-Madison, October 1986.
[220] S. Ghandehaxizadeh, 1~. Hull, and Dean Jacobs. Implementation of Delayed Up-
dates in Heraclitus. In Proc. of Intl. Conf. on Extending Data Base Technology,
1992. to appear.
[221] P.B. Gibbons. A Stub Generator for Multilanguage RPC in Heterogeneous En-
vironments. IEEE Transactions of Software Engineering, 13(1):77-87, January
1987.
[222] Henry M. Gladney. A Model for Distributed Information NeTworks. Technical
Report RJ5220, IBM Almaden Res. Lab, 650 Harry Road, San Jose, California
95120-6099, July 1986.
[223] A. Go et al. An Approach to implementing a Geo-Data System. TR ERL-M529,
University of California, Berkeley, June 1975.
[224] D. E. Goldberg. Genetic Algorithms in Search Optimization and Machine Learn-
ing. Addison Wesley, 1989.
[225] Jonny Goldman. In response to questions sent Through e-mail.
[226] S. J. Golestani. Congestion-Free Transmission of Real-Time Traffic in Packet
Networks. In Proc. IEEE INFOCOM '90, pages 527-536, San Francisco, CA,
1990.
[227] Goodchild. Accuracy of Spatial Databases. Taylor and Francis, 1989.
[228] R. Graham. Bounds on Multiprocessor Timing Anomolies. SIAM Journal of
Computing, pages 416-429, 1969.
BIBLIOGRAPHY 427
[246] Dennis Heimbigner. A Tower of Babel: Providing Flexible and Extensible En-
vironment Services. Draft Technical Report CU-CS-580-92, University of Col-
orado, Boulder, University of Colorado at Boulder, Department of Computer
Science, Campus Box 430, Boulder, CO 80309, 1992.
[247] Dennis Heimbigner. Triton Reference Manual. Technical Note CU-CS-483-92,
University of Colorado, Computer Science Department, University of Colorado,
Boulder, CO 80309-0430, May 5th 1992. Version 0.8.
[248] B. Henderson-Se~ars and J.M. Edwards. The Object Oriented Systems Life
Cycle. Communications of the ACM, September 1990.
[249] J. Herring etal. Extensions to the SQL Language to Support Spatial Analysis
in a Topological Data Base. GIS/LIS'88, San Antonio, Texas, November 1988.
[250] R.G. Herrtwieh. Time Capsules: An Abstraction for Access to Continuous-Media
Data. Proc. 11th Real-Time Systems Syrup., pages 11-20, December 1990.
[251] Jerry Hobbs. Presentation on the use of a finite State Machine (FASTUS) to per-
form Information extraction from natural Language texts given in a panel session
at the First International Conference on Information and Knowledge Manage-
ment.
[252] M.E. Hodges, R.M. Sasnett, and M.S. Ackerman. A Construction Set for Multi-
media Applications. IEEE Software, pages 37-43, January 1989.
[253] Petra Hcepner. Synchronizing the Presentation of Multimedia Objects - ODA
Extensions. ACM SIGOIS Bulletin, 12(1):19-32, July 1991.
[254] W. Hong. Exploiting Inter-Operator Parallelism in XPRS. Proceedings of ACM
SIGMOD, pages 19-28, June 1992.
[255] W. Hong and M. Stonebraker. Optimization of Parallel Query Execution Plans in
XPRS. Proceedings of the 1st Conference on Parallel and Distributed Information
Systems, pages 218-225, December 1991.
[256] W.C. Hou, G. Ozsoyoglu, and B.K. Taneja. Processing Aggregate Relational
Queries with Hard Time Constraints. Proc. ACM SIGMOD Intl. Conf. on Man-
agement of Data, June 1989.
[257] M. Hsu, R. Ladin, and D. McCarthy. An Execution Model for Active Data Base
Management Systems. In Proceedings of the 3~a International Conference on
Data and Knowledge Bases, June 1988.
[258] M. Hsu and A. Silberschatz. Persistent Transmission and Unilateral Commit- A
Position Paper. In Workshop on Multidatabases and Semantic lnteroperability,
Tulsa, OK, October 1990.
[259] K. A. Hun and C. Lee. Handling Data Skew in Multiprocessor Database Com-
puters Using Partition Tuning. Proceedings of the 17th International Conference
on Very Large Data Bases, pages 525-535, September 1991.
[260] K. A. Hun, Y.-L. Lo, and H. C. Young. Including the Load Balancing Issue in the
Optimization of Multi-Way Join Queries for Shared-Nothing Database Comput-
ers. Proceedings of the 2nd Conference on Parallel and Distributed Information
Systems, pages 74-83, January 1993.
[261] G. David Huffman, Dennis A. Vital, and Royal G. Bivins, Jr. Generating Indices
with Lexical Association Methods: Term Uniqueness. Information Processing
and Management, 26(4):549-558, 1990.
BIBLIOGRAPHY 429
[262] Joseph Y. Hui. Resource Allocation for Broadband Networks. IEEE Journal on
Selected Areas in Communications, 6(9):1598-1608, December 1988.
[263] J. Hull. Options, Futures and Other Securities. Prentice-Hall, Englewood Cliffs,
New Jersey, 1990.
[264] R. Hull. A Survey of Theoretical Research on Typed Complex Database Objects,
J. Paredaens Editor. Databases. Academic Press, 1987.
[265] R. Hull and D. Jacobs. On the Semantics of rules in Database Programming
Languages, In Next Generation Information System Technology: volume 504. In
Proc. of the First International East/West Workshop, Kiev, USSR, pages 59-85.
Springer-Verlag LNCS, October 1990. ed. by J. Schmidt and A. Stogny.
[266] R. Hull and R. King. Semantic Database Modeling: Survey, Application, and
Research Issues. ACM Computing Surveys, 19(3):201-258, September 1987.
[267] Richard Hull and Dean Jacobs. Language Constructs for Programming Active
Databases. In Proceedings of the 17th International Conference on Very Large
Data Bases, Barcelona, pages 455-468, September 1991.
[268] S. Hummel, E. Schonberg, and L. Flynn. Factoring: A Method for Scheduling
Parallel Loops. Communications of the ACM, pages 90-101, August 1992.
[269] Steve Huseth, Jonathan Krueger, Aaron Larson, and J. M. Purtilo. The Common
Prototyping Language, A Module Interconnection Approach. Technical Report
UMIACS-TR-90-50, S-TR-2449, University of Maryland, Department of Com-
puter Science, University of Maryland, College Park, MD 20742, May 1990.
[270] T. Ibaraki and N. Katoh. Resource Allocation Problems: Algorithmic Approaches.
The MIT Press, Cambridge, Massachusetts, 1988.
[271] T. Imielinski. Abstraction in Query Processing. JACM, 38(3), 1991.
[272] T. Imielinsld. Incomplete Deductive Databases. Annals of Mathematics and Ar-
tificial Intelligence, was Available as an Unpublished Manuscript in 1988 Spring.,
3:259-294, 1991.
[273] T. Imielinsld, R. van der Meyden, and K. Vadaparty. Complexity Tailored Design
- A New Database Design Methodology. Technical Report LCSR 171, Rutgers
University, Department Of Computer Science, New Brunswick, NJ08903, De-
cember 1991.
[274] T. Imielinski, S. Naqvi, and K. Vadaparty. Incomplete Objects - A Data Model
for Design and Planning Applications. In Proceedings of the ACM SIGMOD
International Conference on Management of Data, Denver, Colorado, May 1991.
[275] T. Imielinski, S. Naqvi, and K. Vadaparty. Querying Design and Planning Data-
bases. Submitted to Second International Conference on Deductive and Object
Oriented Databases (DOOD), March 1991.
[276] T. Imielinsld and K. Vadaparty. Complexity of Querying Databases with OR-
Objects. In Proceedings of the Eighth A CM Symposium on Principles of Data-
bases Systems (PODS), 1989.
[277] T. Imielinski, K. Vadaparty, and R. van der Meyden. Complexity Tailored Design
- A New Database Design Methodology. Technical Report LCSR 171, Rutgers
University, Department Of Computer Science, New Brunswick, NJ08903, De-
cember 1991.
430 BIBLIOGRAPHY
[368] Thomas D. C. Little and Arif Ghafoor. Network Considerations for Distributed
Multimedia Object Composition and Communication. IEEE Network Magazine,
pages 32-49, November 1990.
[369] Thomas D. C. Little and Arif Ghafoor. Synchronization and Storage Models
for Multimedia Objects. IEEE Journal on Selected Areas in Communications,
8(3):413-427, April 1990.
[370] Thomas D. C. Little and Arif Ghafoor. Multimedia Synchronization Protocols
for Broadband Integrated Services. IEEE Journal on Selected Areas in Commu.
nication, 9(9):1368-1381, December 1991.
[371] Thomas D. C. Little, Arif Ghafoor, and C. Y. Roger Chen. Conceptual Data
Models for Time-Dependent Multimedia Data. In Proc. International Workshop
on Multimedia Information Systems (MMIS '92), pages 86-110, February 1992.
[372] W. Litwin. MALPHA: A Relational Multidatabase Manipulation Language. 1st
IEEE Conference on Data Engineering, 1984.
[373] W. Litwin et al. SIRIUS Systems for Distributed Data Management. pages
311-366. North-Holland Publishing, 1982.
[374] W. Litwin and H. Tirri. Flexible Concurrency Control Using Value Dates. Tech-
nical Report 845, INRIA, May 1988.
[375] Delcambre L.M.L and J.N. Etheredge. The Relational Production Language: A
Production Language for Relational Databases. In Second International Confer-
ence of Expert Database Systems, 1988.
[376] M.-L. Lo, M.-S. Chen, C. V. Ravishankar, and P. S. Yu. On Optimal Processor
Allocation to Support Pipelined Hash Joins. Proceedings of ACM SIGMOD, May
1993.
[377] G. M. Lohman et al. The POSTGRES Next Generation Database Management
System. Communications of ACM, 34(10):78-92, October 1991.
[378] G. M. Lohman, B. Lindsay, H. Pirahesh, and K. B. Schiefer. Extensions to
Starburst: Objects, Types, Functions, and Rules. Communications of ACM,
34(10):94-109, October 1991.
[379] Guy M. Lohman, Bruce Lindsay, Hamid Pirahesh, and K. Bernhard Schiefer.
Extensions to Starburst: Objects, Types, Functions, and Rules. Communicatons
of the ACM, 34(10), October 1991.
[380] T. Lovett and S.S. Thakkar. The Symmetry Multiprocessor System. Proc. of
International Conference on Parallel Processing, August 1988.
[381] H. Lu, M.-C. Shan, and K.-L. Tan. Optimization of Multi-Way Join Queries for
Parallel Execution. Proceedings of the 17th International Conference on Very
Large Data Bases, pages 549-560, September 1991.
[382] David C. Luckham and Friedrich W. yon Henke. An Overview of Anna, a Spec-
ification Language for Ada. IEEE Software, March 1985.
[383] L.F. Ludwig. Integration of CAD/CAE with Multimedia Teleconferencing and
Messaging via Broadband Networks and Shared Resource Servers. Proc. 1st Intl.
Conf. Systems Integration, pages 136-143, April 1990.
[384] Stonebraker M. and Rowe L.A. The Design of POSTGRES. In ACM-SIGMOD,
1986.
436 BIBLIOGRAPHY
[385] Yoelle S. Maarek, Daniel M. Berry, and GaLl E. Kaiser. An Information Retrieval
Approach for Automatically Constructing Software Libraries. IEEE Transactions
on Software Engineering, 17(8):800-813, August 1991.
[386] Wendy E. Mackay and Glorianna Davenport. Virtual Video Editing in Interactive
Multimedia Applications. Communications of ACM, 32(7):802-809, July 1989.
[387] S. Manivannan and C.D. Pegden. A Rule-Based Simulator for Modeling Just-in-
Time Manufacturing System (JITSAI). Simulation, 52(8):109-117, 1990.
[388] Frank A. Manola and Jack A. ~Ibwards a General Spatial Model for Object
Oriented DBMS. In Proceedings of the l$'th International Conference on Very
Large Data Bases, 1986.
[389] V.M. Markowitz. Representing Processes in the Extended Entity-Relationship
Model. In Proc. 6th IEEE Int'l Conf. on Data Engineering, pages 103-110, 1990.
[390] Y. Masunaga. Design Issues of OMEGA: An Object-Oriented Multimedia Da-
tabase Management System. Journal of Information Processing, 14(1):60-74,
1991.
[391] Yoshifumi Masunaga. Design Issues of OMEGA: An Object-Oriented Multimedia
Database Management System. Journal of Information Processing, 14(1):60-74,
1991.
[392] M. Maybee, L.J. Osterweil, and S.D. Sykes. Q: A Multi-linguai Interprocess
Communications System for Software Environment Implementation. Technical
Report CU-CS-476-90, University of Colorado, Department of Computer Sci-
ence, Campus Box 430, University of Colorado, Boulder, CO 80309-0430, 1990.
[393] Mark Maybee. Q: A Multi-lingual Interprocess Communications System. Refer-
ence Manual. Technicai report, University of Colorado, Department of Computer
Science, Campus Box 430, University of Colorado, Boulder, CO 80309-0430,
1990.
[394] James Mayfield and Charles Nicholas. SNITCH: Augmenting Hypertext Doc-
uments with a Semantic Net. In Proceedings of the ISMM First International
Conference on Information and Knowledge Management, pages 146-152, Bal-
timore, MD, U.S.A., November 1992. The International Society for Mini and
Microcomputers.
[395] D. R. McCarthy and U. Dayal. The Architecture of an Active Database Man-
agement System. Proc. ACM-SIGMOD 1989 Int'l Conf. Management of Data,
pages 215-224, May 1989.
[396] E. McKenzie and R. Snodgrass. An Evaluation of Relational Algebras Incor-
porating the Time Dimension in Databases. ACM Computing Surveys, 23(4),
December 1991.
[397] C. Meadows and C. Landwehr. Designing a Trusted Application in an Object-
Oriented Data Model. Research Directions in Database Security, Teresa F. Lunt,
ed., Springer-Verlag, Berlin, 1992.
[398] Arnold C. Meltzer and GerMd Kowalski. Text Searching Using an Inversion Da-
tabase Consisting of Trigrams. In IEEE Proceedings of the Second International
Conference on Computers and Applications, pages 65-69, 1987.
[399] R. Merton. Theory of Rational Option Pricing. The Bell J. of Econ. and Mgmt.
Sc, 4(1), 1973.
BIBLIOGRAPHY 437
[458] J.M. Purtilo and Joanne M. Atlee. Module Reuse by Interface Adaptation. Tech-
nical report, University of Maryland, Computer Science Department, University
of Maryland, College Park, Maryland 20742, August 1989.
[459] Y. Rabinovich, A. Sinclair, and A. Wigderson. Quadratic Dynamical Systems. In
Proceedings of the 33rd IEEE Symposium on Foundations of Computer Science,
pages 304-313, September 1992.
[460] F. Rabitti, E. Bertino , W. Kim, and D. Woelk. A Model of Authorization
for Next-Generation Database Systems. ACM Trans. on Database Systems,
16(1):88-131, March 1991.
[461] F. Rabitti and P. Savino. Automatic Image Indexation to Support Content-Based
Retrieval. Information Processing and Management, 28(5):547-565, 1992.
[462] E. Rahm. Use of Global Extended Memory for Distributed Transaction Process-
ing. Proceedings of ~th International Workshop on High Performance Transaction
Systems, September 1991.
[463] K. Ramamritham. Real-Time Databases. Journal of Distributed and Parallel
Database Systems, 1(1), 1992.
[464] P. Venkat Rangan, Harrick M. Vin, and Srinivas Ramanathan. Communica-
tion Architectures and Algorithms for Media Mixing in Multimedia Conferences.
IEEE/ACM Transactions on Networking, 1(1):20-30, February 1993.
[465] Erwin P. Rathgeb. Modeling and Performance Comparison of Pohcing Mecha-
nisms for ATM Networks. IEEE Journal on Selected Areas in Communications,
9(3):325-334, April 1991.
[466] O. Ratib and H.K. Huang. Low Cost Desktop Image Analysis Workstation with
Enhanced Interactive User Interface. Proc. SPIE Medical Imaging III: Image
Capture and Display, 1091:184-190, January 1989.
[467] Lee Ratzan. Building an Internet Browser. UNIX Review, 10(1):25-, January
1992.
[468] T. Reenskaug and E. Nordhagen. The Description of Complex Object-Oriented
Systems: Version 1. Senter for Industriforskning, Oslo, Norway, 1989.
[469] D. Reiner. The Kendall jSquaxe Query Decomposer. Proceedings of 2nd Intl.
Conf. on Parallel and Distributed Information Systems, pages 36-37, January
1993.
[470] T. Risch. Monitoring Database Objects. In Proceedings of the 15th International
Conference on Very Large Databases, pages 445-453, 1989.
[471] S. E. Robertson. The Methodology of Information Retrieval Experiment. In
K. Sparck Jones, editor, Information Retrieval Experiment, pages 9-31. Butter-
worths, 1981.
[472] B. Vincent Robinson. Interactive Machine Acquisition of a Fuzzy Spatial Rela-
tion. C~mputers and Geosciences, Vol 16, No 6 1990.
[473] G. C. Roman. Formal Specifications of Geographical Data Processing Require-
ments. In Proceedings of the Fifth IEEE International Conference on Data En-
gineering, 1986.
[474] N. Roussopoulos, C. Faloutsos, and T. Sellis. An Efficient Pictorial Database
System for PSQL. IEEE Transactions on Software Engineering., May 1988.
BIBLIOGRAPHY 441
[475] N. Roussopoulos and H. Kang. A Pipeline N-Way Join Algorithm Based on the 2-
Way Semijoin Program. IEEE Transactions on Knowledge and Data Engineering,
3(4):461-473, December 1991.
[476] N. Roussopoulos and D. Leifker. Direct Spatial Search on Pictorial Databases
Using Packet R-Trees. Proc. '85 SIGMOD, pages 17-31, May 1985.
[477] W.B. Rubenstein. A Database Design for Musical Information. Proc. ACM
SIGMOD Conf. on Management of Data, pages 479-490, May I987.
[478] Gerda Ruge. Experiments on Linguistically-Based Term Associations. Informa-
tion Processing and Management, 28(3):317-332, 1992.
[479] M. Rusinkiewicz, A. Sheth, and G. Karabatis. Specifying Interdatabase De-
pendencies in a Multidatabase Environment. IEEE Computer, 24(12):46-52,
December 1991.
[480] G. Salton and C. Buckley. Parallel Text Search Methods. Communications of
ACM, 31(2):202-215, February 1988.
[481] G. Salton and C. Bucldey. Term Weighting Approaches in Automatic Text Re-
trieval. Information Processing and Management, 24(3):513-524~ 1988.
[482] G. Salton and M. J. McGill. Introduction to Modern Information Retrieval.
McGraw Hill, 1983.
[483] H. Samet. The Qnadtree and Other Hierachical Data Structures. ACM Com-
puting surveys, 16:187-260, May 1984.
[484] H. Samet. The Quadtree and Related Data Structures. Computing Surveys,
16(2):187-260, June 1984.
[485] H. Samet. Applications of Spatial Data Structures. Addison Wesley Publications,
1989.
[486] H. Samet. The Design and Analyses of Spatial Data Structures. Addison Wesley
Publications., 1989.
[487] R.S. Sandhu, R. Thomas, and S. Jajodia. Supporting Timing Channel Free Com-
putations in MultiLevel Secure Object-Oriented Databases. Database Security
V: Status and Prospects, (C. E. Landwehr and S. Jajodia, eds.), North-Holland,
pages 297-314, 1992.
[488] N. Sarda. Extensions to SQL for Historical Databases. IEEE Tran. on Knowledge
and Data Engineering, 2(2):220-230, 1990.
[489] S. Satin, M. DeWitt, and R. Rosenburg. Overview of SHARD: A System for
Highly Available Replicated Data. Technical Report CCA-88-01, Computer Cor-
poration of America, May 1988.
[490] S. K. Satin. Robust Application Design in Highly Available Databases. In 5th
Symposium on Reliability in Distributed Systems, pages 87-94, 1986.
[491] S. K. Sarin and N. A. Lynch. Discarding Obsolete Information in a Replicated
Database System. IEEE Transactions on Software Engineering, SE-13(1):39-47,
Jan 1987.
[492] R.M. Sasnett. Reconfigurable Video. M.S. Thesis, MIT, 1986.
[493] H.-J. Schek, H.-B. Paul, and G. Weikum. The DASDBS Project: Objectives,
Experiences, and Future Prospects. In IEEE Transactions on Knowledge and
Data Engineering, volume 2, 1990.
442 BIBLIOGRAPHY
[494] H.-J. Schek and M.H. Scholl. The Relational Model with Relation-Valued At-
tributes. Information Systems, 11(2), 1986.
[495] Peter Scheuermann and Clement Yu. Report on the Workshop on Heterogeneous
Database Systems Held at Northwestern University, Evanston, Illinois, December
11-13, 1989. SIGMOD RECORD, 19(4), December 1990.
[496] A. Schilberschatz, M. Stonebraker, and J.D. Ullman. Database Systems:
Achievements and Opportunities. SIGMOD RECORD, 19(4), December 1990.
[497] D. Schneider. Complex Query Processing in Multiprocessor Database Machines.
Technical Report Tech. Rep. 965, Computer Science Department, University of
Wisconsin- Madison, September 1990.
[498] D. Schneider and D. J. DeWitt. Tradeoffs in Processing Complex Join Queries
via Hashing in Multiprocessor Database Machines. Proceedings of the 16th In-
ternational Conference on Very Large Data Bases, pages 469-480, August 1990.
[499] M. Scholl and A. Voisard. Thematic Map Modeling. Lecture Notes in Computer
Science, pages 167-190, 1989. Vol. 409.
[500] M.H. Sclioll, C. Laasch, and M. Tresh. Updatable Views in Object-Oriented
Databases. In 2nd International Conference on Deductive and Object-Oriented
Databases, December 1991.
[501] M.H. Scholl, H.-B. Paul, and H.-J. Schek. Supporting Flat Relations by Nested
Relational Kernel. In 13th International Conference on Very Large Data Bases,
September 1987.
[502] M.H. Scholl, H.-J. Schek, and M. Tresh. Object Algebra and Views for Multi-
Objectbases. In International Workshop on Distributed Object Management, An-
gust 1992.
[503] Michael F. Schwartz. The NeTworked Resource Discovery Project: Goals, De-
sign, and Research Efforts. Technical Report CU-CS-387-88, University of Col-
orado, Boulder, Colorado 80309, May 1988.
[504] Michael F. Schwartz. A Scalable, Non-Hierarchical Resource Discovery Mecha-
nism Based on Probabilistic Protocols. Technical Report CU-CS-474-90, Univer-
sity of Colorado, Boulder, Colorado 80309, June 1990.
[505] Michael F. Schwartz, Darren R. Hardy, William K. Heinzman, and Glenn C.
Hirschowitz. Supporting Resource Discovery Among Public Internet Archives
Using a Spectrum of Information QuMity. In 11th International Conference on
Distributed Computing Systems, May 1991.
[506] B. Seeger and H.P. Kriegel. The Buddy-Tree: An Efficient and Robust Access
Method for Spatial Data Base Systems. In Proceedings of the 16'th International
Conference on Very Large Data Bases, pages 590-601, 1986.
[507] A. Segev and H. Gunadhi. Event-Join Optimization in Temporal Relational
Databases. In Proceedings of the Int. Conf. on Very Large Databases, pages
205-215, August 1989.
[508] A Segev and A. Shosh~tni. Logical Modeling of Temporal Data. Proceedings of
the A CM-SIGMOD International Conference on Management of Data., 1987.
[509] A. Segev and A. Shoshani. The Representation of a Temporal Data Model in the
Relational Environment. In M. Rafanelli, J.C. Klensin, and P. Svensson, editors,
Lecture Notes in Computer Science No. 339, pages 39-61. Springer-Verlag, 1988.
BIBLIOGRAPHY 443
[510] A. Segev and J,L. Zhao. Data Management for Large Rule Systems. In Pro-
ceedings of the Int. Conf. on Very Large Databases, pages 297-307, September
1991.
[511] P. G. Selinger, M. M. Astrahan, D. D. Chamberlin, R. A. Lorie, and T. G. Price.
Access Path Selection in a Relational Database Management System. Proceedings
of ACM SIGMOD, pages 23-34, 1979.
[512] T. Sellis, N. Roussopoulos, and C. Faloutsos. The Buddy-Tree: An Efficient and
Robust Access Method for Spatial Data Base Systems. In Proceedings of the
13'th International Conference on Very Large Data Bases, pages 507-518, 1987.
[513] R. Sharma. A Generic Machine for Paralell Information Retrieval. Information
Processing and Management, 25(3):223-235, 1989.
[514] A. Sheth and G. Karabatis. Multidatabase tnterdependencies in Industry. ACM
SIGMOD, May 1993.
[515] A. Sheth and J. Larson. Federated Database Systems for Managing Distributed
Heterogeneous, and Autonomous Databases. A CM Computing Surveys, 22(3),
September 1990.
[516] A. Sheth, J. Larson, A. Cornelio, and S. Navathe. A Tool for Integrating Con-
ceptual Schemas and User Views. In gth IEEE.International Conference on Data
Engineering, February 1988.
[517] A. Sheth, Y. Leu, and A. Elmagarmid. Maintaining Consistency of Interde-
pendent Data in Multidatabase Systems. Technical Report CSD-TR-91-016,
Computer Sciences Department, Purdue University, March 1991.
[518] A. Sheth and M. Rusinldewicz. Management of Interdependent Data: Specifying
Dependency and Consistency Requirements. In Proceedings of the Workshop on
the Management of Replicated Data, Houston, TX, November 1990.
[519] A. Sheth, M. Rusinkiewicz, and G. Karabatis. Using Polytransactions to Manage
Interdependent Data. In A. Elmagarmid, editor, Database Transaction Models
for Advanced Applications, chapter 14. Morgan-Kaufmann, February 1992.
[520] D. Shmoys, J. Wein, and D. Williamson. Scheduling Parallel Machines On-Line.
In Proceedings of the 3~nd Annual Symposium on the Foundations of Computer
Science, pages 131-140, October 1991.
[521] B. Shneiderman. Direct Manipulation: A Step Beyond Programming Languages.
IEEE Computer, 16:57-69, 1983.
[522] Y.M. Shyy. The Design and Implementation of a Knowledge Base Programming
Language for Evolutionary Prototypin9 of Software Systems. PhD thesis, Uni-
versity of Florida, Computer and Information Science Department, 1992.
[523] Y.M. Shyy and S.Y.W. Su. K: a High-Level Knowledge Base Programming
Language for Advanced Database Applications. In ACM SIGMOD, pages 338-
347, Denver, Colorado, May 29-31 1991.
[524] A. Sflberschatz, M. Stonebraker, and J. Ullman. Database Systems: Achieve-
ments and Opportunities. CACM, 34(10):110-120, October 1991.
[525] E. Simon and P. Valduriez. Integrity Control in Distributed Database Systems.
In Proceedings of the 20th Hawaii International Conference on System Sciences,
1986.
444 BIBLIOGRAPHY
[526] D. Sleator. A 2.5 Times Optimal Algorithm for Packing in Two Dimensions.
Information Processing Letters, 10(1):37-40, February 1980.
[527] J. Smith and C Smith. Database Abstraction: Aggregation and Generalization.
A CM Transactions on Database Systems, 2(2), June 1976.
[528] R. Snodgrass. The Temporal Query Language TQuel. ACM Transactions on
Database Systems, 12(2):247-298, June 1987.
[529] R. Snodgrass. The Temporal Query Language TQuel. ACM Trans. on Database
Systems, 12(2):247-298, June 1987.
[530] R. Snodgrass and I. Ahn. A Taxonomy of Time in Databases. In Proceedings of
ACM-SIGMOD 1985 International Conference on Management of Data, pages
236-246, Austin, TX., May 1985.
[531] R. Snodgrass, S. Gomez, and L.E. Jr. McKenzie. Aggregates in the Temporal
Query Language TQUEL. Technical Report Technical Report TR89-26, Univer-
sity of Arizona, 1992.
[532] A. Snyder. An Abstract Model for Object-Oriented Systems. STL-90-22., Soft-
ware Technology Laboratory, HP Labs, Palo Alto, CA., 1990.
[533] W. Kirk Snyder. The SETL2 Programming Language. Courant Institute of
Mathematical Sciences, New York University, New York, NY 10012, September
9 1990.
[534] W. Kirk Snyder. The SETL2 Programming Language: Update On Current De-
velopments. Courant Institute of Mathematical Sciences, New York University,
New York, NY 10012, September 7 1990.
[535] Snodgrass Soo, M., C. R., Dyreson, C.S. Jensen, and N. Kline. Architectural
Extensions to Support Multiple Calendars. Technical Report TempIS Technical
Report 32, University of Arizona, 1992.
[536] S. Spaccapietra and C. Parent. Conflicts an Correspondence Assertions in Inter-
operable Databases. SIGMOD RECORD, 20(4), December 1991.
[537] S. Spaccapietra, C. Parent, and Y. Dupont. Model-Independent Assertions for
Integration of Heterogeneous Schemas. Very Large Data Base Jopurnal, 1(1),
July 1992.
[538] S. Spaccapietra, C. Parent, K. YtongNon, and M. S. Abaidi. Generalizations:
A Formal and Flexible Approach. In 1st Conference on Management of Data,
November 1989.
[539] D. L. Spooner. The Impact of Inheritance on Security in Object-Oriented Da-
tabase Systems. Database Security, I1: Status and Prospects, Carl E. Landwehr,
ed., North-Holland, Amsterdam, pages 141-160, 1989.
[540] J. Srinivasan, Y. Jiang, Y. Zhang, and B. Bhargava. Experiments on O-Raid
Distributed Object-Oriented Database System. In Proceedings of the First In-
ternational Conference on Information and Knowledge Management, November
1992.
[541] Jagannathan Srinivasan. Replication and Fragmentation of Composite Objects in
Distributed Database Systems. PhD thesis, Purdue University, Aug 1992.
[542] S. Sripada. A Uniform Model for Temporal Object-Oriented Databases. In
International Conference on Very Large Databases, 1988.
BIBLIOGRAPHY 445
[543] William Stallings, editor. Advances in ISDN and Broadband ISDN. IEEE Com-
puter Society Press, 1992.
[544] C. Stanfill. Partitioned Posting Files: A Paralell Inverted File Structure for
Information Retrieval. In Proceedings of the 1990 ACM SIGIR, pages 413-428,
September 1990.
[545] C. Stanfill and B. Kahle. Parallel Free-Text Search on the Connection Machine
System. Communications of ACM, 29(12):1229-1239, December 1986.
[546] C. Stanfil], R. Thau, and D. Waltz. A ParaleU Indexed Algorithm for Information
Retrieval. In Proceedings of the 1989 ACM SIGIR, pages 88-97, June 1989.
[547] Jr. Stanley M. Sutton. A P P L / A : A Prototype Language for Software-Process
Programming. PhD thesis, University of Colorado, August 1990.
[548] R. Steinmetz. Synchronization Properties in Multimedia Systems. IEEE Journal
on Selected Areas in Communications, 8(3):401-412, April 1990.
[549] H. Stone, J. L. Wolf, and J. Turek. Optimal Partitioning of Cache Memory.
IEEE Transactions on Computers, 41(9):1054-1068, 1992.
[550] H. S. Stone. Parallel Querying of Large Databases: A Case Study. IEEE Com-
puter, 20(10):11-21, October 1987.
[551] M. Stonebraker. The Case for Shared Nothing. IEEE Database Engineering,
9(1), 1986.
[552] M. Stonebraker. Inclusion of New Types in Relational Database Systems. In
M. Stonebraker, editor, Readings in Database Systems, pages 480-487. Morgan
Kaufman Publishers, Inc., 1990.
[553] M. Stonebraker, E. Hanson, and S. Potamianos. The POSTGRES Rule Manager.
[EEE Transactions on Software Engineering, 14(7):897-907, July 1988.
[554] M. Stonebraker, A. Jhingran, J. Goh, and S. Potamianos. On Rules, Procedures,
Caching and Views in Data Base Systems. In Proceedings of ACM SIGMOD
International Conference on the Management of Data, June 1990.
[555] M. Stonebraker, R. Katz, D. Patterson, and J. Ousterhout. The Design of XPRS.
Proceedings of the 14th International Conference on Very Large Data Bases,
pages 318-330, 1988.
[556] M. Stonebraker and G. Kemnitz. The POSTGRES Next-Generation Database
Management System. CACM, 34(10):78-93, October 1991.
[557] Michael Stonebraker and Greg Kemnitz. The POSTGRES Next-Generation Da-
tabase Management System. Communicatons of the ACM, 34(10), October 1991.
[558] P. D. Stotts and R. Furuta. Petri-Net-Based tIypertext : Document Structure
with Browsing Semantics. ACM Trans. on Office Automation Systems, 7(1):3-29,
January 1989.
[559] J.P. Strickland, P. P. Uhrowczik, and V. L. Watts. IMS/VS: An Evolving System.
IBM Systems Journal, V-21:490-510, 1982.
[560]~'B. Stroustrup. The C-k+ Programming Language. Addison-Wesley, Reading,
Mass, 1986.
[561] B. Stroustrup. The C-k4- Programming Language. Addison-Wesley, 1986.
[562] B. Stroustrup. The Design and Analysis of Spatial Data Structures. Addison-
Wesley, 1990.
446 BIBLIOGRAPHY
[596] P. Valduriez and G. Gardarin. Join and Semijoin Algorithms for a Multiproces-
sor Database Machine. A C M Transactions on Database Systems, 9(1):133-161,
March 1984.
[597] P. Van ttentenryck. Constraint Satisfaction in Logic Programming. Logic Pro-
gramming. MIT Press, 1989.
[598] M. Vardi. The Complexity of Relational Query Languages. In Proceedings of the
14th STOC, pages 137-146, 1982.
[599] Y. Vassiliou. Null Values in Database Management : A Denotational Semantics
Approach. In Proceedings of ACM SIGMOD International Conference on the
Management of Data, May 1979.
[600] J. Verso. Verso: A Database Machine Based on Non-INF Relations. Technical
Report 523, INRIA, 1986.
[601] Q. Wang and H. Cheng. A Heuristic of Scheduling Parallel Tasks and it Analysis.
S I A M Journal on Computing, 21(2):281-294, April 1992.
[602] Jon Ward. A Candidate HUMD ProtoTech Demonstration Vehicle: ProtoTech
Extensions to a Structured Design Methodology. Honeywell Technical Report
CS-t~92-015, Honeywell Systems and Research Center, July 7th 1992. DRAFT.
[603] Peter Wegner. Dimensions of Object-Oriented Modeling. IEEE Computer,
25(10):12-20, October 1992.
[604] W. Weihl. Commutativity-Based Concurrency Control for Abstract Data Types.
In 21st Hawaii International Conference on System Sciences, pages 205-214,
1988.
[605] K.H. Weiss. Formal Specification and Continuous Media. Proc. 1st Intl. Work-
shop on Network and Operating Support for Digital Audio and Video, November
1990.
[606] David L. Wells, Craig W. Thompson, and Jose A. Blakeley. DARPA Open
Object-Oriented Database System. Technical report, Texas Instrument Incorpo-
rated, P.O. Box 655474, MS 238, Dallas, Texas 75265, U.S.A., 1992.
[607] Marek Wernik, Osama Aboul-Magd, and Henry Gilbert. Traffic Management for
B-ISDN Services. IEEE Network, 6(5):10-19, September 1992.
[608] R.A. Whitehurst. Integrating Object-Oriented and Rule-Based Approaches with
the Simulation Environment. In 30th Annual Army Operations Research Society
Symposium, 1991.
[609] G. Wiederhold and X. Qian. Modeling Asynchrony in Distributed Databases. In
Intl. Conf. on Data Engineering, February 1987.
[610] Gio Wiederhold. Intelligent Integration of Diverse Information. In Proceedings of
the ISMM First International Conference on Information and Knowledge Man-
agement, pages 1-7, Baltimore, MD, U.S.A., November 1992. The International
Society for Mini and Microcomputers.
[611] Jack C. Wileden, Alexander L. Wolf, Charles D. Fisher, and Peri L. Tart.
PGRAPHITE: An experiment in persistent typed Object Management. In In
Proceedings of A CM SIGSOFT 88: Third Symposium on Software Development
Environments, Boston, pages 130-142, November 1988.
BIBLIOGRAPHY 449
[612] Jack C. Wileden, Alexander L. Wolf, William R. Rosenblatt, and Peri L. Tart.
Specification Level Interoperability. In In Proceedings of the Twelfth Interna-
tional Conference on Software Engineering, Nice, March 1990.
[613] P. Willett. Recent Trends in Hierarchic Document Clustering: A critical review.
Information Processing and Management, 24(5):577-597, 1984.
[614] A. Wilschut and P. Apers. Dataflow Query Execution in Parallel Main-Memory
Environment. Proceedings of the 1st Conference on Parallel and Distributed In-
formation Systems, pages 68-77, December 1991.
[615] R. Wirfs-Brock et al. Designing Object-Oriented Software. Prentice Hall., 1990.
[616] Rebecca Wirfs-Brock. Object Oriented Design: A Responsibility Driven Ap-
proach. OOPSLA '89 Proceedings, 1989.
[617] Rebecca Wirfs-Brock and Ralph E. Johnson. Surveying Current Research in
Object-Oriented Design. Communications of the ACM, September 1990.
[618] N. Wirth. Programs = Algorithms + Data Structures. Prentice Hall, 1976.
[619] D. Woelk, W. Luther, , and W. Kim. Multimedia Applications and Database
Requirements. IEEE Office Automation Symposium, pages 180-189, April 1987.
[620] Alexander L. Wolf. The AdaPIC Tool Set: Supporting Interface Control and
Analysis Throughout the Software Development Process. IEEE Transactions on
Software Engineering, 15(3), March 1989.
[621] Alexander L. Wolf and Alan Kaplan. PIC/ADA Language Reference Manual.
Software Development Laboratory, Computer and Information Science Depart-
ment, University of Massachusetts, Amherst, Massachusetts 01003, December
1991. Arcadia Design Document UM-91-10.
[622] J.L. Wolf, D. M. Dins, and P. S. Yu. An Effective Algorithm for Parallelizing Sort
Merge Joins in the Presence of Data Skew. Proceedings of the 2nd International
Symposium on Databases in Parallel and Distributed Systems, pages 103-115,
July 1990.
[623] J. L. Wolf, D. M. Dins, and P. S. Yu. A Parallel Sort Merge Join Algorithm for
Managing Data Skew. IEEE Transactions on Parallel and Distributed Systems,
pages 70-86, January 1993.
[624] J. L. Wolf, D. M. Dins, P. S. Yu, and J. Turek. An Effective Algorithm for
Parallelizing Hash Joins in the Presence of Data Skew. Proceedings o] the 7th
International Conference on Data Engineering, pages 200-209, April 1991.
[625] J. L. Wolf, D. M. Dins, P. S. Yu, and J. Turek. Comparative Performance of
Parallel Join Algorithms. Proceedings of the 1st International Conference on
Parallel and Distributed Information Systems, pages 78-88, December 1991.
[626] J. L. Wolf, B. Iyer K. Pattipati, and J. Turek. Optimal Buffer Partitioning for the
Nested Block Join Algorithm. Proceedings of the 7th International Conference
on Data Engineering, pages 510-519, April 1991.
[627] J. L. Wolf, J. Turek, and P. S. Yu. A Robust Method for Performing a Par-
allel Query in azL Environment with Partial Sharing. IBM Technical Disclosure
Bulletin, October 1992.
[628] J. L. Wolf, J. T. Turek, M.-S. Chen, and P. S. Yu. On the Optimal Scheduling of
Multiple Queries in a Parallel Processing Database Environment. IBM Research
Report, RC 18298, September 1992.
450 BIBLIOGRAPHY
[629] Wal Yee Peter Wong and Dik Lun Lee. Signature File Methods for Implementing
a Ranking Strategy. Information Processing and Management, 26(5):641-653,
1990.
[630] Gillian M. Woodruff and Rungroj Kositpalboon. Multimedia Traffic Management
Principles for Guaranteed ATM Network Performance. IEEE Journal on Selected
Areas in Communications, 8(3):437-446, April 1990.
[631] K. Wu, P. Yu, and C. Pu. Divergence Control for Epsilon Serializability. Proe.
of the 8th lnt'l Conference on Data Engineering, February 1992.
[632] G.T.J Wuu and U. Dayal. A Uniform Model for Temporal Object-Oriented
Databases. In 8th Int. Conf. on Data Engineering, pages 584-593, May 1979.
[633] N. Yankelovich, B.J. Harm, N.K. Meyrowitz, and S.M. Drucker. Intermedia: The
Concept and the Construction of a Seamless Information Environment. IEEE
Computer, 21(1):81-96, January 1988.
[634] R. Yassen, S.Y.W. Su, and H. Lam. An Extensible Kernel Object Management
System. ACM OOPSLA 1991 Conference, pages 247-263, 1986.
[635] Raj Yavatkar. MCP: A Protocol for Coordination and Temporal Synchronization
in Multi-media Collaborative Applications. In Proceedings of the 12th Interna-
tional Conference on Distributed Computing Systems, June 1992.
[636] Rajendra S. Yavatkar. Communication Support for Collaborative Multimedia
Applications. Technical Report 181-91, Department of Computer Science, Uni-
versity of Kentucky, January 1991.
[637] C. Yu et al. Efficient Placement of Audio Data on Optical Disks for Real-Time.
Applications. Communications of the ACM, 32(7):862-871, July 1989.
[638] P. S. Yu, M.-S. Chen, H. tteiss, and S. It. Lee. On Workload Characterization of
Relational Database Environments. IEEE Transactions on Software Engineering,
18(4):347-355, April 1992.
[639] P. S. Yu and A. Dan. Effect of System Dynamics on Coupling Architectures for
Transaction Processing. Proceedings of the 8th International Conference on Data
Engineering, pages 458-469, February 1992.
[640] P. S. Yu and A. Dan. Impact of Workload Partitionability on the Performance
of Coupling Architectures for Transaction Processing. Proceedings of 4th IEEE
Symposium on Parallel and Distributed Processing, December 1992.
[641] P. S. Yu, D. M. Dins, J. T. Robinson, B. R. Iyer, and D. W. Cornell. On Coupling
Multi-Systems Through Data Sharing. Proceedings of the IEEE, 75(5):573-587,
May 1987.
[642] S. Zdonik. Object-Oriented Type Evolution. Advances in Database Programming
Languages, F.Bancilhon, and P.Buneman, eds., Addison-Wesley, pages 277-288,
1990.
[643] S. B. Zdonik and P. Wegner. Language and Methodology for Object-Oriented
Database Environments. In Proc. 19th Annual Hawaii International Conference
on System Sciences, pages 378-387, 1986.
[644] K. Zhao. Panorama: Dynamic View Construction in Large Multidatabase Sys-
tems. PhD thesis, University of Colorado, Department of Computer Science,
University of Colorado, Boulder, CO 80309, 1992.
BIBLIOGRAPHY 451
Vol. 686: J. Mira, J. Cabestany, A. Prieto (Eds.), New Vol. 705: H. GriJnbacher, R. W. Hartenstein (Eds.), Field-
Trends in Neural Computation. Proceedings, 1993. XVII, Programmable Gate Arrays. Proceedings, 1992. VIII, 218
746 pages. 1993. pages. 1993.
Vol. 687: H. H. Barrett, A. F. Gmitro (Eds.), Information Vol. 706: H. D. Rombach, V. R. Basili, R. W. Selby (Eds.),
Processing in Medical Imaging. Proceedings, 1993. XVI, Experimental Software Engineering Issues. Proceedings,
567 pages. 1993. 1992. XVIII, 261 pages. 1993.
Vol. 688: M. Ganthier (Ed.), Ada-Europe '93. Proceedings, Vol. 707: O. M. Nierstrasz (Ed.), ECOOP '93 - Object-
1993. VIII, 353 pages. 1993. Oriented Programming. Proceedings, 1993. XI, 531 pages.
Vol. 689: J. Komorowski, Z. W, Ras (Eds.), Methodolo- 1993.
gies for Intelligent Systems. Proceedings, 1993. XI, 653 Vol. 708: C. Laugier (Ed,), Geometric Reasoning for Per-
pages. 1993. (Subseries LNAI). ception and Action. Proceedings, 1991. VIII, 281 pages.
Vol. 690: C. Kirchner (Ed.), Rewriting Techniques and 1993.
Applications. Proceedings, 1993. XI, 488 pages. 1993. Vol. 709: F. Dehne, J.-R. Sack, N. Santoro, S. Whitesides
Vol. 691: M. Ajmone Marsan (Ed.), Application and Theory (Eds.), Algorithms and Data Structures. Proceedings, 1993.
of Petri Nets 1993. Proceedings, 1993. IX, 591 pages. 1993. XII, 634 pages. 1993.
Vol. 692: D. Abel, B.C. Ooi (Eds.), Advances in Spatial Vol. 710: Z. l~sik (Ed.), Fundamentals of Computation
Databases. Proceedings, 1993. XIII, 529 pages. 1993. Theory. Proceedings, 1993. IX, 471 pages. 1993.
Vol. 693: P. E. Lauer (Ed,), Functional Programming, Vol. 711: A. M, Borzyszkowski, S. Sokotowski (Eds,),
ConcurrencY, Simulation and Automated Reasoning. Pro- Mathematical Foundations of Computer Science 1993. Pro-
ceedings, 1991/1992. XI, 398 pages. 1993. ceedings, 1993. XIII, 782 pages. 1993.
Vol. 694: A. Bode, M. Reeve, G. Wolf (Eds.), PARLE '93. Vol. 712: P. V. Rangan (Ed.), Network and Operating Sys-
Parallel Architectures and Languages Europe. Proceedings, tem Support for Digital Audio and Video. Proceedings,
1993. XVII, 770 pages. 1993. 1992. X, 416 pages. 1993.
Vol. 695: E. P. Klement, W. Slany (Eds.), Fuzzy Logic in Vol. 713: G. Gottlob, A. Leitsch, D. Mundici (Eds.), Com-
ArtificialIntelligence. Proceedings, 1993. VIII, 192 pages. putational Logic and Proof Theory. Proceedings, 1993. XI,
1993. (Subseries LNAI). 348 pages. 1993.
Vol. 696: M. Worboys, A. F. Grundy (Eds.), Advances in Vol. 714: M. Bruynooghe, J. Penjam (Eds.), Programming
Databases. Proceedings, 1993. X, 276 pages. 1993, Language Implementation and Logic Programming. Pro-
ceedings, 1993. XI, 421 pages. 1993.
Vol. 697: C. Courcoubetis (Ed.), Computer Aided Verifi-
cation. Proceedings, 1993. IX, 504 pages. 1993. Vol. 715: E. Best (Ed.), CONCUR'93. Proceedings, 1993.
IX, 541 pages. 1993.
Vol. 698: A. Voronkov (Ed.), Logic Programming and
Automated Reasoning. Proceedings, 1993. XIII, 386 pages. Vol. 716: A. U. Frank, I. Campari (Eds.), Spatial Informa-
1993. (Subseries LNAI). tion Theory. Proceedings, 1993. XI, 478 pages. 1993.
Vol. 699: G. W. Mineau, B. Moulin, J. F. Sowa (Eds.), Vol. 717: I. Sommerville, M. Paul (Eds.), Software Engi-
Conceptual Graphs for Knowledge Representation. Pro- neering - ESEC '93. Proceedings, 1993. XII, 516 pages.
ceedings, 1993. IX, 451 pages, 1993. (Subseries LNAI). 1993.
Vol. 700: A. Lingas, R. Karlsson, S. Carlsson (Eds.), Au- Vol. 718: J. Seberry, Y. Zheng (Eds.), Advances in
tomata, Languages and Programming. Proceedings, 1993. Cryptology - AUSCRYPT '92. Proceedings, 1992. XIII,
XII, 697 pages. 1993. 543 pages. 1993.
Vol. 701: P. Atzeni (Ed.), LOGIDATA+; Deductive Vol. 719: D. Chetverikov, W.G. Kropatsch (Eds.), Compu-
Databases with Complex Objects. VIII, 273 pages. 1993. ter Analysis of Images and Patterns. Proceedings, 1993.
XVI, 857 pages. 1993.
Vol. 702: E. Btirger, G. J~iger, H. Kleine Brining, S. Mar-
tini, M.M. Richter (Eds.), Computer Science Logic. Pro- Vol. 720: V.Mafik, J. Las R.R. Wagner (Eds.), Data-
ceedings, 1992. VIII, 439 pages. 1993. base and Expert Systems Applications. Proceedings, 1993.
XV, 768 pages. 1993.
Vol. 703: M. de Berg, Ray Shooting, Depth Orders and
Hidden Surface Removal. X, 201 pages. 1993. Vol. 721: J. Fitch (Ed.), Design and Implementation of
Symbolic Computation Systems. Proceedings, 1992. VIII,
Vol. 704: F. N. Paulisch, The Design of an Extendible 215 pages. 1993.
Graph Editor. XV, 184 pages. 1993.
Vol. 722: A. Miola (Ed.), Design and Implementation of Vol. 744: K. P. Jantke, T. Yokomori, S. Kobayashi, E.
Symbolic Computation Systems. Proceedings, 1993. XII, Torrdta (Eds.), Algorithmic Learning Theory. Proceedings,
384 pages. 1993. 1993. XI, 423 pages. 1993. (Subseries LNAI)
Vol. 723: N. Aussenac, G. Boy, B. Gaines, M. Linster, J.- Vol. 745: V. Roberto (Ed.), Intelligent Perceptual Systems.
G. Ganascia, Y. Kodratoff (Eds.), Knowledge Acquisition VIII, 378 pages. 1993. (Subseries LNAI)
for Knowledge-Based Systems. Proceedings, 1993. XIII, Vol. 746: A. S. Tanguiane, Artificial Perception and Mu-
446 pages. 1993. (Subseries LNAI). sic Recognition. XV, 210 pages. 1993. (Subseries LNAI).
Vol. 724: P. Cousot, M. Falaschi, G. Fil~, A. Rauzy (Eds.),
Static Analysis. Proceedings, 1993. IX, 283 pages. 1993. Vol. 747: M. Clarke, R. Kruse, S. Moral (Eds.), Symbolic
and Quantitative Approachesto Reasoningand Uncertainty.
Vol. 725: A. Schiper (Ed.), Distributed Algorithms. Pro- Proceedings, 1993. X, 390 pages. 1993.
ceedings, 1993. VIII, 325 pages. 1993.
Vol. 748: R. H. Halstead Jr., T. Ito (Eds.), Parallel Sym-
Vol. 726: T. Lengauer (Ed.), Algorithms - ESA '93. Pro- bolic Computing: Languages, Systems, and Applications.
ceedings, 1993. IX, 419 pages. 1993 Proceedings, 1992. X, 419 pages. 1993.
Vol. 727: M. Filgueiras, L. Damas (Eds.), Progress in Ar- Vol. 749: P. A. Fritzson (Ed.), Autonuated and Algorith-
tificial Intelligence. Proceedings, 1993. X, 362 pages. 1993. mic Debugging. Proceedings, 1993. VIII, 369 pages. 1993.
(Subseries LNAI).
Vol. 750: J. L. Diaz-Herrera (Ed.), Software Engineering
Vol. 728: P. Torasso (Ed.), Advances in Artificial Intelli- Education. Proceedings, 1994. XH, 601 pages. 1994.
gence. Proceedings, 1993. XI, 336 pages. 1993. (Subseries
LNAI). Vol. 751: B. J~hne, Spatio-Temporal Image Processing.
XII, 208 pages. 1993.
Vol. 729: L. Donatiello, R. Nelson (Eds.), Performance
Evaluation of Computer and CommunicationSystems. Pro- Vol. 752: T. W. Finin, C. K. Nicholas, Y. Yesha (Eds.),
ceedings, 1993. VIII, 675 pages. 1993. Information and Knowledge Management. Proceedings,
1992. VII, 142 pages. 1993.
Vol. 730: D. B. Lomet (Ed.), Foundations of Data Organi-
zation and Algorithms. Proceedings, 1993. XII, 412 pages. Vol. 753: L. J. Bass, J. Gornostaev, C. Unger (Eds.), Hu-
1993. man-Computer Interaction. Proceedings, 1993. X, 388
pages. 1993.
Vol. 731: A. Schill (Ed.), DCE - The OSF Distributed
Computing Environment. Proceedings, 1993. VIH, 285 Vol. 754: H. D. Pfeiffer, T. E. Nagle (Eds.), Conceptual
Structures: Theory and Implementation.Proceedings, 1992.
pages. 1993.
IX, 327 pages. 1993. (Subseries LNAI).
Vol. 732: A. Bode, M. Dal Cin (Eds.), Parallel Computer
Architectures. IX, 311 pages. 1993. Vol. 755: B. MOiler, H. Partsch, S. Schuman (Eds.), For-
mal Program Development. Proceedings. VII, 371 pages.
Vol. 733: Th. Grechenig, M. Tscheligi (Eds.), Human Com- 1993.
puter Interaction. Proceedings, 1993. XIV, 450 pages. 1993.
Vol. 756: J. Pieprzyk, B. Sadeghiyan, Design of Hashing
Vol. 734: J. Volkert (Ed.), Parallel Computation. Proceed- Algorithms. XV, 194 pages. 1993.
ings, 1993. VIII, 248 pages. 1993.
Vol. 757: U. Banerjee, D. Gelernter, A. Nicolan, D. Padua
Vol. 735: D. Bjorner, M. Broy, I. V. Pottosin (Eds.), For- (Eds.), Languages and Compilers for Parallel Computing.
mal Methods in Programming and Their Applications. Pro- Proceedings, 1992. X, 576 pages. 1993.
ceedings, 1993. IX, 434 pages. 1993,
Vol. 758: M. Teillaud, Towards Dynamic Randomized
Vol. 736: R. L. Grossman, A. Nerode, A. P. Ravn, H. Algorithms in Computational Geometry. IX, 157 pages.
Rischel (Eds.), Hybrid Systems. VIII, 474 pages. 1993. 1993.
Vol. 737: J. Calmet, J. A. Campbell (Eds.), Artificial Intel- Vol, 759: N. R. Adam, B. K. Bhargava (Eds.), Advanced
ligence and Symbolic Mathematical Computing. Proceed- Database Systems. XV, 451 pages. 1993.
ings, 1992. VIII, 305 pages. 1993.
Vol. 760: S. Ceri, K. Tanaka, S. Tsur (Eds.), Deductive
Vol. 738: M. Weber, M. Simons, Ch. Lafontaine, The Ge- and Object-Oriented Databases. Proceedings, 1993. XII,
neric Development Language Deva. XI, 246 pages. 1993. 488 pages. 1993.
Vol. 739: H. Imai, R. L. Rivest, T. Matsumoto (Eds.), Ad- Vol. 761: R. K. Shyamasundar (Ed.), Foundations of Soft-
vances in Cryptology- ASIACRYPT '91. X, 499 pages. ware Technology and Theoretical Computer Science. Pro-
1993. ceedings, 1993. XIV, 456 pages. 1993.
Vol. 740: E. F. Brickell (Ed.), Advances in Cryptology - Vol. 762: K. W. Ng, P. Raghavan, N. V. Balasubramanian,
CRYPTO '92. Proceedings, 1992. X, 593 pages. 1993. F. Y. L. Chin (Eds.), Algorithms and Computation. Pro-
Vol. 741: B. Preneel, R. Govaerts, J. Vandewalle (Eds.), ceedings, 1993. XIII, 542 pages. 1993.
Computer Security and Industrial Cryptography. Proceed- Vol. 765: T. Helleseth (Ed.), Advances in Cryptology -
ings, 1991. VIII, 275 pages. 1993. EUROCRYPT '93. Proceedings, 1993. X, 467 pages. 1994.
Vol. 742: S. Nishio, A. Yonezawa (Eds.), Object Tech-
nologies for Advanced Software. Proceedings, 1993. X, 543
pages. 1993.
Vol. 743: S. Doshita, K. Furukawa, K. P. Jantke, T. Nishida
(Eds.), Algorithmic Learning Theory. Proceedings, 1992.
X, 260 pages. 1993. (Subseries LNAI)