Types of Mapping Notation
There are three types of mapping: Model-to-Model (M2M), Structure-to-Model (S2M) and Structure-to-Structure (S2S). ‘Model’ refers to a semantic model (e.g. a UML model), and ‘Structure’ means a physical data structure (e.g. defined by an XML schema or a relational database schema).
- Commercial S2S mapping notations have been developed with the aim of transforming data instances from one structure to another, sometimes bi-directionally, or in ETL tools.
- The primary use case of M2M mappings is to transform one model to another (often uni-directionally).
- S2M mappings have multiple uses: asserting and testing conformance to models, and making transformations between structures. They can also support model-to-model transforms.
Any of these types of mapping can be declarative or procedural. A declarative mapping language makes statements of the form ‘the parts of formalism F1 and the parts of formalism F2 are related in these ways’; the order of statements does not matter. A procedural (or imperative) mapping language says: ‘To get from F1 to F2 , do this sequence of steps’; the sequence and interactions of the statements matter. Declarative languages are generally easier to write, understand and analyse. A declarative mapping language says what is the relationship between two formalisms, rather than how you get from one to the other.