6 research outputs found

    A Model for Compound Type Changes Encountered in Schema Evolution

    Get PDF
    Schema evolution is a problem that is faced by long-lived data. When a schema changes, existing persistent data can become inaccessible unless the database system provides mechanisms to access data created with previous versions of the schema. Most existing systems that support schema evolution focus on changes local to individual types within the schema, thereby limiting the changes that the database maintainer can perform. We have developed a model of type changes incorporating changes local to individual types as well as compound changes involving multiple types. The model describes both type changes and their impact on data by defining derivation rules to initialize new data based on the existing data. The derivation rules can describe local and nonlocal changes to types to capture the intent of a large class of type change operations. We have built a system called Tess (Type Evolution Software System) that uses this model to recognize type changes by comparing schemas and then produces a transformer that can update data in a database to correspond to a newer version of the schema

    Object-Oriented Query Language Design and Processing

    Get PDF
    This thesis proposes an object-oriented query language that is more powerful than many existing query languages. The language is formally specified and its expressive power is demonstrated by giving four translation schemes from other prominent object-oriented query languages. Further, this query language can be supported by a query algebra and both the query language and query algebra can be optimised using meaning preserving transformation rules. Object-Oriented Query Languages. The functional requirements of high-level object-oriented query languages are identified and they combine as well as supplement features found in existing object-oriented query languages. Effectively they formulate a query model against which existing query languages can be evaluated and compared. An evaluation of four representative query languages chosen from research prototypes and commercial products shows that none satisfies all the requirements. On the basis of the requirements a new query language, object comprehensions, is developed to provide a concise, clear, powerful, and optimisable query language for object-oriented databases. Some optimisation opportunities for the novel features are identified. A set of translation schemes from the query languages studied to object comprehensions is presented. Such translations demonstrate that object comprehensions are at least as powerful as these query languages and a system supporting object comprehensions can potentially support multiple query languages by providing translations to object comprehensions. Algebraic Support. The canonical algebra provides an abstract execution engine with which object comprehension queries can be expressed using algebraic operations. The translation scheme from object comprehensions to the canonical algebra is very simple and is no for supporting queries involving mixed collection classes The canonical algebra shares many operations with other query algebras and is formally specified. A set of transformation rules that can be used for optimisation is presented whose validity can be verified given the formal specification. Formal Data Model. The data model which forms the basis of investigation is formally defined using the specification language Z. This reference data model captures all the essential features of existing object-oriented data models including multiple inheritance. However, unlike existing data models, it also supports a generalised form of method over-loading. Static type checking of such overloaded methods is studied in this thesis

    Unified Class Evolution by Object-Oriented Views

    No full text
    Object-oriented databases are said to support evolution and incremental development. On the schema level, a firm restriction in this evolution is that it can only be done by evolving class hierarchies downwards by subclassing. We show a unified approach to class evolution in object-oriented databases, where class hierarchies are allowed to grow in all directions, covering for evolution situations like generalisation, specialisation, and class versioning. We show how to make the evolution transparent, allowing existing and new clients to coexist and be clients of the same (existing and new) objects. A design of this approach based on object-oriented database views is shown. 1 Introduction In most database applications there is a need for letting the schema evolve. There are several reasons for this. There may be design flaws that are not discovered before (some of the) applications are implemented and the database is populated. The domain being modelled is evolving, new applications ha..
    corecore