Static Checking of Dynamically Generated Queries in Database Applications
Many data-intensive applications dynamically constructqueries in response to client requests and execute them.Java servlets, e.g., can create string representations ofSQL queries and then send the queries, using JDBC, to adatabase server for execution. The servlet programmer enjoysstatic checking vi...
Uloženo v:
| Vydáno v: | International Conference on Software Engineering: Proceedings of the 26th International Conference on Software Engineering; 23-28 May 2004 s. 645 - 654 |
|---|---|
| Hlavní autoři: | , , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
Washington, DC, USA
IEEE Computer Society
23.05.2004
|
| Edice: | ACM Conferences |
| Témata: |
Information systems
> Data management systems
> Database management system engines
> Database query processing
Software and its engineering
> Software notations and tools
> General programming languages
> Language types
Software and its engineering
> Software organization and properties
> Software functional properties
> Correctness
Theory of computation
> Theory and algorithms for application domains
> Database theory
> Database query languages (principles)
|
| ISBN: | 9780769521633, 0769521630 |
| ISSN: | 0270-5257 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | Many data-intensive applications dynamically constructqueries in response to client requests and execute them.Java servlets, e.g., can create string representations ofSQL queries and then send the queries, using JDBC, to adatabase server for execution. The servlet programmer enjoysstatic checking via Javaýs strong type system. However,the Java type system does little to check for possible errorsin the dynamically generated SQL query strings. Thus,a type error in a generated selection query (e.g., comparinga string attribute with an integer) can result in an SQLruntime exception. Currently, such defects must be rootedout through careful testing, or (worse) might be found bycustomers at runtime. In this paper, we present a sound,static, program analysis technique to verify the correctnessof dynamically generated query strings. We describe ouranalysis technique and provide soundness results for ourstatic analysis algorithm. We also describe the details of aprototype tool based on the algorithm and present severalillustrative defects found in senior software-engineeringstudent-team projects, online tutorial examples, and a real-worldpurchase order system written by one of the authors. |
|---|---|
| AbstractList | Many data-intensive applications dynamically constructqueries in response to client requests and execute them.Java servlets, e.g., can create string representations ofSQL queries and then send the queries, using JDBC, to adatabase server for execution. The servlet programmer enjoysstatic checking via Javaýs strong type system. However,the Java type system does little to check for possible errorsin the dynamically generated SQL query strings. Thus,a type error in a generated selection query (e.g., comparinga string attribute with an integer) can result in an SQLruntime exception. Currently, such defects must be rootedout through careful testing, or (worse) might be found bycustomers at runtime. In this paper, we present a sound,static, program analysis technique to verify the correctnessof dynamically generated query strings. We describe ouranalysis technique and provide soundness results for ourstatic analysis algorithm. We also describe the details of aprototype tool based on the algorithm and present severalillustrative defects found in senior software-engineeringstudent-team projects, online tutorial examples, and a real-worldpurchase order system written by one of the authors. Many data-intensive applications dynamically constructqueries in response to client requests and execute them.Java servlets, e.g., can create string representations ofSQL queries and then send the queries, using JDBC, to adatabase server for execution. The servlet programmer enjoysstatic checking via Javays strong type system. However,the Java type system does little to check for possible errorsin the dynamically generated SQL query strings. Thus,a type error in a generated selection query (e.g., comparinga string attribute with an integer) can result in an SQLruntime exception. Currently, such defects must be rootedout through careful testing, or (worse) might be found bycustomers at runtime. In this paper, we present a sound,static, program analysis technique to verify the correctnessof dynamically generated query strings. We describe ouranalysis technique and provide soundness results for ourstatic analysis algorithm. We also describe the details of aprototype tool based on the algorithm and present severalillustrative defects found in senior software-engineeringstudent-team projects, online tutorial examples, and a real-worldpurchase order system written by one of the authors. |
| Author | Su, Zhendong Devanbu, Premkumar Gould, Carl |
| Author_xml | – sequence: 1 givenname: Carl surname: Gould fullname: Gould, Carl organization: University of California at Davis – sequence: 2 givenname: Zhendong surname: Su fullname: Su, Zhendong organization: University of California at Davis – sequence: 3 givenname: Premkumar surname: Devanbu fullname: Devanbu, Premkumar organization: University of California at Davis |
| BackLink | http://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&idt=17809650$$DView record in Pascal Francis |
| BookMark | eNqFkDFPwzAQRi1RJErpyO4FJlLspLZzY9VCqVQJIWC2LqkNpokT4nTov8colRj5llve3el7l2TkG28IueZsJmLuAXKpxAwA5jI_I1NQOVMSRMpllo3ImKWKJSIV6oJMQ_hiMYIplvMx2bz22LuSLj9NuXf-gzaWro4ea1diVR3p2njTYW929OVgOmcCdZ6usMcCg6GLtq0i2LvGhytybrEKZnqaE_L--PC2fEq2z-vNcrFNkIPqE8ukAJyzgoHdcYMq50KA5ZnNGbcpE8j4TmUyLXiKRVwBlClkHAq0OS9MNiG3w922a74PJvS6dqE0VYXeNIegMy4AYrkI3pxADLGM7dCXLui2czV2R82jJJCCRe5u4LCsddE0-6A5079i9SBWD2J1Efvbv___4NkPR2l2_A |
| ContentType | Conference Proceeding |
| Copyright | 2006 INIST-CNRS |
| Copyright_xml | – notice: 2006 INIST-CNRS |
| DBID | IQODW 7SC 8FD JQ2 L7M L~C L~D |
| DOI | 10.5555/998675.999468 |
| DatabaseName | Pascal-Francis Computer and Information Systems Abstracts Technology Research Database ProQuest Computer Science Collection Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional |
| DatabaseTitle | Computer and Information Systems Abstracts Technology Research Database Computer and Information Systems Abstracts – Academic Advanced Technologies Database with Aerospace ProQuest Computer Science Collection Computer and Information Systems Abstracts Professional |
| DatabaseTitleList | Computer and Information Systems Abstracts |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Applied Sciences Computer Science |
| EndPage | 654 |
| ExternalDocumentID | 17809650 |
| Genre | Conference Paper |
| GroupedDBID | 6IE 6IH 6IK 6IL AAJGR AAVQY ACM ADPZR ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI LHSKQ OCL RIB RIC RIE RIL RIO AAWTH IQODW -~X 123 23M 29O 5VS 6IM 6IN 7SC 8FD 8US ADZIZ AFFNX AVWKF CHZPO FEDTE I07 IPLJI JQ2 L7M L~C L~D M43 RNS |
| ID | FETCH-LOGICAL-a197t-f0659a40b09fd1ea781559f13f801f205a01d7362b12ab1979a629319baf81be3 |
| ISBN | 9780769521633 0769521630 |
| ISSN | 0270-5257 |
| IngestDate | Fri Sep 05 11:17:39 EDT 2025 Wed Apr 02 07:25:31 EDT 2025 Wed Jan 31 06:48:48 EST 2024 Sun Dec 01 06:31:06 EST 2024 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Keywords | Type theory High performance JAVA language Software development Database query Very large databases Information retrieval Program analysis Distributed computing Program verification SQL Character string Sound analysis Static analysis Defect Purchases Computer server Algorithm analysis Software engineering |
| Language | English |
| License | CC BY 4.0 |
| LinkModel | OpenURL |
| MeetingName | ICSE04: 26th International Conference on Software Engineering |
| MergedId | FETCHMERGED-LOGICAL-a197t-f0659a40b09fd1ea781559f13f801f205a01d7362b12ab1979a629319baf81be3 |
| Notes | SourceType-Conference Papers & Proceedings-1 ObjectType-Conference Paper-1 content type line 25 |
| PQID | 31599708 |
| PQPubID | 23500 |
| PageCount | 10 |
| ParticipantIDs | acm_books_10_5555_998675_999468_brief proquest_miscellaneous_31599708 acm_books_10_5555_998675_999468 pascalfrancis_primary_17809650 |
| PublicationCentury | 2000 |
| PublicationDate | 20040523 2004 |
| PublicationDateYYYYMMDD | 2004-05-23 2004-01-01 |
| PublicationDate_xml | – month: 05 year: 2004 text: 20040523 day: 23 |
| PublicationDecade | 2000 |
| PublicationPlace | Washington, DC, USA |
| PublicationPlace_xml | – name: Washington, DC, USA – name: Los Alamitos CA |
| PublicationSeriesTitle | ACM Conferences |
| PublicationTitle | International Conference on Software Engineering: Proceedings of the 26th International Conference on Software Engineering; 23-28 May 2004 |
| PublicationYear | 2004 |
| Publisher | IEEE Computer Society |
| Publisher_xml | – name: IEEE Computer Society |
| SSID | ssj0000507081 ssj0006499 |
| Score | 1.9435147 |
| Snippet | Many data-intensive applications dynamically constructqueries in response to client requests and execute them.Java servlets, e.g., can create string... |
| SourceID | proquest pascalfrancis acm |
| SourceType | Aggregation Database Index Database Publisher |
| StartPage | 645 |
| SubjectTerms | Applied sciences Computer science; control theory; systems Exact sciences and technology Information systems -- Data management systems -- Database management system engines -- Database query processing Information systems -- Data management systems -- Query languages Information systems -- Information retrieval -- Information retrieval query processing Information systems. Data bases Memory organisation. Data processing Software Software and its engineering -- Software notations and tools -- General programming languages -- Language types Software and its engineering -- Software organization and properties -- Software functional properties -- Correctness Software engineering Theory of computation -- Logic -- Logic and verification Theory of computation -- Logic -- Proof theory Theory of computation -- Semantics and reasoning -- Program reasoning -- Program analysis Theory of computation -- Semantics and reasoning -- Program semantics Theory of computation -- Theory and algorithms for application domains -- Database theory -- Database query languages (principles) Theory of computation -- Theory and algorithms for application domains -- Database theory -- Database query processing and optimization (theory) |
| Title | Static Checking of Dynamically Generated Queries in Database Applications |
| URI | https://www.proquest.com/docview/31599708 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Lb9NAEF6FigMnXkUEStkDnCKD13a83iO0gSIht1IaVHGxdp1dETV1qth98K_4icx4_Qap4kAOVmT5sZlvsvPN7OwMIW-CZWCmRuPWLRY4gZKRI7XHHJVqDgRWRm7qls0meBxHZ2fiZDT6Ve-FuV7zLItub8Xlf4UazgHYuHX2H-BuHgon4DuADkeAHY4DRvxX4zOHefUG07k6lQZLGnkwn5X1A8H3xzDASXNziaQXFj8G4cF2M2A5YcKlzZLMPN0UdUpkKZWO4iF9XaUTUIb0vEqpXtq293K9_oktm7GOM_BcsEjop5f5uLKQaE8n3fX0JjXoePH1sEpOafJBvh_N4sPj-PNkvmi4-Ozbh_jjouTFW31xjsnjvaBGMAhqoKM7qdta1PmrPc_X5aEA5hH6fmf2DW1lysqQh7Y69dBGTOGDaSEiAl_pHfDjwPb16dfiHtjIJnORwatFiEGie5wzu1-wiem5QK6BYtnokB1eVVasHa6t84qDeN8bArKj9AJTc2UOeBjbVuUPhlDSntNHZLfVAdoqzGMy0tkT8rDyYGhlH_Kn5IsFn9bg042hHfBpAz6twKerjNbg0y74u2TxaXZ6cORUzTocyQQvHIML9DJwlSvMkmnJI1zwNsw3wIGM506ly5Yc6JJinlRwi5AhUE0mlDTgOmn_GdnJNpl-TijXXINhAaouvSAUngIaq5gKpzpIub8MxuQ1iCrB_1yegBOLwkysMBMrzDF5e8cViYIfacZkvyfu5NKWeElqmOFVtfwTmHdxMU1menOVJz74AQLQfnHXI16SB62G75GdYnulX5H76XWxyrf7pQL9BrPQmMk |
| linkProvider | IEEE |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Software+Engineering+%28ICSE+2004%29%3A+Proceedings%2C+26th+International+Conference%2C+Edinburgh%2C+Scotland%2C+2004&rft.atitle=Static+checking+of+dynamically+generated+queries+in+database+applications&rft.au=GOULD%2C+Carl&rft.au=ZHENDONG+SU&rft.au=DEVANBU%2C+Premkumar&rft.date=2004-01-01&rft.pub=IEEE+Computer+Society&rft.isbn=9780769521633&rft.spage=645&rft.epage=654&rft_id=info:doi/10.5555%2F998675.999468&rft.externalDBID=n%2Fa&rft.externalDocID=17809650 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0270-5257&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0270-5257&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0270-5257&client=summon |

