Back to the Data Model.
The Area being Modelled is :-
Canonical Data Models
Although we are practitioners in Data Modelling Best Practice here at Database Answers, we don't often get the chance to use the word 'Canonical'.
When we do, we think of a Canonical Data Model as a 'stripped-down' Model which contains the basics for an application area which is as wide as possible.
We have chosen an Event-driven approach with associated Entities that we have found useful in our work over the past 15 years.
We are able to use our Canonical Data Model for a number of different purposes :-
1. To be a standard for messaging in an ESB/SOA environment.
2. To provide a common point of agreement for all stakeholders.
3. To define a Kick-Start for Master Data Management.
4. To establish a starting-point for development of more detailed specific Data Models
5. To serve as a translation between different data sources.
Here is a thought-provoking Blog on SOA: Canonical "Data" Model from July, 2007.
This is also a very interesting observation from Robin Bloor, who is a highly respected thought leader.
"Over the past 30 years in corporate computing, several major transformations have fundamentally changed how business transacts.
From the mainframe to client-server to Web-based applications,
we've seen monumental shifts that resulted in significant innovations.
I would argue that we are once again on the verge of such a metamorphosis, as we usher in the Event-Driven Architecture.
Currently, we are moving from a transaction-based style of computing to an event-based style of computing. This is evident from the following:
* The advent of streaming analytics applications that analyze events in real-time;
* The advent of many big data applications that are driven by log files;
* The rapid growth in mobile computing;
* The growth in RFID systems and the use of RFID tags;
* The dramatic growth in the deployment of embedded processors;
* Social media analysis which is, in most cases, an event-based BI application.
There are other signs as well, all of which we'll explore over the next few months as we launch a new research program focused on this sea change.
I hope you will join me for two upcoming Webcasts in which I'll offer ideas -- and solicit feedback -- about the Event-Driven Architecture, and
what it means for the world of computing."
© DataBase Answers Ltd. 2013
Wikipedia has two interesting articles :-
It says that a Canonical Model is a design pattern used to communicate between different data formats
and a Canonical Schema Pattern is an [SOA] design pattern which aims to reduce the need for performing data model transformation when services exchange messages."
It then goes on to discuss a Canonical Data Model in these terms :-
"A Canonical Model is a design pattern ... intended to ... standardize on agreed
data definitions associated with integrating business systems
and provides common data naming within a generalized data framework.
A Canonical [Data] Model is any model which is in the simplest form
possible based on a common view within a given context.
In enterprise application integration, the Canonical Model is a design pattern used to communicate between
different data formats.
It introduces an additional format, called the "canonical format", "canonical document type" or "canonical data model".
Instead of writing translators between each and every format (with potential for a combinatorial explosion),
it is sufficient just to write a translator between each format and the canonical format.
OASIS (Organization for the Advancement of Structured Information Standards) is an example of an
integration architecture that is based on a canonical data model."
In the Database Answers Library we have over a dozen books on Data Modelling.
Not one of them mentions 'Canonical Data Models' and only one of them mentions 'Generic Data Models'.
The situation is that there is no common agreement on terminology.
When People talk about 'High-Level Data Models' they can mean different things.
Steve Hoberman is one of the most highly-respected writers on Data Modelling.
In his book entitled Data Modeling for the Business where he makes this statemeent :-
"There are many names floating around in the industry for high-level data nodels and there is no absolute consensus on any of them.
In a recent survey of data professionals, the most popular name for high-level models was Conceptual Data Model.
You may end up using different terms with your users, if other terms make more sense to them."
In other words, one important role of a Data Model is to communicate with the user community.
It's therefore very important to agree a format that they are comfortable with.