stringtranslate.com

Base de datos de objetos

Ejemplo de un modelo orientado a objetos [1]

Una base de datos de objetos o base de datos orientada a objetos es un sistema de gestión de bases de datos en el que la información se representa en forma de objetos como se utiliza en la programación orientada a objetos . Las bases de datos de objetos son diferentes de las bases de datos relacionales que están orientadas a tablas. Un tercer tipo, las bases de datos relacionales de objetos , es un híbrido de ambos enfoques. Las bases de datos de objetos se han considerado desde principios de los años 1980. [2]

Descripción general

Los sistemas de gestión de bases de datos orientados a objetos (OODBMS), también llamados ODBMS (Sistema de gestión de bases de datos de objetos), combinan capacidades de bases de datos con capacidades de lenguaje de programación orientado a objetos . Los OODBMS permiten a los programadores orientados a objetos desarrollar el producto, almacenarlos como objetos y replicar o modificar objetos existentes para crear nuevos objetos dentro del OODBMS. Debido a que la base de datos está integrada con el lenguaje de programación, el programador puede mantener la coherencia dentro de un entorno, en el sentido de que tanto el OODBMS como el lenguaje de programación utilizarán el mismo modelo de representación. Los proyectos DBMS relacionales, por el contrario, mantienen una división más clara entre el modelo de base de datos y la aplicación.

A medida que aumenta el uso de tecnología basada en web con la implementación de intranets y extranets, las empresas tienen un gran interés en los OODBMS para mostrar sus datos complejos. El uso de un DBMS que ha sido diseñado específicamente para almacenar datos como objetos brinda una ventaja a aquellas empresas orientadas a presentaciones multimedia u organizaciones que utilizan diseño asistido por computadora (CAD). [3]

Algunas bases de datos orientadas a objetos están diseñadas para funcionar bien con lenguajes de programación orientados a objetos como Delphi , Ruby , Python , JavaScript , Perl , Java , C# , Visual Basic .NET , C++ , Objective-C y Smalltalk ; otros como JADE tienen sus propios lenguajes de programación. Los OODBMS utilizan exactamente el mismo modelo que los lenguajes de programación orientados a objetos.

Historia

Los sistemas de gestión de bases de datos de objetos surgieron de la investigación realizada entre principios y mediados de la década de 1970 y tuvieron soporte intrínseco de gestión de bases de datos para objetos estructurados en gráficos. El término "sistema de base de datos orientado a objetos" apareció por primera vez alrededor de 1985. [4] Proyectos de investigación notables incluyeron Encore-Ob/Server ( Universidad de Brown ), EXODUS ( Universidad de Wisconsin-Madison ), IRIS (Hewlett-Packard), ODE ( Bell Labs ), ORION ( Microelectronics and Computer Technology Corporation o MCC), Vodak (GMD-IPSI) y Zeitgeist (Texas Instruments). El proyecto ORION tuvo más artículos publicados que cualquiera de los otros esfuerzos. Won Kim de MCC recopiló lo mejor de esos artículos en un libro publicado por The MIT Press. [5]

Los primeros productos comerciales incluyeron Gemstone (Servio Logic, nombre cambiado a GemStone Systems), Gbase (Graphael) y Vbase (Ontologic). Otros productos comerciales entraron en el mercado desde finales de los años 1980 hasta mediados de los años 1990. Estos incluían ITASCA (Itasca Systems), Jasmine (Fujitsu, comercializado por Computer Associates), Matisse (Matisse Software), Objectivity/DB (Objectivity, Inc.), ObjectStore ( Progress Software , adquirido de eXcelon, que originalmente era Object Design, Incorporated ). , ONTOS (Ontos, Inc., nombre cambiado de Ontologic), O 2 [6] (O 2 Technology, fusionada con varias empresas, adquirida por Informix , que a su vez fue adquirida por IBM ), POET (ahora FastObjects de Versant que adquirió Poet Software), Versant Object Database (Versant Corporation), VOSS (Logic Arts) y JADE (Jade Software Corporation). Algunos de estos productos permanecen en el mercado y se les han sumado nuevos productos comerciales y de código abierto como InterSystems Caché .

