Computable Database Queries and the Expressiveness of the Relational Algebra
One of the fundamental operations a database system needs to carry out is that of processing queries. The relational algebra was defined in Section 3.2 of Chapter 3 as a yardstick for the expressiveness of a query language for relational databases. The relational algebra on its own is not intended to be used as a general purpose database programming language for developing applications and as such does not provide the application programmer with iteration and recursion facilities. Thus in the context of database application programming the question that arises is: what are the possible queries that such a database language can and should be able to compute? In this chapter we define and investigate a general notion of a computable query in an attempt to answer the question we have just posed. There are essentially two parts to our investigation. The first part involves a categorisation of several subclasses of computable queries and the second part involves the presentation of a database programming language that is complete with respect to computable queries and an investigation of the expressive power of the relational algebra and how it can be made more expressive by adding to it iteration and/or recursion facilities. Since the early 1980's it was realised that the relational algebra is not expressive enough to carry out general database computations. The research into computable queries has been instrumental in motivating the necessity to develop more expressive query languages for relational databases and laying down the fundamental principles which provide the foundations for such development.
KeywordsRelational Database Query Language Relation Schema Relational Algebra Loop Mechanism
Unable to display preview. Download preview PDF.