Última alteração: 2018-10-11
Resumo
O objetivo geral foi realizar a validação de relacionamentos topológicos, tanto na interface da ferramenta Enterprise Architect, quanto através da geração automática de código SQL e PL/SQL, para garantir a qualidade dos dados durante sua inserção e atualização nos Sistemas Gerenciadores de Bancos de Dados (SGBDs) MySQL, PostgreSQL, Oracle, IBM DB2 e SQL Server.
Para esse objetivo foi necessário o aperfeiçoamento do plugin OCLtoSQL para geração de código fonte SQL e PL/SQL, o uso da arquitetura MDA juntamente com o perfil UML GeoProfile, da ferramenta Enterprise Architect e dos SGBDs citados anteriormente.
A metodologia classifica-se como de pesquisa bibliográfica juntamente com o estudo da interface de integração da ferramenta Enterprise Architect e o funcionamento de cada SGBD. Os SGBDs e outras ferramentas utilizadas para a realização deste trabalho são as mesmas utilizadas em trabalhos anteriores, mudando somente quando necessário as suas versões.
Apesar de trabalhos anteriores, o plugin OCLtoSQL não era capaz de efetuar a geração de código fonte para todos os casos possíveis utilizando o perfil UML GeoProfile, entre eles tem-se a situação em que o relacionamento topológico somente era verificado em uma classe do relacionamento. Além disso, antes da realização deste trabalho era permitida a criação de relacionamentos topológicos inválidos durante a fase da modelagem do esquema conceitual na ferramenta Enterprise Architect.
Foram utilizados eventos para garantir que nenhum relacionamento inválido possa ser modelado pelo projetista. Tais eventos são disparados antes que qualquer relacionamento seja criado, caso o relacionamento não seja topológico, nenhuma verificação é efetuada, caso contrário, as classes que farão parte do relacionamento serão recuperadas e logo em seguida o estereótipo geográfico de cada classe será capturado e então feita a validação do relacionamento.
Caso o relacionamento não seja válido de acordo com a literatura, o projetista será informado e logo em seguida o relacionamento será automaticamente excluído. Vale mencionar que esta verificação é feita somente utilizando os estereótipos do tipo ponto, linha e polígono. O relacionamento não será criado caso o tipo de dado geográfico seja outro, uma vez que nada é especificado na literatura.
Além disso, o mecanismo para a geração automática de gatilhos foi modificado para garantir que os relacionamentos topológicos não sejam violados na segunda classe do relacionamento. Esses gatilhos disparam exceções informando qual relacionamento foi violado, por quais registros e suas respectivas tabelas, caso os dados que estejam sendo inseridos ou atualizados no banco de dados violem tal relacionamento topológico.
Como resultado, tem-se um plugin capaz de suportar mais características especificadas no perfil UML GeoProfile, capaz de garantir que nenhum dado que não esteja de acordo com o esquema conceitual seja inserido no banco de dados. E também não permitir que relacionamentos inválidos possam ser criados pelo projetista. Dessa forma, é possível se auxiliar na manutenção de um banco de dados mais íntegro e com aumento de produtividade do projetista e programadores, uma vez que com tal plugin é reduzido o número de linhas de código que deverão ser digitadas para se construir um banco de dados geográfico, assim como a quantidade do número de caso de testes que deverão ser realizados posteriormente.