Aspects of the invention provide methods for rewriting and computing
database queries that include outer join conditions, and for determining
columns that satisfy a criteria. According to one aspect, a component
relation key is assigned to each unique column in a first table and an
aggregate relation key is generated for each record in a second table,
wherein the aggregate relation key is based on one or more of the
component relation keys corresponding to columns with non-null values from
the second table. Distinct aggregate relation keys are determined, and an
original query with an outer join is rewritten into at least a number of
sub-queries equal to the number of distinct aggregate keys, wherein each
sub-query includes a join condition based on each column represented by
the respective distinct aggregate keys. Significantly, the combination of
sub-queries is logically equivalent to the original query, but does not
include outer join conditions. Therefore, a more efficient query is
provided.
Os aspectos da invenção fornecem métodos reescrevendo e as perguntas computando da base de dados que incluem exterior juntam condições, e para as colunas determinando que satisfem a critérios. De acordo com um aspecto, uma chave componente da relação é atribuída a cada coluna original em uma primeira tabela e uma chave agregada da relação é gerada para cada registro em uma segunda tabela, wherein a chave agregada da relação é baseada em uma ou em mais das chaves componentes da relação que correspondem às colunas com os valores non-null da segunda tabela. As chaves agregadas distintas da relação são determinadas, e uma pergunta original com um exterior junta é reescrita ao menos no um número secundário-pergunta o igual ao número de chaves agregadas distintas, wherein cada secundário-pergunte inclui uma condição juntar baseada em cada coluna representada pelas chaves agregadas distintas respectivas. Significativamente, a combinação de secundário-pergunta é logicamente equivalente à pergunta original, mas não inclui exterior junta circunstâncias. Conseqüentemente, uma pergunta mais eficiente é fornecida.