DocumentCode
415762
Title
Static checking of dynamically generated queries in database applications
Author
Gould, Carl ; Su, Zhendong ; Devanbu, Premkumar
Author_Institution
Dept. of Comput. Sci., California Univ., Davis, CA, USA
fYear
2004
fDate
23-28 May 2004
Firstpage
645
Lastpage
654
Abstract
Many data-intensive applications dynamically construct queries in response to client requests and execute them. Java servlets, e.g., can create string representations of SQL queries and then send the queries, using JDBC, to a database server for execution. The servlet programmer enjoys static checking via Java´s strong type system. However, the Java type system does little to check for possible errors in the dynamically generated SQL query strings. Thus, a type error in a generated selection query (e.g., comparing a string attribute with an integer) can result in an SQL runtime exception. Currently, such defects must be rooted out through careful testing, or (worse) might be found by customers at runtime. In this paper, we present a sound, static, program analysis technique to verify the correctness of dynamically generated query strings. We describe our analysis technique and provide soundness results for our static analysis algorithm. We also describe the details of a prototype tool based on the algorithm and present several illustrative defects found in senior software-engineering student-team projects, online tutorial examples, and a real-world purchase order system written by one of the authors.
Keywords
Java; SQL; program diagnostics; query processing; Java servlet; SQL query strings; database querying; database server; program analysis; selection query; software engineering; static checking; Algorithm design and analysis; Application software; Computer science; Databases; Java; Programming profession; Runtime; Software prototyping; Testing; Web services;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Engineering, 2004. ICSE 2004. Proceedings. 26th International Conference on
ISSN
0270-5257
Print_ISBN
0-7695-2163-0
Type
conf
DOI
10.1109/ICSE.2004.1317486
Filename
1317486
Link To Document