Armazenamento de XML em bases de dados

Propaganda
Armazenamento de XML em bases de dados
Problemas do armazenamento de XML em bases de dados
Uma base de dados é uma colecção de informação organizada de forma
sistemática para facilitar o seu acesso e análise. Desde a sua origem
têm sido desenvolvidos diversos modelos de organização de informação
que têm dado origem a diferentes modelos de bases de dados.
Actualmente, os modelos relacional e objecto-relacional são os mais
utilizados pelas empresas.
Alguns autores colocam a questão se um documento XML pode constituir
por si só uma base de dados. Pode afirmar-se que um documento XML é
uma base de dados no seu sentido mais estrito, ou seja, como uma
colecção de dados. Nesta óptica, o documento XML não é diferente de
qualquer outro ficheiro que contenha dados. Contudo, quando encarado
como um formato de base de dados, o XML apresenta algumas vantagens
como o de ser auto-descrito (os nomes dados às marcações descrevem a
estrutura embora não a semântica dos dados), a portabilidade (sistema
Unicode de representação) e a capacidade de organizar dados como
estruturas em árvore. Contudo, apresenta também desvantagens como a
verbosidade (uso excessivo de palavras) e o acesso a dados lento
devido ao esforço de parsing.
Uma possibilidade mais útil é investigar se a XML e as suas
tecnologias associadas podem constituir uma base de dados num sentido
mais lato, ou seja, um SGBD (Sistema de Gestão de Bases de Dados). De
certa forma pode afirmar-se que tal é possível já que o XML tem
características presentes em bases de dados como o armazenamento (o
próprio documento) e esquemas (DTD e XML Schemas). Têm sido
desenvolvidas várias linguagens de pesquisa e interrogação como é o
caso da XQuery como working draft do W3C em Abril de 2005, a Quilt, a
XQL da Software AG em Março de 2000 e Agosto de 1999 respectivamente,
e a XML-QL como submissão ao W3C em Agosto de 1998. Para além das
linguagens de pesquisa existem também as interfaces de programação
(DOM e SAX). Mas por outro lado, faltam à XML e tecnologias associadas
as características essenciais encontradas em SGBDs reais como:
armazenamento eficiente, índices, segurança, transacções, integridade
de dados, acesso concorrente, mecanismos de triggers, interrogações de
vários documentos em simultâneo, etc.
Embora possa ser possível usar um ou mais documentos XML como uma base
de dados em ambientes com pequenas quantidades de dados, com poucos
utilizadores e requisitos de desempenho modestos, esse suporte falha
na maioria dos ambientes de produção, com muitos utilizadores e
elevados requisitos de integridade de dados e desempenho.
Rapidamente se percebeu que a XML, mesmo acompanhada de tecnologias
associadas não é suficiente para implementar um SGBD com requisitos
reais. Devido à crescente produção de conteúdos XML existe uma grande
necessidade de os armazenar de forma eficiente e que permita extrair
deles informação facilmente. Como as bases de dados relacionais e
objecto-relacionais são actualmente as mais utilizadas, foram
desenvolvidos esforços para implementar mecanismos de carregamento de
informação contida em documentos XML para as suas estruturas. A forma
de organizar informação é, no entanto, consideravelmente diferente num
documento XML e numa base de dados relacional ou objecto-relacional. A
tabela 1 compara as características em que as diferenças são mais
evidentes.
Carecterisrtícas
Documento XML
Mod.Relacional
Mod. Objecto-Realcional
Representação
Árvore
Classes
Dados
Esquema
Aninhados em
elementos
Pode ser
importante
Opcional
Tabelas
normalizadas
Campos de
tabelas
Não existe ordem
definida
Obrigatório
Extracção
XQuery
SQL
SQL3
Ordenação
Atributos de classes
Não existe ordem
definida
Obrigatório
Tabela 1 Comparação de diferentes formas de organizar informação
A representação da informação em documentos XML é através de uma
estrutura hierárquica em árvore com os dados aninhados em elementos,
sendo a meta-informação remetida para os atributos. No modelo
relacional a informação é organizada em tabelas com vários registos
(ou linhas). Os dados estão acessíveis nos campos (ou colunas) de cada
linha das tabelas. No modelo objecto-relacional, a informação é
representada através de classes. As classes são instanciadas em
objectos que podem ser mapeados numa linha de uma tabela. Os dados
estão nos atributos das classes. A ordenação pode ser importante num
documentos XML no caso de conter informação semi-estruturada ou ser
irrelevante no caso de conter informação estruturada. No casos dos
modelos relacionais e objecto-relacionais a ordem dos registos ou
objectos não está pré-definida, podendo, contudo ser definidos campos
para a controlar. A existência de um esquema é opcional num documento
XML. Normalmente a informação estruturada é acompanhada de um esquema,
no entanto, tal raramente acontece quando se representa informação
semi-estruturada. A estrutura das tabelas no modelo relacional obedece
sempre a um esquema bem definido. Da mesma forma, há sempre um
diagrama de classes que suporta o esquema de uma base de dados do
modelo objecto-relacional. Os métodos de extracção de informação num
documento XML são variados, sendo actualmente a linguagem XQuery a
mais explorada. No que diz respeito ao modelo relacional, a linguagem
SQL constitui a base sobre as quais os vários SGBDs introduzem
variações, pelo que pode ser considerada um padrão para este modelo.
Para o modelo objecto-relacional foram sendo desenvolvidas extensões à
linguagem SQL como é o caso da SQL3 da Oracle.
Atendendo às diferenças de representação, verifica-se que o problema
de transferir informação de um documento XML para uma base de dados
relacional ou objecto-relacional não é trivial. A estratégia habitual
consiste em estabelecer mapeamentos entre o esquema do documento XML
para o esquema da base de dados. Tem sido desenvolvido software para
efectuar estes mapeamento usando linguagens de interrogação de XML ou
simplesmente transferindo os dados fazendo corresponder os elementos a
campos de tabelas ou a atributos de classes. Quando as duas estruturas
não têm uma correspondência perfeita, é necessário efectuar
transformações XSLT para adaptar a estrutura do documento XML à das
tabelas ou classes.
Os mapeamentos entre esquemas de documentos e esquemas de bases de
dados são efectuados em elementos, atributos e texto. Quase sempre
omitem as estruturas físicas (entidades, secções CDATA e informação de
codificação) e as estruturas lógicas (instruções de processamento,
comentários e a ordem no documento). Esta filtragem faz sentido, uma
vez que pretende-se que a base de dados fique com uma réplica dos
dados do documento. Verifica-se, no entanto, que pode haver perda de
alguma informação contida no documento XML. A consequência desta
eventual perda é que um documento XML gerado a partir dos dados
transferidos para a base de dados pode ser diferente do documento XML
original. Este facto pode ser ou não aceitável, dependendo das
necessidades do sistema que o utilize, e pode condicionar a escolha na
tecnologia que efectua o mapeamento. São utilizados habitualmente dois
tipos de mapeamento entre um esquema XML e um esquema de bases de
dados: o mapeamento baseado em tabelas e mapeamento objectorelacional.
O mapeamento baseado em tabelas é utilizado por muitos produtos para
transferir dados entre um documento XML e uma base de dados
relacional. Modeliza o documento XML como uma tabela ou um conjunto de
tabelas. Dependendo do software utilizado, pode ser possível
especificar que colunas correspondem a elementos e a atributos bem
como os nomes a atribuir a essas colunas. Este tipo de mapeamento é
útil para serializar dados num cenário de migração de dados entre
bases de dados relacionais. A sua desvantagem mais evidente é que não
pode ser usado para documentos XML que não sejam fortemente
estruturados.
O mapeamento objecto-relacional modeliza o documento XML como uma
árvore de objectos específicos para os dados no documento. Neste
modelo, os atributos e o texto dentro dos elementos são modelizados
como atributos de classes. No caso do SGBD Oracle , o mapeamento é
efectuado com instruções de SQL3 ou em alternativa, usando pacotes
como o XSU que automatizam o processo. Este modelo sofre, no entanto,
da mesma desvantagem do anterior no que diz respeito à rigidez da
estrutura receptora do conteúdo XML.
Bases de dados XML enabled e XML nativas
Todas as bases de dados que incluem mecanismos de tratamento de
documentos XML designam-se por XML enabled. São bases de dados que não
trabalham directamente com a representação de informação em XML. No
entanto, conseguem de alguma forma armazenar documentos XML e extrair
deles informação.
As primeiras tentativas de manipular documentos XML estavam sempre
associadas a motores de pesquisa sobre ficheiros de texto carregados
em bases de dados relacionais. Estas abordagens apresentam três
grandes problemas. O primeiro deles é a escalabilidade, que se
manifesta na degradação do desempenho com o aumento do documento XML,
ou ao terem de lidar com vários documentos em simultâneo. O segundo
problema é a falta de queries estruturadas. Os motores de pesquisa não
reconhecem a estrutura da sintaxe do XML, não distinguindo elementos
de atributos e respectivos conteúdos. As interrogações após
carregamento em bases de dados relacionais estão sempre limitadas aos
campos mapeados e à estrutura desse mapeamento. O terceiro problema é
a falta de possibilidade de tirar partido no documento dos mecanismos
das bases de dados como concorrência, segurança, atomicidade, etc.
A solução para tentar dar resposta a estes problemas foi a introdução
de bases de dados XML nativas, que ao contrário das XML enabled,
trabalham directamente com a representação de informação em XML.
Destacam-se as características seguintes das bases de dados XML
nativas que melhor as diferenciam das XML enabled :
Separação de informação no carregamento
Quando um documento XML é inserido, é efectuado de imediato o parsing
(separação e classificação dos dados) em que são separados os
elementos, atributos e os respectivos valores. A indexação do
documento é também efectuada no momento do carregamento.
Interrogação directa com tecnologias associadas à XML
O parsing em simultâneo com o carregamento permite que os documentos
possam ser interrogados facilmente com a consulta de índices. As
linguagens de interrogação variam, mas a XQuery tem vindo a ser
implementada em muitas soluções comerciais e open-source.
A tecnologia associada XPath assume também um papel importante na
interrogação porque permite identificar grupos de elementos num
documento.
Capacidade de manipulação de grandes documentos
O único ónus existente na manipulação de grandes documentos é o
aumento do tempo de carregamento, mas daí em diante como não há mais
esforços de parsing. Deixa de haver relação entre o tamanho de um
documento e a facilidade de manipulação.
Flexibilidade em acompanhar a evolução do esquema
As alterações no modelo de dados vão acontecendo naturalmente com as
alterações nos processos de negócio. Devido à rigidez dos esquemas
relacionais, a flexibilidade para o acompanhamento dessas alterações
nem sempre é simples. As bases de dados XML nativas não implicam a
utilização de esquemas fixos e conseguem manipular os mesmos
dados com versões diferentes do esquema. O mapeamento dados-esquema
não possui a rigidez do modelo relacional o que torna esta tecnologia
mais adequada para manipulação de ficheiros XML centrados em
documentos, ou seja, com informação semi-estruturada.
Praticamente todos os produtos de sistemas de gestão de bases de dados
que têm sido largamente usados por empresas incluem de alguma forma
capacidades de manipulação de documentos XML. Os líderes de mercado
como a Oracle, a IBM e a Microsoft foram os que mais cedo se
preocuparam em incorporar essas capacidades no seus produtos. Outras
empresas de menor quota de mercado foram também progressivamente
incluindo essas capacidades nos seus produtos, porque verificaram que
só assim podiam manter o seu nível competitivo. A capacidade de
manipular XML tornou-se assim um requisito obrigatório nos produtos de
bases de dados.
As bases de dados XML nativas são uma tecnologia ainda em fase
experimental. A par de soluções comerciais como o Tamino XML Server da
Software AG e o Sonic XML Server da Sonic Software, existem também
alguns projectos de investigação open-source como o sistema Natix da
Universidade de Mannheim e o sistema Timber da Universidade de
Michigan. Tratando-se de uma tecnologia emergente, não está ainda no
nível de maturação das bases de dados relacionais e objectorelacionais.
Download