1. A method of providing access to data in a database, comprising: receiving, from a requesting entity, a search request for data available through a database abstraction model, wherein the database abstraction model provides: (i) a plurality of logical fields each specifying an access method for accessing data in the database; and (ii) at least one model entity that specifies an identifier in the database used to identify instances of the model entity and further specifies a set of the logical fields used to access data related to the model entity, wherein the identifier comprises a primary key of a table in the database, and wherein the search request specifies the model entity to be searched and at least one search term; identifying, of the set of logical fields related to the model entity, logical fields that are candidates for containing data matching the at least one search term; accessing, for each instance of the model entity in the database, data for each of the identified logical fields using the access method specified for the respective identified logical field; identifying, for each instance, whether the accessed data contains the at least one search term, and if so, adding the identifier for the specific instance of the model entity to a set of search results; and returning the search results to the requesting entity.
8. The method of claim 1 , further comprising: providing a query building interface configured to provide an interface for composing the search request, wherein the query interface includes controls for selecting the model entity to be searched and for specifying the at least one search term.