Time Issues in Active Database Systems

Size: px
Start display at page:

Download "Time Issues in Active Database Systems"

Transcription

1 accepted for Intl. Workshop on an Infrastructure for Temporal Databases, Arlington, Texas, June 93 Time Issues in Active Database Systems Klaus R. Dittrich, Stella Gatziu Institut für Informatik, Universität Zürich Winterthurerstrasse 190, CH-8057 Zürich, Switzerland {dittrich Abstract Active mechanisms based on event-condition-action rules will play an important role in next-generation database management systems. As an event, in its most general form, is essentially a point in time, it is obvious that an appropriate concept of time is needed for the specification of events. However, there are also other aspects related to time that need to be considered in active database systems, and which should tie in with the general concept of time in case the active database is also a temporal one. This position paper gives a brief account of where time issues arise in active database systems, and especially demonstrates various options for powerful event specification features. 1 Motivation and relationship to temporal databases Active mechanisms are generally considered to be one of the important features needed in next-generation database systems [Comm 90], and a lot of research is currently being conducted in this field [Chak 93]. While their origins date far back to simple trigger concepts as e.g. proposed during the development of System R [Eswa 76], they are recently treated with a much broader and more general scope which is mainly based on co-called event-conditionaction rules (ECA-rules; [Daya 88]). ECA-rules have the general form on if do <event> <condition> <action> and can be coarsely interpreted as when the specified <event> occurs and the <condition> holds, execute the <action>, where a <condition> is defined over the state of the database and its environment (e.g. the user running the transaction which causes the <event>), and an <action> may be an arbitrary program (which of course may also include database operations). A database system supporting ECA-rules is called an active database system (adbs), whatever other (e.g. object-oriented) features it may support, and thus whatever additional terminology may be used (e.g. active object-oriented or active relational DBS). Obviously, any more exact explanation of the ECA-rule semantics (which in view of a lack of standards may be different from system to system anyhow!) has to resort to time issues at some point (e.g. when is the condition checked once the event has occurred?). Most prominently, an event may be considered as just a point in time, but various (also elaborate) ways are needed to indicate which points in time are really of interest in the context of a set of ECA-rules. Given this scenario, we strongly suggest that an infrastructure for time in databases also comprises those elements that are needed in the context of active mechanisms. Obviously, to avoid a proliferation of individual concepts, time features for ECA-rules should be optimally integrated with those needed for temporal databases in general. To this end, we try to identify time issues found in adbs in chapter 2. In chapter 3, we deal in more detail with advanced event specification including explicit time definition. As this paper is mainly understood as a basis for discussion with the temporal database community, it is mostly restricted to the presentation of concepts; it purposely does not give much motivation for the introduction of individual features and also refrains from dwelling upon implementation issues. We also do not claim that any entirely new technical contribution is made; instead, previous findings of others and ourselves are put into context and are viewed from the perspective of working towards a 1

2 general infrastructure for time in databases. Most details are drawn from SAMOS, an active objectoriented DBMS currently researched and prototyped in our group ([GaDi 93]). However, though some of our means for event specification seem to be pretty novel, similar time requirements might be gained from other adbs (e.g. some of those represented in [Chak 93]) as well. 2 An overview of time issues in active database systems In the sequel, we present an enumeration and short discussion of issues where time is involved in adbs. While some of the aspects mentioned would be similar in other kinds of systems, most of them are specific for active mechanisms. (a) (b) (c) event specification An event is a point in time, and thus the specification of events will by necessity involve the (explicit or implicit) specification of time. As this may get rather elaborate in order to reach a high degree of functionality for an adbs, we will address event specification in more detail in chapter 3. condition specification The <condition> in an ECA-rule is a predicate that has to hold for the database; it may also refer to environment parameters like the user running the event-triggering transaction. For the sake of simplicity, we assume that system-owned specific database entities (relations, objects) exist which hold all current environment data and can be tested (i.e. queried) in the same way as all user-provided database entities. If a temporal database is used together with the active mechanisms, the <condition> can obviously also refer to time data. The concepts that apply in this respect are those of the underlying temporal data model. condition evaluation and action execution (d) Once the occurrence of an event has been detected, the associated <condition> needs to be checked. This can be done ([Ston 92]) immediately after the detection (i.e. before anything else is done on behalf of the event-triggering transaction), or later, e.g. at the end of the execution of the database operation that raised the command (in cases where such operations are used for event specifications; see chapter 3), at the end of the event-triggering transaction (i.e. right before commit processing), or after the end of this transaction. The latter case assumes that the condition evaluation takes place in a separate transaction, which is a general option that might also be desired for the other cases (in contrast to condition evaluation in the same transaction). With a separate transaction, it is obvious that the checking time determination has to be interpreted as at earliest when..., because the condition checking transaction will be independently scheduled by the transaction manager which may introduce delays (see also (e) below). Note that the time of the condition evaluation may have a considerable influence on its outcome as the database may have changed between the occurrence of the event and the (deferred) checking. Similar arguments apply for the <action> execution in case the <condition> holds; it may again take place immediately or deferred, within the same or in a separate transaction. rule activation and supervision An ECA-rule may be needed temporarily only. As it would be inconvenient to remove and later redefine such a rule, an adbs may provide operations for the activation and deactivation of rules. During the time interval where a rule is dormant (not activated), the occurrence of its event is not monitored and thus no reaction may happen. The activation interval is implicitly defined by the times the activate and deactivate operations have been recognized by the system. The definition of a new rule may either be regarded as implying an activate operation, or the newly defined rule may initially be dormant until explicit activation takes place. Obviously, the deletion of an existing rule will automatically terminate its activation, with immediate effect. Further, it may be desired that the activation/deactivation of a rule can be preplanned. In this case, it would again be inconvenient if the application or some administrator were required to explicitly issue appropriate activate/deactivate operations 2

3 (e) (f) when needed. Rather, the time intervals for activation can be explicitly specified beforehand (together with the rule definition itself or in a separate step; of course, the definition of this supervision time intervals should also be changeable). The ways for the explicit specification of supervision time intervals are those that also apply for other kinds of intervals and are detailed in chapter 3 below. rule system responsiveness An ECA-rule should be executed (i.e. its condition should be checked etc.) whenever the triggering event occurs (deferred condition checking as discussed above not withstanding). The question arises, however, when an event is really detected in the system. Due to the processing of other tasks, this may be noticeably after the (explicitly or implicitly) defined time for that event. Similar arguments hold for the definition, deletion, activation and deactivation of rules etc. which may be effective only noticeably after the time actually assumed. Thus the question of time granularity has to be dealt with (what is the smallest unit of time ECArules should use for specifying time seconds or better minutes?) which crosses the bridge to realtime databases ([Rama 93]) where, among others, the predictability of processing times and time delays is an important issue. CA-rules ECA-rules may also be specified with the omission of either the <event>- or the <condition>-part. While a missing <condition> is simply regarded as if it would always evaluate to true, an unspecified <event>-part needs more elaborate consideration. Intuitively, the action of a CA-rule has to be executed at the time (which can then be implicitly taken as the event missing to have a complete rule) when the <condition> becomes true. While this case will need additional (and rather complicated!) mechanisms for detection, it also allows for at least three different semantics which are explained by the following example. Assume the CA-rule on if e1.salary > do <action> has been defined. This might be interpreted as an <action>-execution being required (1) whenever the salary of object e1 is higher than , (2) when e1 s salary gets higher than for the first time, (3) always when e1 s salary increases from or below to above. While the first case is not very likely to make sense in an adbs 1 (it would obviously lead to a kind of thrashing situation when the salary is and remains indeed above the threshold the <action> would then have to be repeated all the time until the condition becomes false; the only meaningful use is thus where the <action> decreases the salary), both other cases do. If (2) applies, the <action> will definitely take place only once; if (3) applies, multiple executions may happen depending on the dynamic evolution of the database (e1 s salary in this case). At any rate, additional syntax (e.g. keywords like first and always after on) will be needed to tell the system which case is desired. In conclusion, various aspects of time are relevant for active databases. Most of them, like the granularity of time units, the specification of intervals and the determination of specific times (compare to concepts like valid time, transaction time or event time with a slightly different notion of event ; cf. e.g. [KiCh 92]) also apply to temporal databases and are thus candidates for consolidation into a common infrastructure. 3 Time concepts in event specifications As mentioned before, an event in adbs is essentially a point in time, where time is perceived as a discrete sequence of time points. We can therefore say that an event happens every unit of time, where a unit will be e.g. one minute; other quantums may be used as the unit as well, but would be probably too coarse for many applications (e.g. one hour ), too small to be appropriately handled by reasonable systems (e.g. one second ), or too unhandy for practical use (e.g. 70 seconds ). We will therefore as- 1. The real-time database community might think differently about this situation! 3

4 sume the use of minutes and appropriate customary larger units (like hours, days, weeks, months, years) in the sequel. Now obviously not every event as defined above is of interest for ECA-rules. The next question is therefore, how do we specify the events of interest for an ECA-rule, i.e. those which have to be indicated in the <event>-part of such a rule 2. Three general observations apply in this respect: (1) Such specifications may be explicit (i.e. by indicating a clock time) or implicit (by indicating something that will happen, with the assumption that the time of this occurrence is the one we are interested in). (2) Such specifications can be made directly (the event of interest is immediately the one specified; we will talk about primitive events in this case) or indirectly (the event of interest results from a combination of other events; we will talk about composite events then, giving rise to an event algebra). (3) As will be seen, most event specifications will actually refer to not just one point in time, but will describe multiple events (i.e. various points in time will fulfill a specification). That means that we will principally specify event classes which may include one or more (or in some cases even 0) individual events. As confusion should not arise, we will nevertheless continue to simply speak about events. For further simplification, when we talk about an event in the sequel, we always mean an event of interest (which may still refer to the fact that it is of interest as such, or in contributing to the specification of other events). Let us now briefly explain a variety of ways to specify events in an adbs, where we purposely want to show how broad the spectrum is if we want to support also sophisticated applications from various areas. 2. We do not address the question here whether these events really need to be specified directly in an ECA-rule, or whether syntax permits to also specify them independently, assign a name to them and just indicate this name in the <event>-clause of rules. Probably the latter will be the favorite solution, but this is obviously syntactical sugar. We assume that the syntax we use for examples will be intuitive for the reader. Let us start with primitive events. What immediately comes to mind is an absolute time specification, for example , 16:15 which specifies a certain time at a given date. Exactly one such event exists. Obviously, various parts of a specification like this might be left out and replaced by defaults (e.g. we take 00 for the minutes if only hours are given, or we insert the date of the day when the specification is recorded if only hours and minutes are given). Absolute time specifications may also be made for multiple events by means of repeated absolute time specification. In this case, a repeating factor like 1, 2, 3,... and a repeating unit like years, months, weeks, days, hours, minutes has to be indicated, like in every 15 minutes every 2 days, 16:15 every month, 01, 08:00 every week, monday, 08:00 Obviously, some consistency rules between the time indication itself and the repetition information apply (the time has to make sense relative to the repeating unit). Moreover, such a repeated absolute time specification may include time intervals during which we are interested in events. The following example shows the two cases that apply here: every week [monday friday], 16:30 [ ] While the first interval indicates 5 individual events per week, the second one states that we are interested in these events during summertime (april through september) only, but not for the rest of the year. Intervals are regarded as being closed, and of course again certain consistency rules apply for such specifications to make sense. Next, let us look at some implicitly specified primitive events. Most popular, even in active mechanisms that are already marketed today, are so-called 4

5 DBMS-events. A DBMS-event (or database event) is the occurrence of a DBMS-operation like an insert-, update or select-operation in a relational system, or the execution of an object method in an object-oriented system, or the execution of a transaction. More precisely, as an event is a point in time and all such operations will last for a period of time, we have to indicate whether the event is the point in time immediately before the operation is executed (specified as before), or the point in time immediately after the completion of it (specified as after). Furthermore, we will also want to differentiate (by adding appropriate parameters in the specification) that we are e.g. interested in insert-operations affecting the employee-relation, but not in others. Obviously, the exact set of DBMS-events depends on the DBMS used and on its data model; in the case of objectoriented data models, it also depends on the classes (and their methods) that are currently defined. A final kind of primitive events are abstract events. From the point of view of the adbs, those are placeholders only where the system knows nothing else than their name (which has to be declared beforehand). Abstract events are useful to indicate events taking place in applications, but for which it still makes sense that the adbs can use them in ECA-rules. Their occurrence needs to be explicitly signalled from the application by means of a special operation like raise <event_name>. DBMS-events as well as abstract events (and most of the events described below) may also be specified with a time interval to restrict their applicability. Let us now turn to composite events. They are used to specify points in time that are defined on the basis of other points in time. We will thus end up with an event algebra where the appropriate operators may be applied to primitive events and other composite events. The simplest case here is relative time specification where the event is defined in the form <event> + <time unit> or <event> - <time unit>, for example raise E5 + 1 hour. For a subtraction to make sense, we obviously need an explicitly specified <event> as otherwise we would not know ahead the first operand and thus could not calculate the resulting event until after it has already passed. Next, we have event disjunction, conjunction and sequence. The event disjunction <event1> <event2> defines the event that occurs whenever either <event1> or <event2> takes place. Accordingly, the conjunction <event1>, <event2> occurs when both participating events have happened, in whatever sequence (i.e. the composite event is the same point in time as the one that happens second). In contrast, the sequence <event1> ; <event2> of two events requires that the participating events occur in that sequence. As a consequence, <event1>, <event2> = (<event1> ; <event2>) (<event2> ; <event1>) holds. Furthermore, one may also be interested in the fact that some event has not happened, which however (as once more we have to recall that any event is a point in time) makes only sense if the non-occurrence is specified relative to a time interval. We call this specified as negative events, not <event> [<time interval>]; the negative event is the end point of the indicated time interval if the <event> has not happened during the interval. Finally, there are also two more complex composite events that have proven useful. They both refer to specific 5

6 treatments of singular events based on repeated events. The *-operator, specified as * <event> [<time interval>], produces the point in time where <event> occurs for the first time within the given interval, with the additional property that further occurrences of <event> within that interval are not considered any more. If no interval is given at all, <event> is signalled at most once during the lifetime of the respective ECA-rule. The times-operator, which is specified as times (n, <event>) [<time interval>] or, as a second case, as times (n1, n2, <event>) [<time interval>] is the point in time where <event> has occurred exactly n times during the given interval, or the end point of the interval when <event> has occurred between n1 and n2 times during the interval. In this chapter, we have sketched a variety of ways to specify events in ECA-rules. We do not claim that this is a complete set, and we have not covered all details. For example, we did not elaborate that of course time intervals as needed for several operators may also be subject to specific composition operators like intersection, union, and the like. Finally, we would like to mention that in case the underlying data model is a temporal one, there is once again an interesting combination effect as times or time intervals as needed for the specification of events may be drawn out of the database. As an intuitive example, take the event (select start_date from vacation_plan where emp = Smith ) - 2 days which happens two days before the vacation of a given employee starts (probably at 00:00 hours on that day, depending on default rules). Obviously, one would expect that changes of the temporal data in the database would automatically trigger changes for the affected events 3. 4 Conclusions In this position paper, we have tried to make the point that mechanisms in active database systems entail a number of time issues, some of which are similar to those discussed for temporal databases in general. We therefore strongly suggest that time needs in adbs are considered in a general infrastructure for temporal databases right from the beginning. We feel that a lot of interesting commonalities in both areas could be exploited and lead to considerable cross-fertilization in that events can be recorded in the database proper, and on the other hand temporal database data may contribute to event specifications. References [Chak 93] [Comm 90] [Daya 88] [Eswa 76] [GaDi 93] [KiCh 92] [Rama 93] [Ston 92] Chakravarthy, S. (ed.): IEEE Quarterly Bulletin on Data Engineering, Special Issue on Active Database Research, January 1993 The Committee for Advanced DBMS Functionality: Third-generation database system manifesto. ACM SIGMOD Record 19(1990)3 Dayal, U. et al.: The HiPAC project: combining active databases and timing constraints. ACM SIGMOD Record 17(1988)1 Eswaran, K.P.: Specifications, implementations, and interactions of a trigger subsystem in an integrated data base system. IBM Research Report RJ1820 (August 1976) Gatziu, S; Dittrich, K.R.: SAMOS an active object-oriented database system. In: [Chak 93] Kim, S.-K.; Chakravarthy, S.: A retrospective analysis of time concepts in temporal databases. Technical Report, University of Florida, UF-CIS-TR , 1992 Ramamritham, K.: Real-time databases. Int. Journal of Distributed and Parallel Databases, 1(1993)2 Stonebraker, M: The integration of rule systems and database systems. IEEE Transactions on Knowledge and Data Engineering 4(1992)5 3. Obviously, here and in similar cases we mentioned before, the basic concepts of active mechanisms could themselves be used internally to effect these triggered changes. 6

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

5 Conclusions. References

5 Conclusions. References contain a token in the list_of_tokens. Each time a new marking is reached, the list_of_tokens of the appropriate objects are readjusted according to the removed or to the added tokens. In the actual version

More information

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 13 Constraints & Triggers Hello and welcome to another session

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols The International Arab Journal of Information Technology, Vol. 5, No. 4, October 2008 381 Incompatibility Dimensions and Integration of Atomic Commit Protocols Yousef Al-Houmaily Department of Computer

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

RSL Reference Manual

RSL Reference Manual RSL Reference Manual Part No.: Date: April 6, 1990 Original Authors: Klaus Havelund, Anne Haxthausen Copyright c 1990 Computer Resources International A/S This document is issued on a restricted basis

More information

6.001 Notes: Section 17.5

6.001 Notes: Section 17.5 6.001 Notes: Section 17.5 Slide 17.5.1 Now, let's look at one example in which changing the evaluation model allows us to explore a very different kind of computational problem. Our goal is to show how

More information

The Object Model Overview. Contents. Section Title

The Object Model Overview. Contents. Section Title The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group

More information

IBM Research - Zurich GmbH. Saeumerstrasse Rueschlikon Switzerland

IBM Research - Zurich GmbH. Saeumerstrasse Rueschlikon Switzerland IBM Research - Zurich GmbH Saeumerstrasse 4 8803 Rueschlikon Switzerland Author: Florian Schmidt, Olle Sundström Email: ori@zurich.ibm.com, osu@zurich.ibm.com Date: 13.06.2013 Version: Version 1.1 Subject:

More information

(Refer Slide Time: 4:00)

(Refer Slide Time: 4:00) Principles of Programming Languages Dr. S. Arun Kumar Department of Computer Science & Engineering Indian Institute of Technology, Delhi Lecture - 38 Meanings Let us look at abstracts namely functional

More information

Transactions on Information and Communications Technologies vol WIT Press, ISSN

Transactions on Information and Communications Technologies vol WIT Press,   ISSN Events Specification in Active Database Management System Carlos Andre Reis Pinheiro P6s-Graduacao em Ciencia da Computacao Departamento de Ciencia da Computacao Institute de Matemdtica Vniversidade Federal

More information

4.2 Variations on a Scheme -- Lazy Evaluation

4.2 Variations on a Scheme -- Lazy Evaluation [Go to first, previous, next page; contents; index] 4.2 Variations on a Scheme -- Lazy Evaluation Now that we have an evaluator expressed as a Lisp program, we can experiment with alternative choices in

More information

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach Category Theory in Ontology Research: Concrete Gain from an Abstract Approach Markus Krötzsch Pascal Hitzler Marc Ehrig York Sure Institute AIFB, University of Karlsruhe, Germany; {mak,hitzler,ehrig,sure}@aifb.uni-karlsruhe.de

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

Lecture 3: Recursion; Structural Induction

Lecture 3: Recursion; Structural Induction 15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion

More information

6.001 Notes: Section 4.1

6.001 Notes: Section 4.1 6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,

More information

SOME TYPES AND USES OF DATA MODELS

SOME TYPES AND USES OF DATA MODELS 3 SOME TYPES AND USES OF DATA MODELS CHAPTER OUTLINE 3.1 Different Types of Data Models 23 3.1.1 Physical Data Model 24 3.1.2 Logical Data Model 24 3.1.3 Conceptual Data Model 25 3.1.4 Canonical Data Model

More information

Lecture 3: Linear Classification

Lecture 3: Linear Classification Lecture 3: Linear Classification Roger Grosse 1 Introduction Last week, we saw an example of a learning task called regression. There, the goal was to predict a scalar-valued target from a set of features.

More information

6. Relational Algebra (Part II)

6. Relational Algebra (Part II) 6. Relational Algebra (Part II) 6.1. Introduction In the previous chapter, we introduced relational algebra as a fundamental model of relational database manipulation. In particular, we defined and discussed

More information

SQL: A COMMERCIAL DATABASE LANGUAGE. Complex Constraints

SQL: A COMMERCIAL DATABASE LANGUAGE. Complex Constraints SQL: A COMMERCIAL DATABASE LANGUAGE Complex Constraints Outline 1. Introduction 2. Data Definition, Basic Constraints, and Schema Changes 3. Basic Queries 4. More complex Queries 5. Aggregate Functions

More information

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture 15 Branching : IF ELSE Statement We are looking

More information

Derived Types and Subschemas: Towards Better Support for Logical Data Independence in Object-Oriented Data Models

Derived Types and Subschemas: Towards Better Support for Logical Data Independence in Object-Oriented Data Models Derived Types and Subschemas: Towards Better Support for Logical Data Independence in Object-Oriented Data Models Andreas Geppert Stefan Scherrer Klaus R. Dittrich Technical Report 93.27 Institut für Informatik,

More information

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No # 09 Lecture No # 40 This is lecture forty of the course on

More information

Chamberlin and Boyce - SEQUEL: A Structured English Query Language

Chamberlin and Boyce - SEQUEL: A Structured English Query Language Programming Languages (CS302 2007S) Chamberlin and Boyce - SEQUEL: A Structured English Query Language Comments on: Chamberlin, D. D. and Boyce, R. F. (1974). SEQUEL: A Structured English Query Language.

More information

Lecture 5: The Halting Problem. Michael Beeson

Lecture 5: The Halting Problem. Michael Beeson Lecture 5: The Halting Problem Michael Beeson Historical situation in 1930 The diagonal method appears to offer a way to extend just about any definition of computable. It appeared in the 1920s that it

More information

6.001 Notes: Section 6.1

6.001 Notes: Section 6.1 6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of

More information

Relational Data Model

Relational Data Model Relational Data Model 1. Relational data model Information models try to put the real-world information complexity in a framework that can be easily understood. Data models must capture data structure

More information

1 Introduction CHAPTER ONE: SETS

1 Introduction CHAPTER ONE: SETS 1 Introduction CHAPTER ONE: SETS Scientific theories usually do not directly describe the natural phenomena under investigation, but rather a mathematical idealization of them that abstracts away from

More information

CSE 341: Programming Languages

CSE 341: Programming Languages CSE 341: Programming Languages Winter 2005 Lecture 17 varargs and apply, implementing higher-order functions CSE341 Winter 2005, Lecture 17 1 Today: Some easy Scheme odds and ends Implementing higher-order

More information

CS 6110 S14 Lecture 1 Introduction 24 January 2014

CS 6110 S14 Lecture 1 Introduction 24 January 2014 CS 6110 S14 Lecture 1 Introduction 24 January 2014 1 Introduction What is a program? Is it just something that tells the computer what to do? Yes, but there is much more to it than that. The basic expressions

More information

Monitoring the Behaviour of Distributed Systems

Monitoring the Behaviour of Distributed Systems Monitoring the Behaviour of Distributed Systems Scarlet Schwiderski Selwyn College University of Cambridge Adissertationsubmittedforthedegreeof Doctor of Philosophy April 1996 Abstract Monitoring the

More information

FROM A RELATIONAL TO A MULTI-DIMENSIONAL DATA BASE

FROM A RELATIONAL TO A MULTI-DIMENSIONAL DATA BASE FROM A RELATIONAL TO A MULTI-DIMENSIONAL DATA BASE David C. Hay Essential Strategies, Inc In the buzzword sweepstakes of 1997, the clear winner has to be Data Warehouse. A host of technologies and techniques

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

RTC: Language Support for Real-Time Concurrency

RTC: Language Support for Real-Time Concurrency RTC: Language Support for Real-Time Concurrency Insup Lee, Susan Davidson, and Victor Wolfe 1 Introduction The RTC (Real-Time Concurrency) programming concepts and language constructs for expressing timing

More information

Proofwriting Checklist

Proofwriting Checklist CS103 Winter 2019 Proofwriting Checklist Cynthia Lee Keith Schwarz Over the years, we ve found many common proofwriting errors that can easily be spotted once you know how to look for them. In this handout,

More information

Semantic Event Model and Its Implication on Situation Detection

Semantic Event Model and Its Implication on Situation Detection Association for Information Systems AIS Electronic Library (AISeL) ECIS 2000 Proceedings European Conference on Information Systems (ECIS) 2000 Semantic Event Model and Its Implication on Situation Detection

More information

Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1

Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal

More information

CS211 Lecture: Database Design

CS211 Lecture: Database Design CS211 Lecture: Database Design Objectives: last revised November 21, 2006 1. To introduce the anomalies that result from redundant storage of data 2. To introduce the notion of functional dependencies

More information

The Java Type System (continued)

The Java Type System (continued) Object-Oriented Design Lecture 5 CSU 370 Fall 2007 (Pucella) Friday, Sep 21, 2007 The Java Type System (continued) The Object Class All classes subclass the Object class. (By default, this is the superclass

More information

CPS122 Lecture: From Python to Java last revised January 4, Objectives:

CPS122 Lecture: From Python to Java last revised January 4, Objectives: Objectives: CPS122 Lecture: From Python to Java last revised January 4, 2017 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.

More information

CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011

CS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011 CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e

More information

Difference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn

Difference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn Difference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn Problem Write and test a Scheme program to compute how many days are spanned by two given days. The program will include a procedure

More information

Disjunctive and Conjunctive Normal Forms in Fuzzy Logic

Disjunctive and Conjunctive Normal Forms in Fuzzy Logic Disjunctive and Conjunctive Normal Forms in Fuzzy Logic K. Maes, B. De Baets and J. Fodor 2 Department of Applied Mathematics, Biometrics and Process Control Ghent University, Coupure links 653, B-9 Gent,

More information

The Logical Design of the Tokeniser

The Logical Design of the Tokeniser Page 1 of 21 The Logical Design of the Tokeniser Purpose 1. To split up a character string holding a RAQUEL statement expressed in linear text, into a sequence of character strings (called word tokens),

More information

A Small Interpreted Language

A Small Interpreted Language A Small Interpreted Language What would you need to build a small computing language based on mathematical principles? The language should be simple, Turing equivalent (i.e.: it can compute anything that

More information

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 18 Thursday, April 3, 2014 1 Error-propagating semantics For the last few weeks, we have been studying type systems.

More information

Lecture 3 Notes Arrays

Lecture 3 Notes Arrays Lecture 3 Notes Arrays 15-122: Principles of Imperative Computation (Summer 1 2015) Frank Pfenning, André Platzer 1 Introduction So far we have seen how to process primitive data like integers in imperative

More information

CS61A Notes Week 1A: Basics, order of evaluation, special forms, recursion

CS61A Notes Week 1A: Basics, order of evaluation, special forms, recursion CS61A Notes Week 1A: Basics, order of evaluation, special forms, recursion Assorted Scheme Basics 1. The ( is the most important character in Scheme. If you have coded in other languages such as C or Java,

More information

3.7 Denotational Semantics

3.7 Denotational Semantics 3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These

More information

To prove something about all Boolean expressions, we will need the following induction principle: Axiom 7.1 (Induction over Boolean expressions):

To prove something about all Boolean expressions, we will need the following induction principle: Axiom 7.1 (Induction over Boolean expressions): CS 70 Discrete Mathematics for CS Fall 2003 Wagner Lecture 7 This lecture returns to the topic of propositional logic. Whereas in Lecture 1 we studied this topic as a way of understanding proper reasoning

More information

6.001 Notes: Section 1.1

6.001 Notes: Section 1.1 6.001 Notes: Section 1.1 Slide 1.1.1 This first thing we need to do is discuss the focus of 6.001. What is this course all about? This seems quite obvious -- this is a course about computer science. But

More information

A macro- generator for ALGOL

A macro- generator for ALGOL A macro- generator for ALGOL byh.leroy Compagnie Bull-General Electric Paris, France INTRODUCfION The concept of macro-facility is ambiguous, when applied to higher level languages. For some authorsl,2,

More information

Examples of Relational Value Assignments

Examples of Relational Value Assignments Examples of Relational Value Assignments Example Relvars - First Set Let relvar EMP contain sample data of the ID number and name of employees, displayed in tabular format as :- No Name 1 Jack 2 Jill Example

More information

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER The Bizarre Truth! Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER By Kimmo Nupponen 1 TABLE OF CONTENTS 1. The context Introduction 2. The approach Know the difference

More information

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 3 Relational Model Hello everyone, we have been looking into

More information

SAP. Modeling Guide for PPF

SAP. Modeling Guide for PPF Modeling Guide for PPF Contents 1 Document Organization... 3 1.1 Authors... 3 1.2 Intended Group of Readers... 3 1.3 References... 3 1.4 Glossary... 4 2 Modeling Guidelines - Application Analysis... 6

More information

14.1 Encoding for different models of computation

14.1 Encoding for different models of computation Lecture 14 Decidable languages In the previous lecture we discussed some examples of encoding schemes, through which various objects can be represented by strings over a given alphabet. We will begin this

More information

Petri-net-based Workflow Management Software

Petri-net-based Workflow Management Software Petri-net-based Workflow Management Software W.M.P. van der Aalst Department of Mathematics and Computing Science, Eindhoven University of Technology, P.O. Box 513, NL-5600 MB, Eindhoven, The Netherlands,

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe CHAPTER 6 Basic SQL Slide 6-2 Chapter 6 Outline SQL Data Definition and Data Types Specifying Constraints in SQL Basic Retrieval Queries in SQL INSERT, DELETE, and UPDATE Statements in SQL Additional Features

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

CS352 Lecture - Introduction to SQL

CS352 Lecture - Introduction to SQL CS352 Lecture - Introduction to SQL Objectives: last revised September 12, 2002 1. To introduce the SQL language 2. To introduce basic SQL DML operations (select, insert, update, delete, commit, rollback)

More information

Denotational semantics

Denotational semantics 1 Denotational semantics 2 What we're doing today We're looking at how to reason about the effect of a program by mapping it into mathematical objects Specifically, answering the question which function

More information

CSE Theory of Computing Fall 2017 Project 4-Combinator Project

CSE Theory of Computing Fall 2017 Project 4-Combinator Project CSE 30151 Theory of Computing Fall 2017 Project 4-Combinator Project Version 1: Nov. 20, 2017 1 Overview At this point you understand computations that happen as planned series of individual steps where

More information

printf( Please enter another number: ); scanf( %d, &num2);

printf( Please enter another number: ); scanf( %d, &num2); CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful

More information

Discrete Optimization. Lecture Notes 2

Discrete Optimization. Lecture Notes 2 Discrete Optimization. Lecture Notes 2 Disjunctive Constraints Defining variables and formulating linear constraints can be straightforward or more sophisticated, depending on the problem structure. The

More information

Lambda Correctness and Usability Issues

Lambda Correctness and Usability Issues Doc No: WG21 N3424 =.16 12-0114 Date: 2012-09-23 Reply to: Herb Sutter (hsutter@microsoft.com) Subgroup: EWG Evolution Lambda Correctness and Usability Issues Herb Sutter Lambda functions are a hit they

More information

Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming

Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming Raphael Arias Technische Universität München 19.1.2015 Abstract

More information

CPS122 Lecture: From Python to Java

CPS122 Lecture: From Python to Java Objectives: CPS122 Lecture: From Python to Java last revised January 7, 2013 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.

More information

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic 3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax

More information

Joint Entity Resolution

Joint Entity Resolution Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2015/2016 Eddy Groen Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

Class Types in Non-Type Template Parameters

Class Types in Non-Type Template Parameters Class Types in Non-Type Template Parameters Document #: D0732R0 Date: 2017-11-11 Project: Programming Language C++ Audience: Evolution Reply-to: Jeff Snyder 1 TL;DR We should

More information

Chapter S:II. II. Search Space Representation

Chapter S:II. II. Search Space Representation Chapter S:II II. Search Space Representation Systematic Search Encoding of Problems State-Space Representation Problem-Reduction Representation Choosing a Representation S:II-1 Search Space Representation

More information

Handout 10: Imperative programs and the Lambda Calculus

Handout 10: Imperative programs and the Lambda Calculus 06-02552 Princ of Progr Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 10: Imperative programs and the Lambda Calculus

More information

Core Membership Computation for Succinct Representations of Coalitional Games

Core Membership Computation for Succinct Representations of Coalitional Games Core Membership Computation for Succinct Representations of Coalitional Games Xi Alice Gao May 11, 2009 Abstract In this paper, I compare and contrast two formal results on the computational complexity

More information

How useful is the UML profile SPT without Semantics? 1

How useful is the UML profile SPT without Semantics? 1 How useful is the UML profile SPT without Semantics? 1 Susanne Graf, Ileana Ober VERIMAG 2, avenue de Vignate - F-38610 Gières - France e-mail:{susanne.graf, Ileana.Ober}@imag.fr http://www-verimag.imag.fr/~{graf,iober}

More information

SOFTWARE ENGINEERING DESIGN I

SOFTWARE ENGINEERING DESIGN I 2 SOFTWARE ENGINEERING DESIGN I 3. Schemas and Theories The aim of this course is to learn how to write formal specifications of computer systems, using classical logic. The key descriptional technique

More information

User Control Mechanisms for Privacy Protection Should Go Hand in Hand with Privacy-Consequence Information: The Case of Smartphone Apps

User Control Mechanisms for Privacy Protection Should Go Hand in Hand with Privacy-Consequence Information: The Case of Smartphone Apps User Control Mechanisms for Privacy Protection Should Go Hand in Hand with Privacy-Consequence Information: The Case of Smartphone Apps Position Paper Gökhan Bal, Kai Rannenberg Goethe University Frankfurt

More information

ISO/IEC TR TECHNICAL REPORT. Software and systems engineering Life cycle management Guidelines for process description

ISO/IEC TR TECHNICAL REPORT. Software and systems engineering Life cycle management Guidelines for process description TECHNICAL REPORT ISO/IEC TR 24774 First edition 2007-09-01 Software and systems engineering Life cycle management Guidelines for process description Ingénierie du logiciel et des systèmes Gestion du cycle

More information

Lecture 2: SML Basics

Lecture 2: SML Basics 15-150 Lecture 2: SML Basics Lecture by Dan Licata January 19, 2012 I d like to start off by talking about someone named Alfred North Whitehead. With someone named Bertrand Russell, Whitehead wrote Principia

More information

ENVIRONMENT MODEL: FUNCTIONS, DATA 18

ENVIRONMENT MODEL: FUNCTIONS, DATA 18 ENVIRONMENT MODEL: FUNCTIONS, DATA 18 COMPUTER SCIENCE 61A Jon Kotker and Tom Magrino July 18, 2012 1 Motivation Yesterday, we introduced the environment model of computation as an alternative to the earlier

More information

An Alternative to Name Injection from Templates

An Alternative to Name Injection from Templates Document Numbers: X3J16/95-0177 WG21/N0777 Date: September 26, 1995 Reply To: Bill Gibbons bgibbons@taligent.com An Alternative to Name Injection from Templates Introduction The current working paper specifies

More information

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 [talking head] Formal Methods of Software Engineering means the use of mathematics as an aid to writing programs. Before we can

More information

ARML: an Active Rule Markup Language for Sharing Rules among Active Information Management Systems

ARML: an Active Rule Markup Language for Sharing Rules among Active Information Management Systems ARML: an Active Rule Markup Language for Sharing Rules among Active Information Management Systems Eunsuk Cho, Insuk Park, Soon J. Hyun, and Myungchul Kim School of Engineering, Information and Communications

More information

High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 18 Dynamic Instruction Scheduling with Branch Prediction

More information

INFORMATION RETRIEVAL SYSTEM: CONCEPT AND SCOPE

INFORMATION RETRIEVAL SYSTEM: CONCEPT AND SCOPE 15 : CONCEPT AND SCOPE 15.1 INTRODUCTION Information is communicated or received knowledge concerning a particular fact or circumstance. Retrieval refers to searching through stored information to find

More information

Lecture 34 SDLC Phases and UML Diagrams

Lecture 34 SDLC Phases and UML Diagrams That Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 34 SDLC Phases and UML Diagrams Welcome

More information

A B2B Search Engine. Abstract. Motivation. Challenges. Technical Report

A B2B Search Engine. Abstract. Motivation. Challenges. Technical Report Technical Report A B2B Search Engine Abstract In this report, we describe a business-to-business search engine that allows searching for potential customers with highly-specific queries. Currently over

More information

Applying Experiences with Declarative Codifications of Software Architectures on COD

Applying Experiences with Declarative Codifications of Software Architectures on COD Applying Experiences with Declarative Codifications of Software Architectures on COD Position Paper Roel Wuyts Stéphane Ducasse Gabriela Arévalo roel.wuyts@iam.unibe.ch ducasse@iam.unibe.ch arevalo@iam.unibe.ch

More information

EXTENDING THE PRIORITY CEILING PROTOCOL USING READ/WRITE AFFECTED SETS MICHAEL A. SQUADRITO A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE

EXTENDING THE PRIORITY CEILING PROTOCOL USING READ/WRITE AFFECTED SETS MICHAEL A. SQUADRITO A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE EXTENDING THE PRIORITY CEILING PROTOCOL USING READ/WRITE AFFECTED SETS BY MICHAEL A. SQUADRITO A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE IN COMPUTER

More information

The attendee will get a deep dive into all the DDL changes needed in order to exploit DB2 V10 Temporal tables as well as the limitations.

The attendee will get a deep dive into all the DDL changes needed in order to exploit DB2 V10 Temporal tables as well as the limitations. The attendee will get a deep dive into all the DDL changes needed in order to exploit DB2 V10 Temporal tables as well as the limitations. A case study scenario using a live DB2 V10 system will be used

More information

Lecture Notes on Arrays

Lecture Notes on Arrays Lecture Notes on Arrays 15-122: Principles of Imperative Computation July 2, 2013 1 Introduction So far we have seen how to process primitive data like integers in imperative programs. That is useful,

More information

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 24 Thursday, April 19, 2018 1 Error-propagating semantics For the last few weeks, we have been studying type systems.

More information

Chapter 6 Reacting to Player Input

Chapter 6 Reacting to Player Input Chapter 6 Reacting to Player Input 6.1 Introduction In this chapter, we will show you how your game program can react to mouse clicks and button presses. In order to do this, we need a instruction called

More information

Project 5 - The Meta-Circular Evaluator

Project 5 - The Meta-Circular Evaluator MASSACHVSETTS INSTITVTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science 6.001 Structure and Interpretation of Computer Programs Spring Semester, 2005 Project 5 - The Meta-Circular

More information

System Verilog Tagged Unions and Pattern Matching

System Verilog Tagged Unions and Pattern Matching System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,

More information

7. Relational Calculus (Part I) 7.1 Introduction

7. Relational Calculus (Part I) 7.1 Introduction 7. Relational Calculus (Part I) 7.1 Introduction We established earlier the fundamental role of relational algebra and calculus in relational databases (see 5.1). More specifically, relational calculus

More information

3.1 Constructions with sets

3.1 Constructions with sets 3 Interlude on sets Sets and functions are ubiquitous in mathematics. You might have the impression that they are most strongly connected with the pure end of the subject, but this is an illusion: think

More information