Print Email Facebook Twitter A Static-Based Approach to Detect SQL Semantic Bugs Title A Static-Based Approach to Detect SQL Semantic Bugs Author Ion, Claudiu (TU Delft Electrical Engineering, Mathematics and Computer Science) Contributor Aniche, Maurício (mentor) van Deursen, A. (graduation committee) Lofi, C. (graduation committee) Degree granting institution Delft University of Technology Programme Computer Science Date 2021-07-02 Abstract While SQL engines are now capable of detecting a large number of syntactic mistakes, most often semantic errors are not detected, which can lead to serious performance issues or even security vulnerabilities being introduced in the system. This thesis proposes a set of 25 validated heuristics together with a new rule-based static analysis tool for detecting the most common types of semantic bugs in SQL queries, based on evidence from previous research. We conduct an empirical study on the prevalence of semantic bugs in SQL on two datasets with queries collected from different open-source industry projects as well as on a large dataset of queries collected from StackOverflow posts. Manual analysis of more than 500 queries shows that our tool is able to detect semantic bugs in SQL queries with an accuracy of 97%. Furthermore, out of all 191,994 collected queries, we identified a total of 36,818 queries which contain at least one semantic bug, meaning that 19.17% of queries contained some semantic problem in their formulation. To the best of our knowledge, this is the largest dataset of SQL queries extracted from StackOverflow and could later be used for subsequent studies as well. Subject SQLStatic analysisSemantic bugsSQL queriesDetectionSoftware Engineering To reference this document use: http://resolver.tudelft.nl/uuid:6260695a-a963-4414-9967-5cb66faf1ba8 Part of collection Student theses Document type master thesis Rights © 2021 Claudiu Ion Files PDF A_Static_Based_Approach_t ... c_Bugs.pdf 667.3 KB Close viewer /islandora/object/uuid:6260695a-a963-4414-9967-5cb66faf1ba8/datastream/OBJ/view