PL-300 Visualize and analyze the data Practice Question
Exhibit
Refer to the exhibit.
```json
{
"version": "1.0",
"dataset": {
"name": "SalesDataset",
"tables": [
{
"name": "Sales",
"columns": [
{ "name": "SalesAmount", "dataType": "double" },
{ "name": "Date", "dataType": "dateTime" },
{ "name": "Region", "dataType": "string" }
],
"measures": [
{
"name": "Total Sales",
"expression": "SUM(Sales[SalesAmount])"
}
]
}
],
"relationships": []
}
}```You receive the above JSON policy for a Power BI dataset. You need to add a relationship between the 'Sales' table and a 'Calendar' table in the same dataset. What must you modify in the JSON?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Add an object to the 'relationships' array.
The correct answer is A: add an object to the 'relationships' array. In a Power BI dataset's JSON schema (as used in Tabular Model Scripting Language / TMSL and the dataset definition), relationships between existing tables are declared as entries in the top-level 'relationships' array, where each object specifies the fromTable, fromColumn, toTable, toColumn, and cardinality/crossFilteringBehavior. Since both the 'Sales' and 'Calendar' tables already exist in the dataset, the only required modification is to append a new relationship object describing that join. Option B is wrong because adding a table to the 'tables' array would create a new table, not define a relationship between two existing ones. Option C is wrong because changing the 'version' field does not create a relationship and could break compatibility. Option D is wrong because a measure is a DAX calculation, not a relationship definition, and it would not establish the required join between the tables.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
Add an object to the 'relationships' array.
Why this is correct
In a Power BI/TMSL dataset, relationships are declared as dedicated objects within the model-level "relationships" array. Each object specifies the two participating tables (e.g., Calendar and Sales), the key columns on each side, cardinality, cross-filter direction, and optional filters. Without such an object, the model has no metadata linking tables, so adding this object is the only way to establish a relationship.
- ✗
Add a new table to the 'tables' array.
Why it's wrong here
Adding a new table to the "tables" array only registers a standalone table with its own columns, partitions, and data source bindings. It does not define any linkage between that new table and the Calendar table; even if columns have identical names or data types, no relationship is inferred. A relationship requires a separate entry in the model's "relationships" array that explicitly references the tables involved.
- ✗
Change the 'version' field to '2.0'.
Why it's wrong here
The "version" field denotes the tabular model schema version (e.g., 1.0 or 2.0) and governs feature compatibility for the analysis engine. Changing it to "2.0" does not add, remove, or modify any relationship definitions; relationships persist solely in the "relationships" array. This field only affects how the model is parsed or upgraded, not its semantic structure, so it cannot create a relationship.
- ✗
Add a measure that references the Calendar table.
Why it's wrong here
Adding a measure that references the Calendar table creates a DAX calculation under a table's "measures" property, which evaluates an expression in the model's filter context. Measures can reference multiple tables via DAX functions, but they do not define table linkages; they rely on existing relationships to propagate filters correctly. A measure cannot serve as a join definition, so it will not create a relationship.
Go deeper
Related to this question
About these practice questions
Courseiva writes every PL-300 question from scratch — 524 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This PL-300 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PL-300 exam.