Los sistemas de gestión de bases de datos de objetos agregaron el concepto de persistencia a los lenguajes de programación de objetos. Los primeros productos comerciales se integraron con varios lenguajes: GemStone ( Smalltalk ), Gbase ( LISP ), Vbase ( COP ) y VOSS (Virtual Object Storage System for Smalltalk ). Durante gran parte de la década de 1990, C++ dominó el mercado de gestión de bases de datos de objetos comerciales. Los proveedores agregaron Java a finales de la década de 1990 y, más recientemente, C# .

A partir de 2004, las bases de datos de objetos experimentaron un segundo período de crecimiento cuando surgieron bases de datos de objetos de código abierto que eran ampliamente asequibles y fáciles de usar, porque estaban escritas completamente en lenguajes de programación orientada a objetos como Smalltalk, Java o C#, como db4o (db4objects) de Versant. , DTS/S1 de Obsidian Dynamics y Prest (McObject), disponible bajo licencia comercial y de código abierto dual .

Línea de tiempo

Adopción de bases de datos de objetos.

Las bases de datos de objetos basadas en programación persistente adquirieron un nicho en áreas de aplicación como ingeniería y bases de datos espaciales , telecomunicaciones y áreas científicas como la física de altas energías [13] y la biología molecular . [14]

Otro grupo de bases de datos de objetos se centra en el uso integrado en dispositivos, software empaquetado y sistemas en tiempo real .

Características técnicas

La mayoría de las bases de datos de objetos también ofrecen algún tipo de lenguaje de consulta , que permite encontrar objetos mediante un enfoque de programación declarativa . Es en el área de los lenguajes de consulta de objetos y la integración de las interfaces de consulta y navegación donde se encuentran las mayores diferencias entre productos. El ODMG realizó un intento de estandarización con el lenguaje de consulta de objetos , OQL.

El acceso a los datos puede ser más rápido porque un objeto se puede recuperar directamente sin necesidad de realizar una búsqueda, siguiendo los indicadores .

Otra área de variación entre productos es la forma en que se define el esquema de una base de datos. Sin embargo, una característica general es que el lenguaje de programación y el esquema de la base de datos utilizan las mismas definiciones de tipo.

Las aplicaciones multimedia se ven facilitadas porque los métodos de clase asociados con los datos son responsables de su correcta interpretación.

Muchas bases de datos de objetos, por ejemplo Gemstone o VOSS, ofrecen soporte para el control de versiones . Un objeto puede verse como el conjunto de todas sus versiones. Además, las versiones de objetos pueden tratarse como objetos por derecho propio. Algunas bases de datos de objetos también brindan soporte sistemático para desencadenadores y restricciones que son la base de las bases de datos activas .

La eficiencia de una base de datos de este tipo también mejora considerablemente en áreas que exigen cantidades masivas de datos sobre un elemento. Por ejemplo, una institución bancaria podría obtener la información de la cuenta del usuario y proporcionarle de manera eficiente información extensa, como transacciones, entradas de información de la cuenta, etc.

Estándares

El Object Data Management Group era un consorcio de proveedores de bases de datos de objetos y mapas relacionales de objetos, miembros de la comunidad académica y partes interesadas. Su objetivo era crear un conjunto de especificaciones que permitieran aplicaciones portátiles que almacenen objetos en sistemas de gestión de bases de datos. Publicó varias versiones de su especificación. La última versión fue ODMG 3.0. En 2001, la mayoría de los principales proveedores de bases de datos de objetos y mapeo relacional de objetos afirmaron cumplir con el enlace de lenguaje Java ODMG. El cumplimiento de los demás componentes de la especificación fue mixto. En 2001, el enlace del lenguaje Java ODMG se presentó al proceso de la comunidad Java como base para la especificación de objetos de datos Java . Las empresas miembros de ODMG decidieron entonces concentrar sus esfuerzos en la especificación Java Data Objects. Como resultado, el ODMG se disolvió en 2001.

Muchas ideas de bases de datos de objetos también fueron absorbidas por SQL:1999 y se han implementado en diversos grados en productos de bases de datos relacionales de objetos .

