1. A method for accessing a database from an application, the method comprising: receiving, at one or more computer systems, information defining a hierarchy of business data containers for the application, each business data container in the hierarchy of business data containers limiting data access at the application to a subset of data stored in the database according to predetermined criteria, each business data container having: one or more entries configured to cache first data obtained from the database at the application according to a data schema associated with the business data container, and an index for the application indexing the one or more entries using or more key attributes of second data stored in the database; receiving, at the one or more computer systems, information indicative of a selection of a user of a graphical user interface provided by the application of a visual representation of a business data container in the hierarchy of business data containers; receiving, at the one or more computer systems, a query associated with a predefined task presented by the application for the selected business data container; determining, with the one or more processors associated with one or more computer systems, a data domain for the selected business data container; determining, with the one or more processors associated with one or more computer systems, the index for the selected business data container; generating, with the one or more processors associated with the one or more computer systems, a query plan based on the query, the data domain, and the index associated with the selected business data container; and executing, with the one or more processors associated with the one or more computer systems, the query plan to obtain a subset of the second data from the database.