I thought I would put together a short explanation of Microsoft’s Common Data X conventions, and specifically what the meaning and differences are between CDM and CDS.
One of my drivers for this is that I didn’t fully understand it myself, or at least I find it difficult to articulate the definitions, and there’s surprisingly little about the connection between the terms….
So let’s start off with the “official” definitions of both
Common Data Model
The Common Data Model is a declarative specification, and definition of standard entities that represent commonly used concepts and activities across business and productivity applications, and is being extended to observational and analytical data as well. CDM provides well-defined, modular, and extensible business entities such as Account, Business Unit, Case, Contact, Lead, Opportunity, and Product, as well as interactions with vendors, workers, and customers, such as activities and service level agreements. Anyone can build on and extend CDM definitions to capture additional business-specific ideas.
Common Data Service
Common Data Service lets you securely store and manage data that’s used by business applications. Data within Common Data Service is stored within a set of entities. An entity is a set of records used to store data, similar to how a table stores data within a database. Common Data Service includes a base set of standard entities that cover typical scenarios, but you can also create custom entities specific to your organization and populate them with data using Power Query. App makers can then use PowerApps to build rich applications using this data.
There we go…… thats clear Isn’t it?………….
Still doesn’t feel like a clear explanation, so let’s try again…..
I think the clue to understanding this is in the last word of both expressions – Model and Service
A Model provides a framework, or architecture that standardises something….. so for example you might use the expression
“the project became a model for other schemes” to infer that other projects will be based on this.
So in this context, the Common Data Model is a standardisation of data concepts.
On the Microsoft GitHub page for CDM, you can find the poster below, which I think really explains the concept
The Common Data Model standard defines a common language for business entities covering, over time, the full range of business processes across sales, services, marketing, operations, finance, talent, and commerce and for the Customer, People, and Product entities at the core of a company’s business processes. The goal of CDM is to enable data and application interoperability spanning multiple channels, service implementations, and vendors. CDM provides self-describing data (structurally and semantically), enabling applications to easily read and understand the data.
I think that starts to focus our understanding a little better.
Now, if you really want to dig in to the Schema, and get a good understanding, then you can use the CDM Entity Navigator to drill in to it
So…….. How does CDS fit in to this? Well as with CDM, let’s look at the last word – Service.
If we view the CDM as the standard of entity schema, then the CDS is the mechanism for enabling you to build that data.
To put its simply……if you were to spin up a new environment of CDS here, then it would build it based on the CDM schema, and supply you with some of those standard Entities and relationships defined in the CDM Schema, but the actual data etc would be provisioned or managed by the Service…CDS.
Hopefully the above has helped to explain the difference between CDM and CDS and how they fit in to the landscape.