JUCS - Journal of Universal Computer Science 12(7): 938-957, doi: 10.3217/jucs-012-07-0938
Type-safe Versioned Object Query Language
expand article infoRodrigo Machado, Álvaro Freitas Moreira, Renata de Matos Galante§, Mirella Moura Moro|
‡ Universidade Federal do Rio Grande do Sul, Porto Alegre, Brazil§ Universidade Federal do Rio Grande do Sul, Brazil| University of California Riverside (UCR), United States of America
Open Access
The concept of versioning was initially proposed for controlling design evolution on computer aided design and software engineering. On the context of database systems, versioning is applied for managing the evolution of different elements of the data. Modern database systems provide not only powerful data models but also complex query languages that have evolved to include several features from complex programming languages. While most related work focuses on different aspects of the concepts, designing models, and processing of versions efficiently, there is yet to be a formal definition of a query language for database systems with versions control. In this work we propose a query language, named Versioned Object Query Language (VOQL), that extends ODMG Object Query Language (OQL) with new features to recover object versions. We provide a precise definition of VOQL through a type system and we prove it safe in relation to a small-step operational semantics. Finally, we validate the proposed definition by implementing an interpreter for VOQL.
operational semantics, object-oriented database management systems, type systems, query languages