JP2021189569A - データ更新プログラム、データ更新装置及びデータ更新方法 - Google Patents

データ更新プログラム、データ更新装置及びデータ更新方法 Download PDF

Info

Publication number
JP2021189569A
JP2021189569A JP2020091796A JP2020091796A JP2021189569A JP 2021189569 A JP2021189569 A JP 2021189569A JP 2020091796 A JP2020091796 A JP 2020091796A JP 2020091796 A JP2020091796 A JP 2020091796A JP 2021189569 A JP2021189569 A JP 2021189569A
Authority
JP
Japan
Prior art keywords
data
query
update
user
provider
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2020091796A
Other languages
English (en)
Inventor
千裕 加藤
Chihiro Kato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020091796A priority Critical patent/JP2021189569A/ja
Priority to US17/207,788 priority patent/US20210374119A1/en
Publication of JP2021189569A publication Critical patent/JP2021189569A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データ供給元のデータベースに対する更新データの安全性を確保しながら、更新データをデータ供給先のデータベースに反映できるデータ更新プログラム等を提供する。【解決手段】コンピュータに、データ供給元のデータベースでのデータ更新を検出した場合に、更新後の更新対象データがアクセス制御対象であるか否かを判定する処理を実行させる。更に、コンピュータに、判定結果に基づいて、データ供給先のデータベースに対して出力する、前記更新対象データに関するクエリを変更する処理を実行させる。【選択図】図7

Description

