(57)【要約】【課題】データベース管理装置とデータベース装置との間におけるＩ／Ｏを抑制しつつ、表を高速に操作することが運用上容易にできるようにすること。【解決手段】データベース管理装置のプロセッサが、定義要求を受け付けると、特定の表を特殊処理の対象とするように表定義情報を変更する。プロセッサは、その表に関するインデクス定義情報に基づいてその表に関して設定されているインデクスを選定するとともに、そのインデクスが特殊処理の対象となるようにインデクス定義情報に登録する。さらにプロセッサは、表定義情報に基づいてその表をバッファから特殊メモリに移動させる一方、そのインデクス定義情報に基づいてそのインデクスを特殊メモリに配置する。【選択図】図１
2011159038.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの表を有するデータベースが搭載されたデータベース装置との間でバッファを経由して前記表を操作するデータベース管理装置におけるデータベース管理方法であって、
前記データベース管理装置のプロセッサが、特定の表が指定された定義要求を受け付けると、前記特定の表を特殊処理の対象とするように表定義情報を変更する表定義変更ステップと、
前記特定の表にインデクスが設定されている場合、前記プロセッサが、前記特定の表に関するインデクス定義情報に基づいて前記特定の表に関して設定されているインデクスを選定するとともに、前記選定されたインデクスが前記特殊処理の対象となるように前記インデクス定義情報に登録するインデクス決定ステップと、
前記プロセッサが、前記表定義情報に基づいて前記特定の表を前記バッファから特殊メモリに移動させる一方、前記インデクス定義情報に基づいて前記選定されたインデクスを前記特殊メモリに配置する配置ステップと
を含むことを特徴とするデータベース管理方法。
【請求項２】
前記配置ステップでは、
前記プロセッサが、前記特定の表を前記バッファから前記特殊メモリに移動させようとした際に、前記特定の表が前記バッファに存在しない場合、前記データベース装置から前記特定の表を前記特殊メモリに配置する
ことを特徴とする請求項１に記載のデータベース管理方法。
【請求項３】
前記表定義情報は、
前記少なくとも１つの表ごとに、前記特殊処理の対象であるか否かに関する特定の実行要否情報を含み、
前記表定義変更ステップでは、
前記プロセッサが、前記定義要求を受け付けると、前記表定義情報を参照し、前記定義要求で指定された前記特定の表に対応する前記特定の実行要否情報に基づいて、前記特定の表を前記特殊処理の対象としたり対象外としたりする
ことを特徴とする請求項１に記載のデータベース管理方法。
【請求項４】
前記インデクス定義情報は、
前記表と前記インデクスとの組み合わせごとに、前記特殊処理の対象とすべきか否かに関する別の実行要否情報を含み、
前記インデクス決定ステップでは、
前記プロセッサが、前記定義要求を受け付けると、前記インデクス定義情報を参照し、前記定義要求で指定された前記特定の表と前記インデクスに対応する前記別の実行要否情報に基づいて、前記特定の表と前記インデクスとの組み合わせごとに前記特殊処理の対象又は対象外とする
ことを特徴とする請求項３に記載のデータベース管理方法。
【請求項５】
前記プロセッサが、前記特殊メモリに配置済みの前記特定の表の配置を解除するとともに、及び、前記特殊メモリに配置済みの前記インデクスの配置を解除する特殊処理解除ステップを含む
ことを特徴とする請求項１に記載のデータベース管理方法。
【請求項６】
前記特殊処理解除ステップでは、
前記プロセッサが、前記特定の表が指定された定義要求を受け付けると、前記特定の表について前記特殊処理が解除されるように前記表定義情報を変更する解除時表定義情報変更ステップと、
前記プロセッサが、前記特殊メモリに配置済みの前記特定の表を前記バッファに格納した後に、前記特殊メモリに配置済みの前記特定の表及び前記インデクスを削除する削除ステップと、
前記インデクス定義情報に基づいて、前記データベース装置に、前記バッファに格納した前記特定の表に対応した前記インデクスを生成するインデクス再作成ステップとを含む
ことを特徴とする請求項５に記載のデータベースの管理方法。
【請求項７】
少なくとも１つの表を有するデータベースが搭載されたデータベース装置との間でバッファを経由して前記表を操作するデータベース管理装置であって、
特定の表が指定された定義要求を受け付ける定義要求受付部と、
前記定義要求受付部によって定義要求が受け付けられると、前記特定の表を特殊処理の対象とするように表定義情報を変更する一方、前記特定の表にインデクスが設定されている場合、前記特定の表に関するインデクス定義情報に基づいて前記特定の表に関して設定されているインデクスを選定するとともに、前記選定されたインデクスが前記特殊処理の対象となるように前記インデクス定義情報に登録する定義情報管理部と、
前記データベース装置へのアクセス要求を受け付けるデータベースアクセス受付部と、
前記データベース装置との間で前記表を操作する際に一時的に前記表を格納するバッファと、
前記バッファとは別に設けられた特殊メモリと、
前記表定義情報に基づいて前記特定の表を前記バッファから前記特殊メモリに移動させる一方、前記インデクス定義情報に基づいて前記選定されたインデクスを前記特殊メモリに配置するデータベースアクセス制御部とを有する
ことを特徴とするデータベース管理装置。
【請求項８】
少なくとも１つの表を有するデータベースが搭載されたデータベース装置との間でバッファを経由して前記表を操作するデータベース管理装置において動作するデータベース管理プログラムであって、
前記データベース管理装置のプロセッサに、特定の表が指定された定義要求を受け付けると、前記特定の表を特殊処理の対象とするように表定義情報を変更させる表定義変更ステップと、
前記特定の表にインデクスが設定されている場合、前記プロセッサに、前記特定の表に関するインデクス定義情報に基づいて前記特定の表に関して設定されているインデクスを選定させるとともに、前記選定されたインデクスが前記特殊処理の対象となるように前記インデクス定義情報に登録させるインデクス決定ステップと、
前記プロセッサに、前記表定義情報に基づいて前記特定の表を前記バッファから特殊メモリに移動させる一方、前記インデクス定義情報に基づいて前記選定されたインデクスを前記特殊メモリに配置させる配置ステップとを実行させる
ことを特徴とするデータベース管理プログラム。
【請求項９】
少なくとも１つの表を有するデータベースが搭載されたデータベース装置と、前記データベース装置の間でバッファを経由して前記表を操作するデータベース管理装置とを備えるデータベース管理システムであって、
前記データベース管理装置は、
特定の表が指定された定義要求を受け付ける定義要求受付部と、
前記定義要求受付部によって定義要求が受け付けられると、前記特定の表を特殊処理の対象とするように表定義情報を変更する一方、前記特定の表にインデクスが設定されている場合、前記特定の表に関するインデクス定義情報に基づいて前記特定の表に関して設定されているインデクスを選定するとともに、前記選定されたインデクスが前記特殊処理の対象となるように前記インデクス定義情報に登録する定義情報管理部と、
前記データベース装置へのアクセス要求を受け付けるデータベースアクセス受付部と、
前記データベース装置との間で前記表を操作する際に一時的に前記表を格納するバッファと、
前記バッファとは別に設けられた特殊メモリと、
前記表定義情報に基づいて前記特定の表を前記バッファから前記特殊メモリに移動させる一方、前記インデクス定義情報に基づいて前記選定されたインデクスを前記特殊メモリに配置するデータベースアクセス制御部とを有する
ことを特徴とするデータベース管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理方法、データベース管理装置、データベース管理プログラム及びデータベース管理システムに関し、特に、いわゆるメモリデータベース（メモリＤＢ）を用いた技術に関するデータベース管理システムに適用して好適なものである。
【背景技術】
【０００２】
情報化社会の発展に伴い、多くの企業がデータベースを用いたオンラインサービスを提供している。例えば、銀行のＡＴＭシステムや道路や鉄道の経路検索システムがオンラインサービスの例として挙げられる。近年、企業間競争の激化に伴い、各企業は他企業との差別化を図るため、サービスの拡充やサービス提供時間の長時間化、さらにはオンラインサービスの常時提供が行われている。
【０００３】
また、インターネット端末や携帯電話など、オンラインサービスを利用する端末の増加に伴い、オンラインサービスに対するアクセス量が増大している。そのため、例えば、道路や鉄道の経路検索サービスといった、端末からの、大量のデータ参照要求を処理するオンラインサービスでは、複数の装置に同一内容のデータベースを配置し、端末からの参照要求を分散して処理している。このように参照要求を分散して処理を行うために多数のサーバを用意しようとすると、コスト的に割高なシステムとなりがちである。
【０００４】
従来のデータベース管理システムでは、上述した参照要求を集約して処理を高速に行うため、メモリの価格が下落したこともあり、データベースを格納する外部記憶装置であるデータベース装置を持たず、データベース管理装置上にメモリを置き、このメモリ（以下「メモリＤＢ」という）上のデータのみをアクセスすることにより、外部記憶装置に対するＩ／Ｏを抑制する技術が存在している（非特許文献１参照）。従来のデータベース管理システムでは、データベース装置のデータベースが管理する表をメモリＤＢに配置することにより、そのデータベース装置とデータベース管理装置との間におけるＩ／Ｏを抑制し、データベース装置とのアクセス速度の低さを補っている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｋｅｎｎｅｔｈ Ｓａｌｅｍ、Ｈｅｃｔｏｒ Ｇａｒｃｉａ−Ｍｏｌｉｎａ著、「Ｓｙｓｔｅｍ Ｍ：Ａ Ｔｒａｎｓａｃｔｉｏｎ Ｐｒｏｃｅｓｓｉｎｇ Ｔｅｓｔｂｅｄ ｆｏｒ Ｍｅｍｏｒｙ Ｒｅｓｉｄｅｎｔ Ｄａｔａ」、ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ ｋｎｏｗｌｅｄｇｅ ａｎｄ ｄａｔａ ｅｎｇｉｎｅｅｒｉｎｇ．Ｖｏｌ．２、Ｎｏ．１、Ｍａｒｃｈ １９９０
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来では、表に対する高速な操作を実現するために、データベース装置を備えた第１のデータベース管理システムとは別に、メモリＤＢを管理する第２のデータベース管理システムを導入し、運用および管理する必要があった。そのため、オンラインサービスを実現するために操作する複数の表の内、一部の表のみにアクセスが集中するため、その表をメモリＤＢとしたい場合でも、運用上の手間が多くかかるという問題があった。
【０００７】
本発明は以上の点を考慮してなされたもので、データベース管理装置とデータベース装置との間におけるＩ／Ｏを抑制しつつ、表を高速に操作することが運用上容易にできるデータベース管理方法、データベース管理装置、データベース管理プログラム及びデータベース管理システムを提案するものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため、本発明においては、少なくとも１つの表を有するデータベースが搭載されたデータベース装置との間でバッファを経由して前記表を操作するデータベース管理装置におけるデータベース管理方法であって、前記データベース管理装置のプロセッサが、特定の表が指定された定義要求を受け付けると、前記特定の表を特殊処理の対象とするように表定義情報を変更する表定義変更ステップと、前記特定の表にインデクスが設定されている場合、前記プロセッサが、前記特定の表に関するインデクス定義情報に基づいて前記特定の表に関して設定されているインデクスを選定するとともに、前記選定されたインデクスが前記特殊処理の対象となるように前記インデクス定義情報に登録するインデクス決定ステップと、前記プロセッサが、前記表定義情報に基づいて前記特定の表を前記バッファから特殊メモリに移動させる一方、前記インデクス定義情報に基づいて前記選定されたインデクスを前記特殊メモリに配置する配置ステップとを含むことを特徴とする。
【０００９】
また、本発明においては、少なくとも１つの表を有するデータベースが搭載されたデータベース装置との間でバッファを経由して前記表を操作するデータベース管理装置であって、特定の表が指定された定義要求を受け付ける定義要求受付部と、前記定義要求受付部によって定義要求が受け付けられると、前記特定の表を特殊処理の対象とするように表定義情報を変更する一方、前記特定の表にインデクスが設定されている場合、前記特定の表に関するインデクス定義情報に基づいて前記特定の表に関して設定されているインデクスを選定するとともに、前記選定されたインデクスが前記特殊処理の対象となるように前記インデクス定義情報に登録する定義情報管理部と、前記データベース装置へのアクセス要求を受け付けるデータベースアクセス受付部と、前記データベース装置との間で前記表を操作する際に一時的に前記表を格納するバッファと、前記バッファとは別に設けられた特殊メモリと、前記表定義情報に基づいて前記特定の表を前記バッファから前記特殊メモリに移動させる一方、前記インデクス定義情報に基づいて前記選定されたインデクスを前記特殊メモリに配置するデータベースアクセス制御部とを有することを特徴とする。
【００１０】
また、本発明においては、少なくとも１つの表を有するデータベースが搭載されたデータベース装置との間でバッファを経由して前記表を操作するデータベース管理装置において動作するデータベース管理プログラムであって、前記データベース管理装置のプロセッサに、特定の表が指定された定義要求を受け付けると、前記特定の表を特殊処理の対象とするように表定義情報を変更させる表定義変更ステップと、前記特定の表にインデクスが設定されている場合、前記プロセッサに、前記特定の表に関するインデクス定義情報に基づいて前記特定の表に関して設定されているインデクスを選定させるとともに、前記選定されたインデクスが前記特殊処理の対象となるように前記インデクス定義情報に登録させるインデクス決定ステップと、前記プロセッサに、前記表定義情報に基づいて前記特定の表を前記バッファから特殊メモリに移動させる一方、前記インデクス定義情報に基づいて前記選定されたインデクスを前記特殊メモリに配置させる配置ステップとを実行させることを特徴とする。
【００１１】
また、本発明においては、少なくとも１つの表を有するデータベースが搭載されたデータベース装置と、前記データベース装置の間でバッファを経由して前記表を操作するデータベース管理装置とを備えるデータベース管理システムであって、前記データベース管理装置は、特定の表が指定された定義要求を受け付ける定義要求受付部と、前記定義要求受付部によって定義要求が受け付けられると、前記特定の表を特殊処理の対象とするように表定義情報を変更する一方、前記特定の表にインデクスが設定されている場合、前記特定の表に関するインデクス定義情報に基づいて前記特定の表に関して設定されているインデクスを選定するとともに、前記選定されたインデクスが前記特殊処理の対象となるように前記インデクス定義情報に登録する定義情報管理部と、前記データベース装置へのアクセス要求を受け付けるデータベースアクセス受付部と、前記データベース装置との間で前記表を操作する際に一時的に前記表を格納するバッファと、前記バッファとは別に設けられた特殊メモリと、前記表定義情報に基づいて前記特定の表を前記バッファから前記特殊メモリに移動させる一方、前記インデクス定義情報に基づいて前記選定されたインデクスを前記特殊メモリに配置するデータベースアクセス制御部とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、データベース管理装置とデータベース装置との間におけるＩ／Ｏを抑制しつつ、表を高速に操作することが運用上容易にできる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態によるデータベース管理方法の概略を示す図である。
【図２】第１の実施の形態におけるデータベース管理システムの概略構成を示すブロック図である。
【図３】メモリＤＢ化するための定義要求の一例を示す宣言文である。
【図４】表定義情報の一例を示す図である。
【図５】インデクス定義情報の一例を示す図である。
【図６】メモリＤＢ化処理に含まれる手順の一例を示すフローチャートである。
【図７】メモリＤＢ化解除処理の手順の一例を示す図である。
【図８】メモリＤＢ化解除処理に含まれる手順の一例を示すフローチャートである。
【符号の説明】
【００１４】
３１００……端末、３２００……ホストコンピュータ、３３００……ネットワーク、３４００……データベース管理装置、３４１０……プロセッサ、３４２０……メモリ、３４２２……定義要求受付部、３４２３……定義情報管理部、３４２４……ディスクＤＢ管理部、３４２５……メモリＤＢ管理部、３４２６……ＤＢアクセス受付部、３４２７……ＤＢアクセス制御部、３４３０……ＤＢバッファ、３４４０……メモリＤＢ、３４４１……表、３４４２……インデクス、３４５０……表定義情報、３４６０……インデクス定義情報、３５００……データベース装置、３５１１……表、３５１２……インデクス。
【発明を実施するための形態】
【００１５】
以下、図面について、本発明の一実施の形態について詳述する。
【００１６】
（１）第１の実施の形態
（１−１）データベース管理方法の概要
図１は、第１の実施の形態によるデータベース管理方法の概略を示す。このデータベース管理方法は、データベース管理プログラムがデータベース管理装置において実行されることにより実現される。なお、以下の説明においてデータベース管理プログラムは、プログラムコードそのものではなく、実行形式のプログラムを表している。このデータベース管理装置は、後述するプロセッサを搭載しており、このプロセッサが、少なくとも１つの表を有するデータベースが搭載されたデータベース装置との間で、バッファリング機能を有するいわゆるＤＢ（データベース）バッファを経由して表を操作する。このデータベース管理方法は、次のような表定義変更ステップ、インデクス決定ステップ及び配置ステップを含んでいる。
【００１７】
表定義変更ステップでは、プロセッサが、本実施の形態における特殊処理（後述するメモリＤＢ（データベース）化に相当）の対象となるべき表３４４１が指定された定義要求を受け付けると、その表３４４１を特殊処理の対象とするように表定義情報を変更する（ＳＰ１００）。この定義要求をＳＱＬで記述すると、例えば「ＡＬＬＯＣＡＴＥ  ＭＥＭＯＲＹ  ＴＡＢＬＥ  ＦＯＲ  ＩＮＤＥＸ  ＩＤＸ１」となる。
【００１８】
インデクス決定ステップでは、その表３４４１にインデクス３４４２が設定されている場合、プロセッサが、その表３４４１に関するインデクス定義情報に基づいて表３４４１に関して設定されているインデクス３４４２を選定するとともに、当該選定されたインデクス３４４２が特殊処理の対象となるようにインデクス定義情報に登録する（ＳＰ２００）。
【００１９】
配置ステップでは、プロセッサが、表定義情報に基づいて表３４４１をバッファの一例としてのＤＢバッファ３４３０から特殊メモリの一例としてのメモリＤＢ３４４０に移動させる一方、インデクス定義情報に基づいて当該選定されたインデクス３４４２をメモリＤＢ３４４０に配置する（ＳＰ３００）。本実施の形態では、このような処理を行うことを「メモリＤＢ化」と呼んでいる。なお、本実施の形態における「移動」とは、表やデータなどを複写先に複写した後に複写元のデータを削除することをいう。
【００２０】
（１−２）第１の実施の形態におけるデータベース管理システムの構成
図２は、第１の実施の形態におけるデータベース管理システム３０００の概略構成を示す。データベース管理システム３０００は、データベース装置３５００及びデータベース管理装置３４００を備え、ホストコンピュータ３２００及び端末３１００がネットワーク３３００を介してデータベース管理装置３４００に接続されている。データベース装置３５００には、データベース管理装置３４００が接続されている。
【００２１】
データベース装置３５００は、少なくとも１つの表を管理するデータベースが設けられている。データベース装置３５００は、例えば磁気ディスク装置を備え、その磁気ディスク装置の記憶領域にはデータベース３５１０が生成されている。データベース３５１０は、表３５１１ごとに列及び行という単位によって多数のデータを管理する。第１の実施の形態では、そのような磁気ディスク装置上のデータベースを「ディスクデータベース」と呼ぶ。以下の説明では、このディスクデータベースを「ディスクＤＢ」と省略して用いる。上記表３５１１の構造は、表定義情報３４５０によって定義される。また、データベース３５１１においては、各表３５１１にインデクス３５１２を設定することができる。このインデクス３５１２の構造は、インデクス定義情報３４６０によって定義される。
【００２２】
一方、端末３１００は、ネットワーク３３００を介してデータベース管理装置３４００に対して定義要求を行う。ホストコンピュータ３２００は、ユーザ側における少なくとも１つのアプリケーション（以下「ユーザアプリケーション」とも呼ぶ）３２１０（図示の「ＵＡＰ」に相当）が動作しているコンピュータである。ユーザアプリケーション３２１０は、データベース管理装置３４００に対してデータベースアクセス要求（以下「ＤＢアクセス要求」という）を行い、データベース管理装置３４００がデータベース装置３５００との間で表３５１１の操作を行う。
【００２３】
一方、データベース管理装置３４００は、プロセッサ３４１０、バス３４７０、メモリ３４２０、データベースバッファ３４３０及びメモリデータベース３４４０を備えている。なお、データベース管理装置３４００は、ネットワーク３３００と接続するための図示しないネットワークインターフェースを備えている。さらにデータベース管理装置３４００は、上述した表定義情報３４５０及びインデクス定義情報３４６０を図示しない記憶部に備えていても良い。なお、これら表定義情報３４５０及びインデクス定義情報３４６０は、それぞれ、データベース管理装置３４００に限られず、その他の装置、例えばデータベース装置３５００に格納されていても良い。
【００２４】
プロセッサ３４１０は、メモリ３４２０に格納されているデータベース管理プログラム３４２１の動作を制御し、データベース管理装置３４００全体を制御する。データベース管理プログラム３４２１は、その機能として、定義要求受付部３４２２、定義要求管理部３４２３、ディスクデータベース管理部（以下、「ディスクＤＢ管理部」という）３４２４、メモリデータベース管理部（以下「メモリＤＢ管理部」という）３４２５、データベースアクセス要求受付部（以下「ＤＢアクセス要求受付部」という）３４２６及びデータベースアクセス制御部（以下「ＤＢアクセス制御部」という）３４２７を有する。
【００２５】
定義要求受付部３４２２は、ユーザアプリケーション３２１０が発行した定義要求を受け付ける。定義要求管理部３４２３は、表定義情報３４５０及びインデクス定義情報３４６０を管理しており、その受け取った定義要求に基づき、これら表定義情報３４５０及びインデクス定義情報３４６０を更新する。
【００２６】
ＤＢアクセス要求受付部３４２６は、ユーザアプリケーション３２１０によって発行されたＤＢアクセス要求を受け付け、ＤＢアクセス制御部３４２７に引き渡す。このＤＢアクセス要求は、いわゆるＳＱＬによって記述されている。
【００２７】
ＤＢアクセス制御部３４２７は、上記ＤＢアクセス要求を解析し、ディスクＤＢ管理部３４２４及びメモリＤＢ管理部３４２５を制御する。ＤＢアクセス制御部３４２７は、通常、ディスクＤＢ管理部３４２４を用いて制御しているが、ある定義要求があると、その定義要求に基づいてディスクＤＢ管理部３４２４に、ＤＢバッファ３４３０の表３５１１を複写させ、メモリＤＢ３４４０に表３４４１を生成するとともに、ＤＢバッファ３４３０の表３５１１を削除する。
【００２８】
ディスクＤＢ管理部３４２４は、ＤＢアクセス制御部３４２７の制御によって、ＤＢバッファ３４３０を用いて、データベース装置３５００のディスクＤＢ３５１０を管理する。このディスクＤＢ管理部３４２４は、定義要求に応じて、ディスクＤＢ３５１０の表３５１１及びインデクス３５１２の少なくとも一方の構造を変更する。一方、ディスクＤＢ管理部３４２４は、ＤＢアクセス要求に応じて、ＤＢバッファ３４３０を介して、ディスクＤＢ３５１０の表３５１１のデータを追加、更新及び削除のいずれか（以下、単に「操作」と総称する）を行う。ＤＢバッファ３４３０は、一時的にデータを格納可能な揮発性の半導体メモリである。
【００２９】
ディスクＤＢ管理部３４２４は、ＤＢバッファ３４３０を用いて表３５１１のデータを、例えば複数のデータレコードを記憶可能なページ単位でディスクＤＢ３５１０との間で交換するための制御を行う。ディスクＤＢ管理部３４２４は、この表３５１１にインデクス３５１２が設定されている場合、このインデクス３５１２を用いて表３５１１を操作する。
【００３０】
メモリＤＢ管理部３４２５は、ＤＢアクセス制御部３４２７の制御によって、メモリＤＢ３４４０を管理する。メモリＤＢ管理部３４２５は、定義要求に応じて、メモリＤＢ３４４０の表３４４１及びインデクス３４４２の少なくとも一方の構造を変更する。一方、メモリＤＢ管理部３４２５は、ＤＢアクセス要求に応じて、メモリＤＢ３４４０の表３４４１のデータを追加、更新及び削除のいずれか（以下、単に「操作」と総称する）を行う。また、表３４４１にインデクス３４４２が設定されている場合、メモリＤＢ管理部３４２５は、そのインデクス３４４２を用いて表３４４１を操作する。メモリＤＢ３４４０は、一時的にデータを格納可能な揮発性の半導体メモリである。
【００３１】
メモリＤＢ管理部３４２５は、以上のように、ディスクＤＢ３５１０のインデクス３５１２をメモリＤＢ３４４０に配置したインデクス３４４２を用いて、ＤＢバッファ３４３０から移動してきた表３４４１に対する操作を制御する。ここで、メモリＤＢ３４４０上における表３４４１とインデクス３４４２との対応関係は、インデクス定義情報３４６０において定義されている。
【００３２】
（１−３）メモリＤＢ化定義要求
図３は、メモリＤＢ化するための定義要求の一例を示す。メモリＤＢ化するための定義要求としては、図示のような、例えば「ＡＬＬＯＣＡＴＥ  ＭＥＭＯＲＹ  ＴＡＢＬＥ  Ｔ１  ＦＯＲ  ＩＮＤＥＸ  ＩＤＸ１」を挙げることができる。
【００３３】
第１の部分「ＡＬＬＯＣＡＴＥ  ＭＥＭＯＲＹ  ＴＡＢＬＥ」は、メモリＤＢ化するための定義要求の宣言分の最初の部分であり、ＤＢバッファ３４３０に存在する表（例えば表３５１１）をメモリＤＢ３４４０に移動させるための宣言部分である。第２の部分「Ｔ１」は、第１の実施の形態における表３５１１を識別するための表名である。第３の部分「ＦＯＲ  ＩＮＤＥＸ」は、当該表３４４１の移動に応じて、メモリＤＢ３４４０に配置させたいインデクスを記述するための宣言部分である。第４の部分「ＩＤＸ１」は、当該インデクスの名称を表しており、第１の実施の形態においてはインデクス３５１２（メモリＤＢ３４４０への移動後のインデクス３４４２）に対応している。
【００３４】
（１−４）表定義情報
図４は、表定義情報３４５０の一例を示す。この表定義情報３４５０は、上述した図２に示す表定義情報３４５０に対応している。表定義情報３４５０は、少なくとも１つの表ごとに、メモリＤＢ化処理の対象であるか否かに関する特定の実行要否情報を含み、列名として表名及びメモリＤＢ化フラグなどを含んでいる。
【００３５】
図示の例では、表名「Ｔ１」に対応してメモリＤＢ化フラグが「ＹＥＳ」となっており、表名「Ｔ２」に対応してメモリ要否情報が「ＮＯ」となっている。なお、メモリＤＢ化フラグは、「ＹＥＳ」である場合には、表名「Ｔ１」に対応する表に関してメモリＤＢ化を行う設定であることを示す一方、「ＮＯ」である場合には、表名「Ｔ２」に対応する表に関してメモリＤＢ化を行わない設定であることを示している。
【００３６】
上述したプロセッサ３４１０は、定義要求を受け付けると、表定義情報３４５０を参照し、当該定義要求で指定された表に対応するメモリＤＢ化フラグに基づいて、その表をメモリＤＢ化処理の対象としたり対象外としたりする。
【００３７】
（１−５）インデクス定義情報
図５は、インデクス定義情報３４６０の一例を示す。このインデクス定義情報３４６０は、図２に示すインデクス定義情報３４６０に対応している。図５に示すインデクス定義情報３４６０は、少なくとも１つの表ごとに、メモリＤＢ化処理の対象であるか否かに関する特定の実行要否情報としてのメモリＤＢ化フラグを含み、列名としてインデクス名、表名及びメモリＤＢ化フラグを含んでいる。ここで、インデクス定義情報３４６０におけるインデクスのメモリＤＢ化フラグは、表をメモリＤＢ化する際に、それとともにディスクＤＢに対して作成されていた当該インデクスもメモリＤＢ化されることを示す。
【００３８】
図示の例では、インデクス名「ＩＤＸ１」及び表名「Ｔ１」に対応してメモリ要否情報が「ＹＥＳ」となっており、インデクス名「ＩＤＸ１１」及び表名「Ｔ１」に対応してメモリＤＢ化フラグが「ＮＯ」となっており、インデクス名「ＩＤＸ２」及び表名「Ｔ２」に対応してメモリＤＢ化フラグが「ＮＵＬＬ（設定無し）」となっている。なお、メモリＤＢ化フラグは、「ＹＥＳ」である場合には、表名及びインデクス名に対応する表に関してメモリＤＢ化を行う設定であることを示す一方、「ＮＯ」である場合には、表名及びインデクス名に対応する表に関してメモリＤＢ化を行わない設定であることを示している。
【００３９】
上述したプロセッサ３４１０は、上記定義要求を受け付けると、その定義要求で指定された表とインデクスとの組み合わせに対応するメモリＤＢ化フラグに基づいて、その表とインデクスとの組み合わせごとにメモリＤＢ化の対象又は対象外とする。
【００４０】
（１−６）メモリＤＢ化の具体的な処理内容
図６は、メモリＤＢ化処理に含まれる手順の一例を示す。このメモリＤＢ化処理は、プロセッサ３４１０が、メモリ３４２０上のデータベース管理プログラムの各モジュール（定義要求受付部３４２２など）を動作させることにより、実行される。なお、当該メモリＤＢ化処理は、データベース管理装置３４００が稼働中、即ち、オンライン中に実行される。ここでオンライン中とは、データベースに対するアクセスを伴う業務サービスが利用可能である状態のことを示している。オンライン中のメモリＤＢ化によって、エンドユーザの当該業務サービスの利用を中断することなく、メモリＤＢ化のメリットすなわち高速化を享受することができる。
【００４１】
（１−６−１）メモリＤＢ化の対象取得
メモリＤＢ化を行うに際には、端末３１００がデータベース管理装置３４００に対して、メモリＤＢ化を実行するための定義要求を発行すると、データベース管理装置３４００では、定義要求受付部３４２２が定義要求を受け取り（ＳＰ１００）、定義情報管理部３４２３に引き渡す。ここで、メモリＤＢ化を実行するための定義要求の要求文（以下「メモリＤＢ化要求文」とも呼ぶ）としては、図３に示すような記述を挙げることができる。定義情報管理部３４２３は、その定義要求を解析し、そのメモリＤＢ化要求文から、メモリＤＢ化の対象となる表名を取得する（ＳＰ１０１）。さらに定義情報管理部３４２３は、そのメモリＤＢ化要求文から、メモリＤＢ化の対象となるインデクス名を取得する（ＳＰ１０２）。
【００４２】
（１−６−２）表定義情報変更
定義情報管理部３４２３は、表定義情報３４５０を参照し、当該取得したインデクス名に対応する表定義情報エントリを特定する（ＳＰ１０３）。さらに定義情報管理部３４２３は、当該特定した表定義情報エントリのメモリＤＢ化フラグを「ＹＥＳ（メモリＤＢ化を行う）」に変更する（ＳＰ１０４）。
【００４３】
（１−６−３）メモリＤＢ化対象のインデクスの決定
定義情報管理部３４２３は、インデクス定義情報３４６０を参照し、上述のように取得したインデクス名に対応するインデクス定義情報エントリを特定する（ＳＰ１０５）。さらに定義情報管理部３４２３は、当該特定したインデクス定義情報エントリのうち、メモリＤＢ化の対象となるインデクス名を含むエントリのメモリＤＢ化フラグを「ＹＥＳ」に変更する（ＳＰ１０６）。
【００４４】
（１−６−４）メモリＤＢへのデータ配置／移動
ＤＢアクセス制御部３４２７は、メモリＤＢ管理部３４２５に、ＤＢバッファ３４３０上のページ群から、メモリＤＢ化対象の表３４４１のページを特定し、当該特定したページをメモリＤＢ３４４０へ格納させ、ＤＢバッファ３４３０上の当該ページを破棄させる（ＳＰ１０７）。なお、ここでいうページとは、例えば表３４４１であれば、当該表３４４１を構成する少なくとも１つの表データブロックを示している。
【００４５】
さらに、ＤＢアクセス制御部３４２７は、ディスクＤＢ管理部３４２４に、ディスクＤＢ３５１０からメモリＤＢ３４４０へ、上記ステップＳＰ１０７においてまだ移動させていないデータを配置させる（ＳＰ１０８）。即ち、ＤＢアクセス制御部３４２７は、表をＤＢバッファ３４３０からメモリＤＢ３４４０に移動させようとした際に、その表がＤＢバッファ３４３０に存在しない場合、データベース装置３５００から表３４４１をメモリＤＢ３４４０に配置する。
【００４６】
ここで、表３５１１をＤＢバッファ３４３０からメモリＤＢ３４４０に移動させようとした際に、表３５１１がＤＢバッファ３４３０に存在しない場合、ＤＢアクセス制御部３４２７は、メモリＤＢ管理部３４２５に、データベース装置３５００から表３５１１をメモリＤＢ３４４０に配置する。
【００４７】
（１−７）第１の実施の形態の効果
以上説明したように、第１の実施の形態では、まず、データベース管理装置３４００のプロセッサ３４１０が、特定の表が指定された定義要求を受け付けると、その表を特殊処理としてのメモリＤＢ化の対象とするように表定義情報３４５０を変更する（表定義変更ステップに相当）。次にプロセッサ３４１０は、その表にインデクスが設定されている場合、その表に関するインデクス定義情報３４６０に基づいてその表に関して設定されているインデクスを選定するとともに、そのインデクスがメモリＤＢ化の対象となるようにインデクス定義情報３４６０に登録する（インデクス決定ステップに相当）。そして、プロセッサ３４１０は、表定義情報３４５０に基づいて表をＤＢバッファ３４３０からメモリＤＢ３４４０に移動させる一方、インデクス定義情報３４６０に基づいて当該選定されたインデクスをメモリＤＢ３４４０に配置する（配置ステップに相当）。
【００４８】
以上のような構成とすると、データベース管理装置３４００は、データベース装置３５００との間でＤＢバッファ３４３０を経由して、そのデータベース装置３５００に配置する表３５１１を操作する代わりに、アクセス速度の低い当該データベース装置３５００を経由せず、データベース管理装置３４００に内蔵されたメモリＤＢ３４４０に配置する表３４４１を操作している。すると、データベース管理装置３４００は、上記定義要求をした後は、表３４４１を操作する際にデータベース装置３５００にアクセスする必要がないため、従来よりも表を高速に操作することができる。
【００４９】
しかも、データベース管理装置３４００は、当該表３４４１にインデクス３４４２が設定されている場合においても、そのインデクス３４４２が併せてメモリＤＢ３４４０に配置されているため、そのインデクス３４４２を用いて当該表３４４１を操作した場合に、従来よりも表３４４１を高速に操作することができる。
【００５０】
また、第１の実施の形態では、プロセッサ３４１０が、上述のように、その表３５５１をＤＢバッファ３４３０からメモリＤＢ３４４０に移動させようとした際に、表がＤＢバッファ３４３０に存在しない場合、データベース装置３５００から表３５１１をメモリＤＢ３４４０に配置している。
【００５１】
このようにすると、タイミングによっては表（のページ）がＤＢバッファ３４３０に存在しない場合もあるが、このような場合でも、確実にメモリＤＢ３４４０に表３４４１を配置することができる。
【００５２】
また、第１の実施の形態では、表定義情報３４５０は、少なくとも１つの表３４４１ごとに、メモリＤＢ化処理の対象であるか否かに関する特定の実行要否情報としてのメモリＤＢ化フラグを含んでいる。しかも、上記表定義変更ステップでは、プロセッサ３４１０が、定義要求を受け付けると、表定義情報３４５０を参照し、定義要求で指定された表３４４１に対応する当該メモリＤＢ化フラグに基づいて、その表３４４１をメモリＤＢ化処理の対象としたり対象外としたりする。このようにすると、必要な表３４４１に対してのみメモリＤＢ化処理を実行することができる。
【００５３】
また、第１の実施の形態では、インデクス定義情報３４６０は、表３４４１とインデクス３４４２との組み合わせごとに、メモリＤＢ化処理の対象とすべきか否かに関する別の実行要否情報としてのメモリＤＢ化フラグを含んでいる。さらに、上記インデクス決定ステップでは、プロセッサ３４１０が、定義要求を受け付けると、インデクス定義情報３４６０を参照し、定義要求で指定された表３４４１とインデクス３４４２との組み合わせに対応する上記メモリＤＢ化フラグに基づいて、表３４４１とインデクス３４４２との組み合わせをメモリＤＢ化処理の対象又は対象外としている。このようにすると、必要なインデクス３４４２に対してのみメモリＤＢ化処理を実行するか否かを設定することができる。
【００５４】
（２）第２の実施の形態
第２の実施の形態では、第１の実施の形態とはほぼ同様な構成及び動作を行うため、以下の説明では、ほぼ同様な構成及び動作については説明を省略し、第１実施の形態とは異なる点を中心として説明する。第２の実施の形態では、データベース管理装置３４００は、第１の実施の形態と同様の構成であるが、端末３１００が、メモリＤＢ化を解除するための定義要求をデータベース管理装置３４００に行い、その定義要求に応答して下記の処理を行う点が異なっている。
【００５５】
（２−１）データベース管理方法の概要
このような定義要求を受け取ったデータベース管理装置３４００においては、そのプロセッサ３４１０が次のようなメモリＤＢ化解除処理を実行する。このメモリＤＢ化解除処理は、次のような配置解除ステップを含んでいる。この配置解除ステップでは、プロセッサ３４１０が、上述した配置ステップにおいて、メモリＤＢ３４４０に配置済みの表の配置を解除するとともに、及び、メモリＤＢ３４４０に配置済みのインデクス３４４１の配置を解除する。
【００５６】
図７は、メモリＤＢ化解除処理の手順の一例を示す。なお、このメモリＤＢ化解除処理は、データベース管理方法の一部として、上述のようなメモリＤＢ化処理の後に、必要に応じてプロセッサ３４１０によって実行される。
【００５７】
まず、このメモリＤＢ化解除処理の概要について説明すると、このメモリＤＢ化解除処理では、プロセッサ３４１０が、メモリＤＢ化を解除すべき表３４４１が指定された定義要求を受け付けると、この表３４４１についてメモリＤＢ化を解除するように表定義情報３４５０を変更する。さらに、この配置解除ステップでは、プロセッサ３４１０が、メモリＤＢ３４４０に配置済みの表３４４１をＤＢバッファ３４３０に格納した後に、メモリＤＢ３４４０の表３４４１を削除するとともに、メモリＤＢ３４４０に配置済みのインデクス３４４２をデータベース装置３５００に移動させる。
【００５８】
より具体的には、本実施の形態におけるデータベース管理方法は、メモリＤＢ化解除処理として、次のような、表定義変更ステップ、インデクス解除ステップ及び配置解除ステップを含んでいる。
【００５９】
表定義変更ステップでは、プロセッサ３４１０が、メモリＤＢ化を解除すべき表３４４１が指定された定義要求を受け付けると、当該表３４４１をメモリＤＢ化解除処理の対象とするように表定義情報３４５０を変更する（ＳＰ４００）。この定義要求をＳＱＬで記述すると、例えば「ＤＥＡＬＬＯＣＡＴＥ  ＭＥＭＯＲＹ  ＴＡＢＬＥ  Ｔ１」となる。第１の部分「ＤＥＡＬＬＯＣＡＴＥ  ＭＥＭＯＲＹ  ＴＡＢＬＥ」は、メモリＤＢ化を解除すべきことを示す定義要求をＳＱＬによって記述した宣言文である。第２の部分「Ｔ１」は、メモリＤＢ化を解除すべき表名を表しており、表３４４１に相当する。
【００６０】
上記インデクス解除ステップでは、当該表３４４１にインデクスが設定されている場合、プロセッサ３４１０が、当該表３４４１に関するインデクス定義情報３４６０に基づいて表３４４１に関して設定されているインデクスを選定するとともに、当該インデクス３４４２がメモリＤＢ化解除処理の対象となるようにインデクス定義情報３４６０に登録する（ＳＰ５００）。
【００６１】
上記配置解除ステップでは、プロセッサ３４１０が、表定義情報３４５０に基づいて表３４４１をメモリＤＢ３４４０からＤＢバッファ３４３０に格納し、メモリＤＢ３４４０の表３４４１を削除する（ＳＰ６００）。一方、この配置解除ステップでは、プロセッサ３４１０が、インデクス定義情報３４６０に基づいて、ディスクＤＢ３５１０に、当該表３４４１に対応するインデクス３４４２を生成する（ＳＰ６００）。
【００６２】
（２−２）メモリＤＢ化解除処理の具体例
図８は、メモリＤＢ化解除処理に含まれる手順の一例を示す。このメモリＤＢ化解除処理は、プロセッサ３４１０が、メモリ３４２０上のデータベース管理プログラムの各モジュール（定義要求受付部３４２２など）を動作させることにより、実行される。なお、当該メモリＤＢ化解除処理は、データベース管理装置３４００が稼働中、即ち、オンライン中に実行される。
【００６３】
（２−２−１）メモリＤＢ化解除処理の対象取得
メモリＤＢ化解除を行うに際には、端末３１００がデータベース管理装置３４００に対して、メモリＤＢ化解除を実行するための定義要求を発行すると、データベース管理装置３４００では、定義要求受付部３４２２がその定義要求を受け取り（ＳＰ４００Ａ）、定義情報管理部３４２３に引き渡す。
【００６４】
ここで、メモリＤＢ化解除を実行するための定義要求の要求文（以下「メモリＤＢ化解除要求文」と呼ぶ）としては、ＳＱＬで記述すると、例えば「ＤＥＡＬＬＯＣＡＴＥ  ＭＥＭＯＲＹ  ＴＡＢＬＥ」となる。定義情報管理部３４２３は、その定義要求を解析し、そのメモリＤＢ化解除要求文から、メモリＤＢ化解除の対象となる表名を取得する（ＳＰ４０１）。
【００６５】
（２−２−２）解除時における表定義情報の変更
定義情報管理部３４２３は、表定義情報３４５０を参照し、当該取得した表名に対応する表定義情報エントリを特定する（ＳＰ４０２）。さらに定義情報管理部３４２３は、当該特定した表定義情報エントリのメモリＤＢ化フラグを「ＹＥＳ」から「ＮＯ（メモリＤＢ化解除を行う）」に変更する（ＳＰ４０３）。
【００６６】
（２−２−３）メモリＤＢ化解除対象のインデクスの決定
定義情報管理部３４２３は、インデクス定義情報３４６０を参照し、上述のように取得した表名に対応するインデクス定義情報エントリを特定する（ＳＰ４０４）。さらに定義情報管理部３４２３は、当該特定したインデクス定義情報エントリのうち、すべてのエントリのメモリＤＢ化フラグを「ＮＵＬＬ」に変更する（ＳＰ４０５）。
【００６７】
（２−２−４）メモリＤＢからＤＢバッファへのデータ配置／移動
ＤＢアクセス制御部３４２７は、ディスクＤＢ管理部３４２４に、メモリＤＢ３４４０上の当該表３４４１のページ及びインデクス３４４２を破棄させる（ＳＰ４０６）。この時、メモリＤＢ化解除対象の表３４４１のメモリＤＢ３４４０上のページから頻繁にアクセスされたページを選定し、当該表３４４１の選定されたページをＤＢバッファ３４３０へ格納させてもよい。これにより、当該表３４４１の次のデータアクセスを、ＤＢバッファを用いて高速化することができる。
【００６８】
（２−２−５）インデクス再作成ステップ
最後に、プロセッサ３４１０は、インデクス定義情報３４６０に基づいて、データベース装置３５００に、ＤＢバッファ３４３０に格納した表３４４１に対応したインデクス３４４２を生成する。
【００６９】
（２−３）第２の実施の形態による効果
第２の実施の形態によれば、表定義情報３４５０及びインデクス定義情報３４６０を変更することにより、必要に応じて、第１実施の形態のようにメモリＤＢ化された状態からそのメモリＤＢ化を解除した状態に戻すことができる。
【００７０】
（３）その他の実施形態
上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。
【図１】
2011159038.tif 000003
【図２】
2011159038.tif 000004
【図３】
2011159038.tif 000005
【図４】
2011159038.tif 000006
【図５】
2011159038.tif 000007
【図６】
2011159038.tif 000008
【図７】
2011159038.tif 000009
【図８】
2011159038.tif 000010