A query processing system of a database using multi-operation processing utilizing a synthetic relational operation for improvement in processing capability of a join operation, said query processing system comprising:
- query tree conversion means for converting a query to a query tree based on relational algebra,
- task retrieval means for retrieving relational algebra as tasks, which can be processed directly and are not dependent on other relational algebra, from the query tree in an order of topological sort,
- means for dividing the retrieved tasks into groups for each relation of the database,
- synthetic relational operation means for further collecting the tasks having common sub-expression for the grouped tasks into sub-groups, and creating tasks of a synthetic relational operation,
- multi-operation processing means performing multi-operation processing each of the grouped tasks for the created tasks of the synthetic relational operation and for tasks not collected into a sub-group, and
- virtual relation creating means for creating a virtual relation based on stored locations so as for each task included in the synthetic relational operation to share a part of records and/or attributes in a processing result of the task of the synthetic relational operation;
- wherein
- the task retrieval means retrieves either a task of the select operation or a task of the join operation with the task of the project operation simultaneously, and creates a task that combined either the select operation or the join operation with the project operation, when the task to be added into a group is either a select operation or a join operation, and the next task performing operation on a processing result of the task of either the select operation or the project operation is a project operation;
- when there is a plurality of tasks of the join operation in the grouped tasks, the synthetic relational operation means further divides the grouped tasks into sub-groups for each common sub-expression of join operation, collects a plurality of tasks of the join operation into a sub-group, and creates a single task of a synthetic join operation by using logical union to concatenate each task of the join operation collected in the sub-group;
- and
- the virtual relation creating means creates a virtual relation for each task of the join operation in the sub-group.