Un modelo de datos (o modelo de datos ) es un modelo abstracto que organiza elementos de datos y estandariza la forma en que se relacionan entre sí y con las propiedades de entidades del mundo real. Por ejemplo, un modelo de datos puede especificar que el elemento de datos que representa un automóvil se componga de una serie de otros elementos que, a su vez, representan el color y el tamaño del automóvil y definen a su propietario.
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 las 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 en la definición de dichas 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 usa el término en ambos sentidos.
Un modelo de datos determina explícitamente la estructura de los datos. Los modelos de datos suelen ser especificados por un especialista en datos, un bibliotecario de datos o un erudito en humanidades digitales en una notación de modelado de datos. Estas notaciones a menudo se representan en forma gráfica.
A veces, un modelo de datos puede denominarse estructura de datos, especialmente en el contexto de los lenguajes de programación. Los modelos de datos a menudo se complementan con modelos de función, especialmente en el contexto de modelos empresariales.
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. Por lo general, no describen datos no estructurados, como documentos de procesamiento de texto, mensajes de correo electrónico, imágenes, audio digital y video.
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, los sistemas e interfaces a menudo cuestan más de lo que deberían construir, operar y mantener. También pueden restringir el negocio en lugar de respaldarlo. Una causa importante es que la calidad de los modelos de datos implementados en sistemas e interfaces es deficiente ".
La razón de estos problemas es la falta de estándares que aseguren que los modelos de datos satisfagan las necesidades comerciales y sean consistentes.
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:
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 el modelo lógico o conceptual. La estructura de la tabla / columna puede cambiar sin (necesariamente) afectar el modelo conceptual. En cada caso, por supuesto, las estructuras deben seguir siendo coherentes 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. Dicho diseño se puede detallar en un modelo de datos lógicos. En etapas posteriores, este modelo puede traducirse en 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), 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 para 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 básicamente tenía como objetivo 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 IS específica.
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, denominado Integrated Data Store (IDS), fue diseñado por Charles Bachman de General Electric. Dos famosas bases de datos modelos, el modelo de datos de red y el modelo de datos jerárquico, fueron propuestos durante este período de tiempo ". Hacia finales de la década de 1960, Edgar F. Codd elaboró sus teorías sobre la disposición de los datos y propuso el modelo relacional para la gestión de bases de datos basado en la lógica de predicados de primer orden.
En la década de 1970 , el modelado de relaciones entre entidades surgió como un nuevo tipo de modelado de datos conceptual, propuesto originalmente en 1976 por Peter Chen. Los modelos entidad-relación se estaban utilizando 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 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 "Método de análisis de información en 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 sobre la que se basa el modelado de objetos y roles.
Bill Kent, en su libro Data and Reality de 1978, 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 condados en el medio y usted no puedo ver las curvas de nivel en una montaña ". En contraste con 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 un 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 ellos. Tradicionalmente, los datos y los procedimientos se han almacenados por separado: los datos y su relación en una base de datos, los procedimientos en un programa de aplicación. Sin embargo, la orientación a objetos combinaba el procedimiento de una entidad con sus datos ".
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 del GM Nijssen. Se centraron más en la parte de comunicación de la semántica. En 1997 formalizaron el método de 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 de estos modelos. Los modelos comunes incluyen:
Modelo orientado a conceptos
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 las entidades y sus relaciones, y las restricciones que las unen. 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 difieren del modelo ER en que el modelo ER se enfoca en las relaciones entre diferentes entidades, mientras que los DSD se enfocan en las relaciones de los elementos dentro de una entidad y permiten a los usuarios ver completamente los vínculos y relaciones entre cada entidad.
Hay 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) usado en ingeniería de software para representar datos estructurados. Hay varias notaciones que se utilizan 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, aunque robusto, puede volverse visualmente engorroso cuando se representan 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 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 grupos se relacionan con el proceso de elaboración de un mapa.
Aplicaciones del modelo de datos NGMDB
Bases de datos NGMDB vinculadas entre sí
Representar información de mapas 3D
Los modelos de datos genéricos son generalizaciones de modelos de datos convencionales. Definen tipos de relación general estandarizados, junto con los tipos de cosas que pueden estar relacionadas por tal 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 de datos 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 ejemplificarse (las capacidades de expresión semántica de los modelos). Los modeladores necesitan comunicar y ponerse de acuerdo sobre ciertos elementos que se van a plasmar de manera más concreta, para que las diferencias sean menos significativas.
Un modelo de datos semánticos 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ánticos es una abstracción que define cómo los símbolos almacenados se relacionan con el mundo real. Un modelo de datos semánticos 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ánticos 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 verdadera representación del mundo real.
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. Por lo general, es uno de varios dominios de arquitectura que forman los pilares de una arquitectura empresarial o 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 realizar el estado de destino, la arquitectura de datos describe cómo se procesan, almacenan y utilizan los datos en un sistema dado. 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 la ingeniería de software es el proceso de crear 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 base de datos porque un modelo de datos finalmente se implementa en una base de datos.
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 entidad, atributos, relaciones, reglas de integridad y las definiciones de esos objetos. A continuación, se utiliza como punto de partida para el diseño de la interfaz o la base de datos.
Algunas propiedades importantes de los datos para los que 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 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 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 de instancias particulares) que con el análisis (identificar conceptos componentes de otros más generales). { Es de suponer que nos llamamos analistas de sistemas porque nadie puede decir sintetizadores de sistemas. } El modelado de datos se esfuerza por reunir las estructuras de datos de interés en un todo cohesivo, inseparable, eliminando redundancias de datos innecesarias y relacionando 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 se puedan usar 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 dado y, por implicación, la estructura subyacente de ese dominio en sí. Esto significa que un modelo de datos de hecho especifica una gramática dedicada para un lenguaje artificial dedicado a ese dominio. Un modelo de datos representa clases de entidades (tipos de cosas) sobre las que una empresa desea tener 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 tales clases de entidades concretas tienden a cambiar con el tiempo. Los modelos de datos robustos a menudo identifican abstracciones de tales 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. Esta clase de entidad abstracta suele ser más apropiada que las llamadas "Proveedor" o "Empleado", que identifican los roles específicos que desempeñan esas personas.
El término modelo de datos puede tener dos significados:
Una teoría de modelo de datos tiene tres componentes principales:
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 modelo de datos. Por lo general, esto se hace para resolver algunos requisitos empresariales. Los requisitos comerciales normalmente se capturan mediante un modelo de datos lógicos semánticos. Esto 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 usar una herramienta de modelado de datos para crear un modelo 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 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, basado en el modelo de cálculo 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 porciones más pequeñas y para resaltar el flujo de datos entre esas partes. Este diagrama de flujo de datos a nivel de contexto se "amplía" 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 abstractas y formales de tipos de entidades que incluyen sus propiedades, relaciones y las operaciones que se pueden realizar en ellas. Los tipos de entidad en el modelo pueden ser tipos de objetos del mundo real, como dispositivos en una red, o pueden ser abstractos, como para las entidades utilizadas en un sistema de facturación. Por lo general, se utilizan para modelar un dominio restringido que puede describirse mediante un conjunto cerrado de tipos de entidad, propiedades, relaciones y operaciones.
Según Lee (1999), 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. Más en general, el término modelo de información se utiliza para los modelos de las cosas individuales, como las instalaciones, edificios, plantas de proceso, etc. En esos casos, el concepto está especializado en Información del recurso de modelo, Building Information Model, Modelo de información de planta, etc. Tal El 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 restringir cómo esa descripción se asigna a una implementación real en software. Puede haber muchas asignaciones del modelo de información. Estos mapeos se denominan modelos de datos, independientemente de si son modelos de objetos (por ejemplo, utilizando UML ), modelos de relación de entidades o esquemas XML.
Un modelo de objetos en ciencias de la computación 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 a algún servicio o sistema. Se dice que dicha interfaz es el modelo de objeto 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 secuencia de comandos para examinar y cambiar dinámicamente la página. Existe un modelo de objetos de Microsoft Excel para controlar Microsoft Excel desde otro programa, y el controlador de telescopio ASCOM es un modelo de objetos para controlar un telescopio astronómico.
En computación, el término modelo de objeto tiene un segundo significado distinto de las propiedades generales de los objetos en un lenguaje de programación de computadora específico, tecnología, notación o metodología que los usa. Por ejemplo, el modelo de objetos de Java, el modelo de objetos COM o el modelo de objetos de OMT. Estos modelos de objetos generalmente se definen 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 de objeto (ORM) es un método para el modelado conceptual y se puede utilizar como una herramienta para el análisis de información y reglas.
El modelado de roles de 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 asegurar la corrección, claridad, adaptabilidad y productividad, los sistemas de información se especifican mejor primero a nivel conceptual, utilizando conceptos y lenguaje que la gente pueda 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 los muchos modelos de datos lógicos (relacional, jerárquico, de red, orientado a objetos, etc.).
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 intensivo en software. El lenguaje de modelado unificado ofrece una forma estándar de escribir los planos de un sistema, que incluyen:
UML ofrece una combinación de modelos funcionales, modelos de datos y modelos de bases de datos.