0
$\begingroup$

QUESTION EDITED

Since this question wasn't clear, I'll rephrase. See question-history for original.

I'm looking for academic papers that describe schema evolution on documents (1) in a generic way. More specifically some questions I'm hoping to see answered in part: given a schema A and documents adhering to schema A:

  • what type of atomic 'change-operations' may occur on schema A for instances of schema A to be compatible with the newly created schema A+.
  • in general terms, does an exhaustive list of these 'change-operations' (A) even exist (theoretically) or (B) would this be db-dependent? Intuitively I think the answer is (A)
  • Assuming (A) any pointers to such a list? (2)
  • Given a schema A and a schema B, is it possible to deconstruct the delta between these two schemas to their atomic 'change-operations'?
  • Given the above, theoretically, it seems possible to either:
    • do automatic migration of all instances of schema A to adhere to A+
    • list where manual intervention is needed because of incompatibilities.

1) with documents I mean objects generally stored in nosql document-databases. I.e.: objects with complex types / nesting. The misplaced term nosql I used in the original question was an attempt to point this out.

2) Although pretty old Recent advances in schema and ontology evolution is an example of what I'm looking for. It illustrates a couple of 'change operations' as follows (through Moto et. al 2007 specifically mentioning Xml schema changes, copied verbatim) :

  1. Add a new optional or required element to a type
  2. Delete an element from a type
  3. Add new top-level constructs like complex types
  4. Remove top-level constructs
  5. Change the semantics of an element without changing its syntax – for instance, if the new version of an application treats the implicit units of a column to be in metric where previous versions did not
  6. Refactor a schema in a way that does not affect instance validation – for instance, factoring out common local type definitions into a single global type definition
  7. Nest a collection of elements inside another element
  8. Flatten an element by replacing it by its children
  9. Rename an element or change its namespace
  10. Change an element’s maximum or minimum multiplicity
  11. Modify an element’s type, either by changing it from one named type to another or adding or changing a restriction or extension
  12. Change an element’s default value
  13. Reorder elements in a type

Clearly this doesn't cover all change operations possible on a document schema. Missing for example are change-operations related to object-references.

Any pointers appreciated.

$\endgroup$
  • 2
    $\begingroup$ Software engineering as an academic discipline is ontopic here (1, 2). This is a request for academic references, so it seems to be ontopic to me. Community votes, please! $\endgroup$ – Raphael Jan 7 '16 at 13:49
  • 1
    $\begingroup$ [I removed a discussion about the scope of another site as well as bickering. Please remain civil and express your opinion about this question, in the form of close votes if need be.] $\endgroup$ – Raphael Jan 7 '16 at 18:06
  • $\begingroup$ Thanks @Raphael. Updated by question to hopefully be a better fit. Removed previous question (still avail in history) since it would become a complete mess . If that's not according to rules, I'll re-add original question $\endgroup$ – Geert-Jan Jan 7 '16 at 18:48
  • 1
    $\begingroup$ @Geert-Jan Well, to me this looks like a reasonable question. I have no expertise in the area at all, so I can't help you further there. Good luck! $\endgroup$ – Raphael Jan 8 '16 at 9:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.