JP5209001B2 - アクティビティの複数のインスタンスに関する情報を維持する方法 - Google Patents

アクティビティの複数のインスタンスに関する情報を維持する方法 Download PDF

Info

Publication number
JP5209001B2
JP5209001B2 JP2010160909A JP2010160909A JP5209001B2 JP 5209001 B2 JP5209001 B2 JP 5209001B2 JP 2010160909 A JP2010160909 A JP 2010160909A JP 2010160909 A JP2010160909 A JP 2010160909A JP 5209001 B2 JP5209001 B2 JP 5209001B2
Authority
JP
Japan
Prior art keywords
instance
record
data
active
olap
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.)
Expired - Fee Related
Application number
JP2010160909A
Other languages
English (en)
Other versions
JP2010262670A (ja
Inventor
ボノフ コズロフ ゲオルギ
ザカリー ジェーソン リチャード
アンソニー リール エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010262670A publication Critical patent/JP2010262670A/ja
Application granted granted Critical
Publication of JP5209001B2 publication Critical patent/JP5209001B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本特許文書の開示の一部には、著作権保護の対象となる内容が含まれる。著作権所有者は、米国特許庁の特許ファイルまたは記録に記載される通りにいかなる者が本特許文書または特許開示を複製することには異議を持たないが、その他の点ではすべての著作権を保有する。
本発明は、企業または他の組織のワークフローを監視する方法およびコンピュータシステムに関する。より詳細には、本発明は、アクティビティの複数のインスタンスについての情報を閲覧し、その情報を保持する方法に関する。
企業および他の組織で組織の活動についての情報を監視し、記録するために、コンピュータ、特にコンピュータデータベースアプリケーションが使用される。多くの場合、組織は、行わなければならない各種の工程や活動を有し、それらは頻繁に繰返し行われる。実際、組織が、所与の時に様々な完了段階にある多数のアクティビティインスタンスを有することは一般的である。一例として、企業は、顧客から受け取った注文に基づいて商品を販売する場合がある。当該アクティビティは例えばそれらの顧客注文の遂行であり、1件1件の購入注文がそのアクティビティの個別のインスタンスに相当する。ある特定の時に、その企業は、様々な完了段階にあるそのアクティビティの複数のインスタンス(すなわち複数の顧客からの複数の注文)を有する可能性がある。さらに別の例として、金融機関は、顧客からの申請に基づいて顧客に資金を貸し付ける場合がある。当該のアクティビティは、例えば貸付の申請を処理して完了する(すなわち承認または却下する)ことであり、1件1件の申請がそのアクティビティの個別のインスタンスに相当する。任意の特定の時に、様々な処理段階にある複数の貸付申請のインスタンスがある可能性がある。さらに別の例として、許可書の発行を担当する政治機関が、様々な処理中の段階にある複数の許可書の申請を有する場合がある。
あるアクティビティの多数のインスタンスを監視するために、多くの組織では、それらのアクティビティインスタンスについての情報をデータベースプログラムに格納している。詳細には、アクティビティのインスタンスごとにレコードまたは他のデータオブジェクトが作成されることができる。そして、そのレコードの別個のフィールドまたは他のコンポーネントが設定されて、各インスタンスに共通の何らかのタイプの情報についての値を保持する。上記の例の1つを具体例として使用すると、商品を販売する企業は、顧客の注文ごとに別個のデータベースレコードを作成することができる。そのレコード中には、その注文が受け取られた時間、注文者、注文内容、注文が発送された時間などについての個別のフィールドを設けることができる。このようなデータベースプログラムの使用法は、しばしば、テーブルとして概念化される。アクティビティの各インスタンスには、テーブルの別個の行(またはタプル(tuple))が割り当てられる。そして、複数のインスタンスに共通する各タイプの情報に、テーブルの別個の列が割り当てられる。
各アクティビティインスタンスのデータをデータベーステーブルに入れることにより、そのデータを各種の方式で分析することが可能になる。しかし、蓄積するレコードが増加するにつれてデータベースの有用性が低下する可能性がある。一日に何百あるいは何千件の注文を受け取る商品販売者のような大規模な企業の場合は、レコードの数が何十万あるいは何百万件にも達する場合がある。データベースが照会されるたびに、ディスクドライブまたは他の記憶装置を検索するのに有限量の時間が必要になる。同様に、新しいレコードが作成され、既存のレコードが更新される際には、それらの各レコードを作成または更新するのに有限量の時間が必要とされる。レコード数が増えるに従って、特定のレコードを見つけるのに必要な時間が増大する。何百人(あるいは何千人)ものユーザと何十万(あるいは何百万)ものデータベースレコードを有する企業あるいは組織では、データベースシステムへのアクセスの待ち時間が著しく長くなる場合があり、システムディスクが一杯になる可能性がある。
図1〜図3は、この問題をより詳細に示した図を提供し、且つ下記の「発明を実施するための最良の形態」で説明の拠所とする例も提供する。図1は、顧客の販売注文に応じて顧客に商品を販売する仮想上の卸し業による顧客の購入注文の処理を示すフローチャートである。便宜上、この企業をここでは「企業A」と称する。ブロック1で企業Aは購入注文を受け取り、その購入注文についてのデータベースレコードを作成し、注文受け取りの時刻も入力される。ブロック2および3で、注文された製品の量と注文者の住む都市に対応するレコードフィールドに追加のデータが入力される。ブロック4で、その購入注文が承認されるかどうかに関する判定が行われる。承認されない場合は、ブロック5でレコードの該当するフィールドにデータがとりこまれ、拒否の時間が記録される。購入注文が承認される場合は、受け付けが記録される。購入注文が承認される場合は、追加の情報が入力されることができる(ブロック6および7)。注文品が発送される際(ブロック8)に、別のフィールドに発送の時刻がとりこまれる。ブロック9および10でさらなるデータが入力されることができる(発送コンテナのタイプや運送業者など)。注文品が配達されると、配達の時刻が入力される(ブロック11)。
図2は、企業Aの購入注文インスタンスのデータベースの一部を表す表である。各注文が個別の行にあり、各列が注文のデータのタイプに対応する。簡潔にするために、図2には、図1のフローチャートで収集された情報の一部についての列だけを示す。あるフィールドはNULL値を含むが、これは、(この例では)特定のイベントについての値が、そのイベントがその特定の購入注文についてまだ行われていないので未知であることを意味する。このデータベースの典型的な照会は、例えば「1000ドル以上の先週提出された購入注文で、まだ受け付けも拒否もされていないのはどれか」である。このような照会は、テーブルに対するSQL(構造化照会言語)照会を介して実施されることができる。
付録Aに、図2のテーブルを作成するSQLコードの一実装(“create table PO_InstanceData”)と、図2のテーブルの行を更新するストアドプロシージャ(“create procedure PO_PrimaryImport”)を示す。このストアドプロシージャは、あるアクティビティインスタンス(この例では特定の購入注文)に対応するレコードを一意に識別するPONum引数と、テーブル中の列ごとに1つのパラメータを受け付ける。このストアドプロシージャの複数の引数により、レコードの更新または挿入を試みる前に、その呼び出しについての名前と値の対が(データを収集するアプリケーションプログラムのトランザクションロジックに基づいて)メモリに蓄積されることが可能になる。データベースレコードをロックして、そのレコードにアクセスするのに必要とされる処理オーバーヘッドのために、1つのコマンドでレコードの可能な限り多くの部分を更新(または挿入)する方が効率的である。ストアドプロシージャは初めに、あるPOについての何らかのデータがテーブルに存在すると仮定して、「更新」のステートメントを発行することによりレコードの非ヌルの列をオーバーライドすることを試みる。ここで関数「coalesce」が使用され、この関数は最初の非ヌルの引数を返す。更新されたレコードがない場合(@@rowcount=0)は、それがその購入注文に関連する最初の情報であることになり、すべての引数の値を持つレコードが挿入される(それらの引数がヌルであっても)。
Inside Microsoft(R) SQL SERVERTM 2000 by Karen Delaney (2001 Microsoft Press) Microsoft(R) SQL SERVERTM 2000 Books Online
付録Aのようなストアドプロシージャ(stored procedure)は、テーブルへの書き込みを試みるユーザまたはプログラミングスレッドが比較的少ない場合、および比較的レコードが少ない場合には十分である。不都合なことに、図3に示すように、テーブル中のレコード数が増加するに従って時間の経過とともにパフォーマンスが低下する。実線は、書き込みパフォーマンス(write perfomance)、すなわち1秒間に書き込まれることができるレコード数を表し、これは低レベルまで急速に低下する。逆に、ディスクI/Oの平均キュー長(点線)は、短時間で許容できる限界以上まで増大する。このパフォーマンスの低下は、テーブルサイズの増大の結果生じる。レコード数が比較的少ない時には、パフォーマンスは、まず、データベースサーバがトランザクションを行うことができる速度によって制限され、この速度はサーバの中央演算処理装置の容量によって決まる。時間の経過とともにレコード数が増えると(より多くの購入注文が受け取られ、処理されると)、パフォーマンスは急激に低下する。例えば、付録Aのストアドプロシージャの更新ステートメントが最初に実行されると、テーブル(図2)の一部がディスク(あるいは他の不揮発性メモリソース)からRAM(あるいは他のメモリシステム)に読み込まれる。総レコード数が少ない限り、サーバは、必要とされるデータの大半あるいはすべてをシステムメモリにキャッシュすることができる。後の更新で、システムメモリにすでにキャッシュされたレコードへのアクセスが必要となった場合、サーバはディスクを再度読み取る必要はない。しかし、レコード数がメモリ容量を超えると、各動作でディスクの物理的な読み取りが必要となる可能性がある。使用されるハードウェアによっては、ディスクの読み取り中はテーブルに対する他の照会(またはテーブルの更新)が妨げられる可能性がある。最終的に、その結果、応答時間がすべてのユーザにとって許容できないほど低速度になる。この問題は、オンライン分析処理(OLAP: On-Line Analytical Processing)やOLAPキューブ(cube)の作成など、テーブル中のデータのより複雑な操作が行われなければならない場合に悪化する可能性がある。
本発明は、アクティビティ(activity)の複数のインスタンス(instance)についての情報を保持(maintain)することに伴う上記および他の問題に対処する。本発明の一態様では、組織のアクティビティ(organization's activity)のアクティブなインスタンス(active instance)に対応するデータと、組織のアクティビティの非アクティブなインスタンス(inactive instance)に対応するデータに別個のデータベーステーブルが維持(maintain)される。別の態様では、アクティビティの非アクティブなインスタンスに対応するデータに対して複数のデータベーステーブルが維持されることができる。さらに別の態様では、アクティブインスタンステーブルのデータと、1つまたは複数の非アクティブなインスタンスのテーブルのデータが処理されて、組み合わされた分析データを生成する。
一実施形態では、本発明は、アクティビティの複数のインスタンスに関する情報を保持する方法を含む。各アクティビティインスタンスは、そのインスタンスについての情報が変更されるアクティブ状態か、またはそのインスタンスについての情報が変更されない非アクティブ状態を有する。本発明は、アクティブ状態にある複数の各インスタンスに対して第1のデータベーステーブルにレコードを作成することを含み、各レコードは、複数のデータタイプそれぞれに対応するフィールドを含み、各アクティブインスタンスのレコード中のフィールドの1つまたは複数は、アクティブ状態を表す値を有する。本方法はさらに、非アクティブ状態にある複数のインスタンスの各レコードについて、非アクティブ状態を表す値を1つまたは複数のフィールドに割り当てることを含む。本方法は、1つまたは複数のフィールドに非アクティブ状態を表す値を有する複数のインスタンスのレコードを第1のテーブルから削除すること、ならびに第1のテーブルから削除された各レコードに対して、対応するレコードを第2のデータベーステーブルに作成することも含む。
別の実施形態で、本方法は、第3およびそれに続くデータベーステーブルを作成すること、ならびに、後に続くデータベースを作成すると、1つ前に作成されたテーブルにレコードを作成することを中止することを含む。最後に作成されたテーブルを作成した後、かつその次の別のテーブルを作成する前に第1のテーブルから削除された各レコードについて、対応するレコードが最後に作成されたテーブルに作成される。さらに別の実施形態では、本方法は、第1のテーブルのレコードに第1のオンライン分析処理(OLAP)キューブを生成し、第2のテーブルのレコードに第2のOLAPキューブを生成し、第1のキューブと第2のキューブを組み合わせて仮想OLAPキューブとすることを含む。
本発明のこれらおよび他の特徴および利点は、添付図面と併せて以下の好ましい実施形態の詳細な説明を読むことにより容易に明らかになり、完全に理解されよう。
仮想の企業による顧客の購入注文の処理を示すフローチャートである。 仮想企業のデータベースの一部を示す図である。 時間の経過に伴うデータベースシステムのパフォーマンスの低下を示す線図である。 本発明の少なくとも1つの実施形態によるアクティブインスタンスのデータと完了インスタンスのデータについての別個のテーブルを示す図である。 本発明の少なくとも1つの実施形態による、まだ進行中のアクティビティについてのレコードを含むデータベーステーブルの一部を示す図である。 本発明の少なくとも1つの実施形態による、完了アクティビティのレコードを含むデータベーステーブルの一部を示す図である。 本発明の別の実施形態による、アクティブなインスタンスデータと完了インスタンスデータについての別個のテーブルを示す図である。 本発明の少なくとも1つの実施形態による、アクティブインスタンスのデータと完了インスタンスのデータを組み合わせたOLAP分析のデータ処理の流れを示す図である。
本発明は、2002年5月31日に出願された、「Support for Real-Time Queries Concerning Current State, Data and History of a Process」という名称の米国特許出願第10/157,968号明細書に記載される方法、装置、およびシステムと組み合わせて有利に使用されることができる。同文献の内容は参照により本明細書に組み込まれる。
本発明は、構造化照会言語(SQL)命令、およびワシントン州レドモンドのマイクロソフト社から入手可能なSQL SERVER(商標)2000リレーショナルデータベース管理システム(RDBMS)ソフトウェアとそれに関連付けられたOnline Analytical Processing(OLAP)サービスソフトウェアで得られるおよび他のデータ分析機能を参照して説明される。ここでは本発明の特定の実施形態を実施するために使用されることができるSQL命令のいくつかの態様が記載されるが、本発明を実施するために使用される他の命令、プログラミングアルゴリズム、およびプロシージャは、本明細書に提供される説明を得れば当業者には明らかになろう。SQL SERVER(商標)2000RDBMSソフトウェアおよびそれに関連付けられたOLAPサービスソフトウェアについての一般的な説明を<http://www.microsoft.com/sql/techinfo/productdoc/2000/>で入手可能な(非特許文献1)および(非特許文献2)を含む各種情報源から得ることができる。本発明は、SQL SERVER(商標)2000RDBMSソフトウェアとそれに関連付けられたOLAPサービスソフトウェアを使用した実施に限定されず、他のタイプのRDBMSおよびOLAPソフトウェアを使用して実施されることができる。
本発明は、サーバ上で動作し、1つまたは複数のクライアントからアクセスされるRDBMSソフトウェア(上述のSQL SERVER(登録商標)2000ソフトウェアなど)を参照しても説明される。そのような構成は、当技術分野で知られ、記載される(前に組み込まれた米国特許出願第10/157,968号明細書参照)。ただし、クライアント−サーバ構成は、本発明が実施されることができる方式の一例に過ぎない。本発明は、他の物理的システム構成でも実施されることができる。
本発明は、組織のアクティビティのアクティブなインスタンスに対応するデータと、限られた数の非アクティブなインスタンスに別個のテーブルを維持することにより、上記の問題の多くに対処する。例えば、多くの組織では、最も重要なアクティビティは、現在懸案中のアクティビティ、または最近完了されたアクティビティである。図1〜図3との関係で述べた仮想の企業Aの例に基づくと、企業Aの責任者は、現在まだ処理中の購入注文、すなわちまだ商品が配達されていない購入注文に最も関心がある。責任者はまた、比較的最近の期間に完了された(すなわち注文商品が過去数カ月内に配達された)購入注文にも関心がある。企業Aは本発明を説明するために作った仮想例であるが、実際の企業が、また処理過程にあるか、最近完了したインスタンスに関心を持つことは一般的である。例えば、多くの企業では、配達された商品に関する苦情の大半および支払い金の回収に関する問題の大半は、配達後の短い期間内に発生する。より前の期間内に履行された注文についてのデータが何らかの目的で必要とされる可能性はあるが、その必要性が生じるのは比較的まれである。同様に、多くの他のタイプの企業および組織も、まだ完了していないアクティビティのインスタンスと、限られた数の最近完了したアクティビティインスタンスに最も関心を持つ。
したがって、企業A(Business A)は、アクティブな注文と最近完了した注文についてのデータを別々のデータベーステーブルに保持(maintain)する。それらのテーブルの内容をアクティブな注文と最近完了した注文に限定することにより、データ量が比較的少なく保たれる。このようにすると、アクティブなインスタンスデータについてのテーブルを更新する、あるいはその他の理由でテーブルにアクセスする際のシステムパフォーマンスが図3に示すようには低下せず、完了インスタンスのテーブルにアクセスする際のパフォーマンスが低下しない。これは、このテーブルのレコードは挿入されるのみで、更新されることはないためである。図3の例と異なり、全体のパフォーマンスは時間の経過に伴い安定している。図4は、この概念を表すブロック図である。テーブル10は、アクティブな購入注文に関するデータについてのレコードを保持する。この例では、購入注文は、購入注文によって注文された商品がまだ顧客に配達されていない場合にアクティブとする。組織アクティビティのアクティブなインスタンスは、他の状況では別の形で定義されることが可能である。購入注文が完了されると、その購入注文のデータがテーブル12に移される。この例では、購入注文は、注文された商品が顧客に配達された時に完了する。アクティブなインスタンスと同様に、組織アクティビティの完了したインスタンスも他の状況では異なる形で定義されることができる。
新しい購入注文が受け取られると、テーブル10にレコードが作成される。図4にはテーブル10をブロックの形態で示し、図5は、テーブル10の一部をより詳細に示す。図2のテーブルと同様に、テーブル10は、各購入注文についての個々のレコード(行)と、各種タイプのデータについての個々のフィールド(列)を有する。この例では、「PONum」が購入注文番号である。「RecvTime」は購入注文が受け取られた日付であり、「City」は購入注文を発行した顧客が居住する都市であり、「Quantity」は注文された品目の数である。「ShipTime」は、購入注文の商品が発送された日付であり、「DeliveryTime」は、その商品が配達された日付である。商品がまだ発送されていない注文は、ShipTimeフィールドに<NULL>の入力を有する。図5のレコードの一部は、商品がまだ発送されていない購入注文を示す(PONum8680および8685〜87)。その購入注文の商品が発送されると「ShipTime」フィールドが更新される。図2のテーブルと異なり、テーブル10は、現在アクティブな購入注文、すなわち商品が配達されていない購入注文についてのデータに限定される。したがって、各レコードの「DeliveryTime」フィールドは、NULLの入力を有する。テーブル10は、「IsCompleted」フラグのための追加のフィールドも有する。0のIsComeleted値は、対応する購入注文が完了されていないことを表す。一部の実施形態では、IsCompletedは、テーブルを照会するユーザには表示されない「システム」フラグである。
購入注文が完了すると、その購入注文のレコードがアクティブなインスタンスデータのテーブル10から削除され、その購入注文の新しいレコードが完了インスタンスデータテーブル12に作成される(図4)。その新しいレコードは、テーブル10から削除されたレコードの複製であるが、DeliveryTimeのNULL値に優先する新しいデータを含み、IsCompletedフィールドを持たない。図6は、テーブル12の一部をより詳細に示す。図2および5のテーブルと同様に、テーブル12は、完了した各購入注文についての個々のレコードと、上記の各種タイプのデータについての個々のフィールド(PONum、RecvTime、City、Quantity、ShipTime、およびDeliveryTime)を有する。この例では購入注文は注文商品が配達された時に完了するように定義されるので、テーブル12のDeliveryTimeフィールドはそれぞれ非NULLの値を有する。テーブル12は、「RecordID」のための追加のフィールドを有する。下記でより詳細に説明するように、この値は、完了した購入注文についての各レコードがテーブル12に作成される時に増分的に生成される。図6のPONumフィールドとRecordIDフィールドの比較から分かるように、購入注文は、必ずしも、購入注文番号が割り当てられる順序と同じ順序で完了されない。したがって、RecordIDフィールドは、レコードが作成された順序でテーブル12のレコードを索引付けする機構を提供する。これにより、挿入のパフォーマンスがテーブルのサイズに依存しなくなり、したがって時間の経過とともに低下しないことが保証される。
テーブル10は現在アクティブな購入注文についてのデータに限定されるので、テーブル10のサイズは比較的小さいサイズを保つ。テーブルのサイズは企業の業務量が変動するのに伴って変動する可能性があるが、テーブルのサイズは無限に増大することはない。完了インスタンスデータテーブル12のサイズは、より多くの購入注文がActive/Incompleteの状態からInactive/Completeの状態に変化するのに従って増大する。ただし、完了インスタンスデータのテーブル12の増大は、アクティブなインスタンスと非アクティブなインスタンス両方についてのレコードを含む単一のデータベーステーブル(図2のようなテーブル)の増大ほど問題とならない。テーブル12にはレコードが挿入されるのみで、その後更新されることはないため、テーブル12にアクセスするたびに特定のレコードを探索する必要がない。すなわち、レコードが更新中であることがないので、レコードを挿入する前にテーブル12内で特定のレコードを見つける必要がない。
図4〜図6のテーブルを作成し、更新するSQLコードの一例が付録BおよびCに含まれる。付録Bの最初のステートメント(「create table PO_Active_InstanceData」)は、アクティブインスタンスデータのテーブル10を作成し、PONum、RecvTime、City、Quantity、ShipTime、DeliveryTime、およびIsCompletedの列を設定する。PONumがプライマリキーに指定される。すなわち、テーブル10の各行は、購入注文番号、すなわちPONumによって一意に識別される。同様に、次のステートメント(「create table PO_Completed_InstanceData」)は、完了インスタンスデータのテーブル12を作成し、PONum、RecvTime、City、Quantity、ShipTime、DeliveryTime、およびRecordIDの列を設定する。ただしテーブル12ではRecordIDがプライマリキーとされ、RecordIDには、SQLの「identity」プロパティを使用することにより、自動的に増分する値が与えられる。すなわち、PO_Completed_InstanceDataと名づけるテーブル(テーブル12)に新しい各レコードが追加されると、データベースサーバは1つ前のRecordID値を自動的に増分し、増分された値を追加されたレコードに挿入する。
次のステートメント「(create procedure PO_PrimaryImport)」は、テーブル10に新しいレコードを作成するか、またはテーブル10の既存のレコードを更新するために用いられるPO_PrimaryImportという名前のストアドプロシージャを作成する。PO_PrimaryImportストアドプロシージャは、テーブル10の1行の列に対応する5つの引数を有する。例えば、図5で購入注文8680を受け取ると、クライアントコンピュータは、データベースサーバに対して次のストアドプロシージャ呼び出しを発行する。
PO_PrimaryImport(8680,08/25/2003 17:19,Redmond,270...)
購入注文8681がそれまでPONum、RecvTime、City、およびQuantityのデータとともに入力されていた場合は、次のストアドプロシージャの呼び出しで発送時刻(ShipTime)を08/26/2003 0910に更新する。
PO PrimaryImport(8681.... 08/26/2003 0910,,)
08/26/2003午後12時の配達時刻(DeliveryTime)を反映するように購入注文8682のレコードを更新し、この購入注文を完了としてフラグで表す(IsCompleted=1)には、次の呼び出しが行われる:
PO_PrimaryImport(8682,,,,,08/26/2003 1200,1)
上記の情報をクライアントコンピュータに入力する人間のオペレータは、必ずしも上記のコマンドの1つをタイプ入力しないことに留意されたい。例えば、ユーザは、グラフィカルユーザインタフェースを介して情報を入力することができ、すると中間ソフトウェア(クライアントおよび/またはサーバで実行される)の1つまたは複数のレベルが、適切な構文でストアドプロシージャ呼び出しを生成する。別の例として、インターネットを介して自動的に注文が受け取られることができ、ウェブサーバソフトウェアが必要なSQLコマンドを生成することもできる。
PO_PrimaryImportのストアドプロシージャは、当該ストアドプロシージャに対する呼び出しから値を受け付け、それらの値を、ローカル変数@PONum、@RecvTime、@City、@Quantity、@ShipTime、@DeliveryTime、および@IsCompletedの1つまたは複数に割り当てる。次いで、ストアドプロシージャは、「挿入(insert)」ステートメントを介してそれらのローカル変数値をPO_Active_InstanceDataテーブル(テーブル10)に挿入することを試みる。ただし、それらのローカル変数を新しいレコードとしてテーブル10に挿入するのではなく、次いで付録Cのトリガ(「PO_CompletedTrigger」)が発動(fire)される。
付録Cを参照すると、ローカルの@PONum変数および@IsCompleted変数を宣言した後、トリガは「挿入後の(inserted)」システムテーブルからそれらの変数に値を割り当てる。挿入後のテーブルは自動的にデータベースサーバによって生成され、前に行われたPO_PrimaryImportストアドプロシージャの挿入ステートメント中に影響を受けた行のコピーを(RAMまたは他のシステムメモリに)一時的に格納する。この場合、挿入後のテーブルは、PO_PrimaryImportストアドプロシージャで渡された引数のコピーを含んでいる。すなわち、挿入後のテーブルは、ユーザが現在テーブル10に挿入あるいは更新しようとしている値を含む。
トリガはまず、渡されたIsCompletedビットの値が1に等しいかを調べ、1の場合は渡されたPONum値のレコードが完了していることを意味する。IsCompletedビットが1に等しい場合、トリガは次いで、完了した購入注文のレコードの値をPO_Completedインスタンスデータテーブル12の新しいレコードに挿入する。新しいテーブル12のレコードのPONumの値は、挿入後のテーブルから得られる(「select inserted.PONum」)。「coalesce」関数が使用されて、RecvTime、City、Quantity、ShipTime、およびDeliveryTimeの新しいテーブル12のレコードの値を得る。詳細には、coalesce関数は、自身の引数の中から最初の非ヌルの式を返す。例えば、「coalesce(inserted.RecvTime,po.RecvTime)」は、新しいテーブル12のレコードのRecvTimeの値を提供する。トリガはまず、挿入後のテーブルのRecvTimeの値が非NULLであるかどうかを調べる。非NULLである場合は、その値が新しいテーブル12のレコード中のRecvTimeの値として使用される。挿入後のテーブルのRecvTimeの値がNULLである場合は、トリガは、ユーザがPO_PrimaryImportのストアドプロシージャの呼び出しで挿入または更新しようとしていたテーブル10のレコードからRecvTimeの値を得る。coalesce関数の引数の1つは、コード部分「from inserted left join PO_Active_JnstanceData po on inserted.PONum=po.PONum」により必ず非NULLになる。詳細には、トリガコードのこの部分は、coalesce関数の各呼び出しにおける引数の値が、「挿入後」のテーブルのすべての行と、PONumの値が挿入後のテーブルのPONumの値と同じであるPO_Active_InstanceDataテーブル(テーブル10)のすべての行とからなるセットから得られることを指定する。例えば、PO_PrimaryImportのストアドプロシージャが呼び出されて自身のすべての引数に非NULLの値を渡した場合(すなわちその購入注文の商品が、その購入注文についてのデータが最初にシステムに入力された時点までに配達されている場合)、新しいテーブル12のレコードのRecvTimeの値は、挿入後のテーブルから得られることになる。しかし、PO_PrimaryImportストアドプロシージャが呼び出されて、RecvTimeの値がすでに存在するテーブル10中の既存レコードを更新した場合(すなわちRecvTimeの値がPO_PrimaryImportストアドプロシージャの呼び出しで渡されなかった場合)は、新しいテーブル12のレコードのRecvTimeの値は、テーブル10のその既存レコードから得られることになる。
RecvTimeの値を得ると、トリガは同様に、City、Quantity、ShipTime、およびDeliveryTimeのフィールドについて新しいテーブル12のレコードの値を得る。先に述べたように、サーバが自動的にRecordIDフィールドの値を供給する。トリガは次いで、完了した購入注文についてテーブル10のレコードを削除する(「delete from PO_Active_InstanceData where PONum=@PONum」)。ここでトリガは終了する(「return」)。
トリガを発動したPO_PrimaryImportストアドプロシージャの呼び出しで0のIsCompleted値が渡された場合、トリガはテーブル12に新しいレコードを作成しない。代わりに、トリガは、PO_PrimaryImportストアドプロシージャに対する呼び出し中で識別されたテーブル10のレコードを更新することを試みる(「update PO_Active_InstanceData」)。テーブル12に新しいレコードを作成するトリガの部分と同様に、coalesce関数が使用されて、挿入後のテーブルまたはテーブル10の既存のレコードから、更新後のテーブル10のレコードの値を得る。ただし、この場合は、coalesce関数の引数の値は、コード「from PO_Active_InstanceData po join inserted on po.PONum=inserted.PONum」によって提供される。詳細には、トリガコードのこの部分は、coalesce関数の引数の値が、PO_Active_InstanceDataテーブル(テーブル10)のすべての行と、PONumの値が同じである「挿入後」のテーブルのすべての行とからなるセットから得られることを指定する。
PO_PrimaryImportストアドプロシージャ(付録B)が呼び出されて、新しい、まだ完了していないレコードをテーブル10に追加した(すなわち商品がまだ配達されていない新しい購入注文のレコードを挿入した)場合は、トリガコードの「update PO_Active_InstanceData」の部分で更新される値はない。そのような場合は、PONumの値が挿入後のPONumの値と同じである既存のレコードがテーブル10にはないことになり、したがってテーブル10に更新すべきレコードがないことになる。テーブル10で更新されるレコードがない場合、またはテーブル12で挿入されるレコードがない場合、トリガは、これを@@rowcountシステム関数で検出する。詳細には、@@rowcount関数は、前に行われた更新ステートメントで影響された行がない場合は0の値を返す。@@rowcount関数が0を返す場合、トリガコードの「insert PO_Active_InstanceData select * from inserted」部分は、「挿入後」のテーブルの値を用いてテーブル10に新しいレコードを挿入する。
本発明の別の実施形態では、完了インスタンスデータテーブルのデータ量が制限される。上述のように、このテーブル(図4のテーブル12)の増大は、テーブル2のようなテーブルの増大ほど問題とならない。しかし、それでもテーブル4は時間の経過とともに増大し続ける。テーブルのレコードが一切更新されない場合(すなわちレコードが挿入されるのみの場合)、テーブルは最終的には非常に大きくなり、システムディスクの容量が超えられるか、またはテーブル中のデータに対する照会が完了するのに許容できないほど長い時間がかかるようになる。先に述べたように、企業Aの責任者は、完了した購入注文のデータは、比較的最近完了した購入注文のみについて必要であると判断している。しかし、テーブル12からのレコードの削除には時間がかかる可能性がある。多くのソフトウェア環境では、そのような削除は行単位で行われなければならない。すなわちレコードごとに行ロックを得、その行が完了とマークされなければならない。実際には、行を削除するには、行を挿入または更新する際と同等の時間が必要となる可能性がある。
したがって、図7に示すように、完了インスタンスデータについて複数のテーブルが作成される。この実施形態では、付録BおよびCのコードが先に説明したように動作してテーブル10から完了した購入注文のレコードを削除し、テーブル12にそれに対応する新しいレコードを作成する。ただし、テーブル12は無制限に増大することは許されない。周期的な間隔(例えば毎月など)で、テーブル12は、一意のパーティション名で名前が付け替えられ、その名前を付け替えたテーブルにはそれ以上のレコードは追加されない。そして、名前を変更したテーブルの以前の名前を持つ新しい(空の)テーブル12(「PO_Completed_InstanceData」)が作成される。これ以降、トリガは、新しいテーブルにレコードを挿入する。1カ月後(あるいは他の事前に選択された期間後)にこのテーブルも名前を付け替えられ、別のテーブル12が作成される。名前を付け替えたテーブルが選択された期間(例えば6カ月)にわたり保持されると、テーブル全体が削除される。個々のレコードの削除と異なり、テーブル全体は迅速に削除されることができる。一実施形態では、テーブルは、SQLの「drop table」コマンドを使用して除去される。完了インスタンスデータテーブルが削除される際、そのテーブル中のデータは必ずしも失われない。例えば、削除されたテーブルは、drop table関数を呼び出す前にテーブル中のデータをテープまたは他のタイプの記憶媒体に転送することにより保管されることができる。他の実施形態では、周期的な間隔で新しいテーブル12を作成するのではなく、テーブル12のサイズがあるレベルに達すると新しいテーブル12が作成される。
アクティブインスタンステーブルと完了インスタンステーブル(completed instance table)のすべてのデータを利便に閲覧および照会できるように(すなわち個々のテーブルごとに別個の照会が必要でないように)、アクティブインスタンスと完了インスタンスのテーブル(あるいはそれらのテーブルの何らかの所望の下位グループ化)がパーティションに分割された1つのビューにまとめられることができる。少なくとも1つの実施形態では、テーブルは、「union all select*...」のSQLステートメントで組み合わせることができる。テーブルを組み合わせたこのビューは、完了インスタンスデータテーブルの1つが除去されるたび(あるいは、新しい完了インスタンスデータテーブルが作成されるたび)に、再度作成されることができる。
本発明の別の態様では、アクティブなインスタンステーブルおよび完了インスタンステーブルのデータがさらに処理されて追加の分析データを提供する。例示として、企業Aが、現在アクティブな購入注文データと、最近完了した購入注文のデータをまとめて分析したいとする。企業Aは、例えば、組み合わせられたデータの1つまたは複数のOLAPキューブを作成したいと考える。ここでも、本発明を説明するために用いる企業Aの仮想的な性質に関わらず、実際の組織は、組織のアクティビティのアクティブなインスタンスと完了インスタンスの両方を反映するOLAPキューブを生成する必要性も有する。
図8は、少なくとも1つの実施形態における、アクティブインスタンスと完了(completed)インスタンスのデータを組み合わせたOLAP分析のデータ処理の流れを示す。ストアドプロシージャ(「BeginDataProcessing」)が周期的な間隔で、例えば毎晩実行される。このプロシージャはまず、アクティブインスタンスデータテーブル(テーブル10)のコピーを作成する。このテーブルは比較的小さく保たれるので、このコピーは、比較的迅速に作成されることができる。次いで、そのコピー中のデータがデータ変換サービス(DTS)(図示せず)に渡されて、スタースキーマに入れられ、次いで完全に処理されてアクティブインスタンスデータのOLAPキューブ30とされる。BeginDataProcessingのストアドプロシージャは、増分ウィンドウ中にある完了インスタンスデータの一部も得る。詳細には、BeginDataProcessingプロシージャが完了インスタンスデータを得るたびに、データベースサーバは、得られた最後のレコードのRecordID値を記憶する。先に述べたように、この値は、レコードが作成された際にサーバによって増分的に割り当てられたものである。前回のBeginDataProcessingプロシージャの実行中に得られた最後の完了インスタンスデータレコードの記憶されたRecordID値を参照することにより、その前回の実行以降に作成されたレコードだけが現在の操作で得られる。増分ウィンドウは、アクティブなインスタンスデータと完了インスタンスデータについての複数のテーブル/パーティションを含む、パーティション化されたビューの上に作成される特別なビューとして実施される。このようにして、増分ウィンドウは、複数のパーティションからのデータを含むことができる。例えば、BeginDataProcessingプロシージャが週に一度実行される場合は、前回のBeginDataProcessingストアドプロシージャの実行以降に新しい完了インスタンスデータテーブルが作成されていて、複数の完了インスタンスデータテーブルからのデータが処理される必要がある可能性がある。少なくとも1つの実施形態では、BeginDataProcessingストアドプロシージャは、アクティブインスタンスデータテーブルのコピーと、完了インスタンスデータテーブルからのレコードを同時に取得する。そうでない場合は、BeginDataProcessingプロシージャによりコピーした後に、完了インスタンスデータテーブルからのレコードを得る前に、アクティブインスタンスデータテーブルから購入注文が移されることもできる。これが行われる場合は、同じ購入注文が2度処理され、データ分析の精度が損なわれることになる。
BeginDataProcessingプロシージャは、前回BeginDataProcessingが実行されて以降に作成された増分していく完了インスタンスデータレコードをDTSに渡す。DTSは次いで、その増分データを、完了インスタンスデータの以前の処理からのデータをすでに含んでいるスタースキーマに入れる。そして、完了インスタンスデータのスタースキーマ(その時点で、最近完了したインスタンスデータレコードからの増分データを含んでいる)が使用されて完了インスタンスのOLAPキューブ32を更新する。完了インスタンスのスタースキーマと同様に、OLAPキューブ32は、以前のセッションで処理されたレコードについての情報を含んでいる。次いでOLAPキューブ30と32が組み合わされて単一の仮想OLAPキューブ34とされる。OLAPキューブ32が情報を含んでいる完了レコードの数は、時間の経過とともに非常に多くなる可能性がある。しかし、完了インスタンスデータを増分的に処理し、その処理の結果を以前に処理された完了インスタンスデータと組み合わせることにより、比較的少ない時間量でOLAPキューブ32(およびしたがって仮想OLAPキューブ34)が生成されることができる。すなわち、完了インスタンスデータの再処理が防止されることができる。
仮想(virtual)OLAPキューブ34は、ユーザに、過去の購入注文と進行中(すなわちアクティブな)購入注文両方についての情報を含む企業の「スナップショット」を提供する。キューブ30〜34を処理するデータ変換サービス(DTS)パッケージが、夜間または他のオフピーク時に実行されるようにスケジュールされることができる。
本発明について仮定的な企業タイプを一例として使用して説明したが、本発明は特定のタイプの企業、組織、あるいはアクティビティに限られないことを思い出されたい。実際、本発明は、完了インスタンスデータが完了インスタンスデータの経過時間に基づいて保持される実施に限定されない。過去数カ月の間に完了した購入注文についてのデータを保持する代わりに、別の組織は、迅速にアクセスできるように非アクティブなインスタンスデータを保持するために何らかの他の基準を使用することができる。単なる一例として、調査会社が、いくつかの土地区画についてのデータには迅速にアクセスしたいが、他の区画についてのデータにはあまり頻繁にアクセスしない場合がある。したがって、本発明を実施する特定の例について説明したが、当業者は、特許請求の範囲に述べられる本発明の主旨および範囲に該当する上記のシステムおよび技術の多数の変形例および交換例があることを理解されよう。それらおよびその他の変更は、頭記の特許請求の範囲で定義される本発明の範囲内にある。
Figure 0005209001
Figure 0005209001
Figure 0005209001
10 アクティブインスタンスデータ
12 完了インスタンスデータ

Claims (2)

  1. 中央処理装置(CPU)と、メモリと、データ記憶媒体とを少なくとも含 むコンピュータシステムによって実行される、 アクティビティのインスタンスについて分析データを増分的に生成する方法であって、各インスタンスは、前記インスタンスについての情報が変更されるアクティブ状態か、または前記インスタンスについての情報が変更されない非アクティブ状態を有し、前記方法は、
    前記CPUが、
    前記データ記憶媒体にストアされ、前記アクティブ状態にあるインスタンスに関連付けられたデータベースレコードの最初の集合を処理することにより、第1のオンライン分析処理(OLAP)キューブを生成するステップと、
    前記データ記憶媒体にストアされ、前記非アクティブ状態にあるインスタンスに関連付けられたデータベースレコードの最初の集合を処理することにより、第2のOLAPキューブを生成するステップと、
    前記第1のOLAPキューブと前記第2のOLAPキューブを組み合わせて仮想OLAPキューブとするステップと、
    前記処理がされた前記非アクティブなインスタンスに関連付けられたデータベースレコードの前記最初の集合に最後に割り当てられたレコードIDに基づいて、前記第2のOLAPキューブを形成するのに処理されていない非アクティブなインスタンスレコードの後の集合を識別するステップと
    前記最後に割り当てられたレコードIDを参照することによって、前記後の集合の増分データに基づいて、前記第2のOLAPキューブを更新するステップと、
    アクティブインスタンスのデータベースレコードの後の集合について次の第1のOLAPキューブを生成するステップと、
    前記次の第1のOLAPキューブと、前記更新された第2のOLAPキューブとを組み合わせて、引き続く仮想OLAPキューブとするステップと
    をさらに備え、
    前記アクティブインスタンスのデータベースレコードの後の集合は、前記第1のOLAPキューブを生成するのに処理されていないアクティブインスタンスレコードを含み、
    前記非アクティブインスタンスのデータベースレコードの後の集合は、前記第1のOLAPキューブが生成された時にアクティブであったインスタンスに関連付けられ、かつ、関連付けられたアクティブなインスタンスが処理されて前記第1のOLAPキューブを生成していたレコードを含むことを特徴とする方法。
  2. 前記非アクティブ状態にあるインスタンスに関連付けられたデータベースレコードの前記集合の少なくとも一部は、周期的な間隔で、または、前記データ記憶媒体にストアされた前記データベースレコードが所定のサイズに達したときに、新たな名前を付けられたテーブルのパーティションに移動されることを特徴とする請求項1に記載の方法。
JP2010160909A 2003-09-26 2010-07-15 アクティビティの複数のインスタンスに関する情報を維持する方法 Expired - Fee Related JP5209001B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/670,276 US8315972B2 (en) 2003-09-26 2003-09-26 Method for maintaining databases information about multiple instances of an activity generating, updating virtual OLAP cube based on modified star-schema
US10/670,276 2003-09-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004209176A Division JP2005108187A (ja) 2003-09-26 2004-07-15 アクティビティの複数のインスタンスに関する情報を維持する方法

Publications (2)

Publication Number Publication Date
JP2010262670A JP2010262670A (ja) 2010-11-18
JP5209001B2 true JP5209001B2 (ja) 2013-06-12

Family

ID=34194820

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004209176A Pending JP2005108187A (ja) 2003-09-26 2004-07-15 アクティビティの複数のインスタンスに関する情報を維持する方法
JP2010160909A Expired - Fee Related JP5209001B2 (ja) 2003-09-26 2010-07-15 アクティビティの複数のインスタンスに関する情報を維持する方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004209176A Pending JP2005108187A (ja) 2003-09-26 2004-07-15 アクティビティの複数のインスタンスに関する情報を維持する方法

Country Status (5)

Country Link
US (1) US8315972B2 (ja)
EP (1) EP1519289A1 (ja)
JP (2) JP2005108187A (ja)
KR (1) KR20050030848A (ja)
CN (1) CN100437567C (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149736B2 (en) * 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
US8234623B2 (en) * 2006-09-11 2012-07-31 The Mathworks, Inc. System and method for using stream objects to perform stream processing in a text-based computing environment
US8095474B2 (en) * 2006-11-29 2012-01-10 Caterpillar Inc. Method for processing advanced ship notices (ASNs)
US9715710B2 (en) * 2007-03-30 2017-07-25 International Business Machines Corporation Method and system for forecasting using an online analytical processing database
US7870110B2 (en) * 2008-02-27 2011-01-11 International Business Machines Corporation Method and system for generating a transaction-bound sequence of records in a relational database table
CN102708416B (zh) * 2012-05-10 2015-11-25 华为软件技术有限公司 一种用户订购业务的方法、设备和系统
US9747313B2 (en) * 2012-12-19 2017-08-29 Sap Se Timeline index for managing temporal data
US9128965B1 (en) * 2013-08-07 2015-09-08 Amazon Technologies, Inc. Configurable-capacity time-series tables
US10318970B2 (en) 2013-10-04 2019-06-11 International Business Machines Corporation Generating a succinct approximate representation of a time series
US10395198B2 (en) 2013-10-04 2019-08-27 International Business Machines Corporation Forecasting a time series based on actuals and a plan
CN104008133B (zh) * 2014-05-06 2017-08-01 烽火通信科技股份有限公司 基于碰撞探测的行级锁定集合实现装置及方法
US10339467B2 (en) 2015-06-02 2019-07-02 International Business Machines Corporation Quantitative discovery of name changes
US10262054B2 (en) * 2016-01-21 2019-04-16 Microsoft Technology Licensing, Llc Database and service upgrade without downtime
JP6963433B2 (ja) * 2017-07-21 2021-11-10 株式会社日立情報通信エンジニアリング 行動特徴量解析システムおよび行動特徴量解析方法
US10853349B2 (en) 2017-08-09 2020-12-01 Vmware, Inc. Event based analytics database synchronization
US11687567B2 (en) * 2017-09-21 2023-06-27 Vmware, Inc. Trigger based analytics database synchronization
CN108595541A (zh) * 2018-04-08 2018-09-28 上海康斐信息技术有限公司 一种数据抽取质量的测试方法及系统

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0754485B2 (ja) 1987-07-15 1995-06-07 富士通株式会社 データセット管理装置
US5319780A (en) 1987-10-19 1994-06-07 International Business Machines Corporation System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued
US5713020A (en) 1993-09-02 1998-01-27 Microsoft Corporation Method and system for generating database queries containing multiple levels of aggregation
US5537589A (en) 1994-06-30 1996-07-16 Microsoft Corporation Method and system for efficiently performing database table aggregation using an aggregation index
US6519601B1 (en) * 1996-05-22 2003-02-11 Universitaire Ziekenhuizen Leuven Relational database compiled/stored on a memory structure providing improved access through use of redundant representation of data
ATE211839T1 (de) * 1996-05-22 2002-01-15 Universitaire Ziekenhuizen Leu Relationelle datenbank die in einer speicherstruktur compiliert und gespeichert ist
US5819293A (en) * 1996-06-06 1998-10-06 Microsoft Corporation Automatic Spreadsheet forms
US5822751A (en) 1996-12-16 1998-10-13 Microsoft Corporation Efficient multidimensional data aggregation operator implementation
US5852818A (en) * 1996-12-23 1998-12-22 Oracle Corporation Non-recursive method for parameter evaluation within an information management system
US6643696B2 (en) * 1997-03-21 2003-11-04 Owen Davis Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6301616B1 (en) 1997-04-11 2001-10-09 Microsoft Corporation Pledge-based resource allocation system
US5978796A (en) 1997-06-30 1999-11-02 International Business Machines Corporation Accessing multi-dimensional data by mapping dense data blocks to rows in a relational database
US5943668A (en) 1997-06-30 1999-08-24 International Business Machines Corporation Relational emulation of a multi-dimensional database
US5926818A (en) 1997-06-30 1999-07-20 International Business Machines Corporation Relational database implementation of a multi-dimensional database
US5905985A (en) 1997-06-30 1999-05-18 International Business Machines Corporation Relational database modifications based on multi-dimensional database modifications
US6205447B1 (en) 1997-06-30 2001-03-20 International Business Machines Corporation Relational database management of multi-dimensional data
US5940818A (en) 1997-06-30 1999-08-17 International Business Machines Corporation Attribute-based access for multi-dimensional databases
US6070165A (en) * 1997-12-24 2000-05-30 Whitmore; Thomas John Method for managing and accessing relational data in a relational cache
CA2326513C (en) 1998-03-27 2009-06-16 Informix Software, Inc. Processing precomputed views
US6477525B1 (en) * 1998-12-28 2002-11-05 Oracle Corporation Rewriting a query in terms of a summary based on one-to-one and one-to-many losslessness of joins
US6502086B2 (en) 1999-01-04 2002-12-31 International Business Machines Corporation Mapping binary objects in extended relational database management systems with relational registry
SE515459C2 (sv) * 1999-02-10 2001-08-06 Ericsson Telefon Ab L M Metod för att synkronisera en värddatabas och en fjärrdatabas
US6430565B1 (en) 1999-06-22 2002-08-06 Microsoft Corporation Path compression for records of multidimensional database
US6442560B1 (en) 1999-06-22 2002-08-27 Microsoft Corporation Record for multidimensional databases
US6438537B1 (en) 1999-06-22 2002-08-20 Microsoft Corporation Usage based aggregation optimization
US6374263B1 (en) 1999-07-19 2002-04-16 International Business Machines Corp. System for maintaining precomputed views
US6801915B1 (en) * 1999-07-28 2004-10-05 Robert Mack Paired keys for data structures
US6581054B1 (en) * 1999-07-30 2003-06-17 Computer Associates Think, Inc. Dynamic query model and method
US6408292B1 (en) * 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
US6546395B1 (en) 1999-08-30 2003-04-08 International Business Machines Corporation Multi-dimensional restructure performance by selecting a technique to modify a relational database based on a type of restructure
US6542895B1 (en) 1999-08-30 2003-04-01 International Business Machines Corporation Multi-dimensional restructure performance when adding or removing dimensions and dimensions members
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
US6647415B1 (en) 1999-09-30 2003-11-11 Hewlett-Packard Development Company, L.P. Disk storage with transparent overflow to network storage
JP2001125811A (ja) 1999-10-27 2001-05-11 Itoki Crebio Corp 情報ネットワークシステム
US6700590B1 (en) * 1999-11-01 2004-03-02 Indx Software Corporation System and method for retrieving and presenting data using class-based component and view model
US7328233B2 (en) * 2000-01-19 2008-02-05 Corybant, Inc. Method and apparatus for implementing an active information model
US6516322B1 (en) 2000-04-28 2003-02-04 Microsoft Corporation XML-based representation of mobile process calculi
US20030061506A1 (en) * 2001-04-05 2003-03-27 Geoffrey Cooper System and method for security policy
US6601062B1 (en) * 2000-06-27 2003-07-29 Ncr Corporation Active caching for multi-dimensional data sets in relational database management system
US6801921B2 (en) * 2000-09-08 2004-10-05 Hitachi, Ltd. Method and system for managing multiple database storage units
JP4895437B2 (ja) 2000-09-08 2012-03-14 株式会社日立製作所 データベース管理方法およびシステム並びにその処理プログラムおよびそのプログラムを格納した記録媒体
US6603839B1 (en) 2000-09-13 2003-08-05 International Business Machines Corporation Automatic transfer of electronic directory entries from directory assistance service to a directory within an electronic communication device
US6725287B1 (en) * 2000-11-09 2004-04-20 Elity Systems, Inc. Method and system for capturing streaming data by an actionable information engine
US20020138316A1 (en) * 2001-03-23 2002-09-26 Katz Steven Bruce Value chain intelligence system and methods
US20020178077A1 (en) * 2001-05-25 2002-11-28 Katz Steven Bruce Method for automatically invoking a software module in response to an internal or external event affecting the procurement of an item
US6996567B2 (en) * 2001-05-31 2006-02-07 Heuristic Physics Laboratories, Inc. Automatic generation of join graphs for relational database queries
US7325193B2 (en) * 2001-06-01 2008-01-29 International Business Machines Corporation Automated management of internet and/or web site content
US20030009705A1 (en) * 2001-07-09 2003-01-09 Michael Thelander Monitoring and synchronization of power use of computers in a network
US8526751B2 (en) 2001-08-24 2013-09-03 International Business Machines Corporation Managing image storage size
US20030055677A1 (en) * 2001-09-14 2003-03-20 Automated Energy, Inc. Utility monitoring and management system
CN1438596A (zh) * 2002-02-10 2003-08-27 宫本保 进度表管理方法
US6691102B2 (en) * 2002-03-26 2004-02-10 International Business Machines Corporation Query processing method of name-value pairs in relational databases
US7080081B2 (en) * 2002-04-15 2006-07-18 International Business Machines Corporation Multidimensional data clustering scheme for query processing and maintenance in relational databases
CA2425297A1 (en) * 2002-04-15 2003-10-15 Exchange Synergism Ltd. Method, system and apparatus for measuring and analyzing business volume
US6748288B2 (en) * 2002-04-30 2004-06-08 Macronix International Co., Ltd. Semiconductor wafer manufacturing execution system with recipe distribution management database
JP4214712B2 (ja) * 2002-05-16 2009-01-28 株式会社日立製作所 データベースのページ確保処理方法
US7249118B2 (en) * 2002-05-17 2007-07-24 Aleri, Inc. Database system and methods
US7249152B2 (en) * 2002-05-24 2007-07-24 Oracle International Corporation Dynamic disk space management by multiple database server instances in a cluster configuration
US7571187B2 (en) * 2002-05-31 2009-08-04 Microsoft Corporation Support for real-time queries concerning current state, data and history of a process
US7107340B2 (en) * 2002-05-31 2006-09-12 Microsoft Corporation System and method for collecting and storing event data from distributed transactional applications
US7010542B2 (en) * 2002-07-20 2006-03-07 Microsoft Corporation Result set formatting and processing
US7318056B2 (en) * 2002-09-30 2008-01-08 Microsoft Corporation System and method for performing click stream analysis
US7467125B2 (en) * 2002-12-12 2008-12-16 International Business Machines Corporation Methods to manage the display of data entities and relational database structures
US7181450B2 (en) * 2002-12-18 2007-02-20 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
US7953694B2 (en) * 2003-01-13 2011-05-31 International Business Machines Corporation Method, system, and program for specifying multidimensional calculations for a relational OLAP engine
US7149736B2 (en) * 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
US7693916B2 (en) * 2004-01-05 2010-04-06 Microsoft Corporation Correlating process instance data across multiple applications
US7447718B2 (en) * 2004-04-26 2008-11-04 Right90, Inc. Real-time operating plan data aggregation
US20110029478A1 (en) * 2009-05-20 2011-02-03 Broeker Stephen A Stream Star Schema and Nested Binary Tree for Data Stream Analysis
US8204901B2 (en) * 2009-09-02 2012-06-19 International Business Machines Corporation Generating query predicates for processing multidimensional data

Also Published As

Publication number Publication date
JP2010262670A (ja) 2010-11-18
CN100437567C (zh) 2008-11-26
EP1519289A1 (en) 2005-03-30
KR20050030848A (ko) 2005-03-31
JP2005108187A (ja) 2005-04-21
CN1601527A (zh) 2005-03-30
US8315972B2 (en) 2012-11-20
US20050071341A1 (en) 2005-03-31

Similar Documents

Publication Publication Date Title
JP5209001B2 (ja) アクティビティの複数のインスタンスに関する情報を維持する方法
JP4828102B2 (ja) 自己維持型リアルタイム・データ集約
US10740283B2 (en) Using point-in-time views in a database
US7350237B2 (en) Managing access control information
US7308704B2 (en) Data structure for access control
US6363388B1 (en) Apparatus and system for an adaptive data management architecture
US6081810A (en) Report database system
US6157928A (en) Apparatus and system for an adaptive data management architecture
US7421740B2 (en) Managing user authorizations for analytical reporting based on operational authorizations
US20030023622A1 (en) Manual activity persistence in content management workflow systems
US20100088284A1 (en) Archiving system for massive databases using pre-computed data lifecycles
US20180239675A1 (en) Non-destructive data storage
US20060224617A1 (en) Unstructured business metadata manager
WO2001093104A2 (en) System and method for retrieving data from a database using a data management system
US20050149475A1 (en) Correlating process instance data across multiple applications
US7571171B1 (en) Smart trigger for use in processing business transactions
Ivongbe et al. Application of database management system in the library of Federal University, Lafia
US20070260983A1 (en) Method for providing a summary of user activities
Ekowati et al. Development of Warehouse Data Models to Support JNE Delivery Services
EP1324229A2 (en) Using point-in-time views to provide varying levels of data freshness
US20090106293A1 (en) Multidimensional forecasting

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120907

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130220

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees