Schema Evolution & Version Control in
OODB
Group members:Group members: Lynne Ward, Alistair Hamilton,Ben Hall,
Joe W Falke, Kriss Paul
Presenter:Presenter: Joe W Falke
Introduction Schema – The organization or
structure for a database
Change of Data Structure Over Time
Ability Of Database System to respond to changes
Schema Evolution Example Salary relation Staff ID Position Code Salary
21677 G55 £3300021678 G56 £3700021680 A05 £4550021683 A09 £6540021687 G51 £32000
New 4 digit integer position codes are to be implemented.
Problem Is another field required to store the old codes, if so, for how long
will the new field be kept.
Schema Modifications Problems
Consistency checks Structural Behavioural
Implementation Changes To The Schema
Add & Subtract Classes Methods Properties
Ossevol Database and Schema
modification utility
Handles many common cases of schema evolution, such as adding and deleting.
Implementation Incorporate Safeguards
Testing thoroughly using small databases
Validation Techniques
Taxonomy1. Changes to the contents of a node (a class)
1.1. Changes to an instance variable1.1.1. Add a new instance variable to a class1.1.2. Drop an existing instance variable from a class1.1.3. Change the Name of an instance variable of a class1.1.4. Change the Domain of an instance variable of a class1.1.5. Change the inheritance (parent) of an instance
variable (inherit another instance variable with the same name)
1.1.6. Change the default value of an instance variable1.1.7. Manipulate the shared value of an instance variable
1.1.7.1. Add a shared value1.1.7.2. Change the shared value1.1.7.3. Drop the shared value
Taxonomy (ii)1.2. Changes to a method
1.2.1. Add a new method to a class1.2.2. Drop an existing method from a class1.2.3. Change the Name of a method in a class1.2.4. Change the inheritance of a method
2. Changes to an Edge2.1. Make a class S a superclass of C2.2. Remove a class S from the superclass list of a class C2.3. Change the order of superclass of a class C
3. Changes to a Node3.1. Add a new class3.2. Drop an existing class3.3. Change the name of a class
Invariants Class Lattice Invariant
Distinct Name Invariant
Distinct Identity Invariant
Full Inheritance Invariant
Domain Compatibility Invariant
Version Control Introduction
“An object version a semantically significant screenshot, taken at a given point in time”.
Engineering Systems (e.g. CAD) Car Example
Car Example A car consists of multiple top-level
objects, e.g. Engine Seat Steering Wheel
For example, an engine version and a seat version are specific to one car
Requirements Of Version Control Transient Versions Working Versions Released Versions
Can they be amended? How are they created? Where are they stored?
Binding Two types of binding
Static Referencing requires the name of the
object, the object identifier and the version number.
Dynamic References need only specify the object
identifier.
Version Evolution as a Hierarchy
Obj[0]
Obj[3]Obj[2]Obj[1]
Obj[1.1] Obj[1.2] Obj[2.3]Obj[2.2]Obj[2.1]
TIME
Fig 1.1 Version History Hierarchy
Chou & Kim’s ORION Model
Public Database
Private Workspace
Check-out
Check-inor Promote
Explicit/ImplicitPromotion
Create object from scratch
- Released Version
- Working Version
- Transient Version
Key:
Fig 1.2 Main Components of Chou and Kim’s ORION Version Control Model
Change Propagation Causing changes at higher levels
of the Version Hierarchy Why is Propagation needed? Are there any problems associated
with it?
Change Notification Team of designers share responsibility
of artefact Changes to objects can affect other
referenced objects in artefact Notification types:
Message – based Immediate Deferred
Flag - based
Conclusion Usefulness of taxonomy for schema changes that an
object – oriented database should allow and introduced a framework for understanding the semantics of the schema changes.
The invariants of the class lattice ensure that changes do not leave the schema in an inconsistent state, (one that violates an invariant).
There are a number of components making up version control
Importance of Notification
ReferencesBooks Used Fundamentals of Database Systems Elmasti & Navathe2nd EditionBenjamin/Cummings Publishing Company, IncISBN 0-8053-1753-8 Readings in Database SystemsMichael Stonebraker2nd EditionMorgan Kaufmann Publishers, San Francisco, CaliforniaISBN 1-55860-252-6 Database Systems, Connolly & Begg3rd EditionISBN 0-201-70857-4
ReferencesBuilding an Object-Oriented Database SystemsBancilhon, Delobel, & KanellakisMorgan Kaufmann Publishers, San Francisco, CaliforniaISBN 1-55860-169-4 Object Databases, The EssentialsMary E. S. LoomisAddison-Wesley Publishing CompanyISBN 0-201-56341-X Object-Oriented Databases, A Semantic Data Model ApproachGray, Kulkarni, PatonPrentice HallISDN 0-13-630203-3
ReferencesObject-Oriented Databases Systems, Concepts and ArchitecturesBerthino & MartinoAddison-Wesley Publishing CompanyISBN 0-201-2439-7 Object-Oriented Databases Management: Applications in Engineering and Computer ScienceKemper & MoerkottePrentice HallISBN 0-13-104082-8 Object-Oriented Concepts, Databases, and Applications.Kim & LochovskyAddison-Wesley Publishing CompanyISBN 0-201-14410-7 Websites Used http://support.odi.com/i/documentation/doc/objectstore/r51/ostore/doc/user1/8_schema.htm