Denormalize recursive, unbalanced, and ragged hierarchies
First Claim
1. An apparatus for transforming an unstructured database, wherein the apparatus transforms the unstructured database into a structured database, the apparatus comprising:
- a memory;
a computing processor; and
a module stored in the memory, said module comprising instruction code executable by one or more computing processors, and configured to cause the one or more computing processors to;
import an unstructured database into a computing device system, the unstructured database comprising a plurality of entities in an overall hierarchy comprising a highest level and a plurality of levels below the highest level;
analyze the unstructured database to identify relationships between the plurality of entities in the overall hierarchy;
generate a flattened database by expanding the plurality of entities from higher levels into lower levels of the overall hierarchy such that every entity is present in a lowest level at least once;
determine one or more instances of unbalanced hierarchy portions and one or more instances of ragged hierarchy portions in the overall hierarchy of the unstructured database, wherein;
the one or more instances of unbalanced hierarchy portions are hierarchy portions having branches of unequal length, andthe one or more instances of ragged hierarchy portions are hierarchy portions where at least one entity below the highest level does not have a direct supervisor;
populate the flattened database according to one or more predetermined rules in order to develop relationships between the one or more instances of unbalanced hierarchy portions, the one or more instances of ragged hierarchy portions and remaining entities of the plurality of entities in the overall hierarchy, wherein the one or more predetermined rules specify that entities in unbalanced hierarchy portions and ragged hierarchy portions will be subordinate to the highest level in the overall hierarchy, and wherein the populating fills empty slots in the overall hierarchy with a next entity in a higher level in a same branch; and
provide an output of a structured database comprising the populated flattened database.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments disclosed herein relate to systems, methods, and computer program products for transforming an unstructured database into a structured database. In some embodiments, the system and method imports an unstructured database comprising entities and a hierarchy associated with the entities. The system and method analyze the unstructured database, flatten the database so that a recursive database is converted into a database that fully expands all entities into lower levels, and identifies instances of unbalanced or ragged hierarchies. The system populates the database according to predetermined rules to address the unbalanced or ragged hierarchies and outputs a structured database that can be used for accurate analysis of the hierarchy and entities stored therein, such as corporate structure hierarchies or stock inventory hierarchies.
-
Citations
20 Claims
-
1. An apparatus for transforming an unstructured database, wherein the apparatus transforms the unstructured database into a structured database, the apparatus comprising:
-
a memory; a computing processor; and a module stored in the memory, said module comprising instruction code executable by one or more computing processors, and configured to cause the one or more computing processors to; import an unstructured database into a computing device system, the unstructured database comprising a plurality of entities in an overall hierarchy comprising a highest level and a plurality of levels below the highest level; analyze the unstructured database to identify relationships between the plurality of entities in the overall hierarchy; generate a flattened database by expanding the plurality of entities from higher levels into lower levels of the overall hierarchy such that every entity is present in a lowest level at least once; determine one or more instances of unbalanced hierarchy portions and one or more instances of ragged hierarchy portions in the overall hierarchy of the unstructured database, wherein; the one or more instances of unbalanced hierarchy portions are hierarchy portions having branches of unequal length, and the one or more instances of ragged hierarchy portions are hierarchy portions where at least one entity below the highest level does not have a direct supervisor; populate the flattened database according to one or more predetermined rules in order to develop relationships between the one or more instances of unbalanced hierarchy portions, the one or more instances of ragged hierarchy portions and remaining entities of the plurality of entities in the overall hierarchy, wherein the one or more predetermined rules specify that entities in unbalanced hierarchy portions and ragged hierarchy portions will be subordinate to the highest level in the overall hierarchy, and wherein the populating fills empty slots in the overall hierarchy with a next entity in a higher level in a same branch; and provide an output of a structured database comprising the populated flattened database. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product for transforming an unstructured database into a structured database, the computer program product comprising:
a non-transitory computer-readable medium comprising; an executable portion for causing a computer to import an unstructured database into a computing device system, the unstructured database comprising a plurality of entities in an overall hierarchy comprising a highest level and a plurality of levels below the highest level; an executable portion for causing the computer to analyze the unstructured database to identify relationships between the plurality of entities in the overall hierarchy; an executable portion for causing the computer to generate a flattened database by expanding the plurality of entities from higher levels into lower levels of the overall hierarchy such that every entity is present in a lowest level at least once; an executable portion for causing the computer to determine one or more instances of unbalanced hierarchy portions and one or more instances of ragged hierarchy portions in the overall hierarchy of the unstructured database, wherein; the one or more instances of unbalanced hierarchy portions are hierarchy portions having branches of unequal length, and the one or more instances of ragged hierarchy portions are hierarchy portions where at least one entity below the highest level does not have a direct supervisor; an executable portion for causing the computer to populate the flattened database according to one or more predetermined rules in order to develop relationships between the one or more instances of unbalanced hierarchy portions, the one or more instances of the ragged hierarchy portions, and remaining entities of the plurality of entities in the overall hierarchy, wherein the one or more predetermined rules specify that entities in unbalanced hierarchy portions and ragged hierarchy portions will be subordinate to the highest level in the overall hierarchy, and wherein the populating fills empty slots in the overall hierarchy with a next entity in a higher level in a same branch; and an executable portion for causing the computer to provide an output of a structured database comprising the populated flattened database. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A computer-implemented method for transforming an unstructured database into a structured database, the method comprising:
-
importing an unstructured database into a computing device system, the unstructured database comprising a plurality of entities in an overall hierarchy comprising a highest level and a plurality of levels below the highest level; analyzing the unstructured database to identify relationships between the plurality of entities in the overall hierarchy; generating a flattened database by expanding the plurality of entities from higher levels into lower levels of the overall hierarchy such that every entity is present in a lowest level at least once; determining one or more instances of unbalanced hierarchy portions and one or more instances of ragged hierarchy portions in the overall hierarchy of the unstructured database, wherein; the one or more instances of unbalanced hierarchy portions are hierarchy portions having branches of unequal length, and the one or more instances of ragged hierarchy portions are hierarchy portions where at least one entity below the highest level does not have a direct supervisor; populating the flattened database according to one or more predetermined rules in order to develop relationships between the one or more instances of unbalanced hierarchy portions, the one or more instances of the ragged hierarchy portions and remaining entities of the plurality of entities in the overall hierarchy, wherein the one or more predetermined rules specify that entities in unbalanced hierarchy portions and ragged hierarchy portions will be subordinate to the highest level in the overall hierarchy, and wherein the populating fills empty slots in the overall hierarchy with a next entity in a higher level in a same branch; and providing an output of a structured database comprising the populated flattened database. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification