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 una serie de 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 concretamente, 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 de modelado de datos y una notación a menudo se representan en forma gráfica como diagramas. [4]
A veces se puede hacer referencia a un modelo de datos como estructura de datos , especialmente en el contexto de los lenguajes de programación . Los modelos de datos suelen complementarse con modelos funcionales , 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 de acuerdo con un modelo o estructura de datos explícitos. Los datos estructurados contrastan con los datos no estructurados y los datos semiestructurados .
El término modelo de datos puede referirse 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 tales formalizaciones: por ejemplo conceptos como entidades, atributos, relaciones o tablas. Por tanto, el "modelo de datos" de una aplicación bancaria puede definirse utilizando el "modelo de datos" 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 principal 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 y vídeo digitales: 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, entonces se puede lograr la compatibilidad de los datos. Si se utilizan las mismas estructuras de datos para almacenar y acceder a los datos, entonces diferentes aplicaciones pueden compartir datos. Los resultados de esto se indican arriba Sin embargo, la construcción, el funcionamiento y el mantenimiento de los sistemas y las interfaces suelen costar más de lo que deberían. 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 y las 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 comerciales 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) el modelo conceptual. En cada caso, por supuesto, las estructuras deben seguir siendo 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 clases de entidad conceptual. Las primeras fases de muchos proyectos de desarrollo de software enfatizan el diseño de un modelo de datos conceptual . Un diseño de este tipo se puede detallar en un modelo de datos lógico . En etapas posteriores, este modelo se puede traducir a un modelo de datos físicos . 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 debería permitir 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". del tratamiento de datos". Esto llevó al desarrollo de un álgebra de información SI específica . [8]
En la década de 1960, el modelado de datos ganó más importancia con el inicio del concepto de sistema de información de gestión (MIS). Según Leondes (2002), "durante ese tiempo, el sistema de información proporcionaba los datos y la información con 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 famosas bases de datos "Durante este período de tiempo se propusieron modelos como el modelo de datos de red y el modelo de datos jerárquico ". [9] Hacia finales de la década de 1960, Edgar F. Codd desarrolló sus teorías de disposición 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 entidad-relación surgió como un nuevo tipo de modelado de datos conceptual, originalmente formalizado en 1976 por Peter Chen . Los modelos entidad-relación se utilizaron en la primera etapa del diseño del sistema 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 . Esta técnica puede describir cualquier ontología , es decir, una visió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 "Método de análisis de información del lenguaje natural" (NIAM), y lo desarrolló en la década de 1980 en cooperación con Terry Halpin en el modelado de objetos y roles (ORM). Sin embargo, fue la tesis doctoral de Terry Halpin de 1989 la que creó la base formal en la que se basa el modelado de roles y objetos.
Bill Kent, en su libro Data and Reality de 1978, [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íneas de condado que corran 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 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 provocó un cambio fundamental en la forma en que miramos los datos y los procedimientos que operan sobre los datos. Tradicionalmente, los datos y los procedimientos han sido almacenados por separado: los datos y su relación en una base de datos, los procedimientos en un programa de aplicación, sin embargo, combinan el procedimiento de una entidad con sus datos. [12]
A principios de la década de 1990, 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 de comunicación de la semántica. En 1997 formalizaron el método Modelado de información totalmente orientado a la comunicación 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 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 proporcionando 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 DSD, 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 DSD se diferencian del modelo ER en que el modelo ER se centra en las relaciones entre diferentes entidades, mientras que los DSD 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 estructura de datos, con la notable diferencia en la forma de definir la cardinalidad . Las opciones son entre 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), podría usarse para representar un modelo de datos conceptual abstracto (o modelo de datos semántico o modelo de datos físicos) utilizado en ingeniería de software para representar datos estructurados. . Se utilizan varias notaciones para los ERM. Al igual que 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, si bien es robusto, puede volverse visualmente engorroso cuando representa entidades con varios atributos.
Existen varios estilos para representar diagramas de estructura de datos, con una diferencia notable en la forma de definir la cardinalidad. Las opciones son entre puntas de flecha, puntas de flecha invertidas (patas de gallo) o representación numérica de la cardinalidad.
Un modelo de datos en 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 modelos de datos convencionales. Definen tipos de relaciones generales estandarizados, junto con los tipos de cosas que pueden estar relacionadas mediante 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 es atribuible a diferentes niveles de abstracción en los modelos y diferencias en los tipos de hechos que pueden instanciarse (las capacidades de expresión semántica de los modelos). Los modeladores necesitan comunicarse y ponerse de acuerdo sobre ciertos elementos que deben representarse 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 para una definición conceptual de datos porque tiene un alcance limitado y está sesgada hacia la estrategia de implementación empleada por el DBMS. Por tanto, la necesidad de definir los datos desde una visión conceptual ha llevado al desarrollo de técnicas de modelado de datos semánticos. 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 los símbolos almacenados se relacionan con el mundo real. Por tanto, el modelo debe ser una representación fiel 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 alcanzar el estado objetivo. Generalmente es uno de varios dominios de arquitectura que forman los pilares de una arquitectura empresarial o de una arquitectura de solución .
Una arquitectura de datos describe las estructuras de datos utilizadas por una empresa y/o sus aplicaciones. Hay descripciones de datos almacenados y datos 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.
Esencial para alcanzar el estado objetivo, la arquitectura de datos 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 del modelo 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 le llama modelado de bases de datos porque eventualmente un modelo de datos se implementa 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 basado en los requisitos de datos para la aplicación que se está desarrollando, quizás 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 luego se utiliza como punto de partida para el diseño de la interfaz o de la base de datos . [5]
Algunas propiedades importantes de los datos para las cuales se deben cumplir requisitos son:
Otro tipo de modelo de datos describe cómo organizar los datos utilizando 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ísicos , pero en la arquitectura original de tres esquemas ANSI 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 limitaciones 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 casos 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 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á utilizar 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 mismo. Esto significa que, de hecho, un modelo de datos especifica una gramática dedicada para un lenguaje artificial dedicado para ese dominio. Un modelo de datos representa clases de entidades (tipos de cosas) sobre las cuales una empresa desea conservar 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 clases de entidades concretas tienden a cambiar con el tiempo. Los modelos de datos robustos a menudo identifican abstracciones de dichas entidades. Por ejemplo, un modelo de datos podría incluir una clase de entidad llamada "Persona", que represente a todas las personas que interactúan con una organización. Una clase de entidad tan abstracta suele ser más apropiada que las llamadas "Proveedor" o "Empleado", que identifican roles específicos desempeñados por esas personas.
El término modelo de datos puede tener dos significados: [17]
Una teoría de modelo 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 dominio .
Una instancia de modelo de datos se crea aplicando una teoría de modelo de datos. Por lo general, esto se hace para resolver algún requisito empresarial. Los requisitos comerciales normalmente se capturan mediante un modelo de datos lógico semántico . Este se transforma en una instancia de modelo de datos físicos a partir de la cual se genera una base de datos física. Por ejemplo, un modelador de datos puede utilizar una herramienta de modelado de datos para crear un modelo entidad-relación del repositorio de datos corporativo 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 ocurren 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. También se puede utilizar un diagrama de flujo de datos 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 cálculo "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 porciones más pequeñas y resaltar el flujo de datos entre esas partes. Este diagrama de flujo de datos a nivel de contexto luego se "explota" 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. Dentro del campo de la ingeniería de software, tanto un modelo de datos como un modelo de información pueden ser representaciones formales y abstractas de tipos de entidades que incluyen sus propiedades, relaciones y las operaciones que se pueden realizar sobre ellas. Los tipos de entidades en el 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 puede describirse 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] Más en 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. Dicho modelo de información 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 problema sin limitar cómo esa descripción se asigna a una implementación real en el software. Puede haber muchas asignaciones del modelo de información. Estas asignaciones se denominan modelos de datos, independientemente de si son modelos de objetos (por ejemplo, utilizando UML ), modelos 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 las 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 ASCOM Telescope Driver [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 , tecnología, notación o metodología específica que los utiliza. Por ejemplo, el modelo de objetos de Java , el modelo de objetos COM o el modelo de objetos de OMT . Estos modelos de objetos suelen definirse utilizando conceptos como clase , mensaje , herencia , polimorfismo y encapsulación . Existe una extensa literatura sobre modelos de objetos formalizados como un subconjunto de la semántica formal de los lenguajes de programación .
El modelado de roles y objetos (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 roles y objetos es un método orientado a 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 ayudar a garantizar la corrección, la claridad, la adaptabilidad y la productividad, es mejor especificar los sistemas de información primero 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 podría basarse en uno de muchos modelos de datos lógicos (relacional, jerárquico, de red, orientado a objetos, etc.). [26]
El Lenguaje Unificado de Modelado (UML) es un lenguaje de modelado estandarizado de propósito general 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 .