Data modelling & relationships — quiz
10 questions covering this module. Star schema, relationships, calendar tables and role-playing dimensions.
Why is a dedicated Date table required?
- To make reports look tidier
- Time intelligence functions depend on it
- It reduces file size
- DirectQuery needs it
Answer: Time intelligence functions depend on it — Functions like SAMEPERIODLASTYEAR require a contiguous, marked date table to work correctly.
You inherit a model with Product → Subcategory → Category. Best fix?
- Leave it — it is normalised
- Flatten into one Product dimension in Power Query
- Convert to DirectQuery
- Add bidirectional filters
Answer: Flatten into one Product dimension in Power Query — Flattening the snowflake removes hops that slow filter propagation and complicate DAX.
Sales has OrderDate and ShipDate, both joinable to Date. How do you measure by ShipDate?
- Duplicate the Date table
- Use USERELATIONSHIP inside CALCULATE
- Set cross-filter to Both
- Use a many-to-many relationship
Answer: Use USERELATIONSHIP inside CALCULATE — USERELATIONSHIP activates the inactive ShipDate relationship for that one measure.
Why avoid setting cross-filter direction to Both globally?
- It is slower to refresh
- It creates ambiguous filter paths and possible circular dependencies
- It breaks DirectQuery
- It disables slicers
Answer: It creates ambiguous filter paths and possible circular dependencies — Ambiguity means the engine may resolve paths unexpectedly; CROSSFILTER in a measure is safer.
You need line-level revenue (Qty × Price) totalled in a visual. Best approach?
- A calculated column then SUM
- SUMX(Sales, Sales[Qty] * Sales[Price])
- A Power Query merge
- A calculated table
Answer: SUMX(Sales, Sales[Qty] * Sales[Price]) — SUMX creates row context on the fly without storing an extra column in the model.
Which is stored in the model and increases file size?
- A measure
- A calculated column
- A visual
- A slicer
Answer: A calculated column — Calculated columns are materialised at refresh and persist in memory.
USERELATIONSHIP must be used inside:
- SUMX
- CALCULATE
- FILTER
- A calculated column
Answer: CALCULATE — It is a filter modifier.
Why can only one relationship between two tables be active?
- Performance
- Power BI could not determine which to filter through
- A licensing limit
- DAX cannot handle more
Answer: Power BI could not determine which to filter through — Others exist as inactive and are activated on demand.
Why is a date column on the fact table insufficient?
- It is the wrong type
- Dates with no transactions are missing, breaking the timeline
- It cannot be related
- It is too large
Answer: Dates with no transactions are missing, breaking the timeline — Time intelligence needs a contiguous set of dates.
Month names appear as Apr, Aug, Dec. Fix:
- Change the format
- Sort by column, using a month-number column
- Use a hierarchy
- Mark as date table
Answer: Sort by column, using a month-number column — They are text, so they sort alphabetically by default.