I've spent a good couple of days on research and though I would get some other opinions on this. I have limited experience so please bear with me.
Having read through numerous posts along the lines of A Rose By Any Other Name - A Data Vault Perspective - DataVaultAlliance, I am just wanting to cement my understanding on this topic.
Lets say I have the following simplified situation
|Source System|Business Key|Value|
|System2|BBBBB|Entity ZZ| * different meaning
So, data wise, entity AAAAA has the same semantic meaning, however entity BBBBB does not, it has a different semantic meaning in system 2.
From what I understand
- Business keys in a hub should be 'unique'.
- We can apply the BKCC to make it unique in the case of ambiguity.
- The BKCC is binary, its either used throughout or isn't necessary.
- The BKCC doesn't just need to be a reference to a source system.
So when we talk about uniqueness where applying a BKCC is concerned, if we know there will be ANY ambiguity, apply the same BKCC to all keys originating from that particular system, regardless of the fact that a portion will be unique across the business?
E.g We know System 2 as a whole could potentially cause ambiguity, so ALL keys originating from this system have a BKCC applied, regardless of the fact that some will have the same meaning
or, we know that key only key BBBBB differs in System 2, the same key in other systems has the same meaning.
The second example seems to fall in line with the concept of 'uniqueness' the most, however would be a bit of a chore to identify such instances if this example was scaled up to millions of rows. E.g we know 'some' keys in 'some' systems will mean the same. How would you identify from a transactional point of view which keys from system 2 were Enteprise and which were ambiguous when applying the BKCC?
I hope this explanation proves clear - I'm happy to be told if i'm completely missing a concept here.
Thanks in advance