Canonical Data Model: Does It Actually Ease Data Modeling?
Data models are the foundation of a data warehouse -- providing structure around data and helping to manage your information assets. Organizations that use a consistent data model across systems can achieve compatibility that eases overall business management.
Still, diverse naming for the same terminology or concept can trigger misunderstanding, misinterpretations and confusions. That leads to number of challenges as companies seek to satisfy regulatory guidelines, navigate mergers and acquisitions and other changing business needs. To help solve this chaos of confusion and provide an enterprise-wide view of data, many businesses are pursuing integrated, cross-functional canonical models for data warehousing and more.
As defined in Wiki: "A canonical model is a design pattern used to communicate between different data formats. A form of enterprise application integration, it is intended to reduce costs and standardize on agreed data definitions associated with integrating business systems. A canonical model is any model that is canonical in nature, i.e. a model which is in the simplest form possible based on a standard, application integration (EAI) solution."
Industry standard data models are created based on the needs of the various industry domains like banking, insurance, retail, and so on. Those models have all the essential entities -- which are represented in a generalized way along with their attributes and relationship to other entities.
So, if you have a prebuilt data model with the required entities and attributes, it is very easy for data modeler to just take the model and implement it -- right? The answer is big NO. Having worked with these canonical data models, I found it very challenging to manage people’s perception on the extent of work needed for canonical data modeling. Through this article, I provide a holistic view of the activities involved in the canonical modeling.
Building A Foundation for Canonical Modeling Implementation
Though the canonical model comes with the prebuild logical model, a data modeler has to do preliminary analysis before implementing it in the project. Below are the foundational steps that a data modeler has to carry out to successfully implement the canonical model.
1. Understand the Canonical Model and Its Subject Areas
Most of the Industry standard canonical model provides the subject area models that align with the industry domain. The subject areas model provides a single-source view to business domain data that focuses on core concepts and their business rules within the ondustry domain. So the first thing a data modeler has to do is to understand the subject areas of the canonical model. This is very important step since the subject area model is useful for understanding the basic concepts of the canonical model and evaluating if all the subject areas are relevant to your business domain.
For example, if you are working in banking or insurance domain then a canonical data model may have subject areas like Party (synonymous to Customer, Client), Agreement (synonymous to Policy, Contract), Product (for banking or insurance product), etc.
2. Understand the Business Requirements and Create A Business Conceptual Model
While building the data model, you cannot ignore the fact that your model should satisfy the business requirements. So your next step is to do the business requirements analysis and create a business conceptual model. This involves the broad and detailed analysis of business requirements and the study of their strategic needs. During these requirement understanding sessions, the data modeler has to come up with the business entities that represent the business requirement. The well-understood big picture of the business requirements needs to be captured in the form of a business conceptual model. So again, looking at the banking or insurance domain then at the end of this exercise a data modeler will have a business conceptual model with the entities like Customer, Organization, Policy, Investment Product, Insurance Product etc.
3. Map the Business Conceptual Model to the Canonical Subject Area Model
Once you understand the canonical model and business requirements, the next challenge is to map the business entities to appropriate subject areas of canonical model. You may map one or more business entities to same subject area of canonical model.
So in continuation of our example above, the entity Customer and Organization in a Business conceptual model will be mapped to Party entity of the Canonical subject area model; Policy entity will be mapped to Agreement; Insurance Product and Investment Product will map to Product subject area in canonical model.
There might be some business entities specific to your business that may not fit anywhere in the canonical model and for that data modeler have to create customize entities which must have some relationship with existing entities of the canonical model.
The above 3 steps are very important to create a strong foundation canonical model for its successful implementation in the project, and as they say “You can’t build a great building on a weak foundation.”This foundation is just the beginning and a data modeler has to extend this foundation to skyscraper by creating the detailed logical and physical data models in alignment to the mapping done between business conceptual model and canonical subject area ;./model.
The canonical model helps organizations to get consistency in the data and information assets at an enterprise level. It also helps businesses to achieve corporate compliance with regulators, and helps manage data amid the merger and acquisition process. Having said that, the data modeler’s job is to help organizations achieve data consistency.