Wikipedia for Schools in Portuguese is available here
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Banco de dados orientado a objetos - Wikipédia

Banco de dados orientado a objetos

Origem: Wikipédia, a enciclopédia livre.

Um banco de dados orientado a objetos é um banco de dados em que cada informação é armazenada na forma de objetos. O gerenciador do banco de dados para um orientado a objeto é referenciado por vários como ODBMS ou OODBMS.

Existem dois fatores principais que levam a adoção da tecnologia de banco de dados orientados a objetos. A primeira, é que em um banco de dados relacional se torna difícil de manipular com dados complexos. Segundo, os dados são geralmente manipulados pela aplicação escrita usando linguagens de programação orientada a objetos, como C++, C#, Java ou Delphi, e o código precisa ser traduzido entre a representação do dado e as tuplas da tabela relacional, o que além de ser uma operação tediosa de ser escrita, consome tempo. Esta perda entre os modelos usados para representar a informação na aplicação e no banco de dados é também chamada de “perda por resistência”.

Índice

[editar] História

Os sistemas de gerenciamento de banco de dados orientado a objetos cresceram fora das pesquisas durante o começo da metade dos anos 80, buscando ter sustentação intrínseca da gerência da base de dados para objetos gráfico-estruturados. O termo “sistema de banco de dados orientado a objetos” surgiu originalmente por volta de 1985. Projetos de pesquisa notáveis incluem Encore-Ob/Server (Brown University), EXODUS (University of Wisconsin), IRIS (Hewlett-Packard), ODE (Bell Labs), ORION (Microelectronics and Computer Technology Corporation or MCC), Vodak (GMD-IPSI), e Zeitgeist (Texas Instruments). O projeto ORION teve mais artigos publicados do que qualquer outro. Won Kim, do MCC, compilou os melhores destes artigos num livro publicado pelo MIT Press.[1]

Surgiram produtos comerciais, como o GemStone (Servio Logic, alterado para GemStone Systems), Gbase (Graphael), e Vbase (Ontologic). No começo da metade dos anos 90 vimos novos produtos comerciais entrarem no mercado. Deste inclui-se ITASCA (Itasca Systems), Matisse (Matisse Software), Objectivity/DB (Objectivity, Inc.), ObjectStore (Progress Software, adquirido pela eXcelon, a qual era originalmente Object Design), ONTOS (Ontos, Inc., alterado para Ontologic), O2[2] (O2 Technology, surgiu de várias companhias, adquirido pela Informix, qual por sua vez foi adquirida pela IBM), POET (agora da FastObjects da Versant que adquiriu a Poet Systems), e Versant Object Database (Versant Corporation). Alguns destes produtos se mantem no mercado, tendo alguns se unido com novos produtos.

Os Sistema de Gerenciamento de Banco de Dados Orientados a Objetos adicionaram o conceito de persistência da programação orientada a objetos. No ínicio os produtos comerciais eram integrados com várias linguagens GemStone (Smalltalk), Gbase (Lisp), e Vbase (COP). O COP era o C Object Processor, uma linguagem proprietária baseada no C ( COP é diferente de C++. Apesar de ambas terem C como base C++ também foi influenciada Pela Simula). Durante praticamente todos os anos 90, o C++ dominou o mercado comercial de Gerenciadores de Banco de Dados Orientados a Objetos. Os vendedores acrescentaram o Java no final dos anos 90 e mais recentemente o C#.

[editar] Adoção de Banco de Dados Orientado a Objetos

Banco de dados orientados a objetos baseados numa programação persistente adquiriram um nicho nas áreas como banco de dados espaciais, telecomunicações, e áreas científicas como física de alta energia e biologia molecular. Eles tiveram pouco impacto nas principais aplicações comerciais de processamento de dados, embora sejam utilizados em algumas áreas especializadas em serviços financeiros. Isto é ruim se notarmos que esses bancos guardam a maior base de dados do mundo ( mais de 1000 Terabytes da Stanford Linear Accelerator Center) e tem a maior taxa de inserção já gravada por um banco de dados comercial ( mais de um Terabytes por hora).

