it-swarm.com.de

Was ist der Unterschied zwischen Datenmodellierung und Domänenmodellierung?

Übrigens - in Bezug auf die Datenmodellierung beziehe ich mich auf logische oder konzeptionelle Datenmodelle - nicht auf physikalische.

Die Frage kam während einer Diskussion bei der Arbeit auf; Natürlich bin ich zu Wikipedia gesprungen, um einige grundlegende Definitionen zu finden - in der Hoffnung, dass sie den Unterschied klarstellen - aber sie haben es nicht getan ...

Ein konzeptionelles Schema oder konzeptionelles Datenmodell ist eine Karte der Konzepte und ihrer Beziehungen.

Logische Datenmodelle scheinen sehr ähnlich zu sein (aus dieser Definition):

Ein logisches Datenmodell (LDM) im Systems Engineering ist eine Darstellung der Daten einer Organisation, die in Entitäten und Beziehungen organisiert und von einer bestimmten Datenverwaltungstechnologie unabhängig ist.

Wohingegen...

Ein Domänenmodell oder Domänenobjektmodell (Domain Object Model, DOM) bei der Problemlösung und beim Software-Engineering kann als konzeptionelles Modell eines Systems angesehen werden, das die verschiedenen an diesem System beteiligten Entitäten und ihre Beziehungen beschreibt.

Die Unterschiede zwischen Domänenmodell und konzeptionellem Datenmodell scheinen besonders trübe zu sein.

Eines der Dinge, die zu dieser Verwirrung beitragen, ist, dass (wie ich gesehen habe) ein Domänenmodell normalerweise mithilfe eines UML-Klassendiagramms modelliert wird - die Klassenentität in einem UML-Klassendiagramm unterstützt Methoden -, unser Kollege behauptet, dass ein Domänenmodell erforderlich ist keine "Operationen" enthalten. Ich kann Domain-Modellierer verstehen, die eine Untergruppe eines UML-Klassendiagramms verwenden - aber ist es nicht gefährlich anzunehmen, dass die Leute "Operationen" nicht einschließen, wenn das von ihnen verwendete Tool dies unterstützt?

27
Adrian K

Gute Frage, das Problem ist, dass es von der Definition der Begriffe abhängt. Ich denke, sie unterscheiden sich geringfügig je nach Quelle. Ich stimme der vorherigen Antwort zu Teil müssen Sie eine Lösung entwickeln. Sie beschreiben alle verschiedenen Entitäten, ihre Beziehungen und ihr Verhalten. Ich denke, dass dies auch die Sicht aus domänengesteuerter Designperspektive ist. Datenmodelle dagegen werden verwendet, um die Daten in Ihrem System und die Beziehungen oder Assoziationen zwischen ihnen zu beschreiben. Dies ist nützlich, um zu beschreiben, was im System gespeichert werden muss, und kann auch Hinweise dazu geben. Ich denke, dass Datenmodelle für Ihre Regel "keine Operationen" gelten würden, da sie in dieser Hinsicht nicht wichtig sind.

11

Bei der Domänenmodellierung (im Sinne von Domain Driven Design) geht es ausschließlich um die Modellierung des Verhaltens der Domänenkonzepte, während sich die Datenmodellierung hauptsächlich auf ... Daten konzentriert.

Dies bedeutet nicht, dass die Domänenmodellierung Datenstrukturen ignoriert. Es legt einfach mehr Wert auf Operationen und wie sie zur Problemlösung eingesetzt werden können. 

Ich weiß nicht viel über die Domänenmodellierungstechniken von Domain Driven Design, aber DDD beinhaltet (neben der Modellierung von Daten und Verhalten) auch die explizite Modellierung von Konsistenzgrenzen (Aggregate).

5
Szymon Pobiega

Dies ist ein alter Thread, aber hier ist eine etwas verbesserte Antwort, um einige der anderen hier zu verdeutlichen.

Das Konzept der "Domäne" (und anderer Arten von Modellen wie konzeptionell, logisch und physisch) ist orthogonal zu der zur Repräsentation des Modells verwendeten Technik (z. B. ERD, UML usw.). Ein Domänenmodell ist im Wesentlichen dasselbe wie ein konzeptionelles Modell, jedoch können unterschiedliche Entwurfsmethoden geringfügig unterschiedliche Begriffe und Definitionen haben. Während Domänenmodelle häufig mit UML oder ERD gezeichnet werden, um Entitäten und ihre Beziehungen (oder Klassen/Methoden in UML) zu beschreiben, gilt dies nur für die Modellierung der Informationen, die von einem System verwaltet werden sollen - logisch, das Konzept der Domänenmodellierung (oder konzeptionellen) Modellierung, logische Modellierung oder physikalische Modellierung usw.) kann auf jede Problemsituation und Lösung angewendet werden. Abhängig von der Art des Problems und dem Problemlösungsansatz können andere Modellierungstechniken verwendet werden, um dasselbe Ziel zu erreichen.

Kurz gesagt: Domänenmodellierung und konzeptuelle Modellierung sind im Wesentlichen dasselbe, abgesehen von den Haarteilungsdefinitionen. Das Konzept gilt für was der Modeller versucht zu kommunizieren. Das Konzept der Datenmodellierung (dh ERD) oder der objektorientierten Modellierung (dh UML) bezieht sich auf wie der Modellierer es kommuniziert.

2
Rob Meredith

Ich würde sagen, dass ein Domänenmodell die Probleme (was wir verwalten/lösen möchten) in einer bestimmten Domäne beschreibt. Das Datenmodell würde die Lösung des auf dem Domänenmodell beschriebenen Problems beschreiben (wie wir es lösen werden).

Wir sind jedoch tatsächlich in trüben Gewässern ...

0
Rui Curado