En 2005, Cook, Rai y Rosenberger propusieron abandonar todos los esfuerzos de estandarización para introducir API de consultas orientadas a objetos adicionales y en lugar de ello utilizar el propio lenguaje de programación OO, es decir, Java y .NET, para expresar consultas. Como resultado, surgieron las consultas nativas. De manera similar, Microsoft anunció Language Integrated Query (LINQ) y DLINQ, una implementación de LINQ, en septiembre de 2005, para proporcionar capacidades de consulta de bases de datos cercanas e integradas en el lenguaje con sus lenguajes de programación C# y VB.NET 9.

En febrero de 2006, el Object Management Group (OMG) anunció que se le había concedido el derecho de desarrollar nuevas especificaciones basadas en la especificación ODMG 3.0 y la formación del Object Database Technology Working Group (ODBT WG). El ODBT WG planeó crear un conjunto de estándares que incorporarían avances en la tecnología de bases de datos de objetos (por ejemplo, replicación), gestión de datos (por ejemplo, indexación espacial) y formatos de datos (por ejemplo, XML) e incluir nuevas características en estos estándares que Dominios de soporte donde se están adoptando bases de datos de objetos (por ejemplo, sistemas en tiempo real). El trabajo del ODBT WG se suspendió en marzo de 2009 cuando, después de la crisis económica de finales de 2008, los proveedores de ODB involucrados en este esfuerzo decidieron concentrar sus recursos en otra parte.

En enero de 2007, el World Wide Web Consortium otorgó el estatus de recomendación final al lenguaje XQuery . XQuery utiliza XML como modelo de datos. Algunas de las ideas desarrolladas originalmente para bases de datos de objetos llegaron a XQuery, pero XQuery no está intrínsecamente orientado a objetos. Debido a la popularidad de XML, los motores XQuery compiten con las bases de datos de objetos como vehículo para el almacenamiento de datos que son demasiado complejos o variables para guardarlos convenientemente en una base de datos relacional. XQuery también permite escribir módulos para proporcionar funciones de encapsulación proporcionadas por los sistemas orientados a objetos.

XQuery v1 y XPath v2 y posteriores son potentes y están disponibles tanto en software de código abierto como libre (FOSS), [15] [16] [17], así como en sistemas comerciales. Son fáciles de aprender y usar, y muy potentes y rápidos. No son relacionales y XQuery no está basado en SQL (aunque una de las personas que diseñó XQuery también inventó SQL). Pero tampoco están orientados a objetos, en el sentido de la programación: XQuery no utiliza encapsulación con ocultación, despacho implícito, clases y métodos. Las bases de datos XQuery generalmente utilizan XML y JSON como formato de intercambio, aunque se utilizan otros formatos.

Desde principios de la década de 2000, JSON ha ganado popularidad y adopción comunitaria en aplicaciones donde los desarrolladores tienen el control del formato de datos. JSONiq , un análogo de consulta de XQuery para JSON (que comparte las expresiones y operaciones principales de XQuery), demostró la equivalencia funcional de los formatos JSON y XML para información orientada a datos. En este contexto, la principal estrategia de los mantenedores de OODBMS fue adaptar JSON a sus bases de datos (usándolo como tipo de datos interno).

En enero de 2016, con la versión PostgreSQL 9.5 [18] fue el primer OODBMS FOSS en ofrecer un tipo de datos interno JSON (JSONB) eficiente con un conjunto completo de funciones y operaciones, para todas las manipulaciones básicas relacionales y no relacionales.

Comparación con RDBMS

Una base de datos de objetos almacena datos complejos y relaciones entre datos directamente, sin mapear a filas y columnas relacionales , y esto las hace adecuadas para aplicaciones que manejan datos muy complejos. [19] Los objetos tienen una relación de muchos a muchos y se accede a ellos mediante el uso de punteros. Los punteros están vinculados a objetos para establecer relaciones. Otro beneficio de un OODBMS es que se puede programar con pequeñas diferencias de procedimiento sin afectar a todo el sistema. [20]

Ver también

