(57)【要約】【課題】再編成処理を必要としないデータ管理を実現することを目的とする。【解決手段】データ管理装置１０は、キーが割り当てられた複数のレコードを記憶したストレージ１３を用いてデータ管理を行う。データ管理装置１０は、指定データの挿入命令を受け付けると、ストレージ１３に記憶された複数のレコードのうち未使用のレコードに割り当てられたキーを指定して、レコードのデータ項目の値を指定データに更新する。また、データ管理装置１０は、指定レコードの削除命令を受け付けると、前記指定レコードに割り当てられたキーを指定して、レコードのデータ項目の値を初期値に更新する。【選択図】図１
2018018199.tif 000002
【特許請求の範囲】
【請求項１】
キーが割り当てられた複数のレコードを記憶した記憶装置を用いてデータ管理を行うデータ管理プログラムであり、
指定データの挿入命令を受け付けると、前記記憶装置に記憶された複数のレコードのうち未使用のレコードに割り当てられたキーを指定して、レコードのデータ項目の値を指定データに更新するデータ挿入処理
をコンピュータに実行させるデータ管理プログラム。
【請求項２】
前記データ管理プログラムは、さらに、
指定レコードの削除命令を受け付けると、前記指定レコードに割り当てられたキーを指定して、レコードのデータ項目の値を初期値に更新するデータ削除処理
をコンピュータに実行させる請求項１に記載のデータ管理プログラム。
【請求項３】
前記データ削除処理では、指定レコードの削除命令を受け付けたタイミングと別のタイミングで、レコードのデータ項目の値を初期値に更新する
請求項２に記載のデータ管理プログラム。
【請求項４】
前記データ管理プログラムは、さらに、
前記記憶装置に記憶された複数のレコードそれぞれに割り当てられたキーを、レコードが未使用か否かを示す状態とともに管理するキー管理処理
をコンピュータに実行させ、
前記データ挿入処理では、前記キー管理処理によって管理された状態が未使用のキーを指定して、レコードのデータ項目の値を指定データに更新する
請求項２又は３に記載のデータ管理プログラム。
【請求項５】
前記キー管理処理では、前記データ削除処理によってデータ項目の値が前記初期値に更新されたレコードの状態を、未使用に変更する
請求項４に記載のデータ管理プログラム。
【請求項６】
前記キー管理処理では、前記キーを複数に分散させて管理する
請求項４又は５に記載のデータ管理プログラム。
【請求項７】
前記キー管理処理では、未使用のキーを複数のキューに分散して蓄積しておき、
前記データ挿入処理では、前記複数のキューのいずれかのキューに蓄積されたキーを指定して、レコードのデータ項目の値を指定データに更新する
請求項４から６までのいずれか１項に記載のデータ管理プログラム。
【請求項８】
前記キー管理処理では、各キューに蓄積されたキーが減少すると、設定数になるまでキューにキーを補充する
請求項７に記載のデータ管理プログラム。
【請求項９】
前記キー管理処理では、前記状態を未使用から使用中に変更してから基準時間経過しても前記状態が使用中のままの場合には、前記状態を未使用に変更する
請求項４から８までのいずれか１項に記載のデータ管理プログラム。
【請求項１０】
キーが割り当てられた複数のレコードを記憶した記憶装置を用いてデータ管理を行うデータ管理装置であり、
指定データの挿入命令を受け付けると、前記記憶装置に記憶された複数のレコードのうち未使用のレコードに割り当てられたキーを指定して、レコードのデータ項目の値を指定データに更新するデータ挿入部
を備えるデータ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データベースにおけるデータの管理技術に関する。
【背景技術】
【０００２】
データベースでは、データの挿入及び削除が繰り返し行われると、記憶領域の断片化が起こり、データへのアクセス性能が悪くなる。そのため、データの挿入及び削除がある程度行われると、再編成処理を実行し、記憶領域の断片化を修復する必要がある。
しかし、再編成処理とアプリケーションプログラムとの競合が発生すると、再編成処理が中断され、データへのアクセス性能が悪い状態が継続してしまう。その結果、データベースを用いたアプリケーションプログラムの動作が遅くなり、アプリケーションプログラムの利用者の利便性が低下してしまう。また、再編成処理の実行中にはアプリケーションプログラムによるアクセスを禁止するという方法も考えられる。しかし、この場合、再編成処理の実行中にはアプリケーションプログラムの動作が制限されてしまい、アプリケーションプログラムの利用者の利便性が低下してしまう。
【０００３】
特許文献１には、アプリケーションプログラムに対するアクセスの禁止期間を短くしつつ確実に再編成処理を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２２６４５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、アプリケーションプログラムに対するアクセスの禁止期間が短くなるものの、依然として再編成処理により利用者の利便性は低下してしまう。
この発明は、再編成処理を必要としないデータ管理を実現することを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るデータ管理プログラムは、
キーが割り当てられた複数のレコードを記憶した記憶装置を用いてデータ管理を行うデータ管理プログラムであり、
指定データの挿入命令を受け付けると、前記記憶装置に記憶された複数のレコードのうち未使用のレコードに割り当てられたキーを指定して、レコードのデータ項目の値を指定データに更新するデータ挿入処理
をコンピュータに実行させる。
【発明の効果】
【０００７】
この発明では、キーが割り当てられた複数のレコードを記憶した記憶装置を用い、データの更新によりデータの挿入を実現する。そのため、データの挿入により記憶領域が断片化することがなく、再編成処理が必要ない。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るデータ管理装置１０の構成図。
【図２】実施の形態１に係るデータ管理装置１０の動作の概要説明図。
【図３】実施の形態１に係るデータ管理装置１０の動作の概要説明図。
【図４】実施の形態１に係るデータ管理装置１０のキー管理の説明図。
【図５】実施の形態１に係るデータ管理装置１０のキー管理の説明図。
【図６】実施の形態１に係るキー監視処理のフローチャート。
【図７】実施の形態１に係るキー監視処理の説明図。
【図８】実施の形態１に係るキー監視処理の説明図。
【図９】実施の形態１に係るデータ挿入時の処理のフローチャート。
【図１０】実施の形態１に係るデータ挿入時の処理の説明図。
【図１１】実施の形態１に係るデータ削除時の処理のフローチャート。
【図１２】実施の形態１に係るデータ削除時の処理の説明図。
【図１３】変形例２に係るデータ管理装置１０のキー管理の説明図。
【図１４】変形例３に係るデータ挿入時の処理の説明図。
【図１５】変形例４に係るデータ管理装置１０の構成図。
【発明を実施するための形態】
【０００９】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係るデータ管理装置１０の構成を説明する。
データ管理装置１０は、データベースサーバといったコンピュータである。
データ管理装置１０は、プロセッサ１１と、メモリ１２と、ストレージ１３と、通信インタフェース１４とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１０】
プロセッサ１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１１】
メモリ１２は、データを一時的に記憶する記憶装置である。メモリ１２は、具体例としては、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１２】
ストレージ１３は、データを保管する記憶装置である。ストレージ１３は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、ストレージ１３は、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）といった可搬記憶媒体であってもよい。
【００１３】
通信インタフェース１４は、アプリケーションサーバといった外部の装置と通信するためのインタフェースである。通信インタフェース１４は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）のポートである。
【００１４】
データ管理装置１０は、機能構成要素として、データ挿入部２１と、データ削除部２２と、キー管理部２３とを備える。データ挿入部２１と、データ削除部２２と、キー管理部２３との各部の機能はソフトウェアにより実現される。
ストレージ１３には、データ管理装置１０の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ１１によりメモリ１２に読み込まれ、プロセッサ１１によって実行される。これにより、データ管理装置１０の各部の機能が実現される。
【００１５】
プロセッサ１１によって実現される各機能を実現するプログラムは、ストレージ１３に記憶されているとした。しかし、このプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体に記憶されてもよい。
【００１６】
図１では、プロセッサ１１は、１つだけ示されている。しかし、データ管理装置１０は、プロセッサ１１を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、データ管理装置１０の各部の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ１１と同じように、プロセッシングを行うＩＣである。
【００１７】
＊＊＊動作の説明＊＊＊
図２から図１２を参照して、実施の形態１に係るデータ管理装置１０の動作を説明する。
実施の形態１に係るデータ管理装置１０の動作は、実施の形態１に係るデータ管理方法に相当する。また、実施の形態１に係るデータ管理装置１０の動作は、実施の形態１に係るデータ管理プログラムの処理に相当する。実施の形態１に係るデータ管理プログラムにおいては、データ挿入部２１の処理がデータ挿入処理であり、データ削除部２２の処理がデータ削除処理であり、キー管理部２３の処理がキー管理処理である。
【００１８】
図２及び図３を参照して、実施の形態１に係るデータ管理装置１０の動作の概要を説明する。
データ管理装置１０は、事前にキーを割り当てた複数のレコードをストレージ１３に用意しておく。そして、データ管理装置１０は、データの挿入及び削除を用意しておいたレコードの更新により実現する。
具体的には、データ挿入部２１は、指定データの挿入命令を受け付けると、用意しておいたレコードのうち、未使用のレコードに割り当てられたキーを指定して、レコードのデータ項目の値を指定データに更新する。また、データ削除部２２は、指定レコードの削除命令を受け付けると、指定レコードに割り当てられたキーを指定して、レコードのデータ項目の値をブランクといった初期値（基準値）に更新する。
【００１９】
具体例としては、データ挿入部２１は、ＡＢＣというデータの挿入命令を受け付けると、未使用のレコードに割り当てられたキー“０１００４”を指定して、キー“０１００４”が割り当てられたレコードのデータ項目の値をＡＢＣに更新する。また、データ削除部２２は、キー“０３００５”のレコードの削除命令を受け付けると、キー“０３００５”を指定して、キー“０３００５”が割り当てられたレコードのデータ項目の値を初期値に更新する。
【００２０】
図４及び図５を参照して、実施の形態１に係るデータ管理装置１０のキー管理を説明する。
キー管理部２３は、ストレージ１３に記憶された各レコードに割り当てられたキーを管理する。
図４に示すように、キー管理部２３は、キーを、そのキーが割り当てられたレコードが未使用か否かを示す状態と、状態が更新された更新日付とともに、複数のキー管理テーブル３１に分散させてストレージ１３に記憶する。図４では、キー管理部２３は、キーを、キー管理テーブル３１Ａ及びキー管理テーブル３１Ｂの２つに分散させてストレージ１３に記憶している。
【００２１】
図５に示すように、キー管理部２３は、各キー管理テーブル３１から状態が未使用であるキーを抽出して、複数のリージョンのキュー３２に分散させてメモリ１２に記憶する。図５では、キー管理部２３は、キーを、リージョン１からリージョン３の３つのリージョンのキュー３２に分散させてメモリ１２に記憶している。
【００２２】
図６から図１２を参照して、実施の形態１に係るデータ管理装置１０の動作を説明する。
データ管理装置１０の動作は、キー監視処理と、データ挿入時の処理と、データ削除時の処理とに分けられる。
【００２３】
図６から図８を参照して、実施の形態１に係るキー監視処理を説明する。
（ステップＳ１１：キー数判定処理）
キー管理部２３は、各リージョンのキュー３２に基準数以上のキーが格納されているか否かを判定する。
キー管理部２３は、全てのキュー３２に基準数以上のキーが格納されている場合には、一定時間経過後にステップＳ１１の処理を再び実行し、少なくとも一部のキュー３２に基準数以上のキーが格納されていない場合には、処理をステップＳ１２に進める。
【００２４】
（ステップＳ１２：キー補充処理）
キー管理部２３は、格納されたキーの数が設定数になるように、キー管理テーブル３１から状態が未使用であるキーを取得して、基準数未満のキーしか格納されていないキュー３２に補充する。キー管理部２３は、キー管理テーブル３１における取得したキーの状態を未使用から使用中に変更し、更新日付を更新する。
【００２５】
つまり、後述するデータ挿入時の処理でキュー３２からキーが取得されると、徐々にキュー３２に格納されたキーの数が減少する。そこで、キー管理部２３は、定期的に各キュー３２に格納されたキーの数が基準数以上であるかを確認して、キーの数が基準数未満の場合にはキーを補充する。
図７及び図８を参照して具体例を説明する。基準数が３であり、設定数が５である場合に、図７に示すように、リージョン１のキュー３２のキーの数が２つになったとする。すると、ステップＳ２１でリージョン１のキュー３２のキー数が基準数未満であると判定され、図８に示すように、ステップＳ２２でリージョン１のキュー３２に格納されたキーの数が５つになるように、３つのキーがキー管理テーブル３１から取得され、リージョン１のキュー３２に補充される。
なお、基準数及び設定数は、どの程度の頻度でキーが取得されるか、メモリ１２の空き容量といった情報に応じてデータ管理装置１０の稼働前に定められ、メモリ１２に設定される。
【００２６】
図９及び図１０を参照して、実施の形態１に係るデータ挿入時の処理を説明する。
（ステップＳ２１：キー要求処理）
データ挿入部２１は、通信インタフェース１４を介して、アプリケーションサーバといった外部の装置から、指定データの挿入命令を受け付ける。すると、データ挿入部２１は、キー管理部２３へキーの取得要求を送信する。
【００２７】
（ステップＳ２２：キー取得処理）
キー管理部２３は、いずれかのリージョンのキュー３２の先頭に格納されたキーを取得して、データ挿入部２１に送信する。この際、キー管理部２３は、取得したキーをキュー３２から削除する。また、キー管理部２３は、キー管理テーブル３１における取得されたキーの状態を使用中に変更し、更新日付を更新する。
【００２８】
（ステップＳ２３：取得判定処理）
データ挿入部２１は、ステップＳ２２で送信されたキーを取得できたか否かを判定する。
データ挿入部２１は、キーを取得できた場合には、処理をステップＳ２４に進め、キーを取得できなかった場合には、処理をステップＳ２５に進める。
【００２９】
（ステップＳ２４：レコード挿入処理）
データ挿入部２１は、ステップＳ２２で取得されたキーを指定して、ストレージ１３に記憶されたレコードのデータ項目の値を指定データに更新する。
具体例としては、データ挿入部２１は、ＷＨＥＲＥ句にステップＳ２２で取得されたキーを指定したＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）のＵＰＤＡＴＥ文を用いて、ストレージ１３に記憶されたレコードのデータ項目の値を指定データに更新する。
【００３０】
（ステップＳ２５：エラー処理）
データ挿入部２１は、指定データの挿入ができないとして、エラーメッセージを挿入命令の送信元へ送信する。
【００３１】
具体例としては、図１０に示すように、ステップＳ２２でリージョン２のキュー３２の先頭に格納されたキー“００００２”が取得され、ステップＳ２３でキー“００００２”が割り当てられたレコードのデータ項目の値が指定データに更新される。また、ステップＳ２２では、取得されたキー“００００２”がリージョン２のキュー３２から削除され、キー管理テーブル３１のキー“００００２”の状態が使用中に変更され、更新日付が更新される。
【００３２】
図１１及び図１２を参照して、実施の形態１に係るデータ削除時の処理を説明する。
（ステップＳ３１：削除受付処理）
データ削除部２２は、通信インタフェース１４を介して、アプリケーションサーバといった外部の装置から、指定レコードの削除命令を受け付ける。削除命令は、指定レコードに割り当てられたキーを示す。
【００３３】
（ステップＳ３２：レコード削除処理）
データ削除部２２は、ステップＳ３１で受け付けられた削除命令が示すキーを指定して、レコードのデータ項目の値を初期値に更新する。
具体例としては、データ削除部２２は、ＷＨＥＲＥ句にステップＳ３１で受け付けられたキーを指定したＳＱＬのＵＰＤＡＴＥ文を用いて、ストレージ１３に記憶されたレコードのデータ項目の値を初期値に更新する。
【００３４】
（ステップＳ３３：削除通知処理）
データ削除部２２は、ステップＳ３１で受け付けられた削除命令が示すキーを示す削除通知をキー管理部２３に送信する。
【００３５】
（ステップＳ３４：状態更新処理）
キー管理部２３は、キー管理テーブル３１における、ステップＳ３３で送信された削除通知が示すキーの状態を未使用に変更し、更新日付を更新する。
【００３６】
具体例としては、図１２に示すように、ステップＳ３１でキー“００００５”が指定された削除命令が受け付けられ、ステップＳ３２でキー“００００５”が割り当てられたレコードのデータ項目の値が初期値に更新される。また、ステップＳ３４では、取得されたキー“００００５”の状態が未使用に変更される。
【００３７】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係るデータ管理装置１０は、キーが割り当てられた複数のレコードを記憶した記憶装置であるストレージ１３を用い、データの更新によりデータの挿入を実現する。そのため、データの挿入により記憶領域が断片化することがなく、再編成処理が必要ない。
【００３８】
また、実施の形態１に係るデータ管理装置１０は、未使用のキーをキュー３２で管理している。そのため、指定データを挿入する処理を、データの更新で実現することにより、処理コストが高くなることを防止できる。
ここでの処理コストはＳＱＬの発行回数である。キュー３２を用いずに指定データを挿入する処理を実現しようとする場合、未使用のレコードを探すためにＳＥＬＥＣＴ文を発行した上で、ＵＰＤＡＴＥ文を発行する必要があり、ＳＱＬの発行回数は２回になる。これに対して、キュー３２を用いて指定データを挿入する処理を実現しようとする場合、キュー３２からキーを取得できるので、ＵＰＤＡＴＥ文を発行するのみで済み、ＳＱＬの発行回数は１回になる。したがって、ＩＮＳＥＲＴ文を用いてデータを挿入する場合と同じ処理コストになる。
【００３９】
また、実施の形態１に係るデータ管理装置１０は、複数のリージョンのキュー３２に分散させてキーを管理する。そのため、あるリージョンがダウンした場合であっても、他のリージョンのキュー３２を用いて、データの挿入を行うことが可能である。したがって、障害に対する耐性が高い。また、複数のリージョンのキュー３２を用いることにより、負荷を分散させることが可能である。
【００４０】
また、実施の形態１に係るデータ管理装置１０は、必要な数のキーのみをキュー３２で管理し、残りをキー管理テーブル３１で管理する。これにより、メモリ１２の使用量を減らすことができ、負荷を減らすことができる。また、キュー３２へのキーの追加を、データ挿入部２１とは別のキー管理部２３により行う。これにより、データを挿入する処理の負荷を減らすことができる。
【００４１】
また、実施の形態１に係るデータ管理装置１０は、キーを複数のキー管理テーブル３１に分散させて管理する。これにより、あるキー管理テーブル３１に障害が発生しても、他のキー管理テーブル３１を用いてキュー３２にキーを補充することができる。したがって、障害に対する耐性が高い。
【００４２】
なお、キー管理テーブル３１は、各キーについてのレコードが用意されている。そのため、キー管理テーブル３１についての再編成処理は不要である。
【００４３】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、図１１及び図１２を参照して説明したように、ステップＳ３１で指定レコードの削除命令を受け付けると、すぐにステップＳ３２で指定レコードのデータ項目の値を初期値に更新し、ステップＳ３３でキー管理テーブル３１におけるキーの状態を未使用に変更した。
変形例１として、データ削除部２２は、ステップＳ３１で指定レコードの削除命令を受け付けると、削除命令をメモリ１２に格納しておき、後でまとめて格納された削除命令についてステップＳ３２以降の処理を実行してもよい。具体例としては、データ削除部２２は、データの挿入及び削除の処理の実行数が少ない夜間等にまとめて格納された削除命令についてステップＳ３２以降の処理を実行してもよい。これにより、データの挿入及び削除の処理の実行数が多い日中等の負荷を減らすことができる。
【００４４】
＜変形例２＞
処理が不正になった場合等に、キーが使用中のままになってしまう可能性がある。具体例としては、データ挿入時の処理において、ステップＳ２２でキーを取得した後に、異常終了してしまった場合には、キー管理テーブル３１では、ステップＳ２２で取得されたキーの状態は使用中となるが、データの書き込みはされていない状態になってしまう可能性がある。この場合、ステップＳ２２で取得されたキーに割り当てられたレコードは、未使用であるにも関わらず、状態は使用中となってしまう。
変形例２として、キー管理部２３は、キー管理テーブル３１の状態を未使用から使用中に変更してから基準時間経過しても状態が使用中のままの場合には、状態を未使用に変更する。具体的には、図１３に示すように、キー管理部２３は、状態が使用中であり、かつ、更新日付から基準期間経過しているキー管理テーブル３１のレコードについて、状態を使用中から未使用に変更する。図１３では、２０１５年１２月５日に、基準期間を３月として、キー管理テーブル３１のレコードの状態を更新する例を示している。これにより、実際には未使用であるにも関わらず、使用中となっているレコードを未使用に戻すことができる。
キー管理部２３は、データの挿入及び削除の処理の実行数が少ない夜間等に、状態を使用中から未使用に変更する処理を実行してもよい。これにより、データの挿入及び削除の処理の実行数が多い日中等の負荷を減らすことができる。
基準期間は、データ管理装置１０を用いるシステムの要件に応じて定めればよい。具体例としては、データ管理装置１０を用いるシステムで、３月以上データを保持し続けることがないのであれば、基準期間は３月とすればよい。
【００４５】
＜変形例３＞
実施の形態１では、データ挿入時の処理において、キュー３２から取得されたキーを指定して、キーが割り当てられたレコードのデータ項目の値を指定データに更新した。キュー３２から取得されるキーは、未使用のレコードに割り当てられたキーであるため、原則として、同じレコードを重複使用してしまい、データ項目の値を上書きしてしまうことはない。しかし、データ項目の値を上書きしてしまい、データが消失してしまうことは確実に防止すべきことである。
変形例３として、図１４に示すように、データ挿入時の処理において、キュー３２から取得されたキーを指定するとともに、レコードが未使用であることを条件として指定して、キーが割り当てられたレコードのデータ項目の値を指定データに更新する。レコードが未使用であることの条件を指定するとは、レコードに未使用であるか否かを示すフラグが含まれている場合には、そのフラグが未使用を示していることを指定することである。あるいは、レコードが未使用であることの条件を指定するとは、データ項目の値が初期値であることを指定することである。具体例としては、キーとフラグが未使用を示すこととをＷＨＥＲＥ句に指定したＳＱＬのＵＰＤＡＴＥ文を用いて、レコードのデータ項目の値を指定データに更新する。これにより、同じレコードを重複使用してしまうことをより確実に防止することができる。
なお、仮に、キュー３２から取得したキーで、レコードのデータ項目の値を更新できない場合には、改めてキュー３２からキーを取得し直せばよい。
【００４６】
＜変形例４＞
実施の形態１では、データ管理装置１０の各部の機能がソフトウェアで実現された。しかし、変形例４として、データ管理装置１０の各部の機能はハードウェアで実現されてもよい。この変形例４について、実施の形態１と異なる点を説明する。
【００４７】
図１５を参照して、変形例４に係るデータ管理装置１０の構成を説明する。
各部の機能がハードウェアで実現される場合、データ管理装置１０は、プロセッサ１１とメモリ１２とストレージ１３とに代えて、処理回路１５を備える。処理回路１５は、データ管理装置１０の各部の機能とメモリ１２とストレージ１３との機能を実現する専用の電子回路である。
【００４８】
処理回路１５は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
各部の機能を１つの処理回路１５で実現してもよいし、各部の機能を複数の処理回路１５に分散させて実現してもよい。
【００４９】
＜変形例５＞
変形例５として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、データ管理装置１０の各部のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
【００５０】
プロセッサ１１とメモリ１２とストレージ１３と処理回路１５とを、総称して「プロセッシングサーキットリー」という。つまり、各部の機能は、プロセッシングサーキットリーにより実現される。
【００５１】
＜変形例６＞
実施の形態１では、データ管理装置１０は、キーが割り当てられた複数のレコードを記憶した記憶装置としてストレージ１３を用いた。変形例６として、データ管理装置１０は、キーが割り当てられた複数のレコードを記憶した記憶装置として、他のサーバといった外部の装置を用いてもよい。
【符号の説明】
【００５２】
１０  データ管理装置、１１  プロセッサ、１２  メモリ、１３  ストレージ、１４  通信インタフェース、１５  処理回路、２１  データ挿入部、２２  データ削除部、２３
キー管理部、３１  キー管理テーブル、３２  キュー。
【図１】
2018018199.tif 000003
【図２】
2018018199.tif 000004
【図３】
2018018199.tif 000005
【図４】
2018018199.tif 000006
【図５】
2018018199.tif 000007
【図６】
2018018199.tif 000008
【図７】
2018018199.tif 000009
【図８】
2018018199.tif 000010
【図９】
2018018199.tif 000011
【図１０】
2018018199.tif 000012
【図１１】
2018018199.tif 000013
【図１２】
2018018199.tif 000014
【図１３】
2018018199.tif 000015
【図１４】
2018018199.tif 000016
【図１５】
2018018199.tif 000017
【手続補正書】
【提出日】平成29年6月26日(2017.6.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
キーが割り当てられた複数のレコードを記憶した記憶装置を用いてデータ管理を行うデータ管理プログラムであり、
前記記憶装置に記憶された複数のレコードそれぞれに割り当てられたキーを、レコードが未使用か否かを示す状態とともに管理するキー管理処理であって、未使用のキーをキューに蓄積しておき、前記キューに蓄積されたキーが減少すると、設定数になるまでキューにキーを補充するキー管理処理と
指定データの挿入命令を受け付けると、前記キューに蓄積されたキーを指定して、レコードのデータ項目の値を指定データに更新するデータ挿入処理と
をコンピュータに実行させるデータ管理プログラム。
【請求項２】
前記データ管理プログラムは、さらに、
指定レコードの削除命令を受け付けると、前記指定レコードに割り当てられたキーを指定して、レコードのデータ項目の値を初期値に更新するデータ削除処理
をコンピュータに実行させる請求項１に記載のデータ管理プログラム。
【請求項３】
前記データ削除処理では、指定レコードの削除命令を受け付けたタイミングと別のタイミングで、レコードのデータ項目の値を初期値に更新する
請求項２に記載のデータ管理プログラム。
【請求項４】
前記キー管理処理では、前記データ削除処理によってデータ項目の値が前記初期値に更新されたレコードの状態を、未使用に変更する
請求項２又は３に記載のデータ管理プログラム。
【請求項５】
前記キー管理処理では、前記キーを複数に分散させて管理する
請求項１から４までのいずれか１項に記載のデータ管理プログラム。
【請求項６】
前記キー管理処理では、未使用のキーを複数のキューに分散して蓄積しておき、
前記データ挿入処理では、前記複数のキューのいずれかのキューに蓄積されたキーを指定して、レコードのデータ項目の値を指定データに更新する
請求項１から５までのいずれか１項に記載のデータ管理プログラム。
【請求項７】
前記キー管理処理では、前記状態を未使用から使用中に変更してから基準時間経過しても前記状態が使用中のままの場合には、前記状態を未使用に変更する
請求項１から５までのいずれか１項に記載のデータ管理プログラム。
【請求項８】
キーが割り当てられた複数のレコードを記憶した記憶装置を用いてデータ管理を行うデータ管理装置であり、
前記記憶装置に記憶された複数のレコードそれぞれに割り当てられたキーを、レコードが未使用か否かを示す状態とともに管理するキー管理部であって、未使用のキーをキューに蓄積しておき、前記キューに蓄積されたキーが減少すると、設定数になるまでキューにキーを補充するキー管理部と
指定データの挿入命令を受け付けると、前記キューに蓄積されたキーを指定して、レコードのデータ項目の値を指定データに更新するデータ挿入部と
を備えるデータ管理装置。