You are designing a data warehouse for a software distribution business that stores sales by
software title. It stores sales targets by software category. Software titles are classified into
subcategories and categories. Each software title is included in only a single software
subcategory, and each subcategory is included in only a single category. The data
warehouse will be a data source for an Analysis Services cube.
The data warehouse contains two fact tables:
factSales, used to record daily sales by software title
factTarget, used to record the monthly sales targets by software category
Reports must be developed against the warehouse that reports sales by software title,
category and subcategory, and sales targets.
You need to design the software title dimension. The solution should use as few tables as
possible while supporting all the requirements.
What should you do?
A.
Create three software tables, dimSoftware, dimSoftwareCategory, and
dimSoftwareSubcategory and a fourth bridge table that joins software titles to their
appropriate category and subcategory table records with foreign key constraints. Direct the
cube developer to use key granularity attributes.
B.
Create three software tables, dimSoftware, dimSoftwareCategory, and
dimSoftwareSubcategory. Connect factSales to all three tables and connect factTarget to
dimSoftwareCategory with foreign key constraints. Direct the cube developer to use key
granularity attributes.
C.
Create one table, dimSoftware, which contains Software Detail, Category, and
Subcategory columns. Connect factSales to dimSoftware with a foreign key constraint.
Direct the cube developer to use a non-key granularity attribute for factTarget.
D.
Create two tables, dimSoftware and dimSoftwareCategory. Connect factSales to
dimSoftware and factTarget to dimSoftwareCategory with foreign key constraints. Direct the
cube developer to use key granularity attributes.
Shouldn’t the answer be D – Create two tables, dimSoftware and dimSoftwareCategory?
Best answer is C as there is 1-2-1 relationship for title, subcategory and category so one dimSoftware table to hold all that info is sufficient.