A heterogeneous database system includes plural databases, one database
acting as a system manager which performs functions to provide a
transparent user interface that encompasses both the system manager
database and other databases. The system manager includes a memory which
stores (i) a database management procedure, (ii) a catalog of database
functions that are supported by the plural databases, and (iii) a query
optimizer procedure. A processor is responsive to a user query which
requires data stored at a remote database, to execute the query optimizer
procedure. The query optimizer procedure employs entries from the
catalogue relating to database functions supported by both the system
manager database and the remote database and establishes query plans for
responding to the query. A first query plan is based upon execution at the
remote database and a second query plan is based upon execution at the
system manager database. The query optimizer then chooses one of the query
plans in accordance with a determined criteria and causes the selected
plan to be executed.
Um sistema heterogêneo da base de dados inclui bases de dados plurais, uma base de dados que age porque um gerente do sistema que execute funções para fornecer uma relação de usuário transparente que abranja a base de dados do gerente do sistema e outras bases de dados. O gerente do sistema inclui uma memória que armazene (i) um procedimento da gerência da base de dados, (ii) um catálogo das funções da base de dados que são suportadas pelas bases de dados plurais, e (iii) um procedimento do optimizer da pergunta. Um processador é responsivo a uma pergunta de usuário que requeira os dados armazenados em uma base de dados remota, executar o procedimento do optimizer da pergunta. O procedimento do optimizer da pergunta emprega entradas do catálogo que relaciona-se às funções da base de dados suportadas pela base de dados do gerente do sistema e pela base de dados remota e estabelece plantas da pergunta para responder à pergunta. Uma primeira planta da pergunta é baseada na execução na base de dados remota e uma segunda planta da pergunta é baseada na execução na base de dados do gerente do sistema. O optimizer da pergunta então escolhe uma das plantas da pergunta de acordo com critérios determinados e faz com que a planta selecionada seja executada.