ModelDependency
Overview
The ModelDependency class in the TCDX object model represents a tabular model dependency, providing information about the connection between a Consumer or QueryGroup and a specific tabular model. This class is a fundamental component in tracking how different Consumers and Items interact with the underlying data models.
Purpose
The primary role of the ModelDependency class is to:
- Establish a reference to the server and model being used.
- Facilitate dependency tracking across tables, columns, and measures.
- Provide a structured way to analyze data usage within a Consumer or QueryGroup.
Public Properties
The ModelDependency class consists of the following properties:
| Property | Type | Description |
|---|---|---|
ServerName |
TcdxName |
The name of the server where the tabular model is hosted. |
ModelName |
TcdxName |
The name of the tabular model referenced by the Consumer or QueryGroup. |
Model |
Dax.Metadata.Model |
A reference to the tabular model within the VertiPaq Analyzer (VPAX) object model, if available. |
Relationships with Other Classes
The ModelDependency class is referenced by multiple dependency classes, including:
TableDependency– To track table-level dependencies.ColumnDependency– To track column-level dependencies.MeasureDependency– To track measure dependencies.Item– To establish which model a specific Item belongs to.QueryGroup– To reference the model involved in query execution.
Class Diagram Representation
ModelDependency
├── ServerName : TcdxName
├── ModelName : TcdxName
└── Model : Dax.Metadata.Model
References:
TableDependency→ModelDependencyColumnDependency→ModelDependencyMeasureDependency→ModelDependency
Conclusion
The ModelDependency class plays a crucial role in the TCDX model by ensuring that every Consumer, QueryGroup, and Item correctly references the tabular model it depends on. It serves as a link between external Consumers and the underlying tabular model, making it an essential part of data tracking, optimization, and governance.
Note:
for privacy reasons, strings are implemented as TcdxName objects, to allow a future implementation of objects anonymization.