Supporting Structural Evolution of Data in Web-Based Systems via Schema Versioning in the tXSchema Framework

Supporting Structural Evolution of Data in Web-Based Systems via Schema Versioning in the tXSchema Framework

Zouhaier Brahmia (University of Sfax, Tunisia), Fabio Grandi (University of Bologna, Italy), Barbara Oliboni (University of Verona, Italy) and Rafik Bouaziz (University of Sfax, Tunisia)
DOI: 10.4018/978-1-5225-5384-7.ch013


τXSchema is a framework for creating and validating temporal XML documents, while using a temporal schema that consists of three components: a conventional XML schema document annotated with a set of temporal logical and physical annotations. Each one of these components can evolve over time to reflect changes in the real world. In addition, schema versioning has been long advocated to be the most efficient way to keep track of both data and schema evolution. Hence, in this chapter the authors complete τXSchema, which is predisposed from the origin to support schema versioning, by defining the operations that are necessary to exploit such a feature and make schema versioning functionalities available to end users. Precisely, the authors' approach provides a complete and sound set of change primitives and a set of high-level change operations, for the maintenance of each component of a τXSchema schema, and defines their operational semantics. Furthermore, they propose a new technique for schema versioning in τXSchema, allowing a complete, integrated, and safe management of schema changes.
Chapter Preview


Nowadays several Web-based applications using XML (W3C, 2008) repositories (e.g., banking, accounting, personnel management, airline reservations, weather monitoring and forecasting, e-government and e-commerce) are temporal in nature (Grandi, 2015) and require a full history of data and schema changes, which must be managed efficiently, consistently, and in a transparent way with regard to the end user. Notice that for generic temporal databases (Dyreson & Grandi, 2009), XML provides an excellent support for temporally grouped data models (Wang & Zaniolo, 2008), which have long been considered as the most natural and effective representations of temporal information (Clifford, Croker, Grandi, & Tuzhilin, 1995). Besides, schema versioning has long been advocated to be the more appropriate solution to support a complete data and schema history in databases (De Castro, Grandi, & Scalas, 1997; Grandi, 2002).

In a temporal setting, XML data can evolve along transaction-time and/or valid-time; thus, they can have a transaction-time, a valid-time or a bitemporal format. When XML data of different temporal formats can coexist in the same XML repository, we talk about a multitemporal XML repository.

Whereas schema versioning is required by several applications using multitemporal XML repositories, both existing XML DBMS and XML tools do not provide support for that feature until now (Colazzo, Guerrini, Mesiti, Oliboni, & Waller, 2010; Brahmia, Grandi, Oliboni, & Bouaziz, 2015; Brahmia, Grandi, Oliboni, & Bouaziz, 2017b). Therefore, XML Schema designers and developers have to employ ad hoc methods to manage schema versioning.

In order to propose a general approach for schema versioning in multitemporal XML repositories, the possible choices were as follows: (i) having different levels of schema specifications, that is a level for the data structure and one or more levels for temporal dimensions, and (ii) pushing the possible multitemporality one level higher. In this context, “Which is the right way to consider XML documents sharing the same data structure and having different time dimensions?” could be a good question. Hence, we dealt with the problem to define the different levels we need, and to define the mappings between such levels.

After surveying the state of the art of (multi-)temporal XML data models supporting schema versioning, we concluded that the resulting overall framework could be not very dissimilar from the one introduced by Snodgrass and colleagues in (Currim, Currim, Dyreson, & Snodgrass, 2004; Dyreson, Snodgrass, Currim, Currim, & Joshi, 2006; Snodgrass, Dyreson, Currim, Currim, & Joshi, 2008), named τXSchema. This latter is an infrastructure, composed of an XML schema language and a suite of tools, for constructing and validating temporal XML documents under schema versioning. The τXSchema language extends the XML Schema language (W3C, 2004) to explicitly support time-varying XML documents. τXSchema has a three-level architecture for specifying a schema for time-varying data. The first level is for the conventional schema which is a standard XML Schema document that describes the structure of a standard XML document, without any temporal aspect. The second level is for the logical annotations of the conventional schema, which identify which elements can vary over time. The third level is for the physical annotations of the conventional schema, which describe where timestamps should be placed and how the time-varying aspects should be represented.

Finally, we were in front of two options: either extending the τXSchema approach or proposing a completely different approach. We have chosen the first one, for the reasons which follow:

Key Terms in this Chapter

Schema Version: A complete database schema as created by the initial design or by the application of schema changes to an existing schema.

Schema Changes: Operations performed on a (populated) database schema, in order to adapt it to new application requirements.

Schema Change Semantics: The effects of a schema change at schema level.

Schema Change Propagation: The effects of a schema change at instance level, involving suitable conversions necessary to adapt extant data to the new schema.

Schema Versioning: A schema change modality that provides for the maintenance of previous schema versions, such that extant data are accessible through any of the supported schema versions.

Database Schema: The formal structure of the database, described by means of a data definition language.

Temporal Schema Versioning: A schema versioning technique in which different schema versions are indexed by timestamps.

Complete Chapter List

Search this Book: