(57)【要約】【課題】データベースに登録される一部のデータを暗号化できるようにすることを目的とする。【解決手段】編集内容決定部１３０は、設定情報１７１に含まれる条件変数名と同じバインド変数名に対応付けられた条件データをバインド変数ファイル１０２から選択し、設定情報１７１に含まれる編集条件を条件データが満たすか判定する。条件データが編集条件を満たす場合、データ編集部１４０は、設定情報１７１に含まれる編集変数名と同じバインド変数名に対応付けられた編集データをバインド変数ファイル１０２から選択し、暗号化によって編集データを編集する。データベースＩＦ部１５０は、ＳＱＬファイル１０１と編集されたバインド変数ファイル１０２とをデータベース部１９１に出力する。【選択図】図１
2015169996.tif 000002
【特許請求の範囲】
【請求項１】
登録設定ファイルを使用するデータ登録装置であって、
前記登録設定ファイルは、第一のデータ名と、第二のデータ名と、データ編集条件とを含み、
前記データ登録装置は、
データ名に対応付けられた複数のデータを取得するデータ取得部と、
前記複数のデータから前記登録設定ファイルに含まれる前記第二のデータ名と同じデータ名に対応付けられた第二のデータを選択し、前記第二のデータが前記登録設定ファイルに含まれる前記データ編集条件を満たすか判定するデータ編集判定部と、
前記第二のデータが前記データ編集条件を満たす場合、前記複数のデータから前記登録設定ファイルに含まれる前記第一のデータ名と同じデータ名に対応付けられた第一のデータを選択し、前記第一のデータを編集するデータ編集部と、
編集された前記第一のデータを含む前記複数のデータを、データベースに登録する登録データ群として出力するデータ登録部と
を備えることを特徴とするデータ登録装置。
【請求項２】
前記登録設定ファイルは、暗号化鍵を指定する暗号化鍵情報を含み、
前記データ編集部は、前記登録設定ファイルに含まれる前記暗号化鍵情報によって指定される前記暗号化鍵を用いて前記第一のデータを暗号化することによって、前記第一のデータを編集する
ことを特徴とする請求項１に記載のデータ登録装置。
【請求項３】
前記データ編集部は、暗号化した前記第一のデータを文字列にエンコードすることによって、前記第一のデータを編集する
ことを特徴とする請求項２に記載のデータ登録装置。
【請求項４】
前記データ編集部は、前記第一のデータを複数の分割データに分割し、前記複数の分割データを暗号化し、暗号化した前記複数の分割データをエンコードし、エンコードした前記複数の分割データを結合する
ことを特徴とする請求項３に記載のデータ登録装置。
【請求項５】
前記データ登録装置は、設定情報選択部を備え、
前記登録設定ファイルは、識別子名と複数の設定識別子とを含み、設定識別子毎に設定情報を含み、
前記設定情報選択部は、前記複数のデータから前記登録設定ファイルに含まれる前記識別子名と同じデータ名に対応付けられた識別データを選択し、前記登録設定ファイルから前記識別データと同じ設定識別子に対応付けられた設定情報を前記第一のデータ名と前記第二のデータ名と前記データ編集条件とを含む設定情報として選択する
ことを特徴とする請求項１から請求項４のいずれかに記載のデータ登録装置。
【請求項６】
検索設定ファイルを使用するデータ検索装置であって、
前記検索設定ファイルは、第一のキーワード名と、第二のキーワード名と、キーワード編集条件とを含み、
前記データ検索装置は、
キーワード名に対応付けられた複数のキーワードを取得するキーワード取得部と、
前記複数のキーワードから前記検索設定ファイルに含まれる前記第二のキーワード名と同じキーワード名に対応付けられた第二のキーワードを選択し、前記第二のキーワードが前記検索設定ファイルに含まれる前記キーワード編集条件を満たすか判定するキーワード編集判定部と、
前記第二のキーワードが前記キーワード編集条件を満たす場合、前記複数のキーワードから前記検索設定ファイルに含まれる前記第一のキーワード名と同じキーワード名に対応付けられた第一のキーワードを選択し、前記第一のキーワードを編集するキーワード編集部と、
編集された前記第一のキーワードを含む前記複数のキーワードを検索キーワード群として出力するデータ検索部と
を備えることを特徴とするデータ検索装置。
【請求項７】
前記検索設定ファイルは、第一のデータ名と、第二のデータ名と、データ編集条件とを含み、
前記データ検索装置は、
データ名に対応付けられた複数のデータを検索結果として取得する検索結果取得部と、
前記複数のデータから前記検索設定ファイルに含まれる前記第二のデータ名と同じデータ名に対応付けられた第二のデータを選択し、前記第二のデータが前記検索設定ファイルに含まれる前記データ編集条件を満たすか判定するデータ編集判定部と、
前記第二のデータが前記データ編集条件を満たす場合、前記複数のデータから前記検索設定ファイルに含まれる前記第一のデータ名と同じデータ名に対応付けられた第一のデータを選択し、前記第一のデータを編集するデータ編集部とを備える
ことを特徴とする請求項６に記載のデータ検索装置。
【請求項８】
登録設定ファイルを使用するデータ登録プログラムであって、
前記登録設定ファイルは、第一のデータ名と、第二のデータ名と、データ編集条件とを含むファイルであり、
データ名に対応付けられた複数のデータを取得するデータ取得処理と、
前記複数のデータから前記登録設定ファイルに含まれる前記第二のデータ名と同じデータ名に対応付けられた第二のデータを選択し、前記第二のデータが前記登録設定ファイルに含まれる前記データ編集条件を満たすか判定するデータ編集判定処理と、
前記第二のデータが前記データ編集条件を満たす場合、前記複数のデータから前記登録設定ファイルに含まれる前記第一のデータ名と同じデータ名に対応付けられた第一のデータを選択し、前記第一のデータを編集するデータ編集処理と、
編集された前記第一のデータを含む前記複数のデータを、データベースに登録する登録データ群として出力するデータ登録処理と
をコンピュータに実行させるためのデータ登録プログラム。
【請求項９】
検索設定ファイルを使用するデータ検索プログラムであって、
前記検索設定ファイルは、第一のキーワード名と、第二のキーワード名と、キーワード編集条件とを含むファイルであり、
キーワード名に対応付けられた複数のキーワードを取得するキーワード取得処理と、
前記複数のキーワードから前記検索設定ファイルに含まれる前記第二のキーワード名と同じキーワード名に対応付けられた第二のキーワードを選択し、前記第二のキーワードが前記検索設定ファイルに含まれる前記キーワード編集条件を満たすか判定するキーワード編集判定処理と、
前記第二のキーワードが前記キーワード編集条件を満たす場合、前記複数のキーワードから前記検索設定ファイルに含まれる前記第一のキーワード名と同じキーワード名に対応付けられた第一のキーワードを選択し、前記第一のキーワードを編集するキーワード編集処理と、
編集された前記第一のキーワードを含む前記複数のキーワードを検索キーワード群として出力するデータ検索処理と
をコンピュータに実行させるためのデータ検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースを暗号化する技術に関するものである。
【背景技術】
【０００２】
複数の企業をテナントとして各企業のデータを１つのデータベースに同居させ、リソースおよび運用コストを大幅に低減するマルチテナント型のシステムが利用されている。
マルチテナント型のシステムはアクセス制御およびセキュリティ対策が重要である。アクセス制御は、複数のテナントが互いのデータにアクセスできないようにする。セキュリティ対策は、システムに侵入した不正者がデータを読めないように、データを暗号化する。
但し、データを暗号化する企業もあれば、データを暗号化しない企業もあるため、暗号化されたデータと暗号化されていないデータとがデータベースの同一列に混在する。
【０００３】
特許文献１は、データベースに格納するデータを暗号化する技術として、データが格納される列毎に異なる暗号鍵を利用してデータを暗号化する技術と、行毎の固有の識別情報を利用して行毎に異なる暗号鍵を利用してデータを暗号化する技術と開示している。
しかし、特許文献１は、データが暗号化されたままの状態で部分一致の検索を行う技術については開示していない。
【０００４】
特許文献１が開示する技術は、同一列の各データを共通の鍵を用いて暗号化するため、暗号化されたデータと暗号化されていないデータとを同一列に混在させることができない。
また、特許文献１が開示する技術は、各データを復号しなければ、部分一致の検索を行うことができず、セキュリティ対策および処理性能の点で課題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１１７８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、データベースに登録される一部のデータを暗号化できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明のデータ登録装置は登録設定ファイルを使用する。
前記登録設定ファイルは、第一のデータ名と、第二のデータ名と、データ編集条件とを含む。
前記データ登録装置は、
データ名に対応付けられた複数のデータを取得するデータ取得部と、
前記複数のデータから前記登録設定ファイルに含まれる前記第二のデータ名と同じデータ名に対応付けられた第二のデータを選択し、前記第二のデータが前記登録設定ファイルに含まれる前記データ編集条件を満たすか判定するデータ編集判定部と、
前記第二のデータが前記データ編集条件を満たす場合、前記複数のデータから前記登録設定ファイルに含まれる前記第一のデータ名と同じデータ名に対応付けられた第一のデータを選択し、前記第一のデータを編集するデータ編集部と、
編集された前記第一のデータを含む前記複数のデータを、データベースに登録する登録データ群として出力するデータ登録部とを備える。
【発明の効果】
【０００８】
本発明によれば、第二のデータが編集条件を満たす場合に第一のデータを暗号化（編集の一例）することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１におけるデータ登録装置１００の機能構成図である。
【図２】実施の形態１におけるデータ登録装置１００のデータ登録処理の流れを示すフローチャートである。
【図３】実施の形態１におけるＳＱＬファイル１０１の一例を示す図である。
【図４】実施の形態１におけるバインド変数ファイル１０２の一例を示す図である。
【図５】実施の形態１における設定情報選択処理（Ｓ１２０）のフローチャートである。
【図６】実施の形態１における登録設定ファイル１７０の一例を示す図である。
【図７】実施の形態１における編集内容決定処理（Ｓ１３０）のフローチャートである。
【図８】実施の形態１における編集内容ファイル１０３の一例を示す図である。
【図９】実施の形態１におけるデータ編集部１４０の機能構成図である。
【図１０】実施の形態１におけるデータ編集処理（Ｓ１４０）のフローチャートである。
【図１１】実施の形態１におけるデータ編集処理（Ｓ１４０）のフローチャートである。
【図１２】実施の形態１におけるバインド変数ファイル１０２の一例を示す図である。
【図１３】実施の形態１におけるＳＱＬ文１０１Ａの一例を示す図である。
【図１４】実施の形態１におけるデータテーブル１９３の一例を示す図である。
【図１５】実施の形態１におけるデータ登録装置１００のハードウェア構成の一例を示す図である。
【図１６】実施の形態２におけるデータ検索装置２００の機能構成図である。
【図１７】実施の形態２におけるデータ検索装置２００のデータ検索処理の流れを示すフローチャートである。
【図１８】実施の形態２におけるＳＱＬファイル２０１の一例を示す図である。
【図１９】実施の形態２におけるバインド変数ファイル２０２の一例を示す図である。
【図２０】実施の形態２における設定情報選択処理（Ｓ２２０）のフローチャートである。
【図２１】実施の形態２における検索設定ファイル２７０の一例を示す図である。
【図２２】実施の形態２における編集内容決定処理（Ｓ２３０）のフローチャートである。
【図２３】実施の形態２における編集内容ファイル２０３の一例を示す図である。
【図２４】実施の形態２における編集部２４０の機能構成図である。
【図２５】実施の形態２におけるキーワード編集処理（Ｓ２４０）のフローチャートである。
【図２６】実施の形態２におけるキーワード編集処理（Ｓ２４０）のフローチャートである。
【図２７】実施の形態２におけるバインド変数ファイル２０２の一例を示す図である。
【図２８】実施の形態２におけるＳＱＬ文２０１Ａの一例を示す図である。
【図２９】実施の形態２におけるデータテーブル２９３の一例を示す図である。
【図３０】実施の形態２における検索結果ファイル２０４の一例を示す図である。
【図３１】実施の形態２におけるデータ編集処理（Ｓ２７０）のフローチャートである。
【図３２】実施の形態２におけるデータ編集処理（Ｓ２７０）のフローチャートである。
【図３３】実施の形態２における検索結果ファイル２０４の一例を示す図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
データベースに登録される一部のデータを暗号化する形態について説明する。
【００１１】
図１は、実施の形態１におけるデータ登録装置１００の機能構成図である。
実施の形態１におけるデータ登録装置１００の機能構成について、図１に基づいて説明する。
【００１２】
データ登録装置１００は、データテーブル１９３に登録するデータを編集する装置である。
データ登録装置１００は、アプリケーションＩＦ部１１０（データ取得部の一例）と、設定情報選択部１２０と、編集内容決定部１３０（データ編集判定部の一例）と、データ編集部１４０と、データベースＩＦ部１５０（データ登録部の一例）と、登録装置記憶部１８０とを備える。
【００１３】
アプリケーションＩＦ部１１０は、アプリケーション部１９０からＳＱＬファイル１０１とバインド変数ファイル１０２とを取得する。
ＳＱＬファイル１０１は、データ登録用のＳＱＬ文を含む。
バインド変数ファイル１０２は、ＳＱＬ文に含まれる変数名に対応付けられた複数のデータを含む。
【００１４】
設定情報選択部１２０は、バインド変数ファイル１０２に含まれるデータに基づいて、登録設定ファイル１７０から設定情報１７１を選択する。
登録設定ファイル１７０は複数の設定情報１７１を含み、各設定情報１７１はデータの編集条件を含む。
【００１５】
編集内容決定部１３０は、設定情報１７１に含まれる編集条件に基づいて、編集内容ファイル１０３を生成する。
編集内容ファイル１０３は、データの編集内容を指定する。
【００１６】
データ編集部１４０は、編集内容ファイル１０３が指定する編集内容に従って、バインド変数ファイル１０２に含まれるデータを編集する。
【００１７】
データベースＩＦ部１５０は、ＳＱＬファイル１０１と、編集されたデータを含んだバインド変数ファイル１０２とを、データベース部１９１に出力する。
【００１８】
登録装置記憶部１８０は、データ登録装置１００が使用、生成または入出力するデータを記憶する。
例えば、登録装置記憶部１８０は、ＳＱＬファイル１０１と、バインド変数ファイル１０２と、編集内容ファイル１０３と、登録設定ファイル１７０と、暗号鍵ファイル１８１とを記憶する。
【００１９】
アプリケーション部１９０は、利用者から指定されたＳＱＬファイル１０１とバインド変数ファイル１０２とをアプリケーションＩＦ部１１０に出力する。
アプリケーション部１９０は、データ登録装置１００に備わる機能であっても構わないし、データ登録装置１００とは別の装置（例えば、ユーザ端末装置）に備わる機能であっても構わない。
【００２０】
データベース部１９１は、ＳＱＬファイル１０１に含まれるＳＱＬ文に基づいて、バインド変数ファイル１０２に含まれる各データをデータテーブル１９３に登録する。データテーブル１９３を記憶する記憶部をデータベース記憶部１９２という。
データベース部１９１およびデータベース記憶部１９２は、データ登録装置１００に備わる機能であっても構わないし、データ登録装置１００とは別の装置（例えば、データベース装置）に備わる機能であっても構わない。
【００２１】
図２は、実施の形態１におけるデータ登録装置１００のデータ登録処理の流れを示すフローチャートである。
実施の形態１におけるデータ登録装置１００のデータ登録処理について、図２に基づいて説明する。
【００２２】
Ｓ１１０において、利用者はＳＱＬファイル１０１とバインド変数ファイル１０２とを指定し、アプリケーション部１９０は指定されたＳＱＬファイル１０１とバインド変数ファイル１０２とをアプリケーションＩＦ部１１０に出力する。
そして、アプリケーションＩＦ部１１０は、ＳＱＬファイル１０１とバインド変数ファイル１０２とを取得する。
Ｓ１１０の後、処理はＳ１２０に進む。
【００２３】
図３は、実施の形態１におけるＳＱＬファイル１０１の一例を示す図である。
実施の形態１におけるＳＱＬファイル１０１の一例について、図３に基づいて説明する。
ＳＱＬファイル１０１は、ＳＱＬ文（ＩＮＳＥＲＴ・・・）のフォーマットと、ＳＱＬ文を識別するＳＱＬＩＤとを含んでいる。
また、ＳＱＬ文は、複数のバインド変数名（＠ＴＥＮＡＮＴＩＤ、＠ＵＳＥＲＩＤ、＠ＵＳＥＲＮＡＭＥ、＠ＫＩＮＤ）を含んでいる。
【００２４】
図４は、実施の形態１におけるバインド変数ファイル１０２の一例を示す図である。
実施の形態１におけるバインド変数ファイル１０２の一例について、図４に基づいて説明する。
バインド変数ファイル１０２は、バインド変数名に対応付けられた複数のデータ（１０１、Ｕ１２３４５、山田太郎、社員）を含んでいる。
図２に戻り、Ｓ１２０から説明を続ける。
【００２５】
Ｓ１２０において、設定情報選択部１２０は、バインド変数ファイル１０２に基づいて、登録設定ファイル１７０から設定情報１７１を選択する。
但し、バインド変数ファイル１０２に基づいた設定情報１７１が登録設定ファイル１７０にない場合、設定情報選択部１２０は設定情報１７１を選択しない。
Ｓ１２０の後、処理はＳ１３０に進む。
【００２６】
図５は、実施の形態１における設定情報選択処理（Ｓ１２０）のフローチャートである。
実施の形態１における設定情報選択処理（Ｓ１２０）について、図５に基づいて説明する。
【００２７】
Ｓ１２１において、設定情報選択部１２０は、登録設定ファイル１７０から識別変数名を取得する。
識別変数名は、バインド変数ファイル１０２に含まれる複数のバインド変数名のうちで設定情報１７１を識別する識別値に対応付けられるバインド変数名である。
Ｓ１２１の後、処理はＳ１２２に進む。
【００２８】
図６は、実施の形態１における登録設定ファイル１７０の一例を示す図である。
実施の形態１における登録設定ファイル１７０の一例について、図６に基づいて説明する。
登録設定ファイル１７０は、識別変数名（識別子名の一例）と、一つ以上の設定情報１７１とを含んでいる。
設定情報１７１は、識別値（設定識別子の一例）と、暗号鍵ファイル名と、一つ以上の編集情報１７２とを含んでいる。
編集情報１７２は、ＳＱＬＩＤと、一つ以上の個別情報１７３とを含んでいる。
個別情報１７３は、編集変数名と、分割フラグ値と、一つ以上の条件情報１７４を含んでいる。
条件情報１７４は、条件変数名と、編集条件と、条件値とを含んでいる。
【００２９】
例えば、設定情報選択部１２０は、登録設定ファイル１７０（図６参照）から、識別変数名である＠ＴＥＮＡＮＴＩＤを取得する。
図５に戻り、Ｓ１２２から説明を続ける。
【００３０】
Ｓ１２２において、設定情報選択部１２０は、Ｓ１２１で取得した識別変数名と同じバインド変数名に対応付けられたデータを、バインド変数ファイル１０２から取得する。Ｓ１２２で取得されるデータを識別データという。
例えば、識別変数名が＠ＴＥＮＡＮＴＩＤである場合、設定情報選択部１２０は、バインド変数ファイル１０２（図４参照）から、＠ＴＥＮＡＮＴＩＤに対応付けられた識別データである１０１を取得する。
Ｓ１２２の後、処理はＳ１２３に進む。但し、バインド変数ファイル１０２に識別データがない場合、設定情報選択処理（Ｓ１２０）は終了する。
【００３１】
Ｓ１２３において、設定情報選択部１２０は、Ｓ１２２で取得した識別データと同じ識別値を含んだ設定情報１７１を、登録設定ファイル１７０から選択する。
例えば、識別データが１０１である場合、設定情報選択部１２０は、登録設定ファイル１７０（図６参照）から、識別値が１０１である設定情報１７１を選択する。
但し、該当する設定情報１７１が登録設定ファイル１７０にない場合、設定情報選択部１２０は設定情報１７１を選択しない。
Ｓ１２３の後、設定情報選択処理（Ｓ１２０）は終了する。
図２に戻り、Ｓ１３０から説明を続ける。
【００３２】
Ｓ１３０において、編集内容決定部１３０は、Ｓ１２０で選択された設定情報１７１に基づいて、編集内容ファイル１０３を生成する。
但し、Ｓ１２０で設定情報１７１が選択されなかった場合、編集内容決定部１３０は空の編集内容ファイル１０３を生成する。
Ｓ１３０の後、処理はＳ１４０に進む。
【００３３】
図７は、実施の形態１における編集内容決定処理（Ｓ１３０）のフローチャートである。
実施の形態１における編集内容決定処理（Ｓ１３０）について、図７に基づいて説明する。
【００３４】
Ｓ１３１において、編集内容決定部１３０は、ＳＱＬファイル１０１からＳＱＬＩＤを取得し、取得したＳＱＬＩＤと同じＳＱＬＩＤを含んだ編集情報１７２を設定情報１７１から選択する。
例えば、編集内容決定部１３０は、ＳＱＬファイル１０１（図３参照）からＳＱＬＩＤであるＵＳＥＲＩＮＳＥＲＴを取得する。そして、編集内容決定部１３０は、ＵＳＥＲＩＮＳＥＲＴを含んだ編集情報１７２を設定情報１７１（図６参照）から選択する。
Ｓ１３１の後、処理はＳ１３２に進む。但し、該当する編集情報１７２が設定情報１７１にない場合、編集内容決定処理（Ｓ１３０）は終了する。
【００３５】
Ｓ１３２において、編集内容決定部１３０は、Ｓ１３１で選択した編集情報１７２から、未選択の個別情報１７３を一つ選択する。
例えば、編集内容決定部１３０は、ＵＳＥＲＩＮＳＥＲＴを含んだ編集情報１７２（図６参照）から、編集変数名である＠ＵＳＥＲＮＡＭＥを含んだ個別情報１７３を選択する。
Ｓ１３２の後、処理はＳ１３３に進む。
【００３６】
Ｓ１３３において、編集内容決定部１３０は、Ｓ１３２で選択した個別情報１７３から、未選択の条件情報１７４を一つ選択する。
例えば、編集内容決定部１３０は、編集変数名である＠ＵＳＥＲＮＡＭＥを含んだ個別情報１７３（図６参照）から、条件変数名である＠ＫＩＮＤを含んだ条件情報１７４を選択する。
Ｓ１３３の後、処理はＳ１３４に進む。
【００３７】
Ｓ１３４において、編集内容決定部１３０は、Ｓ１３３で選択した条件情報１７４から条件変数名（第二のデータ名の一例）を取得し、取得した条件変数名と同じバインド変数名に対応付けられたデータをバインド変数ファイル１０２から取得する。Ｓ１３４で取得されるデータを条件データ（第二のデータの一例）という。
例えば、編集内容決定部１３０は、個別情報１７３（図６参照）から、条件変数名である＠ＫＩＮＤを取得する。そして、編集内容決定部１３０は、バインド変数ファイル１０２（図４参照）から、＠ＫＩＮＤに対応付けられた条件データである社員を取得する。
Ｓ１３４の後、処理はＳ１３５に進む。
【００３８】
Ｓ１３５において、編集内容決定部１３０は、Ｓ１３４で取得した条件データと、Ｓ１３３で選択した条件情報１７４に含まれる比較値とを比較する。
そして、編集内容決定部１３０は、比較結果が条件情報１７４に含まれる編集条件を満たすか判定する。比較結果が編集条件を満たす場合、条件データは編集条件を満たす。
例えば、条件データが社員であり、条件値が社員であり、編集条件が一致である場合、条件データが条件値と一致するため、条件データは編集条件を満たす。
条件データが編集条件を満たす場合（ＹＥＳ）、処理はＳ１３６に進む。
条件データが編集条件を満たさない場合（ＮＯ）、処理はＳ１３８に進む。
【００３９】
Ｓ１３６において、編集内容決定部１３０は、Ｓ１３３で選択していない未選択の条件情報１７４があるか判定する。
未選択の条件情報１７４がある場合、処理はＳ１３３に戻る。
未選択の条件情報１７４がない場合、処理はＳ１３７に進む。
【００４０】
Ｓ１３７において、編集内容決定部１３０は、Ｓ１３２で選択した個別情報１７３から編集変数名（第一のデータ名）と分割フラグ値とを取得する。
編集内容決定部１３０は、設定情報１７１から暗号鍵ファイル名（暗号化鍵情報の一例）を取得する。
そして、編集内容決定部１３０は、編集変数名と分割フラグ値と暗号鍵ファイル名とを編集内容ファイル１０３に設定する。Ｓ１３７で設定される情報を編集内容情報１０３Ａという。
Ｓ１３７の後、処理はＳ１３８に進む。
【００４１】
図８は、実施の形態１における編集内容ファイル１０３の一例を示す図である。
実施の形態１における編集内容ファイル１０３の一例について、図８に基づいて説明する。
編集内容ファイル１０３は、編集内容情報１０３Ａを含んでいる。
編集内容情報１０３Ａは、編集変数名と、分割フラグ値と、暗号鍵ファイル名とを含んでいる。
図７に戻り、Ｓ１３８から説明を続ける。
【００４２】
Ｓ１３８において、編集内容決定部１３０は、Ｓ１３２で選択していない未選択の個別情報１７３があるか判定する。
未選択の個別情報１７３がある場合（ＹＥＳ）、処理はＳ１３２に戻る。
未選択の個別情報１７３がない場合（ＮＯ）、編集内容決定処理（Ｓ１３０）は終了する。
図２に戻り、Ｓ１４０から説明を続ける。
【００４３】
Ｓ１４０において、データ編集部１４０は、Ｓ１３０で生成された編集内容ファイル１０３に基づいて、バインド変数ファイル１０２を編集する。
但し、編集内容ファイル１０３に編集内容情報が設定されていない場合、データ編集部１４０はバインド変数ファイル１０２を編集しない。
Ｓ１４０の後、処理はＳ１５０に進む。
【００４４】
図９は、実施の形態１におけるデータ編集部１４０の機能構成図である。
実施の形態１におけるデータ編集部１４０の機能構成について、図９に基づいて説明する。
データ編集部１４０は、編集制御部１４１と、データ分割部１４２と、データ暗号化部１４３と、データエンコード部１４４と、データ結合部１４５とを備える。
編集制御部１４１はデータ編集部１４０を制御する。
データ分割部１４２はデータを分割する。
データ暗号化部１４３はデータを暗号化する。
データエンコード部１４４はデータをエンコードする。
データ結合部１４５は複数のデータを結合する。
【００４５】
図１０、図１１は、実施の形態１におけるデータ編集処理（Ｓ１４０）のフローチャートである。
実施の形態１におけるデータ編集処理（Ｓ１４０）について、図１０および図１１に基づいて説明する。
【００４６】
Ｓ１４１（図１０参照）において、編集制御部１４１は、編集内容ファイル１０３から、未選択の編集内容情報１０３Ａを一つ選択する。
例えば、編集制御部１４１は、編集内容ファイル１０３（図８参照）から、編集変数名が＠ＵＳＥＲＮＡＭＥである編集内容情報１０３Ａを選択する。
Ｓ１４１の後、処理はＳ１４２に進む。
【００４７】
Ｓ１４２において、編集制御部１４１は、Ｓ１４１で選択した編集内容情報１０３Ａから編集変数名（第一のデータ名の一例）を取得する。
そして、編集制御部１４１は、編集変数名と同じバインド変数名に対応付けられたデータをバインド変数ファイル１０２から取得する。Ｓ１４２で取得されるデータを編集データ（第一のデータの一例）という。
例えば、編集内容情報に含まれる編集変数名が＠ＵＳＥＲＮＡＭＥである場合、データ編集部１４０は、＠ＵＳＥＲＮＡＭＥに対応付けられた編集データである山田太郎を、バインド変数ファイル１０２（図４参照）から取得する。
Ｓ１４２の後、処理はＳ１４３に進む。
【００４８】
Ｓ１４３において、編集制御部１４１は、Ｓ１４１で選択された編集内容情報１０３Ａに含まれる分割フラグ値に基づいて、編集データを分割するか判定する。
編集データを分割する場合（ＹＥＳ）、処理はＳ１４４−１に進む。
編集データを分割しない場合（ＮＯ）、処理はＳ１４５−１に進む。
【００４９】
Ｓ１４４−１において、データ分割部１４２は、Ｓ１４２で取得された編集データを所定の分割単位毎に分割する。これにより、複数の分割データが得られる。
例えば、編集データが山田太郎であり、分割単位が１文字である場合、データ分割部１４２は、山田太郎を山、田、太、郎の４文字に分割する。
Ｓ１４４−１の後、処理はＳ１４４−２に進む。
【００５０】
Ｓ１４４−２において、データ暗号化部１４３は、Ｓ１４１で選択された編集内容情報１０３Ａに含まれる暗号鍵ファイル名で識別される暗号鍵ファイル１８１から、暗号鍵を取得する。
そして、データ暗号化部１４３は、Ｓ１４４−１で得られた複数の分割データを暗号鍵を用いて暗号化する。
Ｓ１４４−２の後、処理はＳ１４４−３に進む。
【００５１】
Ｓ１４４−３において、データエンコード部１４４は、Ｓ１４４−２で得られた暗号化された複数の分割データを、検索可能な形式にエンコードする。
例えば、データエンコード部１４４は、バイナリコードである分割データをＢＡＳＥ６４で文字コードにエンコードする。ＢＡＳＥ６４はエンコード方式の一例であり、文字コードは、文字、数値または記号を表すコードであり、検索可能な形式の一例である。
Ｓ１４４−３の後、処理はＳ１４４−４に進む。
【００５２】
Ｓ１４４−４において、データ結合部１４５は、Ｓ１４４−３で得られたエンコードされた複数の分割データを結合する。これにより、編集された編集データが得られる。編集された編集データは、検索可能な形式であるため（Ｓ１４４−３参照）、完全一致と部分一致とのいずれの条件であっても検索することができる。
Ｓ１４４−４の後、処理はＳ１４６（図１１参照）に進む。
【００５３】
Ｓ１４５−１（図１１参照）において、データ暗号化部１４３は、Ｓ１４１で選択された編集内容情報１０３Ａから暗号鍵ファイル名を取得し、暗号鍵ファイル名で識別される暗号鍵ファイル１８１から暗号鍵を取得する。
そして、データ暗号化部１４３は、Ｓ１４２で取得された編集データを暗号鍵を用いて暗号化する。
Ｓ１４５−１の後、処理はＳ１４５−２に進む。
【００５４】
Ｓ１４５−２において、データ結合部１４５は、Ｓ１４５−１で得られた暗号化された編集データを、検索可能な形式にエンコードする（Ｓ１４４−３と同様）。これにより、編集された編集データが得られる。編集された編集データは、検索可能な形式であるため、完全一致と部分一致とのいずれの条件であっても検索することができる。
Ｓ１４５−２の後、処理はＳ１４６に進む。
【００５５】
Ｓ１４６において、編集制御部１４１は、Ｓ１４４−４またはＳ１４５−２で得られた編集された編集データを、バインド変数ファイル１０２に上書きする。
Ｓ１４６の後、処理はＳ１４７に進む。
【００５６】
図１２は、実施の形態１におけるバインド変数ファイル１０２の一例を示す図である。
バインド変数ファイル１０２（図４参照）に含まれる山田太郎を編集して得られた編集データが５ｐｑＸ５Ｙ＋３５ＹｙＷである場合、編集制御部１４１は山田太郎を５ｐｑＸ５Ｙ＋３５ＹｙＷに更新する（図１２参照）。
図１１に戻り、Ｓ１４７から説明を続ける。
【００５７】
Ｓ１４７において、編集制御部１４１は、Ｓ１４１（図１０参照）で選択していない未選択の編集内容情報１０３Ａがあるか判定する。
未選択の編集内容情報１０３Ａがある場合（ＹＥＳ）、処理はＳ１４１に戻る。
未選択の編集内容情報１０３Ａがない場合（ＮＯ）、データ編集処理（Ｓ１４０）は終了する。
図２に戻り、Ｓ１５０から説明を続ける。
【００５８】
Ｓ１５０において、データベースＩＦ部１５０は、Ｓ１１０で取得されたＳＱＬファイル１０１と、Ｓ１４０で編集されたバインド変数ファイル１０２とをデータベース部１９１に出力する。
そして、データベース部１９１は、ＳＱＬファイル１０１に含まれるＳＱＬ文に基づいて、バインド変数ファイル１０２に含まれる複数のデータを、データテーブル１９３に登録する。
Ｓ１５０の後、データ登録処理は終了する。
【００５９】
図１３は、実施の形態１におけるＳＱＬ文１０１Ａの一例を示す図である。
実施の形態１におけるＳＱＬ文１０１Ａの一例について、図１３に基づいて説明する。
バインド変数ファイル１０２（図１２参照）に含まれる各データを、ＳＱＬ文のフォーマット（図３参照）に設定することによって、ＳＱＬ文１０１Ａ（図１３参照）が得られる。
【００６０】
図１４は、実施の形態１におけるデータテーブル１９３の一例を示す図である。
実施の形態１におけるデータテーブル１９３の一例について、図１４に基づいて説明する。
データテーブル１９３の名称はＵＳＥＲＴＡＢＬＥである。
データテーブル１９３は、ＴＥＮＡＮＴＩＤと、ＵＳＥＲＩＤと、ＵＳＥＲＮＡＭＥと、ＫＩＮＤとの４つのデータ列（カラムともいう）を含んでいる。
一番目のレコードのＵＳＥＲＮＡＭＥである５ｐｑＸ５Ｙ＋３５ＹｙＷは、暗号化およびエンコードされている。一方、二番目のレコードのＵＳＥＲＮＡＭＥである山田花子は、暗号化およびエンコードされていない。
一番目のレコードのＫＩＮＤである社員は、暗号化およびエンコードされていない。一方、三番目のレコードのＫＩＮＤであるＭＴＡｙＸ５は、暗号化およびエンコードされている。
【００６１】
データベース部１９１は、バインド変数ファイル１０２（図１２参照）に含まれる複数のデータを、データテーブル１９３（図１４参照）に以下のように登録する。
データベース部１９１は、ＳＱＬファイル１０１（図３参照）からＳＱＬ文のフォーマットを取得する。
データベース部１９１は、ＳＱＬ文のフォーマットに含まれるバインド変数名毎に、同じバインド変数名に対応付けられたデータをバインド変数ファイル１０２から取得する。
データベース部１９１は、ＳＱＬ文のフォーマットに含まれる各バインド変数名に、バインド変数ファイル１０２から取得した各データを設定する。これにより、実行可能なＳＱＬ文１０１Ａ（図１３参照）が得られる。
データベース部１９１は、ＳＱＬ文１０１Ａを実行することによって、データテーブル１９３（一番目のレコードを参照）に、バインド変数ファイル１０２に含まれる複数のデータを登録する。
【００６２】
図１５は、実施の形態１におけるデータ登録装置１００のハードウェア構成の一例を示す図である。
実施の形態１におけるデータ登録装置１００のハードウェア構成の一例について、図１５に基づいて説明する。但し、データ登録装置１００のハードウェア構成は図１５に示す構成と異なる構成であってもよい。
【００６３】
データ登録装置１００は、演算装置９０１、補助記憶装置９０２、主記憶装置９０３、通信装置９０４および入出力装置９０５を備えるコンピュータである。
演算装置９０１、補助記憶装置９０２、主記憶装置９０３、通信装置９０４および入出力装置９０５はバス９０９に接続している。
【００６４】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリまたはハードディスク装置である。
主記憶装置９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、有線または無線でインターネット、ＬＡＮ（ローカルエリアネットワーク）、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置９０５は、例えば、マウス、キーボード、ディスプレイ装置である。
【００６５】
プログラムは、通常は補助記憶装置９０２に記憶されており、主記憶装置９０３にロードされ、演算装置９０１に読み込まれ、演算装置９０１によって実行される。
例えば、オペレーティングシステム（ＯＳ）が補助記憶装置９０２に記憶される。また、「〜部」として説明している機能を実現するプログラムが補助記憶装置９０２に記憶される。そして、ＯＳおよび「〜部」として説明している機能を実現するプログラムは主記憶装置９０３にロードされ、演算装置９０１によって実行される。「〜部」は「〜処理」「〜工程」「〜プラグラム」「〜装置」と読み替えることができる。
【００６６】
「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等の処理の結果を示す情報、データ、ファイル、信号値または変数値が主記憶装置９０３または補助記憶装置９０２に記憶される。
【００６７】
実施の形態１により、データテーブル１９３のレコードに設定されるデータを編集（暗号化、エンコード）するか否かを、同一レコードに設定される他のデータに基づいて選択することができる。
【００６８】
実施の形態２．
暗号化されたデータを検索する形態について説明する。
【００６９】
図１６は、実施の形態２におけるデータ検索装置２００の機能構成図である。
実施の形態２におけるデータ検索装置２００の機能構成について、図１６に基づいて説明する。
【００７０】
データ検索装置２００は、検索キーワードおよび検索結果データを編集する装置である。
データ検索装置２００は、アプリケーションＩＦ部２１０（キーワード取得部の一例）と、設定情報選択部２２０と、編集内容決定部２３０（キーワード編集判定部の一例）とを備える。
データ検索装置２００は、編集部２４０（キーワード編集部、データ編集判定部、データ編集部の一例）と、データベースＩＦ部２５０（データ検索部、検索結果取得部の一例）と、検索装置記憶部２８０とを備える。
【００７１】
アプリケーションＩＦ部２１０は、アプリケーション部１９０からＳＱＬファイル２０１とバインド変数ファイル２０２とを取得する。
ＳＱＬファイル２０１は、データ検索用のＳＱＬ文を含む。
バインド変数ファイル２０２は、ＳＱＬ文に含まれる変数名に対応付けられた複数のキーワードを含む。
【００７２】
設定情報選択部２２０は、バインド変数ファイル２０２に含まれるキーワードに基づいて、検索設定ファイル２７０から設定情報２７１を選択する。
検索設定ファイル２７０は複数の設定情報２７１を含み、各設定情報２７１はキーワードおよびデータの編集条件を含む。
【００７３】
編集内容決定部２３０は、設定情報２７１に含まれる編集条件に基づいて、編集内容ファイル２０３を生成する。
編集内容ファイル２０３は、キーワードおよびデータの編集内容を指定する。
【００７４】
編集部２４０は、編集内容ファイル２０３が指定する編集内容に従って、バインド変数ファイル１０２に含まれるキーワードを編集する。
【００７５】
データベースＩＦ部２５０は、ＳＱＬファイル２０１と、編集されたキーワードを含んだバインド変数ファイル２０２とを、データベース部１９１に出力する。
データベースＩＦ部２５０は、データベース部１９１から検索結果ファイル２０４を取得する。
検索結果ファイル２０４は、データテーブル１９３のカラム名に対応付けられた複数のデータを含む。
【００７６】
編集部２４０は、編集内容ファイル２０３が指定する編集内容に従って、検索結果ファイル２０４に含まれるデータを編集する。
【００７７】
アプリケーションＩＦ部２１０は、編集されたデータを含んだ検索結果ファイル２０４をアプリケーション部１９０に出力する。
【００７８】
検索装置記憶部２８０は、データ検索装置２００が使用、生成または入出力するデータを記憶する。
例えば、検索装置記憶部２８０は、ＳＱＬファイル２０１と、バインド変数ファイル２０２と、編集内容ファイル２０３と、検索結果ファイル２０４と、検索設定ファイル２７０と、暗号鍵ファイル２８１とを記憶する。
【００７９】
アプリケーション部２９０は、利用者から指定されたＳＱＬファイル２０１とバインド変数ファイル２０２とをアプリケーションＩＦ部１１０に出力し、アプリケーションＩＦ部２１０から検索結果ファイル２０４を取得する。
アプリケーション部２９０は、データ検索装置２００に備わる機能であっても構わないし、データ検索装置２００とは別の装置（例えば、ユーザ端末装置）に備わる機能であっても構わない。
【００８０】
データベース部２９１は、ＳＱＬファイル２０１に含まれるＳＱＬ文に基づいて、バインド変数ファイル２０２に含まれる各キーワードを用いてデータテーブル１９３を検索し、検索結果を示す検索結果ファイル２０４をデータベースＩＦ部２５０に出力する。データテーブル２９３を記憶する記憶部をデータベース記憶部２９２という。
データベース部２９１およびデータベース記憶部２９２は、データ検索装置２００に備わる機能であっても構わないし、データ検索装置２００とは別の装置（例えば、データベース装置）に備わる機能であっても構わない。
【００８１】
図１７は、実施の形態２におけるデータ検索装置２００のデータ検索処理の流れを示すフローチャートである。
実施の形態２におけるデータ検索装置２００のデータ検索処理について、図１７に基づいて説明する。
【００８２】
Ｓ２１０において、利用者はＳＱＬファイル２０１とバインド変数ファイル２０２とを指定し、アプリケーション部２９０は指定されたＳＱＬファイル２０１とバインド変数ファイル２０２とをアプリケーションＩＦ部２１０に出力する。
そして、アプリケーションＩＦ部２１０は、ＳＱＬファイル２０１とバインド変数ファイル２０２とを取得する。
Ｓ２１０の後、処理はＳ２２０に進む。
【００８３】
図１８は、実施の形態２におけるＳＱＬファイル２０１の一例を示す図である。
実施の形態２におけるＳＱＬファイル２０１の一例について、図１８に基づいて説明する。
ＳＱＬファイル２０１は、ＳＱＬ文（ＳＥＬＥＣＴ・・・）のフォーマットと、ＳＱＬ文を識別するＳＱＬＩＤとを含んでいる。
また、ＳＱＬ文は、複数のバインド変数名（＠ＴＥＮＡＮＴＩＤ、＠ＫＥＹＷＯＲＤ、＠ＫＩＮＤ）を含んでいる。
【００８４】
図１９は、実施の形態２におけるバインド変数ファイル２０２の一例を示す図である。
実施の形態２におけるバインド変数ファイル２０２の一例について、図１９に基づいて説明する。
バインド変数ファイル２０２は、バインド変数名に対応付けられた複数のキーワード（１０１、太郎、社員）を含んでいる。
図１７に戻り、Ｓ２２０から説明を続ける。
【００８５】
Ｓ２２０において、設定情報選択部２２０は、バインド変数ファイル２０２に基づいて、検索設定ファイル２７０から設定情報２７１を選択する。
但し、バインド変数ファイル２０２に基づいて設定情報２７１が登録設定ファイル１７０にない場合、設定情報選択部２２０は設定情報２７１を選択しない。
Ｓ２２０の後、処理はＳ２３０に進む。
【００８６】
図２０は、実施の形態２における設定情報選択処理（Ｓ２２０）のフローチャートである。
実施の形態２における設定情報選択処理（Ｓ２２０）について、図２０に基づいて説明する。
【００８７】
Ｓ２２１において、設定情報選択部２２０は、検索設定ファイル２７０から識別変数名を取得する。
識別変数名は、バインド変数ファイル２０２に含まれる複数のバインド変数名のうちで設定情報２７１を識別する識別値に対応付けられるバインド変数名である。
Ｓ２２１の後、処理はＳ２２２に進む。
【００８８】
図２１は、実施の形態２における検索設定ファイル２７０の一例を示す図である。
実施の形態２における検索設定ファイル２７０の一例について、図２１に基づいて説明する。
検索設定ファイル２７０は、識別変数名（識別子名の一例）と、一つ以上の設定情報２７１とを含んでいる。
設定情報２７１は、識別値（設定識別子の一例）と、暗号鍵ファイル名と、一つ以上の編集情報２７２とを含んでいる。
編集情報２７２は、ＳＱＬＩＤと、キーワード用の一つ以上の個別情報２７３と、データ用の一つ以上の個別情報２７５とを含んでいる。
個別情報２７３は、編集変数名（第一のキーワード名の一例）と、分割フラグ値と、一つ以上の条件情報２７４とを含んでいる。
条件情報２７４は、条件変数名（第二のキーワード名の一例）と、編集条件と、条件値とを含んでいる。
個別情報２７５は、編集カラム名（第一のデータ名の一例）と、分割フラグ値と、一つ以上の条件情報２７６とを含んでいる。
条件情報２７６は、条件カラム名（第二のデータ名の一例）と、編集条件と、条件値とを含んでいる。
【００８９】
例えば、設定情報選択部２２０は、検索設定ファイル２７０（図２１参照）から、識別変数名である＠ＴＥＮＡＮＴＩＤを取得する。
図２０に戻り、Ｓ２２２から説明を続ける。
【００９０】
Ｓ２２２において、設定情報選択部２２０は、Ｓ２２１で取得した識別変数名と同じバインド変数名に対応付けられたキーワードを、バインド変数ファイル２０２から取得する。Ｓ２２２で取得されるキーワードを識別キーワードという。
例えば、識別変数名が＠ＴＥＮＡＮＴＩＤである場合、設定情報選択部２２０は、バインド変数ファイル２０２（図１９参照）から、＠ＴＥＮＡＮＴＩＤに対応付けられた識別キーワードである１０１を取得する。
Ｓ２２２の後、処理はＳ２２３に進む。但し、バインド変数ファイル２０２に識別データがない場合、設定情報選択処理（Ｓ２２０）は終了する。
【００９１】
Ｓ２２３において、設定情報選択部２２０は、Ｓ２２２で取得した識別キーワードと同じ識別値を含んだ設定情報２７１を、検索設定ファイル２７０から選択する。
例えば、識別キーワードが１０１である場合、設定情報選択部２２０は、検索設定ファイル２７０（図２１参照）から、識別値が１０１である設定情報２７１を選択する。
但し、該当する設定情報２７１が登録設定ファイル１７０にない場合、設定情報選択部２２０は設定情報２７１を選択しない。
Ｓ２２３の後、設定情報選択処理（Ｓ２２０）は終了する。
図１７に戻り、Ｓ２３０から説明を続ける。
【００９２】
Ｓ２３０において、編集内容決定部２３０は、Ｓ２２０で選択された設定情報２７１に基づいて、編集内容ファイル２０３を生成する。
但し、Ｓ２２０で設定情報２７１が選択されなかった場合、編集内容決定部２３０は空の編集内容ファイル２０３を生成する。
Ｓ２３０の後、処理はＳ２４０に進む。
【００９３】
図２２は、実施の形態２における編集内容決定処理（Ｓ２３０）のフローチャートである。
実施の形態２における編集内容決定処理（Ｓ２３０）について、図２２に基づいて説明する。
【００９４】
Ｓ２３１からＳ２３８は、実施の形態１（図７参照）で説明した編集内容決定処理（Ｓ１３０）のＳ１３１からＳ１３８と同様である（但し、符号は異なる）。
Ｓ２３８において、未選択の個別情報２７３がない場合（ＮＯ）、処理はＳ２３９に進む。
【００９５】
Ｓ２３９において、編集内容決定部２３０は、Ｓ２３１で選択した設定情報２７１に含まれる個別情報２７５の情報を編集内容ファイル２０３に設定する。
Ｓ２３９で設定される情報をデータ用の編集内容情報２０３Ａという。また、Ｓ２３７で設定される情報をキーワード用の編集内容情報２０３Ｂという。
Ｓ２３９の後、編集内容決定処理（Ｓ２３０）は終了する。
【００９６】
図２３は、実施の形態２における編集内容ファイル２０３の一例を示す図である。
実施の形態２における編集内容ファイル２０３の一例について、図２３に基づいて説明する。
編集内容ファイル２０３は、キーワード用の編集内容情報２０３Ａと、データ用の編集内容情報２０３Ｂとを含んでいる。
キーワード用の編集内容情報２０３Ａは、編集変数名（第一のキーワード名の一例）と、分割フラグ値と、暗号鍵ファイル名（暗号化鍵情報の一例）との組を含んでいる。
データ用の編集内容情報２０３Ｂは、編集カラム名（第一のデータ名の一例）と、分割フラグ値と、暗号鍵ファイル名（復号鍵情報の一例）と、条件カラム名（第二のデータ名の一例）と、編集条件と、条件値との組を含んでいる。
図１７に戻り、Ｓ２４０から説明を続ける。
【００９７】
Ｓ２４０において、編集部２４０は、Ｓ２３０で生成された編集内容ファイル２０３に基づいて、バインド変数ファイル２０２を編集する。
但し、編集内容ファイル２０３にキーワード用の編集内容情報２０３Ａが設定されていない場合、編集部２４０はバインド変数ファイル２０２を編集しない。
Ｓ２４０の後、処理はＳ２５０に進む。
【００９８】
図２４は、実施の形態２における編集部２４０の機能構成図である。
実施の形態２における編集部２４０の機能構成について、図２４に基づいて説明する。
編集部２４０は、編集制御部２４１と、分割部２４２と、暗号化部２４３と、エンコード部２４４と、結合部２４５と、復号部２４６と、デコード部２４７とを備える。
編集制御部２４１から結合部２４５は、実施の形態１（図９参照）で説明した編集制御部１４１からデータ結合部１４５に相当する。
【００９９】
編集制御部２４１（データ編集判定部の一例）は編集部２４０を制御する。
分割部２４２（キーワード編集部、データ編集部の一例）はキーワードおよびデータを分割する。
暗号化部２４３（キーワード編集部の一例）はキーワードを暗号化する。
エンコード部２４４（キーワード編集部の一例）はキーワードをエンコードする。
結合部２４５（キーワード編集部、データ編集部の一例）はキーワードおよびデータを結合する。
復号部２４６（データ編集部の一例）はデータを復号する。
デコード部２４７（データ編集部の一例）はデータをデコードする。
【０１００】
図２５、図２６は、実施の形態２におけるキーワード編集処理（Ｓ２４０）のフローチャートである。
実施の形態２におけるキーワード編集処理（Ｓ２４０）について、図２５および図２６に基づいて説明する。
【０１０１】
キーワード編集処理（Ｓ２４０）は、実施の形態１（図１０、図１１参照）で説明したデータ編集処理（Ｓ１４０）と同様の処理である。
但し、キーワード編集部（Ｓ２４０）は、以下の点でデータ編集処理（Ｓ１４０）と異なる。
【０１０２】
Ｓ２４１において、編集制御部２４１は、編集内容ファイル２０３からキーワード用の編集内容情報２０３Ａを選択する。
Ｓ２４２において、編集制御部２４１は、バインド変数ファイル２０２から編集キーワード（第一のキーワードの一例）を取得する。
Ｓ２４４−１からＳ２４４−４において、編集部２４０は編集キーワードを編集する。
Ｓ２４５−１およびＳ２４５−２において、編集部２４０は編集キーワードを編集する。
Ｓ２４６において、編集制御部２４１は、バインド変数ファイル２０２に含まれる編集キーワードを上書きする。
【０１０３】
図２７は、実施の形態２におけるバインド変数ファイル２０２の一例を示す図である。
バインド変数ファイル２０２（図１９参照）に含まれる太郎を編集して得られた編集キーワードが３５ＹｙＷである場合、編集制御部１４１は太郎を３５ＹｙＷに更新する（図２７参照）。
図１７に戻り、Ｓ２５０から説明を続ける。
【０１０４】
Ｓ２５０において、データベースＩＦ部２５０は、Ｓ２１０で取得されたＳＱＬファイル２０１と、Ｓ２４０で編集されたバインド変数ファイル２０２とをデータベース部２９１に出力する。
データベース部２９１は、ＳＱＬファイル２０１に含まれるＳＱＬ文とバインド変数ファイル２０２に含まれる複数のキーワードとを用いてデータテーブル１９３を検索し、検索結果を含んだ検索結果ファイル２０４を生成する。
Ｓ２５０の後、処理はＳ２６０に進む。
【０１０５】
図２８は、実施の形態２におけるＳＱＬ文２０１Ａの一例を示す図である。
実施の形態２におけるＳＱＬ文２０１Ａの一例について、図２８に基づいて説明する。
バインド変数ファイル２０２（図２７参照）に含まれる各キーワードを、ＳＱＬ文のフォーマット（図１８参照）に設定することによって、ＳＱＬ文２０１Ａ（図２８参照）が得られる。
【０１０６】
図２９は、実施の形態２におけるデータテーブル２９３の一例を示す図である。
実施の形態２におけるデータテーブル２９３の一例について、図２９に基づいて説明する。
データテーブル２９３は、実施の形態１（図１４参照）で説明したデータテーブル１９３と同じである。
一番目のレコードのＵＳＥＲＮＡＭＥである５ｐｑＸ５Ｙ＋３５ＹｙＷは、ＳＱＬ文２０１Ａ（図２８参照）に含まれるキーワードである３５ＹｙＷと部分的に一致する。
【０１０７】
図３０は、実施の形態２における検索結果ファイル２０４の一例を示す図である。
実施の形態２における検索結果ファイル２０４の一例について、図３０に基づいて説明する。
検索結果ファイル２０４は、データテーブル２９３（図２９参照）の一番目のレコードの内容を含んでいる。
【０１０８】
データベース部２９１は、以下のようにデータテーブル１９３を検索する。
データベース部２９１は、ＳＱＬファイル２０１（図１８参照）からＳＱＬ文のフォーマットを取得する。
データベース部２９１は、ＳＱＬ文のフォーマットに含まれるバインド変数毎に、同じバインド変数名に対応付けられたキーワードをバインド変数ファイル２０２（図２７参照）から取得する。
データベース部２９１は、ＳＱＬ文のフォーマットに含まれる各バインド変数名に、バインド変数ファイル２０２から取得した各キーワードを設定する。これにより、実行可能なＳＱＬ文２０１Ａ（図２８参照）が得られる。
データベース部２９１は、ＳＱＬ文２０１Ａを実行することによってデータテーブル２９３（図２９参照）を検索し、検索結果を含んだ検索結果ファイル２０４（図３０）を生成する。
図１７に戻り、Ｓ２６０から説明を続ける。
【０１０９】
Ｓ２６０において、データベース部２９１はＳ２５０で生成した検索結果ファイル２０４を出力し、データベースＩＦ部２５０は検索結果ファイル２０４を取得する。
Ｓ２６０の後、処理はＳ２７０に進む。
【０１１０】
Ｓ２７０において、編集部２４０は、Ｓ２３０で生成された編集内容ファイル２０３に基づいて、検索結果ファイル２０４を編集する。
但し、編集内容ファイル２０３にデータ用の編集内容情報２０３Ｂがない場合、編集部２４０は検索結果ファイル２０４を編集しない。
Ｓ２７０の後、処理はＳ２８０に進む。
【０１１１】
図３１、図３２は、実施の形態２におけるデータ編集処理（Ｓ２７０）のフローチャートである。
実施の形態２におけるデータ編集処理（Ｓ２７０）について、図３１および図３２に基づいて説明する。
【０１１２】
Ｓ２７１（図３１参照）において、編集制御部２４１は、編集内容ファイル２０３から、データ用の未選択の編集内容情報２０３Ｂを一つ選択する。
例えば、編集制御部２４１は、編集内容ファイル２０３（図２３参照）から、編集カラム名がＵＳＥＲＮＡＭＥである編集内容情報２０３Ｂを選択する。
Ｓ２７１の後、処理はＳ２７２に進む。
【０１１３】
Ｓ２７２において、編集制御部２４１は、Ｓ２７１で選択した編集内容情報２０３Ｂから条件カラム名を取得する。
そして、編集制御部２４１は、条件カラム名と同じカラム名に対応付けられたデータを検索結果ファイル２０４から取得する。Ｓ２７２で取得されるデータを条件データという。
例えば、条件カラム名がＫＩＮＤである場合、編集制御部２４１は、ＫＩＮＤに対応付けられた条件データである社員を、検索結果ファイル２０４（図３０参照）から取得する。
Ｓ２７２の後、処理はＳ２７３に進む。
【０１１４】
Ｓ２７３において、編集制御部２４１は、Ｓ２７２で取得した条件データ毎に、条件データと、Ｓ２７１で選択した編集内容情報２０３Ｂに含まれる比較値とを比較する。
そして、編集制御部２４１は、比較結果が編集内容情報２０３Ｂに含まれる編集条件を満たすか判定する。比較結果が編集条件を満たす場合、条件データは編集条件を満たす。
例えば、条件データが社員であり、条件値が社員であり、編集条件が一致である場合、条件データが条件値と一致するため、条件データは編集条件を満たす。
編集条件を満たす条件データがある場合（ＹＥＳ）、処理はＳ２７４に進む。
編集条件を満たす条件データがない場合（ＮＯ）、処理はＳ２７９（図３２参照）に進む。
【０１１５】
Ｓ２７４において、編集制御部２４１は、Ｓ２７１で選択した編集内容情報２０３Ｂから編集カラム名を取得する。
そして、編集制御部２４１は、編集条件を満たす条件データと、編集カラム名と同じカラム名とに対応付けられたデータを、検索結果ファイル２０４から取得する。Ｓ２７４で取得されるデータを編集データという。
例えば、編集カラム名がＵＳＥＲＮＡＭＥである場合、編集制御部２４１は、ＵＳＥＲＮＡＭＥに対応付けられた編集データである５ｐｑＸ５Ｙ＋３５ＹｙＷを、検索結果ファイル２０４（図３０参照）から取得する。
Ｓ２７４の後、処理はＳ２７５に進む。
【０１１６】
Ｓ２７５において、編集制御部２４１は、Ｓ２７１で選択した編集内容情報２０３Ｂに含まれる分割フラグ値に基づいて、編集データを分割するか判定する。
編集データを分割する場合（ＹＥＳ）、処理はＳ２７６−１（図３２参照）に進む。
編集データを分割しない場合（ＮＯ）、処理はＳ７７７−１（図３２参照）に進む。
【０１１７】
Ｓ２７６−１（図３２参照）において、分割部２４２は、Ｓ２７４で取得された編集データを所定の分割単位毎に分割する。これにより、複数の分割データが得られる。
例えば、編集データが５ｐｑＸ５Ｙ＋３５ＹｙＷであり、分割単位が３文字である場合、分割部２４２は、５ｐｑＸ５Ｙ＋３５ＹｙＷを５ｐｑ、Ｘ５Ｙ、＋３５、ＹｙＷに分割する。
Ｓ２７６−１の後、処理は２７６−２に進む。
【０１１８】
Ｓ２７６−２において、デコード部２４７は、Ｓ２７６−１で得られた複数の分割データをデコードする。
例えば、デコード部２４７は、文字コードである分割データをＢＡＳＥ６４でバイナリコードにデコードする。ＢＡＳＥ６４はデコード方式の一例である。
Ｓ２７６−２の後、処理はＳ２７６−３に進む。
【０１１９】
Ｓ２７６−３において、復号部２４６は、Ｓ２７１で選択された編集内容情報２０３Ｂから暗号鍵ファイル名を取得し、暗号鍵ファイル名で識別される暗号鍵ファイル２８１から復号鍵を取得する。
そして、復号部２４６は、Ｓ２７６−２で得られたデコードされた複数の分割データを復号鍵を用いて復号する。
Ｓ２７６−３の後、処理はＳ２７６−４に進む。
【０１２０】
Ｓ２７６−４において、結合部２４５は、Ｓ２７６−３で得られた復号された複数の分割データを結合する。これにより、編集された編集データが得られる。
Ｓ２７６−４の後、処理はＳ２７８に進む。
【０１２１】
Ｓ２７７−１において、デコード部２４７は、Ｓ２７４で取得された編集データをデコードする（Ｓ２７６−２と同様）。
Ｓ２７７−１の後、処理はＳ２７７−２に進む。
【０１２２】
Ｓ２７７−２において、復号部２４６は、Ｓ２７１で選択された編集内容情報２０３Ｂから暗号鍵ファイル名を取得し、暗号鍵ファイル名で識別される暗号鍵ファイル２８１から復号鍵を取得する。
そして、復号部２４６は、Ｓ２７７−１でデコードされた編集データを復号鍵を用いて復号する。これにより、編集された編集データが得られる。
Ｓ２７７−２の後、処理はＳ２７８に進む。
【０１２３】
Ｓ２７８において、編集制御部２４１は、Ｓ２７６−４またはＳ２７７−２で得られた編集された編集データを、検索結果ファイル２０４に上書きする。
Ｓ２７８の後、処理はＳ２７９に進む。
【０１２４】
図３３は、実施の形態２における検索結果ファイル２０４の一例を示す図である。
検索結果ファイル２０４（図３０参照）に含まれる５ｐｑＸ５Ｙ＋３５ＹｙＷを編集して得られた編集データが山田太郎である場合、編集制御部２４１は５ｐｑＸ５Ｙ＋３５ＹｙＷを山田太郎に更新する（図３３参照）。
図３２に戻り、Ｓ２７９から説明を続ける。
【０１２５】
Ｓ２７９において、編集制御部２４１は、Ｓ２７１（図３１参照）で選択していない未選択の編集内容情報２０３Ｂがあるか判定する。
未選択の編集内容情報２０３Ｂがある場合（ＹＥＳ）、処理はＳ２７１に戻る。
未選択の編集内容情報２０３Ｂがない場合（ＮＯ）、データ編集処理（Ｓ２７０）は終了する。
図１７に戻り、Ｓ２８０から説明を続ける。
【０１２６】
Ｓ２８０において、アプリケーションＩＦ部２１０は、Ｓ２７０で編集された検索結果ファイル２０４をアプリケーション部２９０に出力する。
アプリケーション部２９０は、検索結果ファイル２０４を取得し、検索結果ファイル２０４の内容を表示する。
Ｓ２８０の後、データ検索処理は終了する。
【０１２７】
実施の形態２により、ＳＱＬ文に設定されるキーワードを編集（暗号化、エンコード）するか否かを、同一ＳＱＬ文に設定される他のキーワードに基づいて選択することができる。
また、データテーブル２９３のレコードに設定されるデータを編集（復号、デコード）するか否かを、同一レコードに設定される他のデータに基づいて選択することができる。
【０１２８】
各実施の形態は、データ検索システム（データ登録装置１００、データ検索装置２００）の形態の一例である。
つまり、データ検索システムは、各実施の形態で説明した構成要素の一部を備えなくても構わない。また、データ検索システムは、各実施の形態で説明していない構成要素を備えても構わない。さらに、データ検索システムは、各実施の形態の構成要素の一部または全てを組み合わせたものであっても構わない。
例えば、データ検索装置２００が、データ登録装置１００の機能を備えても構わない。
また、データ登録装置１００およびデータ検索装置２００は一つの装置（筐体）で構成されてもよいし、複数の装置（システム）で構成されてもよい。
【０１２９】
各実施の形態においてフローチャート等を用いて説明した処理手順は、各実施の形態に係る方法およびプログラムの処理手順の一例である。各実施の形態に係る方法およびプログラムは、各実施の形態で説明した処理手順と一部異なる処理手順で実現されても構わない。
【符号の説明】
【０１３０】
１００  データ登録装置、１０１  ＳＱＬファイル、１０１Ａ  ＳＱＬ文、１０２  バインド変数ファイル、１０３  編集内容ファイル、１０３Ａ  編集内容情報、１１０  アプリケーションＩＦ部、１２０  設定情報選択部、１３０  編集内容決定部、１４０  データ編集部、１４１  編集制御部、１４２  データ分割部、１４３  データ暗号化部、１４４  データエンコード部、１４５  データ結合部、１５０  データベースＩＦ部、１７０  登録設定ファイル、１７１  設定情報、１７２  編集情報、１７３  個別情報、１７４  条件情報、１８０  登録装置記憶部、１８１  暗号鍵ファイル、１９０  アプリケーション部、１９１  データベース部、１９２  データベース記憶部、１９３  データテーブル、２００  データ検索装置、２０１  ＳＱＬファイル、２０１Ａ  ＳＱＬ文、２０２  バインド変数ファイル、２０３  編集内容ファイル、２０３Ａ，２０３Ｂ  編集内容情報、２０４  検索結果ファイル、２１０  アプリケーションＩＦ部、２２０  設定情報選択部、２３０  編集内容決定部、２４０  編集部、２４１  編集制御部、２４２  分割部、２４３  暗号化部、２４４  エンコード部、２４５  結合部、２４６  復号部、２４７  デコード部、２５０  データベースＩＦ部、２７０  検索設定ファイル、２７１  設定情報、２７２  編集情報、２７３  個別情報、２７４  条件情報、２７５  個別情報、２７６  条件情報、２８０  検索装置記憶部、２８１  暗号鍵ファイル、２９０  アプリケーション部、２９１  データベース部、２９２  データベース記憶部、２９３  データテーブル、９０１  演算装置、９０２  補助記憶装置、９０３  主記憶装置、９０４  通信装置、９０５  入出力装置、９０９  バス。
【図１】
2015169996.tif 000003
【図２】
2015169996.tif 000004
【図３】
2015169996.tif 000005
【図４】
2015169996.tif 000006
【図５】
2015169996.tif 000007
【図６】
2015169996.tif 000008
【図７】
2015169996.tif 000009
【図８】
2015169996.tif 000010
【図９】
2015169996.tif 000011
【図１０】
2015169996.tif 000012
【図１１】
2015169996.tif 000013
【図１２】
2015169996.tif 000014
【図１３】
2015169996.tif 000015
【図１４】
2015169996.tif 000016
【図１５】
2015169996.tif 000017
【図１６】
2015169996.tif 000018
【図１７】
2015169996.tif 000019
【図１８】
2015169996.tif 000020
【図１９】
2015169996.tif 000021
【図２０】
2015169996.tif 000022
【図２１】
2015169996.tif 000023
【図２２】
2015169996.tif 000024
【図２３】
2015169996.tif 000025
【図２４】
2015169996.tif 000026
【図２５】
2015169996.tif 000027
【図２６】
2015169996.tif 000028
【図２７】
2015169996.tif 000029
【図２８】
2015169996.tif 000030
【図２９】
2015169996.tif 000031
【図３０】
2015169996.tif 000032
【図３１】
2015169996.tif 000033
【図３２】
2015169996.tif 000034
【図３３】
2015169996.tif 000035