Degenerate dimension

From Wikipedia, the free encyclopedia
Jump to: navigation, search

According to Ralph Kimball,[1] in a data warehouse, a degenerate dimension is a dimension key in the fact table that does not have its own dimension table, because all the interesting attributes have been placed in analytic dimensions. The term "degenerate dimension" was originated by Ralph Kimball.

As Bob Becker says:

Other uses of the term[edit]

Although most writers and practitioners use the term degenerate dimension correctly, it is very easy to find misleading definitions in online and printed sources. For example, the Oracle FAQ defines a degenerate dimension as a "data dimension that is stored in the fact table rather than a separate dimension table. This eliminates the need to join to a dimension table. You can use the data in the degenerate dimension to limit or 'slice and dice' your fact table measures."[3]

This common interpretation implies that it is good dimensional modeling practice to place dimension attributes in the fact table, as long as you call them a degenerate dimension. This is not the case; the concept of degenerate dimension was developed by Kimball to support a specific, well-defined exception to the otherwise ironclad rule that dimension attributes are always pulled out into dimension tables.

See also[edit]

External reference[edit]

Becker, Bob (3 June 2003). "Design Tip #46: Another Look At Degenerate Dimensions". Fact Table Core Concepts. Kimball Group. Retrieved 25 January 2013. 

Notes[edit]

  1. ^ Kimball, Ralph; Ross, Margy (2002). The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (Second Edition). Indianapolis, IN: John Wiley & Sons. pp. 50, 398. ISBN 978-0-471-20024-6. 
  2. ^ Becker, Bob (3 June 2003). "Design Tip #46: Another Look At Degenerate Dimensions". Fact Table Core Concepts. Kimball Group. Retrieved 25 January 2013. 
  3. ^ "Degenerate dimension". Oracle FAQ's. Retrieved 31 July 2011. 

References[edit]