JP2001350656A - 異種データソース統合アクセス方法 - Google Patents

異種データソース統合アクセス方法

Info

Publication number
JP2001350656A
JP2001350656A JP2000174201A JP2000174201A JP2001350656A JP 2001350656 A JP2001350656 A JP 2001350656A JP 2000174201 A JP2000174201 A JP 2000174201A JP 2000174201 A JP2000174201 A JP 2000174201A JP 2001350656 A JP2001350656 A JP 2001350656A
Authority
JP
Japan
Prior art keywords
data
distributed index
program
index
column
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.)
Granted
Application number
JP2000174201A
Other languages
English (en)
Other versions
JP4483034B2 (ja
JP2001350656A5 (ja
Inventor
Shigekazu Inohara
茂和 猪原
Itaru Nishizawa
格 西澤
Akira Shimizu
清水  晃
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000174201A priority Critical patent/JP4483034B2/ja
Priority to US09/791,808 priority patent/US20020049747A1/en
Publication of JP2001350656A publication Critical patent/JP2001350656A/ja
Priority to US11/010,266 priority patent/US20050091210A1/en
Publication of JP2001350656A5 publication Critical patent/JP2001350656A5/ja
Application granted granted Critical
Publication of JP4483034B2 publication Critical patent/JP4483034B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases

Abstract

(57)【要約】 【課題】リレーショナルデータベース管理システムに格
納されたデータのみならず、レガシーAPや三次記憶
等、問合せを効率的に実行できないデータソースに格納
されたデータを統合し、かつ高速な問合せを実現する課
題。 【解決手段】データソースに対する分散インデックスを
データベースハブにあらかじめ生成しておき、分散イン
デックス適用部が分散インデックスを用いた問合せの変
形と分解を行う。 【効果】問合せを効率的に実行できないデータソースに
格納されたデータに対する高速な問合せを実現する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータシステ
ムに関し、特に1つ以上のデータベースを用いてユーザ
の問合せを処理するデータ処理システムに関する。
【0002】
【従来の技術】現在、企業の計算機システムには、多数
のデータが存在している。これらのデータは、歴史的に
企業の発展とともに目的別に追加されてきたものであ
る。現在、業種間の規制緩和が急速に進展しており、こ
れに伴い各企業は新規業務を追加していく傾向が強い。
この際、新規業務の導入に伴って、さらに新たなデータ
が導入される場面が多くなっている。これらのデータ
は、格納方法、形式などがまちまちである。例えば、リ
レーショナルデータベース管理システム中のデータベー
ス、ファイルシステム中のフラットファイル、光磁気デ
ィスクアーカイブ、表計算ソフトウェアのデータファイ
ル等である。本明細書では、これらのデータ格納方法や
形式のことをデータソースと呼ぶ。
【0003】一方、規制緩和に伴い、各企業は他企業に
ない新たなサービスなどにより顧客によりよいサービス
を提供し、その結果優良な顧客をより多く獲得しようと
試みている。この際、多種のデータソース群に蓄積され
た過去の企業活動、顧客動向などを分析する必要性が高
まり、データウェアハウスやデータマートの構築を行う
企業が非常に多くなっている。
【0004】データウェアハウスやデータマートの構築
には、先に述べた多数のデータソースに蓄積されたデー
タを、ひとつの論理的に統合されたデータベースとする
ことが必要となる。また、データウェアハウスやデータ
マートのような分析処理の基盤となるデータベースを構
築する以外にも、新規業務を迅速に立ち上げる目的で、
従来のデータソース群を論理的に統合することが、企業
の競争力を高める目的で必要とされている。論理的に統
合したデータソース群を基盤とすることにより、新規業
務のための応用プログラム(アプリケーション)構築の
高速化を図ることが可能となるためである。
【0005】データソースがデータベース管理システム
(DBMS)の場合、情報基盤の統合をする方法とし
て、データソース群とアプリケーション群の間に、DB
MS群への統一的なアクセスを提供する「データベース
ハブ」のシステムを置く方法がある。データベースハブ
は、アプリケーションからの問合せ(典型的には、St
ructured Query Language(S
QL)言語で記述された問合せ)を受けつけ、その問合
せをDBMS群への問合せへ分解・変換する。そしてデ
ータベースハブは、分解・変換した問合せをDBMS群
に発行し、DBMS群から問合せ結果を作成するための
データを収集し、アプリケーションの問合せに対する最
終的な結果を得て、アプリケーションにその結果を返
す。
【0006】データベースハブを用いた情報基盤の統合
は、以下の構成を取る。
【0007】(1)ユーザアプリケーション(UA
P):データベースハブによって統合された情報を用い
て処理を行うプログラム。
【0008】(2)データベースハブ:1つ以上のデー
タソースを統合し、1つのデータベースとしてUAPに
提供する。UAPからの問合せが複数のデータソースに
またがる場合、該複数のデータソースのデータを用い
て、UAPからの問合せの結果を生成する。
【0009】(3)データソース:統合対象となるデー
タを保持する。
【0010】なお、データベースハブとデータソース
は、多くの場合異なる計算機上に存在するが、同一の計
算機上に存在しても差し支えない。
【0011】
【発明が解決しようとする課題】データソースの一部分
は、リレーショナルデータベース管理システム(RDB
MS)であるが、その他のデータソースも用いられてい
る。例えば、階層型データベース、ファイルシステム中
のフラットファイル、光磁気ディスクアーカイブ中のフ
ァイル、表計算ソフトウェアのデータファイル等であ
る。
【0012】これらのデータソースの中には、RDBM
Sが登場する以前から存在していた基幹業務のデータで
あったり、データ量の問題でRDBMSに記録すること
が難しい(またはコストパフォーマンス上最適でない)
データがある。しかし、これらのデータが、RDBMS
中に格納されているデータに比しても、戦略的重要度の
高いデータである場合が少なくない。
【0013】これらのデータソースは、現在RDBMS
へのアクセスに広く用いられているデータベース問合せ
言語SQLではアクセスできないデータソースがほとん
どである。また、上記のデータベースハブでは、データ
ソースがRDBMSであること、即ちデータソース自身
がSQLを効率的に処理できることを前提として、SQ
Lを分解・変換する。
【0014】このため、データソースがSQLを受けつ
けない場合、データベースハブからのアクセスでは、結
果の指定をするために特定の探索条件(結果レコード群
が満たすべき条件)を与える必要があるという制限があ
った。この特定の探索条件は、データソース中のデータ
を指定するためのキー情報である。このため、ユーザ
(アプリケーション)からみると、自由な検索が困難
で、アプリケーション開発時の負担が大きかった。ま
た、この制限のため、定型業務には適用可能でも、非定
型問合せが主体となる情報系業務への適用が困難だっ
た。
【0015】また、データソースにSQLでアクセスで
きてもアクセス効率が悪い場合、データベースハブを介
した情報基盤の統合も、日常業務で現実的に使用するこ
とが困難なほど効率が悪くなる恐れがあった。これは、
範囲検索等の多件数検索時に、データソースの全件検索
に近いアクセスを余儀なくされ、ごく小規模以外の構成
では現実的な性能を達成することが困難なためである。
【0016】本発明は、このような背景から、データソ
ースが、RDBMSであっても、RDBMS以外でも、
情報基盤の統合を行うための技術を実現することを目的
とする。
【0017】そこで、本発明が解決しようとする第1の
課題は、非RDBMSのデータソースを、RDBMSの
データソースと同じインタフェース(SQL)でアクセ
スする際、非RDBMSのデータソースをRDBデータ
ソースと同等の高い効率でアクセスすることにある。
【0018】第1の課題を解決するための手段として、
後で述べる通り、非RDBMSのデータソースから、該
データソース中に格納されているデータの一部をインデ
ックスとして取り出してデータベースハブに保持する。
このインデックスを、従来のRDBMS等で内部的に使
用されているインデックスと区別する意味で、「分散イ
ンデックス」と称する。
【0019】非RDBMSのデータソースとしては、戦
略的重要度の高いデータを格納しているデータソース
を、特に意識する。このようなデータソースの例として
は、レガシーアプリケーションプログラム(レガシーA
P)と、テープアーカイブや光磁気ディスクアーカイブ
等の三次記憶が挙げられる。これらのデータソースで
は、上記第1の課題の解決法である分散インデックスの
作成に多大な処理時間がかかることが予想される。
【0020】そこで、本発明が解決しようとする第2の
課題は、レガシーAPや三次記憶等、分散インデックス
作成に多大な時間を要する恐れのある非RDBMSデー
タソースにおいても、分散インデックスを効率よく作成
することにある。
【0021】また、分散インデックスは、データソース
の一部を取り出してデータベースハブ側に保持するデー
タであるため、データソース側のデータが更新された場
合、適切なタイミングでインデックスも更新する必要が
ある。
【0022】そこで、本発明が解決しようとする第3の
課題は、データベースハブに対して、一旦作成したイン
デックスを管理するための方法を、データベースハブの
管理者に提供することにある。
【0023】さらにデータソースによっては、データ量
が莫大であるためにRDBMSに保持することが困難な
データも含まれる。このようなデータソースに対して
は、通常のRDBMSにおけるインデックスのように全
レコードに対する情報を保持することすら困難となる場
合が想定される。例えば、光磁気ディスクアーカイブに
格納されている数TB(テラバイト)オーダーのデータ
は、インデックスとして必要なカラムを抽出したとして
も数十GBから数百GB(ギガバイト)オーダーのデー
タになることも考えられる。一方で、このような大規模
なデータの利用場面では、すべてのレコードを探索対象
とするのではなく、特定の探索対象が設定されている場
合が少なくない。そこで、本発明が解決しようとする第
4の課題は、分散インデックスの対象レコードを利用場
面に応じて絞り込み、分散インデックスが使用するデー
タ量を削減することである。
【0024】
【課題を解決するための手段】前記第1の課題を解決す
るため、本発明のシステムは、非RDBMSのデータソ
ースから、該データソース中に格納されているデータの
一部をインデックスとして取り出してデータベースハブ
に保持する。このインデックスを、従来のRDBMS等
で内部的に使用されているインデックスと区別する意味
で、「分散インデックス」と称する。分散インデックス
は、データソースに対する探索条件を、データソースの
レコード指定に対応づけるデータである。
【0025】データソースには、通常、1つまたは複数
のキーとなる情報が存在する。キーは、データソース中
の、意味のあるひとかたまりのデータ(レコードと呼
ぶ)を指定することができる情報である。多くの場合、
キーによって、ただ1つのレコードを一意に指定するこ
とができる。また、多くの場合、キーによって指定した
レコードに対して高速にアクセスする手段がデータソー
ス側で提供されている。
【0026】例えば、顧客IDがふられた顧客の情報を
管理する顧客管理アプリケーションというデータソース
があったとする。この場合、顧客IDをキーとして、顧
客データ中のレコード(顧客ID、氏名、住所、年齢、
電話番号、勤務先などの組)を特定することができる。
【0027】また、取引履歴データが、光磁気ディスク
アーカイブに時系列で入っている場合を考える。ひとつ
ひとつの取引情報が、時刻印とともに入っているとする
と、時刻印をキーと考えることができる。この例では、
時刻印によって完全に一意にひとつの取引情報を指定で
きるかどうかは、時刻印の与え方によるが、少なくとも
時刻印をもちいることによって高速に1つの(またはた
またま同時刻に行われた少数の)取引情報を得ることが
できる。
【0028】分散インデックスは、データソースに対す
る探索条件と、このようなデータソースのキーを対応づ
けるデータである。より具体的には、分散インデックス
は探索条件の対象となっているデータ群と、キーとを組
にして格納したデータである。探索条件を分散インデッ
クスに対して適用することによって、探索条件を満たす
キー群を得ることができる。このキー群を用いてデータ
ソースにアクセスすることによって、データソースに対
する高速なアクセスが実現できる。
【0029】従来の技術では、例えば、前記顧客管理ア
プリケーションが、「顧客IDから顧客レコードを得
る」というインタフェースのみを提供している場合、U
APからデータベースハブに「年齢が30才以上40才
未満の顧客」という探索条件の問合せが発行されると、
データベースハブが全顧客IDを顧客管理アプリケーシ
ョンに与えて全顧客レコードを得て、そこから該探索条
件を全顧客レコードに適用して問合せの結果を得てい
た。このため、データベースハブはデータソースである
顧客管理アプリケーションから大量のレコードを入手す
る必要があり、問合せの実行時効率が極めて悪かった。
【0030】本発明の分散インデックスを用いることに
より、データベースハブは、まず分散インデックスに対
して、「年齢が30才以上40才未満の顧客」という探
索条件を適用して、この条件に合致する顧客ID群を
得、これらの顧客IDを顧客管理アプリケーションに発
行する、という方法で問合せの結果を得ることができ
る。この場合、「年齢が30才以上40才未満の顧客」
に合致する顧客IDのみをに顧客管理アプリケーション
対して発行すればよいので、顧客管理アプリケーション
の処理量、およびデータベースハブと顧客管理アプリケ
ーションとの通信が大幅に削減される。
【0031】分散インデックスを作成する際、データベ
ースハブがデータソースの全レコードをアクセスする
と、データベースハブとデータソースの間で大量の通信
が発生する。この結果、分散インデックス作成時にネッ
トワークおよびデータソースに多大な負荷がかかり、望
ましくない。このため、本発明のシステムでは、データ
ソースの存在する計算機に、インデックス作成プログラ
ムを置く。インデックス作成プログラムが、該データソ
ースの分散インデックスを一括して作成し、完成した分
散インデックスをデータベースハブに転送する。これに
より、分散インデックス作成時のデータベースハブとデ
ータソースとの通信が1回で済み、ネットワーク負荷が
大幅に軽減される。また、ネットワーク負荷の軽減にと
もない、データソースを保持する計算機のネットワーク
処理負荷も大幅に軽減される。
【0032】分散インデックスは、RDBMS等が内部
的に保持するインデックスと異なり、データソースに対
する更新と連動して更新されない。このため、データベ
ースハブのユーザおよび管理者が、分散インデックスを
適切に利用、管理、運用するための手段が必要となる。
このため、本発明のシステムでは、ユーザがどの分散イ
ンデックスを使用するか(もしくは使用しないか)を指
定するインタフェースと、分散インデックスを作成し、
最新のデータソースに合致させるインタフェースとを提
供する。
【0033】既に述べた通り、データソースによって
は、データ量が莫大であるためにRDBMSに保持する
ことが困難なデータも含まれる。このようなデータソー
スに対しては、通常のRDBMSにおけるインデックス
のように全レコードに対する情報を保持することすら困
難となる場合が想定される。例えば、光磁気ディスクア
ーカイブに格納されている数TB(テラバイト)オーダ
ーのデータは、インデックスとして必要なカラムを抽出
したとしても数十GBから数百GB(ギガバイト)オー
ダーのデータになることも考えられる。このため本発明
のシステムでは、分散インデックスとして、対象を全レ
コードではなく一部のレコードのみのキーを格納した分
散インデックスを用いる。一部のレコードの選択方法と
しては、特定の探索条件を用いる方法、ランダムに選択
によって選択を行う方法などを提供する。
【0034】これらの各手段によって、本発明のシステ
ムはRDBMSのデータソースのみならず、レガシーA
Pや三次記憶等さまざまなデータソース中のデータを、
1つのデータベースに格納されているかのようにユーザ
に提供し、かつ高い問合せ実行性能を実現することを可
能にすることができる。
【0035】
【発明の実施の形態】本発明の実施の一形態を、図面を
参照しながら説明する。
【0036】[1]全体構成 図1を用いて、本発明の実施の一形態(実施例)の全体
構成を説明する。
【0037】図1は、第1の実施例が好適に用いられる
コンピュータシステムである。第1の実施例の全体は、
1つ以上のコンピュータ(データ処理システム100、
1つ以上のクライアントコンピュータ101、10
1’、…、管理用コンピュータ102、1つ以上のデー
タソース計算機105)が、クライアント側ネットワー
ク103およびサーバ側ネットワーク104で相互に接
続されたコンピュータシステムである。
【0038】クライアント側ネットワーク103とサー
バ側ネットワーク104はいずれも、ある団体(企業や
学校や類似の団体)の全体や位置部門でよく使用される
LANでもよく、また地理的に分散した複数の地点を結
合するWANの一部または全部でもよい。またこれらの
ネットワークは、計算機間結合網や並列計算機内部のプ
ロセッサ要素間の結合網でもよい。また、クライアント
側ネットワーク103とサーバ側ネットワーク104が
同一のネットワークであっても差し支えない。
【0039】データ処理システム100、クライアント
コンピュータ101、101’,…,管理用コンピュー
タ102、データソース計算機105はいずれも、いわ
ゆるパーソナル・コンピュータ、ワークステーション、
並列計算機、大型計算機、小型携帯型コンピュータ等、
任意のコンピュータでよい。
【0040】クライアントコンピュータ101,10
1’,…では、ユーザの処理を行うプログラムであるア
プリケーション120、120’,…が動作する。アプ
リケーション120は、必要に応じてデータベースに対
する参照または更新を、問合せを発行する。本実施例で
は、問合せ言語SQLで記述された問合せとする。
【0041】データソース計算機105は、データソー
ス中のデータを保持し、他のプログラムのアクセスに応
じてデータに対する参照または更新を行う計算機であ
る。データソース中のデータに対する参照および更新の
処理は、データソース入出力プログラム122が行う。
データソース入出力プログラム122は、いわゆるレガ
シーAPでよい。データソース計算機105は多くの場
合、その管理対象のデータを二次記憶装置106上に保
持する。データソース計算機105、二次記憶装置10
6、データソース入出力プログラム122、およびその
中に格納されているデータを総称して、データソース1
07と称する。なお、二次記憶装置106は、光磁気デ
ィスクアーカイブ等、一般には三次記憶と称される記憶
媒体でも差し支えない。
【0042】データソースのデータは、1つ以上の、意
味のある塊をなしているものとする。この塊のひとつひ
とつを、RDBMSとの類似でレコードとよぶ。例え
ば、取引履歴というデータソースにおいて、1つの取引
をレコードとみなすことができる。レコードがさらに複
数のパーツからなる時、探索条件や出力項目として指定
可能なパーツを、RDBMSとの類似でカラムと呼ぶ。
例えば、1つの取引履歴レコードの中に「取引時刻」、
「取引品名」などがある場合、これらをカラムとみなす
ことができる。例えば、データソース入出力プログラム
122がいわゆるレガシーAPであっても、たとえば、
「顧客ID」と、「住所」、「氏名」、「年齢」、「職
業」とを関連づけて保持している場合、「顧客ID、住
所、氏名、年齢、職業」を1つのレコード、「顧客I
D」、「住所」、「氏名」、「年齢」、「職業」のそれ
ぞれをカラムと考えて、なんら差し支えない。
【0043】データ処理システム100は、クライアン
トコンピュータ101、101’、…の発行する第1の
問合せを受け取り、必要に応じてデータソース107へ
の1つ以上の第2の問合せを作成して発行し、第1の問
合せが指定した参照または更新を行い、結果のデータを
第1の問合せの発行元に返す。即ち、データ処理システ
ム100は、データソース107の保持するデータベー
ス群への統一的なアクセスを実現し、クライアントコン
ピュータ101,101’,…へ統合されたデータベー
スを提供するデータベースハブである。
【0044】管理用コンピュータ102は、管理アプリ
ケーション121を実行する。管理アプリケーション1
21は、データ処理システム100の管理を行うための
プログラムであり、典型的には、データ処理システム1
00または図1のシステム全体の管理者が利用する。
【0045】入出力処理部110、問合せ解析部11
1、分散インデックス適用部112、問合せ実行部11
3、分散インデックス管理部114、二次記憶装置11
5は、データ処理システム100を構成する構成要素で
ある。これらの構成要素については、ここでは概略を説
明するのに留め、動作の詳細については、あとで述べ
る。
【0046】入出力処理部110は、クライアントコン
ピュータ101,101’,…からの問合せ要求、管理
用コンピュータ102からの管理要求を受けつけるとと
もに、これらの要求に対する返答を行う。
【0047】問合せ解析部111は、入出力処理部11
0が受けつけた問合せ要求の字句解析、構文解析、意味
解析、を行い、必要に応じて問合せ条件の標準型変換を
行い、問合せから構文解析木(パーズツリー)を生成す
る。
【0048】分散インデックス適用部112は、問合せ
解析部111が作成したパーズツリーを利用して、入力
された問合せを、分散インデックスを用いるように変形
する。この際、どの分散インデックスを利用するかを決
定する必要があるが、この決定は分散インデックス管理
部114が保持する個々の分散インデックスに関する管
理情報を用いて行う。そして、問合せの結果を得るため
の一連の操作の手順(実行プラン)を生成する。リレー
ショナルデータベースの場合、一連の操作とは、選択処
理、射影処理、ジョイン処理、グルーピング処理、ソー
ト処理などである。実行プランは、これらの操作を、ど
のデータソース107のどのデータに対し、どの順番で
適用するかを記述したデータ構造である。
【0049】問合せ実行部113は、分散インデックス
適用部112が生成した実行プランを実行する。問合せ
実行部113はデータソース107への問合せを発行す
ることにより、問合せを発行して前記一連の操作の一部
または全部をデータソース107に依頼する場合もある
し、データソース107から取り寄せたデータに対し、
自ら前記一連の操作の一部または全部を実行する場合も
あってよい。
【0050】分散インデックス管理部114は、入出力
処理部110が受けつけた管理要求を解釈し、管理要求
に含まれる分散インデックスの操作を行い、必要に応じ
て二次記憶装置115に保存する。また、分散インデッ
クスに関する情報を保持し、分散インデックス適用部1
12がどの分散インデックスを適用するのが適当かを決
定するのを支援する。
【0051】以上が実施例の全体構成である。
【0052】[2]データ構造 図2を用いて、分散インデックスの実現に用いるデータ
構造について説明する。
【0053】主に2種類のデータ構造を用いる。
【0054】分散インデックス情報210は、データ処
理システム100が保持する分散インデックスに関する
情報を保持する。図2に示した分散インデックス情報2
10は、1つの分散インデックスに対して保持する情報
であり、データ処理システム100中に1つ以上存在す
る。
【0055】インデックスID 211は、分散インデ
ックスの名前である。インデックスID 211によっ
て、各分散インデックスを一意に識別する。
【0056】対象データソース212は、該分散インデ
ックスのもとになったデータソースである。後に述べる
データソース情報220のデータソース名221と対応
する。
【0057】インデックスカラム213は、該分散イン
デックスが保持するカラム群である。分散インデックス
適用部112は、このインデックスカラム213を用い
て、ある探索条件を分散インデックスを用いて評価可能
か否かを判定する。
【0058】キーカラム214は、該分散インデックス
の対象データソースのキーである。ある探索条件を該分
散インデックスを用いて評価した場合に、データソース
への問合せにおけるレコードの指定に用いるカラム群が
何かを示す。キーカラム214のカラム集合は、インデ
ックスカラム213のカラム集合に包含される。
【0059】インデックス格納テーブル214は、二次
記憶装置115中に存在する該分散インデックスの実体
の名前である。問合せ実行部113が分散インデックス
を用いて探索条件の評価を行う場合には、インデックス
格納テーブル214にアクセスする。
【0060】最終更新日付215は、該分散インデック
スが最後に更新(データソースから作成)された時刻で
ある。
【0061】データソース情報220は、データソース
107に関する情報を保持する。図2に示したデータソ
ース情報220は、1つのデータソースに対して保持す
る情報であり、データ処理システム100中に1つ以上
存在する。
【0062】データソース名221は、1つのデータソ
ースを一意に識別する名前である。
【0063】主キー222は、該データソースの主キー
を保持する。主キーとは、該データソースにアクセス可
能なカラム群を指す。データソースに対し、主キーを引
数として指定したレコード参照(ここではgetRec
ord(主キー)と呼ぶ)が可能である。主キーは、物
理的な格納順に対応したカラム群である場合が多い。主
キー情報は、分散インデックスを自動的に作成する際の
ヒント情報として用いる。
【0064】分割223は、該データソースの分割方法
(パーティショニング)の情報を保持する。大規模なデ
ータソースの場合、物理的に複数の二次記憶装置に分割
してデータを格納することにより、二次記憶装置の並列
度を増したり、必要な容量を確保する。これがパーティ
ショニングである。データソースの分割方法を活用する
順序でアクセスを行うことにより、実行時間が大幅に改
善されることが知られている。分割方法の情報も、分散
インデックスを自動的に作成する際のヒント情報として
用いる。
【0065】内蔵インデックス224は、該データソー
ス内で、該データソースに定義しているインデックス群
に関する情報を保持する。該データソース内部にインデ
ックスがある場合、インデックスを利用した順序でアク
セスを行うことにより、実行時間が大幅に改善されるこ
とが知られている。内蔵インデックスに関する情報も、
分散インデックスを自動的に作成する際のヒント情報と
して用いる。
【0066】[3]問合せに対する分散インデックスの
適用 図1と図3とを用いて、分散インデックス適用部112
が問合せに対して分散インデックスを適用する処理の流
れを説明する。
【0067】アプリケーション120が発行した第1の
問合せは、クライアント側ネットワーク103を経由し
てデータ処理システム100の入出力処理部110に到
達する(150)。入出力処理部110は、入力がアプ
リケーションからの問合せ要求であるか、管理用アプリ
ケーションからの管理要求であるかを判定し、その結果
に応じて、要求を問合せ解析部111へ送るか(15
1)分散インデックス管理部114へ送る(160)。
【0068】問合せ解析部111が第1の問合せを受け
取ると、第1の問合せの字句解析、構文解析、意味解析
を行う。この一連の処理により、第1の問合せから第1
のパーズツリーを生成する。なお、字句解析、構文解
析、意味解析の動作については、コンパイラ、データベ
ース管理システムなど多くの分野で用いられている技術
であるため、ここではこれ以上詳細には述べない。
【0069】問合せ解析部111は、第1のパーズツリ
ーを分散インデックス適用部112へ送る(152)。
【0070】分散インデックス適用部112では、第1
のパーズツリーを検査し、分散インデックスが適用可能
かどうかを判定する。図3の処理である。
【0071】図3で示す一連の処理で問合せの探索条件
を処理する。探索条件とは、データソースの一群のレコ
ードを絞りこむための指定である。SQL言語では、W
HERE句やHAVING句などがこれにあたる。
【0072】ステップ301で、探索条件をCNF変換
する。CNF(Conjunctive Normal
Form)とは、探索条件の要素がまずORで連接さ
れ、それらの連接がANDで連接された形式である。例
えば、「(c1=10 and c2=20)or c3
=30」の CNF変換の結果は、「(c1=10or
c3=30)and(c2=20 or c3=30)」
となる。すべての結果レコードが、CNF変換後の探索
条件の各OR連接条件を満たすという性質がある(上記
の例では、「c1=10 or c3=30」と「c2=
20 orc3=30」がOR連接条件)。
【0073】ステップ302で、探索条件について、デ
ータ処理システム100が保持する各分散インデックス
を検査する。すべての分散インデックスを検査したら
(判定Y)、分散インデックス適用の処理を終了する。
【0074】ステップ303で、分散インデックスを1
つ取り出す。ここで、該分散インデックスをXと呼ぶ。
【0075】ステップ304で、Xに対応する分散イン
デックス情報210の対象データソース212を参照
((153))してXの対象データソースを得て、探索
条件を検査することにより、Xの対象データソースが探
索条件に含まれるか否かを判定する。含まれれば(判定
Y)ステップ305に制御を移し、含まれなければ(判
定N)、ステップ302に制御を移す。
【0076】ステップ305で、探索条件中に含まれる
Xの対象データソースから、対象データソースを1つ選
択する。選択したデータソースをYと呼ぶ。このステッ
プでは、1つの問合せ中で1つのデータソースが複数回
参照される可能性を考慮している。例えば、「SELE
CT×FROM T1 A、T1 B WHEREA.
C1=B.C2」という問合せでは、T1というデータソ
ースが2回、AとBという名前で登場している。
【0077】ステップ306で、探索条件中の各OR連
接条件に着目した場合に、該OR連接条件中で使用する
データソースYのカラム集合が分散インデックスXのカ
ラム集合によって包含されているか否かを検査する。包
含している場合(判定Y)、ステップ307に制御を移
し、包含していなければれば(判定N)、ステップ30
5に制御を移す。分散インデックスXのカラム集合は、
Xのインデックスカラム213に格納されている。
【0078】ステップ307では、分散インデックスX
のカラム集合によって包含されているOR連接条件を、
Xを用いた探索条件に書換える。具体的には、もともと
T1にかかっていた探索条件を分散インデックスXに対
して適用してキー(X.key)を得、該キー集合を用
いてT1にアクセスし、結果レコードを得る、という問
合せに書換える。例えば、Xのインデックスカラム21
3がT1.C1を含む場合、「SELECT×FROM
T1,T2 WHERE T1.C1=10」を、「S
ELECT×FROM T1,T2 WHERE T
1.key in(SELECT X.key FROM
X WHERE X.C1=10)」とする。
【0079】ステップ308では、すべてのYを検査し
たか否かによって、ステップ305またはステップ30
2に制御を移し、繰り返しを続ける。
【0080】以上の一連の処理により、入力された問合
せを、分散インデックスを利用した問合せに書換えるこ
とができる。
【0081】図1に戻り、分散インデックス適用部11
2の残りの部分の処理を説明する。分散インデックス適
用部112ではさらに、問合せ解析部111から得た第
1のパーズツリーを用いて、問合せ最適化を行い、第1
の問合せの実行プランを作成する。なお、場合によって
は、第1の問合せ動作指示以外に追加の問合せ動作指示
を得る必要がある場合がある。例えば、コストベース最
適化の中間段階で表のレコード数が判明し、このレコー
ド数をもちいて問合せ分類定義を検索し、新たな問合せ
動作指定を得る場合である。この場合の問合せ動作指定
の取得方法は、前記問合せ照合処理と同様であるため、
特に改めて説明はしない。
【0082】第1の問合せの実行プランは、コストベー
ス最適化により作成するが、コストベース最適化は文献
1等ですでに広く知られているため、コストベース最適
化の詳細についてはここでは述べない。
【0083】分散インデックス適用部112が生成した
実行プラン(第1の実行プラン)の例をひとつ挙げる。
以下のリスト表現で表されるツリーである:(data
base―hub―join [left.c1=rig
ht.c2 and left.c3<10,outpu
t left.c1,right.c2,left.c1
+left.c3](join at DBMS1
[left.c1<10and left.c1=righ
t.c4,output left.c1,left.c
3](selection at DBMS1 Cus
tomerTable [1990<year and
year<1999,output c1,c3])
(selection at DBMS1 Produ
ctTable [1000<price and p
rice<2000,outputc4]))(sel
ection at DBMS2 OrderTabl
e[1990<year and year<1999,
outputc2]))この実行プランは、『(1)D
BMS1でCustomerTableに対し、探索条
件「1990<year and year<1999」
の選択処理を行い、射影処理によってカラムc1とc3
を出力し、(2)DBMS1でProductTabl
eに対し、探索条件「1000<price and
price<2000」の選択処理を行い、射影処理に
よってカラムc4を出力し、(3)DBMS2でOrd
erTableに対し探索条件「1990<year
andyear<1999」の選択処理を行い、射影処
理によってカラムc2を出力し、(4)DBMS1でジ
ョイン条件「left.c1<10 and left.
c1=right.c4」((1)の中間結果がlef
t、(2)の中間結果がrightとする)でジョイン
を行って、射影処理によってカラムc1、c3を出力
し、(5)データ処理システム100でジョイン条件
「left.c1=right.c2 and left.
c3<10」((4)の中間結果がleft、(5)の
中間結果がrightとする)のジョインを行い、射影
処理によりleft.c1,right.c2,lef
t.c1+left.c3を出力する』という一連の処理
を表現している。
【0084】分散インデックス適用部112は、生成し
た第1の実行プランを問合せ実行部113に送る(15
4)。
【0085】問合せ実行部113は、分散インデックス
適用部112から得た第1の実行プランを用いて、第1
の問合せの実行を行う。問合せ実行部113は、上述の
例の第1の実行プランを、ボトムアップに、即ち上記
(1)、(2)、(3)、(4)、(5)の順に処理し
ていく(正確には、(1)、(2)、(3)は並列に実
行することが可能である)。問合せ実行部113が最終
的に実行プランに定められたすべてのステップを実行
し、第1の問合せに対する最終的な結果が得られると、
該結果は第1の問合せを発行したアプリケーション12
0へ入出力処理部110を経て返される(155、15
5’、156、156’および157)。
【0086】以上が、分散インデックスの適用を含む問
合せ処理の流れである。
【0087】[4]分散インデックス利用を含む問合せ
の実行 分散インデックスを利用する問合せは、基本的には上記
の問合せ実行部113の処理で述べた通りであるが、1
つの分散インデックスが探索条件中に複数回登場する場
合には、より効率的な実行方法を取ることができる。こ
の手順を図4を用いて説明する。
【0088】ステップ401で、1つの分散インデック
スを用いた複数のOR連接条件(cond1,cond
2,...,condNとする)を得る。これらcond
1,cond2,...,condNを実行し、それぞれ
結果を得る。この結果を、K1,K2,...,Knとす
る。K1,K2,...,Knはそれぞれ、該分散インデ
ックスの対象データソースのキーの集まりである。
【0089】ステップ402で、K1,K2,...,K
nの共通部分Kを得る。ただし、この共通部分は、SQ
Lにおける”INTERSECT ALL”である。
【0090】ステップ403で、Kに含まれるキーのそ
れぞれについて、該分散インデックスの対象データソー
スに対し、getRecord(key)を発行する。
ここで、getRecord(key)は、対象データ
ソース中でキー値がkeyのレコードを参照する、デー
タソース107への呼び出しである。この一連の呼び出
しで得たレコード群を結果表とする。
【0091】ステップ404で、結果表に対して、まだ
処理していない探索条件を実行する。
【0092】この一連の処理により、複数のOR連接条
件にまたがった絞り込みを一括して分散インデックスで
処理し、しかるのちにデータソースにアクセスする、と
いうアクセス方法が実現できる。このアクセスは、各O
R連接条件を個々に処理する方法に比べ、データソース
へのアクセス回数を大幅に削減できる可能性がある。
【0093】[5]分散インデックスの作成 図5と図6を用いて、分散インデックス作成の処理の手
順を説明する。
【0094】ここで説明する処理は、分散インデックス
作成の3種のインタフェースである。これらのインタフ
ェースは、管理用アプリケーションが用いるインタフェ
ースであり、入出力処理部110が管理用アプリケーシ
ョンからの要求を受付け、要求を分散インデックス管理
部114へ送った場合(160)に起動される。なお、
本実施例ではアプリケーション120と管理アプリケー
ション121を区別しているが、これらを、双方の機能
をあわせ持ったアプリケーションプログラムとして実現
しても差し支えない。
【0095】分散インデックス作成の第1のインタフェ
ースは、createDistributedInde
x(対象データソース、キーカラム、インデックスカラ
ム)という形式である。第2のインタフェースは、キー
カラムを省略した、createDistribute
dIndex(対象データソース・インデックスカラ
ム)という形式である。第3の形式は、キーカラム、イ
ンデックスカラムともに省略したcreateDist
ributedIndex(対象データソース,インデ
ックスタイプ)という形式である。インデックスタイプ
は、「主キー優先」、「分割優先」、「内蔵インデック
ス優先(内蔵インデックス名)」の3種がある。これら
3種のインタフェースは、完全に管理者が指定した分散
インデックスを生成する方法から、データ処理システム
100が半自動で分散インデックスを生成する方法まで
をカバーする。
【0096】ステップ501からステップ506で、3
種のインタフェースをサポートする。まずステップ50
1で、キーカラムが指定されたか否かによって、ステッ
プ502またはステップ503に分岐する。
【0097】ステップ502では、第1のインタフェー
スに従って、指定されたキーカラムを用いて分散インデ
ックスの作成を進める。
【0098】ステップ503では、すでに参照可能なデ
ータソース情報220がデータ処理システム100中に
存在しているか否かによって、ステップ504またはス
テップ505に分岐する。データソース情報220が存
在している場合、504でデータソース情報220の主
キー222を新規に生成する分散インデックスのキーカ
ラムとする。
【0099】また、データソース情報220が存在して
いない場合、分散インデックス管理部114が該データ
ソースに対しアクセスを行い、キーカラムの情報(およ
び分割およびインデックスが存在していればこれらの情
報)を取得する。取得できない場合はエラーとなる。そ
して、主キーをキーカラムに設定する。
【0100】506では、インデックスカラムが決定し
ていない場合、インデックスカラムを決定する。インデ
ックスカラムの決定を要するのは、第3のインタフェー
スであるので、「主キー優先」、「分割優先」、「内蔵
インデックス優先(内蔵インデックス名)」のいずれか
によって、データソース情報220の主キー222、分
割223、内蔵インデックス224のいずれかを参照
し、分散インデックスのインデックスカラムを決定す
る。決定したキーカラム、インデックスカラムを、分散
インデックス作成対象のデータソースに存在する分散イ
ンデックス作成部123に送る(161)。なお、主キ
ー優先の場合、データソースの主キーのみで構成される
分散インデックスが生成される。
【0101】507では、分散インデックス作成部12
3が作成した分散インデックスを二次記憶装置115に
格納し、508で、分散インデックス情報210を更新
(なければ作成)を行う。特に、最終更新日付215を
現在時刻に設定する。
【0102】一方、分散インデックス作成部123で
は、以下の処理を行う。601で、506で送られた分
散インデックス管理部114からの要求を受取り、イン
デックス作成対象のデータソースの各レコードに対し、
getRecord()を発行する(162)。得られ
たレコードのそれぞれから、インデックスカラムとキー
カラムのユニオンとなるカラム集合を得て、結果の分散
インデックスとして一時記憶領域に蓄積していく。そし
て、602で、できあがった分散インデックスを分散イ
ンデックス管理部114に送る(163)。
【0103】以上が分散インデックス作成のインタフェ
ースおよび処理手順である。
【0104】[6]部分的な分散インデックスの作成 上述の手順では、分散インデックス作成部123は分散
インデックス作成対象のデータソースの全レコードに対
するインデックスを作成する。しかし、常に全レコード
を対象にした分散インデックスを作成していると、デー
タソースのデータ量が莫大である場合、分散インデック
スのデータ量も大量となり、分散インデックスを保持す
るためのコスト、管理のためのコストが非常に大きくな
る恐れがある場合がある。
【0105】このため本発明のシステムでは、分散イン
デックス作成のインタフェースのオプションとして、
「分散インデックス作成条件」を分散インデックス作成
時に用いる探索条件として管理アプリケーション121
が指定できる。
【0106】分散インデックス作成時に、分散インデッ
クス管理部114が分散インデックス作成条件を受取る
と、前記506で、該分散インデックス作成条件をキー
カラム、インデックスカラムとともに、分散インデック
ス作成対象のデータソースの分散インデックス作成部1
23に送る(161)。
【0107】該分散インデックス作成条件を受取った分
散インデックス作成部123は、前記601で各レコー
ドに対し、getRecord()を発行する(16
2)。得られたレコードのそれぞれに対し、該分散イン
デックス作成条件に合致するレコードのみを抽出し、イ
ンデックスカラムとキーカラムのユニオンとなるカラム
集合を得て,結果の分散インデックスとして一時記憶領
域に蓄積していく。この処理によって、結果としてでき
あがる分散インデックスのデータ量を、管理アプリケー
ション121の指定した分散インデックス作成条件にし
たがって制御することが可能となる。
【0108】分散インデックス作成条件としては、例え
ば「住所=’東京’」のような指定のほか、「全体のX
%を選択」という条件を許す。「全体のX%を選択」が
指定された場合、分散インデックス作成部123はge
tRecord()で得られたレコード群のうち、全体
のX%を乱数発生により選択する。この方法により、デ
ータソースの全体傾向を統計的に分析するアプリケーシ
ョン等、すべてのレコードに対するインデックスが必ず
しも必要でない場合に好適な分散インデックスを作成す
ることが可能となる。
【0109】[7]分散インデックスの選択的な使用 分散インデックスはデータソース107への更新とは独
立にデータ処理システム100が保持されるので、分散
インデックスの内容とデータソース107中のデータと
が一時的に不一致を生じる場合がある。このため、アプ
リケーションによっては、分散インデックスを選択的に
利用して、最新データをアクセスする必要が生じる場合
がある。また、前述のように「全体のX%を選択」とい
う指定で作成した分散インデックスは、全体傾向を統計
的に分析する等、特定のアプリケーションに特に合致す
るが、他のアプリケーションには不適な場合もある。
【0110】このため本発明のシステムでは、分散イン
デックスを選択的に使用する方法をアプリケーション1
20に提供する。
【0111】分散インデックスを探索的に使用する第1
の方法として、分散インデックスの最終更新時刻等に関
する探索条件を指定する方法を提供する。この方法で
は、問合せ発行前または問合せ発行時に、分散インデッ
クスに対する探索条件を与えることによって、分散イン
デックスを選択する。例えば、「最終更新時刻が1週間
以内である分散インデックスを使用許可」、「最終更新
時刻が1週間以内で、対象データソースが取引履歴であ
る分散インデックスを使用」等である。この指定は、前
記ステップ303で、分散インデックスを選択する際に
分散インデックス適用部112が評価し、条件に合致す
る分散インデックスのみを前記ステップ304以降で処
理する。
【0112】分散インデックスを選択的に使用する第2
の方法として、分散インデックスの名称を明示的に指定
する方法である。「インデックスID 211がIX1
1である分散インデックスの使用許可」等である。この
指定も、前記ステップ303で、分散インデックスを選
択する際に分散インデックス適用部112が評価し、条
件に合致する分散インデックスのみを前記ステップ30
4以降で処理する。
【0113】以上の処理により、各アプリケーションが
分散インデックスを選択的に利用することが可能とな
る。
【0114】
【発明の効果】(1)データソース107に対する分散
インデックスをデータ処理システム100にあらかじめ
生成、分散インデックス適用部112が分散インデック
スを用いた問合せの変形と分解を行うことにより、レガ
シーAPや三次記憶などのデータソースに対する高速な
アクセスが実現できる。
【0115】(2)分散インデックス作成部123をデ
ータソース107に配置することにより、分散インデッ
クス作成に際し、大量通信の発生を避ける。これによ
り、ネットワーク負荷が大幅に軽減される。また、ネッ
トワーク負荷の軽減にともない、データソースを保持す
る計算機のネットワーク処理負荷も大幅に軽減される。
【0116】(3)インデックス更新インタフェースを
データ処理システム100が提供し、インデックス更新
要求を受け取ったら分散インデックス作成部123が分
散インデックスを作成する。このインタフェースによ
り、適切なタイミングで分散インデックスの更新が実現
される。また、分散インデックスを使うか使わないか、
どれを使うかを指定するインタフェースを備えることに
より、適切な分散インデックスを選択的に利用すること
が可能となる。
【0117】(4)分散インデックスとして、分散イン
デックス適用部112がデータソースの一部のレコード
を対象とした分散インデックスを用いる。これにより、
分散インデックスのデータ量を削減、大量のデータを保
持するデータソースに対する分散インデックス作成が可
能となる。
【0118】以上4つの効果により、企業内、企業間の
複数のDBMSを統合する情報基盤の統合に際し、リレ
ーショナルデータベース管理システムに格納されたデー
タのみならず、レガシーAPや三次記憶等、問合せを効
率的に実行できないデータソースに格納されたデータの
統合が可能となり、これらデータソースに対する高速な
問合せが実現できる。
【図面の簡単な説明】
【図1】実施例の全体構成を示すブロック図。
【図2】データ構造の構成図。
【図3】分散インデックス適用の処理を示すフローチャ
ート。
【図4】分散インデックス利用を含む問合せ実行の処理
を示すフローチャート。
【図5】分散インデックスの作成における分散インデッ
クス管理部側の処理を示すフローチャート。
【図6】分散インデックスの作成におけるインデックス
作成プログラム側の処理を示すフローチャート。
【符号の説明】
100:データ処理システム 101,101’,…:クライアントコンピュータ 102:管理用コンピュータ 103:クライアント側ネットワーク 104:サーバ側ネットワーク 105:データソース計算機 106:二次記憶装置 107:データソース 110:入出力処理部 111:問合せ解析部 112:分散インデックス適用部 113:問合せ実行部 114:分散インデックス管理部 115:二次記憶装置 120,120’,…:アプリケーション 121:管理アプリケーション 122:データソース入出力プログラム 123:分散インデックス作成部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 清水 晃 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B045 DD16 5B075 NK10 NR06 QT06 5B082 AA01 BA03 BA13 EA07 FA16 GA08 GA20 GC04

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】第1のコンピュータと第2のコンピュータ
    がネットワークで結合され、前記第2のコンピュータの
    持つ二次記憶には、ぞれぞれが1つもしくは複数のカラ
    ムからなる複数のレコードで構成された第1のデータが
    保持され、該第1のデータに対してアプリケーションプ
    ログラムから発行される問合せを受け付ける第1のプロ
    グラムが前記第1のコンピュータに準備され、前記第1
    のデータの入出力を行う第2のプログラムが前記第2の
    コンピュータに準備されたコンピュータシステムにおけ
    るデータアクセス方法であって、 前記第1のプログラムで受け付ける前記問合せは、前記
    第1のデータに含まれる1つもしくは複数のカラムに関
    する第1の探索条件を含み、 前記第1のプログラムは、 前記問合せの受付けに先立ち、前記第1のデータから該
    第1のデータを構成するレコード群の一部をなすカラム
    群であるインデックスカラムと前記第2のプログラムに
    アクセスするための引数となるカラム群であるキーカラ
    ムとの対応関係を示す分散インデックスを抽出して保持
    し、 前記問合せを受け付けると、該問合せ中の前記第1の探
    索条件を変形し、前記分散インデックスから前記第1の
    探索条件に合致するレコード群のキーカラムを取得し、 該キーカラムを用いて前記第2のプログラム経由で前記
    第1のデータにアクセスすることにより、前記第1の探
    索条件に合致するレコードを得て前記問合せの結果とし
    て前記アプリケーションプログラムに返答することを特
    徴とするデータアクセス方法。
  2. 【請求項2】前記分散インデックスが、複数のレコード
    からなり、該複数レコードの各々のカラムが、インデッ
    クスカラムとキーカラムの和集合のカラムを含むことを
    特徴とする請求項1に記載のデータアクセス方法。
  3. 【請求項3】前記第1の探索条件に合致するレコード群
    のキーカラムの取得は、変形した前記第1の探索条件か
    ら、分散インデックスのインデックスカラムとキーカラ
    ムで評価することができる条件の抽出を行うことにより
    実行することを特徴とする請求項1記載のデータアクセ
    ス方法。
  4. 【請求項4】前記分散インデックスとして、前記第1の
    データのうち、第2の探索条件に合致するレコードを対
    象としたインデックスカラムとキーカラムとの対応関係
    のデータを用いる請求項1記載のデータアクセス方法。
  5. 【請求項5】第1のコンピュータと第2のコンピュータ
    がネットワークで結合され、前記第2のコンピュータの
    持つ二次記憶には、ぞれぞれが1つもしくは複数のカラ
    ムからなる複数のレコードで構成された第1のデータが
    保持され、前記第1のデータに対してアプリケーション
    プログラムから発行される問合せを受け付ける第1のプ
    ログラムが前記第1のコンピュータに準備され、前記第
    1のデータの入出力を行う第2のプログラムが前記第2
    のコンピュータに準備されたコンピュータシステムにお
    けるデータアクセス方法であって、 前記第1のプログラムは、前記第1のデータから該第1
    のデータを構成するレコード群の一部をなすカラム群で
    あるインデックスカラムと前記第2のプログラムにアク
    セスするための引数となるカラム群であるキーカラムと
    の対応関係を示す分散インデックスを複数抽出して保持
    し、 前記アプリケーションプログラムは、前記データソース
    に含まれる1つもしくは複数のカラムに関する第1の探
    索条件を含む問合せを、前記複数の分散インデックスの
    うちの該問合せで使用を許可する分散インデックスを指
    定する情報とともに発行し、 前記第1のプログラムは、 前記問合せを受け付けると、該問合せ中の前記第1の探
    索条件を変形し、許可された分散インデックスから前記
    第1の探索条件に合致するレコード群のキーカラムを取
    得し、 該キーカラムを用いて前記第2のプログラム経由で前記
    第1のデータにアクセスすることにより、前記第1の探
    索条件に合致するレコードを得て前記問い合わせの結果
    として前記アプリケーションプログラムに返答すること
    を特徴とするデータアクセス方法。
  6. 【請求項6】前記アプリケーションプログラムは、分散
    インデックスの最終更新時刻の範囲を指定することによ
    り前記問合せで使用を許可する分散インデックスを指定
    することを特徴とするする請求項5記載のデータアクセ
    ス方法。。
  7. 【請求項7】前記アプリケーションプログラムは、前記
    分散インデックスを識別する識別子により前記問合せで
    使用を許可する分散インデックスを指定することを特徴
    とする請求項5記載のデータアクセス方法。
  8. 【請求項8】請求項1乃至請求項8のいずれかに記載の
    データアクセス方法を実行するプログラムを記憶する記
    憶媒体。
  9. 【請求項9】第1のコンピュータと第2のコンピュータ
    がネットワークで結合され、前記第2のコンピュータの
    持つ二次記憶には、ぞれぞれが1つもしくは複数のカラ
    ムからなる複数のレコードで構成された第1のデータが
    保持され、前記第1のソースについてアプリケーション
    プログラムから発行される問合せを受け付ける第1のプ
    ログラムが前記第1のコンピュータに準備され、前記第
    1のデータの入出力を行う第2のプログラムが前記第2
    のコンピュータに準備されたコンピュータシステムにお
    いて、前記第1のデータのアクセスのために前記第1の
    コンピュータ上に保持される分散インデックスの作成方
    法であり、 前記第2のコンピュータに準備された分散インデクス作
    成プログラムが前記第1のプログラムから前記分散イン
    デックスの作成要求を受け、 前記第3のプログラムは、前記第1のデータの作成対象
    のレコード群の一部を成すカラム群であるインデックス
    カラムと、前記第2のプログラムによる該データソース
    のアクセスの引数となるカラム群であるキーカラムとの
    対応関係を該データソースから取り出し、 取り出した結果を前記第1のプログラムに返送すること
    を特徴とする分散インデックスの作成方法。
  10. 【請求項10】前記分散インデックス作成プログラム
    が、作成対象のデータソース、キーカラム、およびイン
    デックスカラムを設定として受け取り、該データソース
    から、該キーカラムおよび該インデックスカラムを含む
    分散インデックスを作成することを特徴とする請求項9
    記載の分散インデックス作成方法。
  11. 【請求項11】前記分散インデックス作成プログラム
    が、分散インデックス作成条件を設定として受取り、前
    記第1のデータに対して分散インデックス作成条件を適
    用して分散インデックスの対象となるレコードを選択し
    て分散インデックスを作成することを特徴とする請求項
    9記載の分散インデックス作成方法。
  12. 【請求項12】前記分散インデックス作成プログラム、
    前記第1のデータのレコードのうち分散インデックスに
    含めるレコードの割合を設定として受取り、該第1のデ
    ータに対して指定された割合でレコードを選択して分散
    インデックスを作成することを特徴とする請求項8記載
    の分散インデックス作成方法。
  13. 【請求項13】請求項9乃至11のいずれかに記載の分
    散インデックス作成方法を実施するプログラムを記録す
    る記録媒体。
  14. 【請求項14】前記第1のプログラムは、返送された分
    散インデックスを更新日時とともに前記第1のコンピュ
    ータの記憶装置に記録することを特徴とする請求項9記
    載の分散インデックスの作成方法。
  15. 【請求項15】第1のコンピュータと第2のコンピュー
    タがネットワークで結合され、前記第2のコンピュータ
    の持つ二次記憶には、ぞれぞれが1つもしくは複数のカ
    ラムからなる複数のレコードで構成された第1のデータ
    が保持され、前記第1のデータに対してアプリケーショ
    ンプログラムから発行される問合せを受け付ける第1の
    プログラムが前記第1のコンピュータに準備され、前記
    第1のデータの入出力を行う第2のプログラムが前記第
    2のコンピュータに準備され、前記第1のコンピュータ
    は、前記データのレコード群の一部をなす第1のカラム
    群であるインデックスカラムと、前記第2のプログラム
    にアクセスするための引数となる第2のカラム群である
    キーカラムとの対応関係を示す分散インデックスを保持
    し、前記第1のプログラムは、前記問い合わせを受け付
    けると前記分散インデックスから該問い合わせに合致す
    るレコード群のキーカラムを取得し、該キーカラムを用
    いて前記第2のプログラム経由で前記第1のデータにア
    クセスするように構成されたコンピュータシステムにお
    ける前記分散インデックスの作成方法であり、 アプリケーションプログラムから前記分散インデックス
    の作成要求が入力したとき、前記第1のプログラムは前
    記第1のデータのデータソース情報を参照してインデッ
    クスカラムとキーカラムと決定し、決定したインデック
    スカラムとキーカラムを前記第2のコンピュータに準備
    された分散インデックス作成プログラムに指定して前記
    分散インデックスを作成させることを特徴とする分散イ
    ンデックスの作成方法。
  16. 【請求項16】請求項15に記載の分散インデックス作
    成方法を実施するプログラムを記録する記録媒体。
JP2000174201A 2000-06-06 2000-06-06 異種データソース統合アクセス方法 Expired - Fee Related JP4483034B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000174201A JP4483034B2 (ja) 2000-06-06 2000-06-06 異種データソース統合アクセス方法
US09/791,808 US20020049747A1 (en) 2000-06-06 2001-02-26 Method for integrating and accessing of heterogeneous data sources
US11/010,266 US20050091210A1 (en) 2000-06-06 2004-12-14 Method for integrating and accessing of heterogeneous data sources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000174201A JP4483034B2 (ja) 2000-06-06 2000-06-06 異種データソース統合アクセス方法

Publications (3)

Publication Number Publication Date
JP2001350656A true JP2001350656A (ja) 2001-12-21
JP2001350656A5 JP2001350656A5 (ja) 2007-03-22
JP4483034B2 JP4483034B2 (ja) 2010-06-16

Family

ID=18676280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000174201A Expired - Fee Related JP4483034B2 (ja) 2000-06-06 2000-06-06 異種データソース統合アクセス方法

Country Status (2)

Country Link
US (2) US20020049747A1 (ja)
JP (1) JP4483034B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005535947A (ja) * 2002-05-31 2005-11-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 異なるタイプのバックエンド・データ・ストアにアクセスするためのシステムおよび方法
JP2009223512A (ja) * 2008-03-14 2009-10-01 Toshiba Corp 情報処理システム及びその制御方法
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
US11308161B2 (en) 2015-02-18 2022-04-19 Ab Initio Technology Llc Querying a data source on a network
US11593369B2 (en) 2010-01-15 2023-02-28 Ab Initio Technology Llc Managing data queries

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7668864B2 (en) * 2003-01-17 2010-02-23 International Business Machines Corporation Digital library system with customizable workflow
US20080033925A1 (en) * 2006-08-07 2008-02-07 Bea Systems, Inc. Distributed search analysis
US20080033964A1 (en) * 2006-08-07 2008-02-07 Bea Systems, Inc. Failure recovery for distributed search
US20080033910A1 (en) * 2006-08-07 2008-02-07 Bea Systems, Inc. Dynamic checkpointing for distributed search
US20080033943A1 (en) * 2006-08-07 2008-02-07 Bea Systems, Inc. Distributed index search
US9015197B2 (en) * 2006-08-07 2015-04-21 Oracle International Corporation Dynamic repartitioning for changing a number of nodes or partitions in a distributed search system
US7725470B2 (en) * 2006-08-07 2010-05-25 Bea Systems, Inc. Distributed query search using partition nodes
US20080033958A1 (en) * 2006-08-07 2008-02-07 Bea Systems, Inc. Distributed search system with security
AU2010263721A1 (en) * 2009-06-25 2012-02-16 Shuhei Nishiyama Database management device using key-value store with attributes, and key-value-store structure caching-device therefor
CN102129425B (zh) * 2010-01-20 2016-08-03 阿里巴巴集团控股有限公司 数据仓库中大对象集合表的访问方法及装置
CN102737061B (zh) * 2011-04-14 2015-06-03 中兴通讯股份有限公司 分布式话单查询管理系统及方法
US20140181438A1 (en) * 2012-12-21 2014-06-26 Commvault Systems, Inc. Filtered reference copy of secondary storage data in a data storage system
US9665662B1 (en) 2013-06-13 2017-05-30 DataRPM Corporation Methods and system for providing real-time business intelligence using natural language queries
CN105302896B (zh) * 2015-10-22 2018-12-25 江苏国泰新点软件有限公司 一种电子评标系统中的数据存储方法和装置
CN108415964A (zh) * 2018-02-07 2018-08-17 平安科技(深圳)有限公司 数据表查询方法、装置、终端设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555409A (en) * 1990-12-04 1996-09-10 Applied Technical Sysytem, Inc. Data management systems and methods including creation of composite views of data
US5379419A (en) * 1990-12-07 1995-01-03 Digital Equipment Corporation Methods and apparatus for accesssing non-relational data files using relational queries
US5737732A (en) * 1992-07-06 1998-04-07 1St Desk Systems, Inc. Enhanced metatree data structure for storage indexing and retrieval of information
US5345586A (en) * 1992-08-25 1994-09-06 International Business Machines Corporation Method and system for manipulation of distributed heterogeneous data in a data processing system
US5542078A (en) * 1994-09-29 1996-07-30 Ontos, Inc. Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities
US5974409A (en) * 1995-08-23 1999-10-26 Microsoft Corporation System and method for locating information in an on-line network
JPH10333953A (ja) * 1997-04-01 1998-12-18 Kokusai Zunou Sangyo Kk 統合データベースシステムおよびそのデータベース構造を管理するプログラムを記録したコンピュータ読み取り可能な記録媒体
US6061677A (en) * 1997-06-09 2000-05-09 Microsoft Corporation Database query system and method
US6185552B1 (en) * 1998-03-19 2001-02-06 3Com Corporation Method and apparatus using a binary search engine for searching and maintaining a distributed data structure
US6502088B1 (en) * 1999-07-08 2002-12-31 International Business Machines Corporation Method and system for improved access to non-relational databases
US6408300B1 (en) * 1999-07-23 2002-06-18 International Business Machines Corporation Multidimensional indexing structure for use with linear optimization queries
US6510434B1 (en) * 1999-12-29 2003-01-21 Bellsouth Intellectual Property Corporation System and method for retrieving information from a database using an index of XML tags and metafiles
US6704728B1 (en) * 2000-05-02 2004-03-09 Iphase.Com, Inc. Accessing information from a collection of data

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005535947A (ja) * 2002-05-31 2005-11-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 異なるタイプのバックエンド・データ・ストアにアクセスするためのシステムおよび方法
JP2009223512A (ja) * 2008-03-14 2009-10-01 Toshiba Corp 情報処理システム及びその制御方法
US11593369B2 (en) 2010-01-15 2023-02-28 Ab Initio Technology Llc Managing data queries
US11308161B2 (en) 2015-02-18 2022-04-19 Ab Initio Technology Llc Querying a data source on a network
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods

Also Published As

Publication number Publication date
US20020049747A1 (en) 2002-04-25
JP4483034B2 (ja) 2010-06-16
US20050091210A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
US11755575B2 (en) Processing database queries using format conversion
US11120042B2 (en) Accelerator based data integration
JP4483034B2 (ja) 異種データソース統合アクセス方法
JP4552242B2 (ja) 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
US6587854B1 (en) Virtually partitioning user data in a database system
CN1705945B (zh) 提供查询的属性的方法和系统
US7373341B2 (en) Computer readable medium, method and apparatus for preserving filtering conditions to query multilingual data sources at various locales when regenerating a report
US7464084B2 (en) Method for performing an inexact query transformation in a heterogeneous environment
US6931390B1 (en) Method and mechanism for database partitioning
US6502088B1 (en) Method and system for improved access to non-relational databases
JP2001084257A (ja) 問合せ処理方法及びシステム
US9747349B2 (en) System and method for distributing queries to a group of databases and expediting data access
US9298829B2 (en) Performing a function on rows of data determined from transitive relationships between columns
US20040015486A1 (en) System and method for storing and retrieving data
US6850927B1 (en) Evaluating queries with outer joins by categorizing and processing combinations of relationships between table records
JPH1125096A (ja) データベースをサーチする方法およびコンピュータシステム
US9569485B2 (en) Optimizing database query
US11354313B2 (en) Transforming a user-defined table function to a derived table in a database management system
US20050102271A1 (en) Indexes with embedded data
US7185004B1 (en) System and method for reverse routing materialized query tables in a database
WO2008055202A2 (en) System and method for distributing queries to a group of databases and expediting data access
US20100205197A1 (en) Two-valued logic database management system with support for missing information
Crookshanks et al. Just Enough SQL
Castrejon-Castillo HAL Id: hal-01002695
Büchi et al. Relational Data Access on Big Data

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091214

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: 20100302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100315

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

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees