Banco de dados de objetos - Object database

Exemplo de um modelo orientado a objetos

Um banco de dados de objetos é um sistema de gerenciamento de banco de dados no qual as informações são representadas na forma de objetos, conforme usado na programação orientada a objetos . Os bancos de dados de objetos são diferentes dos bancos de dados relacionais que são orientados a tabelas. Bancos de dados objeto-relacionais são um híbrido de ambas as abordagens.

Bancos de dados de objetos têm sido considerados desde o início dos anos 1980.

Visão geral

Os sistemas de gerenciamento de banco de dados orientado a objetos (OODBMSs) também chamados de ODBMS (Object Database Management System) combinam recursos de banco de dados com recursos de linguagem de programação orientada a objetos . Os OODBMSs permitem que os programadores orientados a objetos desenvolvam o produto, os armazenem como objetos e repliquem ou modifiquem objetos existentes para criar novos objetos dentro do OODBMS. Como o banco de dados está integrado à linguagem de programação, o programador pode manter a consistência dentro de um ambiente, em que tanto o OODBMS quanto a linguagem de programação usarão o mesmo modelo de representação. Os projetos SGBD relacionais, por contraste, mantêm uma divisão mais clara entre o modelo de banco de dados e o aplicativo.

À medida que o uso de tecnologia baseada na web aumenta com a implementação de Intranets e extranets, as empresas têm grande interesse em OODBMSs para exibir seus dados complexos. Usar um SGBD que foi projetado especificamente para armazenar dados como objetos oferece uma vantagem para as empresas voltadas para apresentações multimídia ou organizações que utilizam design auxiliado por computador (CAD).

Alguns bancos de dados orientados a objetos são projetados para funcionar bem com linguagens de programação orientadas a objetos , como Delphi , Ruby , Python , JavaScript , Perl , Java , C # , Visual Basic .NET , C ++ , Objective-C e Smalltalk ; outros, como JADE, têm suas próprias linguagens de programação. Os OODBMSs usam exatamente o mesmo modelo que as linguagens de programação orientadas a objetos.

História

Os sistemas de gerenciamento de banco de dados de objetos surgiram da pesquisa durante o início da década de 1970 e passaram a ter suporte de gerenciamento de banco de dados intrínseco para objetos estruturados em gráficos. O termo "sistema de banco de dados orientado a objetos" apareceu pela primeira vez por volta de 1985. Projetos de pesquisa notáveis ​​incluíram Encore-Ob / Server ( Brown University ), EXODUS ( University of Wisconsin-Madison ), IRIS (Hewlett-Packard), ODE ( Bell Labs ), ORION ( Microelectronics and Computer Technology Corporation ou MCC), Vodak (GMD-IPSI) e Zeitgeist (Texas Instruments). O projeto ORION teve mais artigos publicados do que qualquer um dos outros esforços. Won Kim, da MCC, compilou o melhor desses artigos em um livro publicado pela The MIT Press.

Os primeiros produtos comerciais incluíam Gemstone (Servio Logic, nome alterado para GemStone Systems), Gbase (Graphael) e Vbase (Ontologic). Produtos comerciais adicionais entraram no mercado no final da década de 1980 até meados da década de 1990. Estes incluíam ITASCA (Itasca Systems), Jasmine (Fujitsu, comercializado pela Computer Associates), Matisse (Matisse Software), Objectivity / DB (Objectivity, Inc.), ObjectStore ( Progress Software , adquirido da eXcelon que era originalmente Object Design, Incorporated ) , ONTOS (Ontos, Inc., nome alterado de Ontologic), O 2 (O 2 Technology, fundida com várias empresas, adquirida pela Informix , que por sua vez foi adquirida pela IBM ), POET (agora FastObjects da Versant que adquiriu a Poet Software) , Versant Object Database ( Versant Corporation), VOSS (Logic Arts) e JADE (Jade Software Corporation). Alguns desses produtos permanecem no mercado e se juntaram a novos produtos de código aberto e comerciais, como InterSystems Caché .

