1. The Data Model. We have not concerned ourselves with
providing a "semantic" data model to users of the initial
system, providing instead a set of primitives on which we
believe a number of data models can be constructed. We
are conducting longer-term research on the higher-level
conceptual data model we will subsequently implement.
This research has led us through a number of papers in
the database literature as well as some programming
language and artificial intelligence work, in an attempt to
integrate the wide range of views and terminology into a
single satisfactory data model. This model must satisfy
our local Cedar clients from all three areas. For example,
our database should be suitable for knowledge
representation as well as providing an integrated
extension of the data types of Mesa. Our survey relating
Permission to copy without fee all or part of this material is grantea
provided that the copies are not made or distributed for direct
commercial advantage, the ACM copyright notice and the title of the
ii0
the views of data models, data types, and knowledge
representation has formed the basis for the model which
is now taking shape.
2. A User Interface. Direct user access to data is as
important as program access for many applications. We
believe we can provide a single user interface to examine
and modify data independent of the type of data and its
application, by using meta-data describing the database
to control the form of the user display. The user
interface should be integrated with the programming
environment. Integration means, for example, that a user
can call up system utilities such as an editor or compiler
on items in the database system; thus the user interface
performs the functions of an operating system executive,
with the database management system substituted for the
file system. The current experimental user interface has
been influenced in our lab by Goldstein and Bobrow [2]
who constructed an interface of this kind in the Smalltalk
programming language, by the author's previous
experience with database user interfaces [3], and by
other database user interfaces (e.g., [4]).
3. Language Integration. We are providing two types of
language access to the database system: a query
language, which is connected with the user interface
above, and an extension of the Mesa language to
incorporate database access at a low level. The latter
extension requires redesign of Mesa records, record field
access, and record declarations. New control constructs
are also necessary to fetch and index through tuples
satisfying constraints. The goal here is to unify the
features of records (e.g., random record access and fast
compiled access code) with those of tuples (e.g., indexes
on tuples and dynamically defined tuple types) in an
elegant but practical way. ("Practical" means good
performance relative to the features used.)