• Nenhum resultado encontrado

2.2 Aspectos de Replica¸c˜ao de Dados XML

2.2.3 Fragmenta¸c˜ao

A fragmenta¸c˜ao de dados consiste em determinar alternativas para divis˜ao dos dados em unidades menores chamadas fragmentos, de tal forma que estas partes possam ser replica- das e distribu´ıdas. De acordo com Ozsu et al. [13], para que a uma fragmenta¸c˜ao garanta a integridade dos dados, ´e necess´ario que sejam verificados os crit´erios de completude, disjun¸c˜ao e reconstru¸c˜ao. A completudo consiste em mostrar que todas as informa¸c˜oes da base original est˜ao contidas em algum fragmento. A disjun¸c˜ao visa garantir que, para quaisquer dois fragmentos, n˜ao existem informa¸c˜oes comuns entre eles. Por fim, a re- constru¸c˜ao consiste em mostrar que qualquer informa¸c˜ao obtida a partir da base original pode ser recuperada a partir de opera¸c˜oes em dois ou mais fragmentos.

No modelo relacional, temos duas maneiras de fragmentar os dados: a frag- menta¸c˜ao horizontal, que divide uma tabela em fun¸c˜ao das suas tuplas, e a fragmenta¸c˜ao vertical, que divide uma tabela com base em conjuntos de atributos. Outro tipo de fragmenta¸c˜ao, conhecida como h´ıbrida ou mista, ´e obtida pela combina¸c˜ao das duas es- trat´egias descritas anteriormente.

2.2. Aspectos de Replica¸c˜ao de Dados XML 17

A maioria dos trabalhos de fragmenta¸c˜ao de dados no contexto XML tenta adap- tar as t´ecnicas tradicionais para solucionar esse problema, sendo inicialmente abordados por Ma et al. [39] e Bremer e Gertz [40]. Estes trabalhos adaptam as ideias de frag- menta¸c˜ao em bases de dados relacionais e orientadas a objetos para o modelo de dados XML, considerando suas caracter´ısticas espec´ıficas.

Ma e Schewe [41] elaboraram t´ecnicas de fragmenta¸c˜ao de dados XML como adapta¸c˜ao das estrat´egias do modelo de objetos. Nesse trabalho, os autores propuseram as fragmenta¸c˜oes: horizontal, que agrupa os elementos de um documento XML aplicando um crit´erio de sele¸c˜ao; vertical, que divide a estrutura do esquema DTD; e tipo h´ıbrido chamado split, que combina as estrat´egias de fragmenta¸c˜ao horizontal e vertical para dividir um documento em um conjunto de documentos com esquema diferente do docu- mento original. Esta estrat´egia n˜ao apresenta um modelo forma para provar os crit´erios de completude e corretude (disjun¸c˜ao e reconstru¸c˜ao). Al´em do mais, sua abordagem n˜ao ´e apropriada para reposit´orios MD, necessitando que os documentos sejam integrados em uma vis˜ao SD.

Bremer e Gertz [40] apresentam princ´ıpios de fragmenta¸c˜ao adotados por bancos de dados relacional e orientado a objetos adaptados ao modelo XML. Esse trabalho utiliza um esquema de sum´ario Repository Guide para auxiliar na divis˜ao dos dados e verifica¸c˜ao dos crit´erios de completude e disjun¸c˜ao. S˜ao apresentadas a fragmenta¸c˜ao vertical, que consiste no particionamento do sum´ario Repository Guide, e fragmenta¸c˜ao horizontal, que realiza a divis˜ao do documento aplicando condi¸c˜oes aos seus atributos. Apesar de contemplar os crit´erios de fragmenta¸c˜ao, o formalismo apresentado n˜ao define as t´ecnicas desenvolvidas. Al´em do mais, a proposta limita-se a linguagem XPath e n˜ao apresenta resultados que validem diretamente a proposta de fragmenta¸c˜ao.

Buneman et al. [42] adaptaram a t´ecnica de vetoriza¸c˜ao, que consiste na divis˜ao dos dados em colunas, a documentos XML. Sua estrat´egia consiste em decompor um documento em um conjunto de vetores e armazen´a-los em tabelas relacionais. Cada vetor cont´em um caminho desde a raiz at´e uma folha da ´arvore XML. Assim, para permitir a execu¸c˜ao de consultas, a solu¸c˜ao suporta um subconjunto da linguagem XQuery, que pode ser decomposta e executada distribuidamente. Resultados experimentais demonstraram melhorias no processamento das consultas, mas o subconjunto limitado da XQuery e a verifica¸c˜ao apenas do crit´erio de reconstru¸c˜ao nesse trabalho n˜ao viabilizam sua utiliza¸c˜ao em bases de XML.

