Repository logo
 
Publication

Using GraphQL with graph databases

datacite.subject.fosEngenharia e Tecnologiapt_PT
dc.contributor.advisorAzevedo, Isabel de Fátima Silva
dc.contributor.authorBarbosa, Tiago Filipe Nascimento
dc.date.accessioned2024-12-17T09:11:49Z
dc.date.available2024-12-17T09:11:49Z
dc.date.issued2024-07-29
dc.description.abstractGraph databases and GraphQL query language have seen increasing adoption across various industries in recent years. There is a potential synergy arising from integrating GraphQL with graph databases, raising the need to evaluate and compare this collaboration in contrast to integrating GraphQL with relational databases, especially in terms of performance and maintainability. This document explores the synergies between GraphQL and graph databases, delving into their integration, challenges, and prospects. The initial chapters establish the contextual landscape, addressing the problem, objectives, research methodology, ethical considerations, and structural organization of the study. Next, there’s an introduction to the concepts of GraphQL and graph databases, dissecting their fundamental structures, querying mechanisms, data organization, and ideal usage scenarios. This foundational understanding sets the stage for a detailed investigation into their integration, as outlined in the state-of-the-art chapter. Within this chapter, a systematic literature review is conducted where the research questions guiding the exploration of integration strategies and considerations are elucidated. The discussion encompasses primary use cases driving the adoption of GraphQL in conjunction with graph databases, the selection of suitable technologies for seamless integration, and the elucidation of key challenges impeding their widespread adoption and successful implementation. In the analysis and design phase, a project for migration is selected, using the Analytic Hierarchy Process (AHP), characterized, and architecturally explained. The migration process is then elaborated, including data modeling transformation and the technologies and approaches used. The implementation chapter describes the migration changes, with specific attention to domain classes and custom resolvers, authentication and authorization, and adjustments to the initial project. Next, the experimentation and evaluation of the solutions is achieved following the Goal, Questions, Metrics (GQM) approach, focusing on evaluating the performance and maintainability of each solution. The results are analyzed, concluding that the solution using a graph database is superior in terms of maintainability and, in some cases, in terms of performance too. With a higher number of concurrent users, the graph database solution presented better results overall. The relational database solution outperformed when using a small to medium number of users. If the queries and domain do not require deep nesting relationships, then the relational database seems more desirable, in terms of performance. Finally, the dissertation concludes with a summary of achievements, an outline of difficulties encountered, an assessment of threats to validity, and suggestions for future work.pt_PT
dc.description.abstractBases de dados em grafos e a linguagem de consulta GraphQL têm testemunhado uma crescente adoção em várias indústrias nos últimos anos. Existe uma potencial sinergia resultante da integração de GraphQL com bases de dados em grafo, o que levanta a necessidade de avaliar e comparar esta colaboração em contraste com a integração de GraphQL com bases de dados relacionais, especialmente em termos de desempenho e manutenibilidade. Este documento explora as sinergias entre GraphQL e as bases de dados em grafo, aprofundando-se na sua integração, desafios e perspetivas. Os capítulos iniciais estabelecem o contexto, abordando o problema, objetivos, metodologia de pesquisa, considerações éticas e organização estrutural do documento. De seguida, os conceitos de GraphQL e bases de dados em grafo são explorados, analisando as suas estruturas fundamentais, mecanismos de consulta, organização de dados e cenários ideais de uso. Este entendimento fundamental precede uma investigação detalhada da sua integração, conforme delineado no capítulo do estado da arte. Dentro deste capítulo, é realizada uma revisão sistemática da literatura, onde são delineadas as questões de pesquisa que guiam a exploração das estratégias e considerações de integração. A discussão abrange os principais casos de uso que impulsionam a adoção de GraphQL em conjunto com as bases de dados em grafo, a seleção de tecnologias adequadas para a sua integração mais robusta e a elucidação dos principais desafios que impedem a sua adoção generalizada e implementação bemsucedida. Na fase de análise e design, um projeto para migração é selecionado, utilizando o Analytic Hierarchy Process (AHP), caracterizado e explicado arquitetonicamente. O processo de migração é então detalhado, incluindo a transformação da modelação de dados e as tecnologias e abordagem utilizadas. O capítulo de implementação descreve as alterações na migração, com especial atenção aos custom resolvers, classes do domínio, autenticação e autorização, e ajustes ao projeto inicial. De seguida, a experimentação e avaliação das soluções é realizada seguindo a abordagem Goal, Questions, Metrics (GQM), focando-se na avaliação do desempenho e da manutenibilidade de cada solução. Os resultados são analisados, concluindo que a solução utilizando uma base de dados em grafo foi superior em termos de manutenibilidade e, em alguns casos, em termos de desempenho também. Com um maior número de utilizadores, a solução com base de dados em grafo apresentou melhores resultados gerais. A solução com base de dados relacional foi superior nos casos com um pequeno a médio número de utilizadores. Se as queries e domínio não necessitarem de dar uso a relações hierárquicas profundas, então uma base de dados relacional é preferível. Por fim, a dissertação conclui com um resumo das realizações, uma descrição das dificuldades encontradas, uma avaliação das ameaças à validade e sugestões para trabalhos futuros.pt_PT
dc.identifier.tid203734246pt_PT
dc.identifier.urihttp://hdl.handle.net/10400.22/26882
dc.language.isoengpt_PT
dc.subjectGraphQLpt_PT
dc.subjectGraph databasept_PT
dc.subjectNeo4jpt_PT
dc.subjectRelational databasept_PT
dc.subjectBase de dados em grafopt_PT
dc.subjectBase de dados relacionalpt_PT
dc.titleUsing GraphQL with graph databasespt_PT
dc.title.alternativeUsando GraphQL com base de dados em grafopt_PT
dc.typemaster thesis
dspace.entity.typePublication
rcaap.rightsopenAccesspt_PT
rcaap.typemasterThesispt_PT
thesis.degree.nameMestrado em Engenharia Informáticapt_PT

Files

Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
Tese_5272.pdf
Size:
4.26 MB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.71 KB
Format:
Item-specific license agreed upon to submission
Description: