Tuesday, September 07, 2004

Ch ch ch changes...


  1. Addition/removal of attributes.

  2. Addition/removal of entities.

  3. Changes in cardinality of relationships. [1]

  4. Changes of ownership in relationships. [1]

  5. Granularity changes. [1]

  6. Encoding changes. [1]

  7. Unit changes. [1]

  8. Identifier changes. [1]



You can implement the above with some set of transformations (some obvious - i.e. add attribute, some less obvious - i.e. granularity change) and to ensure backward compatibility you'd want to build a schema that, when the transformations are applied, is still understandable by actors expecting the original schema. Clearly at some point backwards compatibility has to break, either structurally or semantically.

If you are considering how to build an extensible schema the above might help in identifying what extension mechanism to use where.

[1] Ventrone, V. and Heiler, S. (1991). Semantic heterogeneity as a result of domain evolution. SIGMOD Record (ACM Special Interest Group on Management of Data), 20(4):16–20.