Lookup tables: Attribute storage

Lookup tables are the physical representation of attributes. They provide the ability to aggregate data at different levels. Lookup tables store the information for an attribute in ID and description columns (see Columns: Data identifiers and values).

Depending on how you choose to organize the physical schema, a lookup table can store information for one or more related attributes. If a table only stores data about one attribute, it is said to be a normalized table. If a table holds data about multiple attributes, it is said to be a denormalized table.

The following diagram shows the different ways in which you can organize the same attribute information. Notice that the denormalized table holds the exact same data as the normalized tables. While the denormalized table consolidates information about attributes within one table, the normalized tables each contain only a subset of all of the information about the attributes.

You can use either structure for any table in the physical warehouse schema, though each structure has its advantages and disadvantages, as explained in the following sections and outlined in the table in Schema type comparisons.

Attribute relationships and lookup table structure

Attribute relationships are a major factor in determining the structure of lookup tables in a physical warehouse schema. In general, the following guidelines apply:

One-to-one relationships usually denote the existence of an attribute form. The description column of an attribute form should simply be included as an additional column in the attribute’s lookup table.
Many-to-many relationships usually require the use of a relate table distinct from either attribute lookup table. A relate table should include the ID columns of the two attributes in question. For more information on how to use relate tables, see Relate tables: A unique case for relating attributes.