Patent ID: 7620642

Claim:
An article comprising a machine-readable storage medium storing instructions that, when executed, cause one or more machines to perform operations comprising: receiving a first data storage schema comprising a first fact table storing first facts, a collection of dimension tables storing first characteristics describing attributes of the first facts, one or more surrogate identification tables each storing mapping information that maps the first characteristics of one of the collection of dimension tables to objects or other characteristics in other tables, a line item dimension comprising a collection of data records that each include only a single characteristic that maps the first facts in the first fact table to an object, a time independent surrogate identification table, a time dependent surrogate identification table, and a plurality of first join paths, each first join path originating from the first fact table and connecting to one of the collection of dimension tables, the time independent surrogate identification table including only time independent information and mapping the single characteristic to a first object that includes only time independent attributes of the first attributes, the time independent attributes either being constant with time or having no effect on a result of a data processing activity if the time independent attributes change, the time dependent surrogate identification table including time dependent information and mapping the single characteristic to a second object that includes only time dependent attributes of the first attributes that are not constant and that have an effect on the result of the data processing activity if the time dependent attributes change; generating a second data storage schema comprising a second fact table comprising at least some of the first facts drawn from the first fact table and at least some characteristics drawn from the line item dimension; identifying, for each join path of the plurality of join paths, the one of the collection of dimension tables on the join path and one or more first surrogate dimension tables, first master data tables, and first text tables that are part of the first data storage schema and that are either on the first join path or connected to the first join path via one or more second join paths that branch from the first path but do not pass through the first fact table; resolving the identified one dimension table and the one or more first surrogate dimension tables, first master data tables, and first text tables into a single new dimension table, the resolving comprising arranging at least some contents of the identified one dimension table and the one or more first surrogate dimension tables, first master data tables, and first text tables into rows and columns in the single new dimension table; and adding each single new dimension table to the second data storage schema.