The goal of the FIDE Action was to develop the foundations for an integrated data environment through advances in type systems (the expressions used to define the structure and properties of data and to ensure the correctness of programs), programming languages, database systems and conceptual modelling (the process which generates the model of a database application from a real-world description).
The individual technologies currently supporting application systems are studied to analyse the precise functions they provide. These show both overlap and inconsistency. The Action sought to eliminate the inconsistency and hence make application system building and maintenance much more economic. At the same time FIDE is developing a support architecture which should be significantly more efficient having removed unnecessary and often conflicting overlap. At present the focus is on combining databases and programming languages but the approach is expected to apply to a wider range of components in the system environment.
O2 is an object oriented database system. Its functionalities include that of a database management system (DBMS), a programming language and a programming environment. The target applications are business, transactional, office automation and multimedia applications. It avoids the impedance mismatch between database query languages (like structured query language (SQL)) and programming languages (like C or COBOL). Moreover, the object oriented approach and the integrated programming environment, increase the software productivity.
Information systems are currently supported by a set of loosely connected heterogenous software components, such as databases systems, programming languages, programming environments, etc, with each component designed and built using a specific technology. This research developed a formally defined integration of a full set of technologies to provide a data environment and hence allow a total application to be built within a consistent and seamless integrated environment.
Several type systems suitable for the kernal of an integrated environment have been implemented and are being evaluated. The type checking technology has been developed using a memorizing technique which combines the benefits of name and structural equivalence. A system of incremental binding allows new methods of application construction. A new bulk data type, called maps, has been implemented and is being evaluated. The performance of 2 different map stores has been measured with the SUN 'oodbms' benchmark. A type system statically incorporating both object orientation (inheritance and identity) and relationships has been developed. Comprehensions based on quads have been investigated. The stable store, a prototype canonical object store, already supports 5 languages. One of these, PQuest, is a persistent variant of Quest. This language is being used to investigate the deginition of bulk types, one of 2 experiments into architectures. The other experiment is based on Napier 88. The use of reflection is being investigated.
A new bulk type constructor, map, for database programming languages has been designed. It is designed to balance the requirements for persistent canonical store implementation with the requirements of data modelling. A map value denotes a stored finite updateable function, and may be considered as a set of pairs of tuples, denoting the domain and range respectively. The map includes relations and sets as a degenerate form, when the range is empty, and the map algebra is then equivalent to relational algebra. Utilizing an identified range allows the map to model directed structures such as graphs, which have been explored hitherto in the functional data models. Maps have a user specifiable equality test on domain elements, and a user specifiable stored ordering. A map will trivially represent sets, arrays, sparse arrays, index structures, and relations; hence it is a candidate for a canonical store. Extended to polymorphic maps, it will also represent records, environments and strongly typed memo functions and command histories. Interoperability between various languages is envisaged via such a canonical store. The map construct is sufficiently high level and abstract that it will convey the structural semantics between the interworking components. This same captured structure makes it possible to develop efficient map stores utilizing indexing, clustering and prefetching. Both explicitly controlled operations and an optimizable algebra are defined for maps.
A formalism has been presented for the logical layer of an object oriented query optimizer that subsumes two well known optimization approaches: the Orion technique based on class extensions and the algebra based query rewritings. The formalism also allows easy and exhaustive factorization of common query subexpressions. Furthermore, it uses information on object placement policies and indices to limit the search space for an equivalent expression, thereby reducing the rewriting phase.
APPROACH AND METHODS
The approach focused on three interrelated topics:
-programming languages for data-intensive applications
-object stores with high performance
-design and construction methodologies
Six areas of research are investigated to extract essential techniques and fundamental concepts:
-formal methods in database system and programming language design
-conceptual models and type systems
-types for object stores
-DBPL and persistent programming language design and experience
-system evolution, type evolution, control of binding and typing
PROGRESS AND RESULTS
Several type systems suitable for the kernel of an integrated environment have been implemented and are being evaluated. The type checking technology has been developed using a memorising technique which combines the benefits of name and structural equivalence. A system of incremental binding allows new methods of application construction. A new bulk data type, called maps, has been implemented and is being evaluated. The performance of two different map stores has been measured with the SUN oodbms benchmark. A type system statically incorporating both object orientation (inheritance and identity) and relationships has been developed. Comprehensions based on quads have been investigated. The stable store, a prototype canonical object store, already supports five languages. One of these, PQuest, is a persistent variant of Quest. This language is being used to investigate the definition of bulk types, one of our two experiments into architectures. The other experiment is based on Napier 88. The use of reflect on is being investigated.
The outcomes of this Action are mainly theoretical, although integration prototypes will be demonstrated. The objective is to provide database programming language designers and programmers with a better understanding of this area. On the one hand, from the outputs of FIDE, designers of database programming languages will be able to identify the adequate type system their language needs and to select the best technology for persistent stores. On the other hand, database application programmers will find the results on conceptual modelling and methodology useful for improving the design of their applications.
The long-term goal is to specify clear guidelines on the design and architecture of systems which provide as one integrated whole, those facilities currently provided separately by databases and programming languages. At present several interesting demonstration systems exist: Napier 88, DBPL, Galileo, PS-algol and a number of designs for new components and "total" systems. The longer term workplan would provide complete coverage of the database functions in languages using the latest language technology,integrated with a workbench of tools supporting design, construction, maintenance and operations within the same coherent framework. Within this more ambitious workplan, which goes beyond the original goals of FIDE and will not be completed within FIDE,it would be expected that the integration technology be demonstrated, so that it may be reapplied to industrial systems and other aspects of computer science.
78153 Le Chesnay
KY16 9SS St Andrews