What's the difference between Data Modelling and Domain Modelling?

By the way - with reference to data modelling I'm referring to logical or conceptual data models - not physical ones.

The question came up during a discussion at work; naturally I leapt to Wikipedia to get some basic definitions in place - hoping that they might clarify the difference - but they didn't...

A conceptual schema or conceptual data model is a map of concepts and their relationships.

Logical Data Modles seem very similar (from this definition):

A logical data model (LDM) in systems engineering is a representation of an organization's data, organized in terms entities and relationships and is independent of any particular data management technology.

Where-as...

A domain model, or Domain Object Model (DOM) in problem solving and software engineering can be thought of as a conceptual model of a system which describes the various entities involved in that system and their relationships.

The differences between domain model vs conceptual data model seems particularly murky.

One of the things which adds to this confusion is that (from what I've seen) a domain model is usually modelled using a UML class diagram - the class entity in a UML class diagram supports methods - our colleague maintains that a domain model must not contain "operations". I can understand domain modellers using a sub-set of a UML class diagram - but isn't it dangerous to assume people will refrain from including "operations" if the tooling they are using supports it?

30
задан Adrian K 17 August 2010 в 23:05
поделиться

3 ответа

Хороший вопрос, проблема в том, что это зависит от определения терминов, я думаю, что они немного различаются в зависимости от источников. Я бы согласился с предыдущим ответом - модели предметной области предназначены для описания проблемной области, по крайней мере, той части, которая вам нужна для разработки решения. Вы описываете все различные сущности, их отношения и их поведение. Я думаю, что это тоже точка зрения с точки зрения дизайна, основанного на домене. С другой стороны, модели данных используются для описания данных в вашей системе и отношений или ассоциаций между ними. Это полезно для описания того, что необходимо сохранить в системе, а также может дать подсказки, как это сделать. Я думаю, что модели данных применимы к вашему правилу «без операций», потому что они не важны в этом отношении.

14
ответ дан 28 November 2019 в 00:22
поделиться

Я бы сказал, что модель предметной области описывает проблемы (то, что мы хотим управлять / решать) в данном домене. Модель данных будет описывать решение (как мы собираемся его решать) проблемы, описанной в модели предметной области.

Однако мы действительно находимся в мутной воде ...

1
ответ дан 28 November 2019 в 00:22
поделиться

Domain Modeling (в смысле Domain Driven Design) - это моделирование поведения концепций домена, в то время как Data Modeling фокусируется в основном на... данных.

Это не значит, что Domain Modeling игнорирует структуры данных. Просто в нем больше внимания уделяется операциям и тому, как они могут быть использованы для решения проблем.

Я не очень много знаю о других методах моделирования домена, кроме Domain Driven Design, но DDD включает (помимо моделирования данных и поведения) также явное моделирование границ согласованности (агрегатов).

9
ответ дан 28 November 2019 в 00:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: