|
| 1 | +--- |
| 2 | +title: ExpressiveNames |
| 3 | +group: |
| 4 | +kind: COMPLEX |
| 5 | +number: 4 |
| 6 | +--- |
| 7 | +# ExpressiveNames Database |
| 8 | + |
| 9 | +Sample catalog demonstrating complex hierarchies and naming patterns |
| 10 | + |
| 11 | +## Test Cube |
| 12 | + |
| 13 | +Cube with multiple dimensions and complex hierarchies |
| 14 | + |
| 15 | +```xml |
| 16 | +<roma:PhysicalCube description="Test Cube" name="Cube1" query="/5"/> |
| 17 | + |
| 18 | +``` |
| 19 | +*<small>Note: This is only a symbolic example. For the exact definition, see the [Definition](#definition) section.</small>* |
| 20 | + |
| 21 | +## Definition |
| 22 | + |
| 23 | +This files represent the complete definition of the catalog. |
| 24 | + |
| 25 | +```xml |
| 26 | +<?xml version="1.0" encoding="UTF-8"?> |
| 27 | +<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:roma="https://www.daanse.org/spec/org.eclipse.daanse.rolap.mapping"> |
| 28 | + <roma:Catalog description="ExpressiveNames Sample Database - EMF Version" name="ExpressiveNames" cubes="/35" dbschemas="/1"/> |
| 29 | + <roma:DatabaseSchema name="ExpressiveNames"> |
| 30 | + <tables xsi:type="roma:PhysicalTable" name="Cube1Fact"> |
| 31 | + <columns xsi:type="roma:PhysicalColumn" name="D1"/> |
| 32 | + <columns xsi:type="roma:PhysicalColumn" name="D2"/> |
| 33 | + <columns xsi:type="roma:PhysicalColumn" name="D3"/> |
| 34 | + <columns xsi:type="roma:PhysicalColumn" name="M1" type="Integer"/> |
| 35 | + </tables> |
| 36 | + <tables xsi:type="roma:PhysicalTable" name="D1H1L1Table"> |
| 37 | + <columns xsi:type="roma:PhysicalColumn" name="D1H1L1"/> |
| 38 | + <columns xsi:type="roma:PhysicalColumn" name="D1H1L1_NAME"/> |
| 39 | + <columns xsi:type="roma:PhysicalColumn" name="D1H1L1_Ordinal"/> |
| 40 | + </tables> |
| 41 | + <tables xsi:type="roma:PhysicalTable" name="D2H1L1Table"> |
| 42 | + <columns xsi:type="roma:PhysicalColumn" name="D2H1L1"/> |
| 43 | + <columns xsi:type="roma:PhysicalColumn" name="D2H1L1_NAME"/> |
| 44 | + <columns xsi:type="roma:PhysicalColumn" name="D2H1L1_Ordinal"/> |
| 45 | + </tables> |
| 46 | + <tables xsi:type="roma:PhysicalTable" name="D2H2L2Table"> |
| 47 | + <columns xsi:type="roma:PhysicalColumn" name="D2H2L2"/> |
| 48 | + <columns xsi:type="roma:PhysicalColumn" name="D2H2L2_NAME"/> |
| 49 | + <columns xsi:type="roma:PhysicalColumn" name="D2H2L1_NAME"/> |
| 50 | + <columns xsi:type="roma:PhysicalColumn" name="D2H2L2_Ordinal"/> |
| 51 | + <columns xsi:type="roma:PhysicalColumn" name="D2H2L1_Ordinal"/> |
| 52 | + </tables> |
| 53 | + <tables xsi:type="roma:PhysicalTable" name="D3H1L1Table"> |
| 54 | + <columns xsi:type="roma:PhysicalColumn" name="D3H1L1"/> |
| 55 | + <columns xsi:type="roma:PhysicalColumn" name="D3H1L1_NAME"/> |
| 56 | + <columns xsi:type="roma:PhysicalColumn" name="D3H1L1_Ordinal"/> |
| 57 | + </tables> |
| 58 | + <tables xsi:type="roma:PhysicalTable" name="D3H2L2Table"> |
| 59 | + <columns xsi:type="roma:PhysicalColumn" name="D3H2L2"/> |
| 60 | + <columns xsi:type="roma:PhysicalColumn" name="D3H2L2_id"/> |
| 61 | + <columns xsi:type="roma:PhysicalColumn" name="D3H2L1_id"/> |
| 62 | + <columns xsi:type="roma:PhysicalColumn" name="D3H2L2_NAME"/> |
| 63 | + <columns xsi:type="roma:PhysicalColumn" name="D3H2L2_Ordinal"/> |
| 64 | + </tables> |
| 65 | + <tables xsi:type="roma:PhysicalTable" name="D3H2L1Table"> |
| 66 | + <columns xsi:type="roma:PhysicalColumn" name="D3H2L1"/> |
| 67 | + <columns xsi:type="roma:PhysicalColumn" name="D3H2L1_NAME"/> |
| 68 | + <columns xsi:type="roma:PhysicalColumn" name="D3H2L1_Ordinal"/> |
| 69 | + </tables> |
| 70 | + <tables xsi:type="roma:PhysicalTable" name="D3H3L3Table"> |
| 71 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L3"/> |
| 72 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L2_id"/> |
| 73 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L3_NAME"/> |
| 74 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L3_Ordinal"/> |
| 75 | + </tables> |
| 76 | + <tables xsi:type="roma:PhysicalTable" name="D3H3L2Table"> |
| 77 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L2"/> |
| 78 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L1_id"/> |
| 79 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L2_NAME"/> |
| 80 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L2_Ordinal"/> |
| 81 | + </tables> |
| 82 | + <tables xsi:type="roma:PhysicalTable" name="D3H3L1Table"> |
| 83 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L1"/> |
| 84 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L1_NAME"/> |
| 85 | + <columns xsi:type="roma:PhysicalColumn" name="D3H3L1_Ordinal"/> |
| 86 | + </tables> |
| 87 | + </roma:DatabaseSchema> |
| 88 | + <roma:PhysicalColumn name="D2H2L1"/> |
| 89 | + <roma:TableQuery table="/1/@tables.8"/> |
| 90 | + <roma:TableQuery table="/1/@tables.1"/> |
| 91 | + <roma:TableQuery table="/1/@tables.0"/> |
| 92 | + <roma:TableQuery table="/1/@tables.9"/> |
| 93 | + <roma:TableQuery table="/1/@tables.7"/> |
| 94 | + <roma:TableQuery table="/1/@tables.2"/> |
| 95 | + <roma:TableQuery table="/1/@tables.4"/> |
| 96 | + <roma:TableQuery table="/1/@tables.3"/> |
| 97 | + <roma:TableQuery table="/1/@tables.6"/> |
| 98 | + <roma:TableQuery table="/1/@tables.5"/> |
| 99 | + <roma:JoinQuery> |
| 100 | + <left key="/1/@tables.8/@columns.1" query="/3"/> |
| 101 | + <right key="/1/@tables.9/@columns.0" query="/6"/> |
| 102 | + </roma:JoinQuery> |
| 103 | + <roma:JoinQuery> |
| 104 | + <left key="/1/@tables.5/@columns.2" query="/12"/> |
| 105 | + <right key="/1/@tables.6/@columns.0" query="/11"/> |
| 106 | + </roma:JoinQuery> |
| 107 | + <roma:JoinQuery> |
| 108 | + <left key="/1/@tables.7/@columns.1" query="/7"/> |
| 109 | + <right key="/1/@tables.8/@columns.0" query="/13"/> |
| 110 | + </roma:JoinQuery> |
| 111 | + <roma:Level description="Level 1 Hierarchy3 Dimension 3" name="D3H3L1" column="/1/@tables.9/@columns.0" nameColumn="/1/@tables.9/@columns.1" ordinalColumn="/1/@tables.9/@columns.2"/> |
| 112 | + <roma:Level description="Level 1 Hierarchy1 Dimension 3" name="D3H1L1" column="/1/@tables.4/@columns.0" nameColumn="/1/@tables.4/@columns.1" ordinalColumn="/1/@tables.4/@columns.2"/> |
| 113 | + <roma:Level description="Level 2 Dimension 3" name="D2H2L2" column="/1/@tables.3/@columns.0" nameColumn="/1/@tables.3/@columns.1" ordinalColumn="/1/@tables.3/@columns.3"/> |
| 114 | + <roma:Level description="Level 2 Hierarchy2 Dimension 3" name="D3H2L2" column="/1/@tables.5/@columns.0" nameColumn="/1/@tables.5/@columns.3" ordinalColumn="/1/@tables.5/@columns.4"/> |
| 115 | + <roma:Level description="Level 1 Hierarchy2 Dimension 3" name="D3H2L1" column="/1/@tables.6/@columns.0" nameColumn="/1/@tables.6/@columns.1" ordinalColumn="/1/@tables.6/@columns.2"/> |
| 116 | + <roma:Level description="Level 1 Hierarchy 1 Dimension 2" name="D2H1L1" column="/1/@tables.2/@columns.0" nameColumn="/1/@tables.2/@columns.1" ordinalColumn="/1/@tables.2/@columns.2"/> |
| 117 | + <roma:Level description="Level 2 Hierarchy 2 Dimension 2" name="D2H2L1" column="/2" nameColumn="/1/@tables.3/@columns.2" ordinalColumn="/1/@tables.3/@columns.4"/> |
| 118 | + <roma:Level description="Level 1 Dimension 1 Hierarchy1" name="D1H1L1" column="/1/@tables.1/@columns.0" nameColumn="/1/@tables.1/@columns.1" ordinalColumn="/1/@tables.1/@columns.2"/> |
| 119 | + <roma:Level description="Level 3 Hierarchy3 Dimension 3" name="D3H3L3" column="/1/@tables.7/@columns.0" nameColumn="/1/@tables.7/@columns.2" ordinalColumn="/1/@tables.7/@columns.3"/> |
| 120 | + <roma:Level description="Level 2 Hierarchy3 Dimension 3" name="D3H3L2" column="/1/@tables.8/@columns.0" nameColumn="/1/@tables.8/@columns.2" ordinalColumn="/1/@tables.8/@columns.3"/> |
| 121 | + <roma:ExplicitHierarchy description="Hierarchy 2 Dimension 3" name="D3H2" primaryKey="/1/@tables.5/@columns.0" query="/14" levels="/20 /19"/> |
| 122 | + <roma:ExplicitHierarchy description="Hierarchy 1 Dimension 2" name="D2H1" primaryKey="/1/@tables.2/@columns.0" query="/8" levels="/21"/> |
| 123 | + <roma:ExplicitHierarchy description="Hierarchy 1 Dimension 3" name="D3H3" primaryKey="/1/@tables.7/@columns.0" query="/15" levels="/16 /25 /24"/> |
| 124 | + <roma:ExplicitHierarchy description="Hierarchy 1 Dimension 1" name="D1H1" primaryKey="/1/@tables.1/@columns.0" query="/4" levels="/23"/> |
| 125 | + <roma:ExplicitHierarchy description="Hierarchy 2 Dimension 2" name="D2H2" primaryKey="/1/@tables.3/@columns.0" query="/10" levels="/22 /18"/> |
| 126 | + <roma:ExplicitHierarchy description="Hierarchy 1 Dimension 3" name="D3H1" primaryKey="/1/@tables.4/@columns.0" query="/9" levels="/17"/> |
| 127 | + <roma:StandardDimension description="Hierarchy 1 Dimension 1" name="Dimension1" hierarchies="/29"/> |
| 128 | + <roma:StandardDimension name="Dimension3" hierarchies="/31 /26 /28"/> |
| 129 | + <roma:StandardDimension name="Dimension2" hierarchies="/27 /30"/> |
| 130 | + <roma:PhysicalCube description="Test Cube" name="Cube1" query="/5"> |
| 131 | + <dimensionConnectors foreignKey="/1/@tables.0/@columns.0" dimension="/32" overrideDimensionName="Dimension1"/> |
| 132 | + <dimensionConnectors foreignKey="/1/@tables.0/@columns.1" dimension="/34" overrideDimensionName="Dimension2"/> |
| 133 | + <dimensionConnectors foreignKey="/1/@tables.0/@columns.2" dimension="/33" overrideDimensionName="Dimension3"/> |
| 134 | + <measureGroups> |
| 135 | + <measures xsi:type="roma:SumMeasure" name="Measure1" formatString="Standard" column="/1/@tables.0/@columns.3"/> |
| 136 | + </measureGroups> |
| 137 | + </roma:PhysicalCube> |
| 138 | +</xmi:XMI> |
| 139 | + |
| 140 | +``` |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | +## Tutorial Zip |
| 145 | +This files contaisn the data-tables as csv and the mapping as xmi file. |
| 146 | + |
| 147 | +<a href="./zip/complex.expressivenames.zip" download>Download Zip File</a> |
0 commit comments