Determinants
Determinants are designed to provide control over granularity in a similar, but not identical, way
as dimension information in Cognos ReportNet. A determinant can define the set of database
columns (query items) that uniquely identify a set of data, or it can identify a set of columns that
identify a non-unique set within the data.
Determinants are most closely related to the concept of keys and indexes in the data source and
are imported based on key and index information in the data source. We recommend that you
always review the determinants that are imported.
There is no concept of hierarchy in determinants. The order in which they are specified governs
the order in which they are evaluated.
Use determinants in the following cases:
• Joins exist at multiple levels of granularity for a single query subject.
An example is the Time dimension in the Go Data Warehouse sample model. There are joins
to the Time dimension on the day key and on the month key. Determinants are used for the
Time dimension when you want to prevent double-counting for multiple-fact queries.
For example, some facts join to time on month and some facts join to time on day. Specify
determinants for time to clearly capture the functional dependency between month and day as
a minimum to prevent double-counting for those facts that join at the month key.
• BLOB data types exist in the query subject.
Querying blobs requires additional key or index type information. If this information is not
present in the data source, you can add it using determinants. Override the determinants
imported from the data source that conflict with relationships created for reporting.
For example, there are determinants on two query subjects for multiple columns but the
relationship between the query subjects uses only a subset of these columns. Modify the
determinant information of the query subject if it is not appropriate to use the additional
columns in the relationship.
• A join is specified that uses fewer keys than a unique determinant that is specified for a query
subject.
If your join is built on fewer columns than what is stored in Framework Manager within the
determinants, there will be a conflict. Resolve this conflict by modifying the relationship to
fully agree with the determinant or by modifying the determinant to support the relationship.