プロセッサとメモリとストレージ装置に接続されたインターフェースを備えた計算機で、前記メモリ上の第1のメモリ領域に表とインデックスを格納するインメモリデータベースと、前記メモリ上の第2のメモリ領域に前記ストレージ装置に格納された表の一部とインデクスを格納するディスク型データベースと、を制御するデータベースの管理方法であって、前記計算機が、前記インメモリ型データベースの第1のメモリ領域が不足することを検知する第1のステップと、前記計算機が、第1のメモリ領域が不足することを検知したときに、前記ディスク型データベースの第2のメモリ領域に格納された表またはインデクスから削除する対象を選択する第2のステップと、前記計算機が、前記削除する対象として選択された表またはインデクスを前記第2のメモリ領域から削除する第3のステップと、前記計算機が、前記第2のメモリ領域から削除された表またはインデクスの領域を解放して、当該解放した領域を前記第1のメモリ領域に付加する第4のステップと、を含むことを特徴とするデータベースの管理方法。請求項1に記載のデータベースの管理方法であって、前記第2のステップは、前記計算機が、前記第1のメモリ領域に追加する領域のサイズを拡張サイズとして演算する第5のステップと、所定の順序で前記第2のメモリ領域に格納された表またはインデクスを削除する対象として順次選択する第6のステップと、を含み、前記削除対象として選択された表またはインデクスの容量の総和が前記拡張サイズ以上となるまで前記第6のステップを繰り返すことを特徴とするデータベースの管理方法。請求項2に記載のデータベースの管理方法であって、前記第2のステップは、前記ディスク型データベースの表へのアクセス頻度を取得する第7のステップを含み、前記第6のステップは、前記アクセス頻度の低い順に前記表またはインデクスを前記削除する対象として順次選択することを特徴とするデータベースの管理方法。請求項2に記載のデータベースの管理方法であって、前記第6のステップは、前記第2のメモリ領域に格納されたインデクスにセカンダリインデクスが存在する場合には、当該セカンダリインデクスを削除対象として選択することを特徴とするデータベースの管理方法。請求項2に記載のデータベースの管理方法であって、前記第6のステップは、前記表ごとに削除比率を予め設定し、前記第2のメモリ領域に格納された表を前記所定の順序で選択し、当該選択した表が第2のメモリ領域で使用する容量に前記削除比率を乗じた容量を削除対象として選択することを特徴とするデータベースの管理方法。請求項1に記載のデータベースの管理方法であって、前記第3のステップは、前記削除する対象として選択された表またはインデクスを、前記ストレージ装置に移動する指令を前記インターフェースに送信することを特徴とするデータベースの管理方法。プロセッサとメモリとストレージ装置に接続されたインターフェースとを備え、前記メモリ上の第1のメモリ領域に表とインデックスを格納するインメモリデータベースと、前記メモリ上の第2のメモリ領域に前記ストレージ装置に格納された表の一部とインデクスを格納するディスク型データベースと、前記インメモリデータベースとディスク型データベースを制御する管理部と、を備えたデータベースの管理装置であって、前記管理部は、前記インメモリ型データベースの第1のメモリ領域が不足することを検知したときに、前記ディスク型データベースの第2のメモリ領域に格納された表またはインデクスから削除する対象を選択する対象決定部と、前記削除する対象として選択された表またはインデクスを前記第2のメモリ領域から削除して、前記第2のメモリ領域から削除された表またはインデクスの領域を解放し、当該解放した領域を前記第1のメモリ領域に付加する解放実行部と、を備えたことを特徴とするデータベースの管理装置。請求項7に記載のデータベースの管理装置であって、前記対象決定部は、前記第1のメモリ領域に追加する領域のサイズを拡張サイズとして演算し、前記削除対象として選択された表またはインデクスの容量の総和が前記拡張サイズ以上となるまで、所定の順序で前記第2のメモリ領域に格納された表またはインデクスを削除する対象として順次選択することを特徴とするデータベースの管理装置。請求項8に記載のデータベースの管理装置であって、前記対象決定部は、前記ディスク型データベースの表へのアクセス頻度を取得して、前記アクセス頻度の低い順に前記表またはインデクスを前記削除する対象として順次選択することを特徴とするデータベースの管理装置。請求項8に記載のデータベースの管理装置であって、前記対象決定部は、前記第2のメモリ領域に格納されたインデクスにセカンダリインデクスが存在する場合には、当該セカンダリインデクスを削除対象として選択することを特徴とするデータベースの管理装置。請求項8に記載のデータベースの管理装置であって、前記対象決定部は、前記表ごとに削除比率を予め設定し、前記第2のメモリ領域に格納された表を前記所定の順序で選択し、当該選択した表が第2のメモリ領域で使用する容量に前記削除比率を乗じた容量を削除対象として選択することを特徴とするデータベースの管理装置。請求項7に記載のデータベースの管理装置であって、前記解放実行部は、前記削除する対象として選択された表またはインデクスを、前記ストレージ装置に移動する指令を前記インターフェースに送信することを特徴とするデータベースの管理装置。プロセッサとメモリとストレージ装置に接続されたインターフェースを備えた計算機で、前記メモリ上の第1のメモリ領域に表とインデックスを格納するインメモリデータベースと、前記メモリ上の第2のメモリ領域に前記ストレージ装置に格納された表の一部とインデクスを格納するディスク型データベースと、を制御するデータベースのプログラムであって、前記インメモリ型データベースの第1のメモリ領域が不足することを検知する第1の手順と、前記第1のメモリ領域が不足することを検知したときに、前記ディスク型データベースの第2のメモリ領域に格納された表またはインデクスから削除する対象を選択する第2の手順と、前記削除する対象として選択された表またはインデクスを前記第2のメモリ領域から削除する第3の手順と、前記第2のメモリ領域から削除された表またはインデクスの領域を解放して、当該解放した領域を前記第1のメモリ領域に付加する第4の手順と、を前記計算機に実行させることを特徴とするプログラム。しかしながら、上記従来のハイブリッド型データベースでは、インメモリ型データベースが使用する領域と、ディスク型データベースが使用するDBバッファの領域を、データベース管理システムが主記憶上にそれぞれ設定する。データベース管理システムは、主記憶上に設定された領域のサイズを上限としてインメモリ型データベースの領域と、ディスク型データベースのDBバッファを配置して、データのアクセスを行う。インメモリ型データベースにアクセスが集中した場合や、インメモリ型データベースの表にデータを追加するために領域が不足する場合には、予め用意しておいた領域をインメモリ型データベースの領域に加える必要がある。このため、従来のハイブリッド型データベースでは、インメモリ型データベースが使用する領域を拡張するため、主記憶に予め記憶領域を確保しておく必要があり、計算機資源を有効に利用できない、という問題があった。そこで本発明は、ハイブリッド型データベースが使用する主記憶の容量を有効に利用しながらも、インメモリ型データベースのデータ量が増大する場合でも、迅速にインメモリ型データベースのメモリ領域を確保することを目的とする。本発明は、プロセッサとメモリとストレージ装置に接続されたインターフェースを備えた計算機で、前記メモリ上の第1のメモリ領域に表とインデックスを格納するインメモリデータベースと、前記メモリ上の第2のメモリ領域に前記ストレージ装置に格納された表の一部とインデクスを格納するディスク型データベースと、を制御するデータベースの管理方法であって、前記計算機が、前記インメモリ型データベースの第1のメモリ領域が不足することを検知する第1のステップと、前記計算機が、第1のメモリ領域が不足することを検知したときに、前記ディスク型データベースの第2のメモリ領域に格納された表またはインデクスから削除する対象を選択する第2のステップと、前記計算機が、前記削除する対象として選択された表またはインデクスを前記第2のメモリ領域から削除する第3のステップと、前記計算機が、前記第2のメモリ領域から削除された表またはインデクスの領域を解放して、当該解放した領域を前記第1のメモリ領域に付加する第4のステップと、を含む。したがって、本発明は、メモリの容量を有効に利用しながらも、インメモリ型データベースのデータ量が増大する場合には、迅速にインメモリ型データベースが使用するメモリ領域を拡張することができる。以下、本発明の一実施形態を添付図面に基づいて説明する。図1は、本発明の実施形態におけるハイブリッド型データベースを提供する計算機システムの構成の一例を示すブロック図である。計算機システムは、データベース管理装置2100と、管理者などが利用する端末装置2140と、データベースのユーザが利用するクライアント端末装置2160と、データベース管理装置2100と端末装置2140及びクライアント端末装置2160を接続するネットワーク2150と、データベース管理装置2100に接続されてデータやプログラムを格納する外部記憶装置2200から構成される。データベース管理装置2100は、プロセッサ2102と主記憶装置2104とネットワークインターフェース2101と外部記憶装置入出力インターフェース2103とを備えた計算機で構成されて、インメモリ型データベースとディスク型オンディスクデータベースからなるハイブリッド型データベースを提供する。ネットワークインターフェース2101は、ネットワーク2150に接続されて端末装置2140やクライアント端末装置2160と通信を行う。外部記憶装置入出力インターフェース2103は、外部記憶装置2200に接続されており、プロセッサ2102からの指令に応じて外部記憶装置2200との間でデータの読み書きや、プログラムの読み込みを行う。外部記憶装置2200は、ディスクドライブや不揮発性の半導体記憶装置を含むストレージ装置で構成される。外部記憶装置2200には、上記データベース管理装置2100が提供するディスク型データベースのデータ表情報8010、インデクス情報80201001と、インメモリ型データベースまたはディスク型データベースの定義情報等が格納される。なお、データベース管理装置2100の停止中は、外部記憶装置2200にインメモリ型データベースのデータを格納する。外部記憶装置2200はネットワークを介してデータベース管理装置2100に接続されるNAS等の装置で構成してもよい。データベース管理装置2100のプロセッサ2102は、インメモリ型データベースとディスク型オンディスクデータベースを提供するデータベース管理システム2110を実行する。データベース管理システム2110は外部記憶装置2200の所定の領域図示省略に格納されたプログラムで構成され、プロセッサ2102が主記憶装置2104へ当該プログラムを読み込んでから実行される。なお、外部記憶装置2200はデータベース管理システム2110のプログラムを格納する記憶媒体としても機能する。データベース管理システム2110は、主記憶装置2104上に、インメモリ型データベースのメモリ領域2120と、ディスク型データベースのデータを入出力するためのバッファ領域以下、DBバッファ2130と、DBバッファ2130の表やインデクスなどを管理する表インデクス情報8040と、インメモリ型データベースのメモリ領域2120の設定に関するメモリ領域情報8050を格納する。また、主記憶装置2104上には、データベース管理システム2110がDBバッファ2130及びインメモリ型データベースのメモリ領域2120を操作する際に生成するDBバッファ解放対象リスト8060とDBバッファ解放操作リスト8070が保持される。データベース管理システム2110は、起動するとインメモリ型データベースのメモリ領域2120とDBバッファ2130を予め設定した容量または端末装置2140から指定された容量で主記憶装置2104上にそれぞれ設定する。そして、データベース管理システム2110は、インメモリ型データベースのメモリ領域2120に予め設定された表テーブル2121または端末装置2140から指定された表2121とインデックス2122を外部記憶装置2200から読み込む。そして、クライアント端末装置2160で実行されるUAPUserApplicationProgramからのアクセス要求がインメモリ型データベースの場合には、メモリ領域2120をアクセスしてクライアント端末装置2160に応答する。また、データベース管理システム2110は、ディスク型データベースを稼動させ、クライアント端末装置2160のUAPUserApplicationProgramからのアクセス要求を受け付けて、アクセス要求の対象がディスク型データベースの場合には、表2131及びインデックス2132を、外部記憶装置2200のディスクDBデータ1001のうち必要な部分のみを取得してDBバッファ2130に読み込む。そして、データベース管理システム2110は、DBバッファ2130に読み込んだデータについてクライアント端末装置2160からの要求を処理する。なお、DBバッファ2130に読み込んだ表2131及びインデックス2132は、外部記憶装置2200のディスクDBデータ1001の一部分である。データベース管理システム2110が提供するハイブリッド型データベースが、クライアント端末装置2160のUAPからのリクエストに応答するデータの処理については、公知または周知のインメモリ型データベースとディスク型データベースの処理を適用すればよい。なお、DBバッファ2130及びインメモリ型データベースのメモリ領域2120の操作については後述する。端末装置2140は、データベース管理装置2100の管理者などが利用する計算機で、入力装置と出力装置を備える。クライアント端末装置2160は、ハイブリッド型データベースの利用者などが使用する計算機で、入力装置と出力装置を備える。<ソフトウェアの概要>データベース管理システム2110は、インメモリ型データベースとディスク型データベースを管理する。このため、データベース管理システム2110は、インメモリ型データベースのメモリ領域2120とディスク型データベースのDBバッファ2130を管理するDBバッファ管理部2111と、メモリ領域2120を拡張する際に解放可能なDBバッファ2130の要素を格納するDBバッファ解放対象リスト8060と、DBバッファ2130から解放してインメモリ型データベースのメモリ領域2120加えるDBバッファ2130の要素を格納するDBバッファ解放操作リスト8070と、を有する。データベース管理システム2110は、クライアント端末装置2160からアクセス要求を受け付けると、アクセスの対象となる表がインメモリ型データベースとディスク型データベースの何れかを判定する。アクセスの対象となる表テーブルがインメモリ型データベースの場合にはインメモリ型データベースのメモリ領域2120にアクセスする。また、データベース管理システム2110は、アクセスの対象となる表がディスク型データベースの場合にはDBバッファ2130にアクセスする。データベース管理システム2110は、インメモリ型データベースへのアクセス要求を受け付けると、メモリ領域2120のインデックス2122または表2121を検索してデータを取得し、クライアント端末装置2160に応答する。図2の例では、インメモリ型データベースは、メモリ領域2120に表T1、表T3と、これらの表に対応するインデックスをメモリ領域2120に配置した例を示す。一方、データベース管理システム2110は、ディスク型データベースに対するアクセス要求を受け付けるとDBバッファ2130のインデックス2132または表2131あるいは外部記憶装置2200を検索してデータを取得し、クライアント端末装置2160に応答する。外部記憶装置2200には、図1で示したように、ディスク型データベースのデータである表8010とインデックス8020からなるディスクDBデータ1001が格納される。DBバッファ管理部2111は、DBバッファ2130に読み込む表2131及びインデックス2132とインメモリ型データベースのメモリ領域2120を管理する。DBバッファ管理部2111は、データベース管理システム2110がアクセスする表2131の部分レコードがDBバッファ2130にない場合には外部記憶装置2200のディスクDBデータ1001から表2131とインデックス2132のうち必要とする部分を読み込んで、DBバッファ2130に格納する。このとき、DBバッファ管理部2111は、DBバッファ2130内で不要となったデータ表を構成するレコードまたはインデックスの一部を外部記憶装置2200に書き戻すか、破棄する。不要となったデータの判定は、LRULeastRecentlyUsed方式など周知または公知の手法を用いることができる。図2の例では、DBバッファ管理部2111が、外部記憶装置2200に格納されたディスクDBデータ1001のうち表T2の一部と表T2に対応するインデックスをDBバッファ2130に読み込んだ例を示す。また、DBバッファ管理部2111は、後述するように、インメモリ型データベースへのアクセスの増大または表2121の増大によって、インメモリ型データベースのメモリ領域2120が不足することを検知すると、DBバッファ解放対象決定部2112とDBバッファ解放操作実行部2113を起動してDBバッファ2130を縮小させる。そして、DBバッファ管理部2111は、DBバッファ2130から削減した容量をインメモリ型データベースのメモリ領域2120に割り当てて、メモリ領域2120を拡張する。DBバッファ管理部2111は、インメモリ型データベースのメモリ領域2120の使用率が予め設定した閾値を超えたときにメモリ領域2120が不足すると判定する。なお、閾値は、図9で示すように、メモリ領域情報8050の容量不足検知割合8054に格納しておくことができる。そして、インメモリ型データベースのメモリ領域2120の不足が判定されると、DBバッファ解放対象決定部2112で、DBバッファ2130から削減する要素インデクスを後述するように決定する。そして、DBバッファ解放操作実行部2113が決定された要素を主記憶装置2104から解放して、インメモリ型データベースのメモリ領域2120に加える。これによりDBバッファ管理部2111は、DBバッファ2130から削減した容量領域をメモリ領域2120に加えてメモリ領域2120を拡張する。本発明は、インメモリ型データベースとディスク型データベースの双方を備えるハイブリッド型データベースにおいて、インメモリ型データベースのメモリ領域2120が不足する可能性があると判定されたときに、DBバッファ2130の要素のうちインデックス2132等が使用する領域を削減する。そして、削減によりインデックス2132から取得した主記憶装置2104の領域をインメモリ型データベースのメモリ領域2120に加える。インメモリ型データベースのメモリ領域2120に領域を追加することで、インメモリ型データベースの性能例えば、応答は向上する。一方、DBバッファ2130の削減によりディスク型データベースの性能は低下する。したがって、前記従来例のように予め拡張用の記憶領域を用意することなく、ハイブリッド型データベース全体の性能を確保しながらインメモリ型データベースの性能を向上させることができる。これにより、計算器資源を有効に利用することができる。つまり、本発明では、DBバッファ2130のインデックス領域を削減することでディスク型データベースの性能を低下させる一方で、インメモリ型データベースのメモリ領域2120の拡張によりインメモリ型データベースの性能を向上させることで、ハイブリッド型データベース全体の性能を維持する。DBバッファ管理部2111は、ディスク型データベースとインメモリ型データベースの性能を監視するため、DBバッファ2130の要素に関する表インデクス情報8040と、インメモリ型データベースのメモリ領域2120に関する情報をメモリ領域情報8050と、を主記憶装置2104上に配置する。表インデクス情報8040は、図1で示すように、DBバッファ2130に格納された表の情報を保持する表情報8041と、表情報8041の表に定義されたインデクスの情報を保持するインデクス情報8042と、表情報8041の表に対するアクセスの頻度を保持する表アクセス頻度情報8043と、から構成される。一方、メモリ領域情報8050は、図9で示すように、インメモリ型データベースのメモリ領域2120に割り当てられた容量を保持するインメモリDB容量8051と、容量不足または不足する兆候を検知する閾値割合を保持する容量不足検知割合8054と、メモリ領域の拡張量を保持するメモリDB拡張割合8052と、メモリ領域2120に追加する主記憶装置2104の容量を保持するメモリ領域拡張サイズ8053から構成される。なお、容量不足を検知する閾値は、インメモリDB容量8051に対して実際に使用中の領域の割合の例を示す。この他、実際に使用中の領域の容量の上限値を閾値として設定してもよい。また、メモリDB拡張割合8052は、1回の操作でインメモリ型データベースのメモリ領域2120に付加する容量の比率を示し、この比率は、インメモリDB容量8051に乗ずる値が格納される。そして、メモリ領域拡張サイズ8053は、インメモリDB容量8051にメモリDB拡張割合8052を格納する。図7は、表インデクス情報8040を構成する表情報8041の一例を示す図である。表情報8041は、表の識別子を格納する表ID80411と、表の名称を格納する表名80412と、表に定義されたインデクスの数を格納する定義インデクス数80413と、表が使用しているDBバッファ内の容量を格納するDBバッファ容量80414と、1回の操作で削減可能なDBバッファ容量80414の比率を格納する削減割合80415からひとつのエントリが構成される。図8は、表インデクス情報8040を構成するインデクス情報8042の一例を示す図である。インデクス情報8042は、インデクスの識別子を格納するインデクスID80421と、インデクスの名称を格納するインデクス名80422と、当該インデクスが参照する表の識別子を格納する表ID80423と、当該インデクスがセカンダリインデクスであるか否かを識別するセカンダリインデクス識別80424と、当該インデクスが使用するDBバッファ2130上の容量を格納するDBバッファ容量80425からひとつのエントリが構成される。セカンダリインデクス識別80424が1であれば、当該インデクスはセカンダリインデクスであることを示し、0であればプライマリインデクスであることを示す。図9は、メモリ領域2120の設定に関する情報を格納するメモリ領域情報8050の一例を示す図である。メモリ領域情報8050は、インメモリ型データベースのメモリ領域2120の容量を格納するインメモリDB容量8051と、インメモリ型データベースのメモリ領域2120の不足を判定するために、メモリ領域2120の容量に対する実際の容量の比を使用率として、この使用率の閾値を格納する容量不足検知割合8054と、メモリ領域2120を拡張する際の比率を格納するメモリDB拡張割合8052と、メモリ領域2120を拡張する容量を格納するメモリ領域拡張サイズ8053と、を含む。メモリDB拡張割合8052は、インメモリ型データベースに割り当てられた容量インメモリDB容量8051に対してメモリ領域2120を拡張する割合を予め格納しておく。メモリ領域拡張サイズ8053は、データベース管理システム2110が、インメモリ型データベースに割り当てられた領域2120の容量に対してメモリDB拡張割合8052を乗じた値を格納する。上記メモリ領域情報8050の内容は、管理者などが操作する端末装置2140から入力しても良いし、所定のファイルからデータベース管理システム2110が読み込んで設定してもよい。なお、上記図7、図8の表情報8041及びインデクス情報8042は、データベース管理システム2110によってデータの設定や更新を行うことができる。図10は、表インデクス情報8040を構成する表アクセス頻度情報8043の一例を示す図である。表アクセス頻度情報8043は、表の識別子を格納する表ID80431と、当該表IDに対する1日当たりのアクセスの回数を格納するアクセス頻度80432と、から一つのエントリが構成される。データベース管理システム2110は、クライアント端末2160等からの要求に応じてディスク型データベースへのアクセスを受け付ける度に、表アクセス頻度情報8043の表ID80431に対応するアクセス頻度80432を更新する。図11は、DBバッファ解放対象決定部2112が生成するDBバッファ解放対象リスト8060の一例を示す図である。DBバッファ解放対象リスト8060は、解放の対象となるディスク型データベースの要素の種別を格納する解放対象種別8061と、解放の対象となる要素の名称を格納する解放対象名8062と、解放の対象となる要素のDBバッファ2130上の容量を格納する解放サイズ8063と、から一つのエントリが構成される。図12は、DBバッファ解放操作実行部2113が生成するDBバッファ解放操作リスト8070の一例を示す図である。DBバッファ解放操作リスト8070は、解放の対象となるディスク型データベースの要素の名称を格納する解放対象8071と、解放の対象となる要素のDBバッファ2130上の容量を格納する解放容量8072と、から一つのエントリが構成される。<処理の概要>図2は、本発明のデータベース管理システム2110が、インメモリ型データベースのメモリ領域2120が不足すると判定したときに、ディスク型データベースのDBバッファ2130の一部を削減し、削減した領域をインメモリ型データベースのメモリ領域2120に加えて拡張するメモリ操作の概要を示す図である。データベース管理システム2110のDBバッファ管理部2111は、インメモリ型データベースのメモリ領域2120の使用率を監視して、メモリ領域2120の使用率が所定の閾値容量不足検知割合8054を超えると、インメモリ型データベースのメモリ領域2120が不足することを検出する。インメモリ型データベースのメモリ領域2120の不足を検出するとDBバッファ管理部2111は、DBバッファ解放対象決定部2112を起動して、図4に示すDBバッファ解放対象決定処理S600を開始する。なお、DBバッファ解放対象決定処理S600は図1に示したDBバッファ解放対象決定部2112で行われる処理である。DBバッファ解放対象決定処理S600では、メモリ領域情報8050のインメモリDB容量8051とメモリDB拡張割合8052からメモリ領域拡張サイズ8053を演算する。本実施形態では、1回の拡張でメモリ領域拡張サイズ8053ずつインメモリ型データベースのメモリ領域2120を拡張する例を示す。次に、DBバッファ解放対象決定部2112は、メモリ削減操作の対象となるディスク型データベースの要素を抽出するため、表インデクス情報8040から表情報8041、インデクス情報8042、表アクセス頻度情報8043を読み込む。DBバッファ解放対象決定部2112は、読み込んだ情報からDBバッファ解放対象リスト8060を後述するように生成する。DBバッファ解放対象決定部2112は、DBバッファ解放対象リスト8060を参照して、メモリ領域拡張サイズ8053を満たす容量になるまでディスク型データベースの要素を抽出する。そして、DBバッファ解放対象決定部2112は、抽出したディスク型データベースの要素からDBバッファ解放操作リスト8070を生成する。DBバッファ管理部2111は、DBバッファ解放対象決定部2112の処理が完了すると、DBバッファ解放操作実行部2113を起動してDBバッファ解放操作を後述するように実行するS700。DBバッファ解放操作実行部2113は、DBバッファ解放操作リスト8070を読み込んで、解放対象となるディスク型データベースの要素をDBバッファ2130から削除して外部記憶装置2200へ書き戻す。DBバッファ解放操作実行部2113は、DBバッファ2130から削除された領域を解放する。そして、DBバッファ解放操作実行部2113は、DBバッファ2130上で解放した領域を、インメモリ型データベースのメモリ領域2120に加えて、メモリ領域2120の拡張を行うS800。以上の処理によって、データベース管理システム2110は、DBバッファ2130からディスク型データベースの要素の一部を削除して、インメモリ型データベースのメモリ領域2120に加えることで、主記憶装置2104の領域を無駄なく利用しながらも、インメモリ型データベースのメモリが不足することを防止できる。<処理の詳細>以下、データベース管理システム2110で行われるディスク型データベースのDBバッファ2130の一部を削減し、削減した記憶領域をインメモリ型データベースのメモリ領域2120に追加する処理の詳細を説明する。図3は、データベース管理システム2110で行われるメモリ操作の全体的な処理の一例を示すフローチャートである。この処理は、所定の周期例えば、1分毎で実行される。ステップS200では、DBバッファ管理部2111が、メモリ領域情報8050を読み込んで、インメモリDB容量8051のうち実際に使用されている領域を監視して、実際に使用されている領域の比率が閾値である容量不足検知割合8054を超えていれば、インメモリ型データベースのメモリ領域2120が不足または不足の予兆することを検知する。メモリ領域2120が不足することを検知すると、データベース管理システム2110は、DBバッファ解放対象決定部2112を起動してステップS300へ進む。ステップS300では、DBバッファ解放対象決定部2112がメモリ領域情報8050を読み込んでインメモリDB容量8051にメモリDB拡張割合8052を乗じて、メモリ領域拡張サイズ8053を演算する。ステップS400では、DBバッファ解放対象決定部2112が表インデクス情報8040から表情報8041とインデクス情報8042を取得して、DBバッファ2130上に存在する表とインデクスを特定する。ステップS600では、DBバッファ解放対象決定部2112が、DBバッファ2130上に存在する表とインデクスから後述する図4の処理によって、DBバッファ解放対象となるディスク型データベースの要素を抽出してDBバッファ解放操作リスト8060を生成する。ステップS660では、DBバッファ管理部2111が、DBバッファ解放操作リスト8070を構成するディスク型データベースの要素の容量解放容量8072の合計をDBバッファ解放サイズとして演算する。ステップS690では、DBバッファ管理部2111が、ステップS300で求めたメモリ領域拡張サイズ8053とステップS660で求めたDBバッファ解放サイズを比較して、DBバッファ解放サイズがメモリ領域拡張サイズ8053以上であるか否かを判定する。そして、DBバッファ解放サイズがメモリ領域拡張サイズ8053以上であれば、DBバッファ管理部2111は、DBバッファ解放操作実行部2113を起動してステップS700へ進む。一方、DBバッファ解放サイズがメモリ領域拡張サイズ8053未満であれば、DBバッファ管理部2111は、ステップS692へ進んでインメモリ型データベースのメモリ領域2120を拡張できないことを通知するエラー処理を実行する。ステップS700では、DBバッファ解放操作実行部2113が後述する図6のように、DBバッファ解放操作リスト8070の要素をDBバッファ2130から削除する。そして、ステップS800では、DBバッファ解放操作実行部2113は、ステップS700でDBバッファ2130から削除した領域を、インメモリ型データベースのメモリ領域2120に付加して拡張させる。DBバッファ解放操作実行部2113は、メモリ領域拡張サイズ8053をインメモリDB容量8051に加算し、その後、メモリ領域拡張サイズ8053をクリアする。以上の処理により、DBバッファ2130上から解放対象の要素が削除され、削除された領域がインメモリ型データベースのメモリ領域2120に加えられる。<DBバッファ解放対象決定処理>図4は上記図3のステップS600で行われるDBバッファ解放対象決定処理の一例を示すフローチャートである。ステップS601では、DBバッファ解放対象決定部2112が、図3のステップS400で取得した表とインデクスから、図11に示すDBバッファ解放対象リスト8060を生成する。次に、DBバッファ解放対象決定部2112は、図10に示した表アクセス頻度情報8043を読み込んで、DBバッファ解放対象リスト8060をアクセス頻度80432の昇順でソートする。このとき、解放対象種別8061がテーブルの場合は、解放対象名8062に含まれるテーブルの識別子に対応するアクセス頻度情報8043を用いる。また、解放対象種別8061がインデクスの場合は、解放対象名8062に含まれるテーブルの識別子を、当該インデクスのアクセス頻度情報8043として扱うようにしてもよい。ステップS602では、DBバッファ解放対象決定部2112が、上記ステップS601で生成したDBバッファ解放対象リスト8060の先頭のエントリからステップS603~S606の処理を繰り返す。ステップS603では、DBバッファ解放対象決定部2112が、上記ステップS601でアクセス頻度80432の昇順でDBバッファ解放対象リスト8060のエントリを読み込む。そして、DBバッファ解放対象決定部2112は、詠み込んだDBバッファ解放対象リスト8060のエントリの解放対象種別8061がインデクスであるか否かを判定する。インデクスであれば、DBバッファ解放対象決定部2112は、解放対象名8062で図8のインデクス情報8042のインデクス名80422と表ID80423を検索し、当該インデクスのセカンダリインデクス識別80424を取得する。DBバッファ解放対象決定部2112は、セカンダリインデクス識別80424が1であるか否かを判定し、1であれば当該解放対象名8062のインデクスはセカンダリであるので、当該解放対象名8062でDBバッファ解放操作リスト8070にエントリを追加する。つまり、DBバッファ解放対象決定部2112は、当該解放対象名8062をDBバッファ解放操作リスト8070の解放対象8071に設定し、インデクス情報8042のDBバッファ容量80425からセカンダリインデクスが使用していた容量を取得し、この容量をDBバッファ解放操作リスト8070の解放容量8072に設定する。ステップS604では、DBバッファ解放対象決定部2112が、DBバッファ解放操作リスト8070に加えられたセカンダリインデクスの容量解放容量8072の合計をDBバッファ解放サイズとして演算する。ステップS605では、DBバッファ解放対象決定部2112が、ステップS300で求めたメモリ領域拡張サイズ8053と、ステップS604で求めたDBバッファ解放サイズを比較して、DBバッファ解放サイズがメモリ領域拡張サイズ8053以上であるか否かを判定する。DBバッファ解放サイズがメモリ領域拡張サイズ8053以上であれば、DBバッファ解放対象決定部2112は、DBバッファ2130から削減する領域がメモリ領域拡張サイズ8053以上になったので図4の処理を終了して図3の処理に戻る。一方、DBバッファ解放サイズがメモリ領域拡張サイズ8053未満であれば、DBバッファ解放対象決定部2112はステップS603に戻って、DBバッファ解放対象リスト8060の次のエントリについて上記処理を繰り返すS606。DBバッファ解放対象決定部2112は、DBバッファ解放対象リスト8060の全てのエントリについて処理が終了してもDBバッファ解放サイズがメモリ領域拡張サイズ8053未満であればステップS806へ進む。つまり、現在生成されたセカンダリインデクスのみのDBバッファ解放操作リスト8070では、DBバッファ解放サイズが要求されるメモリ領域拡張サイズ8053に達しない場合である。ステップS607では、DBバッファ解放対象決定部2112が、上記ステップS601で生成したDBバッファ解放対象リスト8060の先頭のエントリからステップS608~S611の処理を繰り返す。なお、DBバッファ解放対象リスト8060は上述のようにアクセス頻度が低い順から高い順にソートされている。ステップS608では、DBバッファ解放対象決定部2112が、上記ステップS601でアクセス頻度80432の昇順でDBバッファ解放対象リスト8060のエントリを読み込む。そして、DBバッファ解放対象決定部2112は、詠み込んだDBバッファ解放対象リスト8060のエントリの解放対象種別8061がテーブル表であるか否かを判定する。テーブルであれば、DBバッファ解放対象決定部2112は、解放対象名8062で図7の表情報8041の表ID80411を検索し、当該テーブルの削減割合80415と、当該テーブルが使用中のDBバッファ容量80414を取得する。DBバッファ解放対象決定部2112は、当該テーブルが使用中のDBバッファ容量80414に削減割合80415を乗じた値を解放容量として求める。DBバッファ解放対象決定部2112は、当該テーブルの解放対象名8062でDBバッファ解放操作リスト8070にエントリを追加する。つまり、DBバッファ解放対象決定部2112は、当該テーブルの解放対象名8062をDBバッファ解放操作リスト8070の解放対象8071に設定し、上記削減割合80415から求めた容量をDBバッファ解放操作リスト8070の解放容量8072に設定する。なお、削減割合80415は、図7で示すように例えば、30で、使用中のDBバッファ容量80414が例えば、300MBの場合、解放容量8072は90Mbyteとなる。DBバッファ解放操作リスト8070のテーブルの解放容量8072は、解放対象8071の表がDBバッファ2130使用中の領域のうち外部記憶装置2200へ書き戻す容量を示す。ステップS609では、DBバッファ解放対象決定部2112が、DBバッファ解放操作リスト8070に加えられたテーブルを含む解放容量8072の合計をDBバッファ解放サイズとして演算する。ステップS610では、DBバッファ解放対象決定部2112が、ステップS300で求めたメモリ領域拡張サイズ8053と、ステップS608で求めたDBバッファ解放サイズを比較して、DBバッファ解放サイズがメモリ領域拡張サイズ8053以上であるか否かを判定する。DBバッファ解放サイズがメモリ領域拡張サイズ8053以上であれば、DBバッファ解放対象決定部2112は、DBバッファ2130から削減する領域がメモリ領域拡張サイズ8053以上になったので図4の処理を終了して図3の処理に戻る。一方、DBバッファ解放サイズがメモリ領域拡張サイズ8053未満であれば、DBバッファ解放対象決定部2112はステップS607に戻って、DBバッファ解放対象リスト8060の次のエントリについて上記処理を繰り返すS611。DBバッファ解放対象決定部2112は、上記図4の処理によって、DBバッファ2130のうちセカンダリインデクスをDBバッファ解放操作リスト8070に抽出して、DBバッファ解放サイズがメモリ領域拡張サイズ未満であれば、DBバッファ2130を使用中の表から所定の削減割合80415を削減してDBバッファ解放操作リスト8070に加えていく。<DBバッファ解放操作リストの計算処理>図5は、上記図3のステップS660、図4のステップS604、S609で行われるDBバッファ解放操作リスト8070の計算処理の一例を示すフローチャートである。DBバッファ解放対象決定部2112またはDBバッファ管理部2111は、ステップS661、S662、S663を繰り返すことで、DBバッファ解放操作リスト8070の先頭から終端までのエントリを読み込んで、解放容量8072の総和をDBバッファ解放サイズとして演算する。<DBバッファ解放操作実行処理>図6は、上記図3のステップS700で行われるDBバッファ解放操作実行処理の一例を示すフローチャートである。ステップS711では、DBバッファ解放操作実行部2113が、DBバッファ解放操作リスト8070を読み込む。そして、ステップS712では、DBバッファ解放操作実行部2113が、DBバッファ解放操作リスト8070の先頭から終端までのエントリについてステップS713~S716の処理を繰り返す。ステップS713では、DBバッファ解放操作実行部2113が解放操作リスト8070から一つのエントリを読み込んで、解放対象8071と解放容量8072を取得する。ステップS714では、DBバッファ解放操作実行部2113が上記読み込んだ解放対象8071を外部記憶装置2200のディスクDBデータ1001に書き戻す。このとき、DBバッファ解放操作実行部2113が外部記憶装置2200へDBバッファ2130の一部を書き戻す場合には、書き戻す対象をLRULeastRecentlyUsed等の周知または公知の手法で決定すればよい。なお、DBバッファ解放操作実行部2113は上記読み込んだ解放対象8071がセカンダリインデクスの場合には、外部記憶装置2200へ書き戻さずに削除するようにしても良い。次に、ステップS715では、DBバッファ解放操作実行部2113は、解放対象8071が使用していたDBバッファ2130上の領域を解放する。このとき、DBバッファ解放操作実行部2113は、解放対象8071がテーブルの場合、表が使用中のDBバッファ容量80414から、このDBバッファ容量80414に削減割合80415を乗じた値を差し引いてDBバッファ容量80414を更新する。DBバッファ解放操作実行部2113は、解放対象8071がインデクスの場合、インデクス情報8042から該当するインデクスID80421またはインデクス名80422のエントリを削除する。あるいは、インデクスの一部を解放した場合には、インデクス情報8042の使用中のDBバッファ容量80425を更新するようにしてもよい。上記ステップS713~S714の処理を、DBバッファ解放操作リスト8070の全てのエントリについて完了すると、ステップS720に進む。ステップS720では、DBバッファ解放操作実行部2113は、DBバッファ解放操作リスト8070の全エントリを削除して初期化する。また、DBバッファ解放操作実行部2113は、メモリ領域情報8050のインメモリDB容量8051に、上記図3のステップS660で求めたDBバッファ解放サイズを加算して更新する。また、DBバッファ解放操作実行部2113は、メモリ領域情報8050のメモリ領域拡張サイズ8053をクリアする。以上の処理により、DBバッファ解放操作リスト8070に加えられたディスク型データベースの要素は、外部記憶装置2200へ書き戻されてからDBバッファ2130上で使用していた領域が解放される。<まとめ>以上のように、本発明では、インメモリ型データベースのメモリ領域2120の実際の使用量が閾値容量不足検知割合8054を超えると、DBバッファ管理部2111はインメモリ型データベースのメモリ領域の不足または不足の予兆を検知する。メモリ領域2120の不足が検知されると、DBバッファ管理部2111は、DBバッファ2130の容量を削減して、インメモリ型データベースのメモリ領域2120に加えることで、主記憶装置2104の資源を無駄なく利用しながらインメモリ型データベースの性能を確保することができる。DBバッファ管理部2111は、インメモリ型データベースのメモリ領域2120を拡張する単位比率をメモリ領域情報8050のメモリDB拡張割合8052として保持する。そして、DBバッファ管理部2111のDBバッファ解放対象決定部2112は、メモリ領域2120を拡張する度に、現在のメモリ領域2120の容量8051にメモリDB拡張割合8052を乗じて、今回追加するメモリ領域拡張サイズ8053を求める。DBバッファ解放対象決定部2112は、まず、アクセス頻度の少ない順にセカンダリインデクスを解放対象としてDBバッファ解放操作リスト8070に追加する。そして、DBバッファ解放対象決定部2112は、解放するセカンダリインデクスの容量の総和がメモリ領域拡張サイズ8053に満たない場合は、DBバッファ2130上の表の一部を外部記憶装置2200に書き戻すよう外部記憶装置入出力インターフェース2103に指令した後、当該表の一部を削除する。ここで、表情報8041には、各表ID80411毎に1回の削減操作でDBバッファ2130から書き戻す比率を削減割合80415として予め設定しておく。そして、DBバッファ解放対象決定部2112は、DBバッファ解放対象リスト8060からアクセス頻度の低い順に解放容量8072を順次決定してDBバッファ解放操作リスト8070に追加する処理を、メモリ領域拡張サイズ8053を満たすまで繰り返す。このような処理により、まずアクセス頻度の低い順にセカンダリインデクスをDBバッファ2130から削除し、さらに、アクセス頻度の低い順に表の一部を所定の比率で削除することでDBバッファ2130の領域を解放することができる。なお、削除するデータは外部記憶装置2200へ書き戻しておく。そして、DBバッファ2130から解放した領域を、インメモリ型データベースのメモリ領域2120に追加することで、主記憶装置2104の資源を無駄なく利用しながら、インメモリ型データベースに必要な領域を迅速に確保することが可能となるのである。なお、上記実施形態では、アクセス頻度の低い表の一部を外部記憶装置2200へ書き戻す例を示したが、アクセス頻度の低い表の全てを外部記憶装置2200へ書き戻すようにしてもよい。また、上記実施形態では、アクセス頻度の低い順にセカンダリインデクスをDBバッファ解放操作リスト8070へ加える例を示したが、セカンダリインデクスを用いたヒット率を監視してヒット率の低いセカンダリインデクスをDBバッファ2130から削除するようにしてもよい。また、上記実施形態では、外部記憶装置2200にデータベースを格納する例を示したが、データベース管理装置2100内のストレージ装置またはストレージデバイスにデータベースを格納するようにしても良い。また、上記実施形態では、DBバッファ解放操作リスト8070の表またはインデクスを外部記憶装置2200に書き戻す例を示したが、データベース管理装置2100のストレージ装置にDBバッファ解放操作リスト8070の表またはインデクスを移動するようにしてもよい。また、上記実施形態では、インメモリ型データベースのメモリ領域2120の不足または不足の予兆を契機に、DBバッファ2130の一部を開放してメモリ領域2120に追加する例を示したが、データベース管理システム2110がインメモリ型データベースの表のデータを追加する指令を受けたときにDBバッファ2130の一部を開放してメモリ領域2120に追加するようにしてもよい。