1. A method of creating a report in a computer-based business intelligence system, using a client application receiving user inputs and a metadata model containing model objects that represent the data sources, the method comprising the steps of: a) defining a model based on an existing database comprising at least two query subjects, each query subject having at least one fact query item and one primary key; b) generating a hierarchy of sets and subsets of key query items in query subjects within the model according to rules for computation of the dimensional information; c) accepting an input request from a user to define contents of the report; d) determining an expression to extract data from the database to fulfill the input request; e) decomposing the expression into subqueries using the hierarchy of sets and subsets of key query items to prevent multiple-counting of data; f) accessing the data using the subqueries; and g) producing the report.