Metadata Element Renaming
Metadata element renaming affects object types, property types, and API-specific property types. In r7.3, much of the metadata in erwin DM was renamed. These name changes fall into two categories:
- Consistent naming and better representation of the model data. For example, the property type For was renamed to For_Character_Type.
- Replacement of space characters with underscores in all metadata element names. Prior to erwin DM r7.3, both object type and property type names accessed using the API contained spaces, but when saving to XML format, those same names used underscores. To remove this inconsistency, all space characters within such names have been replaced by underscores.
Overall, this change is transparent and will not affect your day-to-day work. Awareness of this change, however, is important if you use the API and the new ODBC interface, and have some familiarity with the pre-r7.3 metadata names. Existing API applications and scripts must be updated to account for any new metadata names before use with erwin DM. To assist you with this updating process, the following CSV files are provided with the erwin DM installation in the <Program Files>\erwin\Data Modeler r9\metadata changes:
- Renamed Metadata (SCAPI).csv
-
Provides a list of the full set of changed metadata names. It is a two column CSV file that contains the old name, new name pairs.
- Renamed Metadata (XML).csv
-
Provides the subset of metadata names that appear as changed in XML files.
Not included in this file are those metadata names where the only change was the replacement of space characters with underscores, since erwin DM's XML format already uses underscores in object type names and property type names.
- Renamed SCAPI Properties.csv
-
Provides a list of the API-only property names that were renamed.
Metadata Organization
The metadata includes object and property classes, object aggregations, and property associations.
- Object classes
-
Define the type of objects that may occur within a model such as an entity class, an attribute class, or a relationship class.
- Property classes
-
Define the type of properties an object may have such as the Name property, Comment property, or Parent_Domain_Ref property.
- Object aggregations
-
Identify an ownership relationship between classes of objects, such as a model that owns entities, or entities that own attributes, and so on.
- Property associations
-
Define property usage by object classes. For example, the metadata includes property associations for every object class that has the Name property.
The following diagram shows the organization of the metadata:
Metamodel Elements
erwin DM organizes data as a group of linked model sets. The model sets are arranged in a tree-like hierarchy with a single model set at the top.
The top model set contains the bulk of the modeling data. The API uses the abbreviation EMX to identify the top model set.
The EMX model set owns a secondary model set, abbreviated as EM2, which contains user interface settings and user options for erwin DM services such as Forward Engineering, Complete Compare, and so on.
The API clients access the model data by constructing a session and connecting it to a model set using the Session component.
A model set contains several levels of data. It contains the data the application manipulates, such as entity instances, attribute instances, relationship instances, and so on.
The model set also contains metadata, a description of the objects and properties that may occur within the application's data.
Metadata Tags
Each metadata object may include one or more tags. A tag is a metadata object property that conveys certain descriptive meta information, such as if an object class is logical, physical, valid for a specific target DBMS, and so on.
A tag on an object aggregation overrides the identical tag set on the associated owned object class. A tag on a property association overrides the identical tag set on the associated property class.
The following table lists some of the EMX metadata tags:
Tag Name |
Datatype |
Description |
---|---|---|
tag_Bit_Field_Values … tag_Bit_Field_Values_2 |
String |
Describes valid values for a bit field property. A combination of values from the description list can be used as a value for the property. The descriptions are grouped as follows: {<value>|<string equivalent>|<internal>} |
DBMS_Brands_And_Versions |
Integer, vector |
Defines conditions when an object or property class is available for physical modeling with the specific DBMS. Assumes that the tag_Is_Physical has a TRUE value. Absence of the tag indicates that the class is available for all DBMS targets, but only if tag_Is_Physical has a TRUE value. A NULL value for the tag indicates that the class is not available for any DBMS. DBMS brand IDs are described in the next table. |
DBMS_Is_Represented |
Integer, vector |
Defines conditions when an object or property class represents a concept in the specific DBMS. Assumes that the DBMS_Brands_And_Versions tag is valid for the class. Absence of the tag indicates that the class is available for all DBMS targets, but only if the DBMS_Brands_And_Versions tag is valid for the class. A NULL value for the tag indicates that the class is not available for any DBMS. DBMS brand IDs are described in the next table. |
DBMS_Is_Top_Level_Object |
Integer, vector |
Defines conditions when an object class is considered top level, such as when it has a CREATE or DROP statement associated with it for the specific DBMS. Assumes that the DBMS_Is_Represented tag is valid for the class. Absence of the tag indicates that the class is available for all DBMS targets, if the DBMS_Is_Represented tag is valid for the class. A NULL value for the tag indicates that the class is not a top level object for any DBMS. DBMS brand IDs are described in the next table. |
tag_Enum_Values … tag_Enum_Values_10 |
String |
Describes valid values for an enumerated property. Only one value from the description list can be used as a value for the property. The descriptions are grouped as follows: {<value>|<string equivalent>|<internal>} |
tag_Is_Font_Or_Color |
Boolean |
TRUE for classes responsible for model data visualization. |
tag_Is_For_Data_Movement |
Boolean |
TRUE for an object or property class that is available for dimensional and data warehouse modeling. |
tag_Is_Graphic_Data |
Boolean |
TRUE for classes responsible for model data visualization. |
tag_Is_Logical |
Boolean |
TRUE for an object or property class that is available for logical modeling. |
tag_Is_Physical |
Boolean |
TRUE for an object or property class that is available for physical modeling. |
tag_Holds_User_Settings |
Boolean |
TRUE for classes responsible for storing options for erwin DM features. |
DBMS specific tags, such as DBMS_Brands_And_Versions, DBMS_Is_Represented, and DBMS_Is_Top_Level_Object, are vectors and organize data in groups of triplets as described below:
- First element
-
Specifies the DBMS brand ID.
- Second element
-
Specifies the minimum version level for the DBMS, multiplied by 1000.
- Third element
-
Specifies the maximum version level for the DBMS, multiplied by 1000; 999000 indicates the absence of a maximum level.
For example, consider the property Oracle_Index_Partition_Type. It contains a DBMS-specific tag, DBMS_Brands_And_Versions. This tag contains three elements specific for this property: 1075858979, 8000, 999000. The first element, the DBMS brand ID, is for Oracle, which is 1075858979. The second element, the minimum version level for this DBMS, multiplied by 1000, is 8000. This means the minimum DBMS version level for this DBMS, which is Oracle, is 8.0. The third element, the maximum version level for this DBMS, is 999000, which means there is no maximum version level for this DBMS.
The following table lists DBMS brand IDs:
DBMS Brand |
DBMS Brand ID |
---|---|
ArangoDB |
1075859217 |
Apache Avro |
1075859205 |
Amazon Keyspaces |
1075859223 |
Azure Synapse |
1075859211 |
Apache Cassandra |
1075859199 |
Couchbase |
1075859202 |
databricks |
1075859232 |
Db2 for i |
1075859019 |
Db2 for LUW |
1075858977 |
Db2 for z/OS |
1075858978 |
DynamoDB |
1075859229 |
Google BigQuery |
1075859226 |
Hive |
1075859187 |
Informix |
1075859006 |
JSON |
1075859208 |
MongoDB |
1075859196 |
MariaDB |
1075859190 |
MySQL |
1075859129 |
Neo4j |
1075859214 |
Netezza |
1075918978 |
ODBC/Generic |
1075859009 |
Oracle |
1075858979 |
Parquet |
1075859220 |
PostgreSQL |
1075918977 |
Progress |
1075859010 |
Redshift |
1075918979 |
SAS |
1075859013 |
SQL Server |
1075859016 |
SAP ASE |
1075859017 |
SAP IQ |
1075859130 |
Snowflake |
1075859193 |
Teradata |
1075859018 |
Abstract Metadata Objects
The metadata organization makes use of generalizations with the ability to derive a specialized object class from an abstract object class using generalization association. Specialized classes can then be marked as abstract, and then they can be used as a source for further specializations.
Only instances of the concrete, non-abstract object classes may occur within the application's data. erwin DM uses the generalization mechanism to flatten metadata by replicating aggregations, associations, and tags from the abstract object classes in the concrete object classes.
Metamodel Classes
A unique metadata class identifies what type of metadata a model set contains.
- EMX Class Model Set
-
Contains the bulk of model data such as entities and attributes. The class name is EMX and the class identifier is the value defined in the Application Environment component, category Application, property EMX_Metadata_Class.
- EM2 Class Model Set
-
Stores additional data such as user interface settings and user options for erwin DM services such as Forward Engineering and Complete Compare. The class name is EM2 and the class identifier is the value defined in the Application Environment component, category Application, property EM2_Metadata_Class.
Copyright © 2023 Quest Software, Inc. |