UTILIZAÇÃO DE BANCOS DE DADOS RELACIONAIS PARA O ARMAZENAMENTO DE DADOS RDF Tiago Heinrich1 Rebeca Schroeder Freitas 2 1 2 Acadêmico do Curso de Bacharelado em Ciências da computação -CCT - bolsista PIPES Orientadora - Departamento de Ciências da Computação – CCT – [email protected] Palavras-chave: RDF. NoSQL. Relacional O crescimento do volume de informações encontradas na web é cada dia maior, mas os sistemas responsáveis pelo seu armazenamento e consulta, em geral, não acompanham este mesmo crescimento. Um dos formatos de dados que oferece um grande crescimento atualmente é o RDF (Resource Description Framework). O modelo RDF é considerado como padrão para representar dados na Web 3.0. Através de seu formato de triplas, dados RDF são definidos como uma sentença constituída por sujeito-predicado-objeto. Em geral, sistemas NoSQL têm sido adotados para o armazenamento de fontes RDF em virtude do elevado volume de dados que algumas fontes apresentam. Entretanto, o uso de sistemas deste tipo acrescentam uma maior complexidade ao desenvolvimento de aplicações pois, em geral, estes sistemas não apresentam algumas das características de um Sistema Gerenciador de Banco de Dados (SGBD) relacional[1]. Desta forma, para repositórios com volumes de dados de dimensões convencionais o uso de SGBDs relacionais se torna aplicável. No contexto de SGBDs Relacionais que suportam RDF, existem dois tipos de modelo aplicados. O primeiro, é conhecido como triple-store. Um triple-store define um banco RDF através de uma única relação composta pelos campos sujeito, predicado e objeto. Nesta relação, as tuplas correspondem a triplas RDF. O segundo modelo corresponde à utilização de conhecimentos sobre a estrutura RDF para definição de um esquema relacional baseado em tipos. Neste caso, cada tipo representa uma relação da base de dados. Este trabalho tem por objetivo apresentar um estudo experimental que compara o desempenho em consultas utilizando os dois tipos de modelos aplicados por sistemas relacionais para RDF. Este estudo compara o triple-store Jena TDB Fuseki [3] como representante do primeiro modelo, e o ntSQL [1] como representante do segundo modelo. Os experimentos foram baseados no Berlin SPARQL Benchmark (BSBM)[2] através de consultas SPARQL e seu gerador de bases de dados. A máquina utilizada para o experimento possui 4G de memória RAM, um processador AMD phenom II x4 e o sistema operacional linux-ubuntu 14.04. Para a realização do experimento, foram utilizadas 11 consultas SPARQL do BSBM. Para verificar a escalabilidade dos sistemas comparados utilizaram-se bases com tamanhos variados. No BSBM o fator de escala da base corresponde à quantidade de produtos de um sistema de e-commerce. No caso do experimento foram utilizadas bases de 100, 200, 400, 800, 1600 e 2000 produtos. Cada consulta foi executada dez vezes para cada tamanho de base, dos quais foram retirados para cada base a média e a mediana. A Fig. 1 e Fig.2 apresentam, respectivamente, a mediana e a média referentes aos tempos de resposta dos 2 sistemas para a consulta 3 do BSBM. Observa-se em todas as consultas que o Fuseki apresenta um desempenho muito inferior em comparação com o ntSQL. O ntSQL provou ter um melhor tempo para efetuar as consultas, demonstrando um desempenho com um crescimento quase constante, não possuindo nenhuma variação drástica com o crescimento do tamanho do banco. Em relação ao Fuseki, seu crescimento apresenta picos de acordo com o crescimento do tamanho dos bancos, com aumento do tempo de resposta muito superior ao ntSQL. Acredita-se que esta diferença possa ser explicada pelo modelo de armazenamento utilizado por triple-stores ao processar consultas com diversos padrões de triplas. Ao colocar todas as triplas em uma mesma tabela, além de gerar grandes arquivos para as relações, surge a necessidade da execução de diversas auto-junções para a recuperação dos diversos padrões de triplas das consultas. O modelo empregado pelo ntSQL mostra-se mais adequado neste sentido por distribuir os dados em diferentes relações, agrupandoos de acordo com seus tipos. Fig. 1 Mediana (Consulta 3) Fig. 2 Média (Consulta 3) Este trabalho desenvolveu um estudo experimental que compara dois modelos de armazenamento de dados RDF em sistemas relacionais através dos sistemas Jena-TDB Fuseki e ntSQL. Como esperado, o Jena-TDB Fuseki apresentou um desempenho inferior ao ntSQL, atestando as desvantagens do uso de triple-stores já apontadas por outros trabalhos na literatura. O melhor desempenho do ntSQL pode ser atribuído ao uso de um esquema relacional mais robusto do que os utilizados por triple-stores. Como trabalho futuro, pretende-se envolver outros sistemas na avaliação e outros benchmarks. Além disto, pretende-se desenvolver uma análise mais detalhada que possa justificar o desempenho dos sistemas através de características de consultas e do esquema de banco de dados. [1] Bayer et al. 2014 Bayer, F. R., Nesi, L. L., and Schroeder, R. ntSQL: Um Conversor de Documentos RDF para SQL. In Anais da Escola Regional de Banco de Dados. SBC, 2014. [2] Christian Bizer, Andreas Schultz: The Berlin SPARQL Benchmark. In: International Journal on Semantic Web & Information Systems, Vol. 5, Issue 2, Pages 1-24, 2009. [3] JENA, Apache. Apache Jena Fuseki. Disponível em: https://jena.apache.org/documentation/fuseki2. Acesso em: 25 jul. 2016.