1. A method for hierarchically restructuring portions of a hierarchical database comprising: selectively flattening a first portion of the hierarchical database based on a first predetermined attribute; and selectively reverse flattening a second portion of the hierarchical database based on a second predetermined attribute.