My first Publication Agile-Data-Warehouse-Design-eBook | Page 268
248
Chapter 8
How Many
When heterogeneous products have many heterogeneous facts, even if they share
a common granularity, a monolithic fact table design may not be ideal. If the facts
come from different operational systems with different access methods and
maintenance cycles, separate core and custom fact tables will be easier to build
and maintain, and can be a better fit with BI user groups.
Factless Fact Pattern
Factless fact tables
record events where
there is nothing to
measure except the
event occurring
While some fact tables can have too many facts, others can contain none. Factless
fact tables are used to track events where there is nothing to measure except the
event occurrence itself. For example, SEMINAR ATTENDANCE FACT in Figure
8-13 contains one row for every prospect (and existing customer) who attends a
sales seminar to hear about Pomegranate products. Prospects do not pay for the
privilege, nor are the seminar costs notionally allocated to them, so there are no
monetary facts. The only thing to measure is the number of people who attend,
which can be obtained by simply counting the rows in the fact table.
Figure 8-13
Factless fact table
Factless fact tables
can be used as
coverage tables to
record dimensional
relationships in the
absence of other
events
Factless fact tables are also used as coverage tables to track dimensional relation-
ships in the absence of other events; for example, a promotion coverage table that
records products on promotion—regardless of sales, or a monthly healthcare
eligibility snapshot that records the fact that a person is covered by a medical plan
that month. Coverage fact tables are often used in combination with transaction
fact tables to answer questions about what didn’t happen (but should have); e.g.,
“Which products were promoted but didn’t sell?” or “How many people were
covered but didn’t claim?”