Abstract
Database-backed applications are ubiquitous. They have common requirements for data access, including a bidirectional requirement that the application and database must have schemas and instances that are synchronized with respect to the mapping between them. That synchronization must hold under both data updates (when an application is used) and schema evolution (when an application is versioned). The application developer treats the collection of structures and constraints on application data — collectively called a virtual database — as indistinguishable from a persistent database. To have such indistinguishability, that virtual database must be mapped to a persistent database by some means. Most application developers resort to constructing such a mapping from custom-built middleware because available solutions are unable to embody all of the necessary capabilities. This paper returns to first principles of database application development and virtual databases. It introduces a tool called a channel, comprised of incremental atomic transformations with known and provable bidirectional properties, that supports the implementation of virtual databases. It uses channels to illustrate how to provide a singular mapping solution that meets all of the outlined requirements for an example application.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ambler, S.W., Sadalage, P.J.: Refactoring Databases. Addison-Wesley Publisher (2006)
Arenas, M., Barceló, P., Libkin, L., Murlak, F.: Relational and XML Data Exchange. Morgan and Claypool Publishers (2010)
Arenas, M., Peréz, J., Riveros, C.: The recovery of a schema mapping: bringing exchanged data back. In: PODS 2008, pp. 13–22 (2008)
Bancilhon, F., Spyratos, N.: Update Semantics of Relational Views. ACM Transactions on Database Systems 6(4), 557–575 (1981)
Banerjee, J., Kim, W., Kim, H., Korth, H.F.: Semantics and Implementation of Schema Evolution in Object-Oriented Databases. In: SIGMOD 1987, pp. 311–322 (1987)
Bernstein, P.A., Chiu, D.-M.W.: Using Semi-Joins to Solve Relational Queries. J. ACM 28(1), 25–40 (1981)
Blakeley, J.A., Muralidhar, S., Nori, A.K.: The ADO.NET Entity Framework: Making the Conceptual Level Real. In: Embley, D.W., Olivé, A., Ram, S. (eds.) ER 2006. LNCS, vol. 4215, pp. 552–565. Springer, Heidelberg (2006)
Bohannon, A., Pierce, B.C., Vaughan, J.A.: Relational lenses: a language for updatable views. In: PODS 2006, pp. 338–347 (2006)
Curino, C., Moon, H., Zaniolo, C.: Graceful Database Schema Evolution: the PRISM Workbench. PVLDB 1(1), 761–772 (2008)
Dayal, U., Bernstein, P.: On the Correct Translation of Update Operations on Relational Views. ACM Transactions on Database Systems 8(3), 381–416 (1982)
Diskin, Z., Xiong, Y., Czarnecki, K.: From State- to Delta-Based Bidirectional Model Transformations. In: Tratt, L., Gogolla, M. (eds.) ICMT 2010. LNCS, vol. 6142, pp. 61–76. Springer, Heidelberg (2010)
Domínguez, E., et al.: MeDEA: A database evolution architecture with traceability. Data and Knowledge Engineering 65(3), 419–441 (2008)
Embley, D., Thalheim, B.: Handbook of Conceptual Modeling. Springer (2011)
Fagin, R., et al.: Clio: Schema Mapping Creation and Data Exchange. In: Borgida, A.T., Chaudhri, V.K., Giorgini, P., Yu, E.S., et al. (eds.) Conceptual Modeling: Foundations and Applications. LNCS, vol. 5600, pp. 198–236. Springer, Heidelberg (2009)
Garcia-Molina, H., Ullman, J.D., Widom, J.: Database Systems - the complete book, 2nd edn. Pearson Education (2009)
Gottlob, G., Paolini, P., Zicari, R.: Properties and update semantics of consistent views. ACM Transactions on Database Systems 13(4), 486–524 (1988)
Gupta, A., Mumick, I.S.: Maintenance of Materialized Views: Problems, Techniques, and Applications. IEEE Data Engineering Bulletin 18(2), 3–18 (1995)
Hainaut, J.-L.: The Transformational Approach to Database Engineering. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, pp. 95–143. Springer, Heidelberg (2006)
Hernández, M., Papotti, P., Tan, W.: Data Exchange with Data-Metadata Translations. PVLDB 1(1), 260–273 (2008)
Hibernate, http://www.hibernate.org/
Hofmann, M., Pierce, B.C., Wagner, D.: Edit lenses. In: POPL 2012 (2012)
Keller, A.M.: Algorithms for Translating View Updates to Database Updates for Views Involving Selections, Projections, and Joins. In: PODS, pp. 154–163 (1985)
Lakshmanan, L.V.S., Sadri, F., Subramanian, S.N.: On efficiently implementing SchemaSQL on a SQL database system. In: VLDB 1999, pp. 471–482 (1999)
Lomet, D.B., et al.: Immortal DB: transaction time support for SQL server. In: SIGMOD 2005, pp. 939–941 (2005)
McBrien, P., Poulovassilis, A.: Data Integration by Bi-Directional Schema Transformation Rules. In: ICDE 2003, pp. 227–238 (2003)
McBrien, P., Poulovassilis, A.: Schema Evolution in Heterogeneous Database Architectures, A Schema Transformation Approach. In: Pidduck, A.B., Mylopoulos, J., Woo, C.C., Ozsu, M.T. (eds.) CAiSE 2002. LNCS, vol. 2348, pp. 484–499. Springer, Heidelberg (2002)
Meijer, E., Bierman, G.M.: A co-relational model of data for large shared data banks. Commun. ACM 54(4), 49–58 (2011)
Melnik, S., Adya, A., Bernstein, P.A.: Compiling Mappings to Bridge Applications and Databases. ACM TODS 33(4), 1–50 (2008)
Microsoft SQL Server (2005), http://www.microsoft.com/sql/default.mspx
Oliveira, J.N.: Transforming Data by Calculation. In: Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2007. LNCS, vol. 5235, pp. 134–195. Springer, Heidelberg (2008)
Oracle TopLink, http://www.oracle.com/technology/products/ias/toplink/
Papastefanatos, G., et al.: What-If Analysis for Data Warehouse Evolution. In: Song, I.-Y., Eder, J., Nguyen, T.M. (eds.) DaWaK 2007. LNCS, vol. 4654, pp. 23–33. Springer, Heidelberg (2007)
Rahm, E., Bernstein, P.A.: An Online Bibliography on Schema Evolution. SIGMOD Record 35(4), 30–31 (2006)
Ruby on Rails, http://rubyonrails.org/
Snodgrass, R.T.: Developing Time-Oriented Database Applications in SQL. Morgan Kaufmann Publishers Inc., San Francisco (2000)
Terwilliger, J.F.: Graphical User Interfaces as Updatable Views. PhD thesis, Portland State University (2009)
Terwilliger, J.F., Bernstein, P.A., Unnithan, A.: Automated Co-evolution of Conceptual Models, Physical Databases, and Mappings. In: Parsons, J., Saeki, M., Shoval, P., Woo, C., Wand, Y. (eds.) ER 2010. LNCS, vol. 6412, pp. 146–159. Springer, Heidelberg (2010)
Terwilliger, J.F., Bernstein, P.A., Unnithan, A.: Worry-Free Database Upgrades: Automated Model-Driven Evolution of Schemas and Complex Mappings. In: SIGMOD 2010, pp. 1191–1194 (2010)
Terwilliger, J.F., Delcambre, L.M.L., Logan, J.: Querying Through a User Interface. Journal of Data and Knowledge Engineering 63(3), 774–794 (2007)
Terwilliger, J.F., Delcambre, L.M.L., Logan, J., Maier, D., Archer, D.W., Steinhauer, J., Britell, S.: Enabling revisitation of fine-grained clinical information. In: IHI 2010, pp. 420–424 (2010)
Terwilliger, J.F., Delcambre, L.M.L., Maier, D., Steinhauer, J., Britell, S.: Updatable and Evolvable Transforms for Virtual Databases. PVLDB 3(1), 309–319 (2010)
Vassiliadis, P., et al.: A generic and customizable framework for the design of ETL scenarios. Information Systems 30(7), 492–525 (2005)
Velegrakis, Y., Miller, R.J., Popa, L.: Preserving Mapping Consistency Under Schema Changes. VLDB Journal 13(3), 274–293 (2004)
Wei, H., Elmasri, R.: PMTV: A Schema Versioning Approach for Bi-Temporal Databases. In: TIME 2000, pp. 143–151 (2000)
Wyss, C.M., Robertson, E.L.: A Formal Characterization of PIVOT/UNPIVOT. In: CIKM 2005, pp. 602–608 (2005)
Wyss, C.M., Wyss, F.I.: Extending relational query optimization to dynamic schemas for information integration in multidatabases. In: SIGMOD 2007, pp. 473–484 (2007)
Yu, C., Popa, L.: Semantic Adaptation of Schema Mappings When Schemas Evolve. In: VLDB, pp. 1006–1017 (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Terwilliger, J.F. (2013). Bidirectional by Necessity: Data Persistence and Adaptability for Evolving Application Development. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering IV. GTTSE 2011. Lecture Notes in Computer Science, vol 7680. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35992-7_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-35992-7_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35991-0
Online ISBN: 978-3-642-35992-7
eBook Packages: Computer ScienceComputer Science (R0)