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.
S2M and M2M mappings are sometimes called semantic mappings. S2S mappings are not.