<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Three Layer Evolution Model for XML Stored in Relational Databases</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Andrey</forename><surname>Simanovsky</surname></persName>
							<email>asimanovsky@acm.org</email>
							<affiliation key="aff0">
								<orgName type="institution">St Petersburg State University</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Three Layer Evolution Model for XML Stored in Relational Databases</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">4A875C0B17B9B0FF61933022931B511C</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T11:14+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>XML-relational systems with well defined XML and relational schemas are widely used in industry. In the presence of rapidly changing requirements both schemas of such a model need continuous evolution, which can be performed by a formal framework that describes the evolution of the mutually dependent schema pairs of the system as sequences of elementary schema transformations. There are a number of common tasks, like relational schema performance tuning, XML syntax clean-up, etc that stand apart from changes of semantics of the schemas. We discuss a framework with three layers of operations: the changes in XML schema only, the semantic changes that affect both schemas, and the changes that affect relational schema only. We show how the layered framework allows to formalize and address the above mentioned tasks. We consider the formal quality of the solutions of the tasks that may be achieved inside the framework.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>A practice of storing XML data in relational databases is widely employed because of the capabilities of the highly-developed RDBMS technologies. Provided that XML documents comply with a particular schema designed for the application domain, a more efficient utilization of these technologies can be achieved. In that case a relational database can use the metadata to organize effective storage, which includes selection of appropriate relational schema. On the other hand, if a choice between possible XML document schemas exists, the schema that is best fit for storing data in relational database should be chosen. Thereby these XML and relational schemas become mutually dependent.</p><p>If the product that uses the schemas exists in the environment of rapidly changing requirements, both schemas need to exhibit agile evolution in time. A major part of software products storing XML in relational databases are actually in this situation because they often need to change schemas with every new version of the product. Continuous redesign requires repetitive evolution of data access and data storage algorithms. A formal framework that presents schema changes as a sequence of elementary transformations and ensures invariance of selected properties of the schema and data complying with the schema is an alternative to ad-hoc solutions. Such a model is referred to as a schema evolution model.</p><p>Schema changes may be caused by changes in functionality of the product, by system performance requirements, compatibility issues, and other reasons. While it is preferable that performance problems are resolved on the relational schema level, functional requirements in the presence of compatibility issues are better expressed in terms of changes in XML schema only.</p><p>General XML document evolution models (for example, those found in <ref type="bibr" target="#b10">[5,</ref><ref type="bibr" target="#b7">2]</ref>, etc) work with XML schema only and cannot express the above mentioned problems. Figure <ref type="figure" target="#fig_0">1</ref> <ref type="foot" target="#foot_0">1</ref> demonstrates the application of a general XML document evolution model. DTD denotes an original XML schema; DTD' is a new XML schema; RS is an original relational schema; RS' is a new relational schema. The relational model changes can be expressed only as a result of XML schema evolution; the effects of XML schema changes on relational schema are not incorporated into the model. The following tasks cannot be solved by a general evolution model:</p><p>1. Apply changes to the XML schema (e.g. to incorporate XML syntax refinement, or use of schema derivation like <ref type="bibr" target="#b14">[9]</ref>) that would not require changing the underlying relational schema (compatibility). 2. Ensure that semantic constraints are present in relational schema (to allow XML to SQL queries conversion rather than obtaining XML document) and can be queried directly through SQL rather than XML (functionality). 3. Apply changes to the relational schema (e.g., to tune performance) that would not require XML schema changes (performance).</p><p>We also add another task, richness: the changes available in the model should allow to transform a given XML schema complying with a given set of semantic constraints to any XML schema complying with the same constraints. This task is usually solved by general XML evolution models. Resolving it in a specific XML-relational evolution model ensures that it is not less expressive about XML schema, than general XML evolution model.</p><p>We present an evolution model that explicitly contains the knowledge of the mutual dependency of XML and relational schemas.  In this paper we show how the above tasks can be solved in the model by considering the sequences of operations of the 1st, 2nd and 3d types respectively. We demonstrate that operations of the 1st and 2nd types are rich enough to solve the 4th task. We also discuss the quality of the answers to these issues.</p><p>The rest of the paper is organized as follows. Section 2 gives an overview of related work. Section 3 gives a brief description of the XML-relational evolution model we employ. The subsequent sections contain operations definitions and discuss how the operations address the listed above tasks.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related work</head><p>The issue of storing XML documents in relational databases is a well explored area of research. The main trends are structure-driven approach, for example, <ref type="bibr" target="#b15">[10,</ref><ref type="bibr" target="#b16">11]</ref>, and model-driven approach, for example, "edge approach" from <ref type="bibr" target="#b9">[4]</ref> or <ref type="bibr" target="#b22">[17]</ref>. The structuredriven algorithms from <ref type="bibr" target="#b16">[11]</ref> generate a fixed relational schema from a given XML DTD using either Shared or Hybrid techniques. The generation algorithms of these techniques construct a DTD graph similar to the one discussed in the paper. The XML document order and regular expressions information is lost in the conversion. <ref type="bibr" target="#b19">[14]</ref> considers the addition of order information to the schemas generated using the Hybrid algorithm from <ref type="bibr" target="#b15">[10]</ref>, while <ref type="bibr" target="#b20">[15]</ref> explores possibilities of utilizing functional dependencies information in final schema generation. However, all these works do not consider the effects of schema evolution over the algorithms.</p><p>Extensive research is done recently in the field of effective querying XML stored in relational database. <ref type="bibr" target="#b16">[11]</ref> suggests a general solution for generating queries for arbitrary XML schemas. <ref type="bibr" target="#b11">[6]</ref> discusses the use of the knowledge of the XML to SQL mapping algorithm to generate efficient SQL queries from XML queries.  Various database schema evolution models were proposed for object-oriented <ref type="bibr" target="#b13">[8]</ref> and relational databases <ref type="bibr">[1]</ref>. Recently several works concerning XML appeared ( <ref type="bibr" target="#b10">[5,</ref><ref type="bibr" target="#b7">2]</ref>). <ref type="bibr" target="#b10">[5]</ref> concentrates on versioning and schema derivations approach rather than schema modification. It deals with arbitrary XML schemas. <ref type="bibr" target="#b7">[2]</ref> introduces an invariant-based approach to defining XML schema evolution. While these approaches may work well for XML data they cannot be mapped directly to a XML-relational system due to inability to express issues named compatibility, functionality, and performance as was shown in Section 1. On the other hand, <ref type="bibr" target="#b12">[7,</ref><ref type="bibr" target="#b13">8,</ref><ref type="bibr" target="#b7">2]</ref> and <ref type="bibr" target="#b10">[5]</ref> satisfy richness requirement, where the latter two do that for XML. <ref type="bibr" target="#b12">[7,</ref><ref type="bibr" target="#b13">8]</ref> can express semantic constraints in a way similar to proposed model. <ref type="bibr" target="#b7">[2]</ref> expresses semantic constraints for cycle-free XML schemas.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Evolution model overview</head><p>In consequent discussion we use as a sample a XML document schema taken from <ref type="bibr" target="#b15">[10]</ref>. It is presented on Figure <ref type="figure" target="#fig_2">3</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Schema S</head><p>The essential part of the evolution model is the intermediate schema S. S has a fixed mapping from DTD. Figure <ref type="figure" target="#fig_3">4</ref> shows the schema S for the sample DTD. Dashed rectangles are used to outline the factorized vertices. Filled circles mark the vertices that are First, the DTD graph is built. The DTD is simplified by replacing attributes with leaf tags, inlining entities, replacing regular expressions in tag definitions. After that the tags become the vertices of the DTD graph. If one tag contains another an edge exists between corresponding DTD graph vertices. Each vertex is labeled with the name of the tag. An edge may be optionally marked by an asterisk ("*"). In that case it is a staredge. Figure <ref type="figure" target="#fig_3">4</ref> contains a sample DTD graph. A formal definition of the DTD graph and the process of obtaining it from the DTD can be found in <ref type="bibr" target="#b17">[12]</ref>.</p><formula xml:id="formula_0">i monograph i article ibook i editor y title i author i contactauthor y booktitle i name y id yaddress y authorID y firstname y lastname c r r r r j z $ $ $ $ $ $ $ $ W % * c $ $ $ $ $ $ $ $ W r r r r j c $ $ $ $ $ $ $ $ W r r</formula><p>Figure <ref type="figure" target="#fig_3">4</ref> also shows a factorization of the DTD graph. Each factorized vertex, i.e., a vertex of the factorized DTD graph<ref type="foot" target="#foot_1">2</ref> has its own start-vertex. Each vertex in a factorized vertex can be reached by a single path from its start-vertex. The path does not contain star-edges. Some of the leaf vertices of the DTD graph are attributes of the factorized vertex, which contains them. The choice of the attributes is up to the schema designer with a condition that it does not violate the semantic invariants of the schema S (semantic constraints are explained below). Each factorized vertex can contain another auxiliary attribute. Its value denotes element types of the beginnings of the edges that start from the vertices of the given factorized vertex and end in the start-vertices of other factorized vertices. For example, book, monograph or article are the values of the auxiliary attribute for the factorized vertex U. The auxiliary attribute is needed for add/remove upper edge operation (see Xml-only operations) only and can be omitted if the operation is not used. Thereinafter we omit explicit mention of this attribute.</p><p>The factorized DTD graph maps original DTD into intermediate schema S. <ref type="bibr" target="#b17">[12]</ref> contains a formal description of the schema S construction process.</p><p>The mapping of the relational schema to S is represented by a set of views. Each view is a projection of a composition of equi-joins:</p><formula xml:id="formula_1">V i = F i (X 1 , X 2 , .., X N )</formula><p>, where X i is the relation of the schema. In the naive case    </p><formula xml:id="formula_2">V i = π V i (X i ).</formula><formula xml:id="formula_3">V i = X i . 1. Closure: ∀t ∈ V Pe(t), De(t) ⊆ V 2. Rootedness: ∃T ∈ V ∀t ∈ V T ∈ P L(t) ∧ Pe(T ) = ∅ 3. Pointedness: ∃ ⊥ V ∀t ∈ V t ∈ P L(⊥) 4. Immediate predecessors: ∀t ∈ V P (t) = Pe(t) − ∪αx(P L(x) ∩ Pe(t) ∩ (P L(t) − DL(t)) − {x}, Pe(t)) − ∪αx(P L(x)∩Pe(t)∩(P L(t)∩DL(t))−{x}, Pe(t))−∪αx((P L(x)−P (x))∩(P L(t)− DL(t)) ∩ Pe(t), P L(x) ∩ DL(x) − {x}) 5. Predecessors graph: ∀t ∈ V P L(t) = ∪αx(P L(x), P (t)) ∪ {t} 6. Immediate descendants: ∀t ∈ V D(t) = De(t) − ∪αx(DL(x) ∩ De(t) ∩ (DL(t) − P L(t)) − {x}, De(t)) − ∪αx(DL(x)∩De(t)∩(DL(t)∩P L(t))−{x}, De(t))−∪αx((DL(x)−D(x))∩(DL(t)− P L(t)) ∩ De(t), DL(x) ∩ P L(x) − {x}) 7. Descendants graph: ∀t ∈ V DL(t) = ∪αx(DL(x), D(t)) ∪ {t} 8. Interface: ∀t ∈ V I(t) = N (t) ∪ H(t) 9. Nativeness: ∀t ∈ V N (t) = Ne(t) − H(t) 10. Inheritance: ∀t ∈ V H(t) = ∪αx(I(x), P (t))</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Semantic constraints</head><p>The semantic invariants for the evolution of S are defined as a set of axioms similar to the axiom sets used for the type lattices in OO databases in <ref type="bibr" target="#b12">[7,</ref><ref type="bibr" target="#b13">8]</ref>. The axioms are expressed as equations between the evolution model sets. Figure <ref type="figure" target="#fig_6">6</ref> contains the axioms. The principal difference as compared to the evolution model sets used for type lattices is that the absence of cyclic dependencies between sets is not required. Instead, a more complicated lattice over a product of vertices and information about the calculated sets of the model is used. An iterative algorithm ( <ref type="bibr" target="#b21">[16]</ref>) that calculates the evolution model sets on the complicated lattice is guaranteed to stop and return always the same results <ref type="bibr" target="#b17">[12]</ref>.</p><p>The evolution model sets are defined as follows. The hierarchy on the factorized vertices is defined by the sets of immediate predecessors P (t) for each vertex t. Immediate predecessors are vertices that explicitly include vertex t. Essential predecessors P e (t) are explicitly specified by the schema designer sets of vertices. It is required that P (t) ⊆ P e (t). Vertex subhierarchy P L(t) is a sub-graph of a factorized DTD graph, which vertex set consists of vertices, from which t is reachable. Native attributes N (t) are a set of attributes defined in vertex t. Inherited attributes H(t) are the union of attributes of all its predecessors. Essential attributes N e (t) are explicitly specified. It is required that N (t) ⊆ N e (t). Interface I(t) is the union of its inherited and native attributes. The reverse hierarchy is defined by the sets of immediate descendants D(t) for each vertex t. Immediate descendants are vertices that explicitly are included into vertex t. Vertex reverse subhierarchy DL(t) is a sub-graph of a factorized DTD graph, which vertex set consists of vertices reachable from t. Essential descendants D e (t) are explicitly specified sets of vertices. It is required that D(t) ⊆ D e (t).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Elementary operations taxonomy</head><p>In the following sections the operations of the evolution model are discussed. Each operation over the schemas belongs to one of the following classes:</p><p>-Xml-only operations (represented by the arrow marked with "1" on Figure <ref type="figure" target="#fig_1">2</ref>) -the operations that are applied to and affect only XML schema. -S-operations (represented by the arrow marked with "2" on Figure <ref type="figure" target="#fig_1">2</ref>) -the operations over the common part. -Relational-only operations (represented by the arrow marked with "3" on Figure <ref type="figure" target="#fig_1">2</ref>)</p><p>-the operations that are applied to and affect only relational schema.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Xml-only operations definition</head><p>Xml-only operations are divided into two groups: a) affecting DTD graph and b) not affecting DTD graph.</p><p>The operations of type 1a, i.e., those affecting DTD graph, are the following:</p><p>move the vertex up/down; replaces a pair of elements &lt;!ELEM EN T A(B, ..) &gt; and &lt;!ELEM EN T B(C, ..) &gt; from one factorized vertex with a pair &lt;!ELEM EN T A(B, C, ..) &gt; and &lt;!ELEM EN T B(..) &gt; where B is not an attribute<ref type="foot" target="#foot_2">3</ref> , and vice versa (see Figure <ref type="figure" target="#fig_7">7a</ref>); add/remove leaf vertex; replaces an element &lt;!ELEM EN T A(..) &gt; where A is not an attribute with a pair &lt;!ELEM EN T A(B) &gt; and &lt;!ELEM EN T B &gt; where new element B is not an attribute, and vice versa (see Figure <ref type="figure" target="#fig_7">7b</ref>  is not an attribute, and vice versa (see Figure <ref type="figure" target="#fig_7">7d</ref>); mark/unmark edge; replaces a an element &lt;!ELEM EN T A(C * , ..) &gt; with an element &lt;!ELEM EN T A(C, ..) &gt; if exists element &lt;!ELEM EN T B(C * , ..) &gt; from another factorized vertex with an optional star after C, and vice versa (see Figure <ref type="figure" target="#fig_7">7e</ref>).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Compatibility task solution</head><p>In this section it will be shown that it is possible to convert a given DTD that maps to a schema S into any arbitrary DTD that maps into the same schema S by applying a sequence of Xml-only operations. This would mean that the solution provided by the model is a complete solution: the model allows to obtain any XML with the given intermediate schema S, any other changes would necessarily lead to changes in relational schema <ref type="foot" target="#foot_4">5</ref> . A fragment of the DTD graph contained in one factorized vertex is a tree, e.g. name, firstname and lastname and edges between them from the sample DTD (see  Statement 4.1. The move vertex up/down operation allows that any given set of vertices of a factorized vertex with a fixed start-vertex can be organized into any tree.</p><p>The proof can be done by induction by the number of vertices in a factorized vertex. Provided that vertices are organized into some tree we try to evolve to the target tree.</p><p>Figure <ref type="figure" target="#fig_8">8</ref> shows the operations sequence. The full proof of this and subsequent statements of this subsection can be found in <ref type="bibr" target="#b18">[13]</ref>.</p><p>Statement 4.2. The move vertex up/down and add/remove leaf vertex allow to organize vertices of a factorized vertex with the given start-vertex and attribute set into any tree<ref type="foot" target="#foot_5">6</ref> .</p><p>Statement 4.3. Add/remove upper edge, move edge, and mark/unmark edge allow to obtain any set of outgoing edges that connect the vertices of a given factorized vertex with a fixed set of start-vertices.</p><p>The above three statements have the following obvious corollary, which forms the next statement.</p><p>Statement 4.4. The operations of the type 1a enable to transform a given DTD graph to any other DTD graph that maps to the same schema S. Statement 4 implies that, as soon as there is a list of operations of type 1b that allow to transform a DTD having a given DTD graph to any other DTD with the same DTD graph, are available the compatibility task can be completely solved within the model. The following operations compose the necessary operations of the type 1b list:</p><p>inline/de-inline entity; convert leaf tag to attribute and vice versa; simplify/de-simplify regular expression; change processing instruction node; add/remove comment or namespace node.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">S-operations</head><p>There are eight operations defined for the S-model. They are similar to operations used in OO databases evolution model in <ref type="bibr" target="#b13">[8]</ref>. Two additional operations, merge and split vertex, are added; they are not found in OO prototypes. Here these operations are expressed in terms of the schema S only due to the lack of space. An example of their application in the sample is given. More details on S-operations can be found in <ref type="bibr" target="#b17">[12]</ref>.</p><p>AddAttribute. Attribute a (the one being added) of vertex t is included into N e (t). The sets N e , N , H are recalculated for the vertex t and vertices reachable from t. Schema designer (or an external algorithm) may include this attribute into N e sets of some successors of vertex t.</p><p>RemoveAttribute. Attribute a (the one being deleted) of vertex t is excluded from N e (t), the sets N e , N , H are recalculated for the vertex t and vertices reachable from t. Note, if t is in P (s) or a is in N e (s), according to the axiom set, attribute a is included into N (s).</p><p>AddEdge. Let edge (t; s) is added. s is added into P e (t) and t is added into D e (s). Expressions dependent on P e (t) and D e (s) are recalculated. Note, that s is added into P (t) if there is no other path from s to t (same for D(s)).</p><p>RemoveEdge. This operation is complex, it may cause generation of new edges in the schema in order to keep from violating the axiom set. New edges will start in predecessors of the end vertex of a deleted edge and will end in its successors. Provided that we remove edge (t; s), s is deleted from P e (t). All expressions dependent on P e (t) are recalculated. If axioms are violated then the operation is rejected by the system. (Alternatively, the vertex t may be included into root vertex T , the change can be achieved in two stages: adding T into P e (t), RemoveEdge for the edge (s; t), and if s is in P e (t) s is added into the graph. The same may apply to vertex s and the stop vertex of the hierarchy). Analogous operations are performed with D e (s).</p><p>AddVertex. Provided vertex t is added. t is included into hierarchy. The sets P e (t) and D e (s) are to be defined by schema designer (or an external algorithm) to generate incoming edges of t. t is added into P e (s) to satisfy axioms. In the simplest case, P e (t) = T .</p><p>RemoveVertex. It is a complex modification. First, the vertex t is to be removed with the edges starting and ending in it. Second, a number of edges from its predecessors to its successors may be added. Third, attributes of vertex t, that are essential for its successors should migrate properly. The operation is implemented in three stages: applying RemoveAttribute to all attributes of t, applying RemoveEdge to all outgoing edges, and applying RemoveEdge to all incoming edges.</p><p>MergeVertex. Vertices being merged must be connected by an edge. Merged vertex P e , D e and N e sets are unions of P e , D e and N e sets of vertices being merged with exclusion of themselves. In P e sets of reachable and D e set of reaching vertices occurrences of the vertices being merged are replaced with occurrence of the merged one.</p><p>SplitVertex. P e , D e and N e sets of split vertex are separated into two disjoint sets each. In P e and N e sets of reachable vertices occurrences of split vertex are replaced with one or both of the created without violating inclusion of P (t) in P e (t) and In the sample we consider a revision of author address information. First, the authoraddress tag is added through the add leaf vertex Xml-only operation. Next, the move vertex down Xml-only operation is used. Then attributes with postal code, town and local address are added, and the old attribute with address information is removed. Changes in schemas in the process of transformation are shown on Figure <ref type="figure">9</ref>.</p><formula xml:id="formula_4">D(t) in D e (t)</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4">Functionality and richness tasks solution</head><p>The functionality task obviously has a complete solution, which is enforced by the design of the model. That is, since the schema S is expressed in both, relational and XML, terms and only schema S contains semantics, necessarily, all semantics is contained in well defined way in relational schema and can be queried directly through SQL.</p><p>The complete solution for the richness task means that any XML schema satisfying given semantic requirements may be obtained in the model. That enables solutions of schema transformation and other common problems inside the model. Statement 4.5. The operations of the 2nd type allow to transform any given schema S to any other schema S having the same P e , D e and N e sets. It is trivial corollary of completeness of the schema S model. The proof of the latter can be found in <ref type="bibr" target="#b17">[12]</ref>.</p><p>Statement 5 enables us to provide a complete solution for the richness task. Indeed, an arbitrary XML schema complying with a given set of semantic constraints can be obtained from the given one complying with the constraints by consequent application of operations of the 2nd and 1st types. Statement 5 ensures that the schema S of the new XML schema is obtained. The solution of compatibility problem enables to transform the intermediate result into the target XML schema.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.5">Relational-only operations</head><p>The relational-only operations consist of one operation: remove/add duplicate attribute in another relation. It replaces a pair of relations X 1 (A, ..) and X 2 (A, ..) with a pair of relations X 1 (..) (X 1 may be dropped if empty; in the reverse operation X 1 may be created) and X 2 (A, ..) where A is an attribute of one of the factorized vertices, and vice versa. The operation also affects the formulae of the mapping to schema S. Namely, the equi-joins of X 1 and X 2 (if any) used in the definitions of V i receive additional attribute A to the joined attributes set. Thus, the operation changes but does not break the form of the formulae that define the views.</p><p>In the sample we normalize the relations supposing that a town can be derived from a postal code. First, the postal code is duplicated in a new relation U1. Then the town information is moved from the relation U, which represents author information, to U1. Changes in S and relational schema in the process of transformation are shown on Figure <ref type="figure" target="#fig_10">10</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.6">Performance task solution</head><p>The complete solution of the performance task ensures that we are able to perform arbitrary relational schema transformations as far as we do not need to change the XML schema. This task is similar to compatibility task with the schemas exchanging places. The following statement ensures that performance task is completely solved. Proof. Provided we have an initial set of relations we try to evolve this set to a target set of relations. Each relation includes a set of attributes as its header (which is part of its relational type <ref type="bibr" target="#b8">[3]</ref>). When an operation is applied one of the relation headers loses or obtains an attribute (namely, the header of X 1 in the notation of the definition). It is obvious that starting from the original set of relations we can obtain a relations set which relations will have the same headers as the headers of the target set. We will show that in case that the headers sets are identical the relation sets will be identical as well. We apply induction by the number of attributes. Note that the proof will disregard operations -we only show that constraints in the form of view values and relation headers define the values of the relations. If we have one attribute (the same works for none attributes but the case of none attributes can be omitted) there is at least one view with the header that includes all (that is, one) attributes. All relations are necessarily projections of this view and since the view value does not change, the relations have the same values. Now suppose we have N attributes in relations. Consider the selections on a fixed value of Nth attribute of all relations and views. In the formulae that define the views selection commutes <ref type="foot" target="#foot_6">7</ref> with other operations and the formulae may be transformed to make them have the form as required by the statement. The induction proposition can be applied to these selections. Since the selections on every value of the Nth attribute are equal, the original relations are equal (we use the fact that the real attribute domains that are really used are all finite). We have shown that relation headers set determines the relations values, on the other hand, target schema headers set can be obtained by the operations of the 3rd type. That means that the target relations set can be obtained, QED.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion</head><p>We considered evolution model as a way to design XML-relational systems in the environment with rapidly changing requirements. We defined compatibility, functionality, performance, and richness tasks that an XML-relational model should be able to solve. XML-only schema evolution models are not expressive enough to address all these tasks. The tasks need simultaneous consideration of both mutually dependent schemas.</p><p>We have suggested an XML-relational evolution model that allows to perform XMLor relational-only changes. We have shown that it ensures that semantic constraints can be obtained from relational schema, consequently, the model does not require obtaining an original XML document to evaluate an XML query. The model is rich enough to evolve a schema to any given XML schema. Thus, the employed model, contrary to XML-only models, is able to answer the stated requirements.</p><p>Several directions for future research exist. Intermediate schemas of the employed XML-relational model may be enriched with entities that will represent regular expressions and namespaces of the XML schema, or indices of the relational schema. Another</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. General XML evolution model applied to XML stored in relational database.</figDesc><graphic coords="2,236.17,77.90,149.68,105.88" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. The proposed evolution model</figDesc><graphic coords="3,236.17,70.61,134.82,153.88" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig.3. Sample DTD (from<ref type="bibr" target="#b15">[10]</ref>) and XML document sample.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Mapping sample DTD to S.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head></head><label></label><figDesc>Figure 5 represents a fragment of the script that generates a relational schema for the sample DTD in the CREATE</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5.A fragment of the SQL script for the sample for the case V i = X i .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Fig. 6 .</head><label>6</label><figDesc>Fig. 6. Invariants set (axioms)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Fig. 7 .</head><label>7</label><figDesc>Fig. 7. DTD graph operations: a) move the vertex up/down; b) add/remove leaf vertex; c) add/remove upper edge; d) move edge; e) mark/unmark edge.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Fig. 8 .</head><label>8</label><figDesc>Fig. 8. Operations application for the proof of Statement 1: a) one or more move vertex operations; b) Induction proposition is applied (dashed rectangle shows the range of application); c) one or more move vertex operations.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Figure 4 )</head><label>4</label><figDesc>Figure4) form a tree of the factorized vertex U. The move vertex up/down operation changes edges in this tree.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_10"><head>Fig. 10 .</head><label>10</label><figDesc>Fig. 10. Moving town information into a separate relation: a) original relation; b) add duplicate attribute postalCode (with creation of new relation U1); c) add duplicate attribute town; d) remove duplicate attribute town.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_11"><head>Statement 4 . 6 .</head><label>46</label><figDesc>Operations of the 3d type allow to transform a set of relations with the given sets of attributes and views values to any other set of relations with the same set of attributes and views values, if each attribute is used in the definition of at least one view.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>The outline of the model is given on Figure 2. S and S' are original and new states of intermediate layer that represents common</figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>TABLE U (</head><label>U</label><figDesc>id INT NOT NULL, address VARCHAR(50) ); CREATE TABLE N ( id INT NOT NULL, firstname VARCHAR(50), lastname VARCHAR(50) ); CREATE TABLE T ( id INT NOT NULL, title VARCHAR(50) ); CREATE TABLE B ( id INT NOT NULL, booktitle VARCHAR(50), id U INT NOT NULL ); CREATE TABLE A ( id INT NOT NULL, authorId VARCHAR(50), id N INT NOT NULL ); CREATE TABLE M ( id INT NOT NULL, id U INT NOT NULL, id N INT NOT NULL, id T INT NOT NULL, id M INT NOT NULL); ALTER TABLE B ADD CONTRAINT fk U FOREIGN KEY ( id U ) REFERENCES U (id); ...</figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head></head><label></label><figDesc>properties. Updating address information: a) initial fragment; b) add leaf vertex and move vertex down; S and relational schema are not changed; c) add attribute postalCode to U; add attribute town to U; plus two move vertex down to move postalCode and town under authorAddress; both schemas are changed; d) remove address attribute from author.</figDesc><table><row><cell cols="4">create table U(id, address) &lt;element author(id,address,.)&gt;</cell><cell></cell><cell>&lt;element author(id,authorAddress,.)&gt; &lt;element authorAddress(address,.)&gt;</cell></row><row><cell cols="3">gauthor</cell><cell></cell><cell cols="2">gauthor</cell></row><row><cell cols="3">wid waddress</cell><cell cols="3">wid gauthorAddress</cell></row><row><cell>a)</cell><cell></cell><cell></cell><cell>b)</cell><cell cols="2">waddress</cell></row><row><cell cols="5">alter table add(postalCode,town) &lt;element authorAddress(address, postalCode,town,.)&gt;</cell><cell>alter table drop address &lt;element authorAddress(postalCode,town,.)&gt;</cell></row><row><cell></cell><cell cols="2">gauthor</cell><cell></cell><cell></cell><cell>gauthor</cell></row><row><cell cols="3">wid gauthorAddress</cell><cell></cell><cell></cell><cell>wid gauthorAddress</cell></row><row><cell>address c)</cell><cell>w</cell><cell>w postalCode wtown</cell><cell></cell><cell>d)</cell><cell>w</cell></row><row><cell>Fig. 9.</cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">We use DTD as XML document schema description throughout the rest of the paper, though most of the reasoning applies to other schema descriptions as well</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">The same term is used to refer to the fragment of the original graph that includes vertices comprising the factorized vertex and edges between them</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">of a factorized vertex of the model S; the same applies to other uses of "attribute" in the operations definitions</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">Note that semantics are not violated if the auxiliary attribute that was mentioned in Section 3 is present</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4">Consequent changes in relational schema may compensate each other, but the model allows to obtain the same resulting schema without changing relational schema at all.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">Note that add/remove leaf vertex operation alone is not enough because of the presence of attributes</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_6">The proof could avoid using this fact as well as the finiteness of domains, but it would require more space.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>interesting direction of research is to modify the model to allow a larger range of mappings from XML to S-schemas. For example, the model can be enlarged to allow an edge-table approach <ref type="bibr" target="#b9">[4]</ref> to be employed for storing part of XML data.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">U</forename></persName>
		</author>
		<title level="m">INT NOT NULL, postalCode NUMBER</title>
				<meeting><address><addrLine>town VARCHAR</addrLine></address></meeting>
		<imprint/>
	</monogr>
	<note>CREATE TABLE</note>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m">= U b) CREATE TABLE U1(postalCode NUMBER)</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m">INSERT INTO U1 (SELECT postalCode from Vu GROUP BY postalCode</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<author>
			<persName><surname>Vu</surname></persName>
		</author>
		<title level="m">= SELECT id, postalCode, town, localAddress FROM U JOIN U1 ON U.postalCode = U1.postalCode c) ALTER TABLE U1 ADD</title>
				<meeting><address><addrLine>town VARCHAR</addrLine></address></meeting>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m">town = U.town FROM Vu WHERE U1.postalCode = U.postalCode</title>
				<imprint/>
	</monogr>
	<note>UPDATE U1 SET U1</note>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><surname>Vu</surname></persName>
		</author>
		<title level="m">= SELECT id, postalCode, town, localAddress FROM U JOIN U1 ON U.postalCode = U1.postalCode AND U.town = U1.town d) ALTER TABLE</title>
				<imprint/>
		<respStmt>
			<orgName>U DROP town</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">and maintenance of changes on entities and relationships</title>
		<author>
			<persName><forename type="first">L</forename><surname>Vu ; Chien-Tsai</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Entity-Relationship Approach -ER&apos;94, Business Modelling and Re-Engineering, 13th International Conference on the Entity-Relationship Approach</title>
				<meeting><address><addrLine>Manchester, U.K.</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1994">December 13-16, 1994. 1994</date>
			<biblScope unit="volume">881</biblScope>
			<biblScope unit="page" from="132" to="151" />
		</imprint>
	</monogr>
	<note>= SELECT id, postalCode, town, localAddress FROM U JOIN U1 ON U.postalCode = U1.postalCode References</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Axiomatization of the evolution of xml database schema</title>
		<author>
			<persName><forename type="first">S</forename><surname>Coox</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Programming</title>
		<imprint>
			<biblScope unit="volume">29</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="140" to="146" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">J</forename><surname>Date</surname></persName>
		</author>
		<title level="m">Temporal data and relational model</title>
				<imprint>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">A performance evaluation of alternative mapping schemes for storing xml data in a relational database</title>
		<author>
			<persName><forename type="first">D</forename><surname>Florescu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kossman</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page">3684</biblScope>
		</imprint>
	</monogr>
	<note type="report_type">technical report</note>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>Hong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kramer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">A</forename><surname>Rundensteiner</surname></persName>
		</author>
		<ptr target="http://www.citeseer.ist.psu.edu/su02xem.html" />
		<title level="m">Xem: Xml evolution management</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<author>
			<persName><forename type="first">R</forename><surname>Krishnamurthy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Kaushik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Naughton</surname></persName>
		</author>
		<ptr target="http://www.vldb04.org/protected/eProceed-ings/contents/pdf/RS4P3.PDF" />
		<title level="m">Efficient xml-to-sql query translation: Where to add the intelligence</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Tigukat: a uniform behavioral objectbase management system</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">J</forename><surname>Peters</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">T</forename><surname>Ozsu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The VLDB Journal</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="445" to="492" />
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">An axiomatic model of dynamic schema evolution in objectbase systems</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">J</forename><surname>Peters</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">T</forename><surname>Ozsu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Database Systems</title>
		<imprint>
			<biblScope unit="volume">22</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="75" to="114" />
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Extending and inferring functional dependencies in schema transformation</title>
		<author>
			<persName><forename type="first">H</forename><surname>Qi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">W</forename><surname>Ling</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">CIKM &apos;04: Proceedings of the Thirteenth ACM conference on Information and knowledge management</title>
				<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="12" to="21" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Relational databases for querying xml documents: Limitations and opportunities</title>
		<author>
			<persName><forename type="first">J</forename><surname>Shanmugasundaram</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. VLDB Edinburgh</title>
				<meeting>VLDB Edinburgh<address><addrLine>Scotland</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page" from="302" to="314" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">A general technique for querying xml documents using a relational database system</title>
		<author>
			<persName><forename type="first">J</forename><surname>Shanmugasundaram</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SIGMOD Record</title>
		<imprint>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="20" to="26" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Evolution of schema of xml-documents stored in a relational database</title>
		<author>
			<persName><forename type="first">A</forename><surname>Simanovsky</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">proceedings of 6th Baltic DBIS Conf</title>
				<meeting>6th Baltic DBIS Conf</meeting>
		<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="192" to="204" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Simultaneous evolution of mutually dependent xml and relational schemas</title>
		<author>
			<persName><forename type="first">A</forename><surname>Simanovsky</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. SYRCoDIS St</title>
				<meeting>SYRCoDIS St<address><addrLine>Petersburg, Russia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">Storing and querying ordered XML using a relational database system</title>
		<author>
			<persName><forename type="first">I</forename><surname>Tatarinov</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Mapping xml documents to relations in the presence of functional dependencies</title>
		<author>
			<persName><forename type="first">Q</forename><surname>Wang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Software</title>
		<imprint>
			<biblScope unit="issue">7</biblScope>
			<biblScope unit="page" from="1275" to="1281" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Formalization of graph search algorithms and its applications</title>
		<author>
			<persName><forename type="first">M</forename><surname>Yamamoto</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">proceedings of Theorem Proving in Higher Order Logics</title>
				<meeting>Theorem Proving in Higher Order Logics</meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="1998">1998</date>
			<biblScope unit="volume">1479</biblScope>
			<biblScope unit="page" from="479" to="496" />
		</imprint>
	</monogr>
	<note>TPHOLs&apos;98)</note>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Xrel: a path-based approach to storage and retrieval of xml documents using relational databases</title>
		<author>
			<persName><forename type="first">M</forename><surname>Yoshikawa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Amagasa</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Internet Technology</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="110" to="141" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