Os sistemas de gerenciamento de banco de dados de objetos adicionaram o conceito de persistência às linguagens de programação de objetos. Os primeiros produtos comerciais foram integrados com várias linguagens: GemStone ( Smalltalk ), Gbase ( LISP ), Vbase ( COP ) e VOSS (Virtual Object Storage System for Smalltalk ). Durante grande parte da década de 1990, C ++ dominou o mercado de gerenciamento de banco de dados de objetos comerciais. Os fornecedores adicionaram Java no final da década de 1990 e, mais recentemente, C # .

A partir de 2004, os bancos de dados de objetos passaram por um segundo período de crescimento, quando surgiram bancos de dados de objetos de código aberto que eram amplamente acessíveis e fáceis de usar, porque são inteiramente escritos em linguagens OOP como Smalltalk, Java ou C #, como db4o (db4objects) de Versant , DTS / S1 da Obsidian Dynamics and Prest (McObject), disponível em código aberto duplo e licenciamento comercial.

Linha do tempo

Adoção de bancos de dados de objetos

Bancos de dados de objetos baseados em programação persistente adquiriram um nicho em áreas de aplicação, como engenharia e bancos de dados espaciais , telecomunicações e áreas científicas, como física de alta energia e biologia molecular .

Outro grupo de bancos de dados de objetos concentra-se no uso integrado em dispositivos, pacotes de software e sistemas em tempo real.

Características técnicas

A maioria dos bancos de dados de objetos também oferece algum tipo de linguagem de consulta , permitindo que os objetos sejam encontrados usando uma abordagem de programação declarativa . É na área das linguagens de consulta de objetos, e na integração das interfaces de consulta e navegação, que se encontram as maiores diferenças entre os produtos. Uma tentativa de padronização foi feita pelo ODMG com a Object Query Language , OQL.

O acesso aos dados pode ser mais rápido porque um objeto pode ser recuperado diretamente sem uma pesquisa, seguindo os ponteiros .

Outra área de variação entre os produtos está na maneira como o esquema de um banco de dados é definido. Uma característica geral, entretanto, é que a linguagem de programação e o esquema do banco de dados usam as mesmas definições de tipo.

As aplicações multimídia são facilitadas porque os métodos de aula associados aos dados são responsáveis ​​por sua correta interpretação.

Muitos bancos de dados de objetos, por exemplo, Gemstone ou VOSS, oferecem suporte para controle de versão . Um objeto pode ser visto como o conjunto de todas as suas versões. Além disso, as versões do objeto podem ser tratadas como objetos em seu próprio direito. Alguns bancos de dados de objetos também fornecem suporte sistemático para gatilhos e restrições que são a base dos bancos de dados ativos .

A eficiência desse banco de dados também é muito melhorada em áreas que demandam grandes quantidades de dados sobre um item. Por exemplo, uma instituição bancária pode obter as informações da conta do usuário e fornecer-lhes de forma eficiente informações abrangentes, como transações, entradas de informações da conta, etc.

Padrões

O Object Data Management Group era um consórcio de fornecedores de banco de dados de objetos e mapeamento relacional de objetos, membros da comunidade acadêmica e partes interessadas. Seu objetivo era criar um conjunto de especificações que permitisse aplicativos portáteis que armazenam objetos em sistemas de gerenciamento de banco de dados. Publicou várias versões de sua especificação. A última versão foi ODMG 3.0. Em 2001, a maioria dos principais fornecedores de banco de dados de objetos e mapeamento relacional de objetos declararam conformidade com o ODMG Java Language Binding. A conformidade com os outros componentes da especificação foi mista. Em 2001, o ODMG Java Language Binding foi submetido ao Java Community Process como base para a especificação Java Data Objects . As empresas membros do ODMG decidiram então concentrar seus esforços na especificação Java Data Objects. Como resultado, o ODMG foi dissolvido em 2001.

Muitas idéias de banco de dados de objeto também foram absorvidas no SQL: 1999 e foram implementadas em vários graus em produtos de banco de dados relacional de objeto .

Em 2005, Cook, Rai e Rosenberger propuseram abandonar todos os esforços de padronização para introduzir APIs de consulta orientada a objetos adicionais, mas em vez disso, usar a própria linguagem de programação OO, ou seja, Java e .NET, para expressar consultas. Como resultado, surgiram consultas nativas . Da mesma forma, a Microsoft anunciou o Language Integrated Query (LINQ) e o DLINQ, uma implementação do LINQ, em setembro de 2005, para fornecer recursos próximos e integrados de consulta ao banco de dados com suas linguagens de programação C # e VB.NET 9.

Em fevereiro de 2006, o Object Management Group (OMG) anunciou que havia recebido o direito de desenvolver novas especificações baseadas na especificação ODMG 3.0 e a formação do Object Database Technology Working Group (ODBT WG). O ODBT WG planejou criar um conjunto de padrões que incorporariam avanços na tecnologia de banco de dados de objetos (por exemplo, replicação), gerenciamento de dados (por exemplo, indexação espacial) e formatos de dados (por exemplo, XML) e incluir novos recursos nesses padrões que suporte a domínios onde bancos de dados de objetos estão sendo adotados (por exemplo, sistemas em tempo real). O trabalho do ODBT WG foi suspenso em março de 2009 quando, após a turbulência econômica no final de 2008, os fornecedores ODB envolvidos neste esforço decidiram concentrar seus recursos em outro lugar.

Em janeiro de 2007, o World Wide Web Consortium deu status de recomendação final para a linguagem XQuery . XQuery usa XML como seu modelo de dados. Algumas das ideias desenvolvidas originalmente para bancos de dados de objetos encontraram seu caminho para o XQuery, mas o XQuery não é intrinsecamente orientado a objetos. Devido à popularidade do XML, os mecanismos XQuery competem com os bancos de dados de objetos como um veículo para armazenamento de dados que são muito complexos ou variáveis ​​para serem mantidos convenientemente em um banco de dados relacional. XQuery também permite que módulos sejam escritos para fornecer recursos de encapsulamento que foram fornecidos por sistemas orientados a objetos.

XQuery v1 e XPath v2 são extremamente complexos (nenhum software FOSS está implementando esses padrões mais de 10 anos após sua publicação) quando comparados a XPath v1 e XSLT v1 , e XML não atendia a todas as demandas da comunidade como um formato aberto . Desde o início dos anos 2000, o JSON ganhou adoção pela comunidade e popularidade em aplicativos, ultrapassando o XML nos anos 2010. JSONiq , um análogo de consulta de XQuery para JSON (compartilhando as principais expressões e operações de XQuery), demonstrou a equivalência funcional dos formatos JSON e XML. Nesse contexto, a principal estratégia dos mantenedores do OODBMS era retrofit JSON em seus bancos de dados (usando-o como o tipo de dados interno).

Em janeiro de 2016, com o lançamento do PostgreSQL 9.5 foi o primeiro FOSS OODBMS a oferecer um tipo de dados interno JSON (JSONB) eficiente com um conjunto completo de funções e operações, para todas as manipulações relacionais e não relacionais básicas.

Comparação com RDBMSs

Um banco de dados de objetos armazena dados complexos e relacionamentos entre dados diretamente, sem mapeamento para linhas e colunas relacionais, e isso os torna adequados para aplicativos que lidam com dados muito complexos. Os objetos têm um relacionamento muitos para muitos e são acessados ​​pelo uso de ponteiros. Ponteiros são vinculados a objetos para estabelecer relacionamentos. Outro benefício de um OODBMS é que ele pode ser programado com pequenas diferenças de procedimento sem afetar todo o sistema.

Veja também

Referências

links externos