We show how the use of a metaobject layer is useful to allow an easier evolution of a an object-oriented database integrating existing relational systems. A correct use of metaobjects allow to hide the persistence contingencies when linking an application with an external application. Moreover a metaobject layer allows the evolution of the database object model. We show in these lines how a underlying relational database can be used for final storage of data in a system allowing metamodeling abilities. We have designed a correspondence engine, driven by rules, linking standard object and relational structures. We want the designer to be able to alter these rules according to the evolution of the object model, in order to keep coherent relational schemes. So the correspondence engine has been designed as a specialisable protocol discriminating on the metaobjects of the object layer.
Object-Oriented Databases and Legacy SystemsFor some years, in database community, a growing interest has focused on object-oriented databases. Most of the current object oriented database management systems (OODBMS) are now uniform, that is, all levels, including the storage level, deal with objects. However, as it is shown in [10], the introduction of such information systems into companies induces many problems. On the one hand, companies have often made big investments in relational databases, and they do not want to abandon them; on the other hand, even if a company decides to transfer its data from a relational database to an object one, such a transfer may be costly. First, databases may be out of order during the transfer. Then, it is not obvious that all the applications using the concerned data are themselves object-oriented. Hence, either the system administrator would have to upgrade these applications toward the object paradigm, or two equivalent databases would have to be kept. So, many companies prefer an incremental move toward object-oriented databases, keeping untouched relational data for older applications.The DRIVER system [11] solves this problem. It offers an object layer on relational databases. It has been shown in [9] that many object-oriented notions can be expressed with relational databases. With DRIVER, every object-oriented application can see a relational schema in its own object modeling, and can store its new data in the relational database, provided, of course, that the objet modeling is compatible with the underlying relational schema. So, relational databases can still be used and be relevant in new object-oriented applications. DRIVER offers an evolutionary way to introduce objects in a legacy relational system, rather than a revolutionary one.Moreover, one of the DRIVER's goal is to provide an important modularity. Unlike some other object-relational systems like Persistence [5], DRIVER does not consider itself as the master of the underlying relational database, imposing a systematic relational schema on it. The developer is free to choose both his object modeling and his relational schema, provi...