PL-300 Model the data Practice Question
You are building a star schema in Power BI. A fact table contains sales transactions with columns: OrderID, CustomerID, ProductID, Quantity, UnitPrice, Discount, and OrderDate. You need to create a dimension table for customers. Which columns should be included in the Customer dimension?
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
✓
CustomerID, CustomerName, City, Region
A customer dimension should contain the customer's unique key (CustomerID) plus descriptive attributes that describe the customer, such as CustomerName, City, and Region, which are appropriate for slicing and filtering sales facts. In a star schema, the dimension holds only attributes about the entity, while transactional and numeric fields stay in the fact table. Options A and B incorrectly include ProductID and OrderID, which are keys belonging to other dimensions or the fact table, not customer attributes. Option C incorrectly includes OrderDate, which is a date attribute that belongs in a separate Date dimension, not the Customer dimension.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
CustomerID, CustomerName, ProductID
Why it's wrong here
ProductID is not a descriptive attribute of a customer; it identifies a product and belongs in the Product dimension. Mixing ProductID into the Customer dimension creates a many-to-many relationship between customers and products, which introduces ambiguity in measure calculations and can cause duplicate customer rows when a customer purchases multiple products. A star schema separates each business entity into its own dimension, so including a foreign key from another dimension in the Customer table violates the one-to-many design pattern.
- ✗
CustomerID, CustomerName, OrderID
Why it's wrong here
Including OrderID in the Customer dimension violates the grain of the entity: a customer can have many orders, so OrderID is a fact-grain identifier that would create multiple rows per customer and break the unique key requirement. This causes order-level attributes to be repeated on every customer row, leading to inflated row counts and incorrect aggregations when the dimension is used for filtering or grouping. The customer dimension must contain only one row per customer, so OrderID belongs in the fact table as part of the order grain.
- ✗
CustomerID, CustomerName, OrderDate
Why it's wrong here
OrderDate is a date attribute that should be modeled as part of a dedicated Date dimension, not as a customer attribute, because a customer typically has multiple order dates. Embedding OrderDate in the Customer dimension either forces multiple rows per customer (one per date) or requires arbitrarily selecting a single date, both of which destroy the dimension's unique key integrity and hinder time-intelligence calculations. Date dimensions are shared across facts and other dimensions to support consistent filtering by time, so date columns must never be placed in a role-playing entity like Customer.
- ✓
CustomerID, CustomerName, City, Region
Why this is correct
This option correctly represents a Customer dimension: CustomerID serves as the unique key, while CustomerName, City, and Region are all stable, customer-specific descriptive attributes that are guaranteed to be the same for every order placed by that customer. Each row corresponds to exactly one customer, maintaining the grain and enabling clean one-to-many joins to the fact table. These attributes support meaningful slicing by customer geography without causing duplication or row multiplication in the underlying fact data.
Go deeper
Related to this question
About these practice questions
One of 524 original PL-300 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. 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.