JP3747525B2 - 並列データベースシステム検索方法 - Google Patents
並列データベースシステム検索方法 Download PDFInfo
- Publication number
- JP3747525B2 JP3747525B2 JP22640696A JP22640696A JP3747525B2 JP 3747525 B2 JP3747525 B2 JP 3747525B2 JP 22640696 A JP22640696 A JP 22640696A JP 22640696 A JP22640696 A JP 22640696A JP 3747525 B2 JP3747525 B2 JP 3747525B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- sub
- information
- database
- server
- 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
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/2433—Query languages
- G06F16/2438—Embedded query languages
-
- 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/2433—Query languages
- G06F16/2443—Stored procedures
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- 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/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/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- 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
-
- 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/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Description
【発明の属する技術分野】
本発明は、デ−タベ−ス管理システムに関し、特にリレ−ショナルデ−タベ−ス管理システムに適した問合せの並列処理に好適な問合せ処理方法に関する。
【0002】
【従来の技術】
本発明に関連する従来技術として、SQL3のAbstruct Data Typeと、並列データベースシステムの2点について記述する。
【0003】
最初に、SQL3のAbstruct Data Typeについて記述する。
事務データ処理を中心にしてリレーショナルデータベース、主にSQLデータベースシステムの適用が進んでいる。また、従来のリレーショナルデータベースの枠組みでは効率的に扱うことが難しい、複雑な構造を持ったデータを扱うことを、1つの目的とするオブジェクトデータベースの実用も進められた。
【0004】
一方で、リレーショナルデータベースを拡張して、複雑な構造を持ったデータを扱うことが研究されており、SQL3で標準化が進められている。SQL3では、Abstruct Data Type(抽象データ型、以下ADTと記す)という複雑な構造を持ったユーザ定義のデータ(型)を扱うことができる。ADTは、複数の、属性と呼ばれるデータ(以下では、サブデータと呼ぶことにする)を、関数インタフェースで隠蔽し、型間で継承関係を持つことができる、オブジェクト指向の考えを取り入れた複雑なデータを扱うことができる。CREATE TYPEで始まるADTの定義系SQL文により型を定義する。定義した型は、整数型、文字型などのシステム定義の型と同様に変数宣言や、表の列定義などに用いることができる。各型により複雑な構造を持ったデータを作成し使用することが可能になる。SQL3、ADTについては、Andrew E. Wade, Ph.D. :"Object Query Standards",ACM SIGMOD Record, Vol.25, No.1, pp87-92, March 1996などに記載がある。また、SQL3の標準化のDraftは、ISO/IEC JTC1/SC21/WG3 DBL-MCI-004, ISO Working Draft Database Language SQL, 1996である。
【0005】
次に、並列データベースシステムについて記述する。
リレーショナルデータベースシステムにおいては、データを複数のデータベース処理サーバに分割して配置して、並列にアクセスすることで、性能の向上を図ることが容易である。このような並列データベースシステムに対する要求は、データ量の増大にともなって強まってきている。並列データベースシステムについては、DeWitt,D.,et.al.:"Parallel Database Systems: The Future of High Performance Database Systems", CACM, Vol.35, No.6, 1992.に記載されている。
【0006】
並列データベースシステムの構成としては、ホスト計算機のユーザアプリケーションプログラム(以下UAPと呼ぶことにする)からのデータベースに対する問い合わせを解析しコンパイルするサーバ(フロントエンドサーバと呼ぶことにする)と、データが格納されるディスク装置にアクセスしデータの操作を行う複数のサーバ(データベース操作サーバと呼ぶことにする)を有する。以下では、簡単のため、1つのホスト、1つのフロントエンドサーバと複数のデータベース操作サーバの構成で説明を行う。しかし、1つ、または、複数のホストからの複数の問い合わせに対して、複数のフロントエンドサーバが取りあつかうことができる。この場合でも1つ1つの問い合わせに対しては、1つのホスト、1つのフロントエンドサーバと複数のデータベース操作サーバの構成であり、以下の説明、及び、本発明に問題無く適用される。
【0007】
一般にデータベースに対する問い合わせ(以下、データベース問い合わせと呼ぶことにする)であるSQLは、C言語などの計算機言語(以下親言語と呼ぶことにする)に埋めこんだ形で使われることが多い(以下、埋込型SQLと呼ぶことにする)。データベースへの検索、及びデータベースへのデータの更新、削除と挿入などのデータベース問い合わせを、ホストの親言語から発し、データベースシステムが問い合わせの解析、実行を行ない、結果をホストに返す。ホストの親言語は、結果を受け取り、条件判定などの制御処理や代入や計算などの加工処理に用いる。ストアドプロシジャのように、制御処理や加工処理を含めたデータベース問い合わせを発する場合でも本発明の適用は可能である。(この場合、検索、挿入、更新、削除処理などデータベース操作サーバ側で行なう処理を、制御処理や加工処理などフロントエンドサーバ側で行なう処理と分ける意味で、以下、データベース操作文と呼ぶことがある)。ストアドプロシジャについては、片山初子:ストアド・プロシージャとトリガーを使いこなす, NIKKEI OPEN SYSTEMS, No.2, pp.133-144,1993.などに記載されている。
【0008】
親言語には、複数のデータベース問い合わせを埋め込むことができ、親言語の変数を介して、結果のやりとりを行なうことができる。変数による値の受け渡しは、親言語の解析結果の処理方法による。変数ごとに値を格納する領域を決めておき、変数の値を使用する場合は、その領域を見るように変数のバインドを決めておく方法などが挙げられる。
【0009】
以下に、埋込型SQLによる、一般的な、並列データベースシステムの内部形式の処理手順の作成、転送と実行の例を記す。データベース操作の結果に対する加工や制御を、埋込型SQLで書かれたUAPの制御構文が行う。データベース問い合わせは1文ずつUAPとのフロントエンドサーバにネットワークを介して送られる。そして、コンパイラによって構文解析、意味解析、最適化、コンパイルを行うことによって、送られたデータベース問い合わせに基づいた実際のデータベース操作を行うための内部形式の処理手順を作成する。内部形式の処理手順は、インタプリタで解釈実行するコードや、実行形式のコードである。コンパイルに必要な定義情報などはフロントエンドサーバからアクセスできるディクショナリ情報として存在する。作成された処理手順は、実際にデータベース操作を行うデータベース操作サーバにネットワークを通じて転送し起動要求により実行する。実際にデータベース操作を行なうサーバは通常操作する表の分割に関する情報で決まる。表の分割に関する情報は表定義で指定し、ディクショナリに入る。データベース操作サーバはプロセサと1つ以上のディスク装置を有する。データベース操作サーバのキャッシュに内部形式の処理手順を置くことによって、2回目以降の実行は、実行要求を発しキャッシュにある処理手順を用いる改良案がある。並列データベースシステムにおいてはデータベース操作サーバは複数存在し、SQLの処理の並列化がなされる。SQLの処理の結果は、必要に応じて他のデータベース操作サーバとネットワークを通じてデータなどのやりとりを行い、最終的にUAPとのフロントエンドサーバの結果受取り処理を通じて、実行結果がUAPに返され、実行結果の加工や制御を行う。以下SQL文1文ずつについて同じ処理を繰り返す。
【0010】
【発明が解決しようとする課題】
データベース問い合わせで扱えるデータが、複数のデータ(ADTでいう属性、以下サブデータと呼ぶ)の集まりであるとき、データに対する検索、更新、挿入、加工、制御などの処理は、サブデータ1つ1つを別個に処理する場合と、サブデータの集まりであるデータ全体を処理する場合の2通りが考えられる。ここで、データベースに対する問い合わせの使用方法として次のようなものが考えられる。まず、先に行なう問い合わせで、データ全体を検索する。そして、親言語の変数を介して、後の問い合わせに、検索したデータを渡す。後の問い合わせで渡されたデータのサブデータ1つ1つを別個に処理する。このような使用方法の場合、後の問い合わせが、検索したデータのサブデータ全てを使用するとは限らない。しかし、従来技術で述べた並列データベースシステムの技術をそのままADTに適用する場合、検索問い合わせでは、ホストに返す結果であるデータは、データのあるデータベース操作サーバから、後の問い合わせの解析や実行を行なうフロントエンドサーバに全て転送される。使用しないサブデータがLOBデータなど大規模なデータの場合、データベース操作サーバから、フロントエンドサーバに、使用しない大規模データを転送すると、転送時間が増大することになり、問い合わせにかかる時間が大きくなる。本発明は、データベース操作サーバから、フロントエンドサーバへ、後の処理で使用するデータのみを転送することを実現することで、問い合わせ時間を小さくするのが目的である。
【0011】
【課題を解決するための手段】
上記目的を達成するために、先に行なう検索問い合わせのときには、複数のサブデータからなるデータに対しては、データベース操作サーバから、フロントエンドサーバに、データの位置情報のみを返す。位置情報は、データベース操作サーバ上でのデータのアドレスと、データベース操作サーバの識別子を含む。後の問い合わせには変数を介して、位置情報を渡す。後の問い合わせは、渡された位置情報と、データ内での各サブデータの位置のディクショナリ情報と、問い合わせで必要なサブデータの識別子により、データベース操作サーバにあるデータの各サブデータを取り出す。位置情報はデータのあるデータベース操作サーバの識別子を含むので、データのあるデータベース操作サーバにデータ取り出し要求を行なえる。また、位置情報はデータベース操作サーバ上でのデータのアドレスを含むので、データを取出せる。データ内での各サブデータの位置のディクショナリ情報と、必要なサブデータの識別子により、データから、必要なサブデータの位置を割り出し、個々のサブデータを取り出すことができる。取り出したサブデータはフロントエンドサーバに返され、そのサブデータを使用する処理を行なうことが可能になる。
【0012】
データベース操作サーバから、フロントエンドサーバへ、後の処理で使用するデータのみを転送するため、使用しないデータが大きい場合、問い合わせ時間を小さくする目的が実現される。
【0013】
サブデータを使用する後の処理が、先の検索処理のデータに対する更新処理である場合、更新処理の内部形式の処理手順が、データベース操作サーバ側で、必要とするサブデータを受け取り更新処理を行なうことができる。この場合、データベース操作サーバから、フロントエンドサーバへのサブデータの転送が無くなるため、さらに問い合わせの時間が小さくなる。
【0014】
また、上記、先に行なう検索処理で、データの位置情報のみを取り出し、後の処理でサブデータを取り出す方法を第一の方法とし、
先に行なう検索処理で、サブデータを含むデータ全体をフロントエンドサーバ側に取り出し、後の処理に渡す方法を第二の方法とし、
サブデータのデータ長や通信にかかる時間などから計算した各方法のコスト比較や、LOBデータなどあらかじめシステムで与える基準値より長いサブデータの有無などにより、2つの方法から1つ選択することで、状況に応じて細かく、問い合わせ時間が小さい方法を選択することができ、問い合わせ時間を小さくする上記目的が達成される。
【0015】
本発明はデータベースの主流であるリレーショナルデータベース、SQLにより説明を行う。また、本発明で扱う複雑な構造を持ったデータとして、SQL3のADTにより説明を行なう。しかし、親言語に、データベース問い合わせが埋め込まれ、複数のデータベース問い合わせの間でデータのやりとりができ、かつ、複数のデータの集まりからなるデータを扱えるデータベース管理システムであれば本発明を適用可能である。
【0016】
【発明の実施の形態】
以下において本発明の一実施例を図面を用いて説明する。
図1は本発明の実施例の構成図である。データベースへの問い合わせ122に対するフロントエンドの役割をするデータベースサーバ12と、データベースに対する操作を行う役割をする複数のデータベース操作サーバ13で構成される。フロントエンドデータベースサーバ12とデータベース操作サーバ13は、高速な相互結合ネットワークで繋がっているものとする。
【0017】
ただし、ネットワークで繋がる複数プロセッサの並列データベースシステムで無く、単一プロセッサのシステムでも、各サーバの役割として並列なプロセスを割り当てていれば、本発明を適用可能である。
【0018】
フロントエンドサーバ12は、外部のホスト11とネットワークで繋がっているものとする。ただし、本発明はフロントエンドサーバ12とデータベース操作サーバ13の間の転送量を削減するものなので、ホストの役割をデータベースシステム側に取り込み、内部の高速なネットワークで繋げる代案や、ホストの役割とフロントエンドのデータベースサーバを1つに統合する代案に対しても本発明を適用できる。また一連の問い合わせが、ホストのUAPで無く、ストアドプロシジャの場合でも、複数のサブデータに対する検索問い合わせ、変数による受け渡し、後の問い合わせでサブデータを使用するという形で対応を付けることができ、本発明を適用できる。
【0019】
図1はデータベース問い合わせの解析、実行の例であり、表、型などの定義文の解析は後述の図10を参照する。データベース問い合わせか、定義文かは、意味解析で判定できる。解析101にはその判定を含む。
【0020】
まず、先に行なう検索問い合わせ122aをフロントエンドサーバ12で解析101することで、内部形式の処理手順125を作成する。内部形式の処理手順は、実行形式のコードであっても、インタプリタ用のコードであっても良い。
【0021】
検索問い合わせ122aの実行に対して、サブデータへの操作は無いものとし132、かつ、データベース操作文であるため133、内部形式の処理手順125をデータベース操作サーバ13に転送する102。データベース操作サーバ13は処理手順125を受け取り111、処理手順を実行し、複数のサブデータからなるデータの検索に対しては、データベース操作サーバの識別子IDとデータのアドレスを取得する112。検索の結果126はフロントエンドサーバ側に結果転送を行なう113。フロントエンドサーバ側は結果を受け取り103受け取った結果を、後の問い合わせ122bに変数を介して渡す情報127としてUAPに返す105。
【0022】
次に、サブデータを使用する後の問い合わせ122bをフロントエンドサーバ12で解析101する。入力となる変数が存在するので、変数にバインドした情報127がUAPから渡される。また、変数にバインドした情報127が、複数のサブデータからなるデータの位置情報126の場合、サブデータを取り出すためのオフセット情報124をディクショナリ14から取得する。上記情報127、124により、サブデータを取得する内部形式の処理手順と、取得したサブデータを使用する問い合わせの処理手順を作成する。
【0023】
問い合わせ122bの実行に対して、サブデータへの操作であるため131、サブデータ取得106を行なう。先の検索処理で取得した位置情報126のデータベース操作サーバの識別子から、データのあるデータベース操作サーバがわかるので、サブデータ取り出しに必要な情報128とともに、サブデータ取り出しの要求をそのデータベース操作サーバ13に出す。サブデータ取り出しに必要な情報128とは、そのデータベース操作サーバ内でのデータのアドレスと、必要なサブデータを取り出すためのオフセット情報124である。どの、サブデータが必要かは、解析101時に抽出することができ、サブデータを取得する内部形式に情報を埋め込んで置く。データベース操作サーバ側は、サブデータ取り出しの要求があると、データのアドレスとサブデータのオフセット位置の情報からサブデータを取り出し、要求元のフロントエンドサーバ12にサブデータ129を返す。実施例では、データベース操作サーバ13側の処理を、データのアドレスとサブデータのオフセット情報を受け取り、サブデータを返す、システム括り付けの処理で表しているが、解析時に同様の処理を行なう内部形式の処理手順を作成し、実行時にデータベース操作サーバに処理手順を転送し、実行する代案でも本発明を適用できる。
【0024】
フロントエンドサーバ側は、必要なサブデータ129を受け取る107。サブデータを受け取る場所は、解析101時に、問い合わせ122bの主となる処理であるサブデータを使用する処理の内部形式の処理手順中のサブデータ使用場所からポイントしておく。後の問い合わせがデータベース操作文である133無し134にかかわらず、続く内部形式の処理手順の実行104、112でサブデータを使用することができる。
【0025】
先に行なう、複数のサブデータからなるデータの検索問い合わせ122aで、位置情報126のみを取得し、後に行なう、サブデータを使用する問い合わせ122bで、必要とするサブデータ129のみを取得するため、使用しないデータがLOBのように大規模なデータの場合、問い合わせ時間を小さくすることが可能になる。
【0026】
図2は、複数のサブデータからなるデータの例である。型の定義例21、型から作成されるデータの例22、データの検索問い合わせ例23を記述する。
【0027】
データ型の定義には、各サブデータ(ADTでいう属性)の名称と型の宣言201を含む。サブデータの型は、システム定義の型でも、ユーザ定義の型でも良い。型のデータに対する関数や手続きの定義202や、型同士の継承関係も指定することができるが、指定が無くても良い。
【0028】
複数のサブデータからなるデータは、システム定義の型と同じく、表定義22に使用する。表へ、データの挿入を行なうことで、住所データのように、郵便番号、住所、電話番号のサブデータ204からなるデータ203を作成することができる。
【0029】
作成したデータは、検索などの問い合わせを行なうことができる205、206。205は住所データのサブデータ郵便番号を検索する問い合わせである。206は住所データのサブデータ住所がYokohamaである住所データを検索する問い合わせである。このように、サブデータの検索も、複数のサブデータからなるデータ自身の検索も行なうことができる。
【0030】
図3は本発明の内、図1の位置情報126の例である。位置情報126は、データベース操作サーバ13の識別子301と、サーバ13内でのデータのアドレス302を含む。フロントエンドサーバ12などでの制御処理に用いる情報として、型の識別子などの付加的な情報を含んでも良い。データベース操作サーバの識別子301は、データを格納するデータベース操作サーバを特定できる情報であればよい。データのアドレス302は、データ格納の実アドレスでも、メモリ上にデータを取り出し先頭アドレスからのオフセットによる論理的なアドレスで表してもよい。
【0031】
図4は本発明の内、図1の変数にバインドする情報127の例である。図4は、複数のサブデータからなるデータの検索結果をバインドする場合である。複数のサブデータからなるデータ全体の検索で無い場合は、変数にバインドする情報は、検索するデータ自身である。変数にバインドする情報127は、データベース操作サーバ13の識別子401と、サーバ13内でのデータのアドレス402を含む。フロントエンドサーバ12などでの制御処理に用いる情報として、型の識別子などの付加的な情報を含んでも良い。データベース操作サーバの識別子401は、データを格納するデータベース操作サーバを特定できる情報であればよい。データのアドレス402は、データ格納の実アドレスでも、メモリ上にデータを取り出しオフセットによる論理的なアドレスで表してもよい。図21の実施例のように、コストによりデータをフロントエンド側に置くか、バックエンド側に置くか選択する方式を行なう場合には、データがフロントエンド側にあるか、バックエンド側にあるかを表す情報を変数にバインドする情報に含める。ホストのUAP側では、サブデータを含むデータの検索の場合、変数の領域として、変数にバインドする情報を受け取るだけの長さ分の領域を用意する必要がある。
【0032】
図5は本発明の内、図1の内部形式の処理手順125の例である。内部形式の処理手順125は、インタプリタで解釈実行するコード及び各コードに付随する情報からなる。情報には、取り出すデータの型や長さの情報、サブデータのオフセット情報、取り出したデータを置く場所の情報など、処理に応じた各種の情報がある。情報には次に実行するコードの情報も含む。次に実行するコードが条件分岐の情報により分かれることも可能である。サブデータ取り出し用のコード501に付随する情報502はデータの位置情報126や使用するサブデータのオフセット情報を含む。内部形式の処理手順は、インタプリタで解釈実行するコードで無く、実行形式のコードであっても本発明を適用可能である。図5は位置情報126からサブデータ129を取り出す内部形式の処理手順51と、サブデータを使用する内部形式の処理手順52の関係を示すものである。処理手順51により取り出すサブデータ129を置く場所505を共用メモリ上でのオフセット位置506で表し、処理手順52でサブデータを使用するコードの情報504に入れて置く。上記の情報により、処理手順51で取り出したサブデータ129を処理手順52側で使用することができる。サブデータを取り出す内部形式の処理手順51と、サブデータを使用する内部形式の処理手順52は、1つの処理手順にまとめた形であっても良い。図5の例では、サブデータ129を取り出す処理は、取り出すサブデータの情報502を用いてコード501aにより解釈実行する形であるが、取り出す手順を表す複数のコードからなっていても良い。図5の例では、サブデータ129を使用する場合の内部形式の処理手順であるが、サブデータを使用しない内部形式の処理手順の場合は、サブデータを取り出す処理手順51や、サブデータ129を置く場所505のオフセット位置の情報は必要無い。位置情報126を取り出す内部形式の処理手順の場合、解釈実行に必要な情報として、取り出す位置情報の長さ分の領域へのオフセット位置を含む。
【0033】
図6は本発明の内、図1のサブデータのオフセット情報124の例である。サブデータのオフセット情報124は、複数のサブデータからなるデータごとに作成する。サブデータのオフセット情報124は、サブデータの識別子601、データ型602、データ長603、オフセット位置604を含む。オフセット位置は、データの先頭などの基準となるアドレスからのオフセットである。各サブデータがクラスタリングしてあれば、各サブデータの、オフセット位置は、データ長603から計算できるため、データ型602やオフセット位置604は無くてもかまわない。また、可変長サブデータが存在する場合は、ディクショナリ14にオフセット位置を置くことができない。この場合、オフセット位置をデータ130に組み入れる代案を適用できる。サブデータの識別子601とオフセットの対応が取れるようにデータ130に組みいれる。例えば、サブデータの識別子が、データの中の定義順に、1から順にふられている場合、データ130に同じ順にオフセットを置くようにする方法が考えられる。
【0034】
図7は本発明の内、図1のサブデータ取り出し用情報128の例である。サブデータ取り出し用情報128は、データベース操作サーバ13内でのデータのアドレス302と、使用するサブデータ129のオフセット情報701を含む。使用するサブデータのオフセット情報701は、サブデータの識別子601、データ型602、データ長603、オフセット位置604を含む。使用するサブデータ129のオフセット情報701は、解析101時に、サブデータのオフセット情報124から、使用するサブデータ129の識別子601のオフセット情報を取り出す。サブデータのオフセット情報124と、使用するサブデータ129の識別子を、サブデータ取り出し用情報128に含め、データベース操作サーバ13側で、使用するサブデータ129のオフセット情報を選択する代案も適用できる。
【0035】
図8は本発明の内、図1のサブデータ129の例である。サブデータ129は、システム定義型もしくは、ユーザ定義型の実際のデータ801である。取り出すサブデータがユーザ定義型で、使用するデータがサブデータのサブデータの場合、サブデータ取り出し用情報701に、サブデータのサブデータのオフセット情報を含めてデータベース操作サーバ13側で、サブデータのサブデータを取り出す代案が適用できる。サブデータのサブデータのサブデータ以下続く場合でも同様にオフセット情報をサブデータ取り出し用情報701に含めることで適用可能である。
【0036】
図9は本発明の内、図1のデータ操作サーバに格納してあるデータ130の例である。データ操作サーバに格納してあるデータ130は、各列ごとのデータ901の集まりである。各列の取り出しの高速化などの為に、各列のデータに対して、先頭からのオフセット情報などの付加情報があっても良い。各列のデータは、システム定義の型のデータ902と、ユーザ定義の型のデータ903を含む。各列のデータ型は、CREATE TABLEなどの表定義によるもので、システム定義の型のデータ902、ユーザ定義の型のデータ903ともに0回以上何回どの順番で出現してもかまわない。ただし、どちらか最低1つは必要である。図9の(a)は複数のサブデータからなる列データを、他の列データとクラスタリングし、全体のデータ130に埋め込んだ形式にしてある。サブデータに可変長のデータを含む場合、図9の(b)のように、サブデータを持つデータの列に対して、各サブデータのオフセット904を組み入れる代案を適用できる。サブデータを持つデータ903bの構造が、全体のデータ130の構造と同形になっている。図9の(b)では、オフセットはサブデータの先頭アドレスからのものを入れているが、サブデータの識別子から、サブデータの位置を確定できる情報が組み入れてあれば他の形でもよい。サブまた、可変長のサブデータに対して、オフセットの情報では無く、その可変長のサブデータにデータ長の情報を組み入れる代案もある。図6のディクショナリ情報のサブデータの識別子から、そのサブデータを取り出せる形になっていれば本発明を適用可能である。
【0037】
複数のサブデータからなる列データ903を、全体のデータ130と別の領域に格納し、その領域へのポインタのみをデータ130に格納する代案も適用できる。
【0038】
図10はサブデータのオフセット情報124作成の実施例である。サブデータのオフセット情報124は、複数のサブデータからなるデータの型の定義のときに作成される。CREATE TYPEのような型の定義文1001をフロントエンドサーバ12で解析101を行なう。サブデータ1つ1つに対して型を調べ、型の種類により決められた長さ、もしくは、文字列などの場合は定義された長さによって、サブデータの識別子601、データ型602、データ長603、オフセット位置604を得る。サブデータ識別子601は、サブデータの名称と対応付けられるものであればかまわない。フロントエンドサーバと、ディクショナリのあるサーバを分けて、ディクショナリのあるサーバで解析を行なう代案も適用できる。
【0039】
図11は複数のサブデータからなるデータ130作成の実施例である。複数のサブデータからなるデータ130は、挿入問い合わせのときなどに作成される。CREATE TABLEのような表の定義文により作成される表定義情報を用いる。表定義情報は各列の列識別子、データ型を含む。従来と変わることとしては、データ型として、ユーザ定義の型を使用できる。図11は挿入問い合わせの例である。挿入問い合わせ1101をフロントエンドサーバ12で解析101を行なう。挿入問い合わせ1101は、各列に挿入する値データを含む。挿入する値データが、複数のサブデータからなるデータの場合、各サブデータの値を指定する方法や、データを作成する関数とその引数を指定する方法などがある。ADTの場合は、データを作成する関数とその引数(引数無しの指定もある)を指定する。関数によりデータを作成する場合は、図10の型の定義時、定義の中に指定した関数などの解析した結果が、ディクショナリに格納される。
【0040】
挿入問い合わせ1101の解析101により、挿入する値もしくは値を作成する関数と引数を、インタプリタで解釈実行する情報として含む内部形式の処理手順1102を作成する。情報には、表定義情報やサブデータのオフセット情報から得る各列やサブデータの型、長さを含む。内部形式の処理手順1102をその挿入する表の格納してあるデータ操作サーバ13に転送する。データ操作サーバ13側は、内部形式の処理手順1102を受け取り、実行する。インタプリタで実行するコードは、列やサブデータの型や長さの情報と挿入する値の情報から、挿入する値の作成1103、型変換1104を経て、データ130の形式に組み上げ格納1105する。サブデータのサブデータに対しては、再帰処理などを用いてデータ130を組み上げる。内部形式の処理手順1102は、インタプリタで解釈実行するコードで無く、実行形式のコードであっても本発明を適用可能である。
【0041】
図12は本発明の内、図1の内部形式の処理手順作成101の処理説明図である。まず、問い合わせ122と、変数による入力があればそのバインドの情報127を受け取る1201。問い合わせ122の構文解析1202、意味解析1203を行ない、その過程で変数のサブデータの使用があるかどうか、ある場合使用するサブデータの識別子の解析も行なう。また問い合わせ122の中に使用するサブデータは複数あってもよいので、使用する側のサブデータと、取り出す側のサブデータは同じ識別子で解析結果の情報に含めておく。変数のサブデータの使用があれば1204、変数のバインドの情報から、データの位置情報126を取り出し1205、そのデータの位置情報126と、ディクショナリにあるサブデータのオフセット情報124と、使用するサブデータの識別子から、サブデータを取り出す内部形式の処理手順51を作成する1206。次に、サブデータを使用する問い合わせ122の内部形式の処理手順52を作成する1207。同じ識別子のサブデータには同じ格納場所を表すオフセットを与えることで、サブデータを取り出す側51と、使用する側52で、サブデータのやり取りができる。変数のサブデータの使用が無ければ1204、サブデータを取り出す内部形式の処理手順は必要無く、問い合わせ122の内部形式の処理手順のみを作成する1207。問い合わせがデータベース操作サーバ側で行なうデータベース操作サーバの場合、内部形式の処理手順には、実行するデータベース操作サーバの情報を付随する。実行するデータベース操作サーバの情報は、操作を行なう表の分割に関する情報から得られる。表の分割情報は、表定義時に指定され、ディクショナリに入っている。
【0042】
図13は本発明の内、図1の内部形式の処理手順転送102と、処理手順受け取り111の実施例の処理説明図である。実行するデータベース操作サーバ13の1つ1つに対して1301、内部形式の処理手順125を転送する1302。データベース操作サーバ13側は、内部形式の処理手順125を受け取り111、実行を行なう112。データベース操作サーバが処理手順125の受け取り報告をフロントエンドサーバ12に返し、全て受け取ったのを確認してから各データベース操作サーバ13に起動要求をかけ実行112に移る代案も適用できる。データベース操作サーバのキャッシュに内部形式の処理手順125を置くことによって、2回目以降の実行は、実行要求を発しキャッシュにある処理手順125を用いる改良案も適用できる。
【0043】
図14は本発明の内、図1の内部形式の処理手順実行104の実施例の処理説明図である。インタプリタにより、コードを1つずつ1401、付随する情報とともに解釈実行を行なう1402。次に行なうコードを情報から取り出し1403、次々実行していく。
【0044】
図15は本発明の内、図1の処理手順実行112の実施例の処理説明図である。インタプリタによるコードの実行は図14と同様である。インタプリタによって扱うコードの種類は、フロントエンドサーバ12側と、バックエンドサーバ13側で異なってもよい。インタプリタにより、コードを1つずつ1501、付随する情報とともに解釈実行を行なう1502。次に行なうコードを情報から取り出し1503、次々実行していく。実行するコードが、複数のサブデータからなるデータの検索の場合1504、データベース操作サーバ13aの識別子301とデータのアドレス302を取得し、解析時に結果用に用意しておく領域に、位置情報126を作成する。データベース操作サーバ13の識別子は、内部形式の処理手順125にコードが用いる情報として用意しておいても良い。複数のサブデータからなるデータで無い場合のデータの検索の場合は、解析時に結果用に用意しておく領域に、データ自身を取り出す。
【0045】
図16は本発明の内、図1の結果受け取り103と、結果転送113の実施例の処理説明図である。内部形式の処理手順125を転送した102データベース操作サーバ13から、実行結果が無くなる1602まで結果が転送される1601。結果は、複数個ごとに転送する代案も適用できる。各データベース操作サーバ13からの結果はキューなどにより結果を送られてきた順などに取り出される1603。結果受取りの処理手順を解析時に作成しても良い。起動したデータベース操作サーバ13から全て結果終了の報告が送られてくるまで1604、結果を受け取る1603。結果はホストのUAPに返す105。図1の場合、結果を全て受け取ってからUAPに返すようになっているが、結果を1つまたは複数個、受け取るごとにUAPに返す代案も適用できる。問い合わせが検索の場合は結果は検索結果である。複数のサブデータからなるデータの検索の場合は、検索結果に位置情報126を含む。問い合わせが検索結果以外の場合は、結果終了の報告のみである。
【0046】
図17は本発明の内、図1のサブデータ取得106と、サブデータ取り出し114と、データ転送115と、データ受け取り107の実施例の処理説明図である。データの位置情報127からデータのあるデータベース操作サーバ13の識別子を取り出し1701、そのデータベース操作サーバ13に、サブデータ取り出しに必要な情報128とともに、サブデータ取り出しの要求をそのデータベース操作サーバ13に出す1702。データベース操作サーバ側はフロントエンドサーバ12側から、サブデータ取り出し用情報128を受け取る1703。データベース操作サーバ13内でのデータのアドレス302により、データを取得する1704。使用するサブデータのオフセット情報701により、オフセット位置604からデータ長603の分だけ、データ型602にしたがって、サブデータ129を取り出す1705。可変長のサブデータに対して、オフセットがデータ130の方に組み入れてある代案においては、サブデータの識別子から、データ130に組み込んだオフセットを取り出し、そのオフセットを用いてサブデータを取り出せばよい。取り出したサブデータ129はフロントエンドサーバ側に転送する115。データベース操作サーバ13から受け取る1706結果である1つ以上のサブデータ129を、解析101時に用意した、結果を格納する領域505に置く1707。この領域は、サブデータを使用する内部形式の処理手順52にオフセット506で指定され、サブデータの使用が実現する。
【0047】
サブデータを使用する問い合わせ122bが、検索したデータに対する更新処理のように、データベース操作サーバ13側でサブデータを受け渡すことが可能な場合は、サブデータを使用する側と共用している領域におく処理107と、図5のサブデータを置く場所505を、データベース操作サーバ13側にする代案を適用できる。検索したデータに対する更新処理かどうかの判断は、先に行なう検索問い合わせ122aの解析のときに、更新用検索の指定がある場合に可能である。この場合、フロントエンドサーバ12とデータベース操作サーバ13間のデータの転送が無いので、問い合わせ時間の削減が見込まれる。
【0048】
また、サブデータを使用する問い合わせ122bが、検索したデータに対する更新処理であり、データのアドレス402がデータ格納の実アドレスである場合は、サブデータ取り出しを行なわず、更新処理の内部形式の処理手順に直接、位置情報127や使用するサブデータのオフセット情報124を組み込むことで、直接データベース上のデータを更新する代案も適用できる。この場合、データをメモリ上に取り出さず、直接データを更新するので、問い合わせ時間の削減が見込まれる。
【0049】
図18と図19は本発明を具体的なSQLに適用する例の概要図である。図18は、複数のサブデータからなるデータの検索SQLの例であり、図19は、図18で検索したデータのサブデータを使用するSQLの例である。図の例では、INTOにより、検索結果を1つ取り出し、後に使用する例であるが、複数の検索結果を取り出し、ループなどで結果1つずつを後の問い合わせで使用する場合にも、本発明を適用可能である。
【0050】
図18は、住所録から、住所データを検索するSQLの解析、実行である。住所データは、郵便番号、住所、電話番号の3つのサブデータからなる。住所録表や、住所データの型の定義情報をディクショナリから取得し、解析を行ない、内部形式の処理手順125を作成する。住所録表がデータベース操作サーバ1とサーバ2の2つに分割格納されているものとする。WHERE条件に合うデータはサーバ2の方にあるものとする。サーバ1とサーバ2に内部形式の処理手順を転送し102、実行を行なう112。サーバ2では条件に合うデータが存在するので、データベース操作サーバ13bの識別子であるサーバ2を取得し1505、データのアドレス1801を取得し1506、位置情報126を作成し1507、結果126を返す113。結果126は、ホスト11のUAP側に変数にバインドする情報127として返す。図18ではディスクを省略しているが、アドレスはデータ格納の実アドレスでも、メモリ上にデータを取り出しオフセットによる論理的なアドレスで表してもよい。
【0051】
図19は、住所データのサブデータである電話番号を判定条件に使用する問い合わせの例である。判定後の処理は、発明の主旨と関係無いので…で省略する。問い合わせを受け取り1201、構文解析、意味解析を行ない、変数:Xのサブデータ電話番号を使用する処理であるので、変数にバインドされた位置情報127と、使用するサブデータ電話番号のサブデータのオフセット情報124より、サブデータを取り出す内部形式の処理手順51を作成する1206。次に、サブデータを使用するIF文の内部形式の処理手順52を作成する1207。実行時には、位置情報127から取得したデータのベース操作サーバであるサーバ2に、サブデータ取り出し用情報128である、住所データのアドレスと使用するサブデータ電話番号のオフセット情報を転送する。電話番号のオフセットは26である。郵便番号のデータ長が6、住所のデータ長が20であり、住所データの先頭アドレスから26の位置に電話番号があり、サブデータ電話番号を取り出せる。ただし、サブデータはクラスタリングしてあるものとする。また、簡単のため、オフセットは、最初のサブデータの先頭を0で表している。住所データを図18の検索問い合わせで、キャッシュ上に置き、余分なIOを起こさない代案を適用できる。取り出したサブデータ129は、データ受け取り107で、サブデータを使用するIF文側と共用する領域に置く1707ので、IF文の処理手順を実行する104ときに、サブデータ129を使用できる。
【0052】
図20は本発明の代案の実施例である。図20は、先に行なう検索問い合わせ122aの解析、実行の例である。図1と異なるのは、複数のサブデータからなるデータの検索122aにおいて、検索結果2001が、位置情報126で無く、データ自身2001であることである。この場合変数にバインドする情報127は、フロントエンドサーバ上でのデータのアドレス、または、データ自身である。UAP側で、複数のサブデータからなるデータを受け取る機能が無い場合は、フロントエンドサーバ上でのアドレスになる。サブデータを使用する後の問い合わせ122bでは、フロントエンドサーバ側にデータがあるので、データベース操作サーバ側でサブデータ取り出しをする必要が無い。直接フロントエンドサーバ側のデータおよびサブデータを使用できる。
【0053】
図21は本発明の内、図1の変数にバインドする情報127の図4とは別の例である。図22の例で使用する。変数にバインドする情報127は、データをフロントエンドサーバに転送しているか、データは転送せずに位置情報をフロントエンドサーバに転送しているかを表すフラグ情報2101を含む。データをフロントエンドサーバに転送している場合0、位置情報をフロントエンドサーバに転送している場合1のフラグ情報でよい。データをフロントエンドサーバに転送しているか、データは転送せずに位置情報をフロントエンドサーバに転送しているかを判別できれば、上記フラグ情報で無くてもかまわない。変数にバインドする情報127には、データをフロントエンドサーバに転送している場合の情報2102と、位置情報をフロントエンドサーバに転送している場合の情報2103を含む。データをフロントエンドサーバに転送している場合の情報2102は、フロントエンド上でのデータのアドレスもしくは、データ自身である。位置情報をフロントエンドサーバに転送している場合の情報2103は、位置情報126である。
【0054】
図22と図23は、図1の方法(位置情報を転送する方法)と図20の方法(データを転送する方法)を、コスト計算などの選択基準で選択する例の概要図である。選択基準としては、サブデータのデータ長などのディクショナリ情報から各方法のコストを計算し比較する方法や、検索するデータにLOBデータなどの大規模なサブデータがあれば図1の方法、無ければ図20の方法というように分ける方法がある。
【0055】
図22は、複数のサブデータからなるデータの検索の概要図である。解析101時に、各方式のコスト計算など2201で図1の方法2202、図20の方法2203の解析、実行を選択する。ただし、結果を返す105処理のときに、図21の変数にバインドする情報127を作成する。ホストのUAP側では、サブデータを含むデータの検索の場合、変数の領域として、変数にバインドする情報を受け取るだけの長さ分の領域を用意する必要がある。
【0056】
図23は、サブデータを使用する問い合わせの概要図である。解析101時に、変数にバインドする情報127の、データをフロントエンドサーバに転送しているか、データは転送せずに位置情報をフロントエンドサーバに転送しているかを表すフラグ情報2101により2301、図1の方法2302、図20の方法2303の解析、実行を選択する。
【0057】
【発明の効果】
以上のように、本発明によれば、複数のサブデータからなるデータの検索において、位置情報のみを転送し、後でそのデータのサブデータを使用する問い合わせにおいて、使用するサブデータを取り出すため、使用しないサブデータの転送による通信時間を削減し、問い合わせ時間を小さくすることができる。使用しないサブデータがLOBデータなど大規模なデータの場合特に有効である。
【図面の簡単な説明】
【図1】実施例の構成図である。
【図2】複数のサブデータからなるデータの例である。
【図3】位置情報の例である。
【図4】変数にバインドする情報の例である。
【図5】内部形式の処理手順の例である。
【図6】サブデータのオフセット情報の例である。
【図7】サブデータ取り出し用情報の例である。
【図8】サブデータの例である。
【図9】データ操作サーバに格納してあるデータの例である。
【図10】サブデータのオフセット情報作成の実施例である。
【図11】複数のサブデータからなるデータ作成の実施例である。
【図12】内部形式の処理手順作成の処理説明である。
【図13】内部形式の処理手順転送と処理手順受け取りの処理説明である。
【図14】内部形式の処理手順実行の処理説明である。
【図15】処理手順実行の処理説明である。
【図16】結果受け取りと結果転送の処理説明である。
【図17】サブデータ取得とサブデータ取り出しの処理説明である。
【図18】具体例の概要図である。
【図19】具体例の概要図である。
【図20】代案の実施例である。
【図21】変数にバインドする情報の例である。
【図22】複数のサブデータからなるデータの検索の概要図である。
【図23】サブデータを使用する問い合わせの概要図である。
【符号の説明】
11…ホスト
12…フロントエンドサーバ
13…データベース操作サーバ
14…ディクショナリ
101…解析、102…内部形式の処理手順転送、103…結果受け取り
104…内部形式の処理手順実行、106…サブデータ取得、107…データ受け取り
111…処理手順受け取り、112…処理手順実行、113…結果転送
114…サブデータ取り出し、115…データ転送
121…UAP、122…問い合わせ、124サブデータのオフセット情報
125…処理手順、126…位置情報、127…変数にバインドする情報
128…サブデータ取り出し用情報、129…サブデータ、130…データ
Claims (4)
- データベースへの問い合わせを解析し、検索結果の加工や制御を行なうフロントエンドサーバと、データベースに対する検索を行う複数のデータベース操作サーバを有し、前記フロントエンドサーバと、前記複数のデータベース操作サーバとがネットワークで接続された並列データベースシステムにおける並列データベースシステム検索方法であって、
前記フロントエンドサーバは、前記データベースへの問合せの解析に基づいて処理手順を生成し、
データベース操作サーバは、複数のサブデータからなる抽象データ型データの検索において、前記データベース操作サーバから、前記フロントエンドサーバからの前記処理手順に基づいて前記抽象データ型データの位置情報を前記フロントエンドサーバに返却し、
前記フロントエンドサーバは、サブデータへの操作がある場合には、前記返却された抽象型データの前記位置情報と、ディクショナリ情報から取り出した、前記操作対象のサブデータのオフセット情報と、前記操作対象のサブデータの識別子とにより、前記データベース操作サーバにある前記抽象データ型データのサブデータを取り出し、取り出した前記サブデータを使用する処理を行い、
前記ディクショナリ情報とは、複数のサブデータの名称と型の宣言から定義される抽象データ型データの、各サブデータの識別子と、前記抽象データ型データの格納場所から各サブデータの格納場所までのオフセット情報とを格納した情報である
ことを特徴とする並列データベースシステム検索方法。 - 前記抽象データ型データの位置情報とは、データベース操作サーバの識別子と、抽象データ型データのデータベース操作サーバ内でのアドレスであることを特徴とする請求項1記載の並列データベースシステム検索方法。
- 請求項1又は2に記載の並列データベースシステム検索方法であって、
前記取り出した前記サブデータを使用する処理は、取り出した前記サブデータが所定の条件を満たすかどうかを判定する処理であり、該条件を満たすサブデータを含む前記抽象データ型データを問い合わせに対する結果として返却することを特徴とする並列データベースシステム検索方法。 - 請求項3記載の並列データベースシステム検索方法であって、
前記問い合わせに対する結果として返却される前記抽象データ型データに対して更新処理を行うことを特徴とする並列データベースシステム検索方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22640696A JP3747525B2 (ja) | 1996-08-28 | 1996-08-28 | 並列データベースシステム検索方法 |
US08/918,106 US5940289A (en) | 1996-08-28 | 1997-08-27 | Parallel database system retrieval method of a relational database management system using initial data retrieval query and subsequent sub-data utilization query processing for minimizing query time |
US09/998,219 US6564205B2 (en) | 1996-08-28 | 2001-12-03 | Querying parallel database system that execute stored procedures using abstract data type attributes, retrieving location information of data, sub-data between first and second server |
US10/379,673 US6959302B2 (en) | 1996-08-28 | 2003-03-06 | Querying database system to execute stored procedures using abstract data type attributes, retrieving location information of data, sub-data between first and second servers |
US11/208,533 US7225179B2 (en) | 1996-08-28 | 2005-08-23 | Querying database system to execute stored procedures using abstract data type attributes, retrieving location information of data, sub-data between first and second servers |
US11/730,242 US20070226179A1 (en) | 1996-08-28 | 2007-03-30 | Querying database system to execute stored procedures using abstract data type attributes, retrieving location information of data, sub-data between first and second servers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22640696A JP3747525B2 (ja) | 1996-08-28 | 1996-08-28 | 並列データベースシステム検索方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005283258A Division JP4033207B2 (ja) | 2005-09-29 | 2005-09-29 | データベース管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1069488A JPH1069488A (ja) | 1998-03-10 |
JP3747525B2 true JP3747525B2 (ja) | 2006-02-22 |
Family
ID=16844627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22640696A Expired - Fee Related JP3747525B2 (ja) | 1996-08-28 | 1996-08-28 | 並列データベースシステム検索方法 |
Country Status (2)
Country | Link |
---|---|
US (5) | US5940289A (ja) |
JP (1) | JP3747525B2 (ja) |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3510042B2 (ja) | 1996-04-26 | 2004-03-22 | 株式会社日立製作所 | データベース管理方法及びシステム |
JP3747525B2 (ja) * | 1996-08-28 | 2006-02-22 | 株式会社日立製作所 | 並列データベースシステム検索方法 |
JP3777666B2 (ja) * | 1996-08-28 | 2006-05-24 | 株式会社日立製作所 | データベース処理方法およびシステム |
JPH10232875A (ja) | 1997-02-19 | 1998-09-02 | Hitachi Ltd | データベース管理方法および並列データベース管理システム |
JP3742177B2 (ja) * | 1997-02-26 | 2006-02-01 | 株式会社日立製作所 | 並列データベースシステムルーチン実行方法 |
US6115703A (en) * | 1998-05-11 | 2000-09-05 | International Business Machines Corporation | Two-level caching system for prepared SQL statements in a relational database management system |
JPH11327879A (ja) * | 1998-05-15 | 1999-11-30 | Fujitsu Ltd | 変数検索装置及び方法並びに変数検索プログラムを記録したコンピュータ読取り可能な記録媒体 |
US7228300B2 (en) * | 1998-10-05 | 2007-06-05 | Oracle International Corporation | Caching the results of security policy functions |
US6304867B1 (en) * | 1999-02-25 | 2001-10-16 | Electronic Data Systems Corporation | System and method for enhanced performance of a relational database management system through the use of application-specific memory-resident data |
WO2000055725A1 (fr) * | 1999-03-17 | 2000-09-21 | Fujitsu Limited | Systeme serveur et support d'enregistrement |
US20020029207A1 (en) * | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
US6795854B1 (en) * | 2000-04-21 | 2004-09-21 | Polarlake Limited | Operating system for structured information processing |
US6725218B1 (en) * | 2000-04-28 | 2004-04-20 | Cisco Technology, Inc. | Computerized database system and method |
US6789076B1 (en) * | 2000-05-11 | 2004-09-07 | International Business Machines Corp. | System, method and program for augmenting information retrieval in a client/server network using client-side searching |
CA2310578A1 (en) * | 2000-06-02 | 2001-12-02 | Ibm Canada Limited-Ibm Canada Limitee | Method and apparatus for synchronizing not-logged application temporary tables in a multi-node relational database management system |
US6823391B1 (en) * | 2000-10-04 | 2004-11-23 | Microsoft Corporation | Routing client requests to back-end servers |
US6898633B1 (en) * | 2000-10-04 | 2005-05-24 | Microsoft Corporation | Selecting a server to service client requests |
GB0028237D0 (en) * | 2000-11-18 | 2001-01-03 | Ibm | Method and apparatus for communication of message data |
HUE030635T2 (en) * | 2002-03-27 | 2017-06-28 | Panasonic Ip Corp America | A variable length coding and decoding system and a variable length coding and decoding method |
US7499910B2 (en) * | 2002-06-27 | 2009-03-03 | Siebel Systems, Inc. | Detecting and processing cache hits for queries with aggregates |
US6990483B2 (en) * | 2002-07-08 | 2006-01-24 | International Business Machines Corporation | Method, system and program product for automatically retrieving documents |
US8166101B2 (en) | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US8238696B2 (en) * | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
GB2405964A (en) * | 2003-09-15 | 2005-03-16 | Siemens Ag | Database access |
US6941316B2 (en) | 2003-10-23 | 2005-09-06 | Microsoft Corporation | System and method for object persistence in a database store |
US7284010B2 (en) * | 2003-10-23 | 2007-10-16 | Microsoft Corporation | System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined |
US20050091231A1 (en) * | 2003-10-24 | 2005-04-28 | Shankar Pal | System and method for storing and retrieving XML data encapsulated as an object in a database store |
CA2447458A1 (en) * | 2003-10-29 | 2005-04-29 | Ibm Canada Limited - Ibm Canada Limitee | System and method for managing query access to information |
US7685095B2 (en) * | 2003-12-16 | 2010-03-23 | Oracle International Corporation | Executing a parallel single cursor model |
US8086645B2 (en) * | 2003-12-16 | 2011-12-27 | Oracle International Corporation | Compilation and processing a parallel single cursor model |
US7958160B2 (en) * | 2003-12-16 | 2011-06-07 | Oracle International Corporation | Executing filter subqueries using a parallel single cursor model |
US7340452B2 (en) * | 2003-12-16 | 2008-03-04 | Oracle International Corporation | Parallel single cursor model on multiple-server configurations |
US7451133B2 (en) * | 2003-12-16 | 2008-11-11 | Oracle International Corporation | Executing nested subqueries of parallel table functions in the parallel single cursor model |
US20050141042A1 (en) * | 2003-12-25 | 2005-06-30 | Murata Kikai Kabushiki Kaisha | Communication terminal device |
US7376656B2 (en) * | 2004-02-10 | 2008-05-20 | Microsoft Corporation | System and method for providing user defined aggregates in a database system |
US6976029B2 (en) * | 2004-02-10 | 2005-12-13 | Microsoft Corporation | System and method for providing user defined types in a database system |
JP5108309B2 (ja) * | 2004-02-10 | 2012-12-26 | マイクロソフト コーポレーション | ユーザ定義タイプの継承をサポートするためのシステムおよび方法 |
US7676453B2 (en) | 2004-04-22 | 2010-03-09 | Oracle International Corporation | Partial query caching |
US7310637B2 (en) * | 2004-05-05 | 2007-12-18 | International Business Machines Corporation | Dynamic database access via standard query language and abstraction technology |
US7548901B2 (en) | 2004-06-29 | 2009-06-16 | Microsoft Corporation | System and method for delayed fetching of designated members of a user defined type |
US7574424B2 (en) * | 2004-10-13 | 2009-08-11 | Sybase, Inc. | Database system with methodology for parallel schedule generation in a query optimizer |
US7778998B2 (en) * | 2005-03-28 | 2010-08-17 | Bea Systems, Inc. | Liquid data services |
US8126870B2 (en) * | 2005-03-28 | 2012-02-28 | Sybase, Inc. | System and methodology for parallel query optimization using semantic-based partitioning |
US20060218118A1 (en) * | 2005-03-28 | 2006-09-28 | Bea Systems, Inc. | Using query plans for building and performance tuning services |
US8086615B2 (en) * | 2005-03-28 | 2011-12-27 | Oracle International Corporation | Security data redaction |
US20060224628A1 (en) * | 2005-03-29 | 2006-10-05 | Bea Systems, Inc. | Modeling for data services |
US20060224556A1 (en) * | 2005-03-29 | 2006-10-05 | Bea Systems, Inc. | SQL interface for services |
US20060224557A1 (en) * | 2005-03-29 | 2006-10-05 | Bea Systems, Inc. | Smart services |
US8145686B2 (en) * | 2005-05-06 | 2012-03-27 | Microsoft Corporation | Maintenance of link level consistency between database and file system |
JP2006323721A (ja) * | 2005-05-20 | 2006-11-30 | Fuji Xerox Co Ltd | データ管理システム及びデータサーバ及びデータ管理方法 |
US7475056B2 (en) * | 2005-08-11 | 2009-01-06 | Oracle International Corporation | Query processing in a parallel single cursor model on multi-instance configurations, using hints |
JP4852938B2 (ja) * | 2005-09-02 | 2012-01-11 | 富士ゼロックス株式会社 | データサーバ及びデータ管理方法及びプログラム |
US20070088706A1 (en) * | 2005-10-17 | 2007-04-19 | Goff Thomas C | Methods and devices for simultaneously accessing multiple databases |
US7285849B2 (en) * | 2005-11-18 | 2007-10-23 | Fairchild Semiconductor Corporation | Semiconductor die package using leadframe and clip and method of manufacturing |
US20080281772A2 (en) * | 2005-11-30 | 2008-11-13 | Webroot Software, Inc. | System and method for managing access to storage media |
US7496580B2 (en) * | 2006-04-11 | 2009-02-24 | Honeywell International Inc. | Apparatus and method for procedural operations development and distribution |
US20090019103A1 (en) * | 2007-07-11 | 2009-01-15 | James Joseph Tommaney | Method and system for processing a database query |
US7917574B2 (en) * | 2007-10-01 | 2011-03-29 | Accenture Global Services Limited | Infrastructure for parallel programming of clusters of machines |
US7970872B2 (en) * | 2007-10-01 | 2011-06-28 | Accenture Global Services Limited | Infrastructure for parallel programming of clusters of machines |
JP5134989B2 (ja) * | 2008-01-31 | 2013-01-30 | 株式会社東芝 | サーバ、データ転送方法及びプログラム |
US8700646B2 (en) * | 2009-08-12 | 2014-04-15 | Apple Inc. | Reference file for formatted views |
WO2011128946A1 (ja) * | 2010-04-16 | 2011-10-20 | 三菱電機株式会社 | データアクセス方法及びデータアクセス装置 |
JP5855989B2 (ja) * | 2012-03-21 | 2016-02-09 | 三菱電機インフォメーションネットワーク株式会社 | データ処理装置及びデータ処理方法及びデータ処理プログラム |
US10909113B2 (en) | 2013-07-31 | 2021-02-02 | Sap Se | Global dictionary for database management systems |
JP2015146205A (ja) * | 2015-03-16 | 2015-08-13 | 株式会社東芝 | データベース処理方法、及びデータベース処理装置 |
WO2019228568A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
SG11202002363QA (en) | 2019-09-12 | 2020-04-29 | Alibaba Group Holding Ltd | Log-structured storage systems |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57150883A (en) * | 1981-03-14 | 1982-09-17 | Tokyo Shibaura Electric Co | Display system for image information memory retrieving unit |
JPH0731686B2 (ja) * | 1985-12-27 | 1995-04-10 | 日本電信電話株式会社 | デ−タ選別装置 |
US5048009A (en) | 1989-02-28 | 1991-09-10 | Hewlett-Packard Company | Broadcast station locator for a local area network |
WO1992007331A1 (en) * | 1990-10-16 | 1992-04-30 | Consilium, Inc. | Object-oriented architecture for factory floor management |
US5426747A (en) * | 1991-03-22 | 1995-06-20 | Object Design, Inc. | Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system |
JPH04299459A (ja) * | 1991-03-27 | 1992-10-22 | Nec Corp | データベースアクセスシステム |
US5737395A (en) * | 1991-10-28 | 1998-04-07 | Centigram Communications Corporation | System and method for integrating voice, facsimile and electronic mail data through a personal computer |
US5426780A (en) | 1992-02-28 | 1995-06-20 | Intergraph Corporation | System for dynamic segmentation analysis using conversion of relational data into object-oriented data |
JP3269849B2 (ja) * | 1992-05-29 | 2002-04-02 | 株式会社日立製作所 | 並列データベース処理システムとその検索方法 |
GB2274182B (en) * | 1993-01-09 | 1996-09-25 | Digital Equipment Int | Database co-processor |
JP3266351B2 (ja) * | 1993-01-20 | 2002-03-18 | 株式会社日立製作所 | データベース管理システムおよび問合せの処理方法 |
US5548770A (en) * | 1993-02-25 | 1996-08-20 | Data Parallel Systems, Inc. | Method and apparatus for improving retrieval of data from a database |
US5467471A (en) * | 1993-03-10 | 1995-11-14 | Bader; David A. | Maintaining databases by means of hierarchical genealogical table |
JPH0765032A (ja) * | 1993-08-27 | 1995-03-10 | Toshiba Corp | データベース言語変換機能を持つ情報処理システム |
JP3023441B2 (ja) * | 1993-11-16 | 2000-03-21 | 株式会社日立製作所 | データベース分割管理方法および並列データベースシステム |
JPH0824506B2 (ja) * | 1993-12-01 | 1996-03-13 | 株式会社新日本科学 | 霊長類の保定器 |
US5742806A (en) * | 1994-01-31 | 1998-04-21 | Sun Microsystems, Inc. | Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system |
US5522077A (en) * | 1994-05-19 | 1996-05-28 | Ontos, Inc. | Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers |
JP3773964B2 (ja) * | 1994-07-25 | 2006-05-10 | 株式会社日立製作所 | オブジェクト指向データベース管理システム及びその管理方法 |
US5588150A (en) | 1994-09-29 | 1996-12-24 | International Business Machines Corporation | Push down optimization in a distributed, multi-database system |
GB2296799A (en) * | 1995-01-06 | 1996-07-10 | Ibm | Processing parallel data queries |
US5729730A (en) | 1995-03-28 | 1998-03-17 | Dex Information Systems, Inc. | Method and apparatus for improved information storage and retrieval system |
US6078925A (en) * | 1995-05-01 | 2000-06-20 | International Business Machines Corporation | Computer program product for database relational extenders |
CA2150745C (en) | 1995-06-01 | 2001-05-01 | Chaitanya K. Baru | Method and apparatus for implementing partial declustering in a parallel database system |
US6249800B1 (en) * | 1995-06-07 | 2001-06-19 | International Business Machines Corporartion | Apparatus and accompanying method for assigning session requests in a multi-server sysplex environment |
US5794250A (en) * | 1995-10-20 | 1998-08-11 | Ncr Corporation | Method and apparatus for extending existing database management system for new data types |
US5754841A (en) | 1995-10-20 | 1998-05-19 | Ncr Corporation | Method and apparatus for parallel execution of user-defined functions in an object-relational database management system |
US6067542A (en) * | 1995-10-20 | 2000-05-23 | Ncr Corporation | Pragma facility and SQL3 extension for optimal parallel UDF execution |
US5806065A (en) | 1996-05-06 | 1998-09-08 | Microsoft Corporation | Data system with distributed tree indexes and method for maintaining the indexes |
US6031978A (en) * | 1996-06-28 | 2000-02-29 | International Business Machines Corporation | System, method and program for enabling a client to reconnect to a same server in a network of computer systems after the server has moved to a different network address |
JP3777666B2 (ja) | 1996-08-28 | 2006-05-24 | 株式会社日立製作所 | データベース処理方法およびシステム |
JP3747525B2 (ja) * | 1996-08-28 | 2006-02-22 | 株式会社日立製作所 | 並列データベースシステム検索方法 |
US5737597A (en) * | 1996-10-25 | 1998-04-07 | International Business Machines Corporation | Method for cataloging datastore characteristics and defining and generating datastore persistent objects |
US5765147A (en) | 1996-11-21 | 1998-06-09 | International Business Machines Corportion | Query rewrite for extended search capabilities |
US6148377A (en) | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
US5937409A (en) * | 1997-07-25 | 1999-08-10 | Oracle Corporation | Integrating relational databases in an object oriented environment |
US5999924A (en) | 1997-07-25 | 1999-12-07 | Amazon.Com, Inc. | Method and apparatus for producing sequenced queries |
US6226635B1 (en) * | 1998-08-14 | 2001-05-01 | Microsoft Corporation | Layered query management |
US6347312B1 (en) * | 1998-11-05 | 2002-02-12 | International Business Machines Corporation | Lightweight directory access protocol (LDAP) directory server cache mechanism and method |
-
1996
- 1996-08-28 JP JP22640696A patent/JP3747525B2/ja not_active Expired - Fee Related
-
1997
- 1997-08-27 US US08/918,106 patent/US5940289A/en not_active Expired - Fee Related
-
2001
- 2001-12-03 US US09/998,219 patent/US6564205B2/en not_active Expired - Fee Related
-
2003
- 2003-03-06 US US10/379,673 patent/US6959302B2/en not_active Expired - Fee Related
-
2005
- 2005-08-23 US US11/208,533 patent/US7225179B2/en not_active Expired - Fee Related
-
2007
- 2007-03-30 US US11/730,242 patent/US20070226179A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US5940289A (en) | 1999-08-17 |
US20070226179A1 (en) | 2007-09-27 |
US6564205B2 (en) | 2003-05-13 |
US7225179B2 (en) | 2007-05-29 |
US6959302B2 (en) | 2005-10-25 |
US20040002949A1 (en) | 2004-01-01 |
JPH1069488A (ja) | 1998-03-10 |
US20050283493A1 (en) | 2005-12-22 |
US20020038300A1 (en) | 2002-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3747525B2 (ja) | 並列データベースシステム検索方法 | |
JP3742177B2 (ja) | 並列データベースシステムルーチン実行方法 | |
EP3446242B1 (en) | Query plan generation and execution in a relational database management system with a temporal-relational database | |
US7062507B2 (en) | Indexing profile for efficient and scalable XML based publish and subscribe system | |
US7966311B2 (en) | Systems and methods for processing queries | |
US5758144A (en) | Database execution cost and system performance estimator | |
EP1240604B1 (en) | A method and apparatus for improving the performance of a generated code cache search operation through the use of static key values | |
US8005807B2 (en) | Object oriented query path expression to relational outer join translator method, system, and article of manufacture, and computer program product | |
US20100030726A1 (en) | Mechanism For Deferred Rewrite Of Multiple Xpath Evaluations Over Binary XML | |
JP4207096B2 (ja) | データベース管理方法 | |
JP3808941B2 (ja) | 並列データベースシステム通信回数削減方法 | |
JP3777666B2 (ja) | データベース処理方法およびシステム | |
JP4033207B2 (ja) | データベース管理方法 | |
JP2007207280A (ja) | データベース管理方法 | |
JPH1021125A (ja) | 分散データベースシステムの所在管理方式 | |
Plans | Execution Plans | |
JP3882835B2 (ja) | データベース管理方法および並列データベース管理システム | |
JPH05313965A (ja) | データベース管理システム | |
JP2000057025A (ja) | データベースシステム関数実行回数削減方法 | |
JPH11102312A (ja) | データベース処理装置 | |
Hikita et al. | An approach for customizing services of database machines | |
Kadlag | Implementation of SPINE Genomic Index and Graphical User Interface in BODHI | |
Parsian | Working with the PreparedStatement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050404 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050426 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050623 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050929 |
|
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: 20051108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051121 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081209 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131209 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |