(57)【要約】【課題】ユーザデータの活用を安全且つ円滑に進めることができるデータベース管理装置を提供すること。【解決手段】複数の参照主体により参照される第１階層のユーザデータと、前記第１階層よりも限定的な参照主体により参照される第２階層のユーザデータと、を含む階層的な論理構造を有するデータベースを管理するデータベース管理装置であって、少なくとも、前記第１階層に対応した参照主体からのリードリクエストを受け付け、前記データベースからユーザデータを読み出して前記参照主体に返す第１階層処理部と、前記第２階層に対応した参照主体からのリードリクエストおよびライトリクエストを受け付け、前記データベースからユーザデータを読み出して前記参照主体に返し、または前記データベースにおけるユーザデータを更新する第２階層処理部と、を備えるデータベース管理装置。【選択図】図１
2019219847.tif 000002
【特許請求の範囲】
【請求項１】
複数の参照主体により参照される第１階層のユーザデータと、前記第１階層よりも限定的な参照主体により参照される第２階層のユーザデータと、を含む階層的な論理構造を有するデータベースを管理するデータベース管理装置であって、
少なくとも、
前記第１階層に対応した参照主体からのリードリクエストを受け付け、前記データベースからユーザデータを読み出して前記参照主体に返す第１階層処理部と、
前記第２階層に対応した前記参照主体からのリードリクエストおよびライトリクエストを受け付け、前記データベースからユーザデータを読み出して前記参照主体に返し、または前記データベースにおけるユーザデータを更新する第２階層処理部と、
を備えるデータベース管理装置。
【請求項２】
前記参照主体は、ネットワークを介してサービスを提供するサービス提供者であり、前記階層的な論理構造のうち最下層に格納されるユーザデータは、書き込み元のサービス提供者が管理するユーザのデータである、
請求項１に記載のデータベース管理装置。
【請求項３】
少なくとも、前記第２階層のユーザデータから、前記第１階層のユーザデータとなり得るユーザデータを抽出し、抽出したユーザデータを前記第１階層のユーザデータとして集約させる階層間処理部をさらに備える、
請求項１または２に記載のデータベース管理装置。
【請求項４】
前記第１階層のユーザデータおよび前記第２階層のユーザデータを含む前記階層的な論理構造を定義する、階層定義部をさらに備える、
請求項１から３のいずれか一項に記載のデータベース管理装置。
【請求項５】
前記参照主体による前記第１階層のユーザデータ、または前記第２階層のユーザデータに対するリクエストの受付状況を記憶し、前記参照主体による利用状況を監査する監査部をさらに備える、
請求項１から４のいずれか一項に記載のデータベース管理装置。
【請求項６】
前記階層定義部は、
ネットワークを介して提供されるサービスを分類するカテゴリの情報に基づいて、前記第１階層のユーザデータに前記カテゴリの情報を付与する、
請求項４に記載のデータベース管理装置。
【請求項７】
コンピュータに、
複数の参照主体により参照される第１階層のユーザデータと、前記第１階層よりも限定的な参照主体により参照される第２階層のユーザデータと、を含む階層的な論理構造を有するデータベースを管理するデータベース管理方法であって、
少なくとも、
前記第１階層に対応した参照主体からのリードリクエストを受け付け、前記データベースからユーザデータを読み出して前記参照主体に返し、
前記第２階層に対応した前記参照主体からのリードリクエストおよびライトリクエストを受け付け、前記データベースからユーザデータを読み出して前記参照主体に返し、または前記データベースにおけるユーザデータを更新する、
データベース管理方法。
【請求項８】
コンピュータに、
複数の参照主体により参照される第１階層のユーザデータと、前記第１階層よりも限定的な参照主体により参照される第２階層のユーザデータと、を含む階層的な論理構造を有するデータベースを管理させるプログラムであって、
少なくとも、
前記第１階層に対応した参照主体からのリードリクエストを受け付けさせ、前記データベースからユーザデータを読み出して前記参照主体に返させ、
前記第２階層に対応した前記参照主体からのリードリクエストおよびライトリクエストを受け付けさせ、前記データベースからユーザデータを読み出して前記参照主体に返させ、または前記データベースにおけるユーザデータを更新させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理装置、データベース管理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ネットワークを介してサービスを提供する際に使用されるユーザデータを集中的に管理し、サービスを提供する各サーバにおけるユーザ管理の労力とコストを軽減するユーザデータベースサーバに関する技術情報が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２５１５７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、ユーザデータベースで管理するユーザデータに、ユーザデータに多数の付随情報が対応付けられているため、データレコードを構成する項目数が増加する等、ユーザデータ自体のデータ量が大きくなった場合に、処理速度が著しく低下し、好適な制御が行われない可能性があった。また、上記従来の技術では、ある主体が収集したユーザデータを他の主体が利用しようとする際に、適切な範囲内で利用させることについて考慮されていなかった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、ユーザデータの活用を安全且つ円滑に進めることができるデータベース管理装置、データベース管理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
本発明の一態様は、複数の参照主体により参照される第１階層のユーザデータと、前記第１階層よりも限定的な参照主体により参照される第２階層のユーザデータと、を含む階層的な論理構造を有するデータベースを管理するデータベース管理装置であって、少なくとも、前記第１階層に対応した参照主体からのリードリクエストを受け付け、前記データベースからユーザデータを読み出して前記参照主体に返す第１階層処理部と、前記第２階層に対応した参照主体からのリードリクエストおよびライトリクエストを受け付け、前記データベースからユーザデータを読み出して前記参照主体に返し、または前記データベースにおけるユーザデータを更新する第２階層処理部と、を備えるデータベース管理装置である。
【発明の効果】
【０００７】
本発明の一態様によれば、ユーザデータの活用を安全且つ円滑に進めることができる。
【図面の簡単な説明】
【０００８】
【図１】データベース管理装置が管理するデータベースの論理構造を模式的に示す図。
【図２】シングル情報、クロース情報、およびマルチユース情報の関係を説明する図。
【図３】第１の実施形態のデータベース管理装置１００の構成および利用環境を示す図。
【図４】データベース管理装置１００が管理するユーザデータを模式的に示す図。
【図５】データベース管理装置１００により実行されるアクセス制御処理の流れの一例を示すフローチャート。
【図６】監査部１２４の行う処理の流れの一例を示すフローチャート。
【図７】データベース管理装置１００の解析処理の流れの一例を示すフローチャート。
【図８】クロース情報の一例を示す図。
【図９】階層情報の設計場面の手順を示すユースケース図。
【図１０】階層定義部１０６により実行される階層定義処理の流れの一例を示すフローチャート。
【図１１】第２の実施形態のデータベース管理装置１００Ａの機能概要図。
【図１２】データベース管理装置１００Ａの階層生成処理の流れの一例を示すフローチャート。
【図１３】データベース管理装置１００Ａが管理するユーザデータを模式的に示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、本発明のデータベース管理装置、データベース管理方法、およびプログラムの実施形態について説明する。
【００１０】
データベース管理装置は、一以上のプロセッサにより実現される。データベース管理装置は、複数の参照主体（以下、データベース利用者）により参照される第１階層のユーザデータと、第１階層よりも限定的なデータベース利用者により参照される第２階層のユーザデータと、を含む階層的な論理構造を有するデータベースを管理する装置である。
【００１１】
データベース管理装置は、少なくとも、前記第１階層に対応したデータベース利用者からのリードリクエストを受け付け、前記データベースからユーザデータを読み出して参照主体に返す第１階層処理部と、第２階層に対応した参照主体からのリードリクエストおよびライトリクエストを受け付け、データベースからユーザデータを読み出してデータベース利用者に返し、またはデータベースにおけるユーザデータを更新する第２階層処理部とを備える。
【００１２】
ユーザデータとは、ユーザに関連する種々のデータである。より具体的に、ユーザデータとは、ネットワークを介してサービスを受けるユーザに関連するデータであって、サービス提供者が把握している種々のデータである。ユーザデータは、例えば、ユーザＩＤ、氏名、年齢、性別、職業、住所といった情報を含む。ユーザデータは、ユーザによって入力されたデータに限らず、ネットワーク上の行動等に基づいて推定されたデータ（例えば、趣味趣向など）を含んでもよい。その場合、ユーザデータは、サービス提供者によって管理されるものである。したがって、データベース利用者の一例として、サービス提供者が挙げられる。以下では、データベース利用者はサービス提供者であるものとする。
【００１３】
サービス提供者は、「ショッピング」、「オークション」、「旅行」、「ゲーム」、「地図」、「不動産」などの、例えばネットワークを介したサービスをユーザに提供する。ユーザは、端末装置を介してこれらのサービスを享受する。
【００１４】
データベース管理装置は、例えば、サービス提供者からのリクエストに応じて、当該サービス提供者に付与された権限の範囲内で、ユーザデータの読み出しや更新（新規書き込み、上書き、削除）を行う。また、データベース管理装置は、データベースの定義情報に従って、下位層に格納されたデータを上位層に伝達させる。
【００１５】
図１は、データベース管理装置が管理するデータベースの論理構造を模式的に示す図である。データベース管理装置が管理するユーザデータは、例えば、シングル情報と、クロース情報と、マルチユース情報とに分類することができる。シングル情報とは、単一のサービスに特有のデータのことである。シングル情報は、例えば、サービス「ショッピング」におけるユーザの購買履歴傾向や、サービス「オークション」におけるユーザの落札履歴である。シングル情報は、「最下層のユーザデータ」の一例である。
【００１６】
なお、シングル情報に該当するユーザデータである、ユーザの購買履歴傾向には、購買履歴を特定するヘッダ情報（例えば、購買履歴を一元管理する購買番号を含む情報）は含まれてもよいが、購買履歴の詳細情報に該当するボディ情報（例えば、購入商品を特定する番号や、購入点数を含む情報）は含まれなくてもよい。購買履歴傾向の詳細情報に該当するボディ情報は、例えば、サービス「ショッピング」のデータを管理する外部データサーバ（以下、サービスサーバ５００）により管理される。なお、シングル情報が「第２階層情報」の一例であるならば、クロース情報またはマルチユース情報が「第１階層情報」の一例である。また、クロース情報が「第２階層情報」の一例であるならば、マルチユース情報が「第１階層情報」の一例である。
【００１７】
クロース情報は、２以上のサービスにおいて共通するデータ、または共通するとみなしてもよいとデータベース管理者によって定義されたデータのことである。データベース管理者は、例えば、あるサービスが保有するユーザの居住する都道府県の情報Ａと、他のサービスが保有する居住地域（例えば、「首都圏」、「関西」）の情報Ｂとは、共通するとみなしてもよいと定義する。データベース管理者は、例えば、情報Ａおよび情報Ｂを集約するクロース情報Ａ＋Ｂを生成する。
【００１８】
マルチユース情報は、クロース情報のうち、更に上位化できるデータのことである。マルチユース情報とは、例えば、すべてのサービスで共通利用されるユーザＩＤや、多数のサービスで共通利用されるユーザ氏名である。
【００１９】
なお、クロース情報は、１以上のマルチユース情報と対応付けられる。また、シングル情報は、１以上のクロース情報または１以上のマルチユース情報と対応付けられる。
【００２０】
図２は、シングル情報、クロース情報、およびマルチユース情報の関係を説明する図である。マルチユース情報は、クロース情報と比較して利用頻度が高く、更新頻度が低い情報である。また、クロース情報は、シングル情報と比較して利用頻度が高く、更新頻度が低い情報である。
【００２１】
マルチユース情報は複数のサービスに共通して参照されるため、フォーマットは固定的に定義される。一方、クロース情報は、マルチユース情報と比較して自由度が高められる。クロース情報においてフォーマット変更を行う場合、関連するサービスのサービス提供者側の管理者およびデータベース管理者によって協議されたのちに、フォーマット変更が適用される。シングル情報は、クロース情報と比較して自由度が高く、フォーマットはサービス提供者側の管理者によって任意に定めることができる。
【００２２】
マルチユース情報は、サービス提供者の提供する複数のサービスに関係する情報であるため、クロース情報と比較してより高いＳＬＡ（Service Level Agreement；サービス品質保証）が要求される情報である。クロース情報は、シングル情報と比較してより高いＳＬＡが要求される情報である。ＳＬＡは、データベース管理装置に対するリクエストの平均レスポンスタイム（例えば、標準的なリードリクエストのレスポンスが５秒以内で返ってくること）や、データベース管理装置が使用できない時間であるダウン時間の許容範囲によって表現される。許容範囲は、例えば、「ダウン時間として１か月あたり最大で４分程度が許容される」のように設定されてもよいし、同義である「稼働率９９．９９％」のように設定されてもよい。
【００２３】
データベース管理装置１００は、マルチユース情報およびクロース情報を設定することで、より高いアクセス効率を実現する。マルチユース情報およびクロース情報は、例えば、ユーザデータに対するインデックス（索引）機能を実現する。例えば、データベース管理装置は、データベース管理者によって設定された、１つのクロース情報と、そのクロース情報に対応付けられた複数のシングル情報のリードリクエストを受信した場合、まずクロース情報を検索し、次にクロース情報に対応付けられたシングル情報を検索して、得られたリードリクエストの処理結果をサービス提供者に返信すること（以下、レスポンスと称する場合がある）で円滑な処理を実現する。
【００２４】
したがって、マルチユース情報には、クロース情報と比較して、より高いレスポンス性が要求されるユーザデータが設定される。複数のサービスに共通して参照される情報をクロース情報とするか、マルチユース情報とするかは、例えば、対象となる情報がサービス提供者に問い合わせされる回数を一定期間集計して得た集計結果に基づいて、データベース管理者によって設計される。
【００２５】
クロース情報およびマルチユース情報は、サービス提供者の最新の利用傾向や、サービス提供者の提供するサービスの統廃合に応じて、その構成が定期的に見直されることが望ましい。従来型のデータベースシステムにおいては、サービス毎に専用のデータベース内でユーザデータを管理されたり、ＥＴＬ（Extraction, Transformation and Load）システム等によりユーザデータが連携されたりといった手法が採用されることがあった。前者の場合、サービス毎にユーザデータの登録および更新が実行されることから、定期的なデータクレンジング等により整合性を担保することに多大なコストがかかることが想定される。また、後者の場合、定期バッチ処理等により各システムで登録・更新されたユーザデータを連携するため、リアルタイムに最新のユーザデータを確認できない場合があった。また、ＥＴＬシステムの開発・運用に多大なコストがかかることが想定される。
【００２６】
データベース管理装置は、上述のシングル情報、クロース情報およびマルチユース情報を管理する。また、データベース管理装置は、データベース管理者の設定に応じて、シングル情報、クロース情報およびマルチユース情報の構成を柔軟な変更を可能にする。
【００２７】
なお、以下の説明において、シングル情報からクロース情報を生成すること、シングル情報からマルチユース情報を生成すること、およびクロース情報からマルチユース情報を生成することを「上位階層化」、クロース情報をシングル情報に戻すこと、マルチユース情報をクロース情報に戻すこと、およびマルチユース情報をシングル情報に戻すことを「下位階層化」、上位階層化および下位階層化を「階層変更」と称する場合がある。
【００２８】
＜第１の実施形態＞
図３は、第１の実施形態のデータベース管理装置１００の構成および利用環境を示す図である。図示する環境では、端末装置１０、データベース管理装置１００、およびサービスサーバ５００は、ネットワークＮＷを介して互いに通信可能に接続される。ネットワークＮＷは、例えば、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、インターネット、プロバイダ装置、無線基地局、専用回線などのうちの一部または全部を含む。図１に示す例では、端末装置１０の数は、Ｎ（Ｎは任意の自然数）個である。また、図１に示す例では、サービスサーバ５００の数は、Ｍ（Ｍは任意の自然数）個である。なお、本明細書では、端末装置１０−１〜１０−Ｎにおいて、共通の事項を説明する場合など、個々の端末装置１０−１〜１０−Ｎを区別しない場合には、単に端末装置１０と呼ぶ。また、本明細書では、サービスサーバ５００−１〜５００−Ｍにおいて、共通の事項を説明する場合など、個々のサービスサーバ５００−１〜５００−Ｍを区別しない場合には、単にサービスサーバ５００と呼ぶ。
【００２９】
端末装置１０は、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータ等である。端末装置１０は、データベース利用者（再度、このように称する）による操作に応じて、ユーザデータに関するリクエスト（コマンド）をデータベース管理装置１００に送信し、返信されたリクエストの処理結果を端末装置１０の表示部に表示する。
【００３０】
データベース管理装置１００は、例えば、データベース利用者に対して、端末装置１０によるリクエストの送受信に用いる標準ＡＰＩ（Application Programming Interface）を公開することで、以下に説明する機能を実現する。データベース管理装置１００は、例えば、通信部１０２と、解釈部１０４と、階層定義情報１０８と、レベル１リクエスト処理部１１０と、レベル２リクエスト処理部１１２と、レベル３リクエスト処理部１１４と、階層間処理部１１６と、利用状況解析部１１８と、アクセス管理部１２０と、監査部１２４とを備える。なお、シングル情報が「第２階層情報」の一例であるならば、レベル１リクエスト処理部１１０およびレベル２リクエスト処理部１１２は「第１階層処理部」の一例であり、レベル３リクエスト処理部１１４は「第２階層処理部」の一例である。また、クロース情報が「第２階層情報」の一例であるならば、レベル１リクエスト処理部１１０は「第１階層処理部」の一例であり、レベル２リクエスト処理部１１２およびレベル３リクエスト処理部１１４は「第２階層処理部」の一例である。
【００３１】
通信部１０２は、端末装置１０またはサービスサーバ５００と通信する。通信部１０２は、端末装置１０からリクエストを受信し、解釈部１０４に出力する。また、通信部１０２は、解釈部１０４により出力された処理結果を端末装置１０に送信する。
【００３２】
解釈部１０４は、通信部１０２から取得したリクエスト内容を解釈し、リクエスト内容の解析結果に応じて、階層定義部１０６、レベル１リクエスト処理部１１０、レベル２リクエスト処理部１１２、レベル３リクエスト処理部１１４、階層間処理部１１６、利用状況解析部１１８、およびアクセス管理部１２０、監査部１２４のいずれかに解釈結果（解釈されたリクエストという意味で、単にリクエストとも称する）を出力する。
【００３３】
また、解釈部１０４は、階層定義部１０６、レベル１リクエスト処理部１１０、レベル２リクエスト処理部１１２、レベル３リクエスト処理部１１４、階層間処理部１１６、利用状況解析部１１８、およびアクセス管理部１２０、監査部１２４のいずれかより出力された処理結果を、リクエストの送信元に応じた表現に逆変換して、通信部１０２に出力する。逆変換とは、例えば、階層定義部１０６により解釈部１０４に出力された処理結果から、通信部１０２に出力する情報（例えば、処理結果を示す情報）を抽出し、その抽出した内容を通信部１０２により端末装置１０に送信する際のデータ形式に変換することである。
【００３４】
階層定義部１０６は、解釈部１０４により出力された階層定義リクエストに応じて、ユーザデータの階層定義を生成する。階層定義部１０６は、生成したユーザデータの階層定義を階層定義情報１０８として記憶部に記憶させる。
【００３５】
階層定義部１０６は、例えば、データベース管理者によって設計された階層定義情報を階層定義情報１０８として記憶部に記憶させる。ユーザデータの階層定義とは、例えば、クロース情報およびシングル情報によって構成されるツリー構造の定義である。階層定義情報１０８は、例えば、後述する階層間処理部１１６が、複数の階層に対する階層設計の反映処理をするときに参照される。また、階層定義情報１０８は、レベル２リクエスト処理部１１２、レベル３リクエスト処理部１１４によって参照されてもよい。
【００３６】
レベル１リクエスト処理部１１０は、解釈部１０４から取得したリクエストに応じて、マルチユース情報に関する処理を行う。具体的には、レベル１リクエスト処理部１１０は、マルチユース情報のリードリクエストの受付処理などを行う。
【００３７】
レベル１リクエスト処理部１１０は、解釈部１０４から取得したマルチユース情報のリードリクエストに基づいて、ユーザデータベース２００に問い合わせるクエリ（あるいはコマンド）を生成する。レベル１リクエスト処理部１１０は、生成したクエリをユーザデータベース２００の図示しない読書回路に送信する（以下、単に「ユーザデータベース２００に送信する」と表記する）。レベル１リクエスト処理部１１０は、ユーザデータベース２００の処理結果を受信し、解釈部１０４に出力する。
【００３８】
レベル２リクエスト処理部１１２は、解釈部１０４から取得したリクエストに応じて、クロース情報に関連するユーザデータを処理する。具体的には、クロース情報のリードリクエストの受付処理である。
【００３９】
クロース情報は、その特性上、マルチユース情報を参照する可能性がある。マルチユース情報と、クロース情報と、シングル情報のそれぞれは、自階層で完結するようにデータが格納されていてもよいが、マルチユース情報に格納されたデータと、クロース情報に格納されたデータと、シングル情報に格納されたデータとが揃うことで、あるユーザのユーザデータの全部が把握されるようになっていてもよい（後述する図４参照）。その場合、クロース情報を読み出す際に、該当するユーザのマルチユース情報とクロース情報との双方を読み出して結合してレスポンスを返す必要がある。この場合に、マルチユース情報を参照する可能性が生じる。
【００４０】
したがって、レベル２リクエスト処理部１１２は、必要に応じて階層定義情報１０８を参照し、マルチユース情報とクロース情報の双方を読み出すことを要求するクエリをユーザデータベース２００に送信する。レベル２リクエスト処理部１１２は、ユーザデータベース２００の処理結果を受信し、解釈部１０４に出力する。なお、ユーザデータが各階層で完結する場合、１１２は、クロース情報を読み出すことを要求するクエリをユーザデータベース２００に送信する。
【００４１】
レベル３リクエスト処理部１１４は、解釈部１０４から取得した解釈されたリクエストに応じて、シングル情報のリードリクエストまたはライトリクエストの受付処理などを行う。
【００４２】
シングル情報は、その特性上、マルチユース情報およびクロース情報を参照する可能性がある。したがって、レベル３リクエスト処理部１１４は、必要に応じて階層定義情報１０８にマルチユース情報およびクロース情報の定義を参照して生成したクエリをユーザデータベース２００に送信する。レベル３リクエスト処理部１１４は、ユーザデータベース２００の処理結果を受信し、解釈部１０４に出力する。
【００４３】
レベル３リクエスト処理部１１４は、解釈部１０４から取得した解釈されたリクエストがシングル情報のリードリクエストであった場合、シングル情報のリードリクエストを受け付けて、リクエストに応じてユーザデータベース２００に問い合わせるクエリを生成する。また、レベル３リクエスト処理部１１４は、通信部１０２により出力されたリクエストがシングル情報のライトリクエストであった場合、シングル情報のライトリクエストを受け付けて、リクエストに応じてユーザデータベース２００を更新するクエリを生成する。レベル３リクエスト処理部１１４は、生成したクエリをユーザデータベース２００に送信する。レベル３リクエスト処理部１１４は、ユーザデータベース２００の処理結果を受信し、解釈部１０４に出力する。
【００４４】
階層間処理部１１６は、階層定義情報１０８を参照し、ユーザデータのうち下位階層のデータを上位階層に伝播させる処理を行う。階層間処理部１１６は、例えば、リアルタイムではなく、１日１回といった頻度でバッチ処理を行う。
【００４５】
（１）マルチユース情報に格納されたデータと、クロース情報に格納されたデータと、シングル情報に格納されたデータとが揃うことで、あるユーザのユーザデータの全部が把握される場合のバッチ処理
【００４６】
具体的な手順として、階層間処理部１１６は、まず、ユーザデータベース２００のシングル情報の生成元となるデータのうち、バッチ処理が済んでいないデータを読み出してデータベース管理装置１００のメモリに展開する。
【００４７】
次に、階層間処理部１１６は、メモリに展開したデータから、上位層に伝播させるべきデータを抜き出してユーザデータベース２００の上位層に書き込む処理を行う。
【００４８】
次に、階層間処理部１１６は、上位層に書き込まれたデータの削除を行うように２００に指示する。階層間処理部１１６は、データ削除の終了を確認し、バッチ処理を終了する。
【００４９】
（２）マルチユース情報、クロース情報、シングル情報が、自階層で完結する場合のバッチ処理
【００５０】
この場合、階層間処理部１１６は、例えば、ユーザデータベース２００のシングル情報の全てを読み出してデータベース管理装置１００のメモリに展開する。
【００５１】
次に、階層間処理部１１６は、メモリに展開したデータから、上位層に伝播させるべきデータを抜き出してユーザデータベース２００の上位層に上書きする処理を行う。階層間処理部１１６は、上書き処理の終了を確認し、バッチ処理を終了する。
【００５２】
なお、階層間処理部１１６は、上述の（１）または（２）のバッチ処理を行う際に、レベル１リクエスト処理部１１０、レベル２リクエスト処理部１１２、レベル３リクエスト処理部１１４を適宜呼び出して機能を援用してもよい。
【００５３】
利用状況解析部１１８は、解釈部１０４から取得したリクエストに基づいて、階層構造ごとのデータベース利用者の利用状況の解析処理を行う。解析処理の内容については後述する。利用状況解析部１１８は、解釈部１０４および通信部１０２を介して処理結果を端末装置１０に送信する。
【００５４】
アクセス管理部１２０は、解釈部１０４から取得したリクエストに基づいて、アクセス制御処理を行う。アクセス制御処理については後述する。アクセス管理部１２０は、処理結果を解釈部１０４に出力する。
【００５５】
監査部１２４は、解釈部１０４から取得したリクエストに基づいて、監査処理を行う。監査処理については後述する。監査部１２４は、処理結果を解釈部１０４に出力する。
【００５６】
［ユーザデータ］
図４は、データベース管理装置１００が管理するユーザデータを模式的に示す図である。マルチユース情報は、例えば、「ユーザＩＤ」のように多数のサービスまたは全てのサービスにおいて共通する情報である。一方、クロース情報は、例えば、「ユーザ氏名」のように複数のサービスにおいて共通する情報であるが、一部のサービスにおいては参照されない情報である。シングル情報は、例えば、「予約傾向」のように単一のサービスにおいて有用であるが、他のサービスでは有用でない情報である。
【００５７】
［アクセス制御処理］
また、データベース管理装置１００はアクセス制御機能を有する。アクセス制御機能とは、データベース管理装置１００を外部から利用するデータベース利用者に割り振られた権限に基づいて、ユーザデータのリードリクエストまたはライトリクエストを許可する、または不許可とすることである。なお、データベース利用者は、基本的にマルチユース情報およびクロース情報に対してはリードリクエストのみ可能であり、ライトリクエストは実行できない。マルチユース情報およびクロース情報は、例えば、データベース管理者による所定の作業（例えば、階層定義情報１０８の定義書き替え）によるライトリクエストのみが許可される。
【００５８】
また、データベース利用者に対しては、シングル情報のライトリクエストまたはリードリクエストの実行可否（ライト権限、リード権限）がデータベース管理者によって設定される。
【００５９】
あるサービスを提供するサービス提供者に対しては、自サービスに対応するシングル情報のリード権限およびライト権限が付与される。また、あるサービスを提供するサービス提供者に対しては、自サービスに対応するクロース情報と同じ種類のクロース情報であれば、他サービスに対応するクロース情報のリード権限が付与される。
【００６０】
例えば、サービス「ショッピング」を提供するサービス提供者に対しては、サービス「ショッピング」に対応するクロース情報である「ユーザ氏名」、「居住エリア」に関して、データ元のサービスを問わずリード権限が付与される。しかしながら、サービス「ショッピング」に対応しないクロース情報である「ニュース嗜好」に関してリード権限は付与されない。
【００６１】
以下、アクセス管理部１２０によるアクセス制御処理について説明する。データ管理者は、例えば、サービス「ショッピング」にのみ携わるデータベース利用者に、区分「ニュース」や区分「広告」に関するユーザデータを参照させない、といったアクセス権限をあらかじめ設定し、アクセス権限情報１２２として記憶部に格納しておく。
【００６２】
解釈部１０４は、解釈したリクエストを各処理部（階層定義部１０６、レベル１リクエスト処理部１１０、レベル２リクエスト処理部１１２、レベル３リクエスト処理部１１４、階層間処理部１１６、利用状況解析部１１８のいずれか）に出力する前に、リクエストを送信したデータベース利用者の情報を、アクセス管理部１２０に出力する。アクセス管理部１２０は、解釈部１０４から取得したリクエストに含まれるデータベース利用者の情報を取得してアクセス権限情報１２２を検索して得られる、データベース利用者のアクセス権限に基づいて、階層定義情報１０８の記憶するユーザデータへのリードリクエストまたはライトリクエストを受け付けてもよいか否かを判定する。
【００６３】
アクセス管理部１２０は、解釈部１０４に判定結果を出力する。解釈部１０４は、解釈部１０４により出力された判定結果に基づいて、リクエストを各処理部に出力するか否かを決定する。アクセス管理部１２０は、データベース利用者のユーザデータへのリクエストを受け付けてもよいと判定しなかった場合、所定のエラー情報を生成し、通信部１０２を介してエラー情報を端末装置１０に返信する。
【００６４】
図５は、データベース管理装置１００により実行されるアクセス制御処理の流れの一例を示すフローチャートである。まず、アクセス管理部１２０は、通信部１０２および解釈部１０４を介してデータベース利用者の利用する端末装置１０からリクエストを取得する（Ｓ１００）。次に、アクセス管理部１２０は、データベース利用者が対象のユーザデータにリクエストを実行する権限があるか否かを判定する（Ｓ１０２）。アクセス管理部１２０は、データベース利用者が対象のユーザデータにリクエストを実行する権限があると判定した場合、リクエストがユーザデータのリードリクエストか、ユーザデータのライトリクエストかを判定する（Ｓ１０４）。アクセス管理部１２０は、リードリクエストであると判定した場合、解釈部１０４および通信部１０２に、リードリクエストをユーザデータベース２００に送信して取得されたレスポンスを端末装置１０へ返信させる（Ｓ１０６）。アクセス管理部１２０は、ライトリクエストであると判定した場合、解釈部１０４および通信部１０２に、ライトリクエストをユーザデータベース２００によるレスポンスを端末装置１０へ返信させる（Ｓ１０８）。
【００６５】
Ｓ１０２において、アクセス管理部１２０は、データベース利用者が対象のユーザデータに対するリクエスト権限がないと判定した場合、エラー情報を生成して、解釈部１０４および通信部１０２に端末装置１０に返信させる（Ｓ１１０）。以上、本フローチャートの処理が終了される。
【００６６】
［監査処理］
上述のアクセス制御処理は、十分に機能しているか、アクセス権限の設定が適切であるか等について、所定の間隔で監査されることが望ましい。したがって、監査部１２４は、データ管理者の監査リクエストに基づいて、データベース利用者の利用状況を監査する監査情報を生成する。監査情報とは、例えば、アクセス制御ログの統計情報から、データベース利用者、リクエスト処理を実行したタイムスタンプ、リクエスト内容、リクエスト処理受付状況（リクエスト処理の成否）等の情報である。監査情報は、例えば、所定のファイル形式で生成される。監査情報として生成されたファイルは、解釈部１０４および通信部１０２を介して、データ管理者の利用する端末装置１０に送信されてもよいし、所定のファイル保存場所に生成されてもよい。
【００６７】
また、監査処理は、所定の区分、サービス、ユーザデータ階層、データベース利用者の条件指定を受け付けてもよい。また、監査処理は、所定の間隔でのみ実行されるのではなく、臨時実行されてもよい。
【００６８】
図６は、監査部１２４の行う処理の流れの一例を示すフローチャートである。まず、監査部１２４は、通信部１０２および解釈部１０４を介してデータ管理者の利用する端末装置１０から監査リクエストを取得する（Ｓ２００）。次に、監査部１２４は、監査リクエストに基づいてアクセス制御ログを抽出し（Ｓ２０２）、抽出結果を含むファイルを生成して出力する（Ｓ２０４）。以上、本フローチャートの処理が終了される。
【００６９】
［解析処理］
図４に戻り、利用状況解析部１１８による階層構造の解析処理について説明する。
【００７０】
データベース利用者は、ユーザデータベース２００の最新の利用傾向や、データベース利用者であるサービス提供者の提供するサービスの統廃合に応じて、ユーザデータの階層構造が適切であるかを定期的に見直す。データベース管理者は、利用状況解析部１１８による解析処理の結果に基づいて、階層構造の定義の見直しを行う。
【００７１】
以下、データベース管理者の利用する端末装置１０により、解析処理のリクエストが送信された場合のデータベース管理装置１００の処理内容について説明する。解釈部１０４は、通信部１０２により出力されたデータベース管理者の利用する端末装置１０からの解析リクエストを、利用状況解析部１１８に出力する。解析リクエストは、ユーザデータの全部を解析するリクエストであってもよいし、ユーザデータの一部を解析するリクエストであってもよい。利用状況解析部１１８は、解析リクエストに基づいてユーザデータの解析を行い、解析結果（推奨されるクロース情報およびマルチユース情報の設定）を、解釈部１０４を介して通信部１０２に出力する。通信部１０２は、データベース管理者の利用する端末装置１０に解析結果を送信する。解析結果には、例えば、クロース情報にできそうなシングル情報の候補の抽出結果や、その適合率、シングル情報をクロース情報にする場合に変換テーブルを要するか否かの情報を含む。変換テーブルについては後述する。
【００７２】
利用状況解析部１１８の解析結果は、後述する階層設計時に参照しやすい形式（例えば、共通するフォーマット定義に沿ったファイルを出力する）でデータベース管理者に提供されてもよい。
【００７３】
図７は、データベース管理装置１００の解析処理の流れの一例を示すフローチャートである。まず、利用状況解析部１１８は、通信部１０２を介してデータベース管理者の利用する端末装置１０からの解析リクエストを取得する（Ｓ３００）。次に、利用状況解析部１１８は、階層変更の候補を抽出する（Ｓ３０２）。次に、利用状況解析部１１８は、階層変更の候補を適用した場合の適合率を算出する（Ｓ３０４）。次に、利用状況解析部１１８は、階層変更の候補を適用した場合の変換テーブルの要否を導出する（Ｓ３０６）。次に、利用状況解析部１１８は、ユーザデータの解析を行い、解析結果を出力する（Ｓ３０８）。以上、本フローチャートの処理が終了される。
【００７４】
なお、利用状況解析部１１８による解析処理は、データベース管理者の解析リクエストに応じて実行されるバッチ処理であってもよいし、データベース管理者の解析リクエストに基づいて、一定期間情報収集する常駐処理であってもよい。
【００７５】
図８は、クロース情報の一例を示す図である。解析処理が常駐処理である場合、例えば、図８に示すように、利用状況解析部１１８は、ユーザデータベース２００のクロース情報およびシングル情報が上位階層化できるか否か、および上位階層化する場合に変換テーブルの設定を要するか否かを判定し、その判定結果を「上位階層化フラグ」、「変換テーブル要否」として保持する。
【００７６】
［階層設計場面］
以下、データベース管理装置１００の解析処理および階層生成処理を適用する場面の一例として、データベース管理者による階層情報の設計場面（定義情報の構築場面）について説明する。データ管理者は、利用状況解析部１１８の解析結果に基づいてユーザデータ階層設計を行ってもよいし、サービスサーバ５００の定義情報等に基づいて自らユーザデータ階層設計を行ってもよい。以下では、利用状況解析部１１８の解析結果に基づいてユーザデータ階層設計を行う場合の処理内容について説明する。
【００７７】
図９は、階層情報の設計場面の手順を示すユースケース図である。データベース管理者は、利用状況解析部１１８の解析処理の結果を入手する（Ｓ４００）。データベース管理者は、解析処理結果に基づいて、階層定義の設計情報を生成し、データベース管理装置１００に入力する（Ｓ４０２）。階層定義の設計情報には、「階層変更設計」、「変換テーブル設計」の設計内容が含まれる。階層変更設計とは、例えば、１以上のシングル情報からクロース情報を生成することや、クロース情報を１以上のシングル情報に分散させることである。
【００７８】
変換テーブル設計は、２以上のサービスにおいて共通するとみなしてもよいとデータベース管理者によって定義されたデータＡおよびＢを集約するクロース情報Ａ＋Ｂを生成した場合に、導出元である各サービスにおいてデータＡまたはデータＢを参照でき、且つ、クロース情報Ａ＋Ｂが機能するように、クロース情報を参照する際に用いる変換テーブルを生成することである。
【００７９】
データベース管理者は、データベース管理装置１００に階層定義の設計情報を入力し、ユーザデータベース２００に反映させる（Ｓ４０４）。上述のデータベース管理者による設計内容は、例えば、夜間バッチや定期メンテンナンス時にデータベース管理装置１００によってユーザデータベース２００へ反映される。
【００８０】
なお、データベース管理者は、サービスサーバ５００の設計情報に基づいて自ら階層情報を設計してもよいが、利用状況解析部１１８による解析結果の適合率等を参照することで設計内容を検証することが望ましい。
【００８１】
［階層設計の反映処理］
データ管理者による階層設計の反映処理について説明する。図１０は、階層定義部１０６により実行される階層定義処理の流れの一例を示すフローチャートである。まず、階層定義部１０６は、通信部１０２を介して階層定義生成リクエストを取得する（Ｓ５００）。次に、階層定義部１０６またはレベル１リクエスト処理部１１０は、マルチユース情報の定義情報を生成する（Ｓ５０２）。次に、階層定義部１０６またはレベル２リクエスト処理部１１２は、クロース情報の定義情報を生成する（Ｓ５０４）。次に、階層定義部１０６またはレベル３リクエスト処理部１１４は、シングル情報の定義情報を生成する（Ｓ５０６）。次に、解釈部１０４は、階層定義情報１０８に各定義情報を出力し、記憶させる（Ｓ５０８）。以上、本フローチャートの処理が終了される。
【００８２】
以上説明した第１実施形態によれば、複数のデータベース利用者により参照されるマルチユース情報と、マルチユース情報と比較してより限定的なデータベース利用者により参照されるクロース情報と、クロース情報と比較してより限定的なデータベース利用者により参照されるシングル情報とを含む階層的な論理構造を有するユーザデータベース２００を管理し、マルチユース情報に対応したデータベース利用者からのリードリクエストを受け付け、ユーザデータベース２００から対応づいたユーザデータを読み出してデータベース利用者に返すレベル１リクエスト処理部１１０と、クロース情報に対応したデータベース利用者からのリードリクエストを受け付け、ユーザデータベース２００から対応づいたユーザデータを読み出してデータベース利用者に返すレベル２リクエスト処理部１１２と、シングル情報に対応したデータベース利用者からのリードリクエストおよびライトリクエストを受け付け、ユーザデータベース２００からリードリクエストに対応づいたユーザデータを読み出してデータベース利用者に返す、またはライトリクエストに応じてユーザデータベース２００におけるユーザデータを更新するレベル３リクエスト処理部１１４とを備えることにより、ユーザデータの活用を安全且つ円滑に進めることができる。
【００８３】
＜第２の実施形態＞
図１１は、第２の実施形態のデータベース管理装置１００Ａの機能概要図である。データベース管理装置１００Ａは、階層定義部１０６に代えて階層定義部１０６Ａを、階層定義情報１０８に代えて階層定義情報１０８Ａを、アクセス管理部１２０に代えてアクセス管理部１２０Ａを備える。以下では階層定義部１０６Ａ、階層定義情報１０８Ａおよびアクセス管理部１２０Ａを中心に説明する。
【００８４】
第２の実施形態に係る階層定義部１０６Ａは、サービスサーバ５００から取得したユーザデータ、およびユーザデータに関連するカテゴリ情報に基づいて、階層定義情報１０８Ａにカテゴリ情報を付与する。クロース情報におけるカテゴリ情報とは、例えば、「コマース」、「ニュース」等の区分である。
【００８５】
図１３は、データベース管理装置１００Ａが管理するユーザデータを模式的に示す図である。図１３に示すユーザデータは、図４に示すユーザデータと比較して、１以上のサービスからなる「区分」によって識別が可能である。図１３の上部に示す、「コマース」、「ニュース」および「広告」は、データベース利用者であるサービス提供者が提供するサービスの区分を示す。サービスの区分とは、例えば、類似するサービスをまとめて区別するものである。例えば、区分「コマース」には、サービス「旅行予約」、「ショッピング」および「オークション」が含まれる。
【００８６】
クロース情報は、複数の区分において共通する情報でもよいし、同一の区分に属する複数の種別において共通する情報でもよい。クロース情報は、区分に属するすべての種別によって構成されてもよいし、区分に属する一部の種別によって構成されてもよい。クロース情報は、例えば、区分「コマース」内で共通する情報である「ユーザ氏名」や、区分「コマース」の一部、サービス「ニュース」の一部、およびサービス「広告」内で共通する情報である「居住エリア」である。データベース利用者は、階層定義部１０６Ａによってカテゴリ情報が設定されることにより、より効率的にクロース情報を参照できたり、より効率的にクロース情報に関連するシングル情報を参照したり書き込んだりすることが可能となる。
【００８７】
第１の実施形態では、クロース情報はデータ元のサービスを問わずリード権限が付与されるとしたが、第２の実施形態において、アクセス管理部１２０Ａは、例えば、サービスに関連するクロース情報と同じクロース情報であっても、区分が異なるサービスのクロース情報にはアクセスできないようにする。これによって、不要なデータの検索をすることが無くなり、データベース利用者であるサービス提供者は提供サービスに関するユーザデータのみを円滑に取得しやすくなる。
【００８８】
図１２は、データベース管理装置１００Ａの階層生成処理の流れの一例を示すフローチャートである。Ｓ６００の処理は、図１０のフローチャートにおけるＳ５００の処理と同様である。また、Ｓ６０２の処理は、図１０のフローチャートにおけるＳ５０２の処理と同様である。また、Ｓ６０６の処理は、図１０のフローチャートにおけるＳ５０６の処理と同様である。したがって、下記ではＳ６０４について説明する。
【００８９】
Ｓ６０２の処理の後、レベル２リクエスト処理部１１２および階層定義部１０６Ａは、カテゴリ情報を反映したクロース情報を生成する（Ｓ６０４）。以上、本フローチャートの処理を終了する。
【００９０】
上述のように、第２の実施形態のデータベース管理装置１００Ａは、第１の実施形態と同様の効果を奏する他、階層定義部１０６Ａによって、クロース情報にカテゴリ情報を付与することで、さらに識別しやすい階層構造を形成することができ、ユーザデータの活用を安全性及び円滑性を高めることができる。
【００９１】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００９２】
１０  端末装置、
１００、１００Ａ  データベース管理装置、
１０２  通信部、
１０４  解釈部、
１０６、１０６Ａ  階層定義部、
１０８、１０８Ａ  階層定義情報、
１１０  レベル１リクエスト処理部、
１１２  レベル２リクエスト処理部、
１１４  レベル３リクエスト処理部、
１１８  利用状況解析部、
１２０、１２０Ａ  アクセス管理部、
１２２  アクセス権限情報、
１２４  監査部、
２００  ユーザデータベース、
５００  サービスサーバ
【図１】
2019219847.tif 000003
【図２】
2019219847.tif 000004
【図３】
2019219847.tif 000005
【図４】
2019219847.tif 000006
【図５】
2019219847.tif 000007
【図６】
2019219847.tif 000008
【図７】
2019219847.tif 000009
【図８】
2019219847.tif 000010
【図９】
2019219847.tif 000011
【図１０】
2019219847.tif 000012
【図１１】
2019219847.tif 000013
【図１２】
2019219847.tif 000014
【図１３】
2019219847.tif 000015