本発明は、データ更新プログラム、データ更新装置及びデータ更新方法に関する。
例えば、データサイエンティストによるデータの分析、そしてビジネスへの反映は、企業にとって非常に重要なものとなっている。昨今は一つの企業内のデータだけで分析を行うのではなく、企業間で様々なデータをやりとりし、自社のビジネスに生かしていくことが重要である。しかしながら、このようなプラットフォームに企業がデータを提供するためには、提供者が管理するデータの保護が求められている。そこで、提供者が許可したデータのみを利用者に提供する仕組みが求められている。
提供者が、例えば、リレーショナルデータベース(RDB:Relational DataBase)に記憶するデータを利用者に提供する場合、許可されるデータはファイル単位ではなく、行単位及び列単位で提供することになる。図10は、第1のデータ提供システム300の一例を示す説明図である。
図10に示す第1のデータ提供システム300は、提供者側サーバ302と、利用者側サーバ303とを有する。提供者は、例えば、個人データを管理する会社A、利用者は、例えば、製薬会社Bとする。会社Aが、例えば、利用許可した創薬向けの個人情報等のデータのみを製薬会社Bに提供する場合を想定する。
提供者側サーバ302は、提供者側のデータを記憶する提供者側RDB302Aを管理するサーバである。提供者側RDB302Aは、IDと、名前と、年齢と、情報利用とを対応付けて管理する。IDは、例えば、個人データを識別する識別子である。名前は、個人を識別する名前である。年齢は、個人の年齢である。情報利用は、個人データの情報利用の可否を識別する情報である。情報利用は、利用者に提供可能なデータを示す“TRUE”、利用者に提供不可のデータを示す“FALSE”である。利用者側サーバ303は、利用者側のデータを記憶する利用者側RDB303Aを管理するサーバである。
提供者側サーバ302は、提供者側RDB302Aから情報利用“TRUE”のデータ、例えば、情報利用“TRUE”のID“0011”、“0022”及び“0333”のデータを提供者側RDB302Aから抽出する。提供者側サーバ302は、抽出した情報利用“TRUE”のデータを利用者側サーバ303に送信する。利用者側サーバ303は、提供者側サーバ302から情報利用“TRUE”のデータを受信した場合、情報利用“TRUE”のデータを利用者側RDB303A内に登録する。その結果、利用者側サーバ303は、提供者側サーバ302から提供された情報利用“TRUE”のデータを使用できる。
また、2社間の契約内容(提供内容)やデータの種類によっては、提供者側RDB302A内のデータを更新(UPDATE)、挿入(INSERT)、削除(DELETE)することも考えられる。最新のデータの反映は勿論のこと、個人情報等のセンシティブなデータはその持ち主の意向によって突然使えなくなることもある。例えば、提供者側RDB302A内のID“0011”の情報利用を“TRUE”から“FALSE”にする場合も考えられる。
図11は、第1のデータ提供システム300の課題の一例を示す説明図である。提供者側RDB302A内のID“0011”の情報利用が“TRUE”から“FALSE”になった場合には、利用者側RDB303AからID“0011”のデータを削除する必要がある。つまり、提供者側RDB302Aの内容の更新、追加や削除に応じて利用者側RDB303Aの内容を更新する必要があるが、提供者側RDB302Aの更新内容を利用者側RDB303Aに反映できないのが実情である。
そこで、このような事態に対処すべく、提供者側RDB302Aの更新内容を利用者側RDB303Aに反映できるロジカルレプリケーションの第2のデータ提供システム310が知られている。図12は、第2のデータ提供システム310の一例を示す説明図である。
第2のデータ提供システム310は、提供者側RDB312Aを有する提供者側サーバ312と、利用者側RDB313Aを有する利用者側サーバ313とを有する。尚、説明の便宜上、提供者側RDB312Aは、例えば、情報利用“TRUE”のID“0011”及び“0022”のデータと、情報利用“FALSE”のID“1011”及び“9054”のデータとを記憶しているものとする。
先ず、提供者側サーバ312は、提供者側RDB312Aに記憶中のデータのコピーを利用者側サーバ313に送信する。利用者側サーバ313は、提供者側RDB312Aに記憶中のデータのコピーを利用者側RDB313Aに記憶する。
提供者側サーバ312は、提供者側RDB312A内に新たなデータ、例えば、ID“0333”、名前“Ang”、年齢“15”及び情報利用“TRUE”のデータを追加する場合、挿入のログ情報を利用者側サーバ313に送信する。尚、挿入のログ情報は、例えば、ID“0333”、名前“Ang”、年齢“15”及び情報利用“TRUE”のデータを含む挿入のログ情報である。
利用者側サーバ313は、挿入のログ情報を受信した場合、挿入のログ情報の内容を解析して利用者側RDB313A内にID“0333”、名前“Ang”、年齢“15”及び情報利用“TRUE”のデータを挿入する。つまり、提供者側サーバ312は、提供者側RDB312A内の内容の更新、削除や挿入のログを取得した場合、取得したログ情報を利用者側サーバ313に通知する。その結果、提供者側RDB312Aの内容の更新に応じて提供者側RDB312Aの差分内容を利用者側RDB313Aの内容に反映できる。
第2のデータ提供システム310では、提供者側RDB312Aの内容と利用者側RDB313Aの内容とを同一にするバックアップに使用するシステムである。しかしながら、提供者側サーバ312が許可した情報利用“TRUE”のデータのみを利用者側RDB313Aに提供するフィルタリング機能に適用したものではない。
そこで、このような事態に対処すべく、データの提供条件として事前定義クエリを設定する第3のデータ提供システム320が考えられる。図13は、第3のデータ提供システム320の一例を示す説明図である。図13に示す第3のデータ提供システム320は、提供者側RDB322Aを有する提供者側サーバ322と、利用者側RDB323Aを有する利用者側サーバ323とを有する。
提供者側サーバ322は、事前定義クエリに応じて、提供者側RDB322Aから情報利用“TRUE”のデータのみを抽出する。尚、事前定義クエリは、情報利用“TRUE”のデータのみを抽出して利用者側サーバ323に提供するデータ提供条件である。提供者側サーバ322は、抽出した情報利用“TRUE”のデータを利用者側サーバ323に送信する。利用者側サーバ323は、抽出した情報利用“TRUE”のデータを利用者側RDB323Aに登録する。その結果、提供者側サーバ322は、事前定義クエリに応じて許可したデータのみを利用者側サーバ323に提供できるフィルタリング機能を実現できる。
しかしながら、提供者側サーバ322は、提供者側RDB322A内の内容の更新、削除や挿入が行われる毎に、提供者側RDB322A内の全てのデータから事前定義クエリに応じたデータを抽出する処理を要する。しかも、提供者側サーバ322は、その抽出結果である許可したデータを利用者側サーバ323に送信するため、処理負担が大である。
そこで、このような事態に対処すべく、処理負担を軽減しながら、ロジカルレプリケーション及びフィルタリング機能を兼ね備えた第4のデータ提供システム330が考えられる。図14は、第4のデータ提供システム330の一例を示す説明図である。
第4のデータ提供システム330では、フィルタリングを行わないが、レプリケーション先のデータベースの行単位及び列単位のセキュリティポリシーを用いることで、実際にデータは存在するが不可視の状況を実現できる。
図14に示す第4のデータ提供システム330は、提供者側RDB332Aを有する提供者側サーバ332と、利用者側RDB333Aを有する利用者側サーバ333とを有する。尚、利用者側RDB333Aは、提供者側RDB332Aのデータのコピーを記憶しているものとする。
提供者側サーバ332は、提供者側RDB332A内に新たなデータ、例えば、ID“9054”、名前“Dai”、年齢“40”及び情報利用“FALSE”のデータを追加する場合、挿入のログ情報を利用者側サーバ333に送信する。更に、提供者側サーバ332は、利用者側サーバ333側で利用者側RDB333Aに記憶中の情報利用が“TRUE”のデータが参照可能で、情報利用“FALSE”のデータの参照不可のポリシー情報を定義しておく。そして、提供者側サーバ332は、ポリシー情報を利用者側サーバ333に送信する。
そして、利用者側サーバ333は、提供者側サーバ332から受信した挿入のログ情報に基づき、挿入の新たなデータを利用者側RDB333Aに登録する。そして、利用者側サーバ333は、提供者側サーバ332から受信したポリシー情報に基づき、利用者側RDB333Aに記憶中のデータの内、情報利用が“TRUE”のデータのみを参照可能にし、情報利用が“FALSE”のデータを参照不可の状態にする。
つまり、利用者側サーバ333では、提供者側RDB332A内の全てのデータがロジカルレプリケーションにより利用者側RDB333Aにコピーされている。実際に、利用者側サーバ333は、利用者側RDB333Aに記憶中のデータを参照する際、行単位のポリシー情報に基づき、情報利用が“FALSE”の行がマスクされているため、利用者は、情報利用が“TRUE”のデータのみが参照可能になる。
しかしながら、第4のデータ提供システム330の提供者側サーバ332では、利用者側サーバ333で参照不可のデータあっても、参照不可のデータが利用者側RDB333Aに記憶されていることになる。従って、提供者側の情報利用“FALSE”のデータの安全性を確保できない。
そこで、情報利用“FALSE”のデータの安全性を確保しながら、ロジカルレプリケーション及びフィルタリング機能を兼ね備えた第5のデータ提供システム340が考えられる。図15は、第5のデータ提供システム340の一例を示す説明図である。図15に示す第5のデータ提供システム340では、提供者側RDB342Aを有する提供者側サーバ342と、利用者側RDB343Aを有する利用者側サーバ343とを有する。尚、利用者側RDB343Aは、提供者側RDB342Aのデータのコピーを記憶しているものとする。
提供者側サーバ342は、提供者側RDB342A内に新たなデータ、例えば、ID“9054”、名前“Dai”、年齢“40”及び情報利用“FALSE”のデータを追加する場合、挿入のログ情報を利用者側サーバ343に送信する。更に、提供者側サーバ342は、利用者側RDB343A内の情報利用“FALSE”のデータを削除する削除クエリを利用者側サーバ343に送信する。
利用者側サーバ343は、挿入のログ情報を受信した場合、挿入のログ情報に基づき、新たな挿入のデータを利用者側RDB343Aに登録する。つまり、利用者側サーバ343は、ID“9054”、名前“Dai”、年齢“40”及び情報利用“FALSE”のデータを利用者側RDB343Aに登録する。次に、利用者側サーバ343は、削除クエリを受信した場合、利用者側RDB343A内の情報利用“FALSE”のデータを削除する。つまり、利用者側サーバ343は、削除クエリに応じて、利用者側RDB343Aに記憶中のデータの内、情報利用“FALSE”のID“9054”、名前“Dai”及び年齢“40”のデータを削除する。つまり、利用者側サーバ343では、提供者側RDB342A内の全てのデータがロジカルレプリケーションにより利用者側RDB343Aにコピーされているが、削除クエリに応じて利用者側RDB343Aから情報利用“FALSE”のデータを削除する。その結果、情報利用“FALSE”のデータの安全性を確保しながら、利用者は、参照可能な情報利用“TRUE”のデータのみが参照可能になる。
第5のデータ提供システム340では、利用者側RDB343A内で削除クエリに応じて情報利用“FALSE”のデータが削除されるため、提供者側RDB342Aのデータ内容と利用者側RDB343Aのデータ内容とが異なることになる。
図16は、第5のデータ提供システム340の課題の一例を示す説明図である。提供者側サーバ342は、利用者側RDB343Aに記憶中のデータの情報利用を“FALSE”から“TRUE”に更新する場合、更新のログ情報を利用者側サーバ343に送信することになる。例えば、ID“9054”、名前“Dai”、年齢“40”のデータの情報利用“FALSE”を“TRUE”に更新した場合、更新のログ情報を利用者側サーバ343に送信することになる。
特開2017−76229号公報 特開2009−116846号公報
しかしながら、利用者側サーバ343は、情報利用が“FALSE”から“TRUE”に更新する更新のログ情報を受信したとしても、利用者側RDB343A内には更新のログ情報に対応した情報利用“FALSE”のデータが削除済みである。そもそも、利用者側サーバ343は、更新前に情報利用が“FALSE”のため、利用者側RDB343Aから、例えば、ID“9054”、名前“Dai”、年齢“40”のデータが削除済みである。従って、利用者側サーバ343は、利用者側RDB343A内にID“9054”に一致するデータがないため、ID“9054”のデータを利用者側RDB343A内で更新できず、ロジカルレプリケーションのエラーが生じる。その結果、利用者側RDB343A内に情報利用が“TRUE”のデータを登録できず、提供者は、利用者に対して情報利用“TRUE”のデータを提供できないことになる。
つまり、提供者側RDB342Aに対する更新データの安全性を確保しながら、更新データを利用者側RDB343Aに反映できるシステムが求められている。
一つの側面では、提供者側RDBに対する更新データの安全性を確保しながら、更新データを利用者側RDBに反映できるデータ更新プログラム等を提供することを目的とする。
1つの側面のデータ更新プログラムは、データ供給元のデータベースでのデータ更新を検出した場合に、更新後の更新対象データがアクセス制御対象であるか否かを判定する処理をコンピュータに実行させる。更に、データ更新プログラムは、判定結果に基づいて、データ供給先のデータベースに対して出力する、前記更新対象データに関するクエリを変更する処理をコンピュータに実行させる。
1つの側面によれば、データ供給元のデータベースに対する更新データの安全性を確保しながら、更新データをデータ供給先のデータベースに反映できる。
図1は、実施例1のデータ提供システムの一例を示す説明図である。 図2は、提供者側サーバ及び利用者側サーバの機能構成の一例を示すブロック図である。 図3は、提供者側RDB及び利用者側RDBのテーブル構成の一例を示す説明図である。 図4は、提供条件のファイルの一例を示す説明図である。 図5は、他の提供条件のファイルの一例を示す説明図である。 図6Aは、データ提供システムの情報利用(FALSE→TRUE)の更新時のクエリ変更動作の一例を示す説明図である。 図6Bは、データ提供システムの情報利用(TRUE→FALSE)の更新時のクエリ変更動作の一例を示す説明図である。 図6Cは、データ提供システムのデータ削除時のクエリ変更動作の一例を示す説明図である。 図6Dは、データ提供システムのデータ挿入時のクエリ変更動作の一例を示す説明図である。 図7は、データ更新処理に関わるクエリ変更部の処理動作の一例を示すフローチャートである。 図8は、実施例2のデータ提供システムの一例を示す説明図である。 図9は、データ更新プログラムを実行するコンピュータの一例を示す説明図である。 図10は、第1のデータ提供システムの一例を示す説明図である。 図11は、第1のデータ提供システムの課題の一例を示す説明図である。 図12は、第2のデータ提供システムの一例を示す説明図である。 図13は、第3のデータ提供システムの一例を示す説明図である。 図14は、第4のデータ提供システムの一例を示す説明図である。 図15は、第5のデータ提供システムの一例を示す説明図である。 図16は、第5のデータ提供システムの課題の一例を示す説明図である。
以下、図面に基づいて、本願の開示するデータ更新プログラム等の実施例を詳細に説明する。尚、各実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
図1は、実施例1のデータ提供システム1の一例を示す説明図である。図1に示すデータ提供システム1は、提供者側サーバ2と、利用者側サーバ3とを有する。提供者側サーバ2は、データを提供する提供者側のコンピュータである。利用者側サーバ3は、提供者側サーバから提供されたデータを利用する利用者側のコンピュータである。
提供者側サーバ2は、ネットワークデバイス11と、周辺機器制御部12と、ハードディスク13と、メモリ14と、CPU15と、バス16とを有する。ネットワークデバイス11は、利用者側サーバ3との間の通信を司るIFである。周辺機器制御部12は、例えば、キーボードやマウス等の利用者操作部17A等やディプレイ等の周辺機器17を制御する。ハードディスク13は、各種データ等を記憶する領域である。メモリ14は、各種プログラム等を記憶する領域である。CPU15は、提供者側サーバ2全体を制御する。バス16は、ネットワークデバイス11、周辺機器制御部12、ハードディスク13、メモリ14やCPU15と接続するバスラインである。
ハードディスク13は、提供者側RDB(Relational Data Base)13Aと、提供条件DB13Bとを有する。提供者側RDB13Aは、例えば、提供対象のデータを行単位又は列単位で管理するDBである。提供条件DB13Bは、提供者と利用者との間でデータの提供に関わる条件を管理するDBである。
メモリ14は、データ通信プログラム14Aと、クエリ変更プログラム14Bとを記憶する。データ通信プログラム14Aは、利用者側サーバ3との間の通信を実行するプログラムである。クエリ変更プログラム14Bは、提供者側RDB13Aに対するデータのクエリを、利用者側RDB23Aに対応するクエリに変更するプログラムである。
利用者側サーバ3は、ネットワークデバイス21と、周辺機器制御部22と、ハードディスク23と、メモリ24と、CPU25と、バス26とを有する。ネットワークデバイス21は、提供者側サーバ2との間の通信を司るIFである。周辺機器制御部22は、例えば、キーボードやマウス等の利用者側操作部27Aやディプレイ等の周辺機器27を制御する。ハードディスク23は、各種データ等を記憶する領域である。メモリ24は、各種プログラム等を記憶する領域である。CPU25は、利用者側サーバ3全体を制御する。バス26は、ネットワークデバイス21、周辺機器制御部22、ハードディスク23、メモリ24やCPU25と接続するバスラインである。
ハードディスク23は、利用者側RDB23Aを有する。利用者側RDB23Aは、例えば、利用者側のデータを行単位又は列単位で管理するDBである。メモリ24は、データ通信プログラム24Aを記憶する。データ通信プログラム24Aは、提供者側サーバ2との間の通信を実行するプログラムである。
図2は、提供者側サーバ2及び利用者側サーバ3の機能構成の一例を示すブロック図である。提供者側サーバ2のCPU15は、メモリ14内のクエリ変更プログラム14Bを読出し、読み出したクエリ変更プログラム14Bを実行することで送信用コネクタ30のクエリ変更を実行するクエリ変更部31を有する。更に、提供者側サーバ2のCPU15は、メモリ14内のデータ通信プログラム14Aを読み出し、読み出したデータ通信プログラム14Aを実行することで送信用コネクタ30のクエリ送信を実行するクエリ送信部32を有する。
クエリ変更部31は、提供者側RDB13A内のデータに対するクエリを利用者側RDB23Aに応じたクエリに変更する。尚、クエリは、例えば、提供者側RDB13A内のデータの新規挿入、提供者側RDB13A内のデータの削除や更新等の要求である。クエリ送信部32は、クエリ変更部31にて変更した利用者側RDB23Aへのクエリを利用者側サーバ3に送信する。
クエリ変更部31は、検出部31Aと、判定部31Bと、変更部31Cとを有する。検出部31Aは、データ供給元のDBである提供者側RDB13Aでのデータ更新を検出する。判定部31Bは、提供者側RDB13Aでのデータ更新を検出した場合に、更新後の更新対象データがアクセス制御対象であるか否かを判定する。アクセス制御対象は、例えば、提供者側で利用者に提供可能の提供条件を満たしたデータである。変更部31Cは、判定結果に基づいて、データ供給先のDBである利用者側RDB23Aに対して出力する更新対象データに関するクエリを変更する。
判定部31Bは、提供者側RDB13Aでのデータ更新を検出した場合に、更新対象データが利用者側RDB23A内に既存し、かつ、所定の提供条件を満たしているアクセス制御対象であるか否かを判定する。変更部31Cは、更新対象データがアクセス制御対象である場合に、利用者側RDB23Aに対して更新対象データを更新する更新クエリを出力する。変更部31Cは、更新対象データがアクセス制御対象でない場合に、データ更新のクエリを、利用者側RDB23Aから更新対象データを削除する削除クエリに変更する。
判定部31Bは、提供者側RDB13Aでのデータ更新を検出した場合に、更新対象データが利用者側RDB23A内になく、かつ、所定の提供条件を満たしているアクセス制御対象であるか否かを判定する。変更部31Cは、更新対象データがアクセス制御対象である場合に、データ更新のクエリを、利用者側RDB23Aに対して更新対象データを挿入する挿入クエリに変更する。
判定部31Bは、提供者側RDB13Aでのデータ挿入を検出した場合に、挿入対象データがアクセス制御対象となるか否かを判定する。変更部31Cは、挿入対象データがアクセス制御対象の場合に、利用者側RDB23Aに対して挿入対象データを挿入する挿入クエリを出力する。変更部31Cは、挿入対象データがアクセス制御対象でない場合に、挿入クエリの出力を抑制する。
判定部31Bは、提供者側RDB13Aでのデータ削除を検出した場合に、削除対象データが利用者側RDB23A内に既存するアクセス制御対象となるか否かを判定する。変更部31Cは、削除対象データがアクセス制御対象の場合に、利用者側RDB23Aに対して削除対象データを削除する削除クエリを出力する。変更部31Cは、削除対象データがアクセス制御対象でない場合に、削除クエリの出力を抑制する。
利用者側サーバ3のCPU25は、メモリ24内のデータ通信プログラム24Aを読み出し、読み出したデータ通信プログラム24Aを実行することで受信用コネクタ40のクエリ受信を実行するクエリ受信部41を有する。クエリ受信部41は、提供者側サーバ2内のクエリ送信部32からのクエリを受信する。
図3は、提供者側RDB13A及び利用者側RDB23Aのテーブル構成の一例を示す説明図である。図3に示す提供者側RDB13Aは、提供者が管理する提供対象のデータを管理するDBである。提供者側RDB13Aは、ID131Aと、名前132Aと、年齢133Aと、情報利用134Aとを対応付けて管理する。ID131Aは、提供対象のデータを識別するIDである。名前132Aは、提供対象のデータの対象者を識別する名前である。年齢133Aは、提供対象のデータの対象者の年齢である。情報利用134Aは、提供対象のデータが利用者に対して情報利用可能、例えば、参照可能にするか否かを識別する識別子である。情報利用134Aは、提供対象のデータが参照可能の場合に“TRUE”、提供対象のデータが参照不可の場合に“FALSE”である。
提供者側RDB13Aは、例えば、ID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータ、ID“0022”、名前“Hong”を記憶している。更に、提供者側RDB13Aは、年齢“52”及び情報利用“TRUE”のデータ、ID“1011”、名前“Cao”、年齢“56”及び情報利用“FALSE”のデータを記憶している。更に、提供者側RDB13Aは、例えば、ID“9054”、名前“Dai”、年齢“40”及び情報利用“FALSE”のデータ、ID“0333”、名前“Ang”、年齢“15”及び情報利用“TRUE”のデータを記憶している。
また、利用者側RDB23Aは、提供者から提供されたデータを管理する。尚、利用者側RDB23Aも、例えば、提供者側RDB13Aと同様のID、名前、年齢及び情報利用を対応付けたデータを管理している。
図4は、提供条件のファイルの一例を示す説明図である。図4に示す提供条件のファイルは、識別名と、利用者のデータベース情報と、提供者のデータベース情報と、権限を付与するデータの指定とを、例えば、yamlファイル方式で記載するものとする。尚、yamlファイル方式に限定されるものではなく、適宜変更可能である。識別名は、提供条件を識別する、例えば、Agreement-001等の名称である。利用者のデータベース情報は、例えば、ホストuser-server等の利用者側RDB23Aを識別する情報である。提供者のデータベース情報は、例えば、source-serverホストのPostgreSQLというRDB内のpublic.usersというテーブル等の提供者側RDB13Aを識別する情報である。権限を付与するデータの指定は、提供者側サーバ2から利用者側サーバ3にデータを提供する条件である。条件としては、例えば、情報利用“TRUE”の場合である。
図5は、他の権限を付与するデータの指定のファイルの一例を示す説明図である。尚、図4に示す権限を付与するデータの指定としては、情報利用が“TRUE”の単一条件の場合を例示した。しかしながら、単一条件に限定されるものではなく、複数条件でも良い。例えば、情報利用が“TRUE”及び年齢が“20”以上の場合に利用者にデータを提供しても良い。また、例えば、情報利用を創薬目的や公共機関目的の場合のように複数指定可能にし、情報利用(創薬)が“TRUE”又は情報利用(公共機関)が“TRUE”の場合に利用者にデータを提供しても良い。
実施例1のデータ提供システム1の動作について説明する。図6Aは、データ提供システム1の情報利用(FALSE→TRUE)の更新時のクエリ変更動作の一例を示す説明図である。尚、説明の便宜上、提供者側サーバ2から利用者側サーバ3にデータを提供する際の提供条件は情報利用“TRUE”とする。
提供者側サーバ2内の提供者側RDB13Aは、例えば、ID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータ、ID“0022”のデータを記憶している。提供者側RDB13Aは、名前“Hong”、年齢“52”及び情報利用“TRUE”のデータ、ID“1011”、名前“Cao”、年齢“56”及び情報利用“FALSE”のデータを記憶している。更に、提供者側RDB13Aは、例えば、ID“9054”、名前“Dai”、年齢“40”及び情報利用“FALSE”のデータ、ID“0333”、名前“Ang”、年齢“15”及び情報利用“TRUE”のデータを記憶している。
また、利用者側サーバ3内の利用者側RDB23Aは、例えば、ID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータ、ID“0022”のデータを記憶している。更に、利用者側RDB23Aは、名前“Hong”、年齢“52”及び情報利用“TRUE”のデータ、ID“0333”、名前“Ang”、年齢“15”及び情報利用“TRUE”のデータを記憶している。
この際、提供者側サーバ2は、提供者側RDB13A内の例えば、ID“9054”、名前“Dai”及び年齢“40”のデータの情報利用“FALSE”を“TRUE”に変更する更新クエリが要求されたとする。尚、更新クエリは、例えば、「UPDATE tbl、SET 情報利用=TRUE、WHERE ID=Dai」である。
提供者側サーバ2は、更新クエリに応じて、提供者側RDB13A内のID“9054”、名前“Dai”及び年齢“40”のデータの情報利用“FALSE”を“TRUE”に変更する。
クエリ変更部31は、名前“Dai”のデータを情報利用“FALSE”から“TRUE”への更新クエリを検出した場合、情報利用が“TRUE”の提供条件を満たしているため、更新クエリを挿入クエリに変更する。尚、変更後の挿入クエリは、例えば、「INSERT tbl、VALUES[9054,Dai,40,TRUE]」である。そして、クエリ送信部32は、変更後の挿入クエリを利用者側サーバ3に送信する。
利用者側サーバ3内のクエリ受信部41は、提供者側サーバ2から挿入クエリを受信した場合、利用者側RDB23A内にID“9054”、名前“Dai”、年齢“40”及び情報利用“TRUE”のデータを挿入することになる。
クエリ変更部31は、提供者側RDB13A内のデータの情報利用が“FALSE”から“TRUE”に変更する更新クエリを検出した場合、更新クエリを挿入クエリに変更する。その結果、利用者側サーバ3は、挿入クエリに応じて“TRUE”に変更したデータを利用者側RDB23Aに登録できるため、提供者側RDB13Aに対する更新データを利用者側RDB23Aに反映できる。
図6Bは、データ提供システム1の情報利用(TRUE→FALSE)の更新時のクエリ変更動作の一例を示す説明図である。尚、説明の便宜上、提供者側サーバ2から利用者側サーバ3にデータを提供する際の提供条件は情報利用“TRUE”とする。
提供者側サーバ2内の提供者側RDB13Aは、例えば、ID“9054”、名前“Dai”、年齢“40”及び情報利用“TRUE”のデータを記憶している。また、利用者側サーバ3内の利用者側RDB23Aも、ID“9054”、名前“Dai”、年齢“40”及び情報利用“TRUE”のデータを記憶している。
この際、提供者側サーバ2は、提供者側RDB13A内の例えば、ID“9054”、名前“Dai”及び年齢“40”のデータの情報利用“TRUE”を“FALSE”に変更する更新クエリが要求されたとする。この際の更新クエリは、例えば、「UPDATE tbl、SET 情報利用=FALSE、WHERE ID=Dai」である。
提供者側サーバ2は、更新クエリに応じて、提供者側RDB13A内のID“9054”、名前“Dai”及び年齢“40”のデータの情報利用“TRUE”を“FALSE”に変更する。
クエリ変更部31は、名前“Dai”のデータを情報利用“TRUE”から“FALSE”への更新クエリを検出した場合、情報利用が“FALSE”の提供条件を満たしていないため、更新クエリを削除クエリに変更する。変更後の削除クエリは、例えば、「DELETE tbl、WHERE ID=Dai」である。そして、クエリ送信部32は、変更後の削除クエリを利用者側サーバ3に送信する。
利用者側サーバ3内のクエリ受信部41は、提供者側サーバ2から削除クエリを受信した場合、利用者側RDB23A内に記憶中のID“9054”、名前“Dai”、年齢“40”及び情報利用“TRUE”のデータを削除することになる。
クエリ変更部31は、提供者側RDB13A内のデータの情報利用が“TRUE”から“FALSE”に変更する更新クエリを検出した場合、更新クエリを削除クエリに変更する。その結果、利用者側サーバ3は、削除クエリに応じて“FALSE”に変更したデータを利用者側RDB23Aから削除するため、提供者側RDB13Aに対する更新データを利用者側RDB23Aに反映する。そして、提供者は、利用者に対して参照不可のデータの安全性を確保できる。
図6Cは、データ提供システム1のデータ削除時のクエリ変更動作の一例を示す説明図である。尚、説明の便宜上、提供者側サーバ2から利用者側サーバ3にデータを提供する際の提供条件は情報利用“TRUE”とする。
提供者側サーバ2内の提供者側RDB13Aは、例えば、ID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータを記憶している。また、利用者側サーバ3内の利用者側RDB23Aは、例えば、ID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータを記憶しているものとする。
この際、提供者側サーバ2は、提供者側RDB13Aから、例えば、ID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータを削除する削除クエリが要求されたとする。この際、削除クエリは、例えば、「DELETE tbl、WHERE ID=Ren」である。
提供者側サーバ2は、削除クエリに応じて、提供者側RDB13A内のID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータを削除することなる。
クエリ変更部31は、提供者側RDB13A内のID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータを削除する削除クエリを検出した場合、削除クエリを出力する。この際、削除クエリは、例えば、「DELETE tbl、WHERE ID=Ren」である。そして、クエリ送信部32は、変更後の削除クエリを利用者側サーバ3に送信する。
利用者側サーバ3内のクエリ受信部41は、提供者側サーバ2から削除クエリを受信した場合、利用者側RDB23AからID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータを削除することになる。
クエリ変更部31は、提供者側RDB13A内の指定のデータを削除する削除クエリを検出した場合、削除クエリを利用者側サーバ3に要求する。その結果、利用者側サーバ3は、利用者側RDB23Aから指定のデータを削除するため、提供者側RDB13Aに対する更新データを利用者側RDB23Aに反映する。そして、提供者は、利用者に対して参照不可のデータの安全性を確保できる。
図6Dは、データ提供システム1のデータ挿入時のクエリ変更動作の一例を示す説明図である。尚、説明の便宜上、提供者側サーバ2から利用者側サーバ3にデータを提供する際の提供条件は情報利用“TRUE”とする。
提供者側サーバ2内の提供者側RDB13Aは、例えば、ID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータ、ID“0022”、名前“Hong”、年齢“52”及び情報利用“TRUE”のデータを記憶している。提供者側RDB13Aは、ID“1011”、名前“Cao”、年齢“56”及び情報利用“FALSE”のデータ、名前“Ang”、年齢“15”及び情報利用“TRUE”のデータを記憶している。
また、利用者側サーバ3内の利用者側RDB23Aは、例えば、ID“0011”、名前“Ren”、年齢“54”及び情報利用“TRUE”のデータ、ID“0022”、名前“Hong”、年齢“52”及び情報利用“TRUE”のデータを記憶している。更に、利用者側RDB23Aは、ID“0333”、名前“Ang”、年齢“15”及び情報利用“TRUE”のデータを記憶している。
この際、提供者側サーバ2は、例えば、ID“9054”、名前“Dai”及び年齢“40”及び情報利用“TRUE”のデータを提供者側RDB13Aに挿入する挿入クエリが要求されたとする。この際、挿入クエリは、例えば、「INSERT INTO tbl、VALUES[9054,Dai,40,TRUE]」である。
提供者側サーバ2は、挿入クエリに応じて、例えば、ID“9054”、名前“Dai”、年齢“40”及び情報利用“TRUE”のデータを利用者側RDB23Aに挿入する。
クエリ変更部31は、名前“Dai”及び情報利用“TRUE”のデータの挿入クエリを検出した場合、情報利用が“TRUE”の提供条件を満たしているため、挿入クエリを出力する。この際、挿入クエリは、例えば、「INSERT tbl、VALUES[9054,Dai,40,TRUE]」である。そして、クエリ送信部32は、変更後の挿入クエリを利用者側サーバ3に送信する。
利用者側サーバ3内のクエリ受信部41は、提供者側サーバ2から挿入クエリを受信した場合、利用者側RDB23A内にID“9054”、名前“Dai”、年齢“40”及び情報利用“TRUE”のデータを挿入することになる。
クエリ変更部31は、情報利用“TRUE”のデータの挿入クエリを検出した場合、挿入クエリを利用者側サーバ3に要求する。その結果、利用者側サーバ3は、情報利用“TRUE”のデータを利用者側RDB23Aに登録できるため、提供者側RDB13Aに対する更新データを利用者側RDB23Aに反映する。そして、提供者は、利用者に参照可のデータを提供できる。
図7は、データ更新処理に関わるクエリ変更部31の処理動作の一例を示すフローチャートである。尚、ログ種類は、例えば、挿入クエリ、削除クエリや更新クエリ等のログである。挿入クエリは、提供者側RDB13Aに新規の挿入対象データを挿入する際のクエリである。削除クエリは、提供者側RDB13Aに記憶中の削除対象データを削除する際のクエリである。更新クエリは、提供者側RDB13Aに記憶中の更新対象データの一部を更新する際のクエリである。提供条件とは、例えば、提供者側RDB13A内のデータの内、情報利用“TRUE”のデータを利用者に提供する条件である。
図7において提供者側サーバ2のクエリ変更部31内の検出部31Aは、提供者側RDB13Aに対するログを検出したか否かを判定する(ステップS11)。検出部31Aは、提供者側RDB13Aに対するログを検出した場合(ステップS11:Yes)、ログ種類を判定する(ステップS12)。
クエリ変更部31内の判定部31Bは、ログ種類が提供者側RDB13Aに新規の挿入対象データを挿入する挿入クエリの場合、挿入対象データが提供条件を満たしたか否かを判定する(ステップS13)。例えば、判定部31Bは、提供者側RDB13Aに挿入対象のデータの情報利用が“TRUE”であるか否かを判定する。
変更部31Cは、挿入対象データが提供条件を満たした場合(ステップS13:Yes)、すなわち挿入対象データの情報利用が“TRUE”の場合、挿入対象データを利用者側RDB23Aに挿入する挿入クエリを出力する(ステップS14)。そして、クエリ変更部31は、クエリ送信部32を通じて挿入クエリを利用者側サーバ3に送信した後、図7に示す処理動作を終了する。判定部31Bは、挿入対象データが提供条件を満たしていない場合(ステップS13:No)、すなわち挿入対象データの情報利用が“FALSE”の場合、挿入対象データを利用者側RDB23Aに挿入することなく、挿入クエリを抑制し、図7に示す処理動作を終了する。
判定部31Bは、ログ種類が提供者側RDB13Aに記憶中のデータを削除する削除クエリの場合、削除対象データが利用者側RDB23A内にあるか否かを判定する(ステップS15)。変更部31Cは、削除対象データが利用者側RDB23A内にある場合(ステップS15:Yes)、削除対象データを利用者側RDB23Aから削除する削除クエリを出力する(ステップS16)。そして、クエリ変更部31は、クエリ送信部32を通じて削除クエリを利用者側サーバ3に送信した後、図7に示す処理動作を終了する。判定部31Bは、削除対象データが利用者側RDB23A内にない場合(ステップS15:No)、削除クエリを抑制し、図7に示す処理動作を終了する。
判定部31Bは、ログ種類が提供者側RDB13Aに記憶中のデータの一部を変更する更新クエリの場合、更新対象データが利用者側RDB23A内にあるか否かを判定する(ステップS17)。判定部31Bは、更新対象データが利用者側RDB23A内にある場合(ステップS17:Yes)、更新対象データが提供条件を満たしたか否かを判定する(ステップS18)。例えば、判定部31Bは、提供者側RDB13A内に更新対象データの情報利用が“TRUE”であるか否かを判定する。
変更部31Cは、更新対象データが提供条件を満たした場合(ステップS18:Yes)、すなわち更新対象データの情報利用が“TRUE”の場合、更新対象データを利用者側RDB23Aに更新する更新クエリを出力する(ステップS19)。そして、クエリ変更部31は、クエリ送信部32を通じて更新クエリを利用者側サーバ3に送信した後、図7に示す処理動作を終了する。変更部31Cは、更新対象データが提供条件を満たしていない場合(ステップS18:No)、すなわち更新対象データの情報利用が“FALSE”と判断する。変更部31Cは、更新対象データの情報利用が“FALSE”の場合、更新クエリを、更新対象データを利用者側RDB23Aから削除する削除クエリに変更する(ステップS20)。そして、クエリ変更部31は、クエリ送信部32を通じて削除クエリを利用者側サーバ3に送信した後、図7に示す処理動作を終了する。
判定部31Bは、更新対象データが利用者側RDB23A内にない場合(ステップS17:No)、更新対象データが提供条件を満たしたか否かを判定する(ステップS21)。例えば、判定部31Bは、提供者側RDB13Aに更新対象データの情報利用が“TRUE”であるか否かを判定する。
変更部31Cは、更新対象データが提供条件を満たした場合(ステップS21:Yes)、すなわち更新対象データの情報利用が“TRUE”の場合、更新クエリを、更新対象データを利用者側RDB23Aに挿入する挿入クエリに変更する(ステップS22)。そして、クエリ変更部31は、クエリ送信部32を通じて挿入クエリを利用者側サーバ3に送信した後、図7に示す処理動作を終了する。クエリ変更部31は、更新対象データが提供条件を満たしていない場合(ステップS21:No)、すなわち更新対象データの情報利用が“FALSE”の場合、更新対象データを利用者側RDB23Aに挿入することなく、図7に示す処理動作を終了する。
クエリ変更部31は、挿入クエリの挿入対象データが提供条件を満たした場合、すなわち挿入対象データの情報利用が“TRUE”の場合、挿入対象データを利用者側RDB23Aに挿入する挿入クエリを利用者側サーバ3に出力する。その結果、提供者側RDB13A内で挿入クエリが発生した場合でも、利用者側RDB23A内に挿入対象データを挿入できる。
クエリ変更部31は、挿入クエリの挿入対象データが提供条件を満たしていない場合、すなわち挿入対象データの情報利用が“FALSE”の場合、挿入対象データを提供者側RDB13Aのみに挿入する。その結果、提供者側RDB13Aは、挿入対象データを追加して登録できる。提供者は、利用者側サーバ3に対して挿入対象データの安全性を確保できる。
クエリ変更部31は、削除クエリの削除対象データが利用者側RDB23A内にある場合、削除対象データを利用者側RDB23Aから削除する削除クエリを利用者側サーバ3に出力する。その結果、提供者側RDB13A内で削除クエリが発生した場合でも、利用者側RDB23Aから削除対象データを削除できる。
クエリ変更部31は、更新クエリの更新対象データが利用者側RDB23A内にあり、かつ、更新対象データが提供条件を満たした、すなわち更新対象データの情報利用が“TRUE”の場合、更新クエリを出力する。更に、クエリ変更部31は、更新クエリを利用者側サーバ3に送信する。その結果、提供者側RDB13A内で情報利用“TRUE”の更新対象データの更新クエリが発生した場合でも、利用者側RDB23Aに情報利用“TRUE”の更新対象データを更新できる。
クエリ変更部31は、更新クエリの更新対象データが利用者側RDB23A内にあり、かつ、更新対象データが提供条件を満たしていない、すなわち更新対象データの情報利用が“FALSE”の場合、更新クエリを削除クエリに変更する。更に、クエリ変更部31は、削除クエリを利用者側サーバ3に送信する。その結果、提供者側RDB13A内で情報利用“FALSE”の更新対象データの更新クエリが発生した場合でも、利用者側RDB23Aから情報利用“FALSE”の更新対象データを削除できる。提供者は、利用者側サーバ3に対して更新対象データの安全性を確保できる。
クエリ変更部31は、更新クエリの更新対象データが利用者側RDB23A内になく、かつ、更新対象データが提供条件を満たした、すなわち更新対象データの情報利用が“TRUE”の場合、更新クエリを挿入クエリに変更する。更に、クエリ変更部31は、挿入クエリを利用者側サーバ3に送信する。その結果、提供者側RDB13A内で情報利用“TRUE”の更新対象データの更新クエリが発生した場合でも、利用者側RDB23Aに情報利用“TRUE”の更新対象データを挿入できる。
実施例1の提供者側サーバ2は、提供者側RDB13Aでのデータ更新を検出した場合に、更新後の更新対象データがアクセス制御対象であるか否かを判定する。提供者側サーバ2は、判定結果に基づいて利用者側RDB23Aに対する更新対象データのクエリを変更する。その結果、提供者側RDB13Aに対する更新データの安全性を確保しながら、更新データを利用者側RDB23Aに安全に反映できる。
提供者側サーバ2は、提供者側RDB13Aでのデータ更新を検出した場合に、更新対象データが利用者側RDB23A内に既存し、かつ、所定の提供条件を満たしているアクセス制御対象であるか否かを判定する。提供者側サーバ2は、更新対象データがアクセス制御対象である場合に、データ更新の更新クエリを利用者側RDB23Aに出力する。その結果、提供者側RDB13Aに対する更新データの安全性を確保しながら、更新データを利用者側RDB23Aに反映できる。
提供者側サーバ2は、更新対象データがアクセス制御対象でない場合に、データ更新のクエリを利用者側RDB23Aへの削除クエリに変更する。その結果、提供者側RDB13Aに対する更新データの安全性を確保しながら、更新データを利用者側RDB23Aに反映できる。
提供者側サーバ2は、提供者側RDB13Aでのデータ更新を検出した場合に、更新対象データが利用者側RDB23A内になく、かつ、所定の提供条件を満たしているアクセス制御対象であるか否かを判定する。提供者側サーバ2は、更新対象データがアクセス制御対象である場合に、データ更新のクエリを利用者側RDB23Aへの挿入クエリに変更する。その結果、提供者側RDB13Aに対する更新データの安全性を確保しながら、更新データを利用者側RDB23Aに反映できる。
提供者側サーバ2は、提供者側RDB13Aでのデータ削除を検出した場合に、削除対象データが利用者側RDB23A内に既存するアクセス制御対象であるか否かを判定する。提供者側サーバ2は、削除対象データがアクセス制御対象である場合に、利用者側RDB23Aに対して削除対象データを削除する削除クエリを出力する。更に、提供者側サーバ2は、削除対象データがアクセス制御対象でない場合に、利用者側RDB23Aへの削除クエリの出力を抑制する。その結果、提供者側RDB13Aに対する更新データの安全性を確保しながら、更新データを利用者側RDB23Aに反映できる。
提供者側サーバ2は、提供者側RDB13Aでのデータ挿入を検出した場合に、挿入対象データがアクセス制御対象であるか否かを判定する。提供者側サーバ2は、挿入対象データがアクセス制御対象である場合に、利用者側RDB23Aに対して挿入対象データを挿入する挿入クエリを出力する。更に、提供者側サーバ2は、挿入対象データがアクセス制御対象でない場合に、利用者側RDB23Aへの挿入クエリの出力を抑制する。その結果、提供者側RDB13Aに対する更新データの安全性を確保しながら、更新データを利用者側RDB23Aに反映できる。
実施例1では、提供条件を反映したクエリ変更機構を備え、提供条件を満たしていないデータは利用者に提供することなく、利用者に提供する前に弾かれることをデータの安全性を確保できる。更に、提供者側RDB13A内の更新データを利用者側RDB23Aに反映できる。
例えば、1日毎に提供者側サーバ2から利用者側サーバ3にデータを提供し、利用者側RDB23A内の1日のデータ数をM行(M個)の内、更新データ数をN行(N個)と仮定する。この場合、図15に示す第5のデータ提供システム340では、提供者側サーバ342から利用者側サーバ343に提供するデータ量がM個分のデータ量に相当する。これに対して、本実施例のデータ提供システム1では、提供者側サーバ2から利用者側サーバ3にデータを提供する場合、少なくとも更新データ数N個分のログ情報で済む。ログ情報は、更新前後のデータを有するため、通常のデータの2倍のデータ量と仮定した場合でも、提供者側サーバ2から利用者側サーバ3に送信する際のデータ量が2N/Mとなる。従って、実施例1の提供者側サーバ2から利用者側サーバ3にデータを伝送する効率は、M行が多く、N行が少なくなるほど高くなることになる。例えば、提供データ100万件の内、1日で1000件のデータが更新されるとき、送信データ量は、図15の第5のデータ提供システム340の送信データ量の0.002倍で済む。また、例えば、提供データ5000件の内、1日で1000件のデータが更新される場合は、送信データ量は、第5のデータ提供システム340の送信データ量の0.4倍で済む。
尚、実施例1では、提供者側サーバ2のコンピュータと利用者側サーバ3のコンピュータとで実現する場合を例示したが、単一のコンピュータ内で提供者側サーバ2及び利用者側サーバ3を仮想化して実現しても良く、適宜変更可能である。
尚、実施例1のデータ提供システム1では、提供者側サーバ2から利用者側サーバ3に提供条件に応じたデータを提供する1対1のシステムを例示した。しかしながら、複数の提供者側サーバ2から複数の利用者側サーバ3に提供条件に応じたデータを提供する複数対複数のシステムに適用しても良く、その実施の形態につき、実施例2として以下に説明する。
図8は、実施例2のデータ提供システム1Aの一例を示す説明図である。図8に示すデータ提供システム1Aは、複数の提供者側サーバ2と、複数の利用者側サーバ3と、プラットフォームサーバ5とを有する。複数の提供者側サーバ2は、例えば、提供者Aの提供者側サーバ2Aと、提供者Bの提供者側サーバ2Bとを有する。複数の利用者側サーバ3は、例えば、利用者Cの利用者側サーバ3Aと、利用者Dの利用者側サーバ3Bと、利用者Eの利用者側サーバ3Cとを有する。
プラットフォームサーバ5は、複数の提供者側サーバ2と複数の利用者側サーバ3との間のクエリをキューするメッセージキュー51と、提供条件DB52とを有する。尚、実施例1の提供条件DB13Bは、提供者側サーバ2内で管理するのに対し、提供条件DB52は、全ての提供条件をプラットフォームサーバ5内で管理する。
各提供者側サーバ2内のクエリ変更部31は、提供条件DB52内の提供条件を取得し、更新クエリの更新対象データ又は挿入クエリの挿入対象データが提供条件を満たしたか否かを判定する。
クエリ変更部31は、挿入クエリを検出した場合に提供条件をプラットフォームサーバ5から取得する。クエリ変更部31は、挿入クエリの挿入対象データが提供条件を満たした場合、すなわち挿入対象データの情報利用が“TRUE”の場合、挿入対象データを利用者側RDB23Aに挿入する挿入クエリをメッセージキュー51経由で利用者側サーバ3に出力する。その結果、提供者側RDB13A内で挿入クエリが発生した場合でも、利用者側RDB23A内に挿入対象データを挿入できる。
クエリ変更部31は、挿入クエリの挿入対象データが提供条件を満たしていない場合、すなわち挿入対象データの情報利用が“FALSE”の場合、挿入対象データを提供者側RDB13Aのみに挿入する。その結果、提供者側RDB13Aは、挿入対象データを追加して登録できる。提供者は、利用者側サーバ3に対して挿入対象データの安全性を確保できる。
クエリ変更部31は、削除クエリの削除対象データが利用者側RDB23A内にある場合、削除対象データを利用者側RDB23Aから削除する削除クエリをメッセージキュー51経由で利用者側サーバ3に出力する。その結果、提供者側RDB13A内で削除クエリが発生した場合でも、利用者側RDB23Aから削除対象データを削除できる。
クエリ変更部31は、更新クエリを検出した場合に提供条件をプラットフォームサーバ5から取得する。クエリ変更部31は、更新クエリの更新対象データが利用者側RDB23A内にあり、かつ、更新対象データが提供条件を満たした、すなわち更新対象データの情報利用が“TRUE”の場合、更新クエリを出力する。クエリ変更部31は、更新クエリをメッセージキュー51経由で利用者側サーバ3に送信する。その結果、提供者側RDB13A内で情報利用“TRUE”の更新対象データの更新クエリが発生した場合でも、利用者側RDB23Aに情報利用“TRUE”の更新対象データを更新できる。
クエリ変更部31は、更新クエリの更新対象データが利用者側RDB23A内にあり、かつ、更新対象データが提供条件を満たしていない、すなわち更新対象データの情報利用が“FALSE”の場合、更新クエリを削除クエリに変更する。クエリ変更部31は、削除クエリをメッセージキュー51経由で利用者側サーバ3に送信する。その結果、提供者側RDB13A内で情報利用“FALSE”の更新対象データの更新クエリが発生した場合でも、利用者側RDB23Aから情報利用“FALSE”の更新対象データを削除できる。提供者は、利用者側サーバ3に対して挿入対象データの安全性を確保できる。
クエリ変更部31は、更新クエリを検出した場合に提供条件をプラットフォームサーバ5から取得する。クエリ変更部31は、更新クエリの更新対象データが利用者側RDB23A内になく、かつ、更新対象データが提供条件を満たした、すなわち更新対象データの情報利用が“TRUE”の場合、更新クエリを挿入クエリに変更する。クエリ変更部31は、挿入クエリをメッセージキュー51経由で利用者側サーバ3に送信する。その結果、提供者側RDB13A内で情報利用“TRUE”の更新対象データの更新クエリが発生した場合でも、利用者側RDB23Aに情報利用“TRUE”の更新対象データを挿入できる。
実施例2では、複数の提供者側サーバ2と複数の利用者側サーバ3との間をプラットフォームサーバ5で接続し、プラットフォームサーバ5は単一のコンピュータで実現する場合を例示した。しかしながら、提供者側サーバ2及び利用者側サーバ3を単一のコンピュータ内で仮想化して実現しても良く、また、提供者側サーバ2、利用者側サーバ3及びプラットフォームサーバ5を単一のコンピュータ内で仮想化して実現しても良く、適宜変更可能である。
提供者側RDB13Aは、ID毎に名前、年齢及び情報利用を対応付けてデータを管理する場合を例示したが、そのデータ内容は適宜変更可能である。また、提供者側RDB13Aは、管理するデータが個人情報に限定されるものではなく、利用者に提供可能なデータであれば良く、適宜変更可能である。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
更に、各装置で行われる各種処理機能は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)やFPGA(Field Programmable Gate Array)等上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU等で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良い。
各種情報を記憶する領域は、例えば、ROM(Read Only Memory)や、SDRAM(Synchronous Dynamic Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)やNVRAM(Non-Volatile Random Access Memory)等のRAM(Random Access Memory)で構成しても良い。
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータ内のCPU等のプロセッサで実行させることによって実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータ200の一例を説明する。図9は、データ更新プログラムを実行するコンピュータ200の一例を示す説明図である。
図9に示すデータ更新プログラムを実行するコンピュータ200は、通信IF210と、入力装置220と、出力装置230と、ROM240と、RAM250と、CPU260と、バス270とを有する。通信IF210、入力装置220、出力装置230、ROM240、RAM250及びCPU260は、バス270を介して接続される。RAM250は、データ供給元のデータベースである。通信IF210は、データ供給先のデータベースを管理する他のコンピュータとの通信を司る。
そして、ROM240には、上記実施例と同様の機能を発揮するデータ更新プログラムが予め記憶されている。ROM240は、データ更新プログラムとして検出プログラム240A、判定プログラム240B及び変更プログラム240Cが記憶されている。尚、ROM240ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に充電制御プログラムが記録されていても良い。また、記録媒体としては、例えば、CD−ROM、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。
そして、CPU260は、検出プログラム240AをROM240から読み出し、RAM250上で検出プロセス250Aとして機能させる。更に、CPU260は、判定プログラム240BをROM240から読み出し、RAM250上で判定プロセス250Bとして機能させる。更に、CPU260は、変更プログラム240CをROM240から読み出し、RAM250上で変更プロセス250Cとして機能させる。
CPU260は、データ供給元のデータベースでのデータ更新を検出した場合に、更新後の更新対象データがアクセス制御対象であるか否かを判定する。CPU260は、判定結果に基づいて、データ供給先のデータベースに対して出力する、更新対象データに関するクエリを変更する。その結果、データ供給元のデータベースに対する更新データの安全性を確保しながら、更新データをデータ供給先のデータベースに安全に反映できる。
1 データ提供システム
2 提供者側サーバ
3 利用者側サーバ
13A 提供者側RDB
23A 利用者側RDB
31 クエリ変更部
31A 検出部
31B 判定部
31C 変更部

