An Introduction to the ADAMS Interface Language: Part IReport
ADAMS provides an interface between host application programs and a space of persistent data items, or a database. The interface consists of ways to describe a user's space of persistent data items, sometimes called a "data description language", or DDL, together with mechanisms to access those items, which is sometimes called a "data manipulation language", or DML, or a "query language". In this part we concentrate only on the descriptive power of ADAMS. What kinds of databases can be represented in ADAMS. In Part II, we will focus on the manipulative and query power of ADAMS. Every database implementation is eventually grounded in a number of primitive concepts which are fundamental to understanding the system. ADAMS is based on six primitive concepts: attribute, codomain, element, map, sequence, and set, which we regard as fundamental to all database implementation. We show that ADAMS has at least the same descriptive power as the more traditional database models, such as the relational model, the semantic model, and the object - oriented model by showing all such database configurations can be expressed in terms of these primitives. ADAMS, the Advanced DAta Management System of the University of Virginia's Institute for Parallel Computation, has been designed to function as clean interface between user processes and one, or more, persistent data bases. It is not meant to serve as a traditional database language. In particular, it provides no mechanisms for displaying retrieved data. We expect that user programs will be written in some established language (and henceforth called the host language), such as Fortran, C, or Pascal, that is most appropriate for the desired data processing operations. ADAMS, itself, only provides mechanisms for defining and naming persistent database structures on permanent storage media, and for accessing these structures. Thus, ADAMS can be regarded as a tool for implementing database access mechanisms (possibly other database languages) and for porting them to a variety of hardware configurations, including parallel machines. An interface is really a language - a way of referencing those things of importance to the interface. In this paper we concentrate entirely on the linguistic aspects of the interface and largely ignore the mechanisms we have used to implement it. All languages are designed to talk about some area of interest; one cannot understand the structure of the language without first understanding what it is about the world that the language was designed to convey. ADAMS, for example, has a structure that is quite different from most familiar programming languages because ADAMS was not designed to describe computational processes. The ADAMS language is not concerned with data processing. Its entire focus is on the storage and retrieval of "things" (essentially character, or bit, strings). In the first sections we describe, using a variety of intuitive analogies, the primitive concepts that we think are fundamental to a database interface. Then we describe the actual structure of the ADAMS language - the syntactic constructs it has adopted to describe and manipulate these basic concepts. Finally, we show how higher level database concepts, as developed in the relational, semantic, and object - oriented models, can be expressed in this interface language. In effect, this last section illustrates the expressive power of the ADAMS language and how it can be used in the world of computer applications that are highly data dependent.
Note: Abstract extracted from PDF file via OCR
All rights reserved (no additional license for public reuse)
Pfaltz, John, James French, and Andrew Grimshaw. "An Introduction to the ADAMS Interface Language: Part I." University of Virginia Institute for Parallel Computation Tech Report (1991).
University of Virginia, Institute for Parallel Computation