Wednesday, December 26, 2012

When to Create Conceptual Data Models

Why are Conceptual Data Models Important? Not everyone does them - especially in situations where many aspects of the data architecture has already been defined by default because commercial software is involved. Also, those folks who do use them don't always build the same way. Yet - perhaps there is more to the Conceptual Data Model (CDM) than many people realize. Moreover - how does the CDM fit into the larger realm of architecture or modeling activities that are likely to take place on typical IT project? First let's begin with an official - or at least semi-official definition...


The primary goal of the CDM is determine entities & the high level relationships
Conceptual Data Model
Describes the semantics of a domain (the scope of the model). For example, it may be a model of the interest area of an organization or of an industry. This consists of entity classes, representing kinds of things of significance in the domain, and relationships assertions about associations between pairs of entity classes. A conceptual schema specifies the kinds of facts or propositions that can be expressed using the model. In that sense, it defines the allowed expressions in an artificial "language" with a scope that is limited by the scope of the model. Simply described, a conceptual mode is the first step in organizing the data requirements. (Wikipedia)
Well, in this Wikipedia definition (there are several) they actually called it a 'schema' instead of a model and we don't think that's quite accurate - so we changed it here. The schema implies that the model is being built to a specific DB technology whereas a Conceptual Model is wholly agnostic. In fact, a CDM is a lot like a UML Domain Model and that's a good place to talk about the big picture nature of Conceptual Modeling:

  • UML Domain Models represent the Conceptual Classes of an application-focused solution or those classes can be used to model database structures if the modeler doesn't wish to capture ERD type relationships (although many data modelers do).
  • A CDM is an ERD construct - the highest level of relational database design. Although, it is possible to use both Domain Models and CDMs to capture Big Data structures as well (we'll talk about that in a future post).
  • Entity Relationship Diagram (ERD) is a specialized graphic that illustrates the relationships between entities in a database. ER diagrams often use symbols to represent three different types of information. Boxes are commonly used to represent entities. Diamonds are normally used to represent relationships and ovals are used to represent attributes. 
  • Conceptual Modeling in general is built into most architecture exercises and Data is always one of the dimensions captured (just not in the same way across all EA approaches).
UML Domain Models can be fairly detailed (and in fact may represent much of what will be become the Class diagrams)
There is no set method to going about this. One could use a UML Domain Model and then Class Diagrams to be their Conceptual and Logical Design before they move to the Database or one could also define a CDM and a Domain Model and Class Diagrams and then a more detailed Logical Data Model (then generate the Database schema from the Logical Model).

Another interesting consideration for the CDM is its relation to Master Data Management (MDM). Since the CDM is focused on exploring what the key data entities in the solution are up front it becomes the first and perhaps the most important reference for determining which of those entities ought to be managed as Master Data.  


Now, with this background, this is our recommendation of when to use Conceptual Models:

  1. Use a CDM when you need a better understanding of the data behind Data Flow diagrams or other business process models or analysis.
  2. Use a CDM if you are sure you will be employing any sort of MDM-related capability.
  3. Use a CDM if you intend to use database modeling tools to generate the DDL for your DB schemas from a Logical Model. 
  4. Use a CDM for sure if you're not using UML or another EA framework to capture data definition /models. 
  5. Use a CDM if you want to understand early in the process where integration may need to occur and whether you will need to establish data interfaces (and if you need to examine data in advance that you may not own).

Our next post will explore how to build CDMs.



Copyright 2012  - Technovation Talks, Semantech Inc

1 comments:

  1. Great article! In regards to ER diagrams, I have recently learned ER Diagram Symbols and Meaning (Entity Relationship Diagram) using Lucidchart and their site is very helpful and easy to use! Check it out!

    ReplyDelete