An Algorithm for Determining Related Constraints
BNCOD 19 Proceedings of the 19th British National Conference on Databases: Advances in Databases
Recovery of PTUIE Handling from Source Codes through Recognizing Its Probable Properties
IEEE Transactions on Knowledge and Data Engineering
Database semantics recovery through analysis of dynamic SQL statements
Journal on data semantics XV
Hi-index | 0.00 |
One of the principal aims of data reverse engineering is to facilitate comprehension of the internal structure and behaviour of data-intensive systems by programmers. However, the majority of the research in this area has so far concentrated on the development of techniques to assist comprehension of the data structures used by such systems, and much less attention has been paid to the equally pressing problem of understanding the ways in which those structures are manipulated by the systems to solve business problems. In particular, there are few tools which can help a programmer to comprehend the functionality provided by a collection of database transactions. While some relevant techniques have been developed by the software reverse engineering community, in general their applicability to transactions is limited by the fact that they focus on program state alone. In-depth analysis of source code that manipulates data stored in a database (or other persistent store) must take into account the effects of that source code on {\em both} the program state and the database state.In this paper, we present an extension of the technique of symbolic execution that takes into account the specific semantics of database access commands. This extended symbolic execution engine can extract declarative representations of the data manipulations carried out by transactions, in the form of logical conditions over the database state rather procedural manipulation of the program state. The engine is then used to annotate transactions with automatically generated comments, to assist the transaction programmer in comprehending its behaviour.