Like any other database application, object database applications are subject to evolution. Evolution, however, is a critical requirement in object-oriented databases as it is a fundamental characteristic of complex applications such as computer-aided design and manufacturing (CAD/CAM) and office information systems. Object-oriented databases are inherently suited to supporting such applications. In this paper we present a database evolution taxonomy for object-oriented databases. We describe a conceptual database model and use it to define the taxonomy. We also present the various invariants and rules governing the various evolution operations. The execution sequence of rules is described. An implementation of the database model and the evolution taxonomy in the Semi-Autonomous Database Evolution System (SADES), is discussed. The implementation employs aspect-oriented programming techniques to provide a flexible means of transforming objects upon evolution, and implementing some application-specific evolution primitives. A case study compares the evolution taxonomy with existing evolution approaches. The comparison demonstrates that the taxonomy and its corresponding implementation in SADES provide improved coverage of the fundamental evolution operations to which an object database might be subjected. At the same time, erosion of the database structure is avoided by maintaining a coherent and comprehensible view of historical changes.
A. RASHID AND P. SAWYER• to correct mistakes in the database design; • to add new features during incremental design; and • to reflect changes in the structure of the real-world artefacts modelled in the database. Therefore, like any other database application, object database applications are subject to evolution.However, evolution is a critical requirement in object-oriented databases because their inherent support for complex data types makes them highly suitable for supporting complex applications such as computer-aided design and manufacturing (CAD/CAM) and office information systems. Due to the underlying rich data model (in contrast with conventional data-intensive record-processing applications), these applications require dynamic modifications to both the data residing within the database and the way the data has been modelled, i.e., both the objects residing within the database and the schema of the database are subject to change. Furthermore, there is a requirement to keep track of the change in case it needs to be reverted. Therefore, in addition to offering traditional database functionality such as persistence, transaction management, recovery and querying facilities, an objectoriented database management system needs to provide the ability to evolve dynamically, through various versions, both the objects and the class definitions (which form the database schema) in the database.An object database is, therefore, subject to three types of changes over its lifetime.• Class hierarchy modification: introduction of new classes, deletion of existing classes and modificatio...