Patent ID: 8001110
Filing Date: 2011-08-16
Classification: G06F

Abstract:
1. A database processing apparatus comprising: a receiving unit that receives an obtaining request for requesting a process of obtaining information that is in correspondence with the same element as each of elements stored in partial syntax trees contained in the structured database, from another partial syntax tree, the process being a process of performing multiple loops in a nested structure, and the each of elements being used as a variable in each of the multiple loops; an identifier assigning unit that assigns a unique identifier to each of records stored in element tables, each of the element tables being created for each of the loops in the multiple loops; a joining unit that creates a cross product joined table in which a plurality of identifiers are assigned to each of records, by performing a cross product joining process on the element tables to which the identifiers have been assigned; an information obtaining unit that obtains information that is specified as an obtained target in the obtaining request based on the elements included in each of the element tables; a single-loop table creating unit that creates, for each of the loops, a single-loop table that stores records in which the obtained information, the identifiers, and the elements are brought into correspondence with one another; a joined table creating unit that creates an inter-loop a correspondence controlling unit that controls a correspondence between the records in the cross product joined table and the records in the inter-loop joined table, based on the plurality of identifiers assigned to the cross product joined table and the plurality of identifiers assigned to the inter-loop joined table; wherein the receiving unit receives an obtaining request for requesting the process of obtaining information that is in correspondence with the same element as each of elements stored in partial syntax trees contained in the structured database, from another partial syntax tree, the process being the process of performing multiple loops in a nested structure, and the each of elements being used as a variable in each of loops in triple or more loops, the joining unit further creates a first multiple cross product joined table by performing a cross product joining process on a first cross product joined table that is controlled by the correspondence controlling unit and a first single-loop table that is not controlled by the correspondence controlling unit, and also creates a second multiple cross product joined table by performing a cross product joining on a second cross product joined table that is controlled by the correspondence controlling unit and a second single-loop table that is not controlled by the correspondence controlling unit, the joined table creating unit further creates an inter-multiple-loop joined table by joining a third single-loop table that is not controlled by the correspondence controlling unit and a third inter-loop joined table that is controlled by the correspondence controlling unit, and the correspondence controlling unit further controls a correspondence between the first multiple cross product joined table and the second multiple cross product joined table, and also controls a correspondence between the second multiple cross product joined table that is controlled and the inter-multiple-loop joined table; the receiving unit receives the obtaining request in an XQuery format for requesting the obtaining process performed on the structured database in an XML format.