Abstract
Whatever programming paradigm for data processing we choose, data has the tendency to live on the other side or to eventually end up there. The major paradigms for data processing are Cobol, object, relational and XML; each paradigm offers many facets and many versions; each paradigm provides specific forms of data models (object models, relational schemas, XML schemas, etc.). Each data-processing application depends on a horde of interrelated data models and artifacts that are derived from data models (such as data-access layers). Such conglomerations of data models are challenging due to paradigmatic impedance mismatches, performance requirements, loose-coupling requirements, and others. This ubiquitous problem calls for a good understanding of techniques for mappings between data models, actual data, and operations on data. This tutorial lists and discusses mapping scenarios, mapping techniques, impedance mismatches and research challenges regarding mappings.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Achten, P., van Eekelen, M.C.J.D., Plasmeijer, M.J.: Compositional Model-Views with Generic Graphical User Interfaces. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 39–55. Springer, Heidelberg (2004)
Achten, P., van Eekelen, M.C.J.D., Plasmeijer, M.J.: Generic Graphical User Interfaces. In: Trinder, P., Michaelson, G.J., Peña, R. (eds.) IFL 2003. LNCS, vol. 3145, pp. 152–167. Springer, Heidelberg (2004)
Aho, A., Sethi, R., Ullman, J.: Compilers. In: Principles, Techniques and Tools. Addison-Wesley, Reading (1986)
Aiken, P., Muntz, A.H., Richards, R.: Dod legacy systems: Reverse engineering data requirements. Communications of the ACM 37(5), 26–41 (1994)
Aitken, W., Dickens, B., Kwiatkowski, P., de Moor, O., Richter, D., Simonyi, C.: Transformation in intentional programming. In: Devanbu, P., Poulin, J. (eds.) Proceedings, Fifth International Conference on Software Reuse, pp. 114–123. IEEE Computer Society Press, Los Alamitos (1998)
Alves, T.L., Silva, P.F., Visser, J., Oliveira, J.N.: Strategic Term Rewriting and Its Application to a VDMSL to SQL Conversion. In: Fitzgerald, J.S., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 399–414. Springer, Heidelberg (2005)
Ambler, S.W.: The Object-Relational Impedance Mismatch (2002–2005) Amysoft Inc., Online article: http://www.agiledata.org/essays/impedanceMismatch.html
ANSI. Information Technology — Programming languages, their environments and system software interfaces — Native COBOL Syntax for XML Support (February 2005), J4/05-0049, WG4n0229, ISO/IEC JTC 1/SC 22/WG4, ISO/IEC TR 24716:200x(E)
Aycock, J.: Extending Old Compiler Tools with Meta-Tools. In: Arabnia, H.R., Reza, H. (eds.) Proceedings of the International Conference on Software Engineering Research and Practice, SERP 2004, Las Vegas, Nevada, USA, June 21-24, vol. 2, pp. 841–845. CSREA Press (2004)
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.-J., Korth, H.F.: Semantics and implementation of schema evolution in object-oriented databases. In: SIGMOD 1987: Proceedings of the 1987 ACM SIGMOD International conference on management of data, pp. 311–322. ACM Press, New York (1987)
Bierman, G.M., Meijer, E., Schulte, W.: The Essence of Data Access in Cω. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 287–311. Springer, Heidelberg (2005)
Bohannon, A., Vaughan, J.A., Pierce, B.C.: Relational Lenses: A Language for Updateable Views. In: Principles of Database Systems (PODS) (2006), Extended version available as University of Pennsylvania technical report MS-CIS-05-27
Boyapati, C., Liskov, B., Shrira, L., Moh, C.-H., Richman, S.: Lazy modular upgrades in persistent object stores. In: OOPSLA 2003: Proceedings of the 18th annual ACM SIGPLAN conference on object-oriented programing, systems, languages, and applications, pp. 403–417. ACM Press, New York (2003)
Brookes, A.: XML data binding. Dr. Dobb’s Journal of Software Tools 28(3), 26, 28, 30, 32, 35–36 (March 2003)
Burton, F., Cameron, R.: Pattern Matching with Abstract Data Types. Journal of Functional Programming 3(2), 171–190 (1993)
Clarke, D., Drossopoulou, S.: Ownership, encapsulation and the disjointness of type and effect. In: OOPSLA 2002: Proceedings of the 17th ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications, pp. 292–310. ACM Press, New York (2002)
Clarke, D.G., Potter, J.M., Noble, J.: Ownership types for flexible alias protection. In: OOPSLA 1998: Proceedings of the 13th ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications, pp. 48–64. ACM Press, New York (1998)
Codd, E.F.: A Relational Model of Data for Large Shared Data Banks. Communications of the ACM 13(6), 377–387 (1970); Also published in/as: Stonebraker, M.: Readings in Database Systems, pp. 5–15. Morgan-Kaufmann, San Francisco (1988)
Cytron, R., Ferrante, J., Rosen, B., Wegman, M., Zadeck, F.: Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems 13(4), 451–490 (1991)
Date, C.J.: A formal definition of the relational model. SIGMOD Rec. 13(1), 18–29 (1982)
van Deursen, A., Klint, P., Tip, F.: Origin Tracking. Journal of Symbolic Computation 15, 523–545 (1993)
Eisenecker, U., Czarnecki, K.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)
Ellis, C., Gibbs, S., Rein, G.: Groupware: some issues and experiences. Communications of the ACM 34(1), 39–58 (1991)
Fagan, M.: Soft typing: an approach to type checking for dynamically typed languages. PhD thesis, Rice University (1991)
Favre, J.-M.: Meta-models and Models Co-Evolution in the 3D Software Space. In: Proceedings of International Workshop on Evolution of Large-scale Industrial Software Applications (ELISA 2003) (2003)
Fernandez, M., Kadiyska, Y., Suciu, D., Morishima, A., Tan, W.-C.: Silkroute: A framework for publishing relational data in xml. ACM Transactions on Database Systems 27(4), 438–493 (2002)
Ferrante, J., Ottenstein, K., Warren, J.: The Program Dependence Graph and Its Use in Optimization. ACM Transactions on Programming Languages and Systems 9(3), 319–349 (1987)
Findler, R.B., Felleisen, M.: Contracts for higher-order functions. In: ICFP 2002: Proceedings of the seventh ACM SIGPLAN international conference on Functional programming, pp. 48–59. ACM Press, New York (2002)
Fitzgerald, J., Larsen, P.G., Mukherjee, P., Plat, N., Verhoef, M.: Validated Designs for Object-Oriented Systems. Springer, Heidelberg (2005)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)
Funderburk, J.E., Malaika, S., Reinwald, B.: XML programming with SQL/XML and XQuery. IBM Systems Journal 41(4), 642–665 (2002)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)
Gottlob, G., Paolini, P., Zicari, R.: Properties and update semantics of consistent views. ACM Transactions on Database Systems 13(4), 486–524 (1988)
Gray, R., Heuring, V., Levi, S., Sloane, A., Waite, W.: Eli: A complete, flexible compiler construction system. Communications of the ACM 35(2), 121–130 (1992)
Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: A language for bi-directional tree transformations. Technical Report MS-CIS-03-08, University of Pennsylvania (2003) (revised, April 2004)
Hainaut, J.-L., Tonneau, C., Joris, M., Chandelon, M.: Schema Transformation Techniques for Database Reverse Engineering. In: Proceedings, 12th Int. Conf. on ER Approach, Arlington-Dallas, E/R Institute (1993)
Hannemann, J., Kiczales, G.: Design pattern implementation in Java and AspectJ. In: Norris, C., Fenwick, J.J.B. (eds.) Proceedings of the 17th ACM conference on object-oriented programming, systems, languages, and applications, OOPSLA 2002. ACM SIGPLAN Notices, vol. 37(11), pp. 161–173. ACM Press, New York (2002)
Henrad, J., Hick, J.-M., Thiran, P., Hainaut, J.-L.: Strategies for Data Reengineering. In: Proceedings, Working Conference on Reverse Engineering (WCRE 2002), pp. 211–220. IEEE Computer Society Press, Los Alamitos (2002)
Herranz, A., Nogueira, P.: More Than Parsing. In: Fraguas, F.J.L. (ed.) Spanish V Conference on Programming and Languages (PROLE 2005), Thomson-Paraninfo, September 14–16, pp. 193–202 (2005)
Hirschfeld, R., Lämmel, R.: Reflective Designs. IEE Proceedings Software 152(1), 38–51 (2005), Special Issue on Reusable Software Libraries
Hoare, C.A.R.: Proof of Correctness of Data Representations. Acta Informatic 1, 271–281 (1972)
Hogshead Davis, K., Aiken, P.: Data Reverse Engineering: A Historical Survey. In: Working Conference on Reverse Engineering, WCRE 2000, pp. 70–78. IEEE Computer Society Press, Los Alamitos (2000)
Holt, R., Winter, A., Schürr, A.: GXL: Toward a Standard Exchange Format. In: Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE 2000), pp. 162–171. IEEE Computer Society Press, Los Alamitos (2000)
Hu, Z., Mu, S.-C., Takeichi, M.: A programmable editor for developing structured documents based on bidirectional transformations. In: Proceedings of ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pp. 178–189. ACM Press, New York (2004)
Huzar, Z., Kuzniarz, L., Reggio, G., Sourrouille, J., Staron, M.: Consistency Problems in UML-based Software Development II. In: Workshop proceedings; Research Report 2003:06 (2003)
ISO. ISO/IEC 14977:1996(E), Information technology — Syntactic metalanguage — Extended BNF (1996) (International Organization for Standardization)
ISO/IEC. Information technology — Programming languages — COBOL (2002); Reference number ISO/IEC 1989:2002(E)
Johnson, S.: YACC - Yet Another Compiler-Compiler. Technical Report Computer Science No. 32, Bell Laboratories, Murray Hill, New Jersey (1975)
de Jonge, M., Visser, J.: Grammars as Contracts. In: Butler, G., Jarzabek, S. (eds.) GCSE 2000. LNCS, vol. 2177, pp. 85–99. Springer, Heidelberg (2001)
Kadhim, B., Waite, W.: Maptool—supporting modular syntax development. In: Gyimóthy, T. (ed.) CC 1996. LNCS, vol. 1060, pp. 268–280. Springer, Heidelberg (1996)
Kiczales, G.: The Fun has Just Begun. In: AOSD 2003 Keynote Address (2003), available from: http://www.cs.ubc.ca/~gregor
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Klint, P., Lämmel, R., Verhoef, C.: Toward an engineering discipline for grammarware. ACM Transactions on Software Engineering and Methodology 14(3), 331–380 (2005)
Knuth, D.: Semantics of context-free languages. Mathematical Systems Theory 2, 127–145 (1968); Corrections 5, 95–96 (1971)
Kort, J., Lämmel, R.: Parse-Tree Annotations Meet Re-Engineering Concerns. In: Proceedings, Source Code Analysis and Manipulation (SCAM 2003), Amsterdam, pp. 161–172. IEEE Computer Society Press, Los Alamitos (2003)
Kort, J., Lämmel, R., Verhoef, C.: The Grammar Deployment Kit. In: van den Brand, M., Lämmel, R. (eds.) Proceedings, Language Descriptions, Tools, and Applications (LDTA 2002). ENTCS, vol. 65, p. 7. Elsevier Science, Amsterdam (2002)
Koschke, R., Girard, J.-F.: An intermediate representation for reverse engineering analyses. In: Proceedings, Working Conference on Reverse Engineering (WCRE 1998), pp. 241–250. IEEE Computer Society Press, Los Alamitos (1998)
Krasner, G.E., Pope, S.T.: A cookbook for using the model-view-controller user interface paradigm in Smalltalk-80. Journal of Object-Oriented Programming 1(3), 26–49 (1988)
Kuzniarz, L., Reggio, G., Sourrouille, J., Huzar, Z.: Consistency Problems in UML-based Software Development. In: Workshop proceedings; Research Report 2002:06 (2002)
Lämmel, R.: Coupled Software Transformations (extended Abstract). In: Proceedings of the First International Workshop on Software Evolution Transformations, p. 5 (November 2004), Online proceedings available at: http://banff.cs.queensu.ca/set2004/
Lämmel, R., Peyton Jones, S.: Scrap your boilerplate: a practical design pattern for generic programming. ACM SIGPLAN Notices 38(3), 26–37 (2003); Proceedings of the ACM SIGPLAN Workshop on Types in Language Design and Implementation, TLDI 2003 (2003)
Lämmel, R., Peyton Jones, S.: Scrap more boilerplate: reflection, zips, and generalised casts. In: ACM SIGPLAN International Conference on Functional Programming (ICFP 2004), Snowbird, Utah, pp. 244–255. ACM Press, New York (2004)
Lämmel, R., Wachsmuth, G.: Transformation of SDF syntax definitions in the ASF+SDF Meta-Environment. In: van den Brand, M., Parigot, D. (eds.) Proceedings, Language Descriptions, Tools and Applications (LDTA 2001). ENTCS, vol. 44. Elsevier Science, Amsterdam (2001)
Lerner, B.S.: A model for compound type changes encountered in schema evolution. ACM Transactions on Database Systems 25(1), 83–127 (2000)
Liskov, B.: Keynote address - data abstraction and hierarchy. In: OOPSLA 1987: Addendum to the proceedings on object-oriented programming systems, languages and applications (Addendum), pp. 17–34. ACM Press, New York (1987)
Liu, C.-T., Chrysanthis, P.K., Chang, S.-K.: Database Schema Evolution through the Specification and Maintenance of Changes on Entities and Relationships. In: Loucopoulos, P. (ed.) ER 1994. LNCS, vol. 881, pp. 132–151. Springer, Heidelberg (1994)
Lohmann, W., Riedewald, G., Stoy, M.: Semantics-preserving migration of semantic rules after left recursion removal in attribute grammars. In: Proceedings of 4th Workshop on Language Descriptions, Tools and Applications (LDTA 2004). ENTCS, vol. 110, pp. 133–148. Elsevier Science, Amsterdam (2004)
Mamas, E., Kontogiannis, K.: Towards portable source code representations using XML. In: Proceedings, Working Conference on Reverse Engineering (WCRE 2000), pp. 172–182. IEEE Computer Society Press, Los Alamitos (2000)
McLaughlin, B.: Java and XML data binding. In: Nutshell handbook. O’Reilly & Associates Inc., Sebastopol (2002)
Meijer, E., Schulte, W.: Unifying tables, objects and documents. In: Proceedings of Declarative Programming in the Context of OO Languages (DP-COOL) (September 2003)
Meijer, E., Schulte, W., Bierman, G.: Programming with circles, triangles and rectangles. In: XML Conference and Exposition (December 2003)
Microsoft Corp., http://msdn.microsoft.com/netframework/future/linq/
Morgan, C.: Programming from Specifications. Prentice Hall International, Englewood Cliffs (1990)
Noble, J.: Basic relationship patterns. In: Second European Conference on Pattern Languages of Programming (1997); Siemens Technical Report
Noble, J., Grundy, J.: Explicit Relationships in Object Oriented Development. In: Mingins, C., Duke, R., Meyer, B. (eds.) Proceedings of TOOLS 18: Technology of Object-Oriented Languages and Systems Conference, pp. 211–225. Prentice Hall, Englewood Cliffs (1995)
Novak Jr., G.S.: Creation of views for reuse of software with different data representations. IEEE Transactions on Software Engineering 21(12), 993–1005 (1995)
Oliveira, J.: Software Reification using the SETS Calculus. In: Proceedings of the BCS FACS 5th Refinement Workshop, Theory and Practice of Formal Software Development, London, UK, pp. 140–171. Springer, Heidelberg (1992)
Oliveira, J.: Calculate databases with ’simplicity’ (September 2004), Presentation at the IFIP WG 2.1 #59 Meeting, Nottingham, UK (2004)
Opdyke, W.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Paakki, J.: Attribute Grammar Paradigms — A High-Level Methodology in Language Implementation. ACM Computing Surveys 27(2), 196–255 (1995)
Park, J., Ram, S.: Information systems interoperability: What lies beneath? ACM Transactions on Information Systems 22(4), 595–632 (2004)
Purtilo, J., Callahan, J.: Parse tree annotations. Communications of the ACM 32(12), 1467–1477 (1989)
Sattler, K.-U., Geist, I., Schallehn, E.: Concept-based querying in mediator systems. The VLDB Journal 14(1), 97–111 (2005)
Selic, B.: The Pragmatics of Model-Driven Development. IEEE Software, 19–25 (September/October 2003) (Special Issue on Model-Driven Development)
Shanmugasundaram, J., Shekita, E.J., Barr, R., Carey, M.J., Lindsay, B.G., Pirahesh, H., Reinwald, B.: Efficiently Publishing Relational Data as XML Documents. In: VLDB 2000: Proceedings of the 26th International Conference on Very Large Data Bases, pp. 65–76. Morgan Kaufmann Publishers Inc., San Francisco (2000)
Sheard, T.: Generic unification via two-level types and parameterized modules. In: ICFP 2001: Proceedings of the sixth ACM SIGPLAN International Conference on Functional Programming, pp. 86–97. ACM Press, New York (2001)
Simonyi, C.: The death of programming languages, the birth of intentional programming. Technical report, Microsoft, Inc. (September 1995), Available from: http://citeseer.nj.nec.com/simonyi95death.html
Spitta, T., Werner, F.: Die Wiederverwendung von Daten in SAP R/3. Information Management & Consulting (IM) 15, 51–56 (2000) (in German)
Sun, C., Jia, X., Zhang, Y., Yang, Y., Chen, D.: Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems. ACM Transactions on Computer-Human Interaction 5(1), 63–108 (1998)
Sun Microsystems. The Java architecture for XML binding (JAXB) (2001), http://java.sun.com/xml/jaxb
Thomas, D.: The Impedance Imperative Tuples + Objects + Infosets = Too Much Stuff! Journal of Object Technology 2(5), 7–12 (2003), Online available at: http://www.jot.fm/jot/issues/issue_2003_09/column1/
Van De Vanter, M.: Preserving the documentary structure of source code in language-based transformation tools. In: Proceedings, Source Code Analysis and Manipulation (SCAM 2001). IEEE Computer Society Press, Los Alamitos (2001)
W3C. Document Object Model (DOM) (1997–2003), http://www.w3.org/DOM/
W3C. XML Information Set (2nd edn.) (1999–2004), http://www.w3.org/TR/xml-infoset/
W3C. Extensible Markup Language (XML) 1.0 (3rd edn.) W3C Recommendation (February 2004), http://www.w3.org/TR/2004/REC-xml-20040204/
W3C. XML Schema: Component Designators, W3C Working Draft, March 29 (2005), http://www.w3.org/TR/xmlschema-ref/
Wadler, P.: Views: a way for pattern matching to cohabit with data abstraction. In: POPL 1987: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pp. 307–313. ACM Press, New York (1987)
Wadler, P.: Deforestation: transforming programs to eliminate trees. Theor. Comput. Sci. 73(2), 231–248 (1990)
Walmsley, P.: Definitive XML Schema, 1st edn., p. 556. Prentice Hall, Englewood Cliffs (2001)
Wright, A.K., Cartwright, R.: A practical soft type system for Scheme. ACM Transactions on Programming Languages and Systems 19(1), 87–152 (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Lämmel, R., Meijer, E. (2006). Mappings Make Data Processing Go ’Round. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering. GTTSE 2005. Lecture Notes in Computer Science, vol 4143. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11877028_6
Download citation
DOI: https://doi.org/10.1007/11877028_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-45778-7
Online ISBN: 978-3-540-46235-4
eBook Packages: Computer ScienceComputer Science (R0)