Thou shalt have a simple way of querying data
The main problem here is to provide the functionality of an ad hoc query language. We do not require that it be done in the form of a query language but just that the service be provided. For instance, a graphical browser could be sufficient to fulfill this functionality. The service consists of allowing the user to ask simple queries to the database simply. The obvious yardstick is of course relational systems, thus the test is to take a number of representative relational queries and to check whether they can be stated with the same amount of work. Note that this facility could be supported by the data manipulation language or a subset of it.
We believe that a query facility should satisfy the following three criteria: (i) It should be high level, i.e., one should be able to express (in a few words or in a few mouse clicks) non-trivial queries concisely. This implies that it should be reasonably declarative, i.e., it should emphasize the what and not the how. (ii) It should be efficient. That is, the formulation of the queries should lend itself to some form of query optimization. (iii) It should be application independent, i.e., it should work on any possible database. This last requirements eliminates specific querying facilities which are application dependent, or require writing additional operations on each user-defined type.