Un modelo de datos es un modelo abstracto que organiza elementos de datos y estandariza cómo se relacionan entre sí y con las propiedades de las entidades del mundo real . [2] [3] Por ejemplo, un modelo de datos puede especificar que el elemento de datos que representa un automóvil esté compuesto por varios otros elementos que, a su vez, representan el color y el tamaño del automóvil y definen a su propietario.
La actividad profesional correspondiente se denomina generalmente modelado de datos o, más específicamente, diseño de bases de datos . Los modelos de datos suelen ser especificados por un experto en datos, un especialista en datos, un científico de datos, un bibliotecario de datos o un estudioso de datos. Un lenguaje y una notación de modelado de datos suelen representarse en forma gráfica como diagramas. [4]
A veces, un modelo de datos se puede denominar estructura de datos , especialmente en el contexto de los lenguajes de programación . Los modelos de datos suelen complementarse con modelos de funciones , especialmente en el contexto de los modelos empresariales .
Un modelo de datos determina explícitamente la estructura de los datos ; por el contrario, los datos estructurados son datos organizados según un modelo de datos explícito o una estructura de datos. Los datos estructurados se diferencian de los datos no estructurados y de los datos semiestructurados .
El término modelo de datos puede hacer referencia a dos conceptos distintos pero estrechamente relacionados. A veces se refiere a una formalización abstracta de los objetos y relaciones que se encuentran en un dominio de aplicación particular: por ejemplo, los clientes, productos y pedidos que se encuentran en una organización de fabricación. En otras ocasiones se refiere al conjunto de conceptos utilizados para definir dichas formalizaciones: por ejemplo, conceptos como entidades, atributos, relaciones o tablas. Por lo tanto, el "modelo de datos" de una aplicación bancaria se puede definir utilizando el "modelo de datos" de entidad-relación. Este artículo utiliza el término en ambos sentidos.
La gestión de grandes cantidades de datos estructurados y no estructurados es una función primordial de los sistemas de información . Los modelos de datos describen los aspectos de estructura, manipulación e integridad de los datos almacenados en sistemas de gestión de datos, como las bases de datos relacionales. También pueden describir datos con una estructura más flexible, como documentos de procesamiento de textos , mensajes de correo electrónico , imágenes, audio digital y vídeo: XDM , por ejemplo, proporciona un modelo de datos para documentos XML .
El objetivo principal de los modelos de datos es apoyar el desarrollo de sistemas de información proporcionando la definición y el formato de los datos. Según West y Fowler (1999), "si esto se hace de manera consistente 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, diferentes aplicaciones pueden compartirlos. Los resultados de esto se indican anteriormente. Sin embargo, los sistemas e interfaces a menudo cuestan más de lo que deberían para construirlos, operarlos y mantenerlos. También pueden limitar el negocio en lugar de respaldarlo. Una causa importante es que la calidad de los modelos de datos implementados en los sistemas e interfaces es deficiente". [5]
La razón de estos problemas es la falta de estándares que garanticen que los modelos de datos satisfagan las necesidades del negocio y sean consistentes. [5]
Un modelo de datos determina explícitamente la estructura de los datos. Las aplicaciones típicas de los modelos de datos incluyen modelos de bases de datos, diseño de sistemas de información y habilitación del intercambio de datos. Por lo general, los modelos de datos se especifican en un lenguaje de modelado de datos.[3]
Una instancia de modelo de datos puede ser de tres tipos según ANSI en 1975: [6]
La importancia de este enfoque, según ANSI, es que permite que las tres perspectivas sean relativamente independientes entre sí. La tecnología de almacenamiento puede cambiar sin afectar ni al modelo lógico ni al conceptual. La estructura de tabla/columna puede cambiar sin afectar (necesariamente) al modelo conceptual. En cada caso, por supuesto, las estructuras deben permanecer consistentes con el otro modelo. La estructura de tabla/columna puede ser diferente de una traducción directa de las clases de entidad y atributos, pero en última instancia debe llevar a cabo los objetivos de la estructura de clase de entidad conceptual. Las primeras fases de muchos proyectos de desarrollo de software enfatizan el diseño de un modelo de datos conceptual . Tal diseño puede detallarse en un modelo de datos lógico . En etapas posteriores, este modelo puede traducirse en un modelo de datos físico . Sin embargo, también es posible implementar un modelo conceptual directamente.
Uno de los primeros trabajos pioneros en el modelado de sistemas de información fue realizado por Young y Kent (1958), [7] [8] quienes abogaron por "una forma precisa y abstracta de especificar las características informativas y temporales de un problema de procesamiento de datos ". Querían crear "una notación que permitiera al analista organizar el problema en torno a cualquier pieza de hardware ". Su trabajo fue el primer esfuerzo por crear una especificación abstracta y una base invariante para diseñar diferentes implementaciones alternativas utilizando diferentes componentes de hardware. El siguiente paso en el modelado de SI lo dio CODASYL , un consorcio de la industria de TI formado en 1959, que esencialmente apuntaba a lo mismo que Young y Kent: el desarrollo de "una estructura adecuada para el lenguaje de definición de problemas independiente de la máquina, a nivel de sistema de procesamiento de datos". Esto condujo al desarrollo de un álgebra de información de SI específica . [8]
En la década de 1960, el modelado de datos adquirió mayor importancia con el inicio del concepto de sistema de información gerencial (MIS). Según Leondes (2002), "durante ese tiempo, el sistema de información proporcionaba los datos y la información para fines de gestión. El sistema de base de datos de primera generación , llamado Integrated Data Store (IDS), fue diseñado por Charles Bachman en General Electric. Dos modelos de base de datos famosos, el modelo de datos de red y el modelo de datos jerárquico , se propusieron durante este período de tiempo". [9] Hacia finales de la década de 1960, Edgar F. Codd elaboró sus teorías de ordenamiento de datos y propuso el modelo relacional para la gestión de bases de datos basado en la lógica de predicados de primer orden . [10]
En la década de 1970, el modelado de entidad-relación surgió como un nuevo tipo de modelado de datos conceptual, formalizado originalmente en 1976 por Peter Chen . Los modelos de entidad-relación se utilizaban 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 debe almacenar en una base de datos . Esta técnica puede describir cualquier ontología , es decir, una descripción general y clasificación de conceptos y sus relaciones, para un área de interés determinada .
En la década de 1970, GM Nijssen desarrolló el método de análisis de información en lenguaje natural (NIAM, por sus siglas en inglés) y, en la década de 1980, lo desarrolló en cooperación con Terry Halpin para convertirlo en modelado de roles de objetos (ORM, por sus siglas en inglés). Sin embargo, fue la tesis doctoral de Terry Halpin de 1989 la que creó la base formal sobre la que se basa el modelado de roles de objetos.
Bill Kent, en su libro de 1978 Datos y realidad, [11] comparó un modelo de datos con un mapa de un territorio, enfatizando que en el mundo real, "las carreteras no están pintadas de rojo, los ríos no tienen límites de condado que los recorran por el medio y no se pueden ver las curvas de nivel en una montaña". A diferencia de otros investigadores que intentaron crear modelos que fueran matemáticamente limpios y elegantes, Kent enfatizó el desorden esencial del mundo real y la tarea del modelador de datos de crear orden a partir del caos sin distorsionar excesivamente la verdad.
En la década de 1980, según Jan L. Harrington (2000), “el desarrollo del paradigma orientado a objetos trajo consigo un cambio fundamental en la forma en que analizamos los datos y los procedimientos que operan sobre ellos. Tradicionalmente, los datos y los procedimientos se almacenaban por separado: los datos y sus relaciones en una base de datos, los procedimientos en un programa de aplicación. La orientación a objetos, en cambio, combinaba el procedimiento de una entidad con sus datos”. [12]
A principios de los años 90, tres matemáticos holandeses, Guido Bakema, Harm van der Lek y JanPieter Zwart, continuaron el desarrollo del trabajo de GM Nijssen . Se centraron más en la parte comunicativa de la semántica. En 1997 formalizaron el método Fully Communication Oriented Information Modeling (FCO-IM) .
Un modelo de base de datos es una especificación que describe cómo se estructura y utiliza una base de datos.
Se han sugerido varios modelos de este tipo. Los modelos más comunes incluyen:
Un diagrama de estructura de datos (DSD) es un diagrama y modelo de datos que se utiliza para describir modelos de datos conceptuales al proporcionar notaciones gráficas que documentan entidades y sus relaciones , y las restricciones que las vinculan. Los elementos gráficos básicos de los DSD son cuadros , que representan entidades, y flechas , que representan relaciones. Los diagramas de estructura de datos son más útiles para documentar entidades de datos complejas.
Los diagramas de estructura de datos son una extensión del modelo entidad-relación (modelo ER). En los diagramas de estructura de datos, los atributos se especifican dentro de los cuadros de entidad en lugar de fuera de ellos, mientras que las relaciones se dibujan como cuadros compuestos de atributos que especifican las restricciones que unen a las entidades. Los diagramas de estructura de datos se diferencian del modelo ER en que este último se centra en las relaciones entre diferentes entidades, mientras que los diagramas de estructura de datos se centran en las relaciones de los elementos dentro de una entidad y permiten a los usuarios ver completamente los vínculos y las relaciones entre cada entidad.
Existen varios estilos para representar diagramas de estructuras de datos, con la notable diferencia en la forma de definir la cardinalidad . Las opciones son: puntas de flecha, puntas de flecha invertidas ( patas de gallo ) o representación numérica de la cardinalidad.
Un modelo entidad-relación (ERM), a veces denominado diagrama entidad-relación (ERD), se podría utilizar para representar un modelo de datos conceptual abstracto (o modelo de datos semántico o modelo de datos físico) utilizado en ingeniería de software para representar datos estructurados. Existen varias notaciones utilizadas para los ERM. Al igual que en los DSD, los atributos se especifican dentro de los cuadros de entidad en lugar de fuera de ellos, mientras que las relaciones se dibujan como líneas, con las restricciones de relación como descripciones en la línea. El modelo ER, aunque sólido, puede volverse visualmente engorroso al representar entidades con varios atributos.
Existen varios estilos para representar diagramas de estructuras de datos, con una diferencia notable en la forma de definir la cardinalidad. Las opciones son: puntas de flecha, puntas de flecha invertidas (patas de gallo) o representación numérica de la cardinalidad.
Un modelo de datos en los sistemas de información geográfica es una construcción matemática para representar objetos o superficies geográficas como datos. Por ejemplo,
Los modelos de datos genéricos son generalizaciones de los modelos de datos convencionales. Definen tipos de relaciones generales estandarizadas, junto con los tipos de cosas que pueden estar relacionadas por dicho tipo de relación. Los modelos de datos genéricos se desarrollan como un enfoque para resolver algunas deficiencias de los modelos de datos convencionales. Por ejemplo, diferentes modeladores suelen producir diferentes modelos de datos convencionales del mismo dominio. Esto puede generar dificultades para reunir los modelos de diferentes personas y es un obstáculo para el intercambio y la integración de datos. Sin embargo, invariablemente, esta diferencia se puede atribuir a diferentes niveles de abstracción en los modelos y diferencias en los tipos de hechos que se pueden instanciar (las capacidades de expresión semántica de los modelos). Los modeladores deben comunicarse y acordar ciertos elementos que se deben representar de manera más concreta, para que las diferencias sean menos significativas.
Un modelo de datos semántico en ingeniería de software es una técnica para definir el significado de los datos dentro del contexto de sus interrelaciones con otros datos. Un modelo de datos semántico es una abstracción que define cómo los símbolos almacenados se relacionan con el mundo real. [13] Un modelo de datos semántico a veces se denomina modelo de datos conceptual .
La estructura lógica de datos de un sistema de gestión de bases de datos (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. 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 dentro de los almacenes de datos físicos. Un modelo de datos semántico es una abstracción que define cómo se relacionan los símbolos almacenados con el mundo real. Por lo tanto, el modelo debe ser una verdadera representación del mundo real. [13]
La arquitectura de datos es el diseño de datos para su uso en la definición del estado objetivo y la planificación posterior necesaria para alcanzarlo. Suele ser uno de los diversos dominios de arquitectura que forman los pilares de una arquitectura empresarial o de una solución .
Una arquitectura de datos describe las estructuras de datos que utiliza una empresa o sus aplicaciones. Hay descripciones de datos almacenados y en movimiento; descripciones de almacenes de datos, grupos de datos y elementos de datos; y asignaciones de esos artefactos de datos a calidades de datos, aplicaciones, ubicaciones, etc.
La arquitectura de datos, esencial para alcanzar el estado objetivo, describe cómo se procesan, almacenan y utilizan los datos en un sistema determinado. Proporciona criterios para las operaciones de procesamiento de datos que permiten diseñar flujos de datos y también controlar el flujo de datos en el sistema.
El modelado de datos en ingeniería de software es el proceso de creación de un modelo de datos mediante la aplicación de descripciones formales de modelos de datos utilizando técnicas de modelado de datos. El modelado de datos es una técnica para definir los requisitos comerciales de una base de datos. A veces se lo denomina modelado de bases de datos porque un modelo de datos se implementa finalmente en una base de datos. [16]
La figura ilustra la forma en que se desarrollan y utilizan los modelos de datos en la actualidad. Se desarrolla un modelo de datos conceptual en función de los requisitos de datos para la aplicación que se está desarrollando, tal vez en el contexto de un modelo de actividad . El modelo de datos normalmente constará de tipos de entidades, atributos, relaciones, reglas de integridad y las definiciones de esos objetos. Esto se utiliza luego como punto de partida para el diseño de la interfaz o la base de datos . [5]
Algunas propiedades importantes de los datos para las que se deben cumplir requisitos son:
Otro tipo de modelo de datos describe cómo organizar los datos mediante un sistema de gestión de bases de datos u otra tecnología de gestión de datos. Describe, por ejemplo, tablas y columnas relacionales o clases y atributos orientados a objetos. Este modelo de datos a veces se denomina modelo de datos físico , pero en la arquitectura de tres esquemas ANSI original, se denomina "lógico". En esa arquitectura, el modelo físico describe los medios de almacenamiento (cilindros, pistas y espacios de tabla). Idealmente, este modelo se deriva del modelo de datos más conceptual descrito anteriormente. Sin embargo, puede diferir para tener en cuenta restricciones como la capacidad de procesamiento y los patrones de uso.
Si bien el análisis de datos es un término común para el modelado de datos, la actividad en realidad tiene más en común con las ideas y métodos de síntesis (inferir conceptos generales a partir de instancias particulares) que con el análisis (identificar conceptos componentes a partir de otros más generales). { Presumiblemente nos llamamos analistas de sistemas porque nadie puede decir que somos sintetistas de sistemas . } El modelado de datos se esfuerza por reunir las estructuras de datos de interés en un todo cohesivo e inseparable eliminando redundancias de datos innecesarias y relacionando las estructuras de datos con relaciones .
Un enfoque diferente es utilizar sistemas adaptativos como redes neuronales artificiales que pueden crear de forma autónoma modelos implícitos de datos.
Una estructura de datos es una forma de almacenar datos en una computadora para que puedan usarse de manera eficiente. Es una organización de conceptos matemáticos y lógicos de datos. A menudo, una estructura de datos cuidadosamente elegida permitirá que se use el algoritmo más eficiente . La elección de la estructura de datos a menudo comienza con la elección de un tipo de datos abstracto .
Un modelo de datos describe la estructura de los datos dentro de un dominio determinado y, por implicación, la estructura subyacente de ese dominio en sí. Esto significa que, de hecho, un modelo de datos especifica una gramática dedicada a un lenguaje artificial dedicado a ese dominio. Un modelo de datos representa clases de entidades (tipos de cosas) sobre las que una empresa desea mantener información, los atributos de esa información y las relaciones entre esas entidades y las relaciones (a menudo implícitas) entre esos atributos. El modelo describe la organización de los datos hasta cierto punto, independientemente de cómo se puedan representar los datos en un sistema informático.
Las entidades representadas por un modelo de datos pueden ser entidades tangibles, pero los modelos que incluyen esas clases de entidades concretas tienden a cambiar con el tiempo. Los modelos de datos robustos a menudo identifican abstracciones de esas entidades. Por ejemplo, un modelo de datos puede incluir una clase de entidad llamada "Persona", que representa a todas las personas que interactúan con una organización. Una clase de entidad abstracta de ese tipo suele ser más apropiada que las llamadas "Proveedor" o "Empleado", que identifican funciones específicas desempeñadas por esas personas.
El término modelo de datos puede tener dos significados: [17]
Una teoría de modelos de datos tiene tres componentes principales: [17]
Por ejemplo, en el modelo relacional , la parte estructural se basa en un concepto modificado de la relación matemática ; la parte de integridad se expresa en lógica de primer orden y la parte de manipulación se expresa utilizando el álgebra relacional , el cálculo de tuplas y el cálculo de dominios .
Una instancia de modelo de datos se crea aplicando una teoría de modelos de datos. Esto se hace típicamente para resolver algún requisito empresarial. Los requisitos empresariales normalmente se capturan mediante un modelo de datos lógico semántico . Este se transforma en una instancia de modelo de datos físico a partir de la cual se genera una base de datos física. Por ejemplo, un modelador de datos puede usar una herramienta de modelado de datos para crear un modelo de entidad-relación del repositorio de datos corporativos de alguna empresa comercial. Este modelo se transforma en un modelo relacional , que a su vez genera una base de datos relacional .
Los patrones [18] son estructuras de modelado de datos comunes que aparecen en muchos modelos de datos.
Un diagrama de flujo de datos (DFD) es una representación gráfica del "flujo" de datos a través de un sistema de información . Se diferencia del diagrama de flujo en que muestra el flujo de datos en lugar del flujo de control del programa. Un diagrama de flujo de datos también se puede utilizar para la visualización del procesamiento de datos (diseño estructurado). Los diagramas de flujo de datos fueron inventados por Larry Constantine , el desarrollador original del diseño estructurado, [20] basándose en el modelo de computación de "gráfico de flujo de datos" de Martin y Estrin.
Es una práctica común dibujar primero un diagrama de flujo de datos a nivel de contexto que muestre la interacción entre el sistema y las entidades externas. El DFD está diseñado para mostrar cómo se divide un sistema en partes más pequeñas y para resaltar el flujo de datos entre esas partes. Luego, este diagrama de flujo de datos a nivel de contexto se "descompone" para mostrar más detalles del sistema que se está modelando.
Un modelo de información no es un tipo de modelo de datos, sino más o menos un modelo alternativo. En el campo de la ingeniería de software, tanto un modelo de datos como un modelo de información pueden ser representaciones abstractas y formales de tipos de entidades que incluyen sus propiedades, relaciones y las operaciones que se pueden realizar en ellas. Los tipos de entidades del modelo pueden ser tipos de objetos del mundo real, como dispositivos en una red, o pueden ser abstractos, como las entidades utilizadas en un sistema de facturación. Normalmente, se utilizan para modelar un dominio restringido que se puede describir mediante un conjunto cerrado de tipos de entidades, propiedades, relaciones y operaciones.
Según Lee (1999) [21] un modelo de información es una representación de conceptos, relaciones, restricciones, reglas y operaciones para especificar la semántica de datos para un dominio de discurso elegido. Puede proporcionar una estructura compartible, estable y organizada de requisitos de información para el contexto del dominio. [21] De manera más general, el término modelo de información se utiliza para modelos de cosas individuales, como instalaciones, edificios, plantas de proceso, etc. En esos casos, el concepto se especializa en Modelo de información de instalaciones , Modelo de información de edificios , Modelo de información de plantas, etc. Un modelo de información de este tipo es una integración de un modelo de la instalación con los datos y documentos sobre la instalación.
Un modelo de información proporciona formalismo a la descripción de un dominio de problemas sin limitar la forma en que esa descripción se asigna a una implementación real en el software. Puede haber muchas asignaciones del modelo de información. Dichas asignaciones se denominan modelos de datos, independientemente de si son modelos de objetos (por ejemplo, utilizando UML ), modelos de entidad-relación o esquemas XML .
Un modelo de objetos en informática es una colección de objetos o clases a través de los cuales un programa puede examinar y manipular algunas partes específicas de su mundo. En otras palabras, la interfaz orientada a objetos para algún servicio o sistema. Se dice que dicha interfaz es el modelo de objetos del servicio o sistema representado. Por ejemplo, el Modelo de objetos de documento (DOM) [1] es una colección de objetos que representan una página en un navegador web , utilizada por programas de script para examinar y cambiar dinámicamente la página. Existe un modelo de objetos de Microsoft Excel [22] para controlar Microsoft Excel desde otro programa, y el Controlador de telescopio ASCOM [23] es un modelo de objetos para controlar un telescopio astronómico.
En informática, el término modelo de objetos tiene un segundo significado distinto de las propiedades generales de los objetos en un lenguaje de programación informática , tecnología, notación o metodología específica que los utiliza. Por ejemplo, el modelo de objetos de Java , el modelo de objetos de COM o el modelo de objetos de OMT . Dichos modelos de objetos suelen definirse utilizando conceptos como clase , mensaje , herencia , polimorfismo y encapsulamiento . Existe una amplia literatura sobre los modelos de objetos formalizados como un subconjunto de la semántica formal de los lenguajes de programación .
El modelado de objetos y roles (ORM) es un método de modelado conceptual y puede utilizarse como herramienta para el análisis de información y reglas. [25]
El modelado de objetos y roles es un método basado en hechos para realizar análisis de sistemas a nivel conceptual. La calidad de una aplicación de base de datos depende fundamentalmente de su diseño. Para garantizar la corrección, la claridad, la adaptabilidad y la productividad, lo mejor es especificar primero los sistemas de información a nivel conceptual, utilizando conceptos y un lenguaje que las personas puedan comprender fácilmente.
El diseño conceptual puede incluir perspectivas de datos, procesos y comportamiento, y el DBMS real utilizado para implementar el diseño puede basarse en uno de muchos modelos de datos lógicos (relacional, jerárquico, de red, orientado a objetos, etc.). [26]
El lenguaje de modelado unificado (UML) es un lenguaje de modelado de propósito general estandarizado en el campo de la ingeniería de software . Es un lenguaje gráfico para visualizar, especificar, construir y documentar los artefactos de un sistema con uso intensivo de software. El lenguaje de modelado unificado ofrece una forma estándar de escribir los planos de un sistema, que incluye: [27]
UML ofrece una combinación de modelos funcionales , modelos de datos y modelos de bases de datos .