Navigation and Cardinality

Navigation refers to the process whereby the analysis engine selects the best way to satisfy a request. It is possible that each measure and dimension column in a request has multiple definitions in multiple source tables. The engine then determines which combination of table definitions can be used to satisfy a request and then picks the most efficient way to do so.

If a measure is defined in multiple table definitions it means that this measure can be calculated using either table. The analysis engine determines which table to use based on which is likely to be most efficient to calculate it. If you could calculate a result by aggregating columns in two different tables, say both Orders and OrderDetails, it would be easier to aggregate that from the Orders table than the OrderDetails table since Orders is a smaller table. Birst provides a mechanism for specifying that Orders is indeed smaller by allowing you to set the cardinality of a table definition. You can set the cardinality on the Hierarchies page under the Define Sources tab of the Admin module.

Cardinality gives the engine a sense as to how many records are in the table definition. In the case of Orders, there are roughly 1,000 records in the sample Northwind database. For OrderDetails, there are actually 2,200 records, but we can put any larger number, say 5,000. It is not important that this number is exact. Rather it should represent the order of magnitude of records such that the analysis engine can easily determine the lowest cost way of satisfying a given request.

See Also
Creating Hierarchies
Reading Query Navigation Results