
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 , tal como se utiliza en la programación orientada a objetos . Las bases de datos de objetos se diferencian de las bases de datos relacionales , que están orientadas a tablas. Un tercer tipo, las bases de datos objeto-relacionales , son un híbrido de ambos enfoques. Las bases de datos de objetos se han considerado desde principios de la década de 1980. [ 2 ]
Descripción general
Los sistemas de gestión de bases de datos orientados a objetos (OODBMS), también llamados ODBMS (Object Database Management System), combinan las capacidades de las bases de datos con las de los lenguajes de programación orientados a objetos . Los OODBMS permiten a los programadores orientados a objetos desarrollar el producto, almacenarlo como objetos y replicar o modificar los objetos existentes para crear nuevos objetos dentro del OODBMS. Gracias a la integración de la base de datos con el lenguaje de programación, el programador puede mantener la coherencia dentro de un mismo entorno, ya que tanto el OODBMS como el lenguaje de programación utilizarán el mismo modelo de representación. En cambio, los proyectos de sistemas de gestión de bases de datos relacionales 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 la tecnología web con la implementación de intranets y extranets, las empresas tienen un gran interés en los sistemas de gestión de bases de datos orientadas a objetos (OODBMS) para mostrar sus datos complejos. El uso de un DBMS diseñado específicamente para almacenar datos como objetos ofrece una ventaja a las empresas orientadas a la presentación multimedia o a las 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 ; otras, como JADE, tienen sus propios lenguajes de programación. Los sistemas de gestión de bases de datos orientadas a objetos (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 orientadas a objetos surgieron de la investigación realizada a principios y mediados de la década de 1970, incorporando soporte intrínseco para la gestión de bases de datos en objetos con estructura de grafo. El término "sistema de base de datos orientado a objetos" apareció por primera vez alrededor de 1985. [ 4 ] Entre los proyectos de investigación más destacados se encuentran 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 contó con más artículos publicados que cualquiera de los demás. Won Kim, de MCC, recopiló los mejores de estos artículos en un libro publicado por The MIT Press. [ 5 ]
Entre los primeros productos comerciales se encontraban Gemstone (Servio Logic, nombre cambiado a GemStone Systems), Gbase (Graphael) y Vbase (Ontologic). Otros productos comerciales entraron en el mercado a finales de la década de 1980 y mediados de la década de 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 siguen en el mercado y a ellos se han sumado nuevos productos de código abierto y comerciales, como InterSystems Caché .
Los sistemas de gestión de bases de datos orientadas a objetos añadieron el concepto de persistencia a los lenguajes de programación orientados a 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 comercial de gestión de bases de datos orientadas a objetos. Los proveedores añadieron 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 con la aparición de bases de datos de objetos de código abierto , ampliamente asequibles y fáciles de usar, ya que están escritas íntegramente en lenguajes de programación orientada a objetos como Smalltalk, Java o C#, como db4o (db4objects) de Versant, DTS/S1 de Obsidian Dynamics y Perst (McObject), disponibles bajo una doble licencia de código abierto y comercial.
Cronología
- 1966
- 1979
- 1980
- 1982
- Gemstone comenzó (como Servio Logic) con el objetivo de construir una máquina de base de datos basada en modelos de teoría de conjuntos.
- 1985 – Se introdujo por primera vez la base de datos de objetos de término.
- 1986
- Servio Logic (Gemstone Systems) envía Gemstone 1.0
- 1988
- Se funda Object Design, Incorporated y comienza el desarrollo de ObjectStore.
- Versant Corporation comenzó (como Object Sciences Corp)
- Objetividad, Inc. fundada
- Principios de la década de 1990
- Mediados de la década de 1990
- InterSystems Caché
- Base de datos de objetos Versant
- ODABA
- ZODB
- Poeta
- JADE
- Matisse
- Illustra Informix
- década de 2000
- lambda-DB: Un sistema de gestión de bases de datos orientado a objetos basado en ODMG por Leonidas Fegaras, Chandrasekhar Srinivasan, Arvind Rajendran, David Maier
- Proyecto db4o iniciado por Carl Rosenberger.
- Base de datos de objetos
- 2001 IBM adquiere Informix
- Versión pública de odbpp de 2003
- En 2004, db4o lanzó comercialmente su nombre como db4objects, Inc.
- db4o fue adquirida por Versant Corporation en 2008.
- 2010 VMware adquiere GemStone [ 8 ]
- El desarrollo de db4o se detuvo en 2011.
- 2012: Primeras versiones de producción de Wakanda con licencias de código abierto y comerciales.
- 2012 Actian adquiere Versant Corporation
- 2013 GemTalk Systems adquiere productos Gemstone de VMware [ 9 ]
- En 2014, Actian (que había adquirido Versant) suspendió oficialmente la oferta comercial de db4o [ 10 ].
- Reino 2014 [ 11 ]
- 2017 ObjectBox [ 12 ]
Adopción de bases de datos orientadas a 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 física de altas energías [ 13 ] y biología molecular . [ 14 ]
Otro grupo de bases de datos de objetos se centra en su uso integrado en dispositivos, software empaquetado y sistemas en tiempo real .
Características técnicas
La mayoría de las bases de datos orientadas a objetos también ofrecen algún tipo de lenguaje de consulta , lo que permite encontrar objetos mediante un enfoque de programación declarativa . Es en el ámbito de los lenguajes de consulta de objetos, y en la integración de las interfaces de consulta y navegación, donde se encuentran las mayores diferencias entre los productos. El ODMG intentó estandarizar este lenguaje 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 búsqueda, siguiendo punteros .
Otra área de variación entre productos radica en la forma en que se define el esquema de la 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 tipos.
Las aplicaciones multimedia se ven facilitadas porque los métodos de clase asociados a los datos son responsables de su correcta interpretación.
Muchas bases de datos de objetos, como Gemstone o VOSS, ofrecen soporte para el versionado . Un objeto puede considerarse como el conjunto de todas sus versiones. Además, las versiones de un objeto pueden tratarse como objetos independientes. Algunas bases de datos de objetos también proporcionan soporte sistemático para disparadores y restricciones, que son la base de las bases de datos activas .
La eficiencia de este tipo de base de datos también mejora considerablemente en áreas que requieren grandes cantidades de datos sobre un solo elemento. Por ejemplo, una entidad bancaria podría obtener la información de la cuenta del usuario y proporcionarle de forma eficiente información detallada, como transacciones, movimientos de cuenta, etc.
Estándares
El Object Data Management Group (ODMG) era un consorcio formado por proveedores de bases de datos de objetos y mapeo objeto-relacional, miembros de la comunidad académica y otras partes interesadas. Su objetivo era crear un conjunto de especificaciones que permitieran el desarrollo de aplicaciones portátiles que almacenaran 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. Para 2001, la mayoría de los principales proveedores de bases de datos de objetos y mapeo objeto-relacional afirmaban cumplir con la especificación ODMG Java Language Binding. El cumplimiento de los demás componentes de la especificación era desigual. En 2001, la especificación ODMG Java Language Binding se presentó al Java Community Process como base para la especificación Java Data Objects . Las empresas miembro de ODMG decidieron entonces concentrar sus esfuerzos en la especificación Java Data Objects. Como resultado, ODMG se disolvió en 2001.
Muchas ideas sobre bases de datos orientadas a objetos también se incorporaron a SQL:1999 y se han implementado en diversos grados en productos de bases de datos objeto-relacionales .
En 2005, Cook, Rai y Rosenberger propusieron abandonar todos los esfuerzos de estandarización para introducir API de consulta orientadas a objetos adicionales y, en su lugar, utilizar el propio lenguaje de programación orientado a objetos, 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 integradas 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 a 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 planeaba crear un conjunto de estándares que incorporaran los avances en tecnología de bases de datos de objetos (p. ej., replicación), gestión de datos (p. ej., indexación espacial) y formatos de datos (p. ej., XML), e incluir nuevas características en estos estándares que dieran soporte a ámbitos donde se están adoptando bases de datos de objetos (p. ej., sistemas en tiempo real). El trabajo del ODBT WG se suspendió en marzo de 2009 cuando, tras la crisis económica de finales de 2008, los proveedores de ODB involucrados en este proyecto decidieron centrar sus recursos en otros ámbitos.
En enero de 2007, el Consorcio World Wide Web (W3C) otorgó la recomendación final al lenguaje XQuery . XQuery utiliza XML como modelo de datos. Algunas de las ideas desarrolladas originalmente para bases de datos orientadas a objetos se incorporaron a XQuery, pero este no es intrínsecamente orientado a objetos. Debido a la popularidad de XML, los motores XQuery compiten con las bases de datos orientadas a objetos como medio para almacenar datos demasiado complejos o variables para ser gestionados de forma práctica en una base de datos relacional. XQuery también permite escribir módulos para proporcionar funcionalidades de encapsulación propias de 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 y libre (FOSS), [ 15 ] [ 16 ] [ 17 ] como en sistemas comerciales. Son fáciles de aprender y usar, y muy potentes y rápidos. No son relacionales y XQuery no se basa en SQL (aunque una de las personas que diseñó XQuery también fue coinventora de SQL). Pero tampoco son orientados a objetos, en el sentido de programación: XQuery no utiliza encapsulación con ocultación, despacho implícito, clases y métodos. Las bases de datos XQuery generalmente usan 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 aceptación en la comunidad de aplicaciones donde los desarrolladores controlan el 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 estrategia principal de los responsables del mantenimiento de sistemas de gestión de bases de datos orientadas a objetos (OODBMS) fue adaptar JSON a sus bases de datos (utilizándolo como tipo de dato interno).
En enero de 2016, con el lanzamiento de PostgreSQL 9.5 [ 18 ] fue el primer OODBMS FOSS en ofrecer un tipo de datos interno JSON eficiente (JSONB) con un conjunto completo de funciones y operaciones, para todas las manipulaciones relacionales y no relacionales básicas.
Comparación con los sistemas de gestión de bases de datos relacionales (RDBMS)
Una base de datos de objetos almacena datos complejos y relaciones entre ellos directamente, sin mapearlos a filas y columnas relacionales , lo que 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 punteros. Los punteros se vinculan a los objetos para establecer relaciones. Otra ventaja de un SGBD orientado a objetos es que puede programarse con pequeñas diferencias de procedimiento sin afectar a todo el sistema. [ 20 ]
Véase también
- Comparación de sistemas de gestión de bases de datos orientadas a objetos
- Base de datos orientada a componentes
- Base de datos EDA
- Marco de objetos empresariales
- NoSQL
- Grupo de gestión de datos de objetos
- Base de datos objeto-relacional
- Persistencia (informática)
- Modelo relacional
- Sistema de gestión de bases de datos relacionales (RDbMS)
Referencias
- ↑ 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.
- ↑ 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). Consultado el 18 de septiembre de 2013. Archivado el 6 de marzo de 2014 en Wayback Machine .
- ^ O'Brien, JA y Marakas, GM (2009). Sistemas de información de gestión (9ª ed.). Nueva York, Nueva York: McGraw-Hill/Irwin
- ↑ Tres ejemplos de referencias de 1985 que utilizan el término: T. Atwood, "An Object-Oriented DBMS for Design Support Applications", Proceedings of the IEEE COMPINT 85 , pp. 299-307, septiembre de 1985; N. Derrett, W. Kent y P. Lyngbaek, "Some Aspects of Operations in an Object-Oriented Database", Database Engineering , vol. 8, n.º 4, IEEE Computer Society, diciembre de 1985; D. Maier, A. Otis y A. Purdy, "Object-Oriented Database Development at Servio Logic", Database Engineering , vol. 18, n.º 4, diciembre de 1985.
- ↑ Kim, Won. Introducción a las bases de datos orientadas a objetos. The MIT Press, 1990. ISBN 0-262-11124-1
- ↑ Bancilhon, Francois; Delobel, Claude; y Kanellakis, Paris. Building an Object-Oriented Database System: The Story of O 2 . Morgan Kaufmann Publishers, 1992. ISBN 1-55860-169-4.
- ↑ Ulfsby; et al. (julio de 1981). "TORNADO: un DBMS para sistemas CAD/CAM". Computer-Aided Design . 13 (4): 193– 197. doi : 10.1016/0010-4485(81)90140-8 .
- ↑ "SpringSource adquirirá la tecnología de gestión de datos de Gemstone Systems" . WMware. 6 de mayo de 2010. Archivado del original el 8 de agosto de 2014. Consultado el 5 de agosto de 2014 .
- ↑ GemTalk Systems (2 de mayo de 2013). "GemTalk Systems adquiere los productos GemStone/S de VMware" . PRWeb. Archivado del original el 10 de agosto de 2014. Consultado el 5 de agosto de 2014 .
- ↑ "Reestructuración de nuestro sitio web de la comunidad Versant" .
- ↑ "Realm lanza una base de datos de objetos para Node.js" . InfoQ . Archivado del original el 2 de febrero de 2017.
- ↑ DB-Engines. "Clasificación de bases de datos de objetos en DB-Engines" . DB-Engines . Consultado el 21 de mayo de 2021 .
- ↑ "Acelerador Lineal de Stanford (SLAC)" .
- ↑ Herde, Patrick; Sibbald, Peter R. (1992). «Integración de colecciones de datos de biología molecular mediante bases de datos y programación 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 .
- ↑ "Procesador XQuery de BaseX" . basex.org . Archivado del original el 16 de diciembre de 2023.
- ↑ "XQuery en eXist-db" . exist-db.org . Archivado del original el 2 de diciembre de 2023.
- ↑ "Saxon - Uso de XQuery" . www.saxonica.com . Archivado del original el 23 de septiembre de 2020.
- ↑ "PostgreSQL: Documentación: 10: 9.15. Funciones y operadores JSON" . www.postgresql.org . Archivado del original el 18 de mayo de 2016.
- ↑ Radding, Alan (1995). "¿Qué demonios es ODBMS?". Computerworld . 29 (45): 121– 122, 129.
- ↑ Burleson, Donald. (1994). Los sistemas de gestión de bases de datos orientadas a objetos (OODBMS) ganan terreno en los sistemas de información gerencial (MIS), pero los sistemas de gestión de bases de datos relacionales (RDBMS) siguen dominando el mercado. Software Magazine, 14(11), 63
Enlaces externos
- Portal de recursos de DBMS orientado a objetos
- Clasificación de sistemas de gestión de bases de datos orientados a objetos (archivado el 1 de diciembre de 2024 en Wayback Machine) - por popularidad, actualizada mensualmente desde DB-Engines.
- Sistemas de gestión de bases de datos
- Programación orientada a objetos
- Modelos de bases de datos
- Sistemas de gestión de bases de datos orientados a objetos
- Tipos de bases de datos
