Quelle est la différence entre la modélisation de données et la modélisation de domaines?

soit dit en passant - en ce qui concerne la modélisation des données, je fais référence à des modèles de données logiques ou conceptuels - et non à des modèles physiques.

la question a été soulevée lors d'une discussion au travail; naturellement J'ai sauté sur Wikipedia pour obtenir quelques définitions de base en place - en espérant qu'ils pourraient clarifier la différence - mais ils ne l'ont pas fait...

Un schéma conceptuel ou modèle conceptuel des données est une carte des concepts et de leurs relation.

Logique de Données Modles semblent très similaires (à partir de cette définition):

modèle logique de données (LDM) dans les systèmes l'ingénierie est une représentation d'un les données de l'organisation, organisé en Termes entités et relations et est indépendant de toute donnée particulière la technologie de gestion.

Où-comme...

modèle de domaine, ou le modèle D'objet de domaine (DOM) in résolution de problèmes et logiciels l'ingénierie peut être considéré comme un modèle conceptuel d'un système qui décrit les différentes entités impliqués dans ce système et de leurs relation.

les différences entre le modèle de domaine et le modèle de données conceptuelles semblent particulièrement floues.

une des choses qui ajoute à cette confusion est que (d'après ce que j'ai vu) un modèle de domaine est habituellement modélisé en utilisant un diagramme de classe UML - l'entité de classe dans une classe UML le diagramme soutient les méthodes - notre collègue soutient qu'un modèle de domaine ne doit pas contenir d ' "opérations". Je peux comprendre les modeleurs de domaines en utilisant un sous-ensemble d'un diagramme de classe UML - mais n'est-il pas dangereux de supposer que les gens vont s'abstenir d'inclure des "opérations" si l'outillage qu'ils utilisent le supporte?

26
demandé sur Adrian K 2010-08-18 03:05:18

4 réponses

Bonne question, le problème est que cela dépend de la definion des termes, je pense qu'ils diffèrent légèrement en fonction des sources. Je suis d'accord avec la réponse précédente - les modèles de domaine sont pour décrire le domaine de problème, au moins la partie dont vous avez besoin pour développer une solution. - Vous décrire les différentes entités, leurs relations et leur comportement. Je pense que c'est également le point de vue de la conception axée sur le domaine. Par contre, les modèles de données sont utilisés pour décrire les votre système et les relations ou associations entre eux. Ceci est utile pour décrire ce qui doit être stocké dans le système et peut aussi donner des indications sur la façon de le faire. Je pense que les modèles de données s'appliqueraient à votre règle "aucune opération", parce qu'ils ne sont pas importants à cet égard.

11
répondu Gabriel Ščerbák 2010-08-17 23:41:31

la modélisation de domaine (au sens de domaine Driven Design) est tout au sujet de la modélisation du comportement des concepts de domaine, tandis que la modélisation des données se concentre principalement sur... données.

cela ne signifie pas que la modélisation de domaine ignore les structures de données. Il met juste plus l'accent sur les opérations et la façon dont ils peuvent être utilisés pour résoudre des problèmes.

Je ne sais pas grand chose sur autre chose que les techniques de modélisation de domaine de conception pilotée par domaine, mais DDD implique (en dehors de la modélisation des données et le comportement) également modélisation explicite de cohérence des limites (agrégats).

5
répondu Szymon Pobiega 2010-08-18 05:04:08

Ceci est un vieux fil, Mais voici une réponse légèrement améliorée pour clarifier certains des autres affichés ici.

La notion de "domaine" (et d'autres types de modèles tels que conceptuel, logique et physique) est orthogonal à la technique utilisée pour représenter le modèle (par exemple. ERD, UML, etc.). Un modèle de domaine est essentiellement le même qu'un modèle conceptuel, mais des méthodologies de conception différentes peuvent avoir des Termes et des définitions légèrement différents. Alors qu'il est courant de dessiner des modèles de domaines en utilisant UML ou ERD pour décrire les entités et leurs relations (ou classes/méthodes en UML), ceci ne s'applique qu'à la modélisation de l'information à gérer par un système - logiquement, le concept de modélisation de domaine (ou modélisation conceptuelle, modélisation logique ou physique, etc) peut s'appliquer à n'importe quelle situation de problème et une solution. Selon la nature du problème et la méthode de résolution des problèmes, d'autres techniques de modélisation pourraient être utilisées pour atteindre le même objectif.

dans bref, la modélisation par domaine et la modélisation conceptuelle sont essentiellement la même chose, abstraction faite des définitions qui se recoupent. Le concept s'applique à le modélisateur essaie de communiquer. Le concept de modélisation des données (c.-à-d. ERD) ou la modélisation orientée objet (c.-à-d. UML) fait référence à comment le modélisateur le communique.

2
répondu Rob Meredith 2013-09-11 00:05:22

je dirais qu'un modèle de domaine décrit les problèmes (ce que nous voulons gérer/résoudre) sur un domaine donné. Le modèle de données décrirait la solution (comment nous allons la résoudre) au problème décrit sur le modèle de domaine.

Cependant, nous sommes en effet dans les eaux troubles...

0
répondu Rui Curado 2010-08-17 23:11:38