Claims (8)

  1. データ供給元のデータベースでのデータ更新を検出した場合に、更新後の更新対象データがアクセス制御対象であるか否かを判定し、
    判定結果に基づいて、データ供給先のデータベースに対して出力する、前記更新対象データに関するクエリを変更する
    処理をコンピュータに実行させることを特徴とするデータ更新プログラム。
  2. 前記判定する処理は、前記データ供給元のデータベースでのデータ更新を検出した場合に、前記更新対象データが前記データ供給先のデータベース内に既存し、かつ、所定の提供条件を満たしているアクセス制御対象であるか否かを判定し、
    前記変更する処理は、前記更新対象データが前記アクセス制御対象である場合に、前記データ供給先のデータベースに対して前記更新対象データを更新する更新クエリを出力する
    ことを特徴とする請求項1に記載のデータ更新プログラム。
  3. 前記変更する処理は、前記更新対象データが前記アクセス制御対象でない場合に、前記データ更新のクエリを、前記データ供給先のデータベースから前記更新対象データを削除する削除クエリに変更する
    ことを特徴とする請求項2に記載のデータ更新プログラム。
  4. 前記判定する処理は、前記データ供給元のデータベースでのデータ更新を検出した場合に、前記更新対象データが前記データ供給先のデータベース内になく、かつ、所定の提供条件を満たしているアクセス制御対象であるか否かを判定し、
    前記変更する処理は、前記更新対象データが前記アクセス制御対象である場合に、前記データ更新のクエリを、前記データ供給先のデータベースに対して前記更新対象データを挿入する挿入クエリに変更する
    ことを特徴とする請求項1に記載のデータ更新プログラム。
  5. 前記判定する処理は、前記データ供給元のデータベースでのデータ削除を検出した場合に、削除対象データが前記データ供給先のデータベース内に既存するアクセス制御対象であるか否かを判定し、
    前記変更する処理は、前記削除対象データが前記アクセス制御対象である場合に、前記データ供給先のデータベースに対して削除対象データを削除する削除クエリを出力すると共に、前記削除対象データが前記アクセス制御対象でない場合に、前記削除クエリの出力を抑制する
    ことを特徴とする請求項1に記載のデータ更新プログラム。
  6. 前記判定する処理は、前記データ供給元のデータベースでのデータ挿入を検出した場合に、挿入対象データがアクセス制御対象であるか否かを判定し、
    前記変更する処理は、前記挿入対象データが前記アクセス制御対象である場合に、前記データ供給先のデータベースに対して挿入対象データを挿入する挿入クエリを出力すると共に、前記挿入対象データが前記アクセス制御対象でない場合に、前記挿入クエリの出力を抑制する
    ことを特徴とする請求項1に記載のデータ更新プログラム。
  7. データ供給元のデータベースでのデータ更新を検出した場合に、更新後の更新対象データがアクセス制御対象であるか否かを判定する判定部と、
    前記判定部の判定結果に基づいて、データ供給先のデータベースに対して出力する、前記更新対象データに関するクエリを変更する変更部と
    を有することを特徴とするデータ更新装置。
  8. コンピュータが、
    データ供給元のデータベースでのデータ更新を検出した場合に、更新後の更新対象データがアクセス制御対象であるか否かを判定し、
    判定結果に基づいてデータ供給先のデータベース)に対して出力する、前記更新対象データに関するクエリを変更する
    処理を実行することを特徴とするデータ更新方法。
