Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.

Detalhes bibliográficos
Ano de defesa: 2013
Autor(a) principal: NASCIMENTO FILHO, Dimas Cassimiro do. lattes
Orientador(a): PIRES, Carlos Eduardo Santos. lattes, MASSONI, Tiago Lima. lattes
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Campina Grande
Programa de Pós-Graduação: PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Departamento: Centro de Engenharia Elétrica e Informática - CEEI
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://dspace.sti.ufcg.edu.br/handle/riufcg/12351
Resumo: Os procedimentos armazenados em bancos de dados são comumente utilizados por aplicações para acessar e manipular dados em bancos de dados. Se os procedimentos forem implementados de maneira ineficiente, esperas demasiadas podem ser repassadas para a camada de aplicação e acarretar perdas financeiras significativas para as empresas. Caso sejam implementados usando más práticas de programação, os procedimentos podem apresentar difícil legibilidade e entendimento. Considerando que uma parte considerável da lógica de negócio das aplicações pode ser desenvolvida na forma de procedimentos, a redução destes problemas utilizando inspeções manuais pode tornar-se um processo custoso, propenso a erros e desestimulante para os desenvolvedores. Neste trabalho, é proposta uma abordagem, baseada em análise estática automática de código-fonte, para verificação da conformidade de procedimentos de banco de dados com diretrizes pré-definidas de eficiência e qualidade. A abordagem proposta foi instanciada para uma linguagem de programação de banco de dados específica e avaliada de três maneiras. Primeiramente, foi medido o impacto da aplicação de diretrizes de eficiência no tempo de execução de procedimentos de banco de dados. Para as maiores cargas de trabalho testadas, as diretrizes investigadas acarretaram em melhorias superiores a 80%. Além disso, foi realizado um estudo de caso, utilizando procedimentos de banco de dados reais, no intuito de avaliar a eficiência (tempo de análise automática) e eficácia (quantidade de advertências reportadas) da abordagem proposta. Neste processo, foram reportadas 299 advertências após a análise dos procedimentos (∼2KLoC) selecionados e, para tal, foram necessários menos de 7 segundos para a realização da análise automática. Por fim, foram realizados experimentos, no contexto de um projeto industrial real, no intuito de comparar as características da análise realizada pela abordagem proposta com as realizadas de forma manual por desenvolvedores. Nestes experimentos, a abordagem automática apresentou eficiência e eficácia superiores em todos os cenários observados.
id UFCG_a5954e1e42f377965af9f46e98625f52
oai_identifier_str oai:dspace.sti.ufcg.edu.br:riufcg/12351
network_acronym_str UFCG
network_name_str Biblioteca Digital de Teses e Dissertações da UFCG
repository_id_str
spelling PIRES, Carlos Eduardo Santos.PIRES, C. E. S.http://lattes.cnpq.br/4986021622366786MASSONI, Tiago Lima.MASSONI, T. L.http://lattes.cnpq.br/3563923906851611NASCIMENTO FILHO, D. C.http://lattes.cnpq.br/3151296501932443NASCIMENTO FILHO, Dimas Cassimiro do.Os procedimentos armazenados em bancos de dados são comumente utilizados por aplicações para acessar e manipular dados em bancos de dados. Se os procedimentos forem implementados de maneira ineficiente, esperas demasiadas podem ser repassadas para a camada de aplicação e acarretar perdas financeiras significativas para as empresas. Caso sejam implementados usando más práticas de programação, os procedimentos podem apresentar difícil legibilidade e entendimento. Considerando que uma parte considerável da lógica de negócio das aplicações pode ser desenvolvida na forma de procedimentos, a redução destes problemas utilizando inspeções manuais pode tornar-se um processo custoso, propenso a erros e desestimulante para os desenvolvedores. Neste trabalho, é proposta uma abordagem, baseada em análise estática automática de código-fonte, para verificação da conformidade de procedimentos de banco de dados com diretrizes pré-definidas de eficiência e qualidade. A abordagem proposta foi instanciada para uma linguagem de programação de banco de dados específica e avaliada de três maneiras. Primeiramente, foi medido o impacto da aplicação de diretrizes de eficiência no tempo de execução de procedimentos de banco de dados. Para as maiores cargas de trabalho testadas, as diretrizes investigadas acarretaram em melhorias superiores a 80%. Além disso, foi realizado um estudo de caso, utilizando procedimentos de banco de dados reais, no intuito de avaliar a eficiência (tempo de análise automática) e eficácia (quantidade de advertências reportadas) da abordagem proposta. Neste processo, foram reportadas 299 advertências após a análise dos procedimentos (∼2KLoC) selecionados e, para tal, foram necessários menos de 7 segundos para a realização da análise automática. Por fim, foram realizados experimentos, no contexto de um projeto industrial real, no intuito de comparar as características da análise realizada pela abordagem proposta com as realizadas de forma manual por desenvolvedores. Nestes experimentos, a abordagem automática apresentou eficiência e eficácia superiores em todos os cenários observados.Stored Procedures are commonly used by applications to access and manipulate data in databases. If procedures are inefficiently implemented, excessive delays are passed to the application layer and can bring significant financial losses to enterprises. If procedures are implemented using bad programming practices, it may become hard for a developer to read and understand them. Considering that a significant part of the business logic of the applications can be implemented as stored procedures, the reduction of these problems using manual inspections may become a costly, error-prone and discouraging process to the developers. In this work, we propose an approach, based on static analysis of source code, to check the conformity of stored procedures with predefined efficiency and quality guidelines. The approach was instantiated to a specific database programming language and evaluated in three different ways. First, we measured the impact of the appliance of efficiency guidelines on the execution time of stored procedures. Considering the highest processing loads under test, the investigated guidelines led to optimization gains greater than 80%. Moreover, a case study, using real open source projects, was conducted to evaluate the efficacy (amount of reported warnings) and efficiency (automatic analysis time) of the proposed approach. In this process, 299 warnings were reported after the analysis of the selected procedures (∼2KLoC) and, for doing so, less than 7 seconds of automatic analysis were required. Finally, we performed experiments, in the context of an industrial project, in order to compare the automatic analysis with manual inspections performed by developers. In these experiments, the automatic approach presented a superior efficacy and efficiency in all observed treatments.Submitted by Deyse Queiroz (deysequeirozz@hotmail.com) on 2020-03-05T12:27:45Z No. of bitstreams: 1 DIMAS CASSIMIRO DO NASCIMENTO FILHO - DISSERTAÇÃO PPGCC 2013..pdf: 595255 bytes, checksum: cdae18b2950bae79f5e00a1cf5d593aa (MD5)Made available in DSpace on 2020-03-05T12:27:45Z (GMT). No. of bitstreams: 1 DIMAS CASSIMIRO DO NASCIMENTO FILHO - DISSERTAÇÃO PPGCC 2013..pdf: 595255 bytes, checksum: cdae18b2950bae79f5e00a1cf5d593aa (MD5) Previous issue date: 2013-03-01Universidade Federal de Campina GrandePÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGBrasilCentro de Engenharia Elétrica e Informática - CEEICiência da ComputaçãoBanco de DadosProcedimentos de Banco de DadosAnálise EstáticaAnálise de DesempenhoEficiênciaQualidade de CódigoDatabaseDatabase ProceduresStatic AnalysisPerformance AnalysisEfficiencyCode QualityUma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.An approach to automatic static analysis of stored procedures in databases.2013-03-012020-03-05T12:27:45Z2020-03-052020-03-05T12:27:45Zhttps://dspace.sti.ufcg.edu.br/handle/riufcg/12351NASCIMENTO FILHO, Dimas Cassimiro do. Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados. 2013. 132f. (Dissertação) Mestrado em Ciência da Computação, Programa de Pós-graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande - Campina Grande - Paraíba - Brasil, 2013. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/12351info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisporinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCGTEXTDIMAS CASSIMIRO DO NASCIMENTO FILHO - DISSERTAÇÃO PPGCC 2013.pdf.txtDIMAS CASSIMIRO DO NASCIMENTO FILHO - DISSERTAÇÃO PPGCC 2013.pdf.txttext/plain258898https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12351/4/DIMAS+CASSIMIRO+DO+NASCIMENTO+FILHO+-+DISSERTA%C3%87%C3%83O+PPGCC+2013.pdf.txt1f6580424287b2c607727d1cdfc01108MD54ORIGINALDIMAS CASSIMIRO DO NASCIMENTO FILHO - DISSERTAÇÃO PPGCC 2013.pdfDIMAS CASSIMIRO DO NASCIMENTO FILHO - DISSERTAÇÃO PPGCC 2013.pdfapplication/pdf690943https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12351/3/DIMAS+CASSIMIRO+DO+NASCIMENTO+FILHO+-+DISSERTA%C3%87%C3%83O+PPGCC+2013.pdfdeda8e16db3a3a26470d58c5c9ac8af9MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12351/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52riufcg/123512025-07-24 06:17:22.461oai:dspace.sti.ufcg.edu.br:riufcg/12351Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512025-07-24T09:17:22Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false
dc.title.pt_BR.fl_str_mv Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.
dc.title.alternative.pt_BR.fl_str_mv An approach to automatic static analysis of stored procedures in databases.
title Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.
spellingShingle Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.
NASCIMENTO FILHO, Dimas Cassimiro do.
Ciência da Computação
Banco de Dados
Procedimentos de Banco de Dados
Análise Estática
Análise de Desempenho
Eficiência
Qualidade de Código
Database
Database Procedures
Static Analysis
Performance Analysis
Efficiency
Code Quality
title_short Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.
title_full Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.
title_fullStr Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.
title_full_unstemmed Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.
title_sort Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados.
author NASCIMENTO FILHO, Dimas Cassimiro do.
author_facet NASCIMENTO FILHO, Dimas Cassimiro do.
author_role author
dc.contributor.advisor2ID.pt_BR.fl_str_mv MASSONI, T. L.
dc.contributor.advisor1.fl_str_mv PIRES, Carlos Eduardo Santos.
dc.contributor.advisor1ID.fl_str_mv PIRES, C. E. S.
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/4986021622366786
dc.contributor.advisor2.fl_str_mv MASSONI, Tiago Lima.
dc.contributor.advisor2Lattes.fl_str_mv http://lattes.cnpq.br/3563923906851611
dc.contributor.authorID.fl_str_mv NASCIMENTO FILHO, D. C.
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/3151296501932443
dc.contributor.author.fl_str_mv NASCIMENTO FILHO, Dimas Cassimiro do.
contributor_str_mv PIRES, Carlos Eduardo Santos.
MASSONI, Tiago Lima.
dc.subject.cnpq.fl_str_mv Ciência da Computação
topic Ciência da Computação
Banco de Dados
Procedimentos de Banco de Dados
Análise Estática
Análise de Desempenho
Eficiência
Qualidade de Código
Database
Database Procedures
Static Analysis
Performance Analysis
Efficiency
Code Quality
dc.subject.por.fl_str_mv Banco de Dados
Procedimentos de Banco de Dados
Análise Estática
Análise de Desempenho
Eficiência
Qualidade de Código
Database
Database Procedures
Static Analysis
Performance Analysis
Efficiency
Code Quality
description Os procedimentos armazenados em bancos de dados são comumente utilizados por aplicações para acessar e manipular dados em bancos de dados. Se os procedimentos forem implementados de maneira ineficiente, esperas demasiadas podem ser repassadas para a camada de aplicação e acarretar perdas financeiras significativas para as empresas. Caso sejam implementados usando más práticas de programação, os procedimentos podem apresentar difícil legibilidade e entendimento. Considerando que uma parte considerável da lógica de negócio das aplicações pode ser desenvolvida na forma de procedimentos, a redução destes problemas utilizando inspeções manuais pode tornar-se um processo custoso, propenso a erros e desestimulante para os desenvolvedores. Neste trabalho, é proposta uma abordagem, baseada em análise estática automática de código-fonte, para verificação da conformidade de procedimentos de banco de dados com diretrizes pré-definidas de eficiência e qualidade. A abordagem proposta foi instanciada para uma linguagem de programação de banco de dados específica e avaliada de três maneiras. Primeiramente, foi medido o impacto da aplicação de diretrizes de eficiência no tempo de execução de procedimentos de banco de dados. Para as maiores cargas de trabalho testadas, as diretrizes investigadas acarretaram em melhorias superiores a 80%. Além disso, foi realizado um estudo de caso, utilizando procedimentos de banco de dados reais, no intuito de avaliar a eficiência (tempo de análise automática) e eficácia (quantidade de advertências reportadas) da abordagem proposta. Neste processo, foram reportadas 299 advertências após a análise dos procedimentos (∼2KLoC) selecionados e, para tal, foram necessários menos de 7 segundos para a realização da análise automática. Por fim, foram realizados experimentos, no contexto de um projeto industrial real, no intuito de comparar as características da análise realizada pela abordagem proposta com as realizadas de forma manual por desenvolvedores. Nestes experimentos, a abordagem automática apresentou eficiência e eficácia superiores em todos os cenários observados.
publishDate 2013
dc.date.issued.fl_str_mv 2013-03-01
dc.date.accessioned.fl_str_mv 2020-03-05T12:27:45Z
dc.date.available.fl_str_mv 2020-03-05
2020-03-05T12:27:45Z
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 https://dspace.sti.ufcg.edu.br/handle/riufcg/12351
dc.identifier.citation.fl_str_mv NASCIMENTO FILHO, Dimas Cassimiro do. Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados. 2013. 132f. (Dissertação) Mestrado em Ciência da Computação, Programa de Pós-graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande - Campina Grande - Paraíba - Brasil, 2013. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/12351
url https://dspace.sti.ufcg.edu.br/handle/riufcg/12351
identifier_str_mv NASCIMENTO FILHO, Dimas Cassimiro do. Uma abordagem para análise estática automática de procedimentos armazenados em bancos de dados. 2013. 132f. (Dissertação) Mestrado em Ciência da Computação, Programa de Pós-graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande - Campina Grande - Paraíba - Brasil, 2013. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/12351
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Campina Grande
dc.publisher.program.fl_str_mv PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
dc.publisher.initials.fl_str_mv UFCG
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Centro de Engenharia Elétrica e Informática - CEEI
publisher.none.fl_str_mv Universidade Federal de Campina Grande
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFCG
instname:Universidade Federal de Campina Grande (UFCG)
instacron:UFCG
instname_str Universidade Federal de Campina Grande (UFCG)
instacron_str UFCG
institution UFCG
reponame_str Biblioteca Digital de Teses e Dissertações da UFCG
collection Biblioteca Digital de Teses e Dissertações da UFCG
bitstream.url.fl_str_mv https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12351/4/DIMAS+CASSIMIRO+DO+NASCIMENTO+FILHO+-+DISSERTA%C3%87%C3%83O+PPGCC+2013.pdf.txt
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12351/3/DIMAS+CASSIMIRO+DO+NASCIMENTO+FILHO+-+DISSERTA%C3%87%C3%83O+PPGCC+2013.pdf
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12351/2/license.txt
bitstream.checksum.fl_str_mv 1f6580424287b2c607727d1cdfc01108
deda8e16db3a3a26470d58c5c9ac8af9
8a4605be74aa9ea9d79846c1fba20a33
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)
repository.mail.fl_str_mv bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br
_version_ 1863363471543894016