2.2. Aspectos de Replica¸c˜ao de Dados XML 18

Andrade et al. [43] criaram o PartiX, que consiste em uma arquitetura para o processamento de consultas XQuery sobre bases de dados XML fragmentadas. Diferen- temente dos demais trabalhos, as opera¸c˜oes de fragmenta¸c˜ao n˜ao s˜ao aplicadas sobre um ´

unico documento XML (Single Document), mas sim a uma cole¸c˜ao deles (Multiple Do- cuments). A fragmenta¸c˜ao horizontal consiste em uma opera¸c˜ao de sele¸c˜ao que satisfaz um determinado predicado, a vertical consiste em uma opera¸c˜ao de proje¸c˜ao, e a h´ıbrida, uma combina¸c˜ao das duas anteriores. Os experimentos realizados demonstraram melho- rias no desempenho das consultas frente ao modelo centralizado. Nesses experimentos, os fragmentos s˜ao disjuntos, e as subconsultas foram executadas em paralelo. Apesar dos resultados satisfat´orios apresentados, a fragmenta¸c˜ao do PartiX ´e aplicada a uma cole¸c˜ao de documentos XML, gerando fragmentos que s˜ao subconjuntos da base original. Assim, os elementos XML n˜ao s˜ao fragmentados, inviabilizando a utiliza¸c˜ao do PartiX a documento XML ´unico. Por fim, a decomposi¸c˜ao de consultas XQuery considera um subconjunto bastante limitado desta linguagem.

Kurita et al. [44] propˆos uma estrat´egia eficiente para processamento de consultas para grandes bases de dados XML, em ambientes distribu´ıdos. A ideia principal desse trabalho ´e balancear os custos de armazenamento e processamento de consultas dentre os n´os do sistema. Para isso, ´e utilizada a fragmenta¸c˜ao vertical como estrat´egia de particionamento da base de dados, que se baseia na raz˜ao entre o tamanho da base e o n´umero de n´os para os quais os fragmentos ser˜ao distribu´ıdos. Al´em disso, ´e proposta uma estrat´egia de realoca¸c˜ao dinˆamica dos dados para manter o balanceamento do sistema, que consiste em modificar a estrutura dos fragmentos e mover dados XML entre os n´os. Seus experimentos consideram apenas consultas que n˜ao necessitassem de opera¸c˜oes de jun¸c˜ao entre as estruturas. Os resultados demonstraram melhorias no desempenho das consultas utilizando sua estrat´egia de fragmenta¸c˜ao associada `a realoca¸c˜ao dinˆamica dos dados. Por´em, ´e citado que o sistema pode se tornar ineficiente caso as consultas sejam aplicadas a s´ıtios espec´ıficos.

Embora existam v´arias estrat´egias de fragmenta¸c˜ao de dados, elas podem ou n˜ao ser estrat´egias vantajosas. Em bases de dados com um grande volume de informa¸c˜oes, a fragmenta¸c˜ao pode ser uma alternativa para a execu¸c˜ao de consultas de forma eficiente. Esse ganho no desempenho ´e poss´ıvel devido ao fato das consultas poderem ser decom- postas em subconsultas, sendo executadas paralelamente em diferentes n´os do sistema, o que aumenta sua vaz˜ao. Al´em do mais, estas subconsultas s˜ao executadas em um sub- conjunto (fragmento) da base de dados original, podendo aumentar o desempenho dado

2.3. Trabalhos Relacionados 19

que a opera¸c˜ao ´e aplicada em sob um volume menor de dados.

Por´em, existem situa¸c˜oes em que a fragmenta¸c˜ao pode se comportar de forma insatisfat´oria, degradando assim o desempenho do sistema. Existem cen´arios em que a recupera¸c˜ao dos dados pode implicar em opera¸c˜oes de jun¸c˜ao e uni˜ao sob os fragmentos, gerando um custo adicional. De forma similar, a an´alise semˆantica das opera¸c˜oes pode sofrer de um custo adicional caso seja necess´ario acessar bases de fragmentos em dois ou mais s´ıtios [13].

Documentos relacionados