An Ada-compatible distributed database management system

Adaplex is an integrated language for programming database applications. It results from the embedding of the database sublanguage Daplex in the general-purpose programming language Ada [1]. This paper describes the design of DDM, a general-purpose distributed database management system implemented in Ada that supports the use of Adaplex as interface language. There are two novel aspects in the design of this system. First, this is the first full-scale distributed database system to support a semantically rich, functional data model. DDM goes beyond systems like Distributed INGRES and R*(which are based on the relational technology) in providing advanced data modeling capabilities and ease of use. Second, this is the first full-function distributed DBMS designed to be compatible with the Ada programming environment. The coupling between Ada and Daplex has been achieved at the expression level which is much tighter than the statement level integration attained in previous systems. This tight coupling poses new implementation problems but also creates new opportunities for optimization. The current paper highlights the Adaplex language and discusses innovative aspects in DDM's design that are intended to meet the dual objectives of good performance and high data availability.

[1]  David W. Shipman The functional data model and the data language DAPLEX , 1979, SIGMOD '79.

[2]  Diane C. P. Smith,et al.  Database abstractions: aggregation and generalization , 1977, TODS.

[3]  Shi-Kuo Chang,et al.  Site Selection in Distributed Query Processing , 1982, ICDCS.

[4]  Bernd Walter,et al.  A Robust and Efficient Protocol for Checking the Availability of Remote Sites , 1982, Comput. Networks.

[5]  Terry A. Landers,et al.  An Overview of MULTIBASE , 1986, DDB.

[6]  Philip A. Bernstein,et al.  Concurrency Control in Distributed Database Systems , 1986, CSUR.

[7]  Georg Gottlob,et al.  Translating SQL Into Relational Algebra: Optimization, Semantics, and Equivalence of SQL Queries , 1985, IEEE Transactions on Software Engineering.

[8]  Clement T. Yu,et al.  Optimization of Distributed Tree Queries , 1984, J. Comput. Syst. Sci..

[9]  Dean Daniels,et al.  R*: An Overview of the Architecture , 1986, JCDKB.

[10]  C. J. Date Referential Integrity , 1981, VLDB.

[11]  Stephen Fox,et al.  Overview of an Ada compatible distributed database manager , 1983, SIGMOD '83.

[12]  Matthias Jarke,et al.  Query processing strategies in the PASCAL/R relational database management system , 1982, SIGMOD '82.

[13]  Dean Daniels,et al.  An Introduction to Distributed Query Compilation in R* , 1982, DDB.

[14]  Penny Rheingans,et al.  A Database Designer's Workbench , 1986, ER.

[15]  Clement T. Yu,et al.  On the design of a query processing strategy in a distributed database environment , 1983, SIGMOD '83.

[16]  E. F. Codd,et al.  Relational database: a practical foundation for productivity , 1982, CACM.

[17]  Umeshwar Dayal,et al.  Processing queries with quantifiers a horticultural approach , 1983, PODS.

[18]  Lawrence A. Rowe,et al.  Data abstraction, views and updates in RIGEL , 1979, SIGMOD '79.

[19]  Patricia G. Selinger,et al.  Access Path Selection in Distributed Database Management Systems , 1980, ICOD.

[20]  Stephen Fox,et al.  A recovery algorithm for a distributed database system , 1983, PODS.

[21]  Arvola Chan,et al.  Implementing Distributed Read-Only Transactions , 1985, IEEE Transactions on Software Engineering.

[22]  Stephen Fox,et al.  Storage and Access Structures to Support a Semantic Data Model , 1982, VLDB.

[23]  Stephen Fox,et al.  Supporting a Semantic Data Model in a Distributed Database System , 1983, VLDB.

[24]  Alain Pirotte,et al.  Generalized joins , 1976, SGMD.

[25]  Randy H. Katz,et al.  An extended relational algebra with control over duplicate elimination , 1982, PODS.

[26]  Stephen Fox,et al.  The implementation of an integrated concurrency control and recovery scheme , 1982, SIGMOD '82.

[27]  Eugene Wong,et al.  Introduction to a system for distributed databases (SDD-1) , 1980, TODS.

[28]  Philip A. Bernstein,et al.  Site Initialization, Recovery, and Backup in a Distributed Database System , 1984, IEEE Transactions on Software Engineering.

[29]  Eugene Wong,et al.  Query processing in a system for distributed databases (SDD-1) , 1981, TODS.

[30]  Michael Stonebraker,et al.  Distributed query processing in a relational data base system , 1978, SIGMOD Conference.

[31]  Joachim W. Schmidt,et al.  Some high level language constructs for data of type relation , 1977, TODS.

[32]  Philip A. Bernstein,et al.  Using Semi-Joins to Solve Relational Queries , 1981, JACM.

[33]  Michael Hammer,et al.  Reliability mechanisms for SDD-1: a system for distributed databases , 1980, TODS.

[34]  Dale Skeen Determining the last process to fail , 1983, PODS '83.

[35]  Philip A. Bernstein,et al.  An algorithm for concurrency control and recovery in replicated distributed databases , 1984, TODS.

[36]  Daniel A. Menascé,et al.  Locking and Deadlock Detection in Distributed Data Bases , 1979, IEEE Transactions on Software Engineering.