El modelado de datos en ingeniería de software es el proceso de creación de un modelo de datos para un sistema de información mediante la aplicación de ciertas técnicas formales. Puede aplicarse como parte del concepto más amplio de ingeniería basada en modelos (MDE).
El modelado de datos es un proceso que se utiliza para definir y analizar los requisitos de datos necesarios para respaldar los procesos comerciales dentro del alcance de los sistemas de información correspondientes en las organizaciones. Por lo tanto, el proceso de modelado de datos involucra a modeladores de datos profesionales que trabajan en estrecha colaboración con las partes interesadas de la empresa, así como con los usuarios potenciales del sistema de información.
Existen tres tipos diferentes de modelos de datos que se generan a medida que se avanza desde los requisitos hasta la base de datos real que se utilizará para el sistema de información. [2] Los requisitos de datos se registran inicialmente como un modelo de datos conceptual que es esencialmente un conjunto de especificaciones independientes de la tecnología sobre los datos y se utiliza para discutir los requisitos iniciales con las partes interesadas del negocio. Luego, el modelo conceptual se traduce en un modelo de datos lógico , que documenta las estructuras de los datos que se pueden implementar en las bases de datos. La implementación de un modelo de datos conceptual puede requerir varios modelos de datos lógicos. El último paso en el modelado de datos es transformar el modelo de datos lógicos en un modelo de datos físico que organiza los datos en tablas y da cuenta de los detalles de acceso, rendimiento y almacenamiento. El modelado de datos define no solo los elementos de datos, sino también sus estructuras y las relaciones entre ellos. [3]
Las técnicas y metodologías de modelado de datos se utilizan para modelar los datos de una manera estándar, consistente y predecible con el fin de gestionarlos como un recurso. El uso de estándares de modelado de datos se recomienda encarecidamente para todos los proyectos que requieren un medio estándar para definir y analizar datos dentro de una organización, por ejemplo, mediante el uso de modelos de datos:
El modelado de datos se puede realizar durante distintos tipos de proyectos y en múltiples fases de los mismos. Los modelos de datos son progresivos; no existe un modelo de datos final para una empresa o aplicación. En cambio, un modelo de datos debe considerarse un documento vivo que cambiará en respuesta a un cambio en la empresa. Lo ideal es que los modelos de datos se almacenen en un repositorio para que se puedan recuperar, ampliar y editar con el tiempo. Whitten et al. (2004) determinaron dos tipos de modelado de datos: [4]
El modelado de datos también se utiliza como técnica para detallar los requisitos comerciales de bases de datos específicas . A veces se lo denomina modelado de bases de datos porque un modelo de datos se implementa finalmente en una base de datos. [4]
Los modelos de datos proporcionan un marco para que los datos se utilicen en los sistemas de información, ya que proporcionan definiciones y formatos específicos. Si un modelo de datos se utiliza de forma coherente en todos los sistemas, se puede lograr la compatibilidad de los datos. Si se utilizan las mismas estructuras de datos para almacenar y acceder a los datos, las distintas aplicaciones pueden compartirlos sin problemas. Los resultados de esto se indican en el diagrama. Sin embargo, los sistemas y las interfaces suelen ser costosos de construir, operar y mantener. También pueden limitar el negocio en lugar de respaldarlo. Esto puede ocurrir cuando la calidad de los modelos de datos implementados en los sistemas y las interfaces es deficiente. [1]
Algunos problemas comunes encontrados en los modelos de datos son:
En 1975 ANSI describió tres tipos de instancias de modelos de datos : [5]
Según ANSI, este enfoque permite que las tres perspectivas sean relativamente independientes entre sí. La tecnología de almacenamiento puede cambiar sin afectar ni al esquema lógico ni al conceptual. La estructura de la tabla/columna puede cambiar sin afectar (necesariamente) al esquema conceptual. En cada caso, por supuesto, las estructuras deben permanecer consistentes en todos los esquemas del mismo modelo de datos.
En el contexto de la integración de procesos de negocio (ver figura), el modelado de datos complementa el modelado de procesos de negocio y, en última instancia, da como resultado la generación de una base de datos. [6]
El proceso de diseño de una base de datos implica la producción de los tres tipos de esquemas descritos anteriormente: conceptual, lógico y físico. El diseño de la base de datos documentado en estos esquemas se convierte a través de un lenguaje de definición de datos , que luego se puede utilizar para generar una base de datos. Un modelo de datos con todos los atributos contiene atributos detallados (descripciones) para cada entidad dentro de él. El término "diseño de base de datos" puede describir muchas partes diferentes del diseño de un sistema de base de datos general . Principalmente, y más correctamente, se puede pensar en él como el diseño lógico de las estructuras de datos base utilizadas para almacenar los datos. En el modelo relacional, estas son las tablas y las vistas . En una base de datos de objetos, las entidades y las relaciones se asignan directamente a clases de objetos y relaciones con nombre. Sin embargo, el término "diseño de base de datos" también se podría utilizar para aplicarlo al proceso general de diseño, no solo de las estructuras de datos base, sino también de los formularios y consultas utilizados como parte de la aplicación general de la base de datos dentro del sistema de gestión de bases de datos o DBMS.
En el proceso, las interfaces de los sistemas representan entre el 25% y el 70% de los costos de desarrollo y soporte de los sistemas actuales. La razón principal de este costo es que estos sistemas no comparten un modelo de datos común . Si los modelos de datos se desarrollan sistema por sistema, no solo se repite el mismo análisis en áreas superpuestas, sino que se deben realizar análisis adicionales para crear las interfaces entre ellos. La mayoría de los sistemas dentro de una organización contienen los mismos datos básicos, rediseñados para un propósito específico. Por lo tanto, un modelo de datos básico diseñado de manera eficiente puede minimizar la repetición del trabajo con modificaciones mínimas para los propósitos de diferentes sistemas dentro de la organización [1].
Los modelos de datos representan áreas de información de interés. Si bien existen muchas formas de crear modelos de datos, según Len Silverston (1997) [7] solo se destacan dos metodologías de modelado, la de arriba hacia abajo y la de abajo hacia arriba:
A veces, los modelos se crean con una combinación de ambos métodos: teniendo en cuenta las necesidades y la estructura de los datos de una aplicación y haciendo referencia de forma coherente a un modelo de área temática. En muchos entornos, la distinción entre un modelo de datos lógicos y un modelo de datos físicos es borrosa. Además, algunas herramientas CASE no distinguen entre modelos de datos lógicos y físicos . [7]
Existen varias notaciones para el modelado de datos. El modelo real se denomina con frecuencia "modelo entidad-relación", porque representa los datos en términos de las entidades y relaciones descritas en los datos . [4] Un modelo entidad-relación (ERM) es una representación conceptual abstracta de datos estructurados. El modelado entidad-relación es un método de modelado de bases de datos de esquema relacional , utilizado en ingeniería de software para producir un tipo de modelo de datos conceptual (o modelo de datos semántico ) de un sistema, a menudo una base de datos relacional , y sus requisitos de manera descendente .
Estos modelos se utilizan en la primera etapa del diseño de sistemas de información durante el análisis de requisitos para describir las necesidades de información o el tipo de información que se almacenará en una base de datos . La técnica de modelado de datos se puede utilizar para describir cualquier ontología (es decir, una descripción general y clasificaciones de los términos utilizados y sus relaciones) para un determinado universo de discurso, es decir, un área de interés.
Se han desarrollado varias técnicas para el diseño de modelos de datos. Si bien estas metodologías guían a los modeladores de datos en su trabajo, dos personas diferentes que utilicen la misma metodología a menudo obtendrán resultados muy diferentes. Los más destacados son:
Los modelos de datos genéricos son generalizaciones de los modelos de datos convencionales . Definen tipos de relaciones generales estandarizados, junto con los tipos de cosas que pueden estar relacionadas por dicho tipo de relación. La definición de modelo de datos genérico es similar a la definición de un lenguaje natural. Por ejemplo, un modelo de datos genérico puede definir tipos de relaciones como una "relación de clasificación", que es una relación binaria entre una cosa individual y un tipo de cosa (una clase) y una "relación parte-todo", que es una relación binaria entre dos cosas, una con el papel de parte, la otra con el papel de todo, independientemente del tipo de cosas que estén relacionadas.
Dada una lista extensible de clases, esto permite la clasificación de cualquier cosa individual y especificar relaciones parte-todo para cualquier objeto individual. Mediante la estandarización de una lista extensible de tipos de relaciones, un modelo de datos genérico permite la expresión de un número ilimitado de tipos de hechos y se acercará a las capacidades de los lenguajes naturales. Los modelos de datos convencionales, por otro lado, tienen un alcance de dominio fijo y limitado, porque la instanciación (uso) de un modelo de este tipo solo permite expresiones de tipos de hechos que están predefinidos en el modelo.
La estructura de datos lógica de un DBMS, ya sea jerárquica, de red o relacional, no puede satisfacer totalmente los requisitos de una definición conceptual de los datos porque tiene un alcance limitado y está sesgada hacia la estrategia de implementación empleada por el DBMS. Esto es así a menos que el modelo de datos semántico se implemente en la base de datos a propósito, una elección que puede afectar ligeramente el rendimiento pero que, en general, mejora enormemente la productividad.
Por lo tanto, la necesidad de definir los datos desde una perspectiva conceptual ha llevado al desarrollo de técnicas de modelado semántico de datos , es decir, técnicas para definir el significado de los datos dentro del contexto de sus interrelaciones con otros datos. Como se ilustra en la figura, el mundo real, en términos de recursos, ideas, eventos, etc., se define simbólicamente por su descripción dentro de los almacenes de datos físicos. Un modelo semántico de datos es una abstracción que define cómo los símbolos almacenados se relacionan con el mundo real. Por lo tanto, el modelo debe ser una representación verdadera del mundo real. [8]
El objetivo del modelado semántico de datos es crear un modelo estructural de una parte del mundo real, denominada "universo del discurso". Para ello, se consideran tres relaciones estructurales fundamentales:
Un modelo de datos semánticos se puede utilizar para muchos propósitos, tales como: [8]
El objetivo general de los modelos de datos semánticos es captar más significado de los datos mediante la integración de conceptos relacionales con conceptos de abstracción más potentes conocidos en el campo de la inteligencia artificial . La idea es proporcionar primitivas de modelado de alto nivel como parte integral de un modelo de datos para facilitar la representación de situaciones del mundo real. [10]