Slowly Changing Dimensions – Type Four Models
Type Four – Insert Into a History Table
Type four models, also known as leveraging “history tables”, is the most technically sophisticated of the four models and may be the most difficult to implement. This modeling technique provides for nearly unlimited tracking of historical records while having less storage requirement than type two models. Rather than storing the changes in the same table, a second “history” table is created which stores only the previous values of slowly changing dimensions.
Similar to type two models, type four models accommodate infinite changes to dimensional fields and create an additional record for every change to a dimensional attribute. But in contrast to type two, type four models allow for every change to an attribute to be generated within a new record in a relatively compact history table. The history table is subsequently more efficient in capturing a large amount of historical data.
Another key advantage of type four models is an efficient manner to query against a timeframe as the related search index only requires two fields (key and date fields). Other modeling techniques require more fields in the search index for date queries. Thus the search index utilizing a type four model is smaller, more intuitive, and quicker to retrieve the relevant record in the dimension table than the search index using other modeling techniques.
Type four models do have some important disadvantages. Namely type four models require implementation of multiple tables, are less intuitive for query developers, require more effort to develop and maintain than other types of models, and allow for history tables to grow to massive size.
Suppose that a vendor changes his phone number to 858-555-6555 from 202-555-8639 because the phone company has added a new area code. Utilizing a type four model, the vendor dimension table would be updated and a new record will be inserted into the vendor history table in the following manner…
- • The vendor dimension table is updated:
- – The phone number is updated from 202-555-8638 to 858-555-6555.
- • A new record is inserted into the vendor history table:
- – The vendor key is copied from the vendor dimension table.
- – The phone number 858-555-6555 is inserted.
- – The effective date of 12/15/2008 is inserted.