Referencias

  1. ^ Glosario de integración de datos Archivado el 20 de marzo de 2009 en Wayback Machine , Departamento de Transporte de EE. UU., agosto de 2001.
  2. ^ ODBMS.ORG :: Base de datos de objetos (ODBMS) | Base de datos orientada a objetos (OODBMS) | Portal de recursos gratuitos. ODBMS (31 de agosto de 2013). Recuperado el 18 de septiembre de 2013. Archivado el 6 de marzo de 2014 en Wayback Machine .
  3. ^ O'Brien, JA y Marakas, GM (2009). Sistemas de información de gestión (9ª ed.). Nueva York, Nueva York: McGraw-Hill/Irwin
  4. ^ Tres referencias de ejemplo de 1985 que utilizan el término: T. Atwood, "An Object-Oriented DBMS for Design Support Applications", Actas del IEEE COMPINT 85 , págs. 299-307, septiembre de 1985; N. Derrett, W. Kent y P. Lyngbaek, "Algunos aspectos de las operaciones en una base de datos orientada a objetos", Ingeniería de bases de datos , vol. 8, núm. 4, IEEE Computer Society, diciembre de 1985; D. Maier, A. Otis y A. Purdy, "Desarrollo de bases de datos orientadas a objetos en Servio Logic", Ingeniería de bases de datos , vol. 18, n° 4, diciembre de 1985.
  5. ^ Kim, ganó. Introducción a las Bases de Datos Orientadas a Objetos. Prensa del MIT, 1990. ISBN  0-262-11124-1
  6. ^ Bancilhon, Francois; Delobel, Claude; y Kanellakis, París. Construcción de un sistema de base de datos orientado a objetos: la historia de O 2 . Editores Morgan Kaufmann, 1992. ISBN 1-55860-169-4
  7. ^ Ulfsby; et al. (julio de 1981). "TORNADO: un DBMS para sistemas CAD/CAM". Diseño asistido por ordenador . 13 (4): 193-197. doi :10.1016/0010-4485(81)90140-8.
  8. ^ "SpringSource adquirirá tecnología de gestión de datos de sistemas de piedras preciosas". WMware. 6 de mayo de 2010. Archivado desde el original el 8 de agosto de 2014 . Consultado el 5 de agosto de 2014 .
  9. ^ Sistemas GemTalk (2 de mayo de 2013). "GemTalk Systems adquiere productos GemStone/S de VMware". PRWeb. Archivado desde el original el 10 de agosto de 2014 . Consultado el 5 de agosto de 2014 .
  10. ^ "reestructuración de nuestro sitio web comunitario Versant".
  11. ^ "Realm lanza la base de datos de objetos para Node.js". InfoQ . Archivado desde el original el 2 de febrero de 2017.
  12. ^ Motores DB. "Ranking de bases de datos de objetos en motores DB". Motores DB . Consultado el 21 de mayo de 2021 .
  13. ^ "Acelerador lineal de Stanford (SLAC)".
  14. ^ Herde, Patricio; Sibbald, Peter R. (1992). "Integración de colecciones de datos de biología molecular mediante programación y bases de datos orientadas a objetos". Anexo a las actas sobre sistemas, lenguajes y aplicaciones de programación orientada a objetos (Anexo) - OOPSLA '92 . págs. 177-178. doi :10.1145/157709.157747. ISBN 0897916107. S2CID  45269462.
  15. ^ "Procesador BaseX XQuery". basex.org . Archivado desde el original el 16 de diciembre de 2023.
  16. ^ "XQuery en eXist-db". existe-db.org . Archivado desde el original el 2 de diciembre de 2023.
  17. ^ "Saxon: uso de XQuery". www.saxonica.com . Archivado desde el original el 23 de septiembre de 2020.
  18. ^ "PostgreSQL: Documentación: 10: 9.15. Funciones y operadores JSON". www.postgresql.org . Archivado desde el original el 18 de mayo de 2016.
  19. ^ Radding, Alan (1995). "Entonces, ¿qué diablos es ODBMS?". Mundo de la informática . 29 (45): 121–122, 129.
  20. ^ Burleson, Donald. (1994). Los OODBMS ganan terreno en MIS, pero los RDBMS aún son dueños de la carretera. Revista de software, 14(11), 63

enlaces externos