Domain Model

A domain is everything that defines the concerned business, such as rules, processes, and existing systems. It also typically involves ideas, knowledge, and data that represent the organization, its business, and the identified problem. An essential part of the domain from the perspective of business analysis is also the business terms that most companies have and which have specific meaning within the context of the organization.

All this information is documented in a domain model that consolidates everything to a single place. There is no prescribed form of the domain model, so it could be a set of diagrams, a big knowledge base, or just one written document. However, in the context of data modeling, we are focusing on the part of the domain model, which describes the vocabulary and key concepts of the problem domain. This involves identifying the main business entities within the domain, along with the relationships that exist between them.

The most common form of the domain model is a high-level class diagram showing the main domain entities. Each class represents the business process, business rule, role, term, or system, for example.

aa

The aim of such a model is not only to describe the meaning of the entities. It is also expected to provide information about the relationships between them. For this reason, the diagram itself is not sufficient. It is surely beneficial to know that "Product is any article the company has ever manufactured", but what does exactly mean the association between the product and the product catalog? Does it mean that the product is always included in just one catalog or in multiple? These questions should not exist if the company has a quality domain model:

aa

Domain vs. Database

The domain model describes the relevant terms in the given domain. It is not related to any solution, technology, or approach, and it also does not represent how the data will be stored in the system (the persistence model). The reason to separate the domain model and the logical data model (which is tied to the selected technology), is to keep the domain model technology-independent. The domain model will then remain valid even if the logical data model changes.

REMEMBER

Domain model is not a persistence model. It does not describe how the data is stored in the system. Domain entities are business concepts, not persistent data structures manipulated by the system.