JP2005507121A - マルチパート・ルックトアップ・テーブル・フィールドおよびリレーショナル・データベースの多数のテーブルを伴うデータ処理オペレーションにおけるその使用法 - Google Patents
マルチパート・ルックトアップ・テーブル・フィールドおよびリレーショナル・データベースの多数のテーブルを伴うデータ処理オペレーションにおけるその使用法 Download PDFInfo
- Publication number
- JP2005507121A JP2005507121A JP2003538938A JP2003538938A JP2005507121A JP 2005507121 A JP2005507121 A JP 2005507121A JP 2003538938 A JP2003538938 A JP 2003538938A JP 2003538938 A JP2003538938 A JP 2003538938A JP 2005507121 A JP2005507121 A JP 2005507121A
- Authority
- JP
- Japan
- Prior art keywords
- field
- fields
- lookup
- statement
- looked
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2423—Interactive query statement specification based on a database schema
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Abstract
装置は、グループ化すべき非ルックトアップ・テーブル・フィールドとSQLステートメント中のそれらの行値に実施すべき集約関数(307)を有するテーブル・フィールドを識別し、グループ化された非ルックトアップ・テーブル・フィールド(311)と集約されたテーブル・フィールドとテーブル・フィールドをそこからグループ化派生テーブルとルックアップされる1つまたは複数のターゲット・テーブルを接合する1つまたは複数の適切なJOIN句(312)を備えるグループ化派生テーブルを発生する副照会をFSQLステートメントとともに自動的に含む。
Description
【技術分野】
【0001】
本発明はデータ処理の分野に関する。より詳細には、本発明は、リレーショナル・データベースの多数のテーブルを伴うデータ処理オペレーションに関連付けられたデータ処理技法に関する。
【背景技術】
【0002】
この20〜30年のうちに、リレーショナル・データベースはまず間違いなくデータベース管理における最も広く使用されるデータベース・モデルになっている。リレーショナル・データベースの増大する人気とともに、構造化照会言語(SQL)はリレーショナル・データベースのテーブルに記憶されたデータにアクセスするための必須のツールになっている。
【0003】
しかしながら、当業者なら諒解するように、意味のある適用のほとんどすべてのデータアクセスには、多数のテーブルに常駐するデータのアクセスと処理が必要になる。そのようなアクセスと処理では(SELECTやINSERT、UPDATE、DELETEステートメントなど)SQLステートメントにJOIN句を使用して、注目するテーブルを一緒に接合する必要がある。時々、JOIN句の使用に加えて、いくつかのデータ・グループ化オペレーションを実施するために照会を使用する必要がある。SQLを経験したプロのプログラマを除いて、テーブルの接合および/または副照会の使用を十分に理解しているか、または全く快適に感じるユーザはほとんどいないことが経験から分かっている。残念ながら、無計画な様式で多数のテーブルに分散したデータにアクセスし処理する必要のあるユーザの数は、快適にそうすることができる人々の数よりもはるかに多い。
【0004】
最近、集積回路、マイクロプロセッサ、ネットワーキング、通信技術の進歩によりワールド・ワイド・ウェブ(WWW)およびウェブ・ベース・アプリケーションが普及し、アクセス用のデータのより大きい格納装置も利用可能になっている。今度は、前に議論した知識または技能の隔たり問題がさらに拡大される。
【発明の開示】
【発明が解決しようとする課題】
【0005】
したがって、データ処理技能が低くて済む、リレーショナル・データベースの多数のテーブルに分散したデータにアクセスし処理する改善された手法が望まれる。
【課題を解決するための手段】
【0006】
第1の態様によれば、データ処理ステートメント中のルックトアップ・テーブル・フィールドを識別するためのソフトウェア構成要素が装備され、テーブル・フィールドをそこから基礎テーブルとルックアップされる1つまたは複数のターゲット・テーブルを接合する1つまたは複数の適切なJOIN句をSQLステートメントとともに自動的に含む。SQLステートメントは、たとえば、INSERT、SELECT、UPDATE、DELETEステートメントとすることができる。
【0007】
第2の態様によれば、それらの行をグループ化すべき非ルックトアップ・テーブル・フィールドとルックトアップ・テーブル・フィールド、およびデータ処理ステートメント中のそれらの行値に対して実施すべき集約関数を有するテーブル・フィールドを識別するためのソフトウェア構成要素が装備され、応答して、それらの行がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールド、およびルックトアップ・テーブル・フィールドをそこからグループ化派生テーブルとルックアップされる1つまたは複数のターゲット・テーブルを接合する1つまたは複数の適切なJOIN句を備えるグループ化派生テーブルを生成するための副照会をSQLステートメントとともに自動的に含み、ルックトアップ・フィールドの行をも効果的にグループ化する。SQLステートメントは、たとえば、INSERT、SELECT、UPDATE、DELETEステートメントとすることができる。
【0008】
一実施態様では、ルックトアップ・テーブル・フィールドは、ルックアップ・テーブル・フィールドに対応する第1のパート、および所定の特殊文字を使用して第1のパートに連結されたルックトアップ・テーブル・フィールドに対応する第2のパートを備えるマルチパート・フォームで表現される。
【0009】
第3の態様によれば、ルックアップ・テーブル・フィールドの選択に応答して、ルックアップ・テーブル・フィールドのターゲット・テーブルのテーブル・フィールドをデータ処理オペレーションに含ませることができるようにテーブル・フィールドを自動的に拡大し、集約関数の選択を容易にするためのソフトウェア構成要素が装備される。
【発明を実施するための最良の形態】
【0010】
様々な実施形態では、様々な態様が一部および/または全部組み合わせて実行される。
【0011】
同じ参照符号が同様の要素を示す添付の図面に示される限定ではない例示的な実施形態によって本発明について説明する。
【0012】
本発明は、ルックトアップ・テーブル・フィールドを指定するためのマルチパート・フォーマット、およびルックトアップ・テーブル・フィールドのサポートにおけるロジックを装備したソフトウェア構成要素を含み、データ・グループ化オペレーションの実施を含む、技能の少ないユーザが、リレーショナル・データベースの多数のテーブルに分散したデータにアクセスし処理するためにアプリケーションにアクセスし処理し、または発生することが容易になる。
【0013】
理解しやすいように、本発明は主として、SQL SELECTステートメントを参照するアプリケーション生成器のコンテキストで説明する。しかしながら、本発明はそのように限定されず、INSERT、SELECT、UPDATE、DELETEステートメントなどのいくつかの他のSQLステートメントで、様々な他のコンテキスト、たとえばデータベース照会機能で実行することができる。さらに、以下の説明では、本発明の様々な態様を説明し、特定の数、材料および構成を記載する。しかしながら、本発明は、一部または全部の態様で、および/またはこれらの特定の詳細の一部なしで実施することができる。他の例では、本発明を曖昧にしないために、よく知られている特徴を省略または簡略化する。
【0014】
本発明は、当業者がそれらの仕事の要旨を他の当業者に伝達するために通常使用する方法に一致する、ステートメント、テーブル、フィールド、決定、識別、発生などの用語を使用して、プロセッサ・ベース・デバイスによって実施されるオペレーションに関して説明する。当業者がよく理解しているように、量は記憶、転送、結合、さもなければプロセッサ・ベース・デバイスの機械的、電気的および/または光構成要素によって操作が可能な電気、磁気、または光信号の形態をとる。さらに、プロセッサという用語はスタンドアロン、付加または内蔵されるマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサなどを含む。
【0015】
様々なオペレーションは、本発明を理解するのに最も助けになる方法で、順に多数の離散的ステップとして説明するが、説明の順序は、これらのオペレーションが必ず順序依存であることを暗示するものと解釈すべきでない。特に、これらのオペレーションが提示の順序で実行される必要はない。
【0016】
説明は、通常同じ実施形態を指さないが、指すこともある「一実施形態では」というフレーズを繰り返し使用する。本出願で使用する「備える」、「含む」、「有する」などの用語は類義語である。
【0017】
概要
次に図1を参照すると、一実施形態による、本発明の教示と一体化したアプリケーション生成器のコンテキストで本発明の概要を示すブロック図が示されている。図示のように、アプリケーション生成器102は特に、データ処理オペレーションに関連付けられた入力構成要素104とSQLステートメント生成器106を含む。アプリケーション開発者ユーザから受信した入力に従って、アプリケーション生成器102はアプリケーション108を発生する。アプリケーション108中にはSQLステートメント110が含まれている。SQLステートメント110は、リレーショナル・データベース管理システム112を介して、データ、リレーショナル・データベース114内のデータを記憶するための複数のテーブル・フィールド(または単にフィールド)を有する様々なテーブル116を生成するためにアプリケーション108が使用する生成ステートメントを含む。SQLステートメント110はまた、適用可能な場合、データ・グループ化オペレーションを含む、(リレーショナル・データベース管理システム112を介して)様々なフィールドの記憶されたデータのために生成されたテーブル116にアクセスするためにアプリケーション108が使用するSELECTステートメントを含む。必要に応じて、SQLステートメント110はINSERT、UPDATE、DELETE、さらに他のステートメントを含むことができる。
【0018】
以下でより詳細に説明するように、本発明の第1の態様によれば、有利には、本発明のマルチパート・フォームで表現される、ルックトアップ・テーブル・フィールドをサポートするためのステートメント生成器106が装備される。サポートは特に、それらの行がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールドと(フィールドをそこからルックアップされる)ターゲット・テーブルを基礎テーブルまたは(ルックトアップ・テーブル・フィールドを効果的にグループ化する)グループ化派生テーブルに接合する適切なJOIN句を備えるグループ化派生テーブルを生成するための適切な副照会の自動発生を含む。
【0019】
以下でより詳細に説明するように、本発明の第2の態様によれば、データ処理オペレーションの入力構成要素104は有利には、データ処理オペレーションに含むためにアプリケーション開発者ユーザが選択するためのテーブルのフィールドを提示するために装備される。さらに、入力構成要素104は有利には、選択されたフィールドが上述のターゲット・テーブルをもつルックアップ・フィールドであると前に定義されている場合、ターゲット・テーブルのフィールドを含むための選択に利用可能なフィールドのリストを拡大するために装備される。さらに、一実施形態では入力構成要素104は有利には、選択されたフィールドの行値に対して実施するための集約オペレーションの選択を容易にするために装備される。集約オペレーションはカウント関数(COUNT)、最小値識別関数(MIN)、最大値識別関数(MAX)、平均値計算関数(AVG)、値合計関数(SUM)のいずれか1つとすることができる。
【0020】
データ処理オペレーションは当技術分野で知られている任意のデータ処理オペレーションとすることができる。データ処理オペレーションの一例は報告発生である。データ処理オペレーションの別の例はスクリプトの形態の一連の処理オペレーションの実行である。したがって、入力構成要素104は報告生成器の構成要素、スクリプト・エディタの構成要素、または他のソフトウェア構成要素などとすることができる。
【0021】
さらに、一実施形態では、第2の態様は、前に説明した第1の態様とともに実行される。すなわち、データ処理オペレーションで使用する、ルックトアップ・フィールドおよび/または集約オペレーションを含む、フィールドを選択するアプリケーション開発者ユーザの支援で、適切な副照会およびJOIN句をもつ、SELECT、INSERT、UPDATE、DELETEステートメントなどのSQLステートメントが集約される。
【0022】
したがって、特に、データ・グループ化およびテーブル接合のトピック領域で、アプリケーション生成器102のアプリケーション開発者ユーザに必要なSQL知識は有利には縮小され、それによってアプリケーション開発者ユーザの生産性や経験が拡大するとともに、生成器102の利用性が強化される。
【0023】
入力生成器104やSQLステートメント生成器106が組み込まれた本発明の教示を除いて、アプリケーション生成器102は、特に、知られているウェブ・アプリケーション生成器、たとえば本発明の譲受人であるワシントン州シアトルのWestside社が提供しているウェブ・アプリケーション開発機能を含む、当技術分野で知られている広い範囲のアプリケーション生成器を表す。
【0024】
同様に、アプリケーション108が本発明の受益者であること、すなわちそれらの適切な副照会およびJOIN句が自動的に発生したそれらのSQLステートメントの選択されたものを有することを除いて、アプリケーション108、リレーショナル・データベース管理システム112、リレーショナル・データベース114はすべて当技術分野で知られている広い範囲のこれらの要素を表す。特に、リレーショナル・データベース管理システム112は、たとえば、ワシントン州レドモンドのMicrosoft社が提供しているSQLサーバ、カリフォルニア州レッドウッドのOracle社が提供しているOracleデータベース管理システム、ニューヨーク州アーモンクのIBM社が提供しているデータベース2(DB2)、または同様の他のデータベース管理システム(RDBMS)とすることができる。
【0025】
マルチパート・ルックトアップ・フィールド
次に図2を参照すると、一実施形態による、本発明のマルチパート・ルックトアップ・テーブル・フィールドと、基礎テーブルやターゲット・テーブルに対する様々なパートとの間の関係が示されている。図示のように、この実施形態の場合、本発明のマルチパート・ルックトアップ・テーブル・フィールドは、(テーブルの外来キーとも呼ばれる)基礎テーブル中のルックアップ・フィールドに対応する第1のパート222と特殊文字226(たとえば「:」)を使用した第1のパート222に連結された(テーブルの主キーとも呼ばれる)ターゲット・テーブル中のルックトアップ・フィールドに対応する第2のパート224の、2つのパートで表現される。たとえば、
1)(ルックアップされる)「cutomer description」フィールドは
customer_id:cutomer_description
の形態で本発明下で表現することができる。
2)(ルックアップされる)「product description」フィールドは
product_id:product_description
の形態で本発明下で表現することができ、または(ルックアップされる)「employee name」フィールドはemployee_id:employee_nameの形態で本発明下で表現することができる。前に言及し、図示したように、対応するルックアップ・フィールド204(または外来キー)は「基礎」テーブル202のメンバーであり、一方、対応するルックトアップ・フィールド214(または主キー)は「ターゲット」テーブル204のメンバーである。もちろん、各テーブル202または204は他のフィールド206および216を備えることができる。
【0026】
代替実施形態では、3つ以上のパートを伴う慣例など、他の慣例を実行することができる。さらに、「接続詞」は、「〜」、「!」、「@」、「#」、「$」、「%」、「^」、「&」、「*」、「|」、「<」、「>」、または「.」など、これらの特殊文字の多数の文字の選択された組合せ、たとえば「<>」、または非特殊文字をも使用して、他の特殊文字とすることができる。
【0027】
一実施形態では、多数の接続詞が使用され、ある接続詞はOuter JOINを示す「:」など、別の接続詞はInner JOINを示す「::」などである。他の実施形態では、Union JOINなど、他のタイプのjoinを示す追加の接続詞も実行することができる。
【0028】
さらに、他の実施形態では、本発明のマルチパート・ルックトアップ・テーブル・フィールドは、3つ以上のパート、たとえば基礎テーブル中のルックアップ・フィールドに対応する第1のパート、第1のターゲット・テーブル中の第1のルックトアップ・フィールド(これはルックトアップ・フィールドとして使用される)に対応する第2のパート、第2のターゲット・テーブル中の第2のルックアップ・フィールドに対応する第3のパートの、3つのパートで表現することができる。前のように、異なるパートは特殊文字(たとえば「:」)を使用して互いに連結される。たとえば、product_id:category_id:category_nameは、ルックアップ・フィールド「product_id」を使用してルックアップされるルックアップ・フィールド「category_id」を使用してルックアップされる、ルックトアップ・フィールド「category_name」を特定する。
【0029】
SQLステートメント発生
図3は、一実施形態による、データ・アクセス要求のコンテキストでの、図1のSQLステートメント生成器106の関係する態様のオペレーション・フローを示す。この実施形態は、SQLステートメント生成器106が入力として非SQL形態でデータ・アクセス要求ステートメントを受信することを保証する。一実施形態では、データ・アクセス要求ステートメントは
Table Select{フィールド名[,フィールド名[...]]}
のシンタックスを有する。
ここで、フィールド名は従来のフィールド名(たとえばuser_id)またはフィールドの行値に対して実施されるべき列挙される集約オペレーション有りまたは無しで、本発明のマルチパート・ルックトアップ・フィールド名(たとえばuser_id:user name)とすることができる。
【0030】
しかしながら、前に言及したように、本発明は限定されず、他の実施形態では、本発明は、INSERT、UPDATE、DELETEステートメントなど、他のSQLステートメントで実行することもでき、ならびに他の「要求」ステートメント・シンタックスも実行することができる。さらに他の実施形態では、要求の要旨は、たとえば関数呼出しまたはパラメータ送りの他の技法によって非ステートメント形態でSQLステートメント生成器106に伝達することもできる。
【0031】
図3に示すように、この実施形態の場合、関連するオペレーション・フローはオペレーション302から始まり、そこで生成器106は、たとえば入力ステートメント中の要素をトークン化するために入力ステートメントを解析する。その後、この実施形態の場合、生成器106はオペレーション304で入力ステートメント中の1つまたは複数のテーブル・フィールドを識別する。さらに、生成器106はオペレーション306でフィールドが「標準の」(すなわち非ルックトアップの)1つまたは複数のテーブル・フィールドであるかまたはフィールドがルックトアップ・フィールドであるかを識別する。一実施形態では、マルチパート・ルックトアップ・フィールドの所定のシンタックスに基づいて決定がなされる。この実施形態の場合、生成器106はまたオペレーション307で、列挙されたフィールドの行値に対して集約オペレーションを実施すべきかどうかを識別する。列挙されたフィールドの少なくとも1つまたは複数がそれらの行値を集約するべき場合、残りの非ルックトアップ・フィールドおよびルックトアップ・フィールドがグループ化されるべきと考えられ、非ルックトアップ・フィールドのグループ化がルックトアップ・フィールドのグループ化と差別化される。
【0032】
ブロック308および310で、生成器106は、「標準の」または非ルックトアップの1つまたは複数のフィールドのメンバーである(前に基礎テーブルとも呼ばれた)テーブルと指定されたルックトアップ・フィールドをそこからルックアップされる(前にターゲット・テーブルとも呼ばれた)テーブルを識別する。様々な実施形態では、生成器106はデータ・ディクショナリ(図示せず)にアクセスすることによってテーブル・メンバーシップを識別する。これらの実施形態の一部では、生成器106はデータ・ディクショナリの少なくともワーク・コピーを維持する。
【0033】
その後、前に説明したように、標準の(非ルックトアップの)フィールドおよびルックトアップ・フィールドのメンバーであるそれぞれのテーブルを識別すると、生成器106はブロック312で、関数等価SQL SELECTステートメントを自動的に発生し、選択すべきフィールド、From句、基礎テーブル、適用可能な場合、JOIN句およびターゲット・テーブル、ならびに接合されたテーブルの行の接合を支配する条件を含む関連付けられたON句を列挙する。しかしながら、1つまたは複数の集約関数が1つまたは複数の対応するフィールドに対して指定された場合、生成器106はさらに、それらの行値がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールドのグループ化されたフィールドを備えるグループ化派生テーブルを生成するための副照会を自動的に発生する。副照会自体は、集約されたそれらの行値に対するそれらのフィールドに対する指定された集約関数、基礎テーブルを列挙するFROM句、集約オペレーションをそれらの行値に対して実行させるように指定されていない非ルックトアップ・フィールドを列挙するGROUP BY句を含む、基礎テーブルから選択すべき非ルックトアップ・フィールドを列挙するSELECTステートメントである。グループ化派生テーブルの識別子を列挙するAS句と一緒に副照会はSQLステートメントの前述のFROM句中の基礎テーブルを交換する。すなわち、ターゲット・テーブルを基礎テーブルに接合する代わりに、JOIN句はターゲット・テーブルをグループ化派生テーブルに接合し、それによってルックトアップ・テーブル・フィールドを効果的にグループ化する。
【0034】
たとえば、
(a)入力ステートメントTable Select{student_id,class_id:class−name,teacher_id:teacher_name,}に対して、生成器106はSELECTenrollment.student_id,class.class_name,teacher.teacher_name FROM enrolment LEFT OUTER JOIN class ON enrollment.class−id=class.class_id LEFT OUTER JOIN teacher ON enrollment.teacher_id=teacher.teacher_idを発生する。
(b)入力ステートメントTable Select{order_no,product_id:product_name,product_id:category_id:category_name}に対して、生成器106はSELECT order_items.order_no,products.product_name,categories.category_name FROM(order_items LEFT OUTER JOIN products ON order_items.product_id=products.product_id)LEFT OUTER JOIN categories ON products.category_id=categories.category_id(“order_items”,“products”and“categories”are the table namesを発生する。
(c)入力ステートメントTable Select{task_name,assigned to:user_name,opened by:user_name}に対して、生成器106はSELECTtasks.task_name,users_1.user_name,users_2.user_name FROM tasks LEFT OUTER JOIN users users_1 ON tasks.assignedto=users_1.user_id LEFT OUTER JOIN users users_2 ON tasks.openedby=users_2.user_idを発生する。
(d)入力ステートメントTable Select{cust_id:cust_name,cust id:cust_info,cust_id,sum(order_value)}に対して、生成器106はSELECTcustomer.cust_name,customer.cust_info,grouped_table.cust_id,grouped_table.sum_value FROM(SELECT order.cust_id,SUM(order.order_value)sum_value FROM order GROUP BY order.cust_id)AS grouped_table LEFT OUTER JOIN customer ON group_table.cust_id=customer.cust_idを発生する。
【0035】
フィールド選択
図4a〜図4cは、一実施形態による、本発明のマルチパート・ルックトアップ・フィールドの使用を含む、データ処理オペレーション用にフィールドと集約関数を選択するための例であるユーザ・インターフェースを示す。この実施形態は、テーブル定義のうちに、フィールドをルックアップ・フィールドとして指示することができ、各ルックアップ・フィールドは指示されたターゲット・テーブルを有することを仮定する。いくつかのユーザ・インターフェースとサポート・ロジックのいずれか1つを、そのような定義を容易にするために実行することができる。主題は本発明の範囲を越えており、当業者の能力で十分できるので、そのような定義機能については説明しない。
【0036】
図4aはこのユーザ・インターフェースの第1の状態402aを示し、適格のテーブル・フィールド406aのリスト404aはまず、前に説明したように、たとえば報告発生オペレーションとすることができるデータ処理オペレーションに含むための選択のためにアプリケーション開発者ユーザに最初に提示される。フィールド406aは特に事前定義されたルックアップ・フィールド408aであるフィールドを含むことができる。これらの実施形態の場合、選択されたフィールド416aは「エコー」され、領域414aに表示される。
【0037】
図4bはこのユーザ・インターフェースの第2の状態402bを示し、ルックアップ・フィールド408aの1つを選択すると、適格のテーブル・フィールド406bのリスト404bは選択されたルックアップ・フィールドの指示されたターゲット・テーブルのテーブル・フィールドを含むように拡大される。この実施形態の場合、ルックアップされる追加されたテーブル・フィールドは有利には、本発明のマルチパート・ルックトアップ・フィールド名、たとえばlook−up_field:lookedup_fieldを使用して表示される。この実施形態の場合、選択されたフィールド416bは「エコー」され、領域414bに表示されたままであった。
【0038】
図4cはこのユーザ・インターフェースの第3の状態402cを示し、(たとえば選択されたフィールドを右クリックすることによって)選択されたフィールドの行値に対する集約関数を選択する要望を示すと、いくつかの集約オペレーションを列挙するポップアップ・ウィンドウ422cが、選択された集約オペレーションを選択されたフィールドの行値に対して実施させるためのユーザ選択のために提示される。図示のように、この実施形態の場合、集約関数は前述のCOUNT、MIN、MAX、SUMおよびAVE関数を含む。
【0039】
図5は一実施形態による、入力構成要素104の関係する態様のオペレーショナル・フローを示す。前に図示し、言及したように、初期にブロック502で、入力構成要素104はデータ処理オペレーションに含むためにアプリケーション開発者ユーザによる選択のためにフィールドの第1のリストを提示する。次いで入力構成要素104はブロック504、511、512で、リストされたフィールド、選択されたフィールドの集約関数を選択するユーザ要求またはオペレーションの終了の指示の1つのユーザ選択を待つ。
【0040】
ブロック504のyesブランチで、ユーザ選択を受信すると、入力構成要素104はブロック506で、選択されたフィールドが定義されたルックアップ・フィールドであるかどうかを判定する。選択されたフィールドが定義されたルックアップ・フィールドであると判定された場合、入力構成要素104はブロック510で、事前指示されたターゲット・テーブルのフィールドを検索し、検索されたフィールドをユーザ選択のために利用可能なフィールドのリストに追加する。その他の場合、入力構成要素104はブロック508で、選択されたフィールドと選択されたフィールドがメンバーであるテーブルを単に記述する。
【0041】
選択されたフィールド用の集約関数を指定するためにユーザ要求を受信すると、入力構成要素104はブロック513で、選択されたフィールドの行値に対して実施すべき集約オペレーション指定するためのユーザによる選択のためにいくつかの集約関数とともに列挙されるポップアップ・ウィンドウを提示する。
【0042】
一実施形態では、収集された情報は続いて、JOINとON句とともに特に適切な副照会を含む、関数等価SQL SELECTステートメントを自動的に発生するためにSQL生成器106に提供される。
【0043】
一実施形態では、収集された情報は、前述のTable SelectステートメントのシンタックスでSQL生成器106に提供される。別の実施形態では、収集された情報は関数呼出しを介してSQL生成器106に提供される。
【0044】
コンピュータ・システムの例
図6は一実施形態による本発明を実行するために使用するのに適した例であるコンピュータ・システムを示す。図示のように、コンピュータ・システム600は1つまたは複数のプロセッサ602とシステム・メモリ604を含む。さらに、コンピュータ・システム600は大容量記憶装置606(ディスケット、ハード・ドライブ、CDROMなど)、入出力デバイス608(キーボード、カーソル制御など)および通信インターフェース610(ネットワーク・インターフェース・カード、モデムなど)を含む。要素は1つまたは複数のバスを表すシステム・バス612を介して互いに結合される。多数のバスの場合、それらは1つまたは複数のバス・ブリッジ(図示せず)によってブリッジされる。これらの要素の各々は当技術分野で知られている従来の機能を実施する。特に、システム・メモリ604を介して大容量記憶装置606は本発明の教示と一体化されたソフトウェア構成要素(たとえば入力構成要素104および/またはSQLステートメント生成器106)を実装するプログラミング命令の作業コピーおよび永久コピーを記憶するために使用される。プログラミング命令の永久コピーは前述のように、配布媒体(図示せず)を介してまたは(配布サーバ(図示せず)から)通信インターフェース610を介してファクトリ中またはフィールド中の大容量記憶装置606中にロードすることができる。これらの要素602〜612の構成は知られており、したがってそれ以上説明しない。
【0045】
結論および結び
以上、リレーショナル・データベースの多数のテーブル中に配設されたデータにアクセスし処理する改善された方法および装置について説明した。本発明については上記の実施形態に関して説明したが、本発明は説明した実施形態に限定されないことを当業者なら認識するであろう。本発明は、首記の特許請求の範囲の趣旨および範囲内で修正および改変して実行することができる。たとえば、本発明のマルチパート・ルックトアップ・フィールド名は、上述のINSERT、UPDATE、DELETEステートメントに加えて、WHERE、GROUP BYおよびSORT句など、他のSQLステートメントおよび/または句の使い易さを改善するために使用することができる。したがって、説明は本発明を限定するのではなく例示するものと考えるべきである。
【図面の簡単な説明】
【0046】
【図1】一実施形態による、アプリケーション生成器のコンテキストでの本発明の概要を示す図である。
【図2】本発明のマルチパート・フォームを使用して参照されるルックトアップ・フィールドとともに、ルックアップ・フィールドとルックとアップ・フィールドの概念を示す図である。
【図3】一実施形態による、本発明のマルチパート・ルックトアップ・フィールド用のサポートと一体化された、図1のSQL生成器の関係する態様のオペレーショナル・フローを示す図である。
【図4a】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図4b】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図4c】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図5】一実施形態による、図4a〜図4bのユーザ入力インターフェースのサポートにおける図1の入力構成要素の関係する態様のオペレーショナル・フローを示す図である。
【図6】一実施形態による、本発明を実行するために使用するのに適したコンピュータ・システムの内部構成要素図を示す図である。
【0001】
本発明はデータ処理の分野に関する。より詳細には、本発明は、リレーショナル・データベースの多数のテーブルを伴うデータ処理オペレーションに関連付けられたデータ処理技法に関する。
【背景技術】
【0002】
この20〜30年のうちに、リレーショナル・データベースはまず間違いなくデータベース管理における最も広く使用されるデータベース・モデルになっている。リレーショナル・データベースの増大する人気とともに、構造化照会言語(SQL)はリレーショナル・データベースのテーブルに記憶されたデータにアクセスするための必須のツールになっている。
【0003】
しかしながら、当業者なら諒解するように、意味のある適用のほとんどすべてのデータアクセスには、多数のテーブルに常駐するデータのアクセスと処理が必要になる。そのようなアクセスと処理では(SELECTやINSERT、UPDATE、DELETEステートメントなど)SQLステートメントにJOIN句を使用して、注目するテーブルを一緒に接合する必要がある。時々、JOIN句の使用に加えて、いくつかのデータ・グループ化オペレーションを実施するために照会を使用する必要がある。SQLを経験したプロのプログラマを除いて、テーブルの接合および/または副照会の使用を十分に理解しているか、または全く快適に感じるユーザはほとんどいないことが経験から分かっている。残念ながら、無計画な様式で多数のテーブルに分散したデータにアクセスし処理する必要のあるユーザの数は、快適にそうすることができる人々の数よりもはるかに多い。
【0004】
最近、集積回路、マイクロプロセッサ、ネットワーキング、通信技術の進歩によりワールド・ワイド・ウェブ(WWW)およびウェブ・ベース・アプリケーションが普及し、アクセス用のデータのより大きい格納装置も利用可能になっている。今度は、前に議論した知識または技能の隔たり問題がさらに拡大される。
【発明の開示】
【発明が解決しようとする課題】
【0005】
したがって、データ処理技能が低くて済む、リレーショナル・データベースの多数のテーブルに分散したデータにアクセスし処理する改善された手法が望まれる。
【課題を解決するための手段】
【0006】
第1の態様によれば、データ処理ステートメント中のルックトアップ・テーブル・フィールドを識別するためのソフトウェア構成要素が装備され、テーブル・フィールドをそこから基礎テーブルとルックアップされる1つまたは複数のターゲット・テーブルを接合する1つまたは複数の適切なJOIN句をSQLステートメントとともに自動的に含む。SQLステートメントは、たとえば、INSERT、SELECT、UPDATE、DELETEステートメントとすることができる。
【0007】
第2の態様によれば、それらの行をグループ化すべき非ルックトアップ・テーブル・フィールドとルックトアップ・テーブル・フィールド、およびデータ処理ステートメント中のそれらの行値に対して実施すべき集約関数を有するテーブル・フィールドを識別するためのソフトウェア構成要素が装備され、応答して、それらの行がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールド、およびルックトアップ・テーブル・フィールドをそこからグループ化派生テーブルとルックアップされる1つまたは複数のターゲット・テーブルを接合する1つまたは複数の適切なJOIN句を備えるグループ化派生テーブルを生成するための副照会をSQLステートメントとともに自動的に含み、ルックトアップ・フィールドの行をも効果的にグループ化する。SQLステートメントは、たとえば、INSERT、SELECT、UPDATE、DELETEステートメントとすることができる。
【0008】
一実施態様では、ルックトアップ・テーブル・フィールドは、ルックアップ・テーブル・フィールドに対応する第1のパート、および所定の特殊文字を使用して第1のパートに連結されたルックトアップ・テーブル・フィールドに対応する第2のパートを備えるマルチパート・フォームで表現される。
【0009】
第3の態様によれば、ルックアップ・テーブル・フィールドの選択に応答して、ルックアップ・テーブル・フィールドのターゲット・テーブルのテーブル・フィールドをデータ処理オペレーションに含ませることができるようにテーブル・フィールドを自動的に拡大し、集約関数の選択を容易にするためのソフトウェア構成要素が装備される。
【発明を実施するための最良の形態】
【0010】
様々な実施形態では、様々な態様が一部および/または全部組み合わせて実行される。
【0011】
同じ参照符号が同様の要素を示す添付の図面に示される限定ではない例示的な実施形態によって本発明について説明する。
【0012】
本発明は、ルックトアップ・テーブル・フィールドを指定するためのマルチパート・フォーマット、およびルックトアップ・テーブル・フィールドのサポートにおけるロジックを装備したソフトウェア構成要素を含み、データ・グループ化オペレーションの実施を含む、技能の少ないユーザが、リレーショナル・データベースの多数のテーブルに分散したデータにアクセスし処理するためにアプリケーションにアクセスし処理し、または発生することが容易になる。
【0013】
理解しやすいように、本発明は主として、SQL SELECTステートメントを参照するアプリケーション生成器のコンテキストで説明する。しかしながら、本発明はそのように限定されず、INSERT、SELECT、UPDATE、DELETEステートメントなどのいくつかの他のSQLステートメントで、様々な他のコンテキスト、たとえばデータベース照会機能で実行することができる。さらに、以下の説明では、本発明の様々な態様を説明し、特定の数、材料および構成を記載する。しかしながら、本発明は、一部または全部の態様で、および/またはこれらの特定の詳細の一部なしで実施することができる。他の例では、本発明を曖昧にしないために、よく知られている特徴を省略または簡略化する。
【0014】
本発明は、当業者がそれらの仕事の要旨を他の当業者に伝達するために通常使用する方法に一致する、ステートメント、テーブル、フィールド、決定、識別、発生などの用語を使用して、プロセッサ・ベース・デバイスによって実施されるオペレーションに関して説明する。当業者がよく理解しているように、量は記憶、転送、結合、さもなければプロセッサ・ベース・デバイスの機械的、電気的および/または光構成要素によって操作が可能な電気、磁気、または光信号の形態をとる。さらに、プロセッサという用語はスタンドアロン、付加または内蔵されるマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサなどを含む。
【0015】
様々なオペレーションは、本発明を理解するのに最も助けになる方法で、順に多数の離散的ステップとして説明するが、説明の順序は、これらのオペレーションが必ず順序依存であることを暗示するものと解釈すべきでない。特に、これらのオペレーションが提示の順序で実行される必要はない。
【0016】
説明は、通常同じ実施形態を指さないが、指すこともある「一実施形態では」というフレーズを繰り返し使用する。本出願で使用する「備える」、「含む」、「有する」などの用語は類義語である。
【0017】
概要
次に図1を参照すると、一実施形態による、本発明の教示と一体化したアプリケーション生成器のコンテキストで本発明の概要を示すブロック図が示されている。図示のように、アプリケーション生成器102は特に、データ処理オペレーションに関連付けられた入力構成要素104とSQLステートメント生成器106を含む。アプリケーション開発者ユーザから受信した入力に従って、アプリケーション生成器102はアプリケーション108を発生する。アプリケーション108中にはSQLステートメント110が含まれている。SQLステートメント110は、リレーショナル・データベース管理システム112を介して、データ、リレーショナル・データベース114内のデータを記憶するための複数のテーブル・フィールド(または単にフィールド)を有する様々なテーブル116を生成するためにアプリケーション108が使用する生成ステートメントを含む。SQLステートメント110はまた、適用可能な場合、データ・グループ化オペレーションを含む、(リレーショナル・データベース管理システム112を介して)様々なフィールドの記憶されたデータのために生成されたテーブル116にアクセスするためにアプリケーション108が使用するSELECTステートメントを含む。必要に応じて、SQLステートメント110はINSERT、UPDATE、DELETE、さらに他のステートメントを含むことができる。
【0018】
以下でより詳細に説明するように、本発明の第1の態様によれば、有利には、本発明のマルチパート・フォームで表現される、ルックトアップ・テーブル・フィールドをサポートするためのステートメント生成器106が装備される。サポートは特に、それらの行がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールドと(フィールドをそこからルックアップされる)ターゲット・テーブルを基礎テーブルまたは(ルックトアップ・テーブル・フィールドを効果的にグループ化する)グループ化派生テーブルに接合する適切なJOIN句を備えるグループ化派生テーブルを生成するための適切な副照会の自動発生を含む。
【0019】
以下でより詳細に説明するように、本発明の第2の態様によれば、データ処理オペレーションの入力構成要素104は有利には、データ処理オペレーションに含むためにアプリケーション開発者ユーザが選択するためのテーブルのフィールドを提示するために装備される。さらに、入力構成要素104は有利には、選択されたフィールドが上述のターゲット・テーブルをもつルックアップ・フィールドであると前に定義されている場合、ターゲット・テーブルのフィールドを含むための選択に利用可能なフィールドのリストを拡大するために装備される。さらに、一実施形態では入力構成要素104は有利には、選択されたフィールドの行値に対して実施するための集約オペレーションの選択を容易にするために装備される。集約オペレーションはカウント関数(COUNT)、最小値識別関数(MIN)、最大値識別関数(MAX)、平均値計算関数(AVG)、値合計関数(SUM)のいずれか1つとすることができる。
【0020】
データ処理オペレーションは当技術分野で知られている任意のデータ処理オペレーションとすることができる。データ処理オペレーションの一例は報告発生である。データ処理オペレーションの別の例はスクリプトの形態の一連の処理オペレーションの実行である。したがって、入力構成要素104は報告生成器の構成要素、スクリプト・エディタの構成要素、または他のソフトウェア構成要素などとすることができる。
【0021】
さらに、一実施形態では、第2の態様は、前に説明した第1の態様とともに実行される。すなわち、データ処理オペレーションで使用する、ルックトアップ・フィールドおよび/または集約オペレーションを含む、フィールドを選択するアプリケーション開発者ユーザの支援で、適切な副照会およびJOIN句をもつ、SELECT、INSERT、UPDATE、DELETEステートメントなどのSQLステートメントが集約される。
【0022】
したがって、特に、データ・グループ化およびテーブル接合のトピック領域で、アプリケーション生成器102のアプリケーション開発者ユーザに必要なSQL知識は有利には縮小され、それによってアプリケーション開発者ユーザの生産性や経験が拡大するとともに、生成器102の利用性が強化される。
【0023】
入力生成器104やSQLステートメント生成器106が組み込まれた本発明の教示を除いて、アプリケーション生成器102は、特に、知られているウェブ・アプリケーション生成器、たとえば本発明の譲受人であるワシントン州シアトルのWestside社が提供しているウェブ・アプリケーション開発機能を含む、当技術分野で知られている広い範囲のアプリケーション生成器を表す。
【0024】
同様に、アプリケーション108が本発明の受益者であること、すなわちそれらの適切な副照会およびJOIN句が自動的に発生したそれらのSQLステートメントの選択されたものを有することを除いて、アプリケーション108、リレーショナル・データベース管理システム112、リレーショナル・データベース114はすべて当技術分野で知られている広い範囲のこれらの要素を表す。特に、リレーショナル・データベース管理システム112は、たとえば、ワシントン州レドモンドのMicrosoft社が提供しているSQLサーバ、カリフォルニア州レッドウッドのOracle社が提供しているOracleデータベース管理システム、ニューヨーク州アーモンクのIBM社が提供しているデータベース2(DB2)、または同様の他のデータベース管理システム(RDBMS)とすることができる。
【0025】
マルチパート・ルックトアップ・フィールド
次に図2を参照すると、一実施形態による、本発明のマルチパート・ルックトアップ・テーブル・フィールドと、基礎テーブルやターゲット・テーブルに対する様々なパートとの間の関係が示されている。図示のように、この実施形態の場合、本発明のマルチパート・ルックトアップ・テーブル・フィールドは、(テーブルの外来キーとも呼ばれる)基礎テーブル中のルックアップ・フィールドに対応する第1のパート222と特殊文字226(たとえば「:」)を使用した第1のパート222に連結された(テーブルの主キーとも呼ばれる)ターゲット・テーブル中のルックトアップ・フィールドに対応する第2のパート224の、2つのパートで表現される。たとえば、
1)(ルックアップされる)「cutomer description」フィールドは
customer_id:cutomer_description
の形態で本発明下で表現することができる。
2)(ルックアップされる)「product description」フィールドは
product_id:product_description
の形態で本発明下で表現することができ、または(ルックアップされる)「employee name」フィールドはemployee_id:employee_nameの形態で本発明下で表現することができる。前に言及し、図示したように、対応するルックアップ・フィールド204(または外来キー)は「基礎」テーブル202のメンバーであり、一方、対応するルックトアップ・フィールド214(または主キー)は「ターゲット」テーブル204のメンバーである。もちろん、各テーブル202または204は他のフィールド206および216を備えることができる。
【0026】
代替実施形態では、3つ以上のパートを伴う慣例など、他の慣例を実行することができる。さらに、「接続詞」は、「〜」、「!」、「@」、「#」、「$」、「%」、「^」、「&」、「*」、「|」、「<」、「>」、または「.」など、これらの特殊文字の多数の文字の選択された組合せ、たとえば「<>」、または非特殊文字をも使用して、他の特殊文字とすることができる。
【0027】
一実施形態では、多数の接続詞が使用され、ある接続詞はOuter JOINを示す「:」など、別の接続詞はInner JOINを示す「::」などである。他の実施形態では、Union JOINなど、他のタイプのjoinを示す追加の接続詞も実行することができる。
【0028】
さらに、他の実施形態では、本発明のマルチパート・ルックトアップ・テーブル・フィールドは、3つ以上のパート、たとえば基礎テーブル中のルックアップ・フィールドに対応する第1のパート、第1のターゲット・テーブル中の第1のルックトアップ・フィールド(これはルックトアップ・フィールドとして使用される)に対応する第2のパート、第2のターゲット・テーブル中の第2のルックアップ・フィールドに対応する第3のパートの、3つのパートで表現することができる。前のように、異なるパートは特殊文字(たとえば「:」)を使用して互いに連結される。たとえば、product_id:category_id:category_nameは、ルックアップ・フィールド「product_id」を使用してルックアップされるルックアップ・フィールド「category_id」を使用してルックアップされる、ルックトアップ・フィールド「category_name」を特定する。
【0029】
SQLステートメント発生
図3は、一実施形態による、データ・アクセス要求のコンテキストでの、図1のSQLステートメント生成器106の関係する態様のオペレーション・フローを示す。この実施形態は、SQLステートメント生成器106が入力として非SQL形態でデータ・アクセス要求ステートメントを受信することを保証する。一実施形態では、データ・アクセス要求ステートメントは
Table Select{フィールド名[,フィールド名[...]]}
のシンタックスを有する。
ここで、フィールド名は従来のフィールド名(たとえばuser_id)またはフィールドの行値に対して実施されるべき列挙される集約オペレーション有りまたは無しで、本発明のマルチパート・ルックトアップ・フィールド名(たとえばuser_id:user name)とすることができる。
【0030】
しかしながら、前に言及したように、本発明は限定されず、他の実施形態では、本発明は、INSERT、UPDATE、DELETEステートメントなど、他のSQLステートメントで実行することもでき、ならびに他の「要求」ステートメント・シンタックスも実行することができる。さらに他の実施形態では、要求の要旨は、たとえば関数呼出しまたはパラメータ送りの他の技法によって非ステートメント形態でSQLステートメント生成器106に伝達することもできる。
【0031】
図3に示すように、この実施形態の場合、関連するオペレーション・フローはオペレーション302から始まり、そこで生成器106は、たとえば入力ステートメント中の要素をトークン化するために入力ステートメントを解析する。その後、この実施形態の場合、生成器106はオペレーション304で入力ステートメント中の1つまたは複数のテーブル・フィールドを識別する。さらに、生成器106はオペレーション306でフィールドが「標準の」(すなわち非ルックトアップの)1つまたは複数のテーブル・フィールドであるかまたはフィールドがルックトアップ・フィールドであるかを識別する。一実施形態では、マルチパート・ルックトアップ・フィールドの所定のシンタックスに基づいて決定がなされる。この実施形態の場合、生成器106はまたオペレーション307で、列挙されたフィールドの行値に対して集約オペレーションを実施すべきかどうかを識別する。列挙されたフィールドの少なくとも1つまたは複数がそれらの行値を集約するべき場合、残りの非ルックトアップ・フィールドおよびルックトアップ・フィールドがグループ化されるべきと考えられ、非ルックトアップ・フィールドのグループ化がルックトアップ・フィールドのグループ化と差別化される。
【0032】
ブロック308および310で、生成器106は、「標準の」または非ルックトアップの1つまたは複数のフィールドのメンバーである(前に基礎テーブルとも呼ばれた)テーブルと指定されたルックトアップ・フィールドをそこからルックアップされる(前にターゲット・テーブルとも呼ばれた)テーブルを識別する。様々な実施形態では、生成器106はデータ・ディクショナリ(図示せず)にアクセスすることによってテーブル・メンバーシップを識別する。これらの実施形態の一部では、生成器106はデータ・ディクショナリの少なくともワーク・コピーを維持する。
【0033】
その後、前に説明したように、標準の(非ルックトアップの)フィールドおよびルックトアップ・フィールドのメンバーであるそれぞれのテーブルを識別すると、生成器106はブロック312で、関数等価SQL SELECTステートメントを自動的に発生し、選択すべきフィールド、From句、基礎テーブル、適用可能な場合、JOIN句およびターゲット・テーブル、ならびに接合されたテーブルの行の接合を支配する条件を含む関連付けられたON句を列挙する。しかしながら、1つまたは複数の集約関数が1つまたは複数の対応するフィールドに対して指定された場合、生成器106はさらに、それらの行値がグループ化された非ルックトアップ・フィールドおよびそれらの行値が集約された集約フィールドのグループ化されたフィールドを備えるグループ化派生テーブルを生成するための副照会を自動的に発生する。副照会自体は、集約されたそれらの行値に対するそれらのフィールドに対する指定された集約関数、基礎テーブルを列挙するFROM句、集約オペレーションをそれらの行値に対して実行させるように指定されていない非ルックトアップ・フィールドを列挙するGROUP BY句を含む、基礎テーブルから選択すべき非ルックトアップ・フィールドを列挙するSELECTステートメントである。グループ化派生テーブルの識別子を列挙するAS句と一緒に副照会はSQLステートメントの前述のFROM句中の基礎テーブルを交換する。すなわち、ターゲット・テーブルを基礎テーブルに接合する代わりに、JOIN句はターゲット・テーブルをグループ化派生テーブルに接合し、それによってルックトアップ・テーブル・フィールドを効果的にグループ化する。
【0034】
たとえば、
(a)入力ステートメントTable Select{student_id,class_id:class−name,teacher_id:teacher_name,}に対して、生成器106はSELECTenrollment.student_id,class.class_name,teacher.teacher_name FROM enrolment LEFT OUTER JOIN class ON enrollment.class−id=class.class_id LEFT OUTER JOIN teacher ON enrollment.teacher_id=teacher.teacher_idを発生する。
(b)入力ステートメントTable Select{order_no,product_id:product_name,product_id:category_id:category_name}に対して、生成器106はSELECT order_items.order_no,products.product_name,categories.category_name FROM(order_items LEFT OUTER JOIN products ON order_items.product_id=products.product_id)LEFT OUTER JOIN categories ON products.category_id=categories.category_id(“order_items”,“products”and“categories”are the table namesを発生する。
(c)入力ステートメントTable Select{task_name,assigned to:user_name,opened by:user_name}に対して、生成器106はSELECTtasks.task_name,users_1.user_name,users_2.user_name FROM tasks LEFT OUTER JOIN users users_1 ON tasks.assignedto=users_1.user_id LEFT OUTER JOIN users users_2 ON tasks.openedby=users_2.user_idを発生する。
(d)入力ステートメントTable Select{cust_id:cust_name,cust id:cust_info,cust_id,sum(order_value)}に対して、生成器106はSELECTcustomer.cust_name,customer.cust_info,grouped_table.cust_id,grouped_table.sum_value FROM(SELECT order.cust_id,SUM(order.order_value)sum_value FROM order GROUP BY order.cust_id)AS grouped_table LEFT OUTER JOIN customer ON group_table.cust_id=customer.cust_idを発生する。
【0035】
フィールド選択
図4a〜図4cは、一実施形態による、本発明のマルチパート・ルックトアップ・フィールドの使用を含む、データ処理オペレーション用にフィールドと集約関数を選択するための例であるユーザ・インターフェースを示す。この実施形態は、テーブル定義のうちに、フィールドをルックアップ・フィールドとして指示することができ、各ルックアップ・フィールドは指示されたターゲット・テーブルを有することを仮定する。いくつかのユーザ・インターフェースとサポート・ロジックのいずれか1つを、そのような定義を容易にするために実行することができる。主題は本発明の範囲を越えており、当業者の能力で十分できるので、そのような定義機能については説明しない。
【0036】
図4aはこのユーザ・インターフェースの第1の状態402aを示し、適格のテーブル・フィールド406aのリスト404aはまず、前に説明したように、たとえば報告発生オペレーションとすることができるデータ処理オペレーションに含むための選択のためにアプリケーション開発者ユーザに最初に提示される。フィールド406aは特に事前定義されたルックアップ・フィールド408aであるフィールドを含むことができる。これらの実施形態の場合、選択されたフィールド416aは「エコー」され、領域414aに表示される。
【0037】
図4bはこのユーザ・インターフェースの第2の状態402bを示し、ルックアップ・フィールド408aの1つを選択すると、適格のテーブル・フィールド406bのリスト404bは選択されたルックアップ・フィールドの指示されたターゲット・テーブルのテーブル・フィールドを含むように拡大される。この実施形態の場合、ルックアップされる追加されたテーブル・フィールドは有利には、本発明のマルチパート・ルックトアップ・フィールド名、たとえばlook−up_field:lookedup_fieldを使用して表示される。この実施形態の場合、選択されたフィールド416bは「エコー」され、領域414bに表示されたままであった。
【0038】
図4cはこのユーザ・インターフェースの第3の状態402cを示し、(たとえば選択されたフィールドを右クリックすることによって)選択されたフィールドの行値に対する集約関数を選択する要望を示すと、いくつかの集約オペレーションを列挙するポップアップ・ウィンドウ422cが、選択された集約オペレーションを選択されたフィールドの行値に対して実施させるためのユーザ選択のために提示される。図示のように、この実施形態の場合、集約関数は前述のCOUNT、MIN、MAX、SUMおよびAVE関数を含む。
【0039】
図5は一実施形態による、入力構成要素104の関係する態様のオペレーショナル・フローを示す。前に図示し、言及したように、初期にブロック502で、入力構成要素104はデータ処理オペレーションに含むためにアプリケーション開発者ユーザによる選択のためにフィールドの第1のリストを提示する。次いで入力構成要素104はブロック504、511、512で、リストされたフィールド、選択されたフィールドの集約関数を選択するユーザ要求またはオペレーションの終了の指示の1つのユーザ選択を待つ。
【0040】
ブロック504のyesブランチで、ユーザ選択を受信すると、入力構成要素104はブロック506で、選択されたフィールドが定義されたルックアップ・フィールドであるかどうかを判定する。選択されたフィールドが定義されたルックアップ・フィールドであると判定された場合、入力構成要素104はブロック510で、事前指示されたターゲット・テーブルのフィールドを検索し、検索されたフィールドをユーザ選択のために利用可能なフィールドのリストに追加する。その他の場合、入力構成要素104はブロック508で、選択されたフィールドと選択されたフィールドがメンバーであるテーブルを単に記述する。
【0041】
選択されたフィールド用の集約関数を指定するためにユーザ要求を受信すると、入力構成要素104はブロック513で、選択されたフィールドの行値に対して実施すべき集約オペレーション指定するためのユーザによる選択のためにいくつかの集約関数とともに列挙されるポップアップ・ウィンドウを提示する。
【0042】
一実施形態では、収集された情報は続いて、JOINとON句とともに特に適切な副照会を含む、関数等価SQL SELECTステートメントを自動的に発生するためにSQL生成器106に提供される。
【0043】
一実施形態では、収集された情報は、前述のTable SelectステートメントのシンタックスでSQL生成器106に提供される。別の実施形態では、収集された情報は関数呼出しを介してSQL生成器106に提供される。
【0044】
コンピュータ・システムの例
図6は一実施形態による本発明を実行するために使用するのに適した例であるコンピュータ・システムを示す。図示のように、コンピュータ・システム600は1つまたは複数のプロセッサ602とシステム・メモリ604を含む。さらに、コンピュータ・システム600は大容量記憶装置606(ディスケット、ハード・ドライブ、CDROMなど)、入出力デバイス608(キーボード、カーソル制御など)および通信インターフェース610(ネットワーク・インターフェース・カード、モデムなど)を含む。要素は1つまたは複数のバスを表すシステム・バス612を介して互いに結合される。多数のバスの場合、それらは1つまたは複数のバス・ブリッジ(図示せず)によってブリッジされる。これらの要素の各々は当技術分野で知られている従来の機能を実施する。特に、システム・メモリ604を介して大容量記憶装置606は本発明の教示と一体化されたソフトウェア構成要素(たとえば入力構成要素104および/またはSQLステートメント生成器106)を実装するプログラミング命令の作業コピーおよび永久コピーを記憶するために使用される。プログラミング命令の永久コピーは前述のように、配布媒体(図示せず)を介してまたは(配布サーバ(図示せず)から)通信インターフェース610を介してファクトリ中またはフィールド中の大容量記憶装置606中にロードすることができる。これらの要素602〜612の構成は知られており、したがってそれ以上説明しない。
【0045】
結論および結び
以上、リレーショナル・データベースの多数のテーブル中に配設されたデータにアクセスし処理する改善された方法および装置について説明した。本発明については上記の実施形態に関して説明したが、本発明は説明した実施形態に限定されないことを当業者なら認識するであろう。本発明は、首記の特許請求の範囲の趣旨および範囲内で修正および改変して実行することができる。たとえば、本発明のマルチパート・ルックトアップ・フィールド名は、上述のINSERT、UPDATE、DELETEステートメントに加えて、WHERE、GROUP BYおよびSORT句など、他のSQLステートメントおよび/または句の使い易さを改善するために使用することができる。したがって、説明は本発明を限定するのではなく例示するものと考えるべきである。
【図面の簡単な説明】
【0046】
【図1】一実施形態による、アプリケーション生成器のコンテキストでの本発明の概要を示す図である。
【図2】本発明のマルチパート・フォームを使用して参照されるルックトアップ・フィールドとともに、ルックアップ・フィールドとルックとアップ・フィールドの概念を示す図である。
【図3】一実施形態による、本発明のマルチパート・ルックトアップ・フィールド用のサポートと一体化された、図1のSQL生成器の関係する態様のオペレーショナル・フローを示す図である。
【図4a】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図4b】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図4c】一例としてのアプリケーションによる、本発明のマルチパート・ルックトアップ・フィールドを利用した、例としてのデータ処理オペレーションの例としてのユーザ・インターフェースを示す図である。
【図5】一実施形態による、図4a〜図4bのユーザ入力インターフェースのサポートにおける図1の入力構成要素の関係する態様のオペレーショナル・フローを示す図である。
【図6】一実施形態による、本発明を実行するために使用するのに適したコンピュータ・システムの内部構成要素図を示す図である。
Claims (37)
- 実行時、
データ処理ステートメントを解析し、
前記データ処理ステートメント中で参照される1つまたは複数のテーブル・フィールドを識別し、
識別されたテーブル・フィールドごとに、前記テーブル・フィールドがルックトアップ・フィールドであるかどうかを判定し、
前記識別された1つまたは複数のテーブル・フィールドの非ルックトアップ・フィールドがメンバーである基礎テーブルを識別し、
前記識別された1つまたは複数のテーブル・フィールドの前記ルックトアップ・フィールドまたは複数のフィールドをそこからルックアップされる1つまたは複数のターゲット・テーブルを識別し、
SQLステートメントを発生し、前記発生したSQLステートメントとともに、前記基礎テーブルから選択すべきフィールドまたは複数のフィールドを含み、かつ前記基礎テーブルを列挙するFROM句を含み、データ処理ステートメントが1つまたは複数のターゲット・テーブルからルックアップされる1つまたは複数のフィールドを含むと判定された場合にはさらに、前記選択すべきフィールドまたは複数のフィールド間に、前記1つまたは複数のターゲット・テーブルと前記基礎テーブルおよび前記1つまたは複数のターゲット・テーブルをそれぞれ接合する1つまたは複数のJOIN句と前記基礎テーブルおよび前記1つまたは複数の対応するテーブルの行を接合すべき1つまたは複数の対応する条件をそれぞれ指定する対応するON句を含み、その際、前記1つまたは複数の条件の各々が対応するルックアップ・フィールドを備える
ように装置を動作させるプログラミング命令がその中に記憶された記憶媒体と、
前記プログラミング命令を実行するために前記記憶媒体に結合された1つまたは複数のプロセッサとを備える装置。 - 前記プログラミング命令は、実行時、テーブル・フィールドが、少なくともルックアップ・フィールドに対応する第1のパートと所定の方法で前記第1のパートに連結されたルックアップされるフィールドに対応する第2のパートを含むマルチパート・テーブル・フィールドであるかどうかを判定することによって、前記テーブル・フィールドがルックトアップ・フィールドであるかどうかを装置が判定することを可能にする請求項1に記載の装置。
- 前記プログラミング命令は、実行時、前記テーブル・フィールドがマルチパート・テーブル・フィールドであると判定されると、所定の方法で前記第2のパートに連結されたルックトアップ・フィールドに対応する第3のパートとともに、前記第2のパートもルックアップ・フィールドであるかどうかを装置が判定することを可能にする請求項2に記載の装置。
- ルックアップされるフィールドに対応する前記第2のパートが、1つまたは複数の所定の特殊文字を使用して、ルックアップ・フィールドに対応する前記第1のパートと連結される請求項3に記載の装置。
- 前記1つまたは複数の所定の特殊文字が少なくとも「.」、「:」、「〜」、「!」、「@」、「#」、「$」、「%」、「^」、「&」、「*」、「−」、「+」、「=」、「?」、「<」と「>」の選択された1つを備える請求項4に記載の装置。
- 前記JOIN句がOUTER JOIN句である請求項1に記載の装置。
- 前記JOIN句がINNER JOIN句である請求項1に記載の装置。
- 前記SQLステートメントがSELECT、INSERT、UPDATE、DELETEステートメントの選択された1つである請求項1に記載の装置。
- 実行時、
データ処理オペレーションで使用する選択のための第1のテーブルの第1の複数のフィールドを提示し、
第1のフィールドのメンバーである前記第1のフィールドの選択を受信し、
前記選択された第1のフィールドが第2のテーブルの第2の複数のフィールドの第1の1つまたは複数をルックアップするための第1の指定ルックアップ・フィールドであるかどうかを判定し、
前記選択された第1のフィールドが前記第2のテーブルの前記第2の複数のフィールドの第1の1つまたは複数をルックアップするための第1の指定ルックアップ・フィールドであると判定された場合、前記データ処理オペレーションで使用する選択のための前記第2の複数のフィールドを提示する
ように装置を動作させる複数のプログラミング命令がその中に記憶された記憶媒体と、
前記プログラミング命令を実行するために前記記憶媒体に結合された少なくとも1つのプロセッサとを備える装置。 - 前記プログラミング命令が、実行時、第1のパート、前記第1のルックアップ・フィールド、第2のパートと所定の方法で前記第1のパートに連結されたルックアップされる前記第1の1つまたは複数のフィールドの対応するフィールドを含む、前記第2の複数のフィールドの各々をマルチパート・フォームで提示するように装置を動作させる請求項9に記載の装置。
- 前記プログラミング命令が、実行時、
第2のフィールドのメンバーである前記第2のフィールドの選択を受信し、
前記選択された第2のフィールドが第3のテーブルの第3の複数のフィールドの第2の1つまたは複数をルックアップするための第2の指定ルックアップ・フィールドであるかどうかを判定し、
前記選択された第2のフィールドが前記第3のテーブルの前記第3の複数のフィールドの第2の1つまたは複数をルックアップするための第2の指定ルックアップ・フィールドであると判定された場合、選択のための前記第3の複数のフィールドを提示する
ように装置をさらに動作させる請求項10に記載の装置。 - 前記プログラミング命令が、実行時、
第1のパート、前記第1のルックアップ・フィールド、第2のパートと所定の方法で前記第1のパートに連結されたルックアップされる前記第1の1つまたは複数のフィールドの対応するフィールドを含む、前記第2の複数のフィールドの各々をマルチパート・フォームで提示し、
第1および第2のパート、第3のパートと所定の方法で前記第2のパートに連結されたルックアップされる前記第2の1つまたは複数のフィールドの対応するフィールドを含む、前記第3の複数のフィールドの各々をマルチパート・フォームで提示する
ように装置を動作させる請求項11に記載の装置。 - 前記第2のパート、ルックアップされる前記第1の1つまたは複数のフィールドの対応するフィールドが、1つまたは複数の所定の特殊文字を使用して、前記第1のパート、前記ルックアップ・フィールドと連結される請求項10に記載の装置。
- 前記1つまたは複数の所定の特殊文字が少なくとも「.」、「:」、「〜」、「!」、「@」、「#」、「$」、「%」、「^」、「&」、「*」、「−」、「+」、「=」、「?」、「<」と「>」の選択された1つを備える請求項13に記載の装置。
- 前記プログラミング命令が、SQLステートメントを発生するように装置をさらに動作させ、前記第1のテーブルから選択すべきフィールドまたは複数のフィールドおよび前記第1のテーブルを列挙するFROM句を前記発生したSQLステートメントとともに含み、前記第2のテーブルからルックアップされる前記フィールドの1つまたは複数も選択された場合、前記第2のテーブルからルックアップされる前記1つまたは複数のフィールドと前記第2のテーブルを前記第1のテーブルに接合するJOIN句と前記第2のテーブルおよび前記第1のテーブルの行を接合すべき条件を指定するON句を前記フィールドまたは複数のフィールドの間に含み、その際、前記条件が前記ルックアップ・フィールドを備える請求項9に記載の装置。
- 前記JOIN句がOUTER JOIN句である請求項9に記載の装置。
- 前記JOIN句がINNER JOIN句である請求項9に記載の装置。
- 前記SQLステートメントがSELECT、INSERT、UPDATE、DELETEステートメントの選択された1つである請求項9に記載の装置。
- 前記プログラミング命令が、実行時、
前記第1のテーブルの前記第1の複数のフィールドを指定し、
前記指定された第1のフィールドの1つまたは複数をルックアップ・フィールドとして指示し、
前記指示されたルックアップ・フィールド用にターゲット・テーブルを指定するように装置をさらに動作させる請求項9に記載の装置。 - 実行時、
データ処理ステートメントを解析し、
前記データ処理ステートメント中で参照される1つまたは複数のテーブル・フィールドを識別し、識別されたテーブル・フィールドの各々の行値に対して集約オペレーションを実施すべきかどうかを判定することを含み、
識別されたテーブル・フィールドごとに、前記テーブル・フィールドがルックトアップ・フィールドであるかどうかを判定し、
前記識別された1つまたは複数のテーブル・フィールドの非ルックトアップ・フィールドがメンバーである基礎テーブルを識別し、
前記識別された1つまたは複数のテーブル・フィールドの前記ルックトアップ・フィールドまたは複数のフィールドをそこからルックアップされる1つまたは複数のターゲット・テーブルを識別し、
前記データ処理ステートメントが集約オペレーションをそれらの行値に対して実施させるために第1の1つまたは複数のテーブル・フィールドを含有すると判定された場合にSQLステートメントを発生し、グループ化されたテーブル・フィールドおよび集約されたテーブル・フィールドを備えるグループ化派生テーブルを生成する副照会を有するFROM句と前記対応する1つまたは複数のターゲット・テーブルを前記グループ化派生テーブルに接合する1つまたは複数のJOIN句を前記発生したSQLステートメントとともに含むように装置を動作させるプログラミング命令がその中に記憶された記憶媒体と、
前記プログラミング命令を実行するために前記記憶媒体に結合された1つまたは複数のプロセッサとを備える装置。 - 前記プログラミング命令は、実行時、テーブル・フィールドが、少なくともルックアップ・テーブル・フィールドに対応する第1のパートと所定の方法で前記第1のパートに連結されたルックアップされるフィールドに対応する第2のパートを含むマルチパート・テーブル・フィールドであるかどうかを判定することによって、ルックトアップ・フィールドであるかどうかを装置が判定することを可能にする請求項20に記載の装置。
- 前記プログラミング命令は、実行時、前記テーブル・フィールドがマルチパート・テーブル・フィールドであると判定されると、所定の方法で前記第2のパートに連結されたルックトアップ・フィールドに対応する第3のパートとともに、前記第2のパートもルックアップ・フィールドであるかどうかを装置が判定することを可能にする請求項21に記載の装置。
- ルックアップされるフィールドに対応する前記第2のパートが、1つまたは複数の所定の特殊文字を使用して、ルックアップ・フィールドに対応する前記第1のパートと連結される請求項22に記載の装置。
- 前記プログラミング命令は、実行時、前記識別されたテーブル・フィールドの適用可能なフィールドに対して実施すべき集約関数を含む、前記基礎テーブルの識別されたテーブル・フィールドを列挙するSELECTステートメントの形態で前記副照会を発生することによって、SQLステートメントの前記条件付き発生を装置が実施することを可能にし、前記基礎テーブルを列挙する第1のFROM句と同じく実施すべき集約関数を有するとして識別されていない基礎テーブルの前記列挙された1つまたは複数のテーブル・フィールドを列挙するGROUP BY句を前記SELECTステートメントとともに含む請求項20に記載の装置。
- 前記プログラミング命令は、実行時、前記SQLステートメントを条件付きで発生するために、前記グループ化派生テーブルおよび前記1つまたは複数のターゲット・テーブルから選択すべきフィールドまたは複数のフィールド、前記副照会を列挙する第2のFROM句、前記グループ化派生テーブルの識別子を列挙するAS句と前記グループ化派生テーブルおよび前記1つまたは複数のターゲット・テーブルをそれぞれ接合する前記1つまたは複数のJOIN句を装置が列挙することをさらに可能にする請求項24に記載の装置。
- 前記集約関数がカウント関数(COUNT)、最小値識別関数(MIN)、最大値識別関数(MAX)、平均値計算関数(AVG)と値合計関数(SUM)の選択された1つである請求項20に記載の装置。
- 前記SQLステートメントがSELECT、INSERT、UPDATE、DELETEステートメントの選択された1つである請求項20に記載の装置。
- 実行時、
データ処理オペレーションで使用する選択のための第1のテーブルの第1の複数のフィールドを提示し、
第1のフィールドのメンバーである前記第1のフィールドの選択を受信し、
前記選択された第1のフィールドが第2のテーブルの第2の複数のフィールドの第1の1つまたは複数をルックアップするための第1の指定ルックアップ・フィールドであるかどうかを判定し、
前記選択された第1のフィールドが前記第2のテーブルの前記第2の複数のフィールドの第1の1つまたは複数をルックアップするための第1の指定ルックアップ・フィールドであると判定された場合、前記データ処理オペレーションで使用する選択のための前記第2の複数のフィールドを提示し、
前記第1および第2の複数のフィールドの選択された1つに対して集約関数を実施する要求を受信し、
選択のための複数の集約関数を提示する
ように装置を動作させる複数のプログラミング命令がその中に記憶された記憶媒体と、
前記プログラミング命令を実行するために前記記憶媒体に結合された少なくとも1つのプロセッサとを備える装置。 - 前記プログラミング命令は、実行時、第1のパート、前記第1のルックアップ・フィールド、第2のパート、所定の方法で前記第1のパートに連結されたルックアップされる前記第1の1つまたは複数のフィールドの対応する1つを含むマルチパート・フォームで前記第2の複数のフィールドの各々を提示するように装置を動作させる請求項28に記載の装置。
- 前記プログラミング命令が、実行時、
第2のフィールドのメンバーである前記第2のフィールドの選択を受信し、
前記選択された第2のフィールドが第3のテーブルの第3の複数のフィールドの第2の1つまたは複数をルックアップするための第2の指定ルックアップ・フィールドであるかどうかを判定し、
前記選択された第2のフィールドが前記第3のテーブルの前記第3の複数のフィールドの第2の1つまたは複数をルックアップするための第2の指定ルックアップ・フィールドであると判定された場合、選択のための前記第3の複数のフィールドを提示する
ように装置をさらに動作させる請求項29に記載の装置。 - 前記プログラミング命令が、実行時、
第1のパート、前記第1のルックアップ・フィールド、第2のパートと所定の方法で前記第1のパートに連結されたルックアップされる前記第1の1つまたは複数のフィールドの対応するフィールドを含む、前記第2の複数のフィールドの各々をマルチパート・フォームで提示し、
前記第1および第2のパート、第3のパートと所定の方法で前記第2のパートに連結されたルックアップされる前記第2の1つまたは複数のフィールドの対応するフィールドを含む、前記第3の複数のフィールドの各々をマルチパート・フォームで提示する
ように装置を動作させる請求項30に記載の装置。 - 前記第2のパート、ルックアップされる前記第1の1つまたは複数のフィールドの対応するフィールドが、1つまたは複数の所定の特殊文字を使用して、前記第1のパート、前記ルックアップ・フィールドと連結される請求項29に記載の装置。
- 前記プログラミング命令は、実行時、装置がSQLステートメントを発生することをさらに可能にし、グループ化された非ルックトアップ・フィールドと集約されたフィールドを備えるグループ化派生テーブルを生成する副照会を有するFROM句と1つまたは複数の選択されたフィールドが集約オペレーションをそれらの行値に対して実施させるべき場合、1つまたは複数のルックアップ・フィールドの対応する1つまたは複数ターゲット・テーブルとを、前記グループ化派生テーブルに接合する1つまたは複数のJOIN句を前記発生したSQLステートメントとともに含む請求項28に記載の装置。
- 前記プログラミング命令は、実行時、前記選択されたフィールドの適用可能なフィールドに対して実施すべき集約関数を含む、前記基礎テーブルの選択されたフィールドを列挙するSELECTステートメントの形態で前記副照会を発生することによって、SQLステートメントの前記条件付き発生を装置が実施することを可能にし、前記基礎テーブルを列挙する第1のFROM句とそれらの行値に対して実行するために選択された集約関数を有するとして識別されていない基礎テーブルの前記列挙された選択された1つまたは複数のフィールドを列挙するGROUP BY句を前記SELECTステートメントとともに含む請求項33に記載の装置。
- 前記プログラミング命令は、実行時、前記グループ化派生テーブルと前記1つまたは複数のターゲット・テーブルから選択すべき選択されたフィールドまたは複数のフィールド、前記副照会を列挙する第2のFROM句、前記グループ化派生テーブルの識別子を列挙するAS句と前記グループ化派生テーブル、前記1つまたは複数のターゲット・テーブルをそれぞれ接合する前記1つまたは複数のJOIN句を装置が列挙することをさらに可能にする請求項34に記載の装置。
- 前記集約関数がカウント関数(COUNT)、最小値識別関数(MIN)、最大値識別関数(MAX)、平均値計算関数(AVG)と値合計関数(SUM)の選択された1つである請求項28に記載の装置。
- 前記プログラミング命令が、実行時、
前記第1のテーブルの前記第1の複数のフィールドを指定し、
前記指定された第1のフィールドの1つまたは複数をルックアップ・フィールドとして指示し、
前記指示されたルックアップ・フィールド用にターゲット・テーブルを指定するように装置をさらに動作させる請求項28に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/038,412 US6988094B2 (en) | 2001-10-25 | 2001-10-25 | Multi-part looked-up table field and its use to in data processing operations involving multiple tables of a relational database |
US10/043,949 US7076482B2 (en) | 2001-10-25 | 2002-01-10 | Multi-part looked-up table fields and its use in data processing operations involving multiple tables of a relational database |
PCT/US2002/033859 WO2003036519A1 (en) | 2001-10-25 | 2002-10-22 | Multi-part looked-up table fields and its use in data processing operations involving multiple tables of a relational database |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005507121A true JP2005507121A (ja) | 2005-03-10 |
Family
ID=26715172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003538938A Pending JP2005507121A (ja) | 2001-10-25 | 2002-10-22 | マルチパート・ルックトアップ・テーブル・フィールドおよびリレーショナル・データベースの多数のテーブルを伴うデータ処理オペレーションにおけるその使用法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7076482B2 (ja) |
JP (1) | JP2005507121A (ja) |
WO (1) | WO2003036519A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008171316A (ja) * | 2007-01-15 | 2008-07-24 | Nec Corp | マッピングシステム、マッピング方法及びプログラム |
US7522040B2 (en) | 2004-04-20 | 2009-04-21 | Nanomix, Inc. | Remotely communicating, battery-powered nanostructure sensor devices |
US7547931B2 (en) | 2003-09-05 | 2009-06-16 | Nanomix, Inc. | Nanoelectronic capnometer adaptor including a nanoelectric sensor selectively sensitive to at least one gaseous constituent of exhaled breath |
US8993346B2 (en) | 2009-08-07 | 2015-03-31 | Nanomix, Inc. | Magnetic carbon nanotube based biodetection |
US9103775B2 (en) | 2002-01-16 | 2015-08-11 | Nanomix, Inc. | Nano-electronic sensors for chemical and biological analytes, including capacitance and bio-membrane devices |
US9291613B2 (en) | 2002-06-21 | 2016-03-22 | Nanomix, Inc. | Sensor having a thin-film inhibition layer |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6988094B2 (en) * | 2001-10-25 | 2006-01-17 | Bea Systems, Inc. | Multi-part looked-up table field and its use to in data processing operations involving multiple tables of a relational database |
US7392359B2 (en) * | 2003-10-01 | 2008-06-24 | Hewlett-Packard Development Company, L.P. | Non-blocking distinct grouping of database entries with overflow |
US7706050B2 (en) | 2004-03-05 | 2010-04-27 | Qualcomm Mems Technologies, Inc. | Integrated modulator illumination |
US20060129590A1 (en) * | 2004-12-10 | 2006-06-15 | Aoki-Rice Companies | Method and medium for managing data |
CN101268481A (zh) * | 2005-04-29 | 2008-09-17 | 斯普林伯德零售网络特许有限公司 | 在网络上管理产品购买信息 |
US20060254861A1 (en) * | 2005-04-29 | 2006-11-16 | Sprn Licensing Srl | Electronic shopping cart handle |
US8732597B2 (en) * | 2006-01-13 | 2014-05-20 | Oracle America, Inc. | Folded scrolling |
US8131729B2 (en) * | 2008-06-12 | 2012-03-06 | International Business Machines Corporation | System and method for best-fit lookup of multi-field key |
US20110320433A1 (en) * | 2010-06-25 | 2011-12-29 | Microsoft Corporation | Automated Joining of Disparate Data for Database Queries |
CN102314460B (zh) * | 2010-07-07 | 2014-05-14 | 阿里巴巴集团控股有限公司 | 数据分析方法、系统及服务器 |
US9122985B2 (en) | 2011-10-28 | 2015-09-01 | Microsoft Technology Licensing, Llc | Programmatic access to terminologies expressed in hierarchical form |
US9582585B2 (en) | 2012-09-07 | 2017-02-28 | Splunk Inc. | Discovering fields to filter data returned in response to a search |
US8788525B2 (en) * | 2012-09-07 | 2014-07-22 | Splunk Inc. | Data model for machine data for semantic search |
US20150019537A1 (en) | 2012-09-07 | 2015-01-15 | Splunk Inc. | Generating Reports from Unstructured Data |
US9740718B2 (en) | 2013-09-20 | 2017-08-22 | Oracle International Corporation | Aggregating dimensional data using dense containers |
US9836519B2 (en) | 2013-09-20 | 2017-12-05 | Oracle International Corporation | Densely grouping dimensional data |
US9990398B2 (en) * | 2013-09-20 | 2018-06-05 | Oracle International Corporation | Inferring dimensional metadata from content of a query |
US10642831B2 (en) | 2015-10-23 | 2020-05-05 | Oracle International Corporation | Static data caching for queries with a clause that requires multiple iterations to execute |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
CN109254977A (zh) * | 2018-07-18 | 2019-01-22 | 深圳市买买提信息科技有限公司 | 数据生成方法、大数据风控平台及计算机存储介质 |
CN109408541A (zh) * | 2018-09-03 | 2019-03-01 | 平安科技(深圳)有限公司 | 报表分解统计方法、系统、计算机设备和存储介质 |
US11222018B2 (en) | 2019-09-09 | 2022-01-11 | Oracle International Corporation | Cache conscious techniques for generation of quasi-dense grouping codes of compressed columnar data in relational database systems |
CN113656430B (zh) * | 2021-08-12 | 2024-02-27 | 上海二三四五网络科技有限公司 | 一种批量表数据自动扩充的控制方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3560662B2 (ja) * | 1994-12-06 | 2004-09-02 | 富士通株式会社 | 並列プロセッサ装置 |
US5706494A (en) * | 1995-02-10 | 1998-01-06 | International Business Machines Corporation | System and method for constraint checking bulk data in a database |
US6032144A (en) * | 1996-05-29 | 2000-02-29 | Lucent Technologies Inc. | Optimization of queries using relational algebraic theta-semijoin operator |
US5713015A (en) * | 1996-05-30 | 1998-01-27 | International Business Machines Corporation | Reordering of complex SQL queries involving GROUPBYs, joins, outer joins and full outer joins |
US6477534B1 (en) * | 1998-05-20 | 2002-11-05 | Lucent Technologies, Inc. | Method and system for generating a statistical summary of a database using a join synopsis |
US6327587B1 (en) * | 1998-10-05 | 2001-12-04 | Digital Archaeology, Inc. | Caching optimization with disk and/or memory cache management |
US6748374B1 (en) * | 1998-12-07 | 2004-06-08 | Oracle International Corporation | Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree |
-
2002
- 2002-01-10 US US10/043,949 patent/US7076482B2/en not_active Expired - Lifetime
- 2002-10-22 JP JP2003538938A patent/JP2005507121A/ja active Pending
- 2002-10-22 WO PCT/US2002/033859 patent/WO2003036519A1/en active Application Filing
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9103775B2 (en) | 2002-01-16 | 2015-08-11 | Nanomix, Inc. | Nano-electronic sensors for chemical and biological analytes, including capacitance and bio-membrane devices |
US9291613B2 (en) | 2002-06-21 | 2016-03-22 | Nanomix, Inc. | Sensor having a thin-film inhibition layer |
US7547931B2 (en) | 2003-09-05 | 2009-06-16 | Nanomix, Inc. | Nanoelectronic capnometer adaptor including a nanoelectric sensor selectively sensitive to at least one gaseous constituent of exhaled breath |
US7522040B2 (en) | 2004-04-20 | 2009-04-21 | Nanomix, Inc. | Remotely communicating, battery-powered nanostructure sensor devices |
JP2008171316A (ja) * | 2007-01-15 | 2008-07-24 | Nec Corp | マッピングシステム、マッピング方法及びプログラム |
JP4632056B2 (ja) * | 2007-01-15 | 2011-02-16 | 日本電気株式会社 | マッピングシステム、マッピング方法及びプログラム |
US8993346B2 (en) | 2009-08-07 | 2015-03-31 | Nanomix, Inc. | Magnetic carbon nanotube based biodetection |
Also Published As
Publication number | Publication date |
---|---|
US7076482B2 (en) | 2006-07-11 |
US20030131215A1 (en) | 2003-07-10 |
WO2003036519A1 (en) | 2003-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005507121A (ja) | マルチパート・ルックトアップ・テーブル・フィールドおよびリレーショナル・データベースの多数のテーブルを伴うデータ処理オペレーションにおけるその使用法 | |
US7451138B2 (en) | Multi-part looked-up table fields and its use in data processing operations involving multiple tables of a relational database | |
US6915290B2 (en) | Database query optimization apparatus and method that represents queries as graphs | |
US6418450B2 (en) | Data warehouse programs architecture | |
US6256627B1 (en) | System and method for maintaining a knowledge base and evidence set | |
US6219670B1 (en) | Method and apparatus for filtering a table list before opening with a graphical user interface | |
TW591440B (en) | Global query correlation attributes | |
Chamberlin et al. | SEQUEL 2: A unified approach to data definition, manipulation, and control | |
Motro | Integrity= validity+ completeness | |
US6490581B1 (en) | System and method for providing an object-oriented interface to a relational database | |
US6385600B1 (en) | System and method for searching on a computer using an evidence set | |
US7631012B2 (en) | System and method of operating a database | |
CA2588922C (en) | Computer readable medium, method and apparatus for preserving filtering conditions to query multilingual data sources at various locales when regenerating a report | |
US20050076015A1 (en) | Dynamic query building based on the desired number of results | |
US7844623B2 (en) | Method to provide management of query output | |
US7480674B2 (en) | Data storage and retrieval system with parameterized category definitions for families of categories and dynamically generated search indices | |
US7158969B2 (en) | Iterative data analysis process via query result augmentation and result data feedback | |
JP2003505766A (ja) | クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム | |
WO2005020103A1 (en) | Generic search engine framework | |
US20060116983A1 (en) | System and method for ordering query results | |
JP2003323324A (ja) | データ・リポジトリ抽象化層を介するアプリケーションの物理データ層の動的なエンド・ユーザ固有のカスタマイズ | |
WO2004095171A2 (en) | Rule application management in an abstract database | |
US20060117032A1 (en) | System and method for sorting data records contained in a query result | |
US20080319968A1 (en) | Processing query conditions having filtered fields within a data abstraction environment | |
US8065343B2 (en) | Data storage and retrieval system with optimized categorization of information items based on category selection |