As you may have seen from recent blog posts I have just started on a journey of consultancy. In that post I explained about how education and continuous improvement by learning is one of the core themes when starting out.
One of the biggest initial areas of learning, for me, has been around Microsoft Dataverse. Dataverse underpins virtually every part of the Power Platform and Microsoft Dynamics sits on top of Dataverse by exposing data from Dataverse inside functional model-driven applications based around core functional areas of business.
As we can see from this image above we have the four key applications inside the Power Platform -
Power BI for making decisions based on data,
PowerApps - for creating pixel perfect applications in Canvas Apps, to building data driven applications in model driven apps as well as allowing external parties to connect with your organisation through Portals.
Power Automate - my favourite and this application allows workflow automation to automate business process at a micro and macro level.
Power Virtual Agents, intelligent easy to build chat bots.
All of these applications can interface and surface data from Dataverse, which lets you get to the same data across all parts of the platform.
But hold on. Let’s take a step back and try and answer the question.
The way I look at Dataverse is that it is a group of tables (formerly called Entities) which consist of columns which hold rows of data.
When a Dataverse database is provisioned inside an environment, a core set of tables are provided “out of the box”. This core set of tables are based on the Common Data Model. This is a model that was agreed by Microsoft, Adobe and SAP that provides a structure for storing data which can then be shared and interacted with across the rest of the Power Platform.
The key features that it provides are the fact it can scale, provide a secure method of storage and as explained above is available to the rest of the Power Platform. (Premium connectors are required for use in Power Automate, however you can connect to Dataverse for free if using Power Automate/PowerApps in the context of Dataverse for Teams - blog post here).
You can also build logic and validation in Dataverse by creating calculated columns, business rules, business process flows which will ensure data quality and drive business processes.
Can you extend it ?
Well. Yes. Of course.
Depending on your use case you can create additional tables or custom tables with any columns you need. When a custom table is created it is provisioned with standard “out of the box” columns and these can then be added to by adding more custom columns.
The trick here though is to really understand the customer requirements and to understand how all of the data will fit together and relate to each other. Which brings us to relationships.
If you have come across databases in one form or another over the years you will have probably heard of these relationship types before. But there are in essence 3 types:
1 to many - also known as a parent to child relationship
1 to 1
Many to many
I’ll try and give you some examples here. In a 1 to many relationship each record or row can have a reference to one or more records in another table. For example, if I order products from a website then I will have many order references. I am one customer and I have many orders.
1 to many relationships can be more than parent and child. For example, parent and child deletes the child records of the parent is deleted, this is an example of a referential 1 to many relationship. In a 1 to 1 relationship each record or row can have a reference to only one record in another table. For example, as a student at a university, I only have one student record or ID. In a many to many relationship, if we continue with the student analogy, many students can attend many classes at their university. Dataverse allows you to build these kinds of relationships easily within the model.
Views can be built to show different filters of your data set. These views can then be used in other parts of the Power Platform to display this data. For example, we could have a canvas app that wants to show only active orders, we could create a view in the order table and use this in a gallery component in the canvas app.
Dataverse is easy to use and as I have explained before I am no programmer there are some nuances to it if you come from a SQL background, the terminology is slightly different. If you want to get into the more advanced aspects of it then read up about Business Process Flows and Business Rules.
Dataverse as a storage medium is very versatile. The fact that three big tech players have come together to generate the schema means that it will have a long shelf life. If you are building apps using the Power Platform, where data storage is a requirement, you should really investigate Dataverse for yourself and see if it fits your use case. What I have found so far is that it does in most cases. I’m very much at the start of my consultancy journey but I can see the power (pardon the pun) Dataverse brings to the table (what, another pun ? Jeez). It’s super easy to use and as I have explained before I am no programmer. I imagine I will come back to this post and expand on it in further posts as ai continue this journey. As always if you have any questions or comments please leave them on the bottom of this post. Thanks for reading.