JP2020091796A 2020-05-26 2020-05-26 データ更新プログラム、データ更新装置及びデータ更新方法 Withdrawn JP2021189569A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020091796A JP2021189569A (ja) 2020-05-26 2020-05-26 データ更新プログラム、データ更新装置及びデータ更新方法
US17/207,788 US20210374119A1 (en) 2020-05-26 2021-03-22 Data update apparatus and data update method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020091796A JP2021189569A (ja) 2020-05-26 2020-05-26 データ更新プログラム、データ更新装置及びデータ更新方法

Publications (1)

Publication Number Publication Date
JP2021189569A true JP2021189569A (ja) 2021-12-13

Family

ID=78706355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020091796A Withdrawn JP2021189569A (ja) 2020-05-26 2020-05-26 データ更新プログラム、データ更新装置及びデータ更新方法

Country Status (2)

Country Link
US (1) US20210374119A1 (ja)
JP (1) JP2021189569A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022060809A1 (en) * 2020-09-17 2022-03-24 Mastercard International Incorporated Continuous learning for seller disambiguation, assessment, and onboarding to electronic marketplaces

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE374356T1 (de) * 2003-04-15 2007-10-15 Harman Becker Automotive Sys Datenbanksystem für eine navigationsvorrichtung
JP4899295B2 (ja) * 2004-07-01 2012-03-21 富士通株式会社 メタデータエディタプログラム、メタデータエディタ装置およびメタデータエディタ方法
TWI344604B (en) * 2004-10-26 2011-07-01 Via Tech Inc Network heterogeneous database synchronizing system and method
EP1669887A1 (de) * 2004-12-13 2006-06-14 Ubs Ag Datenarchivierung
US20110055291A1 (en) * 2009-08-31 2011-03-03 Bryn Henderson Database Integration Tool
JP5061166B2 (ja) * 2009-09-04 2012-10-31 Kii株式会社 データ同期システムおよびデータ同期方法
WO2011115839A2 (en) * 2010-03-15 2011-09-22 DynamicOps, Inc. Computer relational database method and system having role based access control
JP5423553B2 (ja) * 2010-04-09 2014-02-19 株式会社日立製作所 データベース管理方法、計算機、センサネットワークシステム及びデータベース検索プログラム
CN102739603B (zh) * 2011-03-31 2015-10-21 国际商业机器公司 单点登录的方法和设备
JP5845789B2 (ja) * 2011-09-30 2016-01-20 富士通株式会社 制御プログラム、データアクセス制御装置およびデータ制御方法
US9734237B2 (en) * 2012-10-08 2017-08-15 Bmc Software, Inc. Progressive analysis for big data
US9449038B2 (en) * 2012-11-26 2016-09-20 Amazon Technologies, Inc. Streaming restore of a database from a backup system
WO2014167647A1 (ja) * 2013-04-09 2014-10-16 株式会社日立製作所 データ管理装置、データ管理方法及び非一時的な記録媒体
US9330271B1 (en) * 2013-10-15 2016-05-03 Amazon Technologies, Inc. Fine-grained access control for synchronized data stores
WO2015145536A1 (ja) * 2014-03-24 2015-10-01 株式会社日立製作所 データベース管理システム及びデータベース間の同期制御方法
WO2015179767A1 (en) * 2014-05-22 2015-11-26 AVG Netherlands B.V. User privacy protection method and system
US10409835B2 (en) * 2014-11-28 2019-09-10 Microsoft Technology Licensing, Llc Efficient data manipulation support
CN106897342B (zh) * 2016-07-20 2020-10-09 阿里巴巴集团控股有限公司 一种数据校验方法和设备
AU2018295566A1 (en) * 2017-07-04 2020-01-23 GeoInt-SafeNet Pty Ltd A system and method for automatically generating geographic specific data
US10956910B2 (en) * 2017-08-15 2021-03-23 Wave Financial Inc. Application server for automated data transfers and associated methods
US10740404B1 (en) * 2018-03-07 2020-08-11 Experian Information Solutions, Inc. Database system for dynamically generating customized models
US10796376B2 (en) * 2018-08-02 2020-10-06 Capital One Services, Llc Automatic exchange of information for vehicle accidents
GB2581504A (en) * 2019-02-20 2020-08-26 Smartpipe Tech Ltd Processing data in a network
US11501014B2 (en) * 2020-05-07 2022-11-15 International Business Machines Corporation Secure data replication in distributed data storage environments

