(57)【要約】【課題】データの不整合を防ぎつつ、高速にアクセス可能なＫＶＳを備える情報記憶システムを提供すること。【解決手段】複数の属性の値からなる保存対象データと、保存対象データを構成する複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶するデータ記憶部と、データ記憶部が記憶する一対のデータのうちデータ識別情報となる属性の値を、当該一対のデータとして記憶される保存対象データを構成する他の属性の値の一つに変更するデータ構造変換部と、を備え、データ構造変換部がデータ識別情報となる属性の値を変更している間、データ構造変換部による変更の対象となる、一対のデータの参照を禁止する。【選択図】図２
2015069269.tif 000002
【特許請求の範囲】
【請求項１】
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶するデータ記憶部と、
前記データ記憶部が記憶する前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値の一つに変更するデータ構造変換部と、を備え、
前記データ構造変換部が前記データ識別情報となる前記属性の値を変更している間、前記データ構造変換部による変更の対象となる、前記一対のデータの参照を禁止する、
情報記憶システム。
【請求項２】
請求項１に記載の情報記憶システムであって、
前記データ構造変換部が前記データ識別情報となる前記属性の値を変更している間、前記データ構造変換部による変更の対象となる、前記一対のデータの更新を禁止する、
情報記憶システム。
【請求項３】
請求項１又は２に記載に情報記憶システムであって、
前記データ記憶部から前記保存対象データを検索する際に用いた、当該保存対象データを構成する前記属性の値の一つである検索属性値を、当該検索属性値により検索された前記保存対象データと対応付けて、検索属性値情報として記憶する検索属性値情報記憶処理部を備え、
前記データ構造変換部は、前記検索属性値情報記憶処理部が記憶する前記検索属性値情報に基づいて、前記データ識別情報となる前記属性の値を変更する、
情報記憶システム。
【請求項４】
請求項３に記載の情報記憶システムであって、
前記データ構造変換部は、前記検索属性値情報に基づいて変換指標値を算出し、当該変換指標値が予め定められた閾値を超える場合に、前記データ識別情報となる前記属性の値を変更する、
情報記憶システム。
【請求項５】
請求項４に記載の情報記憶システムであって、
前記検索属性値情報記憶部は、前記検索属性値情報に含めて、前記データ識別情報である前記検索属性値を用いて前記保存対象データを検索した回数と、前記データ識別情報でない前記検索属性値を用いて前記保存対象データを検索した回数と、を前記検索属性値毎に前記保存対象データと対応付けて記憶する、
情報記憶システム。
【請求項６】
請求項５に記載の情報記憶システムであって、
前記データ構造変換部は、前記データ識別情報でない前記検索属性値を用いて前記保存対象データを検索した回数が、前記データ識別情報である前記検索属性値を用いて前記保存対象データを検索した回数に占める割合を前記変換指標値として算出し、当該変換指標値が示す割合が前記閾値を超える場合に、前記データ識別情報となる前記属性の値を、前記保存対象データを検索した前記検索属性値に変更する、
情報記憶システム。
【請求項７】
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶する情報処理装置により、
前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値に変更し、
前記データ識別情報となる前記属性の値を変更している間、前記一対のデータへの参照を禁止する、
情報記憶方法。
【請求項８】
請求項７に記載の情報記憶方法において、
前記保存対象データを検索する際に用いた、当該保存対象データを構成する前記属性の値の一つである検索属性値を、当該検索属性値により検索された前記保存対象データと対応付けて、検索属性値情報として記憶し、
前記検索属性値情報に基づいて、前記データ識別情報となる前記属性の値を変更する、
情報記憶方法
【請求項９】
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶するデータ記憶手段を備えた情報処理装置に、
前記データ記憶手段が記憶する前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値に変更するデータ構造変換手段を実現させ、
前記データ構造変換手段が前記データ識別情報となる前記属性の値を変更している間、前記一対のデータへの参照を禁止する機能を有する、
プログラム。
【請求項１０】
請求項９に記載のプログラムであって、
前記データ記憶手段から前記保存対象データを検索する際に用いた、当該保存対象データを構成する前記属性の値の一つである検索属性値を、当該検索属性値により検索された前記保存対象データと対応付けて、検索属性値情報として記憶する検索属性値情報記憶処理手段を実現させ、
前記データ構造変換手段は、前記検索属性値情報記憶処理手段が記憶する前記検索属性値情報に基づいて、前記データ識別情報となる前記属性の値を変更する機能を有する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報記憶システム、情報記憶方法、プログラムに係り、特に、ＫＶＳを備える情報記憶システム、情報記憶方法、プログラムに関する。
【背景技術】
【０００２】
極めて大量のデータを保管するために、分散キーバリューストア（以下、ＫＶＳという）が注目されている。
【０００３】
一般に、ＫＶＳはスケーラビリティとスループットを重視する。そのため、ＫＶＳは、
データをキーとバリューからなる単純な構造（以下、ＫＶペアという）で表現する必要がある。また、ＫＶＳが対応できる操作は、ＫＶペアのキーを指定してバリューを取得する、ＫＶペアを収納する、キーを指定してＫＶペアを削除する、という３種類の動作のみに限定されている。
【０００４】
このような特徴を持つため、ＫＶＳは、キーとして格納した属性以外の値をアクセスパスとする際には、予め用意した索引を経由する必要があった。そのため、キーとして格納した属性以外の値をアクセスパスとすると、ＫＶＳは、索引を取得した上でその内容を解析して、改めて実データを取得するという動作を行う必要がある。その結果、ＫＶＳは、キーとして格納した属性以外の値をアクセスパスとすると、実データを取得するまでの時間が遅くなるという問題が生じていた。
【０００５】
また、ＫＶＳはスケーラビリティを重視するため、一般にひとつのＫＶペアに対する原子的操作しかサポートしていない。そのため、複数のクライアントからの要求を同時に処理すると、データの不整合が発生しうるという問題が生じていた。
【０００６】
ここで、ＫＶＳに格納されたデータを高速に検索する方法としては、特許文献１が知られている。特許文献１には、表データを分解表に細分化して記憶、処理することで処理の高速化を狙う方法が記載されている。
【０００７】
また、高速な検索を可能とするために格納方法を再編成する方法としては、特許文献２が知られている。特許文献２には、データ操作要求によるデータベースへのアクセスパスをトレースしておくことで、アクセス傾向に応じた格納方法に再編成する方式が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１６４３３３号公報
【特許文献２】特開平０５−００２５１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載されている技術では、値の分散状況によっては細分化しても値の範囲が狭くならず、必ずしも高速なアクセスには結びつかないという問題が生じていた。
【００１０】
また、特許文献２に記載されている技術をＫＶＳに適用すると、複数のクライアントからの要求を同時に処理する際に、データの不整合が生じることがあるという問題が生じていた。
【００１１】
そこで、本発明の目的は、上述した課題である、データの不整合を防ぎつつ、高速にアクセス可能なＫＶＳを備える情報記憶システムを提供することにある。
【課題を解決するための手段】
【００１２】
かかる目的を達成するため本発明の一形態である情報記憶システムは、
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶するデータ記憶部と、
前記データ記憶部が記憶する前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値の一つに変更するデータ構造変換部と、を備え、
前記データ構造変換部が前記データ識別情報となる前記属性の値を変更している間、前記データ構造変換部による変更の対象となる、前記一対のデータの参照を禁止する、
という構成を採る。
【００１３】
また、本発明の他の形態である情報記憶方法は、
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶する情報処理装置により、
前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値に変更し、
前記データ識別情報となる前記属性の値を変更している間、前記一対のデータへの参照を禁止する、
という構成を採る。
【００１４】
また、本発明の他の形態であるプログラムは、
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶するデータ記憶手段を備えた情報処理装置に、
前記データ記憶手段が記憶する前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値に変更するデータ構造変換手段を実現させ、
前記データ構造変換手段が前記データ識別情報となる前記属性の値を変更している間、前記一対のデータへの参照を禁止する機能を有する、
プログラムである。
【発明の効果】
【００１５】
本発明は、以上のように構成されることにより、データの不整合を防ぎつつ、高速にアクセス可能なＫＶＳを備える情報記憶システムを提供することが出来る。
【図面の簡単な説明】
【００１６】
【図１】第１の実施形態における情報記憶システムの構成の概略を示すブロック図である。
【図２】第１の実施形態における情報記憶システムの構成を示すブロック図である。
【図３】図１で示す情報記憶システムが記憶するＫＶ形式のデータの一例を示す図である。
【図４】図２で示すキーバリューストアに記憶されるユーザデータの詳細な構成を示す図である。
【図５】図１で示す情報記憶システムがデータ取得処理を行う際の取得するデータの流れを示した図である。
【図６】第１の実施形態において、データ構造変換処理の流れの一例を示す図である。
【図７】第１の実施形態において、複数の主キー情報を索引部に備える場合のデータ構造変換処理の流れを示す図である。
【図８】図１で示す情報記憶システムがデータ取得処理を行う際の流れを示すフローチャートである。
【図９】図２で示すデータ構造変換装置がキー情報を変更する際の流れを示すフローチャートである。
【図１０】図２で示すデータ構造変換装置によるデータ構造変換中のクライアント装置からのデータアクセスの処理を示すフローチャートである。
【図１１】第２の実施形態における、データ構造変換処理の流れを示すフローチャートである。
【図１２】第３の実施形態における、情報記憶システムの構成の概略を示すブロック図である。
【図１３】第４の実施形態における、情報記憶システムの構成の概略を示すブロック図である。
【発明を実施するための形態】
【００１７】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図１０を用いて説明する。図１は、情報記憶システムの構成の概要を示す図である。図２は、情報記憶システムの構成を示す図である。図３は、情報記憶システムが記憶するＫＶ形式のデータの一例を示す図である。図４は、キーバリューストアが記憶するユーザデータの詳細な構成を示す図である。図５は、情報記憶システムがデータ取得処理を行う際の取得するデータの流れの一例を示す図である。図６は、データ構造変換装置がキー情報を変更する際のデータ構造の変化の一例を示す図である。図７は、複数の主キー情報を索引部に備えるＫＶペアのデータ構造の変化の一例を示す図である。図８は、情報記憶システムがデータ取得処理を行う際の流れを示すフローチャートである。図９は、データ構造変換装置がキー情報を変更する際の流れを示すフローチャートである。図１０は、データ構造変換装置によるデータ構造変換中のクライアント装置からのデータアクセスの処理を示すフローチャートである。
【００１８】
本発明の第１の実施形態では、データにアクセスするための識別情報であるキー情報（データ識別情報）と保存の対象になる保存対象データとを一対のデータとして記憶するキーバリューストア（ＫＶＳ，Ｋｅｙ−Ｖａｌｕｅ  Ｓｔｏｒｅ）を備える情報記憶システムについて説明する。
【００１９】
（構成）
図１で示すように、第１の実施形態における情報記憶システムは、クライアント装置１とデータベースシステム２とを備えて構成されている。また、クライアント装置１とデータベースシステム２とは、互いに情報を送受信可能なように接続されている。
【００２０】
クライアント装置１は、データベースシステム２に問合せを発行する装置である。具体的には、クライアント装置１は、データの取得等の問合せをデータシステム２に発行する。また、クライアント装置１は、データベースシステム２からの問合せの返却を受け付ける。クライアント装置１としては、例えばパーソナルコンピュータ等の、演算部と記憶部とを備えた一般的な情報処理装置が考えられる。
【００２１】
データベースシステム２は、データの記憶等を行うシステムである。データベースシステム２は、クライアント装置１からの問合せを受けて、データの取得、格納、削除等を行う。図２で示すように、データベースシステム２は、問合せ処理装置２１と、アクセスパス記録装置２２（検索属性値情報記憶処理部）と、データ構造変換装置２３（データ構造変換部）と、キーバリューストア２４（以下、ＫＶＳ２４とする）（データ記憶部）と、を備えて構成されている。
【００２２】
なお、本実施形態においては、上記各装置それぞれが、図示しない演算部と記憶部とを備えた、独立した装置であるとする。また、各装置の機能は、各装置がそれぞれ備える演算部が、それぞれの装置に組み込まれたプログラムを実行することにより実行する。しかしながら、本発明は、各装置の機能を備える一つ又は複数の情報処理装置により実現しても構わない。また、本発明におけるＫＶＳ２４は、一つのサーバにより構成されていても構わないし、複数のサーバにより構成されても構わない。
【００２３】
ここで、本実施形態においてデータベースシステム２（ＫＶＳ２４）に記憶されるユーザデータについて、図３、図４を参照して説明する。本実施形態におけるデータベースシステム２（ＫＶＳ２４）は、図３で示すように、表形式のデータを、キーバリュー形式（以下、ＫＶ形式とする，Ｋｅｙ  Ｖａｌｕｅ形式）のデータとして記憶する。ＫＶ形式のデータとは、保存の対象となる保存対象データ（バリュー）と、当該保存対象データを検索するための識別情報となるキー情報（データ識別情報）と、を一対のデータ（ＫＶペア，キーバリューペア）として記憶する形式のデータである。データベースシステム２（ＫＶＳ２４）は、キー情報を基に、データベースシステム２（ＫＶＳ２４）に格納されている保存対象データにアクセスすることになる。なお、後述する実データ部にデータを備える保存対象データと対となるキー情報を、特に、主キー情報とする。
【００２４】
また、図４で示すように、本実施形態における保存対象データ（バリュー）は、フラグ部と、実データ部と、索引部と、を備えて構成されている。フラグ部は、後述するデータ構造変換中のクライアント装置１からのデータアクセスの処理の際に用いられる部分である。後述するように、フラグ部を用いることで、データベースシステム２は、データに不整合が発生することを防ぎつつデータ構造の変更を行うことが可能となる。実データ部は、保存の対象となる実データを保存する部分であり、１つ又は複数の属性の値により構成される。索引部は、後述する索引情報を形成する際に用いる部分である。また、主キー情報は、当該主キー情報と対として記憶される保存対象データの実データ部が備える複数の属性の値のうち、任意の一つ（実データ部の属性の値が一つの場合は、その一つ）の値から決定される。
【００２５】
なお、本実施形態では、保存対象データ（バリュー）は、フラグ部と、実データ部と、索引部と、を備えて構成されているとした。しかしながら、本発明の実施には、必ずしもバリューを３部に分ける必要はない。フラグ部と、実データ部と、索引部と、に保存される３種類のデータが何らかの形で区別できればよい。
【００２６】
また、本実施形態におけるデータベースシステム２（ＫＶＳ２４）は、その特性上、キー情報を介してのみ、格納されている保存対象データにアクセスすることが出来る。そのため、保存対象データ（の実データ部又は索引部）を構成する複数の属性の値のうち、主キー情報として用いる属性の値を除いた属性の値で当該保存対象データにアクセスするためには、索引情報を用いる必要がある。
【００２７】
索引情報は、図３、図４で示すように、保存対象データを構成する複数の属性の値のうち、主キー情報として用いる属性を除いた属性の値からなるキー情報と、主キー情報を索引部に記憶する保存対象データと、からなる一対のデータ（ＫＶペア）である。データベースシステム２（ＫＶＳ２４）が索引情報を記憶することで、後述するように、データベースシステム２（の問合せ処理装置２１）は、索引情報を経由して、実データを保存する保存対象データを取得すること等が出来るようになる。
【００２８】
このようなＫＶ形式のデータの一例として、購入履歴を表すユーザデータを図３で示す。図３で示すように、本実施形態において一例として挙げるユーザデータは、ユーザＩＤ、名前、都道府県、商品、購入数を各属性とする表形式のデータ（実データ）を、ＫＶ形式のデータとして表したものである。また、本実施形態におけるＫＶ形式のデータは、ユーザＩＤを主キー情報としている。具体的には、本実施形態におけるデータベースシステム２（ＫＶＳ２４）は、実データを構成するユーザＩＤ、名前、都道府県、商品、購入数の各属性の値がそれぞれ、１、鈴木、東京都、ＡＡＡ、３、であり、ユーザＩＤの値である「１」を主キー情報とするＫＶ形式のデータを記憶している。また、データベースシステム２（ＫＶＳ２４）は、各属性の値がそれぞれ、２、佐藤、埼玉県、ＢＢＢ、１０であり、ユーザＩＤの値である「２」を主キー情報とするＫＶ形式のデータを記憶している。さらに、データベースシステム２は、保存対象情報の属性の値の一つである埼玉県と、埼玉県を値として持つ保存対象データの主キー情報である「２」と、を対応付けた索引情報を記憶している。また、データベースシステム２は、保存対象情報の属性の値の一つである東京都と、東京都を値として持つ保存対象データの主キー情報である「１」と、を対応付けた索引情報を記憶している。
【００２９】
つまり、キー情報と保存対象データとから構成されるＫＶペアを、「ｋｅｙ＝＞ｖａｌｕｅ」の形で表すと、図４で示すように、
「｛１＝＞フ｛｝，実｛（１，鈴木，東京都，ＡＡＡ，３）｝，索｛｝｝，」
「｛２＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
「｛埼玉県＝＞フ｛｝，実｛｝，索｛２｝｝，」
「｛東京都＝＞フ｛｝，実｛｝，索｛１｝｝」
という形で表される各データを、データベースシステム２（ＫＶＳ２４）は記憶している。なお、ここでは、フラグ部、実データ部、索引部をそれぞれフ、実、索と省略表記する。また、本来、キー情報が一意になるように、キー情報の値として属性の値（「２」）だけではなく、表の名前、及び属性の名前も含めるべきである（例えば、「購入履歴−ユーザＩＤ−２」）。しかしながら、本発明の説明においては冗長なため、以下、単に属性の値だけ記載して説明する。
【００３０】
以上が、本実施形態においてデータベースシステム２（ＫＶＳ２４）に記憶されるとするユーザデータである。以下、上記で例示したユーザデータも用いて、本実施形態の各構成について詳細に説明する。
【００３１】
まず、問合せ処理装置２１について説明する。問合せ処理装置２１は、クライアント装置１からデータの取得等の問合せを受け付けて、ＫＶＳ２４からデータの取得等を行う装置である。また、問合せ処理装置２１は、クライアント装置１からの問合せの結果をクライアント装置１に返却する装置である。
【００３２】
具体的には、問合せ処理装置２１は、クライアント装置１から問合せを受け付けると、これを解析してどのアクセスパスでＫＶＳ２４からデータ（ＫＶペア）を取得するかを決定する。ここで、アクセスパスとは、ＫＶＳ２４に保存されている保存対象データ（ＫＶペア）にアクセスするためのキー情報のことをいう。そして、問合せ処理装置２１は、決定したアクセスパスをＫＶＳ２４へ通知する。その後、問合せ処理装置２１は、ＫＶＳ２４へアクセスパスを通知した結果として、ＫＶＳ２４からＫＶペアを取得する。そして、問合せ処理装置２１は、取得したデータをクライアント装置１に送信する。なお、取得したＫＶペアが索引情報であった場合には、問合せ処理装置２１は、再度ＫＶＳ２４に問合せることになる。
【００３３】
具体的に、データベースに対する問合せ言語として一般的なＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）を用いてデータの取得を表現すると、問合せ処理装置２１は、例えば、以下のような問合せでＫＶＳ２４からＫＶペアを取得する。
「ＳＥＬＥＣＴ＊ＦＲＯＭ  購入履歴  ＷＨＥＲＥ  ユーザＩＤ＝２」
また、問合せ処理装置２１は、以下のような問合せで、ＫＶＳ２４からＫＶペアを取得する。なお、この問合せの場合は、問合せ処理装置２１は、索引情報を経由して実データを備える保存対象データにアクセスすることになる。
「ＳＥＬＥＣＴ＊ＦＲＯＭ  購入履歴  ＷＨＥＲＥ  都道府県＝'埼玉県'」
【００３４】
なお、問合せ処理装置２１は、キーバリューストア２４からＫＶペアを取得した際に、所定の場合には、当該取得したＫＶペアが表す実データをクライアント装置１に送信しないように構成することが出来る。この動作は、問合せ処理装置２１が、取得したＫＶペアのフラグ部を参照することで実現できる。具体的には、取得したＫＶペアのフラグ部にフラグが設定されている場合には、当該取得した実データをクライアント装置１に送信しないように、問合せ処理装置２１を構成する。問合せ処理装置２１のこの動作の詳細については後述する。
【００３５】
また、問合せ処理装置２１は、クライアント装置１からの問合せを受けてアクセスパスを決定して、ＫＶＳ２４からＫＶペアを取得する際に、アクセスパス記録装置２２に対して、アクセスパスを使用した記録（アクセスパス統計情報、検索属性情報）を残すように指示する。ただし、例えば、一時的な問合せであり、アクセスパス統計情報に影響を与えたくない場合も想定される。そのため、所定の条件の場合には、アクセスパス記録装置２２に対する指示を行わないように、問合せ処理装置２１を構成しても構わない。これは、例えば以下のように、特定の形式のコメントを含む場合には、アクセスパス記録装置２２に対する指示を行わないように問合せ処理装置２１を構成することで、実現可能である。
「ＳＥＬＥＣＴ＊ＦＲＯＭ  購入履歴  ＷＨＥＲＥ  ユーザＩＤ＝２／＊対象外＊／」
なお、特定の形式のコメントを含む場合にのみ、アクセスパス統計情報を更新する旨の指示を行うように、問合せ処理装置２１を構成しても構わない。
【００３６】
さらに、問合せ処理装置２１は、索引経由でアクセスする際（例えば、索引部にデータが記憶されている保存対象データをＫＶＳ２４から取得した際）に、任意の頻度（例えば１０回の索引経由のアクセスにつき１回など）でアクセスパス記録装置２２から後述するアクセスパス統計情報（検索属性情報）を取得する。つまり、問合せ処理装置２１は、索引経由のアクセスを行う場合に、任意の頻度で、ＫＶＳ２４からＫＶペアを取得するとともに、アクセスパス記録装置２２からアクセスパス統計情報を取得する。具体的には、問合せ処理装置２１は、索引と実データに対応するアクセスパス統計情報を取得する。そして、問合せ処理装置２１は、取得したデータをクライアント装置１へ送信するとともに、取得したアクセスパス統計情報を、データ構造変換装置２３へと送信する。なお、問合せ処理装置２１自身はアクセスパス統計情報を取得しないように構成しても構わない。これは、アクセスパス統計情報をデータ構造変換装置２３へと送信する旨の指示をアクセスパス記録装置２２に対して行うように、問合せ処理装置２１を構成することで実現できる。
【００３７】
このような、問合せ処理装置２１による問合せとデータ（ＫＶペア）の取得の一例を、図５で示す。図５で示すように、問合せ処理装置２１は例えば、以下のような問合せをＫＶＳ２４に対して行う。
「ＳＥＬＥＣＴ＊ＦＲＯＭ  購入履歴  ＷＨＥＲＥ  都道府県＝'埼玉県'」
すると、問合せ処理装置２１は、以下のようなＫＶペアをＫＶＳ２４から取得する。
「｛埼玉県＝＞フ｛｝，実｛｝，索｛２｝｝」
そこで、問合せ処理装置２１は、取得したＫＶペアを解析して、索引部から主キー情報「２」を取得する。そして、問合せ処理装置２１は取得した値である「２」により再度ＫＶＳ２４に問合せて、以下のＫＶペアをＫＶＳ２４から取得する。
「｛２＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
これにより、問合せ処理装置２１は、主キー情報でない属性である都道府県の値である埼玉県から、実データを取得することが出来る。
【００３８】
また、この際に、問合せ処理装置２１は、任意の頻度で、アクセスパス記録装置２２から、例えば以下のようなアクセスパス統計情報（検索属性情報）を取得する。具体的には、問合せ処理装置２１は、上述したＫＶペアを取得する際に用いたアクセスパスに対応するアクセスパス統計情報を、アクセスパス記録装置２２から取得する。
「｛ａｐ＿ｓｔａｔｓ−埼玉県＝＞１５０｝」
「｛ａｐ＿ｓｔａｔｓ−２＝＞１００｝」
ここで、「ａｐ＿ｓｔａｔｓ」はアクセスパス統計情報識別子を表す。また、「１５０」、「１００」はそれぞれのアクセスパスを利用した回数を表す。つまり、上述したアクセスパス統計情報は、アクセスパスとして埼玉県を利用した回数が１５０回である。また、アクセスパスとして２を利用した回数が１００回である。という情報を表している。
【００３９】
そして、問合せ処理装置２１は、取得した実データをクライアント装置１に送信するとともに、取得したアクセスパス統計情報をデータ構造変換装置２３に送信することになる。以上が、問合せ処理装置２１の構成である。
【００４０】
次に、アクセスパス記録装置２２について説明する。アクセスパス記録装置２２は、アクセスパス統計情報を記憶する装置である。
【００４１】
具体的には、アクセスパス記録装置２２は、問合せ処理装置２１からアクセスパスを使用した記録（アクセスパス統計情報、検索属性値情報）を残すように指示を受けると、当該アクセスパスを使用した記録を、アクセスパス統計情報として記憶する。ここで、アクセスパス統計情報は、上述したように、「｛ａｐ＿ｓｔａｔｓ−埼玉県＝＞１５０｝」などのように表される情報である。この例では、埼玉県をアクセスパスとして１５０回利用した旨が記載されている。そこで、アクセスパス記録装置２２は、問合せ処理装置２１からの指示を受けると、例えば、「｛ａｐ＿ｓｔａｔｓ−埼玉県＝＞１５１｝」のように、そのアクセスパスを使用した回数が一回増えた旨（つまり、埼玉県をアクセスパスとして１５１回利用した旨）を記憶する。これにより、アクセスパス記録装置２２は、アクセスパスを使用した回数を、記録として残すことが出来る。なお、問合せ処理装置２１が新しいアクセスパスを使用していた際には、アクセスパス記録装置２２は、当該アクセスパスに対応する新しいアクセスパス統計情報を生成して、その使用回数を１回として記憶することになる。
【００４２】
また、アクセスパス記録装置２２は、問合せ処理装置２１からの指示を受けて、当該指示に対応するアクセスパス統計情報を問合せ処理装置２１へと送信する。これにより、後述するデータ構造変換が可能になる。
【００４３】
なお、本実施形態では、アクセスパス記録装置２２は、ＫＶ形式でアクセスパス統計情報を記憶するとした。しかしながら、本発明の実施は、必ずしもＫＶ形式でアクセスパス統計情報を記憶する場合に限定されない。アクセスパス記録装置２２は、何らかの方法でアクセスパスを使用した記録を残すことが出来ればよい。また、アクセスパス統計情報をＫＶ形式で記憶する場合は、ＫＶＳ２４として用いるサーバと同一のサーバにアクセスパス統計情報を記憶しても構わないし、ＫＶＳ２４とは別のサーバにアクセスパス統計情報を記憶しても構わない。
【００４４】
また、アクセスパス記憶装置２２に対するアクセスパス統計情報の記憶指示は、上述したように、問合せ処理装置２１がクライアント装置１からの問合せを受けてアクセスパスを決定した段階（又は、問合せからアクセスパスを決定して、ＫＶＳ２４からＫＶペアを取得した段階）で行われる。そのため、問合せ処理装置２１がＫＶＳ２４から取得したＫＶペアが索引情報であった場合に、当該索引情報を基に問合せ処理装置２１がＫＶＳ２４に問合せをする際には、アクセスパス記憶装置２２はアクセスパス統計情報を更新しない。以上が、アクセスパス記録装置２２の構成である。
【００４５】
次に、データ構造変換装置２３について説明する。データ構造変換装置２３は、データ構造変換処理を行う装置である。ここで、データ構造変換処理とは、主キー情報となる属性を他の属性に変更することをいう。また、主キー情報の変更に伴って、索引情報を更新することをいう。従って、データ構造変換装置２３は、主キー情報を他の属性に書き換えて、索引情報を更新する装置である。
【００４６】
具体的には、データ構造変換装置２３は、まず、問合せ処理装置２１からアクセスパス統計情報を受け取る。すると、データ構造変換装置２３は、与えられたアクセスパス統計情報から指標値（変換指標値）を計算する。そして、データ構造変換装置２３は、計算した指標値と予め定められた閾値とを比較することで、データ構造変換を行うか否かを決定する。
【００４７】
ここで、データ構造変換装置２３による指標値の計算は、例えば以下の式を用いて行われる。
「指標値＝索引を経由したアクセスの回数／索引を経由しないアクセスの回数」
図５で示す場合、索引を経由する埼玉県をアクセスパスとするアクセスの回数は１５０回である。また、索引を経由しない「２」をアクセスパスとするアクセスの回数は１００回である。そのため、図５で示す場合では、その指標値は１．５になる。
【００４８】
また、上述した式は、指標値の値が１以上であれば、索引経由のアクセスの方が索引経由しないアクセスより多いことを意味する。そこで、例えば、データ構造変換装置２３が記憶する閾値を１に設定することで、索引経由のアクセスの方が索引経由しないアクセスより多い場合に、よりアクセスの多い属性にアクセスパスを変更するよう、データ変構造換装置２３を構成することが可能になる。
【００４９】
なお、例えば上述した式の場合、閾値を１よりも大きくすることで、索引を経由したアクセスの回数が索引を経由しないアクセスの回数よりも十分に大きい場合にのみデータ構造変換を行うように、データ構造変換装置２３を構成することができる。このように、閾値を調整することで、データ構造変換装置２３によるデータ構造変換処理の判断を調整することが可能である。従って、本発明における閾値は必ずしも１に限定されず、任意の閾値を設定することが可能である。また、指標値の求め方も、上述した式を用いる場合に限定されず、また、必ずしも指標値を求めなくても構わない。アクセスパス統計情報に基づいて、データ構造変換を行うか否かの判断をデータ構想変換装置２３が行うことが出来るように、データ構造変換装置２３が構成されていれば構わない。
【００５０】
ここで、データ構造変換装置２３により行われるデータ構造変換処理の詳細について、図６を用いて説明する。
【００５１】
まず、図６の（０）で示すように、データ構造変換装置２３によるデータ構造変換が行われる前には、ＫＶＳ２４には、以下のようなＫＶペアが記憶されているとする。
「｛埼玉県＝＞フ｛｝，実｛｝，索｛２｝｝，」
「｛２＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
ここで、主キー情報である「２」より、埼玉県をアクセスパスとする（索引を経由する）検索の方が多いため、データ構造変換を行うとデータ構造変換装置２３が判断したとする。すると、データ構造変換装置２３は、主キー情報を「２」から埼玉県に変更するデータ構造変換処理を行うことになる。
【００５２】
この場合、データ構造変換装置２３は、まず、以下のような実データを格納しているＫＶペアをＫＶＳ２４から取得する。
「｛２＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
そして、データ構造変換装置２３は、実データ部に格納されている対象データを読み取り一時的に記憶する。また、データ構造変換装置２３は、実データの読み取りと同時に、フラグ部にフラグを設定する。その後、データ構造変換装置２３は、フラグを設定したＫＶペアをＫＶＳ２４に書き戻す。その結果、ＫＶＳ２４には、以下のようなＫＶペアが記憶されることになる（図６の（１））。
「｛２＝＞フ｛○｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
【００５３】
次に、データ構造変換装置２３は、以下のような、索引を格納している（データ構造変換の対象になる）ＫＶペアをＫＶＳ２４から取得する。
「｛埼玉県＝＞フ｛｝，実｛｝，索｛２｝｝，」
そして、データ構造変換装置２３は、上述した実データを格納しているＫＶペアから読み取った実データを、新たに取得したＫＶペアの実データ部に書き込む。また、データ構造変換装置２３は、当該新たに取得したＫＶペアの索引部に記憶されているデータを削除する。そして、データ構造変換装置２３は、その結果である以下のようなＫＶペアを、ＫＶＳ２４に書き戻す（図６の（２））。
「｛埼玉県＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
【００５４】
その後、データ構造変換装置２３は、再び、以下に示すような、もともと実データを格納しており、最初にフラグ部にフラグを設定したＫＶペアをＫＶＳ２４から取得する。
「｛２＝＞フ｛○｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
そして、データ構造変換装置２３は、実データ部に格納されている実データを削除する。また、データ構造変換装置２３は、索引部に、上記で新たに実データを書き込んだＫＶペアへの参照を記憶する（新しく主キー情報となる属性の値を、索引部に書き込む）。その後、データ構造変換装置２３は、フラグを解除して、以下のようなＫＶペアをＫＶＳ２４に書き戻す。
「｛２＝＞フ｛｝，実｛｝，索｛埼玉県｝｝，」
【００５５】
このようにデータ構造変換装置２３がデータ構造変換を行うことで、ＫＶＳ２４には以下のようなデータが記憶されることになる。
「｛埼玉県＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
「｛２＝＞フ｛｝，実｛｝，索｛埼玉県｝｝，」
つまり、ＫＶＳ２４に記憶されているＫＶペアの主キー情報は埼玉県に変更されることになる。また、問合せ処理装置２１が値「２」を用いて検索を行う場合は、索引を経由することになる。以上が、データ構造変換装置２３の構成である。
【００５６】
次に、ＫＶＳ２４について説明する。ＫＶＳ２４は、上述したように、キーバリュー形式でデータを記憶するサーバである。ＫＶＳ２４は、一つまたは複数のサーバにより構成される。また、ＫＶＳ２４に記憶するデータの詳細については、上述したため省略する。
【００５７】
なお、ＫＶＳは一般に、スケーラビリティを重視するため、対応できる操作は、ＫＶペアのキーを指定してバリューを取得（ｇｅｔ）、ＫＶペアを格納（ｐｕｔ）、キーを指定してＫＶペアを削除（ｄｅｌｅｔｅ）のみである。
【００５８】
従って、ＫＶＳ２４は、問合せ処理装置２１からの指示に従って、データの格納（記憶）等の上述した処理を行うことが出来る。また、ＫＶＳ２４は、データ構造変換装置２３からの指示に従って、データの格納等の上述した処理を行うことが出来る。しかしながら、上述したように、ＫＶＳ２４は、このようなデータの取得、格納、削除以外の動作を行うことが出来ない。そのため、例えばデータ構造変換装置２３によるデータ構造変換の最中に、データ構造変換中であることを認識しないクライアントがＫＶペアを更新してしまうことが考えられる。
【００５９】
例えば、データ構造変換装置２３によるデータ構造変換処理により実データ部に格納されている対象データを読み取った後、当該ＫＶペアの実データ部から実データを削除して索引部に索引情報を書き込むまでの間に、以下のようなデータを書き込んだとする。
「｛２＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，９９）｝，索｛｝｝，」
【００６０】
この場合、上記データは正常に更新されるものの、その後行われるデータ構造変換装置２３によるデータ構造変換の処理により、上記更新データは削除されることになる（図６の（３）参照）。また、データ構造変換装置２３が実データ部から実データを読み取った後の更新であるため、データ構造変換処理により新たに主キー情報となる埼玉県と対となる実データには、上記更新データは反映されない。そのため、データの更新が成功したにもかかわらず、キー情報が埼玉県の実データが参照されるため、更新前のデータしか参照できないことになる。
【００６１】
そこで、このような問題を防ぐ為に、本実施形態では、上述したフラグ部を使用する。
具体的には、上述したように、取得したＫＶペアにフラグが設定されている場合には、当該ＫＶペアが表す実データをクライアント装置１に送信しないように、問合せ処理装置２１を構成する。
【００６２】
このように構成することで、問合せ処理装置２１は、取得したＫＶペアにフラグが設定されていなかった場合、そのままＫＶペアに含まれる実データをクライアント装置１に送信する。一方、ＫＶペアにフラグが設定されている場合には、問合せ処理装置２１は、クライアント装置１に対する実データの送信を中止する。そして、問合せ処理装置２１は、予め定められた一定時間経過の後、再度ＫＶＳ２４からＫＶペアを取得する。その結果、再度取得したＫＶペアのフラグが解除されていた場合には、問合せ処理装置２１は、当該ＫＶペアに含まれる実データをクライアント装置１に送信する。一方、フラグの解除が未だされていない場合には、問合せ処理装置２１は、クライアント装置１に対する送信を再度中止する。そして、問合せ処理装置２１は、再度予め定められた一定時間の経過を待ち、ＫＶペアの再々取得を行う。問合せ処理装置２１は、原則として、フラグの解除が確認できるまでこの処理を繰りかえることになる。ただし、再取得の回数が規定値を超えた場合には、問合せ処理装置２１は、エラーとしてＫＶペアの取得処理を終了するよう構成する。このように構成することで、意図しない参照を防ぐことが可能である。
【００６３】
また、問合せ処理装置２１は、ＫＶペアにフラグが設定されている場合には、当該ＫＶペアの実データを更新しないように構成することが出来る。この場合、問合せ処理装置２１は、取得したＫＶペアにフラグが設定されていなかった場合には、そのままＫＶペアに含まれる実データの更新を行う（実データ部の実データを上書きする）。そして、問合せ処理装置２１は、実データ更新後のＫＶペアをＫＶＳ２４に格納する。一方、ＫＶペアにフラグが設定されている場合には、問合せ処理装置２１は、実データの更新を中止する。そして、問合せ処理装置２１は、予め定められた一定時間経過の後、再度ＫＶＳ２４からＫＶペアを取得する。その結果、再度取得したＫＶペアのフラグが解除されていた場合には、問合せ処理装置２１は、当該ＫＶペアに含まれる実データの更新を行う。一方、フラグの解除が未だされていない場合には、問合せ処理装置２１は、再度実データの更新を中止する。そして、問合せ処理部２１は、再度予め定められた一定時間の経過を待ち、ＫＶペアの再々取得を行う。問合せ処理装置２１は、原則として、フラグの解除が確認できるまでこの処理を繰りかえることになる。ただし、再取得の回数が規定値を超えた場合には、問合せ処理装置２１は、エラーとしてＫＶペアの取得処理を終了するよう構成する。このように構成することで、意図しないデータの更新を防ぐことが可能である。
【００６４】
なお、本実施形態では、フラグが設定されている間は、データの参照も更新も禁止するとする。しかしながら、例えば、データの更新のみを禁止するように、問合せ処理装置２１を構成しても構わない。これは、データの更新を行おうとする場合のみフラグ部を確認するように、問合せ処理装置２１を構成することで実現できる。
【００６５】
また、本実施形態における発明は、一つのＫＶペアの索引部が複数の実データ（主キー情報）を参照している場合にも、有効に作用する。この場合、索引部の一つ一つの参照（主キー情報）毎に、上述したデータ構造変換装置２３によるデータ構造変換処置を行うことになる。
【００６６】
例えば、ある一つの索引部が２つの主キー情報を参照している場合について、図７を用いて説明する。
【００６７】
図７の（１）で示すように、データ構造変換装置２３によるデータ構造変換の前には、ＫＶＳ２４に以下のようなＫＶペアが記憶されているとする。
「｛埼玉県＝＞フ｛｝，実｛｝，索｛２，３｝｝，」
「｛２＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
「｛３＝＞フ｛｝，実｛（３，山田，埼玉県，ＣＣＣ，１５）｝，索｛｝｝，」
このように、図７の場合は、キー情報である埼玉県と対となる索引部に、ユーザＩＤ「２」、「３」の２つの情報を備えている。このような場合において、データ構造変換装置２３が、ユーザＩＤ「３」に対して、データ構造の変換を行うとする。なお、詳細なデータ変更の流れについては、上述した場合と同じであるため省略する。
【００６８】
すると、データ構造変換装置２３によるデータ構造変換の結果として、ＫＶＳ２４には、以下のようなＫＶペアが記憶されることになる（図７（２））
「｛埼玉県＝＞フ｛｝，実｛（３，山田，埼玉県，ＣＣＣ，１５）｝，索｛２｝｝，」
「｛２＝＞フ｛｝，実｛（２，佐藤，埼玉県，ＢＢＢ，１０）｝，索｛｝｝，」
「｛３＝＞フ｛｝，実｛｝，索｛埼玉県｝｝，」
【００６９】
このように、データ構造変換装置２３によるデータ構造変換の結果、埼玉県をキー情報とするＫＶペアは、実データと索引情報の両方の情報を備えることになる。つまり、埼玉県をキー情報とするＫＶペアは、ユーザＩＤ３のデータに対しては直接アクセス、ユーザＩＤ２のデータに対しては索引経由のアクセスとして扱われることになる。この後、ユーザＩＤ２のＫＶペアに対してもデータ構造変換を行うとすると、埼玉県を主キー情報とするＫＶペアは、実データ部に２行の実データを持つＫＶペアになる。このように、本実施形態における発明は、一つのＫＶペアの索引部が複数の実データ（主キー情報）を参照している場合にも、有効に作用する。
【００７０】
以上が、本実施形態における情報記憶システムの構成である。このように構成することで、情報記憶システムは、データの不整合を防ぎつつ、利用されやすいアクセスパスを備えたＫＶＳを備えることが出来る。
【００７１】
次に、本実施形態における情報記憶システムの動作を、図８乃至図１０を用いて説明する。最初に、情報記憶システムがデータ取得処理を行う際の流れについて、図８を用いて説明する。
【００７２】
（動作）
まず、クライアント装置１が、データベースシステム２に対して、問合せを発行する。すると、データベースシステム２内の問合せ処理装置２１が、クライアント装置１が発行した問合せを受信する。
【００７３】
次に、クライアント装置１からの問合せを受信した問合せ処理装置２１は、当該問合せを解析して、ＫＶＳ２４に保存されているＫＶペアにアクセスするためのキー情報であるアクセスパスを決定する（Ｓ００１）。
【００７４】
そして、問合せ処理装置２１は、決定したアクセスパスを使用して、ＫＶＳ２４からＫＶペア（データ）を取得する（Ｓ００２）。
【００７５】
また、問合せ処理装置２１は、クライアント装置１からの問合せからアクセスパスを決定して、ＫＶＳ２４からデータを取得した段階（又は、クライアント装置１からの問合せからアクセスパスを決定した段階）で、当該アクセスパスを使用した記録（アクセスパス統計情報）を残すように、アクセスパス記録装置２２に対して指示するか否か決定する（Ｓ００３）。
【００７６】
問合せ処理装置２１がアクセスパス記録装置２２に対して指示をするか否かの決定は、例えば、クライアント装置１からの指示に、特定の形式のコメントが含まれるか否かで行われる。具体的には、例えば、問合せ処理装置２１は、クライアント装置１からの指示に特定の形式のコメントを含む場合には、アクセスパス記録装置２２に対してアクセスパス統計情報を更新するよう指示をしない。一方で、問合せ処理装置２１は、クライアント装置１からの指示に特定の形式のコメントを含まない場合には、アクセスパス記録装置２２に対して指示を行うことになる。
【００７７】
そして、問合せ処理装置２１がアクセスパス記録装置２２に対してアクセスパス統計情報を更新する旨の指示をした場合には、当該指示を、アクセスパス記録装置２２が受信する。そして、アクセスパス記録装置２２は、アクセスパスを使用した旨をアクセスパス統計情報に記録する（Ｓ００４）。アクセスパス記録装置２２によるアクセスパス統計情報の更新は、例えば、アクセスパスを使用した回数を更新することで行われる。そして、アクセスパス記録装置２２は、アクセスパス統計情報を更新した旨を、問合せ処理装置２１に通知する。
【００７８】
一方、問合せ処理装置２１がアクセスパス記録装置２２に指示を行わなかった場合、又は、アクセスパス記録装置２２からアクセスパス統計情報を更新した旨の通知を受け取った後、問合せ処理装置２１は、ＫＶＳ２４から取得したＫＶペアが索引情報を含むか否かの判断を行う（Ｓ００５）。なお、アクセスパス記録装置２２に対して上述した指示を行った後、その指示の完了の通知を待たずに、取得したＫＶペアが索引情報を含むか否かの判断を行うように、問合せ処理装置２１を構成してもよい。
【００７９】
取得したＫＶペアが索引情報を含むか否かの判断は、問合せ処理装置２１が、取得したＫＶペアの索引部を確認することで行われる。具体的には、ＫＶペアの索引部にデータが格納されている場合、問合せ処理装置２１は、当該取得したＫＶペアは索引情報を含むと判断する。すると、問合せ処理装置２１は、当該ＫＶペアの索引部に格納されている主キー情報をアクセスパスとして、再度、ＫＶＳ２４からＫＶペア（データ）を取得する（Ｓ００６）これにより、問合せ処理装置２１は、索引データから実データを取得することが出来る。
【００８０】
そして、問合せ処理装置２１は、索引経由で実データにアクセスした場合に、アクセスパス記録装置２２からアクセスパス統計情報を取得するか否か決定する（Ｓ００７）。問合せ処理装置２１によるアクセスパス統計情報を取得するか否かの決定は、例えば、検索経由のアクセスを行った回数に基づいて決定される。
【００８１】
具体的には、例えば、問合せ処理装置２１は、１０回の検索経由のアクセスにつき１回、
アクセスパス記録装置２２からアクセスパス統計情報を取得する旨の決定をする。すると、問合せ処理装置２１は、アクセスパス記録装置２２に問い合わせて、アクセスパス記録装置２２から、索引と実データに対応するアクセスパス統計情報を取得する（Ｓ００８）。そして、当該取得したアクセスパス統計情報を、データ構造変換装置２３に送信する。
【００８２】
そして、アクセスパス統計情報を取得したデータ構造変換装置２３は、当該アクセスパス統計情報に基づいて、データ構造変換処理を行う（Ｓ００９）。なお、データ構造変換装置２３がデータ構造変換処理を行う際の詳細な流れについては、後述する。
【００８３】
一方、問合せ処理装置２１がＫＶＳ２４から取得したＫＶペアが索引情報を含まなかった場合、問合せ処理装置２１は、取得したＫＶペアが表す実データをクライアント装置１に返却する（Ｓ０１０）。問合せ処理装置２１が索引経由で実データを取得してアクセスパス統計情報を取得しなかった場合、又は、データ構造変換装置２３によるデータ構造変換処理が終了した後も、同様に、問合せ処理装置２１は、取得した実データをクライアント装置１に返却する。なお、この場合も、索引経由で実データを取得した段階で、データ構造変換装置２３によるデータ構造変換処理の終了を待たずに、実データをクライアント装置に送信するように問合せ処理装置２１を構成しても構わない。
【００８４】
このような流れにより、情報記憶システムは、データ取得の処理を行う。次に、図９を用いて、データ構造変換装置２３が主キー情報を変更する際の流れ（データ構造変換処理の流れ）について説明する。
【００８５】
上述したように、データ構造変換装置２３は、問合せ処理部２１から、アクセスパス統計情報を取得する。すると、データ構造変換装置２３は、当該取得したアクセスパス統計情報を用いて、指標値（変換指標値）を計算する（Ｓ０２１）。
【００８６】
次に、データ構造変換装置２３は、当該計算した指標値と、データ構造変換装置２３に予め定められた閾値とを比較することで、当該指標値が基準値以上であるか否かの判断を行う（Ｓ０２２）。
【００８７】
そして、指標値が閾値を下回っていた場合、データ構造変換装置２３はデータ構造変換処理を行わずに、その処理を終了する（Ｓ０２２）。
【００８８】
一方、指標値が閾値を上回っていた場合、データ構造変換装置２３は、データ構造変換処理を行う（Ｓ０２２）。
【００８９】
具体的にはまず、データ構造変換装置２３は、ＫＶＳ２４から実データを含むＫＶペアを取得する。そして、データ構造変換装置２３は、取得したＫＶペアから、実データ部に格納されている実データ（対象データ）を読み取る。また、データ構造変換装置２３は、実データの読み取りと同時に、フラグ部にフラグを設定する。その後、データ構造変換装置２３は、フラグを設定したＫＶペアを、ＫＶＳ２４に書き戻す（Ｓ０２３）。
【００９０】
次に、データ構造変換装置２３は、ＫＶＳ２４から索引情報を含むＫＶペアを取得する。そして、データ構造変換装置２３は、Ｓ０２３で読み取った実データを、当該取得した索引情報を含むＫＶペアの実データ部に書き込む。また、データ構造変換装置２３は、当該取得した索引情報を含むＫＶペアの索引部に格納されているデータを削除する。その後、データ構造変換装置２３は、実データを書き込んで索引部のデータを削除したＫＶペアを、ＫＶＳ２４に書き戻す（Ｓ０２４）。
【００９１】
続いて、データ構造変換装置２３は、Ｓ０２３でＫＶＳ２４に書き戻した、フラグを設定したＫＶペアをＫＶＳ２４から再度取得する。そして、データ構造変換装置２３は、当該取得したＫＶペアの実データ部に格納されている実データを削除する。また、データ構造変換装置２３は、当該取得したＫＶペアの索引部に、Ｓ０２４で実データを書き込んだＫＶペアへの参照を格納する（新しく主キー情報となる属性の値を、索引部に格納する）。その後、データ構造変換装置２３は、フラグを解除して、フラグ解除後のＫＶペアを、ＫＶＳ２４に書き戻す（Ｓ０２５）
【００９２】
そして、データ構造変換装置２３は、このような動作の後、そのデータ構造変換処理を終了する。データ構造変換装置２３がこのようにデータ構造変換処理を行うことで、データ構造変換装置２３は、ＫＶＳ２４に格納されているＫＶペアの主キー情報を変更することが出来る。
【００９３】
次に、図１０を用いて、問合せ処理装置２１がデータの不整合の発生を防ぐ為に行う処理の流れについて説明する。上述したように、この動作は、データ構造変換中のデータの更新などによるデータの不整合発生などの問題を防ぐために必要となる。
【００９４】
まず、上述したように、問合せ処理装置２１は、クライアント装置１からの問合せに基づいてアクセスパスを決定し、ＫＶＳ２４からＫＶペアを取得する（Ｓ０３１）。
【００９５】
続いて、問合せ処理装置２１は、取得したＫＶペアのフラグ部を確認して、当該ＫＶペアにフラグが設定されているか否か判断する（Ｓ０３２）。
【００９６】
そして、問合せ処理装置２１は、ＫＶペアにフラグが設定していなかった場合には、当該ＫＶペアに含まれる実データを、クライアント装置１に返却する（Ｓ０３３）。
【００９７】
一方、問合せ処理装置２１は、ＫＶペアにフラグが設定されていた場合、当該ＫＶペアに含まれる実データのクライアント装置１に対する返却を中止する。そして、問合せ処理装置２１は、予め定められた一定時間待ったのち、再度、ＫＶＳ２４からＫＶペアを取得する（Ｓ０３４）。その後、問合せ処理装置２１は、再度取得したＫＶペアのフラグ部を確認してフラグが設定されているかの判断を行う。
【００９８】
つまり、問合せ処理装置２１は、一定の間隔でＫＶＳ２４からＫＶペアを取得し、フラグが解消されたＫＶペアを取得した段階で、当該フラグが解消したＫＶペアに含まれる実データをクライアント装置１に返却することになる。そのため、問合せ処理装置２１は、原則としては、ＫＶＳ２４からフラグが解消されたＫＶペアを取得することが出来るまで、ＫＶペアの再取得を繰りかえす。ただし、問合せ処理装置２１は、ＫＶＳ２４からＫＶペアを取得する累積回数が予め定められた規定値を超えた場合は、エラーとして処理を行う。そして、問合せ処理装置２１は、ＫＶＳ２４からのＫＶペアの取得処理を終了する（Ｓ０３５）。
【００９９】
また、図１０で示すデータの不整合を防ぐ為に行う処理は、データを更新する際にも、その更新処理の前段階として行われる。具体的には、データの更新は、ＫＶＳ２４から問合せ処理装置２１がＫＶペアを取得して、当該取得したＫＶペアの実データ部を、問合せ処理装置２１が書き換えることで行われる。そこで、問合せ処理装置２１はＫＶＳ２４からＫＶペアを取得した段階で、上述した処理を行う。そして、問合せ処理装置２１は、ＫＶペアにフラグが設定されていなかった場合に、実データ部の書き換えを行うことになる。
【０１００】
以上が、問合せ処理装置２１がデータの不整合を防ぐ為に行う処理の流れである。このような動作により、データ構造変換装置２３がデータ構造変換処理を行う際に、データの不整合が発生することを防ぐことが出来る。
【０１０１】
このように、本実施形態の情報記憶システムは、アクセスパス記録装置と、データ構造変換装置と、を備える。このように構成することで、情報記憶システムは、アクセスパス記録装置が記憶するアクセスパス統計情報に基づいて、データ構造変換処理を行うことが出来るようになる。その結果、情報記憶システムは、よりアクセスの頻度の高いアクセスパスを、索引経由のアクセスから直接アクセスできるよう変更することが可能になり、アクセス性能の向上を実現することが出来る。１つのＫＶペアを取得するための時間はミリ秒単位と非常に小さいものであるが、データ件数が１００万、１０億となると、その効果は非常に大きいものになる。
【０１０２】
また、本実施形態のＫＶＳに記憶されているＫＶペアは、フラグ部を備えている。このようにＫＶペアを構成することで、情報記憶システムは、データ構造変換処理の間ＫＶペアにフラグを設定することが可能になる。その結果、情報記憶システムは、データ構造変換処理の間当該データ構造変換処理の対象になるＫＶペアの参照などを防ぐ事が可能になり、データの不整合の発生を防ぐことが可能になる。
【０１０３】
＜実施形態２＞
次に、本発明の第２の実施形態を、図１１を用いて説明する。図１１は、本実施形態におけるデータ構造変換処理の流れを示すフローチャートである。
【０１０４】
（構成）
本実施形態における情報記憶システムは、第１の実施形態における情報記憶システムとほぼ同様の構成を備えている。つまり、クライアント装置１と、データベースシステム２と、を備えている。また、データベースシステム２は、問合せ処理装置２１と、アクセスパス記録装置２２と、データ構造変換装置２３と、ＫＶＳ２４と、を備えている。これら各装置の構成は、第１の実施形態とほぼ同様である。そのため、第１の実施形態と同様の構成については、その説明を省略する。
【０１０５】
以下、本実施形態における特徴的な部分について説明する。本実施形態では、アクセスパス記録装置２２に記憶されるアクセスパス統計情報に特徴がある。そのため、その部分を重点的に説明する。
【０１０６】
本実施形態におけるアクセスパス統計情報は、第１の実施形態と同様に、アクセスパスを使用した記録（アクセスパス統計情報、検索属性情報）を記憶する。そして、本実施形態におけるアクセスパス統計情報は、アクセスパスを使用した記録に追加して、当該アクセスパスを使用した日時を構造変換日時情報として記録することが出来るように構成されている。
【０１０７】
このため、本実施形態におけるアクセスパス記録装置２２及びデータ構造変換装置２３は、データ構造変換装置２３がデータ構造変換処理を行った際に、当該データ構造変換処理を行った日時を、アクセスパス記録装置２２が記憶するアクセスパス統計情報に記憶することが出来るように構成される。
【０１０８】
具体的には、データ構造変換装置２３は、データ構造変換処理の後、アクセスパス記録装置２２に対して、当該データ構造変換処理に対応するアクセスパス統計情報に構造変換日時情報を記憶するように指示する。そして、アクセスパス記録装置２２は、この指示を受けて、アクセスパス統計情報に、データ構造変換処理を行った日時についての情報である構造変換日時情報を記憶することになる。
【０１０９】
また、本実施形態におけるデータ構造変換装置２３は、データ構造変換処理を行う前に、構造変換日時情報と、データ構造変換処理を行おうとする現在の日時を表す日時情報と、を確認するように構成される。そして、データ構造変換装置２３は、データ構造変換処理を行おうとする現在の日時が、構造変換日時情報が示す日時から予め定められた期間分経過していないと判断した場合、データ構造変換処理を行わないように判断する。一方、データ構造変換装置２３は、データ構造変換処理を行おうとする現在の日時が、構造変換日時情報が示す日時から予め定められた期間分経過していると判断した場合、アクセスパス統計情報から指標値の計算を始める。このようにデータ構造変換装置２３を構成することで、データ構造の頻繁な変換を防ぐ事が出来る。
【０１１０】
なお、構造変換日時情報として記憶する日時の確認は、データ構造変換装置２３が行うように構成しても構わないし、アクセスパス記録装置２２が行うように構成しても構わない。
【０１１１】
また、データ構造変換装置２３からアクセスパス記録装置２２に対する、構造変換日時情報を記憶する旨の指示は、問合せ処理装置２１を介して行うように構成しても構わない。この場合、データ構造変換装置２３が問合せ処理装置２１に対して、構造変換日時情報についての情報を送信した後、問合せ処理装置２１がアクセスパス記録装置２２に対して、構造変換日時情報を記憶する旨の指示を行うことになる。
【０１１２】
以上が、本実施形態における情報記憶システムの構成である。次に、図１１を用いて、本実施形態における、データ構造変換装置２３が主キー情報を変更する際の流れ（データ構造変換処理の流れ）について説明する。
【０１１３】
まず、データ構造変換装置２３は、問合せ処理装置２１から、アクセスパス統計情報を取得する。すると、データ構造変換装置２３は、当該アクセスパス統計情報に記憶されている構造変換日時情報と、データ構造変換処理を行おうとする現在の日時についての日時情報と、を確認し、以前のデータ構造変換処理から所定の期間経過しているかどうか判断する（Ｓ０４１）。
【０１１４】
そして、データ構造変換装置２３は、構造変換日時情報と、日時情報と、から以前のデータ構造変換処理から所定の期間経過していないと判断した場合、データ構造変換処理を行わずに、その処理を終了する。
【０１１５】
一方、データ構造変換装置２３は、構造変換日時情報と、日時情報と、から以前のデータ構造変換処理から所定の期間経過していると判断した場合、アクセスパス統計情報を用いて指標値を計算する（Ｓ０４２）。
【０１１６】
続いて、データ構造変換装置２３は、指標値と閾値とを比較した後、データ構造変換処理を行う（Ｓ０４３〜Ｓ０４７）。このデータ構造変換処理の詳しい流れは、第一の実施形態で示した場合と同じである。そのため、データ構造変換処理の詳しい流れについては、省略する。
【０１１７】
そして、データ構造変換装置２３は、データ構造変換処理を行った場合には、当該データ構造変換処理を行った日時を構造変換日時情報として記憶するように、アクセスパス記録装置２２に対して指示する（Ｓ０４８）
【０１１８】
データ構造変換装置２３がこのようにデータ構造変換処理を行うことで、データ構造の頻繁な変更を防ぐことが出来る。なお、本実施形態では、データ構造変換処理の最初の段階で、データ構造変換装置２３が構造変換日時情報を確認するとした。しかしながら、データ構造変換装置２３による構造変換日時情報の確認は、例えば、アクセスパス統計情報から指標値を計算した後に行う、指標値と閾値を比較した後で行う、などであっても構わない。
【０１１９】
このように、本実施形態の情報記憶システムは、アクセスパス統計情報に構造変換日時情報を備える。このように構成することで、情報記憶システムは、以前にデータ構造変換処理を行った日時と、現在データ構造変換処理を行おうとする日時とを確認した上でデータ構造変換処理をすることが出来るようになる。その結果、前回のデータ構造変換処理から一定の期間経過していない場合は、データ構造変換処理を行わないように情報記憶システムを構成することが出来るようになり、データ構造の頻繁な変換を防ぐことが出来るようになる。
【０１２０】
＜実施形態３＞
次に、本発明の第３の実施形態を、図１２を用いて説明する。図１２は、本実施形態における情報記憶システムの構成の概略を示すブロック図である。
【０１２１】
（構成）
第３の実施形態では、ＫＶ形式でデータを記憶する情報記憶システムについて説明する。なお、本実施形態では、情報記憶システムの概略を説明する。
【０１２２】
図１２で示すように、本実施形態における情報記憶システム３は、データ記憶部３１と、データ構造変換部３２と、を備えている。
【０１２３】
データ記憶部３１は、複数の属性からなる保存対象データと、保存対象データを構成する複数の属性のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶する部分である。本実施形態における情報記憶システム３は、データ記憶部３１に、保存しようとする保存対象データを記憶させておくことになる。また、データ記憶部３１に記憶されている保存対象データは、データ識別情報を用いて検索することになる。
【０１２４】
データ構造変換部３２は、データ記憶部３１が記憶する一対のデータのうちデータ識別情報となる属性を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性に変更する部分である。データ構造変換部３２を備えることで、情報記憶システム３は、データ識別情報を変更することが可能になる。
【０１２５】
また、本実施形態における情報記憶システム３は、データ構造変換部３２がデータ識別情報となる属性を変更している間、データ構造変換部３２による変更の対象となる、一対のデータの参照を禁止することが出来るように構成する。
【０１２６】
また、本実施形態における情報記憶システム３は、データ構造変換部３２がデータ識別情報となる属性を変更している間、データ構造変換部３２による変更の対象となる、一対のデータの更新を禁止することが出来るように構成する。
【０１２７】
このように、本実施形態における情報記憶システム３は、データ記憶部３１と、データ構造変換部３２と、を備える。また、本実施形態における情報記憶システム３は、データ構造変換部３２がデータ識別情報となる属性を変更している間、データ構造変換部３２による変更の対象となる、一対のデータの参照、更新を禁止することが出来るように構成される。このように構成することで、本実施形態における情報記憶システム３は、データ識別情報を変更することが出来るようになる。また、データ識別情報を変更している間、変更の対象となるデータの参照、更新を禁止することが出来るようになる。その結果、本実施形態における情報記憶システム３は、データ識別情報の変更によるデータの不整合をふせぎつつ、データ識別情報の変更を行うことが出来るようになる。
【０１２８】
なお、上述した情報記憶システムにより実行される情報記憶方法は、複数の属性からなる保存対象データと、保存対象データを構成する複数の属性のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶する情報処理装置において、一対のデータのうちデータ識別情報となる属性を、当該一対のデータとして記憶される保存対象データを構成する他の属性に変更し、データ識別情報となる属性を変更している間、一対のデータへの参照を禁止する、という情報記憶方法である。このような情報記憶方法であっても、上述した情報記憶システムと同様の効果を奏するため、本発明の目的を達成することが出来る。
【０１２９】
また、複数の属性の値からなる保存対象データと、保存対象データを構成する複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶するデータ記憶手段を備えた情報処理装置に、データ記憶手段が記憶する一対のデータのうちデータ識別情報となる属性の値を、当該一対のデータとして記憶される保存対象データを構成する他の属性の値に変更するデータ構造変換手段を実現させ、データ構造変換手段がデータ識別情報となる属性の値を変更している間、一対のデータへの参照を禁止する機能を有するプログラムを組み込むことによっても、上述した情報記憶システムと同様の効果を奏するため、本発明の目的を達成することが出来る。
【０１３０】
上述した構成を有する情報記憶方法、プログラム、であっても、上記情報記憶システムと同様の作用を有するために、上述した本発明の目的を達成することが可能である。
【０１３１】
＜実施形態４＞
次に、本発明の第４の実施形態を、図１３を用いて説明する。図１３は、本実施形態における情報記憶システムの構成の概略を示すブロック図である。
【０１３２】
（構成）
第４の実施形態では、ＫＶ形式でデータを記憶する情報記憶システムについて説明する。なお、本実施形態では、情報記憶システムの概略を説明する。
【０１３３】
図１３で示すように、本実施形態における情報記憶システム４は、データ記憶部４１と、データ構造変換部４２と、検索属性情報記憶部４３と、を備えている。また、図示しないデータ検索部を備えている。なお、データ記憶部４１の構成は、第３の実施形態で説明したデータ記憶部３１の構成と同一である。そのため、データ記憶部４１についての詳しい説明は省略する。また、データ構造変換部４２は、第３の実施形態で説明したデータ構造変換部３２の構成と同一の構成を備えている。そのため、データ構造変換部３２と同一の部分については、データ構造変換部４２についての説明を省略する。
【０１３４】
検索属性情報記憶部４３は、データ検索部が、データ記憶部から保存対象データを検索する際に用いた、当該保存対象データを構成する属性の一つである検索属性を、当該検索属性により検索された保存対象データと対応付けて、検索属性情報として記憶する部分である。
【０１３５】
また、本実施形態におけるデータ構造変換部４２は、検索属性情報記憶部が記憶する検索属性情報に基づいて、データ識別情報となる属性を変更するように構成する。
【０１３６】
このように、本実施形態における情報記憶システム４は、データ記憶部４１と、データ構造変換部４２と、検索属性情報記憶部４３と、を備える。このように構成することで、本実施形態における情報記憶システム４は、検索属性情報に基づいて、データ識別情報を変更することが出来るようになる。その結果、本実施形態における情報記憶システム４は、より利用されやすいデータ識別情報に適した構造に、データ構造を変更することが可能になる。
【０１３７】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報記憶システムなどの概略を説明する。但し、本発明は、以下の構成に限定されない。
【０１３８】
（付記１）
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶するデータ記憶部と、
前記データ記憶部が記憶する前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値の一つに変更するデータ構造変換部と、を備え、
前記データ構造変換部が前記データ識別情報となる前記属性の値を変更している間、前記データ構造変換部による変更の対象となる、前記一対のデータの参照を禁止する、
情報記憶システム。
【０１３９】
この構成によると、情報記憶システムは、データ記憶部と、データ構造変換部と、を備える。また、情報記憶システムは、データ構造変換部がデータ識別情報となる属性を変更している間、データ構造変換部による変更の対象となる、一対のデータの参照を禁止するよう構成される。このような構成により、情報記憶システムは、データ識別情報を変更することが出来るようになる。また、情報記憶システムは、データ識別情報を変更している間、変更の対象となるデータの参照を禁止することが出来るようになる。その結果、情報記憶システムは、データ識別情報の変更によるデータの不整合を防ぎつつ、データ識別情報の変更を行うことが出来るようになる。
【０１４０】
（付記２）
付記１に記載の情報記憶システムであって、
前記データ構造変換部が前記データ識別情報となる前記属性の値を変更している間、前記データ構造変換部による変更の対象となる、前記一対のデータの更新を禁止する、
情報記憶システム。
【０１４１】
この構成によると、情報記憶システムは、データ構造変換部がデータ識別情報となる属性を変更している間、データ構造変換部による変更の対象となる、一対のデータの更新を禁止するよう構成される。このような構成により、情報記憶システムは、データ識別情報を変更している間、変更の対象となるデータの更新を禁止することが出来るようになる。その結果、情報記憶システムは、データ識別情報の変更によるデータの不整合をより確実に防ぎつつ、データ識別情報の変更を行うことが出来るようになる。
【０１４２】
（付記３）
付記１又は２に記載に情報記憶システムであって、
前記データ記憶部から前記保存対象データを検索する際に用いた、当該保存対象データを構成する前記属性の値の一つである検索属性値を、当該検索属性値により検索された前記保存対象データと対応付けて、検索属性値情報として記憶する検索属性値情報記憶処理部を備え、
前記データ構造変換部は、前記検索属性値情報記憶処理部が記憶する前記検索属性値情報に基づいて、前記データ識別情報となる前記属性の値を変更する、
情報記憶システム。
【０１４３】
この構成によると、情報記憶システムは、データ記憶部と、データ構造変換部と、に追加して、検索属性情報記憶部を備える。このような構成により、データ構造変換部は、検索属性情報に基づいて、データ識別情報を変更することが出来るようになる。その結果、データ構造変換部は、より利用されやすいデータ識別情報に適した構造に、データ構造を変更することが可能になる。
【０１４４】
（付記４）
付記３に記載の情報記憶システムであって、
前記データ構造変換部は、前記検索属性値情報に基づいて変換指標値を算出し、当該変換指標値が予め定められた閾値を超える場合に、前記データ識別情報となる前記属性の値を変更する、
情報記憶システム。
【０１４５】
この構成によると、データ構造変換部は、検索属性情報に基づいて変換指標値を算出し、当該変換指標値が予め定められた閾値を超える場合に、データ識別情報となる属性を変更するよう構成する。このような構成により、データ構造変換部は、変換指標値が閾値を超える場合に、データ識別情報を変更することが出来るようになる。その結果、データ構造変換部は、より利用されやすいデータ識別情報に適した構造に、データ構造を変更することが可能になる。
【０１４６】
（付記５）
付記４に記載の情報記憶システムであって、
前記検索属性値情報記憶部は、前記検索属性値情報に含めて、前記データ識別情報である前記検索属性値を用いて前記保存対象データを検索した回数と、前記データ識別情報でない前記検索属性値を用いて前記保存対象データを検索した回数と、を前記検索属性値毎に前記保存対象データと対応付けて記憶する、
情報記憶システム。
【０１４７】
この構成によると、検索属性情報記憶部は、検索属性情報として、データ識別情報である検索属性を用いて保存対象データを検索した回数と、データ識別情報でない検索属性を用いて保存対象データを検索した回数と、を検索属性毎に保存対象データと対応付けて記憶する。このような構成により、データ構造変換部は、データ識別情報である検索属性を用いて保存対象データを検索した回数と、データ識別情報でない検索属性を用いて保存対象データを検索した回数と、に基づいて、データ識別情報を変更することが出来るようになる。その結果、データ構造変換部は、より利用されやすいデータ識別情報に適した構造に、データ構造を変更することが可能になる。
【０１４８】
（付記６）
付記５に記載の情報記憶システムであって、
前記データ構造変換部は、前記データ識別情報でない前記検索属性値を用いて前記保存対象データを検索した回数が、前記データ識別情報である前記検索属性値を用いて前記保存対象データを検索した回数に占める割合を前記変換指標値として算出し、当該変換指標値が示す割合が前記閾値を超える場合に、前記データ識別情報となる前記属性の値を、前記保存対象データを検索した前記検索属性値に変更する、
情報記憶システム。
【０１４９】
（付記７）
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶する情報処理装置により、
前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値に変更し、
前記データ識別情報となる前記属性の値を変更している間、前記一対のデータへの参照を禁止する、
情報記憶方法。
【０１５０】
（付記８）
付記７に記載の情報記憶方法において、
前記保存対象データを検索する際に用いた、当該保存対象データを構成する前記属性の値の一つである検索属性値を、当該検索属性値により検索された前記保存対象データと対応付けて、検索属性値情報として記憶し、
前記検索属性値情報に基づいて、前記データ識別情報となる前記属性の値を変更する、
情報記憶方法
【０１５１】
（付記９）
複数の属性の値からなる保存対象データと、前記保存対象データを構成する前記複数の属性の値のうち、任意の一つからなるデータ識別情報と、を一対のデータとして記憶するデータ記憶手段を備えた情報処理装置に、
前記データ記憶手段が記憶する前記一対のデータのうち前記データ識別情報となる前記属性の値を、当該一対のデータとして記憶される前記保存対象データを構成する他の属性の値に変更するデータ構造変換手段を実現させ、
前記データ構造変換手段が前記データ識別情報となる前記属性の値を変更している間、前記一対のデータへの参照を禁止する機能を有する、
プログラム。
【０１５２】
（付記１０）
付記９に記載のプログラムであって、
前記データ記憶手段から前記保存対象データを検索する際に用いた、当該保存対象データを構成する前記属性の値の一つである検索属性値を、当該検索属性値により検索された前記保存対象データと対応付けて、検索属性値情報として記憶する検索属性値情報記憶処理手段を実現させ、
前記データ構造変換手段は、前記検索属性値情報記憶処理手段が記憶する前記検索属性値情報に基づいて、前記データ識別情報となる前記属性の値を変更する機能を有する、
プログラム。
【符号の説明】
【０１５３】
１  クライアント装置
２  データベースシステム
２１  問合せ処理装置
２２  アクセスパス記録装置
２３  データ構造変換装置
２４  キーバリューストア（ＫＶＳ）
３  情報記憶システム
３１  データ記憶部
３２  データ構造変換部
４  情報記憶システム
４１  データ記憶部
４２  データ構造変換部
４３  検索属性情報記憶部
【図１】
2015069269.tif 000003
【図２】
2015069269.tif 000004
【図３】
2015069269.tif 000005
【図４】
2015069269.tif 000006
【図５】
2015069269.tif 000007
【図６】
2015069269.tif 000008
【図７】
2015069269.tif 000009
【図８】
2015069269.tif 000010
【図９】
2015069269.tif 000011
【図１０】
2015069269.tif 000012
【図１１】
2015069269.tif 000013
【図１２】
2015069269.tif 000014
【図１３】
2015069269.tif 000015