What is the difference between warehouse key and surrogate key?
Answer Posted / jaspreet banga
Surrogate key concept:- Surrogate keys are generated by
system and they identifies unique 'ENTITY'! yes its entity
and not record ,while primary key is used for finding
unique record.
Let me give you a simple classical example for surrogate
key:
On the 1st of January 2002 Employee 'E1' belongs to
Business Unit 'BU1' (that's what would be in your Employee
Dimension). This employee has a turnover allocated to him
on the Business Unit 'BU1' But on the 2nd of June the
Employee 'E1' is muted from Business Unit 'BU1' to Business
Unit 'BU2.' All the new turnover have to belong to the new
Business Unit 'BU2' but the old one should Belong to the
Business Unit 'BU1.'
If you used the natural business key 'E1' for your employee
within your datawarehouse everything would be allocated to
Business Unit 'BU2' even what actualy belongs to 'BU1.'
If you use surrogate keys you could create on the 2nd of
June a new record for the Employee 'E1' in your Employee
Dimension with a new surrogate key.
This way in your fact table you have your old data (before
2nd of June) with the SID of the Employee 'E1' 'BU1.' All
new data (after 2nd of June) would take the SID of the
employee 'E1' 'BU2.'
You could consider Slowly Changing Dimension as an
enlargement of your natural key: natural key of the
Employee was Employee Code 'E1' but for you it becomes
Employee Code Business Unit - 'E1' 'BU1' or 'E1' 'BU2.' But
the difference with the natural key enlargement process is
that you might not have all part of your new key within
your fact table so you might not be able to do the join on
the new enlarge key -> so you need another id.
| Is This Answer Correct ? | 3 Yes | 1 No |
Post New Answer View All Answers
How many ways a relational source definition can be updated and what are they?
What is the reusable transformation?
what are the best practices to extract data from flat file source which are bigger than 100 mb memory?
Hi, There is a session in my workflow which is running for a long time, atlast we found the cause is the missing index. My session is running via a stored procedure. Can I create an Index on the table which the stored procedure is using while my session is running? Please suggest. My Informatica version is PC 8.0.6 My Oracle APPS is 11.5.3. Thanks,
What is sequence generator transformation in informatica?
How an expression transformation differs from aggregator transformation?
Why update strategy and union transformations are active?
What are the new features of Power Center 5.0?
How to do unit testing in informatica?
Write the different tools in the workflow manager?
What is the meaning of up gradation of repository?
How to partition the Session?
What is an unconnected transformation?
Slowly changing dimensions, types and where will you use them
How do you take back up of repository?