domain driven design - quickly - ¿Cuál es la diferencia entre el modelado de datos y el modelado de dominios?
domain driven design pdf (4)
Buena pregunta, el problema es que depende de la definición de los términos, creo que difieren ligeramente según las fuentes. Estoy de acuerdo con la respuesta anterior: los modelos de dominio son para describir el dominio del problema, al menos la parte que necesita para desarrollar una solución. Describes todas las diversas entidades, sus relaciones y su comportamiento. Creo que esta es también la vista desde la perspectiva del diseño Dominio. Los modelos de datos, por otro lado, se utilizan para describir los datos en su sistema y las relaciones o asociaciones entre ellos. Esto es útil para describir lo que necesita ser almacenado en el sistema y también puede dar consejos sobre cómo hacerlo. Creo que los modelos de datos se aplicarían a su regla de "no operaciones", porque no son importantes a este respecto.
Por cierto, con referencia al modelado de datos, me refiero a modelos de datos lógicos o conceptuales, no a modelos físicos.
La pregunta surgió durante una discusión en el trabajo; naturalmente, me dirigí a Wikipedia para establecer algunas definiciones básicas, con la esperanza de que pudieran aclarar la diferencia, pero no lo hicieron ...
Un esquema conceptual o modelo conceptual de datos es un mapa de conceptos y sus relaciones.
Los Modles de datos lógicos parecen muy similares (de esta definición):
Un modelo de datos lógico (LDM) en ingeniería de sistemas es una representación de los datos de una organización, organizada en términos de entidades y relaciones, y es independiente de cualquier tecnología de administración de datos en particular.
Mientras...
Un modelo de dominio , o modelo de objeto de dominio (DOM) en resolución de problemas e ingeniería de software puede considerarse como un modelo conceptual de un sistema que describe las diversas entidades involucradas en ese sistema y sus relaciones.
Las diferencias entre el modelo de dominio y el modelo conceptual de datos parecen particularmente turbias.
Una de las cosas que se suma a esta confusión es que (por lo que he visto) un modelo de dominio generalmente se modela utilizando un diagrama de clase UML (la entidad de clase en un diagrama de clase UML admite métodos), nuestro colega sostiene que un modelo de dominio debe No contiene "operaciones". Puedo entender a los modeladores de dominios usando un subconjunto de un diagrama de clase UML, pero ¿no es peligroso suponer que las personas se abstendrán de incluir "operaciones" si las herramientas que están utilizando lo admiten?
El Modelado de Dominio (en el sentido de Diseño Dirigido por Dominio) se basa en modelar el comportamiento de los conceptos de dominio, mientras que el Modelado de Datos se enfoca principalmente en ... datos.
No significa que el modelado de dominios ignore las estructuras de datos. Simplemente pone más énfasis en las operaciones y en cómo se pueden usar para resolver problemas.
No conozco mucho más que las técnicas de modelado de dominios de diseño impulsado por dominios, pero DDD implica (además de los datos de modelado y el comportamiento) también modela explícitamente los límites de consistencia (agregados).
Este es un hilo antiguo, pero aquí hay una respuesta ligeramente mejorada para aclarar algunos de los otros publicados aquí.
El concepto de ''dominio'' (y otros tipos de modelos como conceptual, lógico y físico) es ortogonal a la técnica utilizada para representar el modelo (por ejemplo, ERD, UML, etc.). Un modelo de dominio es esencialmente lo mismo que un modelo conceptual, pero diferentes metodologías de diseño pueden tener términos y definiciones ligeramente diferentes. Si bien es común dibujar modelos de dominio utilizando UML o ERD para describir las entidades y sus relaciones (o clases / métodos en UML), esto solo se aplica al modelado de la información que debe administrar un sistema, lógicamente, el concepto de modelado de dominio (o conceptual). El modelado, el modelado lógico o el modelado físico, etc. pueden aplicarse a cualquier situación problemática y una solución. Dependiendo de la naturaleza del problema y del enfoque de resolución de problemas, se podrían usar otras técnicas de modelado para lograr el mismo objetivo.
En resumen, el modelado de dominios y el modelado conceptual son esencialmente lo mismo, dejando de lado las definiciones de divisiones. El concepto se aplica a lo que el modelador está tratando de comunicar. El concepto de modelado de datos (es decir, ERD) o modelado orientado a objetos (es decir, UML) se refiere a cómo el modelador lo comunica.
Yo diría que un modelo de dominio describe los problemas (lo que queremos gestionar / resolver) en un dominio determinado. El modelo de datos describiría la solución (cómo lo vamos a resolver) al problema descrito en el modelo de dominio.
Sin embargo, estamos de hecho en aguas turbias ...