Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Introdução ao Oracle Berkeley DB XML

Recommended Posts

Neste artigo, vamos conhecer uma solução de banco de dados para gerenciar arquivos em XML (Extensible Markup Language) para aplicações que trabalham com um grande volume desses arquivos em seus ambientes corporativos ou na web. A solução será adotar o Oracle Berkeley DB XML.

 

E o que é Oracle Berkeley DB XML?

 

É um banco de dados XML escrito em C++ que está sobre a camada de outro banco de dados, Oracle Berkeley DB. Sua principal função é fornecer suporte a consultas, inserções e manipulação dos arquivos XML armazenados nele, usando recursos como XQuery 1.0, XPath 2.0, índices, validação dos arquivos, controle das transações e até mesmo replicação.

 

O Oracle Berkeley DB XML pode trabalhar isoladamente da camada principal do banco de dados do Oracle Berkeley DB. Isso é possível porque o Oracle Berkeley DB XML é um banco de dados embutido que pode trabalhar diretamente nas aplicações. E quando mencionamos embutido, dizemos que não é necessário nenhum processo de servidor (daemon) para iniciar ou parar seus serviços, tudo pode ser acessado através de API (Application Programming Interface) própria.

 

Dessa forma, os dados dos arquivos XML podem ser acessados diretamente através de bibliotecas pela aplicação ou pelo console do Oracle Berkeley DB XML, e pode ser distribuído no mesmo pacote de instalação da aplicação. Para melhorar a compreensão da arquitetura de um banco de dados embutido, vamos pensar nos seguintes exemplos:

 

  1. Uma aplicação de Catálogo de Endereços possui um banco de dados embutido, certo? Pois será necessário armazenar todos os registros que inserimos e depois manipular, seja na edição ou na exclusão;
  2. Aplicação de E-mail também trabalha com um banco de dados embutido, pois não conseguimos realizar consultas em nossos e-mails? Adicionar e-mail em biblioteca própria ou até mesmo realizar um backup da mensagens? Desse modo, a aplicação pode utilizar um banco de dados embutido para armazenar e para gerenciar as suas mensagens;
  3. Outro exemplo interessante são aplicações que realizam controle de log em servidores ou até mesmo aplicações que realizam diversas manipulações em arquivos XML para diversas finalidades na web. Um exemplo seria o controle dos seus Feeds, gerador de RSS ou até mesmo controle de produtos em loja virtual.

Todos os exemplos que estou citando são para aplicações que não precisem de um banco de dados relacional como Oracle Database, SQL Server ou IBM DB2.

 

Além de o Oracle Berkeley DB XML ser um banco de dados embutido (Embedded database), possui diversas outras características importantes na sua utilização. Veja algumas dessas características:

 

  • Agrupamento de arquivos através de Containers;
  • Validação de esquema ou método por arquivo;
  • Suporte a XML namespace;
  • Suporte a XQuery debugging;
  • Indexação de nós (nodes), elementos, atributos e metadata;
  • Utilização de índices específicos para os arquivos XML para aumentar performance;
  • Query Engine baseado em otimizador por custo;
  • API para linguagens como Java, C++, Python, Php, Perl, Ruby on Rails e etc;
  • Integração com Apache;
  • Suporte a 256TB de armazenamento de arquivos;
  • Não há necessidade de administração por parte do DBA;
  • Suporte de instalação em Windows, Linux, Unix, MacOS e qualquer sistema operacional POSIX;
  • Streaming dos documentos por URI, memória ou diretamente do arquivo;
  • E possibilidade de atualização/inclusão de novos nós ou elementos dos arquivos XML.

Para termos uma noção da utilização do Oracle Berkeley DB XML em sua aplicação, veremos um exemplo da arquitetura de como podemos trabalhar com esse banco de dados:

 

35182.png

 

Na imagem acima, a arquitetura do Oracle Berkeley está divida em dois produtos, o Oracle Berkeley DB e o Oracle Berkeley DB XML, ambos com funcionalidades diferentes e distintas.

 

Como o Oracle Berkeley DB dentro do ambiente, pode fornecer recursos ao Oracle Berkeley DB XML como:

 

  • Replicação para fornecer alta-disponibilidade;
  • Logging;
  • Cache de resultados, que com o Oracle Berkeley DB XML pode trabalhar com o componente DOM-like;
  • Controle de transações;
  • E controle de acesso aos elementos do XML.

A utilização em conjunto com o Oracle Berkeley DB pode trazer mais recursos na utilização do Oracle Berkeley DB XML em sua aplicação, além dos recursos nativos de XQuery e XPath.

 

O importante é não confundir um banco de dados relacional com um banco de dados embutido, que é o caso do Oracle Berkeley DB XML, porque não está presente em sua arquitetura, requisitos básicos como:

 

  1. Modelo de dados relacional;
  2. Padrões SQL (ANSI, ISO, SQL-1992, SQL:1999, SQL:2003 e etc);
  3. Serviços de administração do banco de dados (daemons);
  4. E extensões processuais, tais como PL/SQL, T-SQL, SQL PL e etc.

Desse modo, o Oracle Berkeley DB XML torna-se um banco de dados embutido bem simples, de fácil utilização e com um objetivo principal, manipular e gerenciar os arquivos XML, esse é o objetivo principal.

 

Outro ponto interessante é que o Oracle Berkeley DB XML possui um CLI (Command Line Interface) para realizar uma iteração direta por query usando os recursos de XQuery/XPath. Esse CLI é o DBXML, que permite realizar acesso os elementos e atributos dos arquivos XML diretamente, algo como o SQL*PLUS do Oracle ou o Query Analyzer do MS SQL Server. A imagem abaixo mostra o prompt de comando do Oracle Berlekey DB XML.

 

35184.png

 

Espero que tenham gostado de conhecer um pouco sobre a utilização do Oracle Berkeley DB XML que está incorporado no portfólio da Oracle Corporation desde 2006, quando a Oracle comprou a empresa Sleepycat software, que foi a criadora do Berkeley DB, conhecido também como BDB.

 

Para maiores informações sobre os produtos e recursos citados neste artigo, recomendo os links abaixo:

 

  1. Oracle Berkeley DB;
  2. Oracle Berkeley DB XML;
  3. XQuery e XPath;
  4. W3C XQuery 1.0;
  5. XPath Tutorial.

Até o próximo artigo sobre Oracle Berkeley DB.

 

Mais informações no meu blog ou me siga no twitter @dbarodrigo.

 

Abraços,

 

 

 

assinatura.png

 

avw.php?zoneid=14&n=a32a0e94

 

http://imasters.com.br/artigo/20078/banco-de-dados/introducao-ao-oracle-berkeley-db-xml

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.