Previous | Table of Contents | Next |
This section provides a description of the main features of the Transformation package,
as illustrated in Figure 10-1 on page 10-3:
Figure 10-1 Sample Transformation Package
A transformation transforms a set of source objects into a set of target objects. The elements of a data object set can be
any ObjectModel model elements, but typically are tables, columns, or model elements that represent transient, in memory,
objects. Data object sets can be both sources and targets for different transformations. In particular, a given data object
set can be the target of one transformation and the source of one or more transformations within the same logical unit. This
is often the case with transformations that produce and consume temporary objects.
Transformations allow a wide range of types (and granularity) to be defined for their data sources and targets. For example,
the source type of a transformation can be an XML schema while the target type is a column, if the transformation deals with
storing an XML document in a column of a relational database. More typically, the source types of a transformation are classes
and attributes while the target types are tables and columns, or vice versa, if the transformation deals with converting object
data into relational data, or vice versa.
Existing programs, queries, or rules (in fact, any ObjectModel operations) can be used to perform a transformation by associating
them with the transformation using the transformation use dependency.
Transformations can be grouped into logical units. At the functional level, they are grouped into transformation tasks, each
of which defines a set of transformations that must be executed and completed together - a logical unit of work. At the execution
level, transformation steps are used to coordinate the flow of control between transformation tasks, with each transformation
step executing a single transformation task. The transformation steps are further grouped into transformation activities.
Within each transformation activity, the execution sequence of its transformation steps are defined either explicitly by using
the step precedence dependency or precedence constraint, or implicitly through data dependency.
There are certain “white-box? transformations that are commonly used and can relate data sources and targets to a transformation
and to each other at a detailed level. These transformations are convenient to use and they provide data lineage at a fine-grain
level. One such transformation is the transformation map, which consists of a set of classifier maps that in turn consists
of a set of feature maps or classifier-feature maps. The other is the transformation tree, which represents a transformation
as a unary or binary expression tree. For an example usage of the transformation map, please see
Figure 10-2 on page 10-6.