Design and implementation of a relational data model supported in Postgres Sakai Learning Management System
Autor(a) principal: | |
---|---|
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 |