Design and implementation of a relational data model supported in Postgres Sakai Learning Management System

Detalhes bibliográficos
Autor(a) principal: Silva, Henrique Tavares
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10316/107953
Resumo: Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
id RCAP_828a4966c399313b5dcf57c7ef918c0e
oai_identifier_str oai:estudogeral.uc.pt:10316/107953
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Design and implementation of a relational data model supported in Postgres Sakai Learning Management SystemDesenho e implementação de um modelo de dados relacional apoiado em Postgres para o Sakai Learning Management SystemSakai LMSPostgreSQLMySQLOraclejOOQ, tradução de SQLSakai LMSPostgreSQLMySQLOraclejOOQ, SQL translationDissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e TecnologiaThis thesis aims to study database portability in the context of the large, enterprise legacy code that is Sakai LMS, which is a free, community-source, educational software platform designed to support teaching and research, and has beenunder continuous development and production for the past 20 years.The application is committed to database portability and currently supports Oracle and MySQL and wishes to support PostgreSQL going forward. The application mixes hand-constructed SQL, templated SQL, and data persistence by a JavaORM solution, JPA. The goal is not to rewrite the application to use a new wayto generate SQL but to look at the effort required to convert all SQL approachesfrom one dialect to another.To inform and help accomplish this engineering task, this thesis will have a deeperexamination of how the application executes all database-related operations andexplore how the SQL dialects diverge among the various databases. This paperwill also look at strategies to add a new database dialect or convert SQL from onedialect to another, exploring the jOOQ library and then testing its effectiveness inthis internship’s problem.This thesis work contributed to the progress in the challenge of inserting the PostgreSQL dialect into SakaiLMS:• Sakai LMS can now start up with a PostgreSQL database, using a MySQLSQL service that gets translated to Postgres.• The proposal of an architecture that can build the base for a translationsserver that enables Sakai LMS to be fully compatible with Postgres and,thanks to the way jOOQ’s SQL translator works, other relational databases,without modifying the SQL service.In addition to that, this work also allowed us to conclude that jOOQ’s SQL translator works for most translations, but not always. So it’s necessary to modifyany jOOQ SQL translator layer to cope with the errors it throws. As we couldconclude, manual edition and approval of unsuccessful translations are enough.Another conclusion taken was that the SQL service in Sakai isn’t the only entityresponsible for executing SQL statements in Sakai. This turned out to be a limitation in the work’s results because the proposed architecture wasn’t expectingthat behavior from Sakai.Esta tese tem como objetivo estudar a portabilidade de bases de dados no contexto de large, enterprise legacy code que é o Sakai LMS, que é uma plataforma de software educacional gratuita, de código aberto, projetada para apoiar o ensino e a pesquisa, e tem sido alvo de contínuo desenvolvimento e produção nos últimos 20 anos.A aplicação está comprometida com a portabilidade de bases de dados e atualmente suporta Oracle e MySQL e deseja oferecer começar a suportar PostgreSQL. A aplicação combina SQL construído manualmente, SQL modelado e persistência de dados por uma solução ORM em Java, JPA. O objetivo não é reescrever a aplicação para usar uma nova maneira de gerar SQL, mas observar o esforço necessário para converter todas as abordagens de SQL de um dialeto para outro.Para informar e ajudar a realizar esta tarefa de engenharia, esta tese examinará de como a aplicação executa todas as operações relacionadas com a sua base de dados e explorar como os dialetos SQL divergem entre as várias bases de dados. Este trabalho também averiguará estratégias para adicionar um novo dialeto de banco de dados ou converter SQL de um dialeto para outro, explorando a biblioteca jOOQ e testando sua eficácia no problema deste estágio.O trabalho desta tese contribuiu para o avanço no desafio de inserir o dialeto PostgreSQL em Sakai LMS:• Sakai LMS agora pode inicializar com uma base de dados PostgreSQL, usando o serviço de SQL em MySQL que é traduzido para PostgreSQL.• A proposta de uma arquitetura que possa servir de base para um servidor de tradução que permita Sakai LMS ser totalmente compatível com PostgreSQL e, graças ao funcionamento do tradutor de SQL do jOOQ, outros bancos de dados relacionais, sem modificar o serviço de SQL.Além disso, este trabalho também nos permitiu concluir que o tradutor SQL do jOOQ funciona para a maioria das traduções, mas não sempre. Portanto, é necessário modificar qualquer camada com o tradutor de SQL do jOOQ para lidar com os erros que este gera. Como pudemos concluir, a edição manual e a aprovação de traduções malsucedidas são suficientes.Outra conclusão tirada foi que o serviço de SQL em Sakai não é a única entidade responsável pela execução de instruções SQL em Sakai. Isso acabou sendo uma limitação nos resultados do trabalho, pois a arquitetura proposta não esperava esse comportamento na aplicação.2023-07-20info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://hdl.handle.net/10316/107953http://hdl.handle.net/10316/107953TID:203337956engSilva, Henrique Tavaresinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-08-02T22:04:19Zoai:estudogeral.uc.pt:10316/107953Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:24:14.031776Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
Desenho e implementação de um modelo de dados relacional apoiado em Postgres para o Sakai Learning Management System
title Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
spellingShingle Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
Silva, Henrique Tavares
Sakai LMS
PostgreSQL
MySQL
Oracle
jOOQ, tradução de SQL
Sakai LMS
PostgreSQL
MySQL
Oracle
jOOQ, SQL translation
title_short Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
title_full Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
title_fullStr Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
title_full_unstemmed Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
title_sort Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
author Silva, Henrique Tavares
author_facet Silva, Henrique Tavares
author_role author
dc.contributor.author.fl_str_mv Silva, Henrique Tavares
dc.subject.por.fl_str_mv Sakai LMS
PostgreSQL
MySQL
Oracle
jOOQ, tradução de SQL
Sakai LMS
PostgreSQL
MySQL
Oracle
jOOQ, SQL translation
topic Sakai LMS
PostgreSQL
MySQL
Oracle
jOOQ, tradução de SQL
Sakai LMS
PostgreSQL
MySQL
Oracle
jOOQ, SQL translation
description Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
publishDate 2023
dc.date.none.fl_str_mv 2023-07-20
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10316/107953
http://hdl.handle.net/10316/107953
TID:203337956
url http://hdl.handle.net/10316/107953
identifier_str_mv TID:203337956
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134127825354752