Complexity analysis for a lazy higher-order language
Proceedings of the third European symposium on programming on ESOP '90
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Principles of programming with complex objects and collection types
ICDT '92 Selected papers of the fourth international conference on Database theory
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formally based profiling for higher-order functional languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
Quasilinear algorithms for processing relational calculus expressions (preliminary report)
PODS '90 Proceedings of the ninth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communications of the ACM
Principles of Program Analysis
Principles of Program Analysis
Database Management Systems
Static prediction of heap space usage for first-order functional programs
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependent Types for Program Termination Verification
Higher-Order and Symbolic Computation
Temporal and Real-Time Databases: A Survey
IEEE Transactions on Knowledge and Data Engineering
Mechanical analysis of program complexity
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
Cost semantics for space usage in a parallel language
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Enforcing resource bounds via static verification of dynamic checks
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special Issue ESOP'05
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Semi-continuous sized types and termination
CSL'06 Proceedings of the 20th international conference on Computer Science Logic
Hi-index | 0.00 |
Many scientific disciplines, such as biology and astronomy, are now collecting large amounts of raw data systematically and storing it centrally in relational databases for shared use by their communities. In many cases such systems accept arbitrary SQL queries submitted using a Web form. Typical database management systems do not provide support for enforcing resource access control policies to guard against expensive or pointless queries submitted accidentally by legitimate users or intentionally by attackers. Instead, such systems typically employ timeouts to halt queries that do not terminate within a reasonable period of time. This approach can limit misuse but cannot prevent it; moreover, it does not provide useful feedback for legitimate users whose queries exceed the time limit. In this paper, we study a language-based technique for bounding the time and space resource usage of database queries. We introduce a cost semantics for a simple core database query language, define a type-based analysis for estimating an upper bound on the asymptotic running time of a query, and prove its soundness. We also discuss a prototype implementation which we have used to analyze typical SQL queries submitted to the SDSS SkyServer astronomical database.