Introduction |
|
ix | |
|
Chapter 1 Introduction to data modeling |
|
|
1 | (22) |
|
Working with a single table |
|
|
2 | (5) |
|
Introducing the data model |
|
|
7 | (8) |
|
|
15 | (5) |
|
Understanding the importance of naming objects |
|
|
20 | (1) |
|
|
21 | (2) |
|
Chapter 2 Using header/detail tables |
|
|
23 | (12) |
|
Introducing header/detail |
|
|
23 | (1) |
|
Aggregating values from the header |
|
|
24 | (6) |
|
|
30 | (3) |
|
|
33 | (2) |
|
Chapter 3 Using multiple fact tables |
|
|
35 | (20) |
|
Using denormalized fact tables |
|
|
35 | (5) |
|
Filtering across dimensions |
|
|
40 | (3) |
|
Understanding model ambiguity |
|
|
43 | (2) |
|
Using orders and invoices |
|
|
45 | (8) |
|
Calculating the total invoiced for the customer |
|
|
50 | (1) |
|
Calculating the number of invoices that include the given order of the given customer |
|
|
50 | (1) |
|
Calculating the amount of the order, if invoiced |
|
|
50 | (3) |
|
|
53 | (2) |
|
Chapter 4 Working with date and time |
|
|
55 | (36) |
|
Creating a date dimension |
|
|
55 | (3) |
|
Understanding automatic time dimensions |
|
|
58 | (3) |
|
Automatic time grouping in Excel |
|
|
58 | (2) |
|
Automatic time grouping in Power BI Desktop |
|
|
60 | (1) |
|
Using multiple date dimensions |
|
|
61 | (5) |
|
|
66 | (2) |
|
Time-intelligence calculations |
|
|
68 | (1) |
|
Handling fiscal calendars |
|
|
69 | (3) |
|
Computing with working days |
|
|
72 | (6) |
|
Working days in a single country or region |
|
|
72 | (2) |
|
Working with multiple countries or regions |
|
|
74 | (4) |
|
Handling special periods of the year |
|
|
78 | (6) |
|
Using non-overlapping periods |
|
|
79 | (1) |
|
Periods relative to today |
|
|
80 | (2) |
|
Using overlapping periods |
|
|
82 | (2) |
|
Working with weekly calendars |
|
|
84 | (5) |
|
|
89 | (2) |
|
Chapter 5 Tracking historical attributes |
|
|
91 | (20) |
|
Introducing slowly changing dimensions |
|
|
91 | (5) |
|
Using slowly changing dimensions |
|
|
96 | (3) |
|
Loading slowly changing dimensions |
|
|
99 | (7) |
|
Fixing granularity in the dimension |
|
|
102 | (2) |
|
Fixing granularity in the fact table |
|
|
104 | (2) |
|
Rapidly changing dimensions |
|
|
106 | (3) |
|
Choosing the right modeling technique |
|
|
109 | (1) |
|
|
110 | (1) |
|
Chapter 6 Using snapshots |
|
|
111 | (16) |
|
Using data that you cannot aggregate over time |
|
|
111 | (1) |
|
|
112 | (6) |
|
Understanding derived snapshots |
|
|
118 | (1) |
|
Understanding the transition matrix |
|
|
119 | (6) |
|
|
125 | (2) |
|
Chapter 7 Analyzing date and time intervals |
|
|
127 | (26) |
|
Introduction to temporal data |
|
|
127 | (2) |
|
Aggregating with simple intervals |
|
|
129 | (2) |
|
|
131 | (4) |
|
Modeling working shifts and time shifting |
|
|
135 | (2) |
|
|
137 | (8) |
|
Mixing different durations |
|
|
145 | (6) |
|
|
151 | (2) |
|
Chapter 8 Many-to-many relationships |
|
|
153 | (20) |
|
Introducing many-to-many relationships |
|
|
153 | (5) |
|
Understanding the bidirectional pattern |
|
|
155 | (2) |
|
Understanding non-additivity |
|
|
157 | (1) |
|
|
158 | (3) |
|
|
161 | (6) |
|
Reallocating factors and percentages |
|
|
164 | (2) |
|
Materializing many-to-many |
|
|
166 | (1) |
|
Using the fact tables as a bridge |
|
|
167 | (1) |
|
Performance considerations |
|
|
168 | (3) |
|
|
171 | (2) |
|
Chapter 9 Working with different granularity |
|
|
173 | (16) |
|
Introduction to granularity |
|
|
173 | (2) |
|
Relationships at different granularity |
|
|
175 | (12) |
|
|
175 | (2) |
|
Using DAX code to move filters |
|
|
177 | (2) |
|
Filtering through relationships |
|
|
179 | (2) |
|
Hiding values at the wrong granularity |
|
|
181 | (4) |
|
Allocating values at a higher granularity |
|
|
185 | (2) |
|
|
187 | (2) |
|
Chapter 10 Segmentation data models |
|
|
189 | (14) |
|
Computing multiple-column relationships |
|
|
189 | (3) |
|
Computing static segmentation |
|
|
192 | (2) |
|
Using dynamic segmentation |
|
|
194 | (2) |
|
Understanding the power of calculated columns: ABC analysis |
|
|
196 | (5) |
|
|
201 | (2) |
|
Chapter 11 Working with multiple currencies |
|
|
203 | (12) |
|
Understanding different scenarios |
|
|
203 | (1) |
|
Multiple source currencies, single reporting currency |
|
|
204 | (4) |
|
Single source currency, multiple reporting currencies |
|
|
208 | (4) |
|
Multiple source currencies, multiple reporting currencies |
|
|
212 | (2) |
|
|
214 | (1) |
|
Appendix A Data modeling 101 |
|
|
215 | (12) |
|
|
215 | (2) |
|
|
217 | (1) |
|
|
217 | (1) |
|
Filtering and cross-filtering |
|
|
218 | (3) |
|
Different types of models |
|
|
221 | (4) |
|
|
222 | (1) |
|
|
222 | (2) |
|
Models with bridge tables |
|
|
224 | (1) |
|
|
225 | (1) |
|
|
225 | (1) |
|
|
225 | (1) |
|
|
225 | (2) |
Index |
|
227 | |