(57)【要約】装置は、グループ化すべき非ルックトアップ・テーブル・フィールドとＳＱＬステートメント中のそれらの行値に実施すべき集約関数（３０７）を有するテーブル・フィールドを識別し、グループ化された非ルックトアップ・テーブル・フィールド（３１１）と集約されたテーブル・フィールドとテーブル・フィールドをそこからグループ化派生テーブルとルックアップされる１つまたは複数のターゲット・テーブルを接合する１つまたは複数の適切なＪＯＩＮ句（３１２）を備えるグループ化派生テーブルを発生する副照会をＦＳＱＬステートメントとともに自動的に含む。
2005507121.tif 000002
【特許請求の範囲】
【請求項１】
実行時、
データ処理ステートメントを解析し、
前記データ処理ステートメント中で参照される１つまたは複数のテーブル・フィールドを識別し、
識別されたテーブル・フィールドごとに、前記テーブル・フィールドがルックトアップ・フィールドであるかどうかを判定し、
前記識別された１つまたは複数のテーブル・フィールドの非ルックトアップ・フィールドがメンバーである基礎テーブルを識別し、
前記識別された１つまたは複数のテーブル・フィールドの前記ルックトアップ・フィールドまたは複数のフィールドをそこからルックアップされる１つまたは複数のターゲット・テーブルを識別し、
ＳＱＬステートメントを発生し、前記発生したＳＱＬステートメントとともに、前記基礎テーブルから選択すべきフィールドまたは複数のフィールドを含み、かつ前記基礎テーブルを列挙するＦＲＯＭ句を含み、データ処理ステートメントが１つまたは複数のターゲット・テーブルからルックアップされる１つまたは複数のフィールドを含むと判定された場合にはさらに、前記選択すべきフィールドまたは複数のフィールド間に、前記１つまたは複数のターゲット・テーブルと前記基礎テーブルおよび前記１つまたは複数のターゲット・テーブルをそれぞれ接合する１つまたは複数のＪＯＩＮ句と前記基礎テーブルおよび前記１つまたは複数の対応するテーブルの行を接合すべき１つまたは複数の対応する条件をそれぞれ指定する対応するＯＮ句を含み、その際、前記１つまたは複数の条件の各々が対応するルックアップ・フィールドを備える
ように装置を動作させるプログラミング命令がその中に記憶された記憶媒体と、
前記プログラミング命令を実行するために前記記憶媒体に結合された１つまたは複数のプロセッサとを備える装置。
【請求項２】
前記プログラミング命令は、実行時、テーブル・フィールドが、少なくともルックアップ・フィールドに対応する第１のパートと所定の方法で前記第１のパートに連結されたルックアップされるフィールドに対応する第２のパートを含むマルチパート・テーブル・フィールドであるかどうかを判定することによって、前記テーブル・フィールドがルックトアップ・フィールドであるかどうかを装置が判定することを可能にする請求項１に記載の装置。
【請求項３】
前記プログラミング命令は、実行時、前記テーブル・フィールドがマルチパート・テーブル・フィールドであると判定されると、所定の方法で前記第２のパートに連結されたルックトアップ・フィールドに対応する第３のパートとともに、前記第２のパートもルックアップ・フィールドであるかどうかを装置が判定することを可能にする請求項２に記載の装置。
【請求項４】
ルックアップされるフィールドに対応する前記第２のパートが、１つまたは複数の所定の特殊文字を使用して、ルックアップ・フィールドに対応する前記第１のパートと連結される請求項３に記載の装置。
【請求項５】
前記１つまたは複数の所定の特殊文字が少なくとも「．」、「：」、「〜」、「！」、「＠」、「＃」、「＄」、「％」、「＾」、「＆」、「＊」、「−」、「＋」、「＝」、「？」、「＜」と「＞」の選択された１つを備える請求項４に記載の装置。
【請求項６】
前記ＪＯＩＮ句がＯＵＴＥＲ  ＪＯＩＮ句である請求項１に記載の装置。
【請求項７】
前記ＪＯＩＮ句がＩＮＮＥＲ  ＪＯＩＮ句である請求項１に記載の装置。
【請求項８】
前記ＳＱＬステートメントがＳＥＬＥＣＴ、ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントの選択された１つである請求項１に記載の装置。
【請求項９】
実行時、
データ処理オペレーションで使用する選択のための第１のテーブルの第１の複数のフィールドを提示し、
第１のフィールドのメンバーである前記第１のフィールドの選択を受信し、
前記選択された第１のフィールドが第２のテーブルの第２の複数のフィールドの第１の１つまたは複数をルックアップするための第１の指定ルックアップ・フィールドであるかどうかを判定し、
前記選択された第１のフィールドが前記第２のテーブルの前記第２の複数のフィールドの第１の１つまたは複数をルックアップするための第１の指定ルックアップ・フィールドであると判定された場合、前記データ処理オペレーションで使用する選択のための前記第２の複数のフィールドを提示する
ように装置を動作させる複数のプログラミング命令がその中に記憶された記憶媒体と、
前記プログラミング命令を実行するために前記記憶媒体に結合された少なくとも１つのプロセッサとを備える装置。
【請求項１０】
前記プログラミング命令が、実行時、第１のパート、前記第１のルックアップ・フィールド、第２のパートと所定の方法で前記第１のパートに連結されたルックアップされる前記第１の１つまたは複数のフィールドの対応するフィールドを含む、前記第２の複数のフィールドの各々をマルチパート・フォームで提示するように装置を動作させる請求項９に記載の装置。
【請求項１１】
前記プログラミング命令が、実行時、
第２のフィールドのメンバーである前記第２のフィールドの選択を受信し、
前記選択された第２のフィールドが第３のテーブルの第３の複数のフィールドの第２の１つまたは複数をルックアップするための第２の指定ルックアップ・フィールドであるかどうかを判定し、
前記選択された第２のフィールドが前記第３のテーブルの前記第３の複数のフィールドの第２の１つまたは複数をルックアップするための第２の指定ルックアップ・フィールドであると判定された場合、選択のための前記第３の複数のフィールドを提示する
ように装置をさらに動作させる請求項１０に記載の装置。
【請求項１２】
前記プログラミング命令が、実行時、
第１のパート、前記第１のルックアップ・フィールド、第２のパートと所定の方法で前記第１のパートに連結されたルックアップされる前記第１の１つまたは複数のフィールドの対応するフィールドを含む、前記第２の複数のフィールドの各々をマルチパート・フォームで提示し、
第１および第２のパート、第３のパートと所定の方法で前記第２のパートに連結されたルックアップされる前記第２の１つまたは複数のフィールドの対応するフィールドを含む、前記第３の複数のフィールドの各々をマルチパート・フォームで提示する
ように装置を動作させる請求項１１に記載の装置。
【請求項１３】
前記第２のパート、ルックアップされる前記第１の１つまたは複数のフィールドの対応するフィールドが、１つまたは複数の所定の特殊文字を使用して、前記第１のパート、前記ルックアップ・フィールドと連結される請求項１０に記載の装置。
【請求項１４】
前記１つまたは複数の所定の特殊文字が少なくとも「．」、「：」、「〜」、「！」、「＠」、「＃」、「＄」、「％」、「＾」、「＆」、「＊」、「−」、「＋」、「＝」、「？」、「＜」と「＞」の選択された１つを備える請求項１３に記載の装置。
【請求項１５】
前記プログラミング命令が、ＳＱＬステートメントを発生するように装置をさらに動作させ、前記第１のテーブルから選択すべきフィールドまたは複数のフィールドおよび前記第１のテーブルを列挙するＦＲＯＭ句を前記発生したＳＱＬステートメントとともに含み、前記第２のテーブルからルックアップされる前記フィールドの１つまたは複数も選択された場合、前記第２のテーブルからルックアップされる前記１つまたは複数のフィールドと前記第２のテーブルを前記第１のテーブルに接合するＪＯＩＮ句と前記第２のテーブルおよび前記第１のテーブルの行を接合すべき条件を指定するＯＮ句を前記フィールドまたは複数のフィールドの間に含み、その際、前記条件が前記ルックアップ・フィールドを備える請求項９に記載の装置。
【請求項１６】
前記ＪＯＩＮ句がＯＵＴＥＲ  ＪＯＩＮ句である請求項９に記載の装置。
【請求項１７】
前記ＪＯＩＮ句がＩＮＮＥＲ  ＪＯＩＮ句である請求項９に記載の装置。
【請求項１８】
前記ＳＱＬステートメントがＳＥＬＥＣＴ、ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントの選択された１つである請求項９に記載の装置。
【請求項１９】
前記プログラミング命令が、実行時、
前記第１のテーブルの前記第１の複数のフィールドを指定し、
前記指定された第１のフィールドの１つまたは複数をルックアップ・フィールドとして指示し、
前記指示されたルックアップ・フィールド用にターゲット・テーブルを指定するように装置をさらに動作させる請求項９に記載の装置。
【請求項２０】
実行時、
データ処理ステートメントを解析し、
前記データ処理ステートメント中で参照される１つまたは複数のテーブル・フィールドを識別し、識別されたテーブル・フィールドの各々の行値に対して集約オペレーションを実施すべきかどうかを判定することを含み、
識別されたテーブル・フィールドごとに、前記テーブル・フィールドがルックトアップ・フィールドであるかどうかを判定し、
前記識別された１つまたは複数のテーブル・フィールドの非ルックトアップ・フィールドがメンバーである基礎テーブルを識別し、
前記識別された１つまたは複数のテーブル・フィールドの前記ルックトアップ・フィールドまたは複数のフィールドをそこからルックアップされる１つまたは複数のターゲット・テーブルを識別し、
前記データ処理ステートメントが集約オペレーションをそれらの行値に対して実施させるために第１の１つまたは複数のテーブル・フィールドを含有すると判定された場合にＳＱＬステートメントを発生し、グループ化されたテーブル・フィールドおよび集約されたテーブル・フィールドを備えるグループ化派生テーブルを生成する副照会を有するＦＲＯＭ句と前記対応する１つまたは複数のターゲット・テーブルを前記グループ化派生テーブルに接合する１つまたは複数のＪＯＩＮ句を前記発生したＳＱＬステートメントとともに含むように装置を動作させるプログラミング命令がその中に記憶された記憶媒体と、
前記プログラミング命令を実行するために前記記憶媒体に結合された１つまたは複数のプロセッサとを備える装置。
【請求項２１】
前記プログラミング命令は、実行時、テーブル・フィールドが、少なくともルックアップ・テーブル・フィールドに対応する第１のパートと所定の方法で前記第１のパートに連結されたルックアップされるフィールドに対応する第２のパートを含むマルチパート・テーブル・フィールドであるかどうかを判定することによって、ルックトアップ・フィールドであるかどうかを装置が判定することを可能にする請求項２０に記載の装置。
【請求項２２】
前記プログラミング命令は、実行時、前記テーブル・フィールドがマルチパート・テーブル・フィールドであると判定されると、所定の方法で前記第２のパートに連結されたルックトアップ・フィールドに対応する第３のパートとともに、前記第２のパートもルックアップ・フィールドであるかどうかを装置が判定することを可能にする請求項２１に記載の装置。
【請求項２３】
ルックアップされるフィールドに対応する前記第２のパートが、１つまたは複数の所定の特殊文字を使用して、ルックアップ・フィールドに対応する前記第１のパートと連結される請求項２２に記載の装置。
【請求項２４】
前記プログラミング命令は、実行時、前記識別されたテーブル・フィールドの適用可能なフィールドに対して実施すべき集約関数を含む、前記基礎テーブルの識別されたテーブル・フィールドを列挙するＳＥＬＥＣＴステートメントの形態で前記副照会を発生することによって、ＳＱＬステートメントの前記条件付き発生を装置が実施することを可能にし、前記基礎テーブルを列挙する第１のＦＲＯＭ句と同じく実施すべき集約関数を有するとして識別されていない基礎テーブルの前記列挙された１つまたは複数のテーブル・フィールドを列挙するＧＲＯＵＰ  ＢＹ句を前記ＳＥＬＥＣＴステートメントとともに含む請求項２０に記載の装置。
【請求項２５】
前記プログラミング命令は、実行時、前記ＳＱＬステートメントを条件付きで発生するために、前記グループ化派生テーブルおよび前記１つまたは複数のターゲット・テーブルから選択すべきフィールドまたは複数のフィールド、前記副照会を列挙する第２のＦＲＯＭ句、前記グループ化派生テーブルの識別子を列挙するＡＳ句と前記グループ化派生テーブルおよび前記１つまたは複数のターゲット・テーブルをそれぞれ接合する前記１つまたは複数のＪＯＩＮ句を装置が列挙することをさらに可能にする請求項２４に記載の装置。
【請求項２６】
前記集約関数がカウント関数（ＣＯＵＮＴ）、最小値識別関数（ＭＩＮ）、最大値識別関数（ＭＡＸ）、平均値計算関数（ＡＶＧ）と値合計関数（ＳＵＭ）の選択された１つである請求項２０に記載の装置。
【請求項２７】
前記ＳＱＬステートメントがＳＥＬＥＣＴ、ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントの選択された１つである請求項２０に記載の装置。
【請求項２８】
実行時、
データ処理オペレーションで使用する選択のための第１のテーブルの第１の複数のフィールドを提示し、
第１のフィールドのメンバーである前記第１のフィールドの選択を受信し、
前記選択された第１のフィールドが第２のテーブルの第２の複数のフィールドの第１の１つまたは複数をルックアップするための第１の指定ルックアップ・フィールドであるかどうかを判定し、
前記選択された第１のフィールドが前記第２のテーブルの前記第２の複数のフィールドの第１の１つまたは複数をルックアップするための第１の指定ルックアップ・フィールドであると判定された場合、前記データ処理オペレーションで使用する選択のための前記第２の複数のフィールドを提示し、
前記第１および第２の複数のフィールドの選択された１つに対して集約関数を実施する要求を受信し、
選択のための複数の集約関数を提示する
ように装置を動作させる複数のプログラミング命令がその中に記憶された記憶媒体と、
前記プログラミング命令を実行するために前記記憶媒体に結合された少なくとも１つのプロセッサとを備える装置。
【請求項２９】
前記プログラミング命令は、実行時、第１のパート、前記第１のルックアップ・フィールド、第２のパート、所定の方法で前記第１のパートに連結されたルックアップされる前記第１の１つまたは複数のフィールドの対応する１つを含むマルチパート・フォームで前記第２の複数のフィールドの各々を提示するように装置を動作させる請求項２８に記載の装置。
【請求項３０】
前記プログラミング命令が、実行時、
第２のフィールドのメンバーである前記第２のフィールドの選択を受信し、
前記選択された第２のフィールドが第３のテーブルの第３の複数のフィールドの第２の１つまたは複数をルックアップするための第２の指定ルックアップ・フィールドであるかどうかを判定し、
前記選択された第２のフィールドが前記第３のテーブルの前記第３の複数のフィールドの第２の１つまたは複数をルックアップするための第２の指定ルックアップ・フィールドであると判定された場合、選択のための前記第３の複数のフィールドを提示する
ように装置をさらに動作させる請求項２９に記載の装置。
【請求項３１】
前記プログラミング命令が、実行時、
第１のパート、前記第１のルックアップ・フィールド、第２のパートと所定の方法で前記第１のパートに連結されたルックアップされる前記第１の１つまたは複数のフィールドの対応するフィールドを含む、前記第２の複数のフィールドの各々をマルチパート・フォームで提示し、
前記第１および第２のパート、第３のパートと所定の方法で前記第２のパートに連結されたルックアップされる前記第２の１つまたは複数のフィールドの対応するフィールドを含む、前記第３の複数のフィールドの各々をマルチパート・フォームで提示する
ように装置を動作させる請求項３０に記載の装置。
【請求項３２】
前記第２のパート、ルックアップされる前記第１の１つまたは複数のフィールドの対応するフィールドが、１つまたは複数の所定の特殊文字を使用して、前記第１のパート、前記ルックアップ・フィールドと連結される請求項２９に記載の装置。
【請求項３３】
前記プログラミング命令は、実行時、装置がＳＱＬステートメントを発生することをさらに可能にし、グループ化された非ルックトアップ・フィールドと集約されたフィールドを備えるグループ化派生テーブルを生成する副照会を有するＦＲＯＭ句と１つまたは複数の選択されたフィールドが集約オペレーションをそれらの行値に対して実施させるべき場合、１つまたは複数のルックアップ・フィールドの対応する１つまたは複数ターゲット・テーブルとを、前記グループ化派生テーブルに接合する１つまたは複数のＪＯＩＮ句を前記発生したＳＱＬステートメントとともに含む請求項２８に記載の装置。
【請求項３４】
前記プログラミング命令は、実行時、前記選択されたフィールドの適用可能なフィールドに対して実施すべき集約関数を含む、前記基礎テーブルの選択されたフィールドを列挙するＳＥＬＥＣＴステートメントの形態で前記副照会を発生することによって、ＳＱＬステートメントの前記条件付き発生を装置が実施することを可能にし、前記基礎テーブルを列挙する第１のＦＲＯＭ句とそれらの行値に対して実行するために選択された集約関数を有するとして識別されていない基礎テーブルの前記列挙された選択された１つまたは複数のフィールドを列挙するＧＲＯＵＰ  ＢＹ句を前記ＳＥＬＥＣＴステートメントとともに含む請求項３３に記載の装置。
【請求項３５】
前記プログラミング命令は、実行時、前記グループ化派生テーブルと前記１つまたは複数のターゲット・テーブルから選択すべき選択されたフィールドまたは複数のフィールド、前記副照会を列挙する第２のＦＲＯＭ句、前記グループ化派生テーブルの識別子を列挙するＡＳ句と前記グループ化派生テーブル、前記１つまたは複数のターゲット・テーブルをそれぞれ接合する前記１つまたは複数のＪＯＩＮ句を装置が列挙することをさらに可能にする請求項３４に記載の装置。
【請求項３６】
前記集約関数がカウント関数（ＣＯＵＮＴ）、最小値識別関数（ＭＩＮ）、最大値識別関数（ＭＡＸ）、平均値計算関数（ＡＶＧ）と値合計関数（ＳＵＭ）の選択された１つである請求項２８に記載の装置。
【請求項３７】
前記プログラミング命令が、実行時、
前記第１のテーブルの前記第１の複数のフィールドを指定し、
前記指定された第１のフィールドの１つまたは複数をルックアップ・フィールドとして指示し、
前記指示されたルックアップ・フィールド用にターゲット・テーブルを指定するように装置をさらに動作させる請求項２８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理の分野に関する。より詳細には、本発明は、リレーショナル・データベースの多数のテーブルを伴うデータ処理オペレーションに関連付けられたデータ処理技法に関する。
【背景技術】
【０００２】
この２０〜３０年のうちに、リレーショナル・データベースはまず間違いなくデータベース管理における最も広く使用されるデータベース・モデルになっている。リレーショナル・データベースの増大する人気とともに、構造化照会言語（ＳＱＬ）はリレーショナル・データベースのテーブルに記憶されたデータにアクセスするための必須のツールになっている。
【０００３】
しかしながら、当業者なら諒解するように、意味のある適用のほとんどすべてのデータアクセスには、多数のテーブルに常駐するデータのアクセスと処理が必要になる。そのようなアクセスと処理では（ＳＥＬＥＣＴやＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントなど）ＳＱＬステートメントにＪＯＩＮ句を使用して、注目するテーブルを一緒に接合する必要がある。時々、ＪＯＩＮ句の使用に加えて、いくつかのデータ・グループ化オペレーションを実施するために照会を使用する必要がある。ＳＱＬを経験したプロのプログラマを除いて、テーブルの接合および／または副照会の使用を十分に理解しているか、または全く快適に感じるユーザはほとんどいないことが経験から分かっている。残念ながら、無計画な様式で多数のテーブルに分散したデータにアクセスし処理する必要のあるユーザの数は、快適にそうすることができる人々の数よりもはるかに多い。
【０００４】
最近、集積回路、マイクロプロセッサ、ネットワーキング、通信技術の進歩によりワールド・ワイド・ウェブ（ＷＷＷ）およびウェブ・ベース・アプリケーションが普及し、アクセス用のデータのより大きい格納装置も利用可能になっている。今度は、前に議論した知識または技能の隔たり問題がさらに拡大される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、データ処理技能が低くて済む、リレーショナル・データベースの多数のテーブルに分散したデータにアクセスし処理する改善された手法が望まれる。
【課題を解決するための手段】
【０００６】
第１の態様によれば、データ処理ステートメント中のルックトアップ・テーブル・フィールドを識別するためのソフトウェア構成要素が装備され、テーブル・フィールドをそこから基礎テーブルとルックアップされる１つまたは複数のターゲット・テーブルを接合する１つまたは複数の適切なＪＯＩＮ句をＳＱＬステートメントとともに自動的に含む。ＳＱＬステートメントは、たとえば、ＩＮＳＥＲＴ、ＳＥＬＥＣＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントとすることができる。
【０００７】
第２の態様によれば、それらの行をグループ化すべき非ルックトアップ・テーブル・フィールドとルックトアップ・テーブル・フィールド、およびデータ処理ステートメント中のそれらの行値に対して実施すべき集約関数を有するテーブル・フィールドを識別するためのソフトウェア構成要素が装備され、応答して、それらの行がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールド、およびルックトアップ・テーブル・フィールドをそこからグループ化派生テーブルとルックアップされる１つまたは複数のターゲット・テーブルを接合する１つまたは複数の適切なＪＯＩＮ句を備えるグループ化派生テーブルを生成するための副照会をＳＱＬステートメントとともに自動的に含み、ルックトアップ・フィールドの行をも効果的にグループ化する。ＳＱＬステートメントは、たとえば、ＩＮＳＥＲＴ、ＳＥＬＥＣＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントとすることができる。
【０００８】
一実施態様では、ルックトアップ・テーブル・フィールドは、ルックアップ・テーブル・フィールドに対応する第１のパート、および所定の特殊文字を使用して第１のパートに連結されたルックトアップ・テーブル・フィールドに対応する第２のパートを備えるマルチパート・フォームで表現される。
【０００９】
第３の態様によれば、ルックアップ・テーブル・フィールドの選択に応答して、ルックアップ・テーブル・フィールドのターゲット・テーブルのテーブル・フィールドをデータ処理オペレーションに含ませることができるようにテーブル・フィールドを自動的に拡大し、集約関数の選択を容易にするためのソフトウェア構成要素が装備される。
【発明を実施するための最良の形態】
【００１０】
様々な実施形態では、様々な態様が一部および／または全部組み合わせて実行される。
【００１１】
同じ参照符号が同様の要素を示す添付の図面に示される限定ではない例示的な実施形態によって本発明について説明する。
【００１２】
本発明は、ルックトアップ・テーブル・フィールドを指定するためのマルチパート・フォーマット、およびルックトアップ・テーブル・フィールドのサポートにおけるロジックを装備したソフトウェア構成要素を含み、データ・グループ化オペレーションの実施を含む、技能の少ないユーザが、リレーショナル・データベースの多数のテーブルに分散したデータにアクセスし処理するためにアプリケーションにアクセスし処理し、または発生することが容易になる。
【００１３】
理解しやすいように、本発明は主として、ＳＱＬ  ＳＥＬＥＣＴステートメントを参照するアプリケーション生成器のコンテキストで説明する。しかしながら、本発明はそのように限定されず、ＩＮＳＥＲＴ、ＳＥＬＥＣＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントなどのいくつかの他のＳＱＬステートメントで、様々な他のコンテキスト、たとえばデータベース照会機能で実行することができる。さらに、以下の説明では、本発明の様々な態様を説明し、特定の数、材料および構成を記載する。しかしながら、本発明は、一部または全部の態様で、および／またはこれらの特定の詳細の一部なしで実施することができる。他の例では、本発明を曖昧にしないために、よく知られている特徴を省略または簡略化する。
【００１４】
本発明は、当業者がそれらの仕事の要旨を他の当業者に伝達するために通常使用する方法に一致する、ステートメント、テーブル、フィールド、決定、識別、発生などの用語を使用して、プロセッサ・ベース・デバイスによって実施されるオペレーションに関して説明する。当業者がよく理解しているように、量は記憶、転送、結合、さもなければプロセッサ・ベース・デバイスの機械的、電気的および／または光構成要素によって操作が可能な電気、磁気、または光信号の形態をとる。さらに、プロセッサという用語はスタンドアロン、付加または内蔵されるマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサなどを含む。
【００１５】
様々なオペレーションは、本発明を理解するのに最も助けになる方法で、順に多数の離散的ステップとして説明するが、説明の順序は、これらのオペレーションが必ず順序依存であることを暗示するものと解釈すべきでない。特に、これらのオペレーションが提示の順序で実行される必要はない。
【００１６】
説明は、通常同じ実施形態を指さないが、指すこともある「一実施形態では」というフレーズを繰り返し使用する。本出願で使用する「備える」、「含む」、「有する」などの用語は類義語である。
【００１７】
概要
次に図１を参照すると、一実施形態による、本発明の教示と一体化したアプリケーション生成器のコンテキストで本発明の概要を示すブロック図が示されている。図示のように、アプリケーション生成器１０２は特に、データ処理オペレーションに関連付けられた入力構成要素１０４とＳＱＬステートメント生成器１０６を含む。アプリケーション開発者ユーザから受信した入力に従って、アプリケーション生成器１０２はアプリケーション１０８を発生する。アプリケーション１０８中にはＳＱＬステートメント１１０が含まれている。ＳＱＬステートメント１１０は、リレーショナル・データベース管理システム１１２を介して、データ、リレーショナル・データベース１１４内のデータを記憶するための複数のテーブル・フィールド（または単にフィールド）を有する様々なテーブル１１６を生成するためにアプリケーション１０８が使用する生成ステートメントを含む。ＳＱＬステートメント１１０はまた、適用可能な場合、データ・グループ化オペレーションを含む、（リレーショナル・データベース管理システム１１２を介して）様々なフィールドの記憶されたデータのために生成されたテーブル１１６にアクセスするためにアプリケーション１０８が使用するＳＥＬＥＣＴステートメントを含む。必要に応じて、ＳＱＬステートメント１１０はＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥ、さらに他のステートメントを含むことができる。
【００１８】
以下でより詳細に説明するように、本発明の第１の態様によれば、有利には、本発明のマルチパート・フォームで表現される、ルックトアップ・テーブル・フィールドをサポートするためのステートメント生成器１０６が装備される。サポートは特に、それらの行がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールドと（フィールドをそこからルックアップされる）ターゲット・テーブルを基礎テーブルまたは（ルックトアップ・テーブル・フィールドを効果的にグループ化する）グループ化派生テーブルに接合する適切なＪＯＩＮ句を備えるグループ化派生テーブルを生成するための適切な副照会の自動発生を含む。
【００１９】
以下でより詳細に説明するように、本発明の第２の態様によれば、データ処理オペレーションの入力構成要素１０４は有利には、データ処理オペレーションに含むためにアプリケーション開発者ユーザが選択するためのテーブルのフィールドを提示するために装備される。さらに、入力構成要素１０４は有利には、選択されたフィールドが上述のターゲット・テーブルをもつルックアップ・フィールドであると前に定義されている場合、ターゲット・テーブルのフィールドを含むための選択に利用可能なフィールドのリストを拡大するために装備される。さらに、一実施形態では入力構成要素１０４は有利には、選択されたフィールドの行値に対して実施するための集約オペレーションの選択を容易にするために装備される。集約オペレーションはカウント関数（ＣＯＵＮＴ）、最小値識別関数（ＭＩＮ）、最大値識別関数（ＭＡＸ）、平均値計算関数（ＡＶＧ）、値合計関数（ＳＵＭ）のいずれか１つとすることができる。
【００２０】
データ処理オペレーションは当技術分野で知られている任意のデータ処理オペレーションとすることができる。データ処理オペレーションの一例は報告発生である。データ処理オペレーションの別の例はスクリプトの形態の一連の処理オペレーションの実行である。したがって、入力構成要素１０４は報告生成器の構成要素、スクリプト・エディタの構成要素、または他のソフトウェア構成要素などとすることができる。
【００２１】
さらに、一実施形態では、第２の態様は、前に説明した第１の態様とともに実行される。すなわち、データ処理オペレーションで使用する、ルックトアップ・フィールドおよび／または集約オペレーションを含む、フィールドを選択するアプリケーション開発者ユーザの支援で、適切な副照会およびＪＯＩＮ句をもつ、ＳＥＬＥＣＴ、ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントなどのＳＱＬステートメントが集約される。
【００２２】
したがって、特に、データ・グループ化およびテーブル接合のトピック領域で、アプリケーション生成器１０２のアプリケーション開発者ユーザに必要なＳＱＬ知識は有利には縮小され、それによってアプリケーション開発者ユーザの生産性や経験が拡大するとともに、生成器１０２の利用性が強化される。
【００２３】
入力生成器１０４やＳＱＬステートメント生成器１０６が組み込まれた本発明の教示を除いて、アプリケーション生成器１０２は、特に、知られているウェブ・アプリケーション生成器、たとえば本発明の譲受人であるワシントン州シアトルのＷｅｓｔｓｉｄｅ社が提供しているウェブ・アプリケーション開発機能を含む、当技術分野で知られている広い範囲のアプリケーション生成器を表す。
【００２４】
同様に、アプリケーション１０８が本発明の受益者であること、すなわちそれらの適切な副照会およびＪＯＩＮ句が自動的に発生したそれらのＳＱＬステートメントの選択されたものを有することを除いて、アプリケーション１０８、リレーショナル・データベース管理システム１１２、リレーショナル・データベース１１４はすべて当技術分野で知られている広い範囲のこれらの要素を表す。特に、リレーショナル・データベース管理システム１１２は、たとえば、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ社が提供しているＳＱＬサーバ、カリフォルニア州レッドウッドのＯｒａｃｌｅ社が提供しているＯｒａｃｌｅデータベース管理システム、ニューヨーク州アーモンクのＩＢＭ社が提供しているデータベース２（ＤＢ２）、または同様の他のデータベース管理システム（ＲＤＢＭＳ）とすることができる。
【００２５】
マルチパート・ルックトアップ・フィールド
次に図２を参照すると、一実施形態による、本発明のマルチパート・ルックトアップ・テーブル・フィールドと、基礎テーブルやターゲット・テーブルに対する様々なパートとの間の関係が示されている。図示のように、この実施形態の場合、本発明のマルチパート・ルックトアップ・テーブル・フィールドは、（テーブルの外来キーとも呼ばれる）基礎テーブル中のルックアップ・フィールドに対応する第１のパート２２２と特殊文字２２６（たとえば「：」）を使用した第１のパート２２２に連結された（テーブルの主キーとも呼ばれる）ターゲット・テーブル中のルックトアップ・フィールドに対応する第２のパート２２４の、２つのパートで表現される。たとえば、
１）（ルックアップされる）「ｃｕｔｏｍｅｒ  ｄｅｓｃｒｉｐｔｉｏｎ」フィールドは
ｃｕｓｔｏｍｅｒ＿ｉｄ：ｃｕｔｏｍｅｒ＿ｄｅｓｃｒｉｐｔｉｏｎ
の形態で本発明下で表現することができる。
２）（ルックアップされる）「ｐｒｏｄｕｃｔ  ｄｅｓｃｒｉｐｔｉｏｎ」フィールドは
ｐｒｏｄｕｃｔ＿ｉｄ：ｐｒｏｄｕｃｔ＿ｄｅｓｃｒｉｐｔｉｏｎ
の形態で本発明下で表現することができ、または（ルックアップされる）「ｅｍｐｌｏｙｅｅ  ｎａｍｅ」フィールドはｅｍｐｌｏｙｅｅ＿ｉｄ：ｅｍｐｌｏｙｅｅ＿ｎａｍｅの形態で本発明下で表現することができる。前に言及し、図示したように、対応するルックアップ・フィールド２０４（または外来キー）は「基礎」テーブル２０２のメンバーであり、一方、対応するルックトアップ・フィールド２１４（または主キー）は「ターゲット」テーブル２０４のメンバーである。もちろん、各テーブル２０２または２０４は他のフィールド２０６および２１６を備えることができる。
【００２６】
代替実施形態では、３つ以上のパートを伴う慣例など、他の慣例を実行することができる。さらに、「接続詞」は、「〜」、「！」、「＠」、「＃」、「＄」、「％」、「＾」、「＆」、「＊」、「｜」、「＜」、「＞」、または「．」など、これらの特殊文字の多数の文字の選択された組合せ、たとえば「＜＞」、または非特殊文字をも使用して、他の特殊文字とすることができる。
【００２７】
一実施形態では、多数の接続詞が使用され、ある接続詞はＯｕｔｅｒ  ＪＯＩＮを示す「：」など、別の接続詞はＩｎｎｅｒ  ＪＯＩＮを示す「：：」などである。他の実施形態では、Ｕｎｉｏｎ  ＪＯＩＮなど、他のタイプのｊｏｉｎを示す追加の接続詞も実行することができる。
【００２８】
さらに、他の実施形態では、本発明のマルチパート・ルックトアップ・テーブル・フィールドは、３つ以上のパート、たとえば基礎テーブル中のルックアップ・フィールドに対応する第１のパート、第１のターゲット・テーブル中の第１のルックトアップ・フィールド（これはルックトアップ・フィールドとして使用される）に対応する第２のパート、第２のターゲット・テーブル中の第２のルックアップ・フィールドに対応する第３のパートの、３つのパートで表現することができる。前のように、異なるパートは特殊文字（たとえば「：」）を使用して互いに連結される。たとえば、ｐｒｏｄｕｃｔ＿ｉｄ：ｃａｔｅｇｏｒｙ＿ｉｄ：ｃａｔｅｇｏｒｙ＿ｎａｍｅは、ルックアップ・フィールド「ｐｒｏｄｕｃｔ＿ｉｄ」を使用してルックアップされるルックアップ・フィールド「ｃａｔｅｇｏｒｙ＿ｉｄ」を使用してルックアップされる、ルックトアップ・フィールド「ｃａｔｅｇｏｒｙ＿ｎａｍｅ」を特定する。
【００２９】
ＳＱＬステートメント発生
図３は、一実施形態による、データ・アクセス要求のコンテキストでの、図１のＳＱＬステートメント生成器１０６の関係する態様のオペレーション・フローを示す。この実施形態は、ＳＱＬステートメント生成器１０６が入力として非ＳＱＬ形態でデータ・アクセス要求ステートメントを受信することを保証する。一実施形態では、データ・アクセス要求ステートメントは
Ｔａｂｌｅ  Ｓｅｌｅｃｔ｛フィールド名［，フィールド名［．．．］］｝
のシンタックスを有する。
ここで、フィールド名は従来のフィールド名（たとえばｕｓｅｒ＿ｉｄ）またはフィールドの行値に対して実施されるべき列挙される集約オペレーション有りまたは無しで、本発明のマルチパート・ルックトアップ・フィールド名（たとえばｕｓｅｒ＿ｉｄ：ｕｓｅｒ  ｎａｍｅ）とすることができる。
【００３０】
しかしながら、前に言及したように、本発明は限定されず、他の実施形態では、本発明は、ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントなど、他のＳＱＬステートメントで実行することもでき、ならびに他の「要求」ステートメント・シンタックスも実行することができる。さらに他の実施形態では、要求の要旨は、たとえば関数呼出しまたはパラメータ送りの他の技法によって非ステートメント形態でＳＱＬステートメント生成器１０６に伝達することもできる。
【００３１】
図３に示すように、この実施形態の場合、関連するオペレーション・フローはオペレーション３０２から始まり、そこで生成器１０６は、たとえば入力ステートメント中の要素をトークン化するために入力ステートメントを解析する。その後、この実施形態の場合、生成器１０６はオペレーション３０４で入力ステートメント中の１つまたは複数のテーブル・フィールドを識別する。さらに、生成器１０６はオペレーション３０６でフィールドが「標準の」（すなわち非ルックトアップの）１つまたは複数のテーブル・フィールドであるかまたはフィールドがルックトアップ・フィールドであるかを識別する。一実施形態では、マルチパート・ルックトアップ・フィールドの所定のシンタックスに基づいて決定がなされる。この実施形態の場合、生成器１０６はまたオペレーション３０７で、列挙されたフィールドの行値に対して集約オペレーションを実施すべきかどうかを識別する。列挙されたフィールドの少なくとも１つまたは複数がそれらの行値を集約するべき場合、残りの非ルックトアップ・フィールドおよびルックトアップ・フィールドがグループ化されるべきと考えられ、非ルックトアップ・フィールドのグループ化がルックトアップ・フィールドのグループ化と差別化される。
【００３２】
ブロック３０８および３１０で、生成器１０６は、「標準の」または非ルックトアップの１つまたは複数のフィールドのメンバーである（前に基礎テーブルとも呼ばれた）テーブルと指定されたルックトアップ・フィールドをそこからルックアップされる（前にターゲット・テーブルとも呼ばれた）テーブルを識別する。様々な実施形態では、生成器１０６はデータ・ディクショナリ（図示せず）にアクセスすることによってテーブル・メンバーシップを識別する。これらの実施形態の一部では、生成器１０６はデータ・ディクショナリの少なくともワーク・コピーを維持する。
【００３３】
その後、前に説明したように、標準の（非ルックトアップの）フィールドおよびルックトアップ・フィールドのメンバーであるそれぞれのテーブルを識別すると、生成器１０６はブロック３１２で、関数等価ＳＱＬ  ＳＥＬＥＣＴステートメントを自動的に発生し、選択すべきフィールド、Ｆｒｏｍ句、基礎テーブル、適用可能な場合、ＪＯＩＮ句およびターゲット・テーブル、ならびに接合されたテーブルの行の接合を支配する条件を含む関連付けられたＯＮ句を列挙する。しかしながら、１つまたは複数の集約関数が１つまたは複数の対応するフィールドに対して指定された場合、生成器１０６はさらに、それらの行値がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールドのグループ化されたフィールドを備えるグループ化派生テーブルを生成するための副照会を自動的に発生する。副照会自体は、集約されたそれらの行値に対するそれらのフィールドに対する指定された集約関数、基礎テーブルを列挙するＦＲＯＭ句、集約オペレーションをそれらの行値に対して実行させるように指定されていない非ルックトアップ・フィールドを列挙するＧＲＯＵＰ  ＢＹ句を含む、基礎テーブルから選択すべき非ルックトアップ・フィールドを列挙するＳＥＬＥＣＴステートメントである。グループ化派生テーブルの識別子を列挙するＡＳ句と一緒に副照会はＳＱＬステートメントの前述のＦＲＯＭ句中の基礎テーブルを交換する。すなわち、ターゲット・テーブルを基礎テーブルに接合する代わりに、ＪＯＩＮ句はターゲット・テーブルをグループ化派生テーブルに接合し、それによってルックトアップ・テーブル・フィールドを効果的にグループ化する。
【００３４】
たとえば、
（ａ）入力ステートメントＴａｂｌｅ  Ｓｅｌｅｃｔ｛ｓｔｕｄｅｎｔ＿ｉｄ，ｃｌａｓｓ＿ｉｄ：ｃｌａｓｓ−ｎａｍｅ，ｔｅａｃｈｅｒ＿ｉｄ：ｔｅａｃｈｅｒ＿ｎａｍｅ，｝に対して、生成器１０６はＳＥＬＥＣＴｅｎｒｏｌｌｍｅｎｔ．ｓｔｕｄｅｎｔ＿ｉｄ，ｃｌａｓｓ．ｃｌａｓｓ＿ｎａｍｅ，ｔｅａｃｈｅｒ．ｔｅａｃｈｅｒ＿ｎａｍｅ  ＦＲＯＭ  ｅｎｒｏｌｍｅｎｔ  ＬＥＦＴ  ＯＵＴＥＲ  ＪＯＩＮ  ｃｌａｓｓ  ＯＮ  ｅｎｒｏｌｌｍｅｎｔ．ｃｌａｓｓ−ｉｄ＝ｃｌａｓｓ．ｃｌａｓｓ＿ｉｄ  ＬＥＦＴ  ＯＵＴＥＲ  ＪＯＩＮ  ｔｅａｃｈｅｒ  ＯＮ  ｅｎｒｏｌｌｍｅｎｔ．ｔｅａｃｈｅｒ＿ｉｄ＝ｔｅａｃｈｅｒ．ｔｅａｃｈｅｒ＿ｉｄを発生する。
（ｂ）入力ステートメントＴａｂｌｅ  Ｓｅｌｅｃｔ｛ｏｒｄｅｒ＿ｎｏ，ｐｒｏｄｕｃｔ＿ｉｄ：ｐｒｏｄｕｃｔ＿ｎａｍｅ，ｐｒｏｄｕｃｔ＿ｉｄ：ｃａｔｅｇｏｒｙ＿ｉｄ：ｃａｔｅｇｏｒｙ＿ｎａｍｅ｝に対して、生成器１０６はＳＥＬＥＣＴ  ｏｒｄｅｒ＿ｉｔｅｍｓ．ｏｒｄｅｒ＿ｎｏ，ｐｒｏｄｕｃｔｓ．ｐｒｏｄｕｃｔ＿ｎａｍｅ，ｃａｔｅｇｏｒｉｅｓ．ｃａｔｅｇｏｒｙ＿ｎａｍｅ  ＦＲＯＭ（ｏｒｄｅｒ＿ｉｔｅｍｓ  ＬＥＦＴ  ＯＵＴＥＲ  ＪＯＩＮ  ｐｒｏｄｕｃｔｓ  ＯＮ  ｏｒｄｅｒ＿ｉｔｅｍｓ．ｐｒｏｄｕｃｔ＿ｉｄ＝ｐｒｏｄｕｃｔｓ．ｐｒｏｄｕｃｔ＿ｉｄ）ＬＥＦＴ  ＯＵＴＥＲ  ＪＯＩＮ  ｃａｔｅｇｏｒｉｅｓ  ＯＮ  ｐｒｏｄｕｃｔｓ．ｃａｔｅｇｏｒｙ＿ｉｄ＝ｃａｔｅｇｏｒｉｅｓ．ｃａｔｅｇｏｒｙ＿ｉｄ（“ｏｒｄｅｒ＿ｉｔｅｍｓ”，“ｐｒｏｄｕｃｔｓ”ａｎｄ“ｃａｔｅｇｏｒｉｅｓ”ａｒｅ  ｔｈｅ  ｔａｂｌｅ  ｎａｍｅｓを発生する。
（ｃ）入力ステートメントＴａｂｌｅ  Ｓｅｌｅｃｔ｛ｔａｓｋ＿ｎａｍｅ，ａｓｓｉｇｎｅｄ  ｔｏ：ｕｓｅｒ＿ｎａｍｅ，ｏｐｅｎｅｄ  ｂｙ：ｕｓｅｒ＿ｎａｍｅ｝に対して、生成器１０６はＳＥＬＥＣＴｔａｓｋｓ．ｔａｓｋ＿ｎａｍｅ，ｕｓｅｒｓ＿１．ｕｓｅｒ＿ｎａｍｅ，ｕｓｅｒｓ＿２．ｕｓｅｒ＿ｎａｍｅ  ＦＲＯＭ  ｔａｓｋｓ  ＬＥＦＴ  ＯＵＴＥＲ  ＪＯＩＮ  ｕｓｅｒｓ  ｕｓｅｒｓ＿１  ＯＮ  ｔａｓｋｓ．ａｓｓｉｇｎｅｄｔｏ＝ｕｓｅｒｓ＿１．ｕｓｅｒ＿ｉｄ  ＬＥＦＴ  ＯＵＴＥＲ  ＪＯＩＮ  ｕｓｅｒｓ  ｕｓｅｒｓ＿２  ＯＮ  ｔａｓｋｓ．ｏｐｅｎｅｄｂｙ＝ｕｓｅｒｓ＿２．ｕｓｅｒ＿ｉｄを発生する。
（ｄ）入力ステートメントＴａｂｌｅ  Ｓｅｌｅｃｔ｛ｃｕｓｔ＿ｉｄ：ｃｕｓｔ＿ｎａｍｅ，ｃｕｓｔ  ｉｄ：ｃｕｓｔ＿ｉｎｆｏ，ｃｕｓｔ＿ｉｄ，ｓｕｍ（ｏｒｄｅｒ＿ｖａｌｕｅ）｝に対して、生成器１０６はＳＥＬＥＣＴｃｕｓｔｏｍｅｒ．ｃｕｓｔ＿ｎａｍｅ，ｃｕｓｔｏｍｅｒ．ｃｕｓｔ＿ｉｎｆｏ，ｇｒｏｕｐｅｄ＿ｔａｂｌｅ．ｃｕｓｔ＿ｉｄ，ｇｒｏｕｐｅｄ＿ｔａｂｌｅ．ｓｕｍ＿ｖａｌｕｅ  ＦＲＯＭ（ＳＥＬＥＣＴ  ｏｒｄｅｒ．ｃｕｓｔ＿ｉｄ，ＳＵＭ（ｏｒｄｅｒ．ｏｒｄｅｒ＿ｖａｌｕｅ）ｓｕｍ＿ｖａｌｕｅ  ＦＲＯＭ  ｏｒｄｅｒ  ＧＲＯＵＰ  ＢＹ  ｏｒｄｅｒ．ｃｕｓｔ＿ｉｄ）ＡＳ  ｇｒｏｕｐｅｄ＿ｔａｂｌｅ  ＬＥＦＴ  ＯＵＴＥＲ  ＪＯＩＮ  ｃｕｓｔｏｍｅｒ  ＯＮ  ｇｒｏｕｐ＿ｔａｂｌｅ．ｃｕｓｔ＿ｉｄ＝ｃｕｓｔｏｍｅｒ．ｃｕｓｔ＿ｉｄを発生する。
【００３５】
フィールド選択
図４ａ〜図４ｃは、一実施形態による、本発明のマルチパート・ルックトアップ・フィールドの使用を含む、データ処理オペレーション用にフィールドと集約関数を選択するための例であるユーザ・インターフェースを示す。この実施形態は、テーブル定義のうちに、フィールドをルックアップ・フィールドとして指示することができ、各ルックアップ・フィールドは指示されたターゲット・テーブルを有することを仮定する。いくつかのユーザ・インターフェースとサポート・ロジックのいずれか１つを、そのような定義を容易にするために実行することができる。主題は本発明の範囲を越えており、当業者の能力で十分できるので、そのような定義機能については説明しない。
【００３６】
図４ａはこのユーザ・インターフェースの第１の状態４０２ａを示し、適格のテーブル・フィールド４０６ａのリスト４０４ａはまず、前に説明したように、たとえば報告発生オペレーションとすることができるデータ処理オペレーションに含むための選択のためにアプリケーション開発者ユーザに最初に提示される。フィールド４０６ａは特に事前定義されたルックアップ・フィールド４０８ａであるフィールドを含むことができる。これらの実施形態の場合、選択されたフィールド４１６ａは「エコー」され、領域４１４ａに表示される。
【００３７】
図４ｂはこのユーザ・インターフェースの第２の状態４０２ｂを示し、ルックアップ・フィールド４０８ａの１つを選択すると、適格のテーブル・フィールド４０６ｂのリスト４０４ｂは選択されたルックアップ・フィールドの指示されたターゲット・テーブルのテーブル・フィールドを含むように拡大される。この実施形態の場合、ルックアップされる追加されたテーブル・フィールドは有利には、本発明のマルチパート・ルックトアップ・フィールド名、たとえばｌｏｏｋ−ｕｐ＿ｆｉｅｌｄ：ｌｏｏｋｅｄｕｐ＿ｆｉｅｌｄを使用して表示される。この実施形態の場合、選択されたフィールド４１６ｂは「エコー」され、領域４１４ｂに表示されたままであった。
【００３８】
図４ｃはこのユーザ・インターフェースの第３の状態４０２ｃを示し、（たとえば選択されたフィールドを右クリックすることによって）選択されたフィールドの行値に対する集約関数を選択する要望を示すと、いくつかの集約オペレーションを列挙するポップアップ・ウィンドウ４２２ｃが、選択された集約オペレーションを選択されたフィールドの行値に対して実施させるためのユーザ選択のために提示される。図示のように、この実施形態の場合、集約関数は前述のＣＯＵＮＴ、ＭＩＮ、ＭＡＸ、ＳＵＭおよびＡＶＥ関数を含む。
【００３９】
図５は一実施形態による、入力構成要素１０４の関係する態様のオペレーショナル・フローを示す。前に図示し、言及したように、初期にブロック５０２で、入力構成要素１０４はデータ処理オペレーションに含むためにアプリケーション開発者ユーザによる選択のためにフィールドの第１のリストを提示する。次いで入力構成要素１０４はブロック５０４、５１１、５１２で、リストされたフィールド、選択されたフィールドの集約関数を選択するユーザ要求またはオペレーションの終了の指示の１つのユーザ選択を待つ。
【００４０】
ブロック５０４のｙｅｓブランチで、ユーザ選択を受信すると、入力構成要素１０４はブロック５０６で、選択されたフィールドが定義されたルックアップ・フィールドであるかどうかを判定する。選択されたフィールドが定義されたルックアップ・フィールドであると判定された場合、入力構成要素１０４はブロック５１０で、事前指示されたターゲット・テーブルのフィールドを検索し、検索されたフィールドをユーザ選択のために利用可能なフィールドのリストに追加する。その他の場合、入力構成要素１０４はブロック５０８で、選択されたフィールドと選択されたフィールドがメンバーであるテーブルを単に記述する。
【００４１】
選択されたフィールド用の集約関数を指定するためにユーザ要求を受信すると、入力構成要素１０４はブロック５１３で、選択されたフィールドの行値に対して実施すべき集約オペレーション指定するためのユーザによる選択のためにいくつかの集約関数とともに列挙されるポップアップ・ウィンドウを提示する。
【００４２】
一実施形態では、収集された情報は続いて、ＪＯＩＮとＯＮ句とともに特に適切な副照会を含む、関数等価ＳＱＬ  ＳＥＬＥＣＴステートメントを自動的に発生するためにＳＱＬ生成器１０６に提供される。
【００４３】
一実施形態では、収集された情報は、前述のＴａｂｌｅ  ＳｅｌｅｃｔステートメントのシンタックスでＳＱＬ生成器１０６に提供される。別の実施形態では、収集された情報は関数呼出しを介してＳＱＬ生成器１０６に提供される。
【００４４】
コンピュータ・システムの例
図６は一実施形態による本発明を実行するために使用するのに適した例であるコンピュータ・システムを示す。図示のように、コンピュータ・システム６００は１つまたは複数のプロセッサ６０２とシステム・メモリ６０４を含む。さらに、コンピュータ・システム６００は大容量記憶装置６０６（ディスケット、ハード・ドライブ、ＣＤＲＯＭなど）、入出力デバイス６０８（キーボード、カーソル制御など）および通信インターフェース６１０（ネットワーク・インターフェース・カード、モデムなど）を含む。要素は１つまたは複数のバスを表すシステム・バス６１２を介して互いに結合される。多数のバスの場合、それらは１つまたは複数のバス・ブリッジ（図示せず）によってブリッジされる。これらの要素の各々は当技術分野で知られている従来の機能を実施する。特に、システム・メモリ６０４を介して大容量記憶装置６０６は本発明の教示と一体化されたソフトウェア構成要素（たとえば入力構成要素１０４および／またはＳＱＬステートメント生成器１０６）を実装するプログラミング命令の作業コピーおよび永久コピーを記憶するために使用される。プログラミング命令の永久コピーは前述のように、配布媒体（図示せず）を介してまたは（配布サーバ（図示せず）から）通信インターフェース６１０を介してファクトリ中またはフィールド中の大容量記憶装置６０６中にロードすることができる。これらの要素６０２〜６１２の構成は知られており、したがってそれ以上説明しない。
【００４５】
結論および結び
以上、リレーショナル・データベースの多数のテーブル中に配設されたデータにアクセスし処理する改善された方法および装置について説明した。本発明については上記の実施形態に関して説明したが、本発明は説明した実施形態に限定されないことを当業者なら認識するであろう。本発明は、首記の特許請求の範囲の趣旨および範囲内で修正および改変して実行することができる。たとえば、本発明のマルチパート・ルックトアップ・フィールド名は、上述のＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥステートメントに加えて、ＷＨＥＲＥ、ＧＲＯＵＰ  ＢＹおよびＳＯＲＴ句など、他のＳＱＬステートメントおよび／または句の使い易さを改善するために使用することができる。したがって、説明は本発明を限定するのではなく例示するものと考えるべきである。
【図面の簡単な説明】
【００４６】
【図１】一実施形態による、アプリケーション生成器のコンテキストでの本発明の概要を示す図である。
【図２】本発明のマルチパート・フォームを使用して参照されるルックトアップ・フィールドとともに、ルックアップ・フィールドとルックとアップ・フィールドの概念を示す図である。
【図３】一実施形態による、本発明のマルチパート・ルックトアップ・フィールド用のサポートと一体化された、図１のＳＱＬ生成器の関係する態様のオペレーショナル・フローを示す図である。
【図４ａ】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図４ｂ】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図４ｃ】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図５】一実施形態による、図４ａ〜図４ｂのユーザ入力インターフェースのサポートにおける図１の入力構成要素の関係する態様のオペレーショナル・フローを示す図である。
【図６】一実施形態による、本発明を実行するために使用するのに適したコンピュータ・システムの内部構成要素図を示す図である。
【図１】
2005507121.tif 000003
【図２】
2005507121.tif 000004
【図３】
2005507121.tif 000005
【図４ａ】
2005507121.tif 000006
【図４ｂ】
2005507121.tif 000007
【図４ｃ】
2005507121.tif 000008
【図５】
2005507121.tif 000009
【図６】
2005507121.tif 000010
【国際公開パンフレット】
2005507121.tif 000011
2005507121.tif 000012
2005507121.tif 000013
2005507121.tif 000014
2005507121.tif 000015
2005507121.tif 000016
2005507121.tif 000017
2005507121.tif 000018
2005507121.tif 000019
2005507121.tif 000020
2005507121.tif 000021
2005507121.tif 000022
2005507121.tif 000023
2005507121.tif 000024
2005507121.tif 000025
2005507121.tif 000026
2005507121.tif 000027
2005507121.tif 000028
2005507121.tif 000029
2005507121.tif 000030
2005507121.tif 000031
2005507121.tif 000032
2005507121.tif 000033
2005507121.tif 000034
2005507121.tif 000035
2005507121.tif 000036
2005507121.tif 000037
2005507121.tif 000038
2005507121.tif 000039
2005507121.tif 000040
2005507121.tif 000041
【国際調査報告】
2005507121.tif 000042
2005507121.tif 000043