JP3836928B2 - データベース処理方法 - Google Patents

データベース処理方法 Download PDF

Info

Publication number
JP3836928B2
JP3836928B2 JP04190697A JP4190697A JP3836928B2 JP 3836928 B2 JP3836928 B2 JP 3836928B2 JP 04190697 A JP04190697 A JP 04190697A JP 4190697 A JP4190697 A JP 4190697A JP 3836928 B2 JP3836928 B2 JP 3836928B2
Authority
JP
Japan
Prior art keywords
index
module
database
user
definition information
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
JP04190697A
Other languages
English (en)
Other versions
JPH10240588A (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.)
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 JP04190697A priority Critical patent/JP3836928B2/ja
Publication of JPH10240588A publication Critical patent/JPH10240588A/ja
Priority to US09/715,120 priority patent/US6349305B1/en
Priority to US10/029,239 priority patent/US6556986B2/en
Priority to US10/383,736 priority patent/US20030144992A1/en
Priority to US10/788,276 priority patent/US7324992B2/en
Application granted granted Critical
Publication of JP3836928B2 publication Critical patent/JP3836928B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2291User-Defined Types; Storage management thereof
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データベースを処理するデータベース処理方法に関し、特に、ユーザがデータ型及びその振る舞いを定義することが可能なユーザ定義関数を用いてインデクスアクセスを行うデータベース処理方法に適用して有効な技術に関するものである。
【0002】
【従来の技術】
現在、データベース言語SQLではSQL3(ISO、ANSI)の規格化が進められており、そのSQL3の主要機能の1つにADT(Abstract Data Type、抽象データ型)がある。
【0003】
ADTとは、ユーザ定義のデータ型であり、オブジェクト指向の概念を取り入れ、ADTデータに対する操作もメソッド(関数、手続き)としてユーザが定義するものである。ADTを用いると、複雑なデータ構造を実現することができる。また、ADTデータの値自身の振る舞い(付随する機能)をADT関数として定義することができる。
【0004】
ADTの定義では、値を表現する為の属性(群)の仕様と、その振る舞いを実現する一群の操作をADT関数として規定する。これらADT定義情報は、表定義等と同様にディクショナリ情報としてデータベース管理システムにおいて管理されるのが実装として一般的である。
【0005】
ADT関数の定義には、SQL自身や、C言語等の一般プログラミング言語で記述してコンパイルし、システムに登録したモジュールを指定することもでき、これらADT関数の内部的実現形態であるモジュールとADT関数との関連は、ADTを定義する為のADT定義文(CREATE TYPE文)に記述される。
【0006】
ADTを使うことによって、マルチメディアデータに対応する機能をデータベース管理システムの機能として実現することができる様になる。これは、今までアプリケーションプログラムで行っていた処理を、データベースシステム側で高速にかつ低開発コストで実現できることを意味している。
【0007】
一方、一般の検索システムでは、ある特有の機能を高速に実現する為に、その機能特有のアクセスメソッドを利用することが多く、その代表的なものとしてインデクスが挙げられる。
【0008】
例えば、全文検索システムでは、文書を高速に検索する為の抽出キーワードや文字成分表等で実現される専用インデクスが使われている。また、多くのデータベース管理システムでは、システムに内蔵されているB木インデクス等のアクセスメソッドを使用することによりユーザ問合わせ処理(検索処理)の高速化を図っている。
【0009】
ADTデータに関しても、あるADT特有の評価(検索)や高速な評価(検索)を実現する為の特有のインデクスの利用が考えられるが、ADTの恩恵を十分に享受する為には、ユーザ定義のアクセスメソッドすなわちインデクスを組込む仕掛けがデータベース管理システムに必要である。
【0010】
【発明が解決しようとする課題】
ところで、従来のデータベース処理方法では、ユーザ定義インデクスを組込む一つの方法として、ADT関数を実現するモジュールを用いて関数内で検索を高速に実現するアクセスメソッドを内蔵する方法が挙げられるが、その場合、ADT関数を実現するモジュールがユーザ定義インデクスをアクセスする機能を有する為、そのユーザ定義インデクスはADTに括り付けになり、ADTに対して独立性を失うことになる。
【0011】
従って、前記従来のデータベース処理方法において、ADT関数にユーザ定義インデクスをアクセスする機能を内蔵すると、いくら有用で汎用的に設計されたインデクスでも他のADTからは利用することができないという問題が生じていた。
【0012】
また、前記従来のデータベース管理システム内に、B木インデクスだけでなく、文書検索用インデクスや画像検索用インデクス等あらゆるデータに対応したインデクスを実装することは不可能であり、多くのデータに対応したインデクスを実装するとデータベース管理システムが大きくなって、かえって不要なインデクスモジュールが内蔵されてしまうという問題があった。
【0013】
本発明の目的は、特定のユーザ定義関数に依存しない汎用的なデータベース処理を行うことが可能な技術を提供することにある。
【0014】
本発明の他の目的は、特定のインデクスアクセスを行う実現モジュールをユーザ定義関数から独立させることが可能な技術を提供することにある。
【0015】
本発明の他の目的は、必要な実現モジュールのみを内蔵することが可能な技術を提供することにある。
【0016】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明かになるであろう。
【0017】
【課題を解決するための手段】
本願によって開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。
【0018】
すなわち、データベースに予め定義登録しておいた関数を処理要求に応じて起動してデータベース処理を行うデータベース処理方法において、データベースへの処理要求中のユーザ定義関数が前記インデクス定義情報により特定のインデクスに対応付けられている場合に、前記特定のインデクスを用いたアクセスを行う特定の実現モジュールを前記モジュール定義情報から選択し、前記選択した実現モジュールを用いてデータベース処理を行うものである。
【0019】
以上の様に、前記データベース処理方法によれば、処理要求中のユーザ定義関数がインデクス定義情報に定義されたものである場合に、前記ユーザ定義関数に対応する実現モジュールを実行してインデクスアクセスを行うので、特定のユーザ定義関数に依存しない汎用的なデータベース処理を行うことが可能である。
【0020】
【発明の実施の形態】
以下に、本発明のデータベース処理方法において、データベースに予め定義登録しておいたユーザ定義関数を処理要求に応じて起動してデータベース処理を行う一実施形態のデータベース処理方法を実施する実施装置について説明する。
【0021】
図1は、本実施形態のデータベース処理方法を実施する実施装置の概略構成を示す図である。図1において、1はデータベース管理システム、2はユーザ要求、3はモジュール定義情報、4はデータベース領域、5はディクショナリ、10は問合せ解析処理部、20はデータベース演算処理部、30はユーザ定義インデクス管理部、31はユーザ定義インデクス検索処理制御部、32はユーザ定義インデクス更新処理制御部、40はテーブルデータ管理部、41はユーザ定義インデクス、42はテーブルデータ、50はモジュール起動部、51はインデクスタイプ定義情報、52はインデクス定義情報、53はデータタイプ定義情報、54はモジュール定義情報、60はデータベース領域アクセス処理部、70はモジュール定義情報登録部、80は定義処理部、90はディクショナリ管理部、100a〜100dは各種モジュールである。
【0022】
図1に示す様に、本実施形態のデータベース処理方法を実施する実施装置では、以下の様にユーザ定義インデクス41の組込み及びアクセスを実現する。ここで、ユーザが新たにデータベース管理システム1に追加しようとするインデクスの種別を、以下インデクスタイプと呼ぶ。
【0023】
本実施形態のデータベース処理方法を実施する実施装置では、あるインデクスタイプを適用したインデクスに対する検索、更新等を実現するモジュールは、ADTと同様にユーザ定義関数の実現モジュールとして、ユーザによりデータベース管理システム1へ組込まれる。図1の各種モジュール100a〜100dが、組込まれたユーザ定義関数実現モジュールである。
【0024】
まず、インデクスを新たにデータベース管理システム1に追加するユーザは、データベース管理システム1がそのインデクスタイプを認知し、そのインデクスタイプの実現モジュールを実行(起動)する為の情報をインデクスタイプ定義情報51としてデータベース管理システム1に登録する。図1の例ではユーザ要求2のインデクスタイプ定義要求がそれにあたる。
【0025】
次に、既にデータベースのデータを格納したテーブルの一つまたは複数のデータ項目に対して、あるインデクスタイプのインデクスを作成することにより、ユーザからの検索要求に対してそのインデクスの使用が可能となる。そのインデクス作成指示は、テーブル定義と同様にユーザがデータベース管理システム1に対して行う。図1の例ではユーザ要求2のインデクス定義要求がそれにあたる。
【0026】
作成されたインデクスは、問合せ解析処理部10にてユーザからの検索要求に応じて最適なアクセス経路として選定される。そして、ユーザ定義インデクス管理部30の制御の元にアクセスされ高速または高機能検索を実現する。
【0027】
インデクスタイプ定義要求には、インデクスタイプ名称やインデクスを維持する為の入力データ(以下そのデータをインデクスキーと呼ぶ)のデータ型等についての情報が含まれる。インデクス定義要求には、どのインデクスタイプのインデクスを作成するか、インデクスを作成及び維持するにはどのテーブルデータ42を必要とするか、そのインデクスを使用するのはどの様な場合か、等に関する情報が含まれる。これらの定義情報は、ディクショナリ管理部90が管理するディクショナリ5に格納される。
【0028】
次に図1を用い、本実施形態のデータベース処理方法を実施する実施装置の構成について詳細に説明する。
【0029】
本実施形態のデータベース処理方法を実施する実施装置は、ユーザからのデータベース問合せ要求であるSQL(構造化照会言語)を受け取り、構文解析、意味解析処理を通してデータベースアクセスの最適なアクセス経路を決定する最適化処理を行い、決定したアクセス経路に基づいてデータベース処理用の内部処理コードを生成する問合せ解析処理部10、
生成された内部処理コードを基にデータベースアクセスの制御を行うデータベース演算処理部20、データベース演算処理部20の要求指示により、ユーザ定義インデクス41へのアクセスを行う為のモジュールの起動制御を行うユーザ定義インデクス管理部30、
データベース演算処理部20の要求指示により、テーブルデータ42へのアクセス制御を行うテーブルデータ管理部40、データベース演算処理部20またはユーザ定義インデクス管理部30からの要求指示により各種モジュール100a〜100dを起動するモジュール起動部50、
ユーザ定義インデクス41及びテーブルデータ42が格納されているデータベース領域4へのアクセスを行うデータベース領域アクセス処理部60、ユーザから入力されるADT関数またはユーザ定義インデクス41へのアクセスを実現する為のモジュールに関するモジュール定義情報3を受け付け解析し、ディクショナリ5への登録を要求するモジュール定義情報登録部70、
ユーザ要求2が各種定義要求の場合、問合せ解析処理部10の解析結果に基づきディクショナリ5に対する登録或いは削除を要求する定義処理部80、ディクショナリ5に対する登録処理、参照処理或いは削除処理を行うディクショナリ管理部90で構成される。
【0030】
ディクショナリ5には、テーブルやインデクスに関する定義情報等の各種定義情報が格納されている。そのディクショナリ5に格納されている定義情報には、インデクスタイプ定義情報51、インデクス定義情報52、データタイプ定義情報53、モジュール定義情報54が含まれる。
【0031】
インデクスタイプ定義情報51は、インデクスタイプ定義要求により入力された情報である。インデクス定義情報52は、インデクスを作成する為のインデクス定義要求により入力された情報である。
【0032】
データタイプ定義情報53は、ADTに関する定義情報、すなわちADTを構成するデータ型及びそのADTの振る舞いを実現する為のADT関数に関する情報である。そのADT関数の中には、ユーザ定義インデクス41を用いて実現されるものもある。データタイプ定義情報53は、ユーザ要求2のデータタイプ定義要求によりユーザから入力されたものである。
【0033】
そして、モジュール定義情報54は、ADT関数の実現またはユーザ定義インデクス41の実現の為のモジュールがどの契機で起動されるかを示す情報である。
【0034】
それらユーザ登録モジュールには、ADT関数を実現する為のモジュール、ユーザ定義インデクス41に対する検索処理を実現する為のモジュール、ユーザ定義インデクス41に対する更新(登録、更新、削除)処理を実現する為のモジュール、ユーザ定義インデクス41を更新する為の入力キーを生成する為のモジュール等がある。図1の各種モジュール100a〜100dがそれらのモジュールにあたる。
【0035】
図2は、本実施形態のデータベース処理方法を実施する実施装置のハードウェア構成の一例を示す図である。図2において、1000はコンピュータシステム、1001は主記憶装置、1002はCPU、1003は外部記憶装置、1004は端末、1100は処理プログラムである。
【0036】
図2に示す様に、本実施形態のデータベース処理方法を実施する実施装置のハードウェア構成では、コンピュータシステム1000は、CPU1002、主記憶装置1001、磁気ディスク等の外部記憶装置1003及び多数の端末1004で構成される。
【0037】
主記憶装置1001上には、図1を用いて先に説明したデータベース管理システム1が置かれ、外部記憶装置1003上にはデータベース管理システム1が管理するデータベースに関する各種定義情報を含むディクショナリ5と、定義されたテーブルデータ42及びユーザ定義インデクス41を含むデータベース領域4とが格納される。また、コンピュータシステム1000にデータベース管理システム1を実現させる為の処理プログラム1100も外部記憶装置1003上に格納される。
【0038】
図3は、本実施形態のデータベース処理方法を実施する実施装置のインデクス追加作成手順の一例を示す図である。図3において、301〜306は手順である。
【0039】
図3に示す様に、本実施形態のデータベース処理方法を実施する実施装置のインデクス追加作成手順では、ユーザがデータベース管理システム1に対して新たなインデクスを追加作成する際の作成手順を表しており、その概略は以下の様になる。
【0040】
(1)インデクスタイプ定義(手順301)
(2)インデクス実現モジュール定義情報登録(手順302)
(3)データタイプ定義(手順303)
(4)ADT実現モジュール定義情報登録(手順304)
(5)テーブル定義(手順305)
(6)インデクス定義(手順306)
まず、インデクスタイプ定義(手順301)において、追加しようとするインデクスタイプに関する情報を登録する。インデクスタイプ定義では、次の2つの項目を指定する。
【0041】
(A)インデクスを作成する際、どのタイプのインデクスかを指定する為の識別子として用いるインデクスタイプ名称。
【0042】
(B)テーブルデータ42の挿入、更新、削除操作に伴い、インデクスを更新する際の更新処理に入力として必要なデータ(インデクスキー)のデータ項目数及びそのデータ型。
【0043】
登録の際のインタフェースとして、図3の例で示してある「CREATE INDEX TYPE文」の様なSQL形式に近い記述形式が考えられる。以下に、「CREATE INDEX TYPE文」の構文記述例を変形BNF記法(バッカス記法)で示す。
【0044】
Figure 0003836928
上記構文記述例では、FOR句によって(B)のインデクスキーのデータ型及びそのデータ項目数(データ型の列挙数)を指定する。またインデクスキーとして、以下の型のデータを更新する際の入力とするということを指示している。
【0045】
(a)一つまたは複数の基本データ型
(b)ADT型名で示されるADT
(c)ADT型名で示されるADTデータ内の一つまたは複数の属性のデータそのインデクスキーのデータ項目数は、上記構文記述例のデータ型名またはWITH句の後の属性名の数で表される。
【0046】
図3の「CREATE INDEX TYPE文」では、インデクスタイプ名称DOC−INDEX、インデクスキーはVARCHAR型1つ、というインデクスタイプ定義がなされている。
【0047】
インデクスタイプ定義の手順301に続き、手順302において前記インデクスを実現するモジュールのモジュール定義情報54の登録を行う。以下に図3のインデクスタイプ定義に基づいたインデクス実現モジュールのモジュール定義情報54の登録の際のユーザインタフェースの一例を挙げる。
【0048】
Figure 0003836928
まず、udimoduleは、ユーザによって入力されたモジュール定義情報3がユーザ定義インデクス41を実現するモジュールの定義情報であることを示している。そして、関連するユーザ定義インデクスタイプの名称が「インデクスタイプ名」にDOC−INDEXと示されている。その後に個々のモジュールに関する情報が指示される。
【0049】
組込みモジュール"_p_doc_insert"は、起動契機“AS_INDEX_INSERT”によりテーブルデータ挿入時のインデクスメンテナンスの契機で起動されるモジュールであることを示している。
【0050】
同様に、組込みモジュール"_p_doc_delete"は、起動契機“AS_INDEX_DELETE”によりテーブルデータ削除時のインデクスメンテナンスの契機で起動されるモジュールであることを、組込みモジュール"_p_doc_update"は、起動契機“AS_INDEX_UPDATE”によりテーブルデータ更新時のインデクスメンテナンスの契機で起動されるモジュールであることを示している。
【0051】
また、組込みモジュール”_p_doc_scan”は、起動契機“AS_INDEX_SCAN”により本インデクスタイプのインデクスを用いた検索指示が与えられた際に、その検索を実現する為に起動されるモジュールであることを示している。
【0052】
以上のインデクスタイプ定義(手順301)とインデクス実現モジュール定義情報登録(手順302)によって、インデクスを実現する為のモジュールをデータベース管理システム1が認知し、そのインデクスタイプのインデクスを作成及び使用することが可能になる。
【0053】
次に、定義したインデクスタイプのインデクスを使用する為のインタフェースであるADT関数を含むデータタイプの定義を行う(手順303)。データタイプの定義は、SQLの「CREATE TYPE文」により行う。
【0054】
図3の「CREATE TYPE文」の例では、text_no、text_name、author、contentsというそれぞれINT、CHAR、CHAR、VARCHAR型データの属性と、BOOLEAN型を返すADT関数CONTAINSを有する「TEXT」型ADTが定義されている。
【0055】
データタイプ定義の手順303において定義したADTに関して、手順304において前記ADTを実現するモジュールのモジュール定義情報54の登録を行う。以下に、図3のデータタイプ定義に基づいたADT実現モジュールの定義情報の登録の際のユーザインタフェースの一例を挙げる。
【0056】
Figure 0003836928
まず、adtmoduleは、入力されたモジュール定義情報3がADT実現モジュールの定義情報であることを示している。そして、関連するADTの名称が「ADT名」にTEXTと示されている。その後に個々のモジュールに関する情報が指示される。
【0057】
組込みモジュール”_p_text_contains”は、ADT関数"CONTAINS”を実現する為に起動されることを示している。ADT関数実現の為のモジュールには起動契機として“AS_FUNCTION”を指定する。
【0058】
組込みモジュール”_p_text_insert”は、TEXT型データの挿入時(“AS_INSERT_TRIGGER”は挿入時が起動契機であることを示す)に起動されることを示している。
【0059】
また、組込みモジュール”_p_text_delete”は、TEXT型データを含む行の削除時(“AS_DELETE_TRIGGER”は削除時が起動契機であることを示す)に起動されることを示している。
【0060】
また、“AS_KEY_CREATION”で指示されている組込みモジュール"_p_text_keycreate"は、インデクスタイプ名称で指示されるDOC−INDEXタイプのインデクスをメンテナンスする際のインデクスキー作成の為に起動されるモジュールであることを示している。
【0061】
以上により、そのインデクスタイプのインデクスを使用及び維持(更新)する為のインタフェースが確立され、ユーザ問合せからのインデクス使用の取り決めが完了する。
【0062】
上記インデクスタイプ及びADTの定義の下に、以下の手順305、手順306でデータベース領域4に格納するテーブルを定義し、そのテーブルに対して先に定義したユーザ定義インデクス41を作成する。
【0063】
テーブルの定義は、図3の手順305の例の様にSQLにおいて「CREATE TABLE文」により行う。この例では、title、country、produce_year、guide、movie_contentsというそれぞれCHAR、INT、DATE、TEXT、BLOB型の列から構成されるmovies_libテーブルが定義されている。
【0064】
ユーザ定義インデクス41の作成を行うインデクス定義(手順306)において、作成しようとするインデクスに関する情報を登録する。インデクス定義では、作成するインデクスを識別する為のインデクス名称の他に次の3つの項目を指定する。
【0065】
(A)作成するインデクスのインデクスタイプ名称
(B)インデクスメンテナンス用入力キーを生成する為のデータを確定するテーブル名称、属性名、或いはADT関数名
(C)定義したインデクスを使用する為のインタフェースとなるADT関数名称
前記インデクス定義の際のインタフェースとして、図3の例で示してある「CREATE INDEX文」の様なSQL形式に近い記述形式が考えられる。以下に、「CREATE INDEX文」の構文記述例を変形BNF記法で示す。
【0066】
Figure 0003836928
TYPE句によって(A)のどのタイプのインデクスを作成するかを指定する。ON句によって、(B)の指定テーブル名称のどの列、どの属性をインデクスメンテナンスの為のデータに使用するかを指定する。そして、FOR句によって(C)のユーザ定義インデクス41を使用する為のインタフェースとなるADT関数を指定する。(B)の情報は、複数のテーブルデータ指定が可能である。
【0067】
図3の「CREATE INDEX文」では、作成インデクスタイプがDOC−INDEXでありインデクス名称がDOC−SEARCHで、メンテナンスの為のテーブルデータ42がmovies_libテーブルのguide列のcontents属性であるというインデクス定義がなされている。
【0068】
また、「CREATE INDEX文」においては、ディクショナリ5のインデクスタイプ定義情報51を用いて、インデクス作成指示されているON句以下で指定されているテーブル列のデータ型に対して、指定インデクスタイプのインデクスが正当に作成できるかどうかのチェックを行うことも可能である。
【0069】
以上の作成手順によりインデクスタイプ定義及びインデクス定義(作成)が行われるが、あるインデクスタイプを適用するインデクスの構成インデクスキーが、あるADTデータを指定する場合、すなわちあるインデクスタイプとデータタイプを同時にデータベース管理システム1に組込む場合、図3の手順例の様な作成手順ではなく、(3)データタイプ定義及び(4)ADT実現モジュール定義情報登録を、(1)インデクスタイプ定義及び(2)インデクス実現モジュール定義情報登録の前に行うことも可能である。
【0070】
本実施形態のデータベース処理方法を実施する実施装置において、先に示した各種定義情報を格納するディクショナリ5の一構成例について図4、図5及び図6を用いて説明する。
【0071】
図4は、本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるインデクスタイプ定義情報51の一構成例を示す図である。図4において、51aはインデクスタイプ情報、511はインデクスタイプ情報エントリ、51bはインデクスキー情報、512はインデクスキー情報エントリである。
【0072】
図4に示す様に、本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるインデクスタイプ定義情報51では、インデクスタイプ情報51aとインデクスキー情報51bがある。
【0073】
インデクスタイプ情報51aは、ユーザ定義インデクスタイプ数分のインデクスタイプ情報エントリ511から成り、インデクスタイプ情報エントリ511は、インデクスタイプ名称、インデクスタイプid、インデクスキー数を含んでいる。
【0074】
インデクスタイプ名称は、インデクスタイプ定義によりユーザから指定されたインデクスタイプの名称を示しており、インデクスタイプidはインデクスタイプ定義時インデクスタイプ名称に対してデータベース管理システム1が割り当てた識別子である。インデクスタイプidは、データベース管理システム1内にてインデクスタイプ名称の替わりにインデクスタイプの識別子として使用される。
【0075】
インデクスキー数は、そのインデクスタイプのインデクスをメンテナンスする為に必要なインデクスキーの数であり、インデクスキー数は、「CREATE INDEX TYPE文」により指定されたインデクスキーデータ型の数を示している。
【0076】
インデクスキー情報51bは、各インデクスタイプのインデクスキー数の総和数分のインデクスキー情報エントリ512から成る。
【0077】
インデクスキー情報エントリ512は、どのインデクスタイプに関するインデクスキー情報51bかを示すインデクスタイプid、そのインデクスキーのデータ型、インデクスキーの定義長、またそのインデクスキーの指定番号を含む。ここで前記指定番号は、「CREATE INDEX TYPE文」にて指定された順序を示している。
【0078】
インデクスタイプ情報エントリ511とインデクスキー情報エントリ512はインデクスタイプidにより1対n(nはインデクスキー数)に関連付けられている。
【0079】
図5は、本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるインデクス定義情報52の一構成例を示す図である。図5において、52aはインデクス定義情報、521はインデクス定義情報エントリ、52bはインデクスキー生成用データ情報、522はインデクスキー生成用データ情報エントリ、52cはインデクスアクセス用ADT関数情報、523はインデクスアクセス用ADT関数情報エントリである。
【0080】
図5に示す様に、本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるインデクス定義情報52では、インデクス定義情報52a、インデクスキー生成用データ情報52b、そしてインデクスアクセス用ADT関数情報52cの3つがある。
【0081】
インデクス定義情報52aは、作成インデクス数分のインデクス定義情報エントリ521から成り、インデクス定義情報エントリ521は、インデクス名称、インデクスid、キー生成用データ数、インデクスタイプidを含んでいる。
【0082】
インデクス名称は、インデクス定義によりユーザから指定されたインデクスの名称であり、インデクスidはインデクス定義時インデクス名称に対してデータベース管理システム1が割り当てた識別子である。インデクスidは、データベース管理システム1内にてインデクス名称の替わりにインデクスの識別子として使用される。
【0083】
キー生成用データ数とは、「CREATE INDEX文」により指定されたインデクスをメンテナンスする為に必要なテーブルデータ42の項目数である。そしてインデクスタイプidがそのインデクスのタイプを示している。
【0084】
インデクスキー生成用データ情報52bは、インデクスキーを生成する為のテーブルデータ42に関する情報であり、この情報に従って必要なテーブルデータ42を取得する。インデクスキー生成用データ情報52bは、各インデクスのキー生成用データ数の総和数分のインデクスキー生成用データ情報エントリ522から成る。
【0085】
インデクスキー生成用データ情報エントリ522は、どのインデクスに関するインデクスキー生成用データ情報52bかを示すインデクスid、指定番号、テーブル名称、列名称、属性名または関数名を含む。ここで指定番号は、「CREATE INDEX文」にて指定された順序を示している。
【0086】
インデクスアクセス用ADT関数情報52cは、インデクスを使用する為のインタフェースとなるADT関数に関する情報であり、作成インデクス数分のインデクスアクセス用ADT関数情報エントリ523からなる。
【0087】
インデクスアクセス用ADT関数情報エントリ523は、どのインデクスに関するインデクスアクセス用ADT関数情報52cかを示すインデクスidと、インタフェースとなるADT関数名を含む。
【0088】
ここで、インデクスアクセス用ADT関数情報エントリ523は、どのインデクスに関するインデクスアクセス用ADT関数情報52cかを示すインデクスid、またインタフェースとなるADT関数名を含む。
【0089】
ここで、複数の異なるADT関数名と特定のインデクスを示すインデクスidとを対応付けることにより、特定のユーザ定義インデクス41や各種モジュール100a〜100dの特定の実現モジュールを複数の異なるADT定義関数で共有することが可能である。
【0090】
図6は、本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるモジュール定義情報54の一構成例を示す図である。図6において、54aはインデクスモジュール定義情報、541はインデクスモジュール定義情報エントリ、54bはADTモジュール定義情報、542はADTモジュール定義情報エントリである。
【0091】
図6に示す様に、本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるモジュール定義情報54では、インデクスモジュール定義情報54aとADTモジュール定義情報54bの2つがある。それらは各々、ユーザ定義インデクス41を実現する為のモジュールに関する定義情報、ユーザ定義データタイプ(ADT)を実現する為のモジュールに関する定義情報である。
【0092】
インデクスモジュール定義情報54aは、ユーザ定義インデクス41を実現する為のモジュール数分のインデクスモジュール定義情報エントリ541から成り、インデクスモジュール定義情報エントリ541は、ユーザ定義インデクス41のアクセスを実現する指定モジュールに関連するモジュール名、インデクスタイプid、起動契機を含んでいる。
【0093】
インデクスタイプidは、どのインデクスタイプを実現するかを示すインデクスidである。起動契機は、関連モジュールがユーザ定義インデクス41を実現する為に起動される契機を示している。
【0094】
ADTモジュール定義情報54bは、ADT実現の為のモジュール数分のADTモジュール定義情報エントリ542から成り、ADTモジュール定義情報エントリ542は、ADTの振る舞いを実現する指定モジュールに関連するモジュール名、ADT名、起動契機、起動ADT関数名、インデクスタイプidを含んでいる。
【0095】
ADT名は、その関連するモジュール(モジュール名により識別される)が、どのADTの振る舞いを実現する為に起動されるか、またはどのADTに対する操作を行った際に起動されるかを示している。
【0096】
起動契機は、関連モジュールがユーザ定義インデクス41を実現する為に起動される契機を示しており、もし、その関連するモジュールがADTの振る舞いを実現する為のもの、すなわちユーザからの問合せ要求(SQL文)内に明示的に記述されるADT関数を実現する為のものである場合、起動契機にはユーザの指定に伴い”AS_FUNCTION”が設定される。
【0097】
起動契機に”AS_FUNCTION”が設定されている場合、そのモジュールを起動するADT関数の名称が起動ADT関数名に示される。
【0098】
ユーザからのモジュール定義情報3にモジュールの起動契機として”AS_KEY_CREATION”が指定された場合、ADTモジュール定義情報54bの起動契機に”AS_KEY_CREATION”が設定されると共に、インデクスタイプidには、どのインデクスタイプのインデクスの為のインデクスキー生成モジュールかを示すインデクスタイプidが設定される。
【0099】
また、インデクスタイプ定義情報51及びインデクス定義情報52のインデクスタイプ名称及びインデクスidと、モジュール定義情報54のモジュール名及びインデクスidとを変更することにより、特定のADT関数名に対して起動されるモジュールを変更して、データベース処理の内容を変更することが可能。
【0100】
次に図3で示した新たなインデクスを追加作成する際の各手順毎の処理を図7から図9のフローチャートを用いて詳細に説明する。
【0101】
図7は、本実施形態のデータベース処理方法を実施する実施装置のインデクスタイプ定義処理の処理手順を示すフローチャートである。
【0102】
図7に示す様に、本実施形態のデータベース処理方法を実施する実施装置のインデクスタイプ定義処理では、定義処理部80におけるインデクスタイプ定義手順301の処理の流れの一例を表しており、まず、ステップ811において、ユーザから入力されたインデクスタイプ名称に対してインデクスタイプを識別する為のインデクスタイプidを決定して割り当てる。
【0103】
そして、そのインデクスタイプid及びユーザ入力情報からインデクスタイプ情報エントリ511を作成し、ディクショナリ5への登録を行う(ステップ812)。ディクショナリ5への登録は、定義処理部80からの要求を受けてディクショナリ管理部90が行う。
【0104】
次に同様にして、インデクスタイプidを用いてインデクスキー情報エントリ512を作成しディクショナリ5へ登録する(ステップ813)。
【0105】
図3の例では、ユーザが指定したインデクスタイプDOC−INDEXに対して、例えばインデクスタイプid「890」を割り当てる。また、インデクスキーのデータ型はVARCHAR一つであると指定されているので、まず、以下の様なインデクスタイプ情報エントリ511を作成し、図4に示した様にディクショナリ5に登録する。
【0106】
インデクス名称 :DOC−INDEX
インデクスタイプid:890
インデクスキー数 :1
インデクスキー情報51bに関しては、VARCHARデータの指定長が32000であり、インデクスキー指定が一つであることから指定番号も1である様な以下の一インデクスキー情報エントリ512を作成し、図4に示した様にディクショナリ5に登録する。
【0107】
インデクスタイプid:890
データ型 :VARCHAR
定義長 :32000
指定番号 :1
図8は、本実施形態のデータベース処理方法を実施する実施装置のモジュール定義情報登録処理の処理手順を示すフローチャートである。
【0108】
図8に示す様に、本実施形態のデータベース処理方法を実施する実施装置のモジュール定義情報登録処理では、図3で説明したインデクス実現モジュール定義情報登録の手順302及びADT実現モジュール定義情報登録の手順304を実行するモジュール定義情報登録部70における処理の流れを表している。
【0109】
まず、ステップ71において、ユーザ定義インデクス41を追加するユーザから入力されたモジュール定義情報3が、インデクスモジュールの定義情報であるかADTモジュールの定義情報であるかを判定する。
【0110】
ここで、入力されたモジュール定義情報3がインデクスモジュールの定義情報である場合にはステップ72に進み、ディクショナリ5に格納されているインデクスタイプ情報51aを参照し、ユーザがモジュール定義情報3により指定したインデクスタイプ名称からインデクスタイプidを取得する。
【0111】
そして、そのインデクスタイプidとユーザ入力情報からインデクスモジュール定義情報エントリ541を作成し、ディクショナリ5への登録を行い(ステップ73)、処理を終了する(ステップ78)。
【0112】
ステップ71の入力されたモジュール定義情報3がADTモジュールの定義情報である場合には、ステップ74の起動契機判定処理に進み、ユーザからのモジュール契機指定が、“AS_FUNCTION”指定か、“AS_KEY_CREATION”指定か、それ以外かを判定する。
【0113】
ユーザからのモジュール契機指定が“AS_FUNCTION”指定の場合には、そのモジュールによって実現されるADT関数の名称をモジュール定義情報エントリ作成の為に保持し(ステップ76)、ステップ77に進む。
【0114】
ユーザからのモジュール契機指定が“AS_KEY_CREATION”指定の場合には、ディクショナリ5に格納されているインデクスタイプ情報51aを参照し、ユーザがモジュール定義情報3により指定したインデクスタイプ名称からインデクスタイプidを取得保持し(ステップ75)、ステップ77に進む。
【0115】
ユーザからのモジュール契機指定が“AS_FUNCTION”指定や“AS_KEY_CREATION”指定以外の場合には、そのままステップ77に進む。
【0116】
ステップ77では、ステップ75またはステップ76において保持しておいた情報を元にADTモジュール定義情報エントリ542を作成し、それをディクショナリ5へ登録して処理を終了する(ステップ78)。
【0117】
起動契機が“AS_FUNCTION”のエントリには、起動ADT関数名に保持してあったADT関数名が設定される。また、起動契機が“AS_KEY_CREATION”のエントリには、インデクスタイプidに保持してあったインデクスタイプidが設定される。ディクショナリ5への登録は、ディクショナリ管理部90が代行して行う。
【0118】
図9は、本実施形態のデータベース処理方法を実施する実施装置のインデクス定義処理の処理手順を示すフローチャートである。
【0119】
図9に示す様に、本実施形態のデータベース処理方法を実施する実施装置のインデクス定義処理では、定義処理部80におけるインデクス定義(手順306)の処理の流れの一例を表しており、まず、ステップ821において、ユーザから入力されたインデクス名称に対してインデクスを識別する為のインデクスidを決定して割り当てる。
【0120】
そして、そのインデクスid及びユーザ入力情報からインデクス定義情報エントリ521を作成し、ディクショナリ5への登録を行う(ステップ822)。ディクショナリ5への登録は、定義処理部80からの要求を受けてディクショナリ管理部90か行う。
【0121】
同様にして、インデクスid及びインデクスを作成する為に必要なテーブルデータ42をアクセスする為の情報(ユーザ入力情報)からインデクスキー生成用データ情報エントリ522を作成し、ディクショナリ5へ登録する(ステップ823)。
【0122】
インデクスキー生成用データ情報エントリ522は、インデクス定義情報エントリ521内のキー生成用データ数分作成される。そして、エントリ内の指定番号には「CREATE INDEX文」で記述されたインデクスキー生成用データの順序番号が設定される。
【0123】
次に、インデクスid及びインデクスを使用する為のインタフェースである指定ADT関数名を用いて、インデクスアクセス用ADT関数情報エントリ523を作成してディクショナリ5へ登録し(ステップ824)、処理を終了する(ステップ825)。
【0124】
インデクスアクセス用ADT関数情報エントリ523も、「CREATE INDEX文」で指定された数分作成される。尚、図3に示した例ではインデクスDOC−INDEXに関するエントリは、ADT関数名”CONTAINS”を含むエントリ一つだけである。
【0125】
図10は、本実施形態のデータベース処理方法を実施する実施装置のADT関数解析処理の処理手順を示すフローチャートである。
【0126】
図10に示す様に、本実施形態のデータベース処理方法を実施する実施装置のADT関数解析処理では、問合せ解析処理部10におけるユーザ要求2(SQL文)内にADT関数が出てきた際のADT関数に関する解析処理の流れの一例を表している。
【0127】
まず、ステップ12において、解析対象のADT関数名、そのADT関数を適用するテーブル名称及び列名称を用いて、ディクショナリ5に格納されているインデクスアクセス用ADT関数情報エントリ523、インデクス定義情報エントリ521及び関連インデクスキー生成用データ情報エントリ522を取得する。
【0128】
次に、ディクショナリ5内に関連するエントリが存在するか、すなわち取得エントリがあったかを判定する(ステップ13)。関連するインデクス定義情報52が存在する場合、取得情報のインデクスidで識別されるインデクスを用いて要求ADT関数を実現するアクセス経路を用いることを決定する(ステップ14)。
【0129】
次にステップ15にて、使用を決定したインデクスをアクセスする為の情報として、インデクス検索用モジュール起動情報を、ディクショナリ5内のインデクスモジュール定義情報54aからインデクスタイプid(インデクス定義情報エントリ521内)を用いて取得する。
【0130】
そして、ステップ18にて、使用を決定したインデクスのインデクスid及びそのインデクスのアクセスを実現する為のモジュール情報(モジュール名)を用いて、インデクスアクセス用の内部処理コードを生成し、処理を終了する(ステップ19)。
【0131】
ステップ13の判定処理において、該当するインデクス定義情報52がない場合、インデクスは使用せず、一行データに対してADT関数実現モジュールを起動することによりADT関数を実現するというアクセス経路に決定する(ステップ16)。
【0132】
そして、ステップ17にて、関連ADT関数名を用いてADT関数実現モジュール情報を取得し、その情報(モジュール名)を用いてデータベース処理用内部処理コードを生成する(ステップ18)。
【0133】
生成されたデータベース処理用内部処理コードの指示に従って、データベース演算処理部20において、ユーザ定義インデクス管理部30及びテーブルデータ管理部40が連携してデータベース処理を実行する。
【0134】
図11は、本実施形態のデータベース処理方法を実施する実施装置のインデクス処理の処理手順を示すフローチャートである。
【0135】
図11に示す様に、本実施形態のデータベース処理方法を実施する実施装置のインデクス処理では、ユーザ定義インデクス管理部30における処理を表しており、データベース演算処理部20からの要求を受け取った際のユーザ定義インデクス管理部30におけるインデクス処理の一例を示している。
【0136】
まず、ステップ301では、処理要求がインデクス検索要求であるかまたは更新要求であるかを判定する。処理要求がインデクス検索要求の場合、ステップ310に進み、インデクス検索を実現するモジュールを起動する為の情報を取得する。そして、その情報を基にインデクス検索モジュールを起動し、インデクス検索を行う(ステップ311)。インデクスを検索した結果をデータベース処理部に返し(ステップ312)、処理を終了する(ステップ309)。
【0137】
ステップ301の判定結果が更新処理である場合、インデクスの更新処理の前準備としてインデクスを更新する為のデータの準備を行う。このインデクスの更新処理に対する入力データにはADTモジュール定義情報54bにてユーザが指定したキー生成モジュールを用いて生成するものと、テーブルデータ42を参照して取得したデータをそのまま用いるものとの二種類がある。そして、ステップ302において、キー生成モジュール起動するモジュール定義情報54があるかどうかでその判定を行う。
【0138】
関連するキー生成モジュール起動情報がある場合、その情報を取得し(ステップ303)、取得情報を用いてキー生成モジュールを起動してキーの生成を行う(ステップ304)。そして、生成したキーをインデクス更新用入力キーに指定する(ステップ305)。
【0139】
また、関連するキー生成モジュール起動情報が無い場合、更新行のデータをインデクス更新用キーに指定する(ステップ306)。
【0140】
次にステップ307において、インデクス更新モジュールを起動する為の情報を取得する。そして、先ほどの指定インデクス更新用キーを用いて、インデクス更新モジュールを起動することによりインデクスの更新を行う(ステップ308)。
【0141】
次に、図1で説明した一構成及び図3のデータベースの定義(ユーザ定義インデクス41組み込み)の下で、具体的なコマンド例を用いてユーザ組込みインデクスを用いたデータベース処理について説明する。
【0142】
まず、以下のユーザからの更新要求(SQL文)を例に説明する。
【0143】
INSERT INTO movies_lib
VALUES(”independence day”、12、1996、TEXT(8734、”ID4”、”Mr.X”、text_v)、contents_v)
ここで、ADT関数TEXTはADTデータ(インスタンス)を生成するコンストラクタ関数であり、テキスト番号(8743)、テキスト名称("ID4")、著者("Mr.X")、テキストの中身(変数text_vで示されるVARCHAR型データ)を引数としTEXT型データを生成する。
【0144】
上記SQL文の例では、title(題名):”independence day”、country(制作国名コード):12、produce_year(制作年):1996、guide(解説):TEXT型データ(コンストラクタ関数で生成される)、movie_contents(映像):変数contents_vで示されるBLOB型データ、を値に持つデータのmovies_libテーブルへの挿入要求を表している。また、country列に指定されているコード12は制作国USAを示すコードである。
【0145】
図11のフローチャートに従ってユーザ定義インデクス管理部30でテーブルデータ42の挿入に伴いユーザ定義メンテナンスを行う。
【0146】
図5に示す様に、movies_libテーブルのインデクス定義情報52aには、インデクスDOC−SEARCHが作成されているので、インデクスDOC−SEARCHの更新処理を行う。
【0147】
まず、インデクスキー生成用データ情報52bに基づきguide列のcontents属性データをインデクスキー生成用データとして準備する。
【0148】
そして、準備したデータを入力としてADTモジュール定義情報54bで示される_p_text_keycreateモジュールを起動し、DOC−SEARCHインデクス更新の為のインデクスキーを作成する。生成されるインデクスキーは定義長32000のVARCHAR型データである。
【0149】
次に作成したインデクスキーを入力としてインデクスモジュール定義情報AS_INDEX_INSERT契機で示されるモジュール_p_doc_insertを起動することによりインデクス更新処理を行う。
【0150】
次に、以下のユーザからの検索要求(SQL文)を例に説明する。
【0151】
SELECT title、movie_contents FROM movies_lib WHERE CONTAINS(guide、"independence”)
ここで、関数CONTAINSは、第一パラメータである指定ADTデータ内に、第二パラメータにより指定される単語を含む場合にTRUE(BOOLEAN型)を返す関数である。
【0152】
上記SQL文の例では、movies_libテーブルのguide列(解説)に”independence”を含むテーブルデータ42のtitle(題名)及びmovie_contents(映像)を取り出す検索要求である。
【0153】
問合せ解析処理部10において、図10のフローチャートに従って、ADT関数の実現はDOC−INDEXユーザ定義インデクスタイプであるインデクスDOC−SEARCHを用いて行うことに決定される。
【0154】
そして、インデクス検索モジュール_p_text_containsを起動することにより検索結果としてテーブルデータ42が確定され、テーブルデータ管理部40により指定取り出し列であるtitle及びmovie_contentsの値がユーザに問合わせ結果として返る。
【0155】
以上示したフローチャートの処理は、図2で例として示したコンピュータシステム1000におけるプログラムとして実行される。
【0156】
しかし、そのプログラムは、図2の例の様にコンピュータシステム1000に物理的に直接接続される外部記憶装置1003のみに格納されるものではなく、コンピュータシステム1000に物理的に直接接続されていないハードディスク装置、フロッピーディスク装置等のコンピュータで読み書きできる記憶媒体に格納されていても良い。
【0157】
以上説明した様に、本実施形態のデータベース処理方法を実施する実施装置によれば、処理要求中のユーザ定義関数がインデクス定義情報に定義されたものである場合に、前記ユーザ定義関数に対応する実現モジュールを実行してインデクスアクセスを行うので、特定のユーザ定義関数に依存しない汎用的なデータベース処理を行うことが可能である。
【0158】
また、本実施形態のデータベース処理方法を実施する実施装置によれば、複数の異なるユーザ定義関数と特定のインデクスとをインデクス定義情報で対応付けることにより、データベース領域のデータに特定の処理を行う実現モジュールを複数の異なるユーザ定義関数で共有するので、特定のインデクスアクセスを行う実現モジュールをユーザ定義関数から独立させることが可能である。
【0159】
また、本実施形態のデータベース処理方法を実施する実施装置によれば、インデクス定義情報及びモジュール定義情報を変更することにより、特定のユーザ定義関数に対応付けられた実現モジュールを変更するので、必要な実現モジュールのみを内蔵することが可能である。
【0160】
以上、本発明を前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【0161】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記のとおりである。
【0162】
すなわち、処理要求中のユーザ定義関数がインデクス定義情報に定義されたものである場合に、前記ユーザ定義関数に対応する実現モジュールを実行してインデクスアクセスを行うので、特定のユーザ定義関数に依存しない汎用的なデータベース処理を行うことが可能である。
【図面の簡単な説明】
【図1】本実施形態のデータベース処理方法を実施する実施装置の概略構成を示す図である。
【図2】本実施形態のデータベース処理方法を実施する実施装置のハードウェア構成の一例を示す図である。
【図3】本実施形態のデータベース処理方法を実施する実施装置のインデクス追加作成手順の一例を示す図である。
【図4】本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるインデクスタイプ定義情報51の一構成例を示す図である。
【図5】本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるインデクス定義情報52の一構成例を示す図である。
【図6】本実施形態のデータベース処理方法を実施する実施装置のディクショナリ5に格納されるモジュール定義情報54の一構成例を示す図である。
【図7】本実施形態のデータベース処理方法を実施する実施装置のインデクスタイプ定義処理の処理手順を示すフローチャートである。
【図8】本実施形態のデータベース処理方法を実施する実施装置のモジュール定義情報登録処理の処理手順を示すフローチャートである。
【図9】本実施形態のデータベース処理方法を実施する実施装置のインデクス定義処理の処理手順を示すフローチャートである。
【図10】本実施形態のデータベース処理方法を実施する実施装置のADT関数解析処理の処理手順を示すフローチャートである。
【図11】本実施形態のデータベース処理方法を実施する実施装置のインデクス処理の処理手順を示すフローチャートである。
【符号の説明】
1…データベース管理システム、2…ユーザ要求、3…モジュール定義情報、4…データベース領域、5…ディクショナリ、10…問合せ解析処理部、20…データベース演算処理部、30…ユーザ定義インデクス管理部、31…ユーザ定義インデクス検索処理制御部、32…ユーザ定義インデクス更新処理制御部、40…テーブルデータ管理部、41…ユーザ定義インデクス、42…テーブルデータ、50…モジュール起動部、51…インデクスタイプ定義情報、52…インデクス定義情報、53…データタイプ定義情報、54…モジュール定義情報、60…データベース領域アクセス処理部、70…モジュール定義情報登録部、80…定義処理部、90…ディクショナリ管理部、100a〜100d…各種モジュール、1000…コンピュータシステム、1001…主記憶装置、1002…CPU、1003…外部記憶装置、1004…端末、1100…処理プログラム、301〜306…手順、51a…インデクスタイプ情報、511…インデクスタイプ情報エントリ、51b…インデクスキー情報、512…インデクスキー情報エントリ、52a…インデクス定義情報、521…インデクス定義情報エントリ、52b…インデクスキー生成用データ情報、522…インデクスキー生成用データ情報エントリ、52c…インデクスアクセス用ADT関数情報、523…インデクスアクセス用ADT関数情報エントリ、54a…インデクスモジュール定義情報、541…インデクスモジュール定義情報エントリ、54b…ADTモジュール定義情報、542…ADTモジュール定義情報エントリ。

Claims (5)

  1. データベースに予め定義登録しておいた関数を処理要求に応じて起動してデータベース処理を行うデータベース処理方法において、
    特定のユーザ定義関数とデータベース領域のデータにインデクスアクセスを行う際に用いられる特定のインデクスとを対応付けるインデクス定義情報を作成し、
    データベース領域のデータにインデクスアクセスを行う際に用いられる特定のインデクスとデータベース領域のデータに特定の処理を行う実現モジュールとを対応付けるモジュール定義情報を作成し、
    データベースへの処理要求中のユーザ定義関数が前記インデクス定義情報により特定のインデクスに対応付けられている場合に、前記特定のインデクスを用いたアクセスを行う特定の実現モジュールを前記モジュール定義情報から選択し、前記選択した実現モジュールを用いてデータベース処理を行うことを特徴とするデータベース処理方法。
  2. 複数の異なるユーザ定義関数と特定のインデクスとを前記インデクス定義情報で対応付けることにより、データベース領域のデータに特定の処理を行う実現モジュールを複数の異なるユーザ定義関数で共有することを特徴とする請求項1に記載されたデータベース処理方法。
  3. 前記インデクス定義情報中のインデクスと、前記モジュール定義情報中の当該インデクス及び当該インデクスに対応付けられた実現モジュールを変更することにより、特定のユーザ定義関数に対するデータベース処理の内容を変更することを特徴とする請求項1または請求項2のいずれかに記載されたデータベース処理方法。
  4. 前記データベースへの処理要求が更新要求である場合に、前記モジュール定義情報で前記特定のユーザ定義関数に対応付けられたインデクスキーを生成する実現モジュールによりインデクスキーを生成し、前記生成したインデクスキーによりインデクスを更新することを特徴とする請求項1乃至請求項3のいずれか1項に記載されたデータベース処理方法。
  5. 前記データベースへの処理要求が更新要求である場合に、更新用のデータをインデクス更新用キーに指定してインデクスを更新することを特徴とする請求項1乃至請求項4のいずれか1項に記載されたデータベース処理方法。
JP04190697A 1997-02-26 1997-02-26 データベース処理方法 Expired - Fee Related JP3836928B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP04190697A JP3836928B2 (ja) 1997-02-26 1997-02-26 データベース処理方法
US09/715,120 US6349305B1 (en) 1997-02-26 2000-11-20 Method and system for database processing by invoking a function related to index type definition, generating an execution plan based on index type name
US10/029,239 US6556986B2 (en) 1997-02-26 2001-12-28 Database management method of invoking a function retrieving index type definition, cataloging particular index which has not yet been supported by a database system
US10/383,736 US20030144992A1 (en) 1997-02-26 2003-03-10 Database processing method and system
US10/788,276 US7324992B2 (en) 1997-02-26 2004-03-01 Database processing method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04190697A JP3836928B2 (ja) 1997-02-26 1997-02-26 データベース処理方法

Publications (2)

Publication Number Publication Date
JPH10240588A JPH10240588A (ja) 1998-09-11
JP3836928B2 true JP3836928B2 (ja) 2006-10-25

Family

ID=12621339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04190697A Expired - Fee Related JP3836928B2 (ja) 1997-02-26 1997-02-26 データベース処理方法

Country Status (2)

Country Link
US (4) US6349305B1 (ja)
JP (1) JP3836928B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3836928B2 (ja) * 1997-02-26 2006-10-25 株式会社日立製作所 データベース処理方法
US9742614B2 (en) 2000-09-28 2017-08-22 Wellogix Technology Licensing, Llc Data-type definition driven dynamic business component instantiation and execution framework
US7010593B2 (en) * 2001-04-30 2006-03-07 Hewlett-Packard Development Company, L.P. Dynamic generation of context-sensitive data and instructions for troubleshooting problem events in a computing environment
US20020158899A1 (en) * 2001-04-30 2002-10-31 Robert Raymond Portal system and method for managing resources in a networked computing environment
US20020161876A1 (en) * 2001-04-30 2002-10-31 Robert Raymond System and method for managing data miner modules in an information network system
US6775666B1 (en) * 2001-05-29 2004-08-10 Microsoft Corporation Method and system for searching index databases
US6795817B2 (en) * 2001-05-31 2004-09-21 Oracle International Corporation Method and system for improving response time of a query for a partitioned database object
US7266553B1 (en) * 2002-07-01 2007-09-04 Microsoft Corporation Content data indexing
US7647280B1 (en) * 2003-12-08 2010-01-12 Teradata Us, Inc. Closed-loop estimation of request costs
US7690000B2 (en) * 2004-01-08 2010-03-30 Microsoft Corporation Metadata journal for information technology systems
US20050223288A1 (en) * 2004-02-12 2005-10-06 Lockheed Martin Corporation Diagnostic fault detection and isolation
US7801702B2 (en) * 2004-02-12 2010-09-21 Lockheed Martin Corporation Enhanced diagnostic fault detection and isolation
US20050240555A1 (en) * 2004-02-12 2005-10-27 Lockheed Martin Corporation Interactive electronic technical manual system integrated with the system under test
US7584420B2 (en) 2004-02-12 2009-09-01 Lockheed Martin Corporation Graphical authoring and editing of mark-up language sequences
US20060120181A1 (en) * 2004-10-05 2006-06-08 Lockheed Martin Corp. Fault detection and isolation with analysis of built-in-test results
US20060085692A1 (en) * 2004-10-06 2006-04-20 Lockheed Martin Corp. Bus fault detection and isolation
US7529729B2 (en) * 2004-10-21 2009-05-05 International Business Machines Corporation System and method for handling improper database table access
US20080052281A1 (en) * 2006-08-23 2008-02-28 Lockheed Martin Corporation Database insertion and retrieval system and method
US20060256814A1 (en) * 2005-05-13 2006-11-16 Lockheed Martin Corporation Ad hoc computer network
US20060256717A1 (en) * 2005-05-13 2006-11-16 Lockheed Martin Corporation Electronic packet control system
US20060256770A1 (en) * 2005-05-13 2006-11-16 Lockheed Martin Corporation Interface for configuring ad hoc network packet control
US7599289B2 (en) * 2005-05-13 2009-10-06 Lockheed Martin Corporation Electronic communication control
US7427025B2 (en) * 2005-07-08 2008-09-23 Lockheed Marlin Corp. Automated postal voting system and method
US7917482B1 (en) * 2005-08-10 2011-03-29 Infoblox Inc. Indexing of database queries
US7840603B2 (en) * 2005-11-14 2010-11-23 International Business Machines Corporation Method and apparatus for database change management
US20070233902A1 (en) * 2006-03-30 2007-10-04 Alan Trefler User interface methods and apparatus for rules processing
US20070294317A1 (en) * 2006-06-15 2007-12-20 Dan Allan Christy Apparatus and Method for Journaling and Recovering Indexes that Cannot be Fully Recovered During Initial Program Load
US20080016049A1 (en) * 2006-07-12 2008-01-17 Dettinger Richard D Natural language support for query results
US7680780B2 (en) * 2007-04-06 2010-03-16 International Business Machines Corporation Techniques for processing data from a multilingual database
US9424365B2 (en) * 2009-10-30 2016-08-23 Oracle International Corporation XPath-based creation of relational indexes and constraints over XML data stored in relational tables
US9244956B2 (en) 2011-06-14 2016-01-26 Microsoft Technology Licensing, Llc Recommending data enrichments
US9147195B2 (en) 2011-06-14 2015-09-29 Microsoft Technology Licensing, Llc Data custodian and curation system
US11061964B2 (en) 2012-03-26 2021-07-13 Teradata Us, Inc. Techniques for processing relational data with a user-defined function (UDF)
CN103399925A (zh) * 2013-08-05 2013-11-20 河海大学 一种基于水文数据的降雨多维分析系统及其实现方法
RU2546058C1 (ru) * 2013-11-11 2015-04-10 Сергей Михайлович Назаров Способ формирования реляционного описания синтаксиса команды
US9588978B2 (en) 2013-09-30 2017-03-07 International Business Machines Corporation Merging metadata for database storage regions based on overlapping range values
US9519687B2 (en) * 2014-06-16 2016-12-13 International Business Machines Corporation Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices
US10042887B2 (en) 2014-12-05 2018-08-07 International Business Machines Corporation Query optimization with zone map selectivity modeling
CN106294353A (zh) * 2015-05-14 2017-01-04 中国移动通信集团福建有限公司 信息处理方法及装置
US11934370B1 (en) 2017-12-11 2024-03-19 Amazon Technologies, Inc. Data store indexing engine with automated refresh

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4961139A (en) * 1988-06-30 1990-10-02 Hewlett-Packard Company Data base management system for real-time applications
JPH0752399B2 (ja) * 1988-06-30 1995-06-05 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 記憶システム
US5761493A (en) * 1990-04-30 1998-06-02 Texas Instruments Incorporated Apparatus and method for adding an associative query capability to a programming language
US5295256A (en) 1990-12-14 1994-03-15 Racal-Datacom, Inc. Automatic storage of persistent objects in a relational schema
DE69232542T2 (de) * 1991-09-27 2002-11-21 Bmc Software Inc Definitionsänderungssprache für ein Datenbankrechnersystem
US5404510A (en) * 1992-05-21 1995-04-04 Oracle Corporation Database index design based upon request importance and the reuse and modification of similar existing indexes
JPH06110678A (ja) 1992-09-30 1994-04-22 Toshiba Corp プログラム実行方式及び実行プログラムの動的変更方法
US5418961A (en) * 1993-01-12 1995-05-23 International Business Machines Corporation Parallel tables for data model with inheritance
US5615367A (en) 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
US5560007A (en) 1993-06-30 1996-09-24 Borland International, Inc. B-tree key-range bit map index optimization of database queries
US5758144A (en) * 1994-06-24 1998-05-26 International Business Machines Corporation Database execution cost and system performance estimator
US5553234A (en) 1994-09-23 1996-09-03 International Business Machines Corporation System and method for including stored procedures, user-defined functions, and trigger processing in an existing unit of work
US5530939A (en) 1994-09-29 1996-06-25 Bell Communications Research, Inc. Method and system for broadcasting and querying a database using a multi-function module
US5650936A (en) 1994-12-30 1997-07-22 Cd Power Measurement Limited Power monitor apparatus and method with object oriented structure
US5546576A (en) * 1995-02-17 1996-08-13 International Business Machines Corporation Query optimizer system that detects and prevents mutating table violations of database integrity in a query before execution plan generation
US5864856A (en) 1995-04-21 1999-01-26 Actuate Software, Inc. Process and apparatus for simplifying access to information stored in databases
US6078925A (en) 1995-05-01 2000-06-20 International Business Machines Corporation Computer program product for database relational extenders
JPH0916607A (ja) * 1995-06-26 1997-01-17 Hitachi Ltd データベース管理システムにおけるインデクス管理方法
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
US5875334A (en) 1995-10-27 1999-02-23 International Business Machines Corporation System, method, and program for extending a SQL compiler for handling control statements packaged with SQL query statements
US5842196A (en) * 1996-04-03 1998-11-24 Sybase, Inc. Database system with improved methods for updating records
US5857201A (en) 1996-06-18 1999-01-05 Wright Strategies, Inc. Enterprise connectivity to handheld devices
US5893104A (en) * 1996-07-09 1999-04-06 Oracle Corporation Method and system for processing queries in a database system using index structures that are not native to the database system
US5765160A (en) * 1996-08-01 1998-06-09 Unisys Corp. Object-oriented database, a method for registering triggers for processing at end of a transaction
JP3777666B2 (ja) 1996-08-28 2006-05-24 株式会社日立製作所 データベース処理方法およびシステム
US5765147A (en) * 1996-11-21 1998-06-09 International Business Machines Corportion Query rewrite for extended search capabilities
JPH10232875A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd データベース管理方法および並列データベース管理システム
JP3836928B2 (ja) * 1997-02-26 2006-10-25 株式会社日立製作所 データベース処理方法
US6112198A (en) * 1997-06-30 2000-08-29 International Business Machines Corporation Optimization of data repartitioning during parallel query optimization
US6092062A (en) * 1997-06-30 2000-07-18 International Business Machines Corporation Relational database query optimization to perform query evaluation plan, pruning based on the partition properties
US6278994B1 (en) * 1997-07-10 2001-08-21 International Business Machines Corporation Fully integrated architecture for user-defined search
US6219662B1 (en) * 1997-07-10 2001-04-17 International Business Machines Corporation Supporting database indexes based on a generalized B-tree index
US6253196B1 (en) * 1997-07-10 2001-06-26 International Business Machines Corporation Generalized model for the exploitation of database indexes
US6266663B1 (en) * 1997-07-10 2001-07-24 International Business Machines Corporation User-defined search using index exploitation
US6065013A (en) * 1997-08-19 2000-05-16 International Business Machines Corporation Optimal storage mechanism for persistent objects in DBMS
US6195653B1 (en) 1997-10-14 2001-02-27 International Business Machines Corporation System and method for selectively preparing customized reports of query explain data
US6061690A (en) * 1997-10-31 2000-05-09 Oracle Corporation Apparatus and method for storage of object collections in a database system
US6240407B1 (en) * 1998-04-29 2001-05-29 International Business Machines Corp. Method and apparatus for creating an index in a database system
US6338056B1 (en) * 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
US6279004B1 (en) * 1998-12-22 2001-08-21 International Business Machines Corporation Database index key versioning
US6263328B1 (en) 1999-04-09 2001-07-17 International Business Machines Corporation Object oriented query model and process for complex heterogeneous database queries

Also Published As

Publication number Publication date
JPH10240588A (ja) 1998-09-11
US6556986B2 (en) 2003-04-29
US20040167917A1 (en) 2004-08-26
US20030144992A1 (en) 2003-07-31
US7324992B2 (en) 2008-01-29
US6349305B1 (en) 2002-02-19
US20020087531A1 (en) 2002-07-04

Similar Documents

Publication Publication Date Title
JP3836928B2 (ja) データベース処理方法
US6853992B2 (en) Structured-document search apparatus and method, recording medium storing structured-document searching program, and method of creating indexes for searching structured documents
US5732274A (en) Method for compilation using a database for target language independence
US6704739B2 (en) Tagging data assets
US6182121B1 (en) Method and apparatus for a physical storage architecture having an improved information storage and retrieval system for a shared file environment
US6151604A (en) Method and apparatus for improved information storage and retrieval system
US6105022A (en) Structured-text cataloging method, structured-text searching method, and portable medium used in the methods
US7305613B2 (en) Indexing structured documents
US7080068B2 (en) Automatic search method
US8626756B1 (en) Tagging data assets
JP2005525659A (ja) 構造化コンテンツ、準構造化コンテンツ、および非構造化コンテンツを検索する装置および方法
JPH10232883A (ja) 多言語対応文書検索システム
JP2003518664A (ja) パーソナライズされた結果セットを構成する方法およびシステム
CA2391750A1 (en) Information system
JPH07319917A (ja) 文書データべース管理装置および文書データべースシステム
US6735598B1 (en) Method and apparatus for integrating data from external sources into a database system
JPH04172542A (ja) データベース管理システム
JP3356519B2 (ja) 文書情報検索装置
JP3763982B2 (ja) データベース処理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP3612769B2 (ja) 情報検索装置および情報検索方法
JP3777666B2 (ja) データベース処理方法およびシステム
US8903846B2 (en) Method and apparatus for integrating data from external sources into a database system
KR100672278B1 (ko) 웹 브라우저의 즐겨찾기 리스트를 이용한 개인화 검색 방법및 검색 서버
JPH05204983A (ja) リレーショナルデータベース処理装置および処理方法
Schulze et al. The CQP user’s manual

Legal Events

Date Code Title Description
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: 20060725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060728

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100804

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110804

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120804

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130804

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees