1. A method for searching a relational database, the method comprising: providing an abstract query class defining an execute method for causing a query to be performed on the relational database and one or more query properties that specify the manner in which the query is performed; and providing a keyword query class derived from the abstract query class, the keyword query class comprising an execute method which when called causes a keyword query to be performed on the relational database and one or more keyword query properties that specify how the keyword query is to be performed.