Recently, I came across the concept of Rapidly Changing Dimensions
(Mini dimensions).
I understand the part where the fast-changing attributes are removed from the main dimension table and put into a junk dimension
(with all possible combinations of the values in those attributes. This junk dimension will be connected to the parent dimension table by an intermediate "bridge-table
" (mini dimension) which will contain the parent dimension key and the junk dimension surrogate key
(along with start & end dates).
However, I failed to comprehend how it is implemented in real-life.
So, say if an RCD attribute changes, then is the record in the mini dimension (or parent dimension) is updated with the new SK from the junk dim? If yes, then how do we track the history in such a scenario, as we are destructively updating the same record existing in the mini dimension value?
Alternately, if a "new" record is created in the mini dimension (like SCD-2) containing the sk of the new junk dim record, then we are again having the same problem of the size of the mini dimension increasing with time. Also, does the fact hold the ik of only the parent dim or both the parent dim and the junk dim sks?
Can anyone please clarify with an example?
Assume there are 4 tables in the DW model:
1. PAT_DIM is the parent dimension
2. PAT_JNK_DIM is the junk dimension containing the RCD attributes
3. PAT_MINI_DIM is the mini-dim bridge table between 1 & 2 (above).
PAT_DIM:
--------
pat_dim_sk,
pat_id,
pat_dob,
blood_type
PAT_MINI_DIM:
------------
pat_id,
pat_rcd_sk,
start_date,
end_date
PAT_JNK_DIM:
----------
pat_rcd_sk,
pat_weight,
pat_bmi
Given the above example can anyone please help me understand how the Rapidly Changing Dimension (RCD) is modeled in the real-world scenario. How are the RCD tables inter-connected in the Data Warehouse.