Domain Model

A domain encompasses everything that defines a concerned business, such as its 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 a business analysis perspective is the business terms that most companies have, which hold a specific meaning within the context of the organization.

All this information is documented in a domain model that consolidates everything into a single place. There is no prescribed format for a domain model, so it could be a set of diagrams, a large knowledge base, or just a single written document. However, in the context of data modeling, we focus on the part of the domain model that 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 a domain model is a high-level class diagram showing the main domain entities. Each class can represent a 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 entities. It is also expected to provide information about the relationships between them. For this reason, the diagram alone is not sufficient. It is surely beneficial to know that "A product is any article the company has ever manufactured", but what exactly does the association between a product and a product catalog mean? Does it mean that a product is always included in just one catalog, or can it be in multiple? These questions should not exist if the company maintains a high-quality domain model:

aa

Domain vs. Database

A domain model describes the relevant terms within a given domain. It is not related to any specific solution, technology, or approach, nor does it represent how data will be physically stored in the system (the persistence model). The reason to separate the domain model from the logical data model (which is tied to the chosen technology) is to keep the domain model technology-independent. The domain model will then remain valid even if the underlying logical data model changes.

REMEMBER

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