Also Published As

Publication number Publication date
US20210374119A1 (en) 2021-12-02

Similar Documents

Publication Publication Date Title
TWI798547B (zh) 從基於雲端的資料保護服務進行還原
US10783198B2 (en) Row-based data filtering at a database level
US8335890B1 (en) Associating an identifier with a content unit
US20210157954A1 (en) Authenticating data for storage using a data storage system and distributed electronic ledger system
US20080244738A1 (en) Access control
US20100287221A1 (en) Templates for configuring file shares
US20210200714A1 (en) Apparatus for Accessing Data from a Database as a File
TW200825924A (en) Virtual deletion in merged registry keys
WO2008055010A1 (en) Reverse name mappings in restricted namespace environments
WO2020093501A1 (zh) 文件存储方法、删除方法、服务器及存储介质
US20060112015A1 (en) Method, system, and device for handling creation of derivative works and for adapting rights to derivative works
US9836585B2 (en) User centric method and adaptor for digital rights management system
JP2005276158A (ja) ストレージシステム、計算機システムまたは記憶領域の属性設定方法
JP5062909B2 (ja) 1つのディレクトリから別のディレクトリへのファイルのコピー
US12086106B2 (en) Method and apparatus for providing metadata sharing service
JP2021189569A (ja) データ更新プログラム、データ更新装置及びデータ更新方法
WO2024114088A1 (zh) 文件的同步方法及装置
US11960617B2 (en) Hardware protection of files in an integrated-circuit device
WO2022105761A1 (zh) 文件操作方法及相关设备
US20090241134A1 (en) Remote storage service api
JP2000259476A (ja) ファイル管理システム及びサーバ計算機
CN112115122A (zh) 一种数据访问方法、装置及电子设备
US10547677B1 (en) System for data storage for distributed access
WO2022073584A1 (en) Method and computer system for pricing data storage
JPWO2020261438A5 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230209

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20231027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231031