|
SMACS | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Interface Summary | |
| DbMappingColumnFieldName | used for contraint fields. |
| DbMappingConstraintFields | base for constraint fields. of target inserts. |
| DbMappingDistinct | representation of a distinct marker. |
| DbMappingForeignKeyFields | representation of a foreign constraint of a mapping. |
| DbMappingRecordFieldList | mark for nodes that have a field list. |
| DbMappingSimpleNode | methods for mapping nodes. |
| DbMappingSourceCursor | representation of data source. |
| DbMappingSourceSelector | a source selector. |
| DbMappingSourceTableList | a source table list. |
| DbMappingTargetInsert | representation of a target data sink in a rule. |
| DbMappingTargetTable | mapping target definition. |
| DbMappingTransform | representation of transform rule. |
| DbMappingTransformList | DbMapping TransformList operations. |
| DbMappingTransformStore | DbMapping TransformList holder. |
| DbMappingUniqueKeyFields | representation of a test constraint of a mapping. |
| Class Summary | |
| DbMappingColumnFieldNode | element inside of table constraints. |
| DbMappingDistinctList | implementaiton of a list of distinct marker groups. |
| DbMappingDistinctNode | implementaiton of a distinct marker group. |
| DbMappingForeignKeyFieldsNode | implementation of a foreign constraint of a mapping. |
| DbMappingRecordField | implementation of a record field. |
| DbMappingRecordSource | the layout of a possible tupel stream source. |
| DbMappingScanSqlScript | the main class. |
| DbMappingScriptNode | base node for mapping implementation. |
| DbMappingSourceCursorNode | implementation of data source. |
| DbMappingSourceTableNode | implementation of a property for a source table. |
| DbMappingTargetInsertNode | implementation of a target data sink in a rule. |
| DbMappingTargetNames | names of distinct targets. |
| DbMappingTargetTableNode | mapping target definition. |
| DbMappingTransformListNode | DbMapping TransformList operations. |
| DbMappingTransformNode | implementation of transform rule. |
| DbMappingUniqueKeyFieldsNode | implementation of a test constraint of a mapping. |
Transformation Information Blocks
The original module writer code was using the direct sql input text with a number of INSERT INTO and INSERT FROM statements. Each statement was converted to an equivalent JDBC script. That sql script equivalent was not capable to incorporate handling of constraints that come out of the schema. Such as unique keys and primaries and merging with rows.
Here is the next step after re-focussing on schema mapping transformation - we need to cut down the semantic parts of an expressed schema mapping which contains:
- source table - source where - source fields - target table - target fields - target where - target choice
the last part is the most problematic one since we can have atleast (a) exclusive choices where some condition (via where?) will trigger a data insert/update on that table with those fields or (b) inclusive choices where some condition (via where?) will trigger a data insert/update on that table with those fields.
We to optimize later for the various parts, including (a) which tables must be queried for data and (b) which condition clauses must be checked. - That's the main reason to cut those from the other parts.
in this subsection we want all classes to carry the prefix "Select*" to make joining of classes easier in other parts of the project (due to java non-renaming problems).
The "sink" is specified through a SelectUpdate clause which references various "Builds" modelled in terms of "Select*" interfaces. The Select nodes reference other nodes, so they do build a tree in a way after flattening it out. One of the Select nodes should be Cursor that will be used for the outer loop.
The select tree could be reordered to do some optimizations, just reassign the references.
|
SMACS | |||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||