We like to often emphasize that Ellie’s preferred style of Business-Driven Conceptual Modeling is not about technologies or databases, but about modeling (and therefore understanding) reality. These kinds of models are easier to understand, they are reusable in basically any project, and they guide your data thinking towards actual business benefits rather than individual technological solutions. The jump from tech to reality is a vital one, but it’s not always mentally so easy! One very effective trick is to start thinking of modeling in terms of basic human language: verbs and nouns.
First, you need to start with a story. This is a verbal description, in normal language, of the business process or problem area about which you have data. Consider the following process in an imaginary bank:
The customer fills in a credit application, which is then sent to a credit agency to be rated. Based on the rating, a decision is made on whether or not we can grant the customer a new credit card.
This story already contains all the elements you need for a data model! How? Let’s have a closer look.
Your story is now in an easily understandable format: the everyday language of words and sentences. The first order of business is to identify the nouns. The nouns of the story contain the entities we’re interested in:
The customer fills in a credit application, which is then sent to a credit agency to be rated. Based on the rating, a decision is made on whether or not we can grant them a new credit card.
Some of these nouns are entities (the “things” we have data about); some of them might be attributes of things, and some might be other stuff like systems, reports, or other artifacts which might be interesting later but do not belong in a data model. By applying these three categories (entities, attributes, other stuff) we will be able to identify real entities according to the rules we discussed in Modeler’s Corner #1. Clearly, here the entities are Customer, Credit Application, Credit Agency, and Credit Card (“rating” seems like an attribute of Credit Application, and “decision” is perhaps more like a process step than a thing about which we want to maintain data).
Now you have a good list of entities derived from your real-life story (not from a technological system!). The next thing a data model requires is relationships between the entities. A relationship is an association between two entities. Which parts of your story might tell us about these associations between your already-identified nouns? The verbs.
The customer fills in a credit application, which is then sent to a credit agency to be rated. Based on the rating, a decision is made on whether or not we can grant them a new credit card.
We have here only highlighted the verbs that have to do with the nouns that are our identified entities. These verbs describe the associations between the entities; therefore, in our model, they will be the relationships.
In effect, you should always find a verb to describe all the relationships in your model. And not just any verb will do: a story made of verbs like “relates to” or “links to” is not a very informative one! Instead, you should aim to find verbs that describe the real-life association of real-life things, and thus carry vital business information.
Above you can see a model created from our story, with the identified entities and relationships. You can see that in the relationship between the Credit Application and Credit Agency, we used two verbs for one relationship: this is because in this example we considered the verbs “sent to be rated” and “rated” to describe the same association, just from different points of view.
Naturally, this is a very simple example, and clearly, we would need to continue our story to find out what else is involved here (for example, the branch of the bank in which the Customer applies for credit might be important, and we didn’t cover anything related to accounts which are likely involved in the actual process). However, it should still be enough to convey the basic message of this blog post: you are not modeling technology but real life, and real life can and should be described in verbal form. The model itself is merely a graphical representation of the story.
If you can forget about complicated technical structures and start thinking simply in terms of verbs and nouns, you are well on your way to being a great data modeler!