Customer Is Not Real
If your data models or databases have an item called Customer, then you might be further away from Data Quality than you imagine.
This might come as a surprise to those business people and data quality practitioners who put Customer at the heart of their Master Data Management (MDM) practices.
The Great “Customer Entity” Myth
“Customer” as a Data Entity is a myth. It only exists as such in embryonic Logical Data Models and in standalone, unintegrated databases. As an enterprise develops and improves its Logical Data Model the entity Customer should disappear. If it does not, then there are severe problems with the Model and with the level of modeling skills. How soon should it disappear? In many cases, it could be removed as as soon as the entity Employee is added to the model, but it should definitely go once the entity Supplier is added.
Data Model Evolution
The following diagram shows the entity Customer as it might appear in a Logical Data Model in its early stages of development.
We now add the entity Supplier to the logical data model.
When we look at the above two diagrams we see that their layout is almost identical. The only difference is the names of the entities. This is one of the major benefits of using the Dead Crows Fly East layout convention for data models. It highlights similarities in structure and forces us to ask, “Are these really the same thing?” With the above two examples the answer is a very definite “Yes”.
In essence a Sale is a commercial transaction between the organisation and another party, which can be either a corporation or an individual. Likewise a Purchase is commercial transaction between the organisation and another party, again either a corporation or an individual.
So, Sale and Purchase are simply synonyms for Commercial Transaction.
Generic Data Structures
One we are able to spot the similarities in structure we are able to identify and remove lots of duplication from the Logical Data Model. Doing this for Sale, Purchase, Customer and Supplier would give us the following generic data structure.
So what happened to Customer and Supplier? Were they merely synonyms for Party? Not really. When we develop a Logical Data Model and introduce more sophisticated generic structures, some entities disappear completely. Supplier and Customer are two such entities. They disappear because they were never true entities in the first place.
What they really represent is a derivable commercial relationship with a Party. It is derivable because it can be determined by asking a question such as, “With which Parties have we had a Commercial Transaction where the Transaction Type was ‘Sale’?” The relationship of that party to the enterprise is “Customer”.
By asking other similar, appropriate questions we can also find out what Parties have relationships of “Supplier”, “Employee”, “Director”, ”Creditor”, etc.
Leave a Comment: I would love to hear what you think, so please leave a comment in the box below.
Share With Your Friends: Click on the Retweet icon to the right to share this post with your friends and colleagues.