The multidatabase query strategy we pursue involves the following main stages:
More detailed description of OPM multidatabase query processing and illustrating examples will be given in section 5.
Currently, the multidatabase query assembly is carried out in main memory and therefore we assume that the query results do not exceed the available local main-memory. In the near future we plan to implement a simple, single user, local database management system for OPM that can be used for storing and combining the results of single database queries.
An alternative approach to evaluating multidatabase queries would be to evaluate sequentially the single-database queries, while using each query result to restrict the next query in the sequence. This approach could be more efficient for some queries and would require storing smaller intermediary query results. However, this approach is more difficult to implement (e.g., it involves a bi-directional flow of data between the OPM multidatabase query system and the component databases) and requires more cooperation from the component databases. Consequently, we decided against following this approach as our primary strategy, and will explore it as an alternative secondary strategy at a later stage.
Our multidatabase query strategy requires a local query processor capable of performing joins and evaluating conditions over complex nested data-structures, for assembling the multidatabase query result from the single-database query results. The current query processor is relatively simple, but can be easily extended: it supports joins, projections and simple condition testing, but does not yet support aggregate functions.