Iniciando em 2004, os bancos de dados orientados a objetos tiveram um segundo período de crescimento quando os projetos de banco de dados livres surgiram com diversos recursos e de fácil uso, porque eles eram totalmente escritos em linguagens orientada a objetos, como o Java, C++ ou C#.

[editar] Recursos Técnicos

Num banco de dados orientado a objetos puro, os dados são armazenados como objetos onde só podem ser manipulados pelos métodos definidos pela classe que estes objetos pertencem. Os objetos são organizados numa hierarquia de tipos, e subtipos que recebem as características de seus supertipos. Os objetos podem conter referências para outros objetos, e as aplicações podem conseqüentemente acessar os dados requeridos usando um estilo de navegação de programação.

A maioria dos banco de dados também oferecem algum tipo de linguagem de consulta, permitindo que os objetos sejam localizados por uma programação declarativa mais próxima. Isso é na área das linguagens de consulta orientada a objetos, e a integração da consulta com a interface de navegação, faz a grande diferença entre os produtos que são encontrados. Uma tentativa de padronização foi feita pela ODMG (Object Data Management Group) com a OQL (Object Query Language).

O acesso aos dados pode ser rápido porque as junções são geralmente não necessárias (como numa implementação tabular de uma base de dados relacional), isto é, porque um objeto pode ser obtido diretamente sem busca, seguindo os ponteiros.

Outra área de variação entre os produtos é o modo que este schema do banco de dados é definido. Uma característica geral, entretanto, é que a linguagem de programação e o schema do banco de dados usam o mesmo modo de definição de tipos.

Aplicações multimídia são facilitadas porque os métodos de classe associados com os dados são responsáveis pela correta reprodução.

Muitos banco de dados orientados a objetos oferecem suporte a versões. Um objeto pode ser visto de todas as várias versões. Ainda, versões de objetos podem ser tratadas como objetos na versão correta. Alguns banco de dados orientados a objetos ainda provem um suporte sistemático a triggers e constraints que são as bases dos bancos ativos.

[editar] Vantagens e Desvantagens

Benchmarks entre ODBMSs e relacionais DBMSs tem mostrado que ODBMS podem ser claramente superiores para certos tipos de tarefas. A principal razão para isto é que várias operações são feitas utilizando interfaces navegacionais ao invés das relacionais, e o acesso navegacional é geralmente implementado de forma muito eficientemente por ponteiros.[3]

Críticos das tecnologias baseadas em Bancos de Dados Navegacionais, como os ODBMS, sugerem que as técnicas baseadas em ponteiros são otimizadas para “rotas de pesquisa” ou pontos de vista muito específicos. Entretanto, para o propósito de consultas gerais a mesma informação, técnicas baseadas em ponteiros tenderão a ser mais lentas e mais difíceis de se formular do que as relacionais. Desta maneira, a abordagem navegacional parece simplificar para usos dos específicos conhecidos às custas do uso geral, ignorando usos futuros.

Outra coisa que trabalha contra os ODBMS parece ser a perda da interoperabilidade com um grande número de ferramentas/características que são tidas como como certas no mundo SQL, incluindo a indústria de padrões de conectividade, ferramentas de relatório, ferramentas de OLAP e backup, e padrões de recuperação. Adicionalmente, banco de dados orientado a objetos perdem o fundamento formal matemático, ao contrário do modelo relacional, e isto as vezes conduz a fraqueza na sustentação da consulta. Entretanto esta objeção é descartada pelo fato que alguns ODBMSs suportam totalmente o SQL em adição ao acesso navegacional (Objectivity/SQL++). Mas, o uso eficaz pode requerer acordos para manter ambos os paradigmas sincronizados.

De fato há uma tensão intrínseca entre a noção de encapsulamento, que esconde os dados e somente os disponibiliza através de uma interface de métodos publicados, e o presuposto de muitas tecnologia de bancos de dados, de que estes dados podem ser acessados por consultas baseadas em seu conteúdo ao invés de caminhos predefinidos. O pensamento centrado em bancos de dados tende a ver o mundo através de forma declarativa e dirigida a uma visão de atributos, enquanto a OOP tenta ver o mundo através um ponto de vista comportamental. Esta é uma das várias “perdas por resistência” que envolvem OOP e banco de dados.

Embora alguns afirmem que a tecnologia de banco de dados orientado a objetos fracassou, os argumentos essenciais em seu favor permanecem válidos, e as tentativas de integrar as funcionalidades de bancos de dados mais próxima as linguagens de programação orientadas a objeto continuam tanto nas comunidades de pesquisa quanto nas industriais.

[editar] Padrões

O ODMG (Object Database Management Group) era um consórcio de vendedores de banco de dados orientados a objetos e mapeadores objeto-relacionais, membros da comunidade acadêmica, e parceiros interessados. A meta era criar um conjunto de especificações que permitiriam a portabilidade das aplicações que armazenam objetos em sistemas de gerenciamento de banco de dados. Foram publicados várias versões desta especificação. O último release foi a ODMG 3.0. Em 2001, a maioria dos principais vendedores de banco de dados orientado a objetos e mapeadores de objeto-relacionais reivindicaram a conformidade com a ODMG Java Language Binding. A conformidade com os demais componentes da especificação foi variada.[4] Em 2001, o ODMG Java Language Binding foi submetido para o Java Community Process como base para a especificação Java Data Objects. As companhias membras do ODMG decidiram então concentrar esforços na especificação do Java Data Objects. Como resultado, a ODMG se dissolveu em 2001.

Várias idéias do banco de dados orientado a objetos foram absorvidas pela SQL:1999 e tem sido implementadas em vários graus nos produtos de banco de dados objeto-relacional.

Em 2005 Cook, Rai e Rosenberger propuseram abandonar todos os esforços de padronização para introduzir APIs adicionais de consulta orientadas a objetos e, ao invés disso, usar as próprias linguagens orientadas a objetos, como o JAVA e o .NET. Como resultado surgiram as Consultas Nativas (Native Queries). Similarmente, a Microsoft anunciou a LINQ (Language Integrated Query) e DLINQ, uma implementação do LINQ, em setembro de 2005, para prover a aproximação da capacidade da linguagem de consulta integrada do banco de dados com as linguagens de programação C# e VB.NET 9.

Em fevereiro de 2006, o OMG (Object Management Group) anunciou que havia concedido o direito de desenvolver novas especificações baseadas na especificação ODMG 3.0 e a formação do ODBT WG (Object Database Technology Working Group). O ODBT WG planeja criar um conjunto de especificações que incorporará avanços da tecnologia de banco de dados orientados a objetos (ex. replicação), gerenciamento de dados (ex. indexação espacial) e formato de dados (ex. XML) e incluir novas características dentro deste padrão que dará suporte ao dominios onde as bancos de dados orientadas a objeto estão sendo adotadas (ex. sistemas de tempo real).

[editar] Referências e notas

  1. Kim, Won. Introduction to Object-Oriented Databases. The MIT Press, 1990. ISBN 0-262-11124-1
  2. Bancilhon, Francois; Delobel,Claude; and Kanellakis, Paris. Building an Object-Oriented Database System: The Story of O2. Morgan Kaufmann Publishers, 1992. ISBN 1-55860-169-4.
  3. Animação mostrando como um banco de dados orientado a objetos funciona
  4. Barry, Douglas and Duhl, Joshua. Object Storage Fact Books: Object DBMSs and Object-Relational Mapping. Barry & Associates, Inc., 2001. A páginas exibe a conformidade da ODMG para a os banco de dados orientados a objetos e os produtos objeto-relacionais em 2001

[editar] Ver também

[editar] Ligações externas

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com