jargon

Comparison

Degenerate dimensionvsJunk dimension

Degenerate dimension

the order number sits on the fact table with no dimension table behind it, because there is nothing else to say about an order number.

A dimension attribute kept on the fact row because it has no other attributes worth a table of its own — typically a transaction identifier used for grouping line items. It looks like a modelling mistake and is not: creating a one-column dimension table for it would add a join and describe nothing. Naming it stops a reviewer from insisting on a table that would be pure ceremony.

Full entry →

Junk dimension

eight unrelated yes/no flags were collapsed into one small dimension of every combination, instead of eight columns on the fact.

A single dimension assembled from several low-cardinality flags and indicators that have no natural home. It keeps the fact table narrow and gives the flags somewhere to be described in words rather than as booleans. The name is unhelpful and the technique is sound, though on columnar storage the width saving matters much less than it did, so this is increasingly a readability argument.

Full entry →

Related comparisons