(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-25
(45)【発行日】2023-06-02
(54)【発明の名称】データ管理装置、データ管理方法、プログラム、及びデータ管理システム
(51)【国際特許分類】
G06F 16/25 20190101AFI20230526BHJP
G06F 16/27 20190101ALI20230526BHJP
【FI】
G06F16/25
G06F16/27
(21)【出願番号】P 2019085404
(22)【出願日】2019-04-26
【審査請求日】2022-02-03
(73)【特許権者】
【識別番号】518276427
【氏名又は名称】ZEROBILLBANK JAPAN株式会社
(73)【特許権者】
【識別番号】000110217
【氏名又は名称】TOPPANエッジ株式会社
(74)【代理人】
【識別番号】100166006
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100154070
【氏名又は名称】久恒 京範
(74)【代理人】
【識別番号】100153280
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】堀口 純一
(72)【発明者】
【氏名】茂木 健一
(72)【発明者】
【氏名】奥村 尚志
(72)【発明者】
【氏名】緒方 俊哉
(72)【発明者】
【氏名】片山 洋臣
【審査官】原 秀人
(56)【参考文献】
【文献】特開2015-187828(JP,A)
【文献】特開2003-122845(JP,A)
【文献】特開2002-279135(JP,A)
【文献】特開2013-037567(JP,A)
【文献】特開2009-099007(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
データ管理装置であって、
前記データ管理装置と通信可能な態様で接続され、異なる
管理者によってそれぞれ管理される複数のデータベースのテーブルを構成する各レコードを、それぞれベクトルデータに変換するベクトル変換部と、
前記ベクトルデータと、前記ベクトルデータを特定するためのデータ識別子と、前記ベクトルデータに対応するレコードを含むデータベースの管理者を特定するための管理者識別子とを紐づけて、
前記データ管理装置と専用回線を介して通信可能な態様で接続されたベクトルデータベースに登録するデータベースアクセス部と、
前記ベクトルデータベースに
おいて前記管理者それぞれに割り当てられた管理者識別子を、各管理者の前記ベクトルデータベースにおけるアクセス権を示すアクセス権情報と紐づけてブロックチェーンに登録するブロックチェーンアクセス部と、
前記複数のデータベースの管理者のうちのいずれかの管理者である第1管理者から、
前記複数のデータベースのうち前記第1管理者が管理するデータベースにおいて
前記第1管理者が更新対象とするレコードのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを取得する更新データ取得部と、
前記ベクトルデータベースに格納されたベクトルデータと、前記更新対象とするレコードのデータ識別子が紐付けられているベクトルデータである更新対象ベクトルデータとの類似度を算出する類似度算出部と、
前記類似度が所定の条件を満たすベクトルデータである類似ベクトルデータに対応するレコードを含むデータベースの管理者である第2管理者に、前記類似ベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、前記更新後のフィールド情報とを通知する更新情報通知部と、
を備えるデータ管理装置。
【請求項2】
前記ブロックチェーンアクセス部は、前記アクセス権情報を参照して、前記ベクトルデータベースに登録されているベクトルデータのうち前記第1管理者がアクセスすることを許可されたベクトルデータを特定する、
請求項
1に記載のデータ管理装置。
【請求項3】
前記ベクトル変換部は、前記第1管理者と前記第2管理者とのそれぞれが管理するデータベースを構成するレコードのうち、少なくとも更新されたレコードをベクトルデータに変換して前記ベクトルデータベースに登録する、
請求項1又は2に記載のデータ管理装置。
【請求項4】
前記データベースアクセス部は、前記ブロックチェーンアクセス部が前記ブロックチェーンから取得したアクセス権が許可する範囲において前記ベクトルデータベースにアクセスする、
請求項
1から3のいずれか1項に記載のデータ管理装置。
【請求項5】
データ管理装置のプロセッサが、
前記データ管理装置と通信可能な態様で接続され、異なる
管理者によってそれぞれ管理される複数のデータベース
であって前記データ管理装置と通信可能な態様で接続しているデータベースのテーブルを構成する各レコードを、それぞれベクトルデータに変換するステップと、
前記ベクトルデータと、前記ベクトルデータを特定するためのデータ識別子と、前記ベクトルデータに対応するレコードを含むデータベースの管理者を特定するための管理者識別子とを紐づけて、
前記データ管理装置と専用回線を介して通信可能な態様で接続されたベクトルデータベースに登録するステップと、
前記ベクトルデータベースに
おいて前記管理者それぞれに割り当てられた管理者識別子を、各管理者の前記ベクトルデータベースにおけるアクセス権を示すアクセス権情報と紐づけてブロックチェーンに登録するステップと、
前記複数のデータベースの管理者のうちのいずれかの管理者である第1管理者から、
前記複数のデータベースのうち前記第1管理者が管理するデータベースにおいて
前記第1管理者が更新対象とするレコードのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを取得するステップと、
前記ベクトルデータベースに格納されたベクトルデータと、前記更新対象とするレコードのデータ識別子が紐付けられているベクトルデータである更新対象ベクトルデータとの類似度を算出するステップと、
前記類似度が所定の条件を満たすベクトルデータである類似ベクトルデータに対応するレコードを含むデータベースの管理者である第2管理者に、前記類似ベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、前記更新後のフィールド情報とを通知するステップと、
を実行するデータ管理方法。
【請求項6】
コンピュータに、
前記コンピュータと通信可能な態様で接続され、異なる
管理者によってそれぞれ管理される複数のデータベースのテーブルを構成する各レコードを、それぞれベクトルデータに変換する機能と、
前記ベクトルデータと、前記ベクトルデータを特定するためのデータ識別子と、前記ベクトルデータに対応するレコードを含むデータベースの管理者を特定するための管理者識別子とを紐づけて、
前記コンピュータと専用回線を介して通信可能な態様で接続されたベクトルデータベースに登録
させる機能と、
前記ベクトルデータベースに
おいて前記管理者それぞれに割り当てられた管理者識別子を、各管理者の前記ベクトルデータベースにおけるアクセス権を示すアクセス権情報と紐づけてブロックチェーンに登録する機能と、
前記複数のデータベースの管理者のうちのいずれかの管理者である第1管理者から、
前記複数のデータベースのうち前記第1管理者が管理するデータベースにおいて
前記第1管理者が更新対象とするレコードのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを取得する機能と、
前記ベクトルデータベースに格納されたベクトルデータと、前記更新対象とするレコードのデータ識別子が紐付けられているベクトルデータである更新対象ベクトルデータとの類似度を算出する機能と、
前記類似度が所定の条件を満たすベクトルデータである類似ベクトルデータに対応するレコードを含むデータベースの管理者である第2管理者に、前記類似ベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、前記更新後のフィールド情報とを通知する機能と、
を実現させるプログラム。
【請求項7】
請求項1から
4のいずれか1項に記載のデータ管理装置と、
前記ベクトルデータベースと、
を備えるデータ管理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ管理装置、データ管理方法、プログラム、及びデータ管理システムに関する。
【背景技術】
【0002】
近年、顧客情報や商品情報等、種々の種類の情報がリレーショナルデータベース(以下、単に「データベース」と記載する。)で管理されている。これらのデータベースは、本来であれば同一の情報であっても、異なる管理者によってそれぞれ管理される異なるデータベースに個別に登録されることも多い。データベースが異なる場合、同じ情報を格納する場合であっても、各データベースにおけるレコードを構成するフィールドの構成や、各フィールドに格納される値等が異なることが起こりうる。
【0003】
そのため、異なるデータベースを統合したり、相互に参照し合ったりするための技術が種々提案されている。このような技術の中には、いわゆる「名寄せ」と呼ばれる技術も存在する(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
名寄せは各データベースに登録されている値の類似度に基づいてデータベースを統合する技術であるため、統合や参照の際にデータベースの値にアクセスする必要がある。このため、名寄せのためにはデータベース全体にアクセスしなければならないが、情報の漏洩の危険性が増すことになる。特に、データベースに個人情報等の機密情報が格納されている場合には、情報の漏洩を抑制することが課題となる。
【0006】
本発明はこれらの点に鑑みてなされたものであり、データベースの共有時のセキュリティを向上させるための技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様は、データ管理装置である。この装置は、異なる権限設定によってそれぞれ管理される複数のデータベースのテーブルを構成する各レコードを、それぞれベクトルデータに変換するベクトル変換部と、前記ベクトルデータと、前記ベクトルデータを特定するためのデータ識別子と、前記ベクトルデータに対応するレコードを含むデータベースの管理者を特定するための管理者識別子とを紐づけて、ベクトルデータベースに登録するデータベースアクセス部と、前記ベクトルデータベースに登録された前記管理者識別子をブロックチェーンに登録するブロックチェーンアクセス部と、前記複数のデータベースの管理者のうちのいずれかの管理者である第1管理者から、前記第1管理者が管理するデータベースにおいて更新対象とするレコードのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを取得する更新データ取得部と、前記ベクトルデータベースに格納されたベクトルデータと、前記更新対象とするレコードのデータ識別子が紐付けられているベクトルデータである更新対象ベクトルデータとの類似度を算出する類似度算出部と、前記類似度が所定の条件を満たすベクトルデータである類似ベクトルデータに対応するレコードを含むデータベースの管理者である第2管理者に、前記類似ベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、前記更新後のフィールド情報とを通知する更新情報通知部と、を備える。
【0008】
前記ブロックチェーンアクセス部は、前記ベクトルデータベースにおいて前記管理者それぞれに割り当てられた管理者識別子を、各管理者の前記ベクトルデータベースにおけるアクセス権を示すアクセス権情報と紐づけて前記ブロックチェーンに登録してもよい。
【0009】
前記ブロックチェーンアクセス部は、前記アクセス権情報を参照して、前記ベクトルデータベースに登録されているベクトルデータのうち前記第1管理者がアクセスすることを許可されたベクトルデータを特定してもよい。
【0010】
前記ベクトル変換部は、前記第1管理者と前記第2管理者とのそれぞれが管理するデータベースを構成するレコードのうち、少なくとも更新されたレコードをベクトルデータに変換して前記ベクトルデータベースに登録してもよい。
【0011】
前記データベースアクセス部は、前記ブロックチェーンアクセス部が前記ブロックチェーンから取得したアクセス権が許可する範囲において前記ベクトルデータベースにアクセスしてもよい。
【0012】
本発明の第2の態様は、データ管理方法である。この方法において、プロセッサが、異なる権限設定よってそれぞれ管理される複数のデータベースのテーブルを構成する各レコードを、それぞれベクトルデータに変換するステップと、前記ベクトルデータと、前記ベクトルデータを特定するためのデータ識別子と、前記ベクトルデータに対応するレコードを含むデータベースの管理者を特定するための管理者識別子とを紐づけて、ベクトルデータベースに登録するステップと、前記ベクトルデータベースに登録された前記管理者識別子をブロックチェーンに登録するステップと、前記複数のデータベースの管理者のうちのいずれかの管理者である第1管理者から、前記第1管理者が管理するデータベースにおいて更新対象とするレコードのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを取得するステップと、前記ベクトルデータベースに格納されたベクトルデータと、前記更新対象とするレコードのデータ識別子が紐付けられているベクトルデータである更新対象ベクトルデータとの類似度を算出するステップと、前記類似度が所定の条件を満たすベクトルデータである類似ベクトルデータに対応するレコードを含むデータベースの管理者である第2管理者に、前記類似ベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、前記更新後のフィールド情報とを通知するステップと、を実行する。
【0013】
本発明の第3の態様は、プログラムである。このプログラムは、コンピュータに、異なる権限設定によってそれぞれ管理される複数のデータベースのテーブルを構成する各レコードを、それぞれベクトルデータに変換する機能と、前記ベクトルデータと、前記ベクトルデータを特定するためのデータ識別子と、前記ベクトルデータに対応するレコードを含むデータベースの管理者を特定するための管理者識別子とを紐づけて、ベクトルデータベースに登録する機能と、前記ベクトルデータベースに登録された前記管理者識別子をブロックチェーンに登録する機能と、前記複数のデータベースの管理者のうちのいずれかの管理者である第1管理者から、前記第1管理者が管理するデータベースにおいて更新対象とするレコードのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを取得する機能と、前記ベクトルデータベースに格納されたベクトルデータと、前記更新対象とするレコードのデータ識別子が紐付けられているベクトルデータである更新対象ベクトルデータとの類似度を算出する機能と、前記類似度が所定の条件を満たすベクトルデータである類似ベクトルデータに対応するレコードを含むデータベースの管理者である第2管理者に、前記類似ベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、前記更新後のフィールド情報とを通知する機能と、を実現させる。
【0014】
このプログラムを提供するため、あるいはプログラムの一部をアップデートするために、このプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよく、また、このプログラムが通信回線で伝送されてもよい。
【0015】
本発明の第4の態様は、データ管理システムである。このシステムは、上述のデータ管理装置と、前記ベクトルデータベースと、を備える。
【0016】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0017】
本発明によれば、データベースの共有時のセキュリティを向上させることができる。
【図面の簡単な説明】
【0018】
【
図1】実施の形態に係るデータ管理装置の概要を説明するための図である。
【
図2】実施の形態に係るデータ管理装置の機能構成を模式的に示す図である。
【
図3】実施の形態に係るデータベースのデータ構造の一例を模式的に示す図である。
【
図4】実施の形態に係るベクトルデータベースのデータ構造を模式的に示す図である。
【
図5】実施の形態に係るブロックチェーンの構成を模式的に示す図である。
【
図6】実施の形態に係るデータ管理装置が実行するデータ管理処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【0019】
<実施の形態の概要>
図1は、実施の形態に係るデータ管理装置1の概要を説明するための図である。
図1では、第1管理者M1が管理する第1データベースD1と、第2管理者M2が管理する第2データベースD2とが、それぞれ通信ネットワークN1を介してデータ管理装置1と通信可能な態様で接続している。第1データベースD1と第2データベースD2とは、それぞれ管理する管理者Mが異なるため、第1データベースD1と第2データベースD2とはそれぞれ異なる権限設定によって管理されるデータベースといえる。データ管理装置1は通信ネットワークN1を介してブロックチェーンBと通信可能な態様で接続し、かつ安全性が担保された専用回線であるセキュアネットワークN2を介してベクトルデータベースVと通信可能な態様で接続している。なお、データ管理装置1とベクトルデータベースVとで、データ管理システムSを構成する。
【0020】
ここで、ブロックチェーンBは分散型のデータベースとして機能し、ブロックチェーンBに参加しているコンピュータであれば自由に内容を閲覧することができる。一方、ベクトルデータベースVは閲覧のための権限が厳格に管理されており、専用回線であるセキュアネットワークN2を介してデータ管理装置1のみがアクセスできる。以下、第1管理者M1と第2管理者M2とを区別しない場合は単に管理者Mと記載する。同様に、第1管理者M1と第2管理者M2とを区別しない場合は単にデータベースDと記載する。
【0021】
以下、
図1を参照して、実施の形態に係るデータ管理装置1で行われる処理の手順を(1)から(8)で説明するが、その説明は
図1中の(1)から(8)と対応する。
【0022】
(1)データ管理装置1は、第1データベースD1のテーブルを構成する各レコードを取得する。
(2)記憶部2は、第2データベースD2のテーブルを構成する各レコードを取得する。
【0023】
(3)データ管理装置1は、取得した各レコードをそれぞれベクトルデータに変換する。このベクトルデータは、レコードを構成する各フィールドに格納された値を反映して生成されるものである。すなわち、異なる2つのレコードを構成する各フィールドに格納された値が類似するほど、変換後の各ベクトルデータも類似する。一方、ベクトルデータから元のフィールドに格納されている情報を復元することは困難である。データ管理装置1は、ベクトルデータに変換した後はレコードを削除しレコード自体は保持しない。なお、ベクトルデータの変換手法については後述する。
【0024】
(4)データ管理装置1は、レコードを変換して取得したベクトルデータを、そのベクトルデータを識別するためのデータ識別子と、レコードを含むデータベースの管理者を識別するための管理者識別子とに紐づけてベクトルデータベースVに登録する。これにより、ベクトルデータベースVには、D1が格納する情報と第2データベースD2が格納する情報とがベクトルデータの形で格納されることになる。データ管理装置1は、ベクトルデータベースVに格納されているベクトルデータ同士の類似度を算出することにより、それらの元となるレコードを構成する各フィールドに格納された値の類似度を推定することができる。
【0025】
(5)データ管理装置1は、通信ネットワークN1を介して、ベクトルデータベースVに関して各管理者が有するアクセス権を示すアクセス権情報を管理者識別子と紐づけてブロックチェーンBに登録する。アクセス権情報は、管理者M毎にベクトルデータのアクセス許可範囲を定めた情報である。例えば、管理者Mは、自身が管理するデータベースDに関するベクトルデータであれば自由にアクセスできる。一方、他の管理者Mが管理するデータベースDに関するベクトルデータは、管理者Mは他の管理者Mからの了承が得られた範囲以外のデータにはアクセスすることができない。
【0026】
(6)データ管理装置1は、第1管理者M1から第1データベースD1において更新対象とするレコードを特定するためのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを取得する。
(7)データ管理装置1は、更新対象とするレコードをベクトルデータに変換し、ベクトルデータベースVに格納されている各ベクトルデータのうち、第1管理者M1がアクセスすることを許可されたベクトルデータとの類似度を算出する。
【0027】
(8)データ管理装置1は、類似度が所定の条件を満たすベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを第2管理者M2がアクセス可能な端末に通知する。以下、本明細書において、管理者Mがアクセス可能な管理者端末(不図示)に何らかの情報を通知することを、管理者端末の存在を前提として、単に「管理者Mに通知する」等の表現を用いて記載する。
【0028】
ここで「所定の条件」とは、第1データベースD1のレコードと第2データベースD2のレコードとが同一の情報を格納するレコードであるとみなすためにあらかじめ定められた類似度が満たすための条件である。所定の条件の具体例は、類似度に関して定められた同一判定用閾値を超えることである。この場合、データ管理装置1は、2つの異なるベクトルデータの類似度が同一判定用閾値を超える場合、それらのベクトルデータにそれぞれ対応するレコードは同一の情報を格納するレコードであるとみなす。
【0029】
これにより、第2管理者M2は、第1データベースD1のレコードが第1管理者M1によって変更されたとき、そのレコードに対応するとみなされる第2データベースD2のレコードの内容を修正することができる。すなわち、第1管理者M1と第2管理者M2とは、第1データベースD1のレコードの内容と第2データベースD2のレコードの内容とを共有することができる。
【0030】
データ管理装置1は、データベースDを構成するレコードから変換したベクトルデータをベクトルデータベースVに格納して保持するため、インターネット等の公共の通信回線を介してアクセス可能なデータベースに格納する場合と比較して、ベクトルデータの流出の危険性を低減することができる。また、万が一ベクトルデータが第三者に流出したとしても、第三者は、ベクトルデータから元のレコードを復元することは困難である。
【0031】
このように、実施の形態に係るデータ管理装置1は、データベースDの共有時のセキュリティを向上させることができる。さらに、各管理者Mが管理するデータベースDにおけるデータ識別子を、その管理者Mとは異なる他の管理者Mが管理するデータベースDにおけるデータ識別子と統合することなく、情報を連携することができる。これにより、実施の形態に係るデータ管理装置1は、データベースDの管理の際の生産性を向上させることができる。
【0032】
なお、
図1は、第1データベースD1と第2データベースD2との2つのデータベースDがある場合を示しているが、データベースDの数は2に限られず、3以上であってもよい。
【0033】
<実施の形態に係るデータ管理装置1の機能構成>
図2は、実施の形態に係るデータ管理装置1の機能構成を模式的に示す図である。データ管理装置1は、記憶部2と制御部3とを備える。
図2において、矢印は主なデータの流れを示しており、
図2に示していないデータの流れがあってもよい。
図2において、各機能ブロックはハードウェア(装置)単位の構成ではなく、機能単位の構成を示している。そのため、
図2に示す機能ブロックは単一の装置内に実装されてもよく、あるいは複数の装置内に分かれて実装されてもよい。機能ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてもよい。
【0034】
記憶部2は、データ管理装置1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)やデータ管理装置1の作業領域となるRAM(Random Access Memory)、OS(Operating System)やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置である。
【0035】
制御部3は、データ管理装置1のCPU(Central Processing Unit)やGPU(Graphics Processing Unit)等のプロセッサであり、記憶部2に記憶されたプログラムを実行することによってベクトル変換部30、データベースアクセス部31、ブロックチェーンアクセス部32、更新データ取得部33、類似度算出部34、及び更新情報通知部35として機能する。
【0036】
なお、
図2は、データ管理装置1が単一の装置で構成されている場合の例を示している。しかしながら、データ管理装置1は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部3を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
【0037】
ベクトル変換部30は、異なる管理者によってそれぞれ管理される複数のデータベースのテーブルを構成する各レコードを取得する。制御部3は、取得した各レコードを、それぞれベクトルデータに変換する。
【0038】
図3は、実施の形態に係るデータベースDのデータ構造の一例を模式的に示す図である。具体的には、
図3は、会員情報を登録するための会員情報データベースのデータ構造を示す図である。以下、
図3を参照しながら、ベクトル変換部30が実行するレコードのベクトルデータ変換手法を説明する。
【0039】
データベースDは、複数のレコードが集まって構成される。ここで、レコードはデータベースDに格納される情報の単位である。データベースDが会員情報データベースある場合、各レコードに会員一人分の情報が格納される。
図3に示すように、各レコードは複数のフィールドから構成される。
図3に示す例では、各レコードは「データ識別子」、「姓(漢字)」、「名(漢字)」、「姓(ひらがな)」、「名(ひらがな)」、「性別」、「年齢」、「住所」等を格納するためのフィールドを含んでいる。
【0040】
会員情報を登録するための会員情報データベースであっても、データベースを管理する管理者Mが異なれば、その構造が異なる場合がある。例えば、
図3に示す例では会員の姓名の読み方を「ひらがな」を用いて登録しているが、別のデータベースでは「カタカナ」や「ローマ字」を用いて登録する場合がある。また、
図3に示す例では会員の性別を漢字を用いて登録しているが、別のデータベースでは男性を「M」、女性を「F」のように記号で表す場合もある。さらに、各会員に会員識別子を割り当てて管理する場合、一般に、識別子を割り当てる者が異なれば識別子も異なると考えられる。
【0041】
実施の形態に係るベクトル変換部30は、データベースDを構成するレコードを単位として、各レコードをベクトルデータに変換する。具体的には、ベクトル変換部30は、取得したレコードに含まれる各フィールドの値を並べて1つの文字列を生成する。
図3に示す例において、データ識別子がDID00001であるレコードをベクトルデータに変換する場合、ベクトル変換部30は、データ識別子を除いて、「山田太郎やまだたろう男32東京都・・・」という文字列を生成する。
【0042】
続いて、ベクトル変換部30は、生成した文字列をWord2Vecとして知られる既知の手法を用いてベクトルデータに変換する。既知の技術のため詳細な説明は省略するが、Word2Vecはいくつかの手法があり、いずれもニューラルネットワークによって実現されている。多数の文字列(本実施の形態ではレコードに含まれる各フィールドの値を並べて生成された文字列)を学習データとしてWord2Vecを用いて学習することにより、文字列を入力するとその文字列に対応するベクトルデータを出力する学習モデルが生成できる。ベクトル変換部30は、あらかじめ生成した学習モデルを用いることで、各レコードをベクトルデータに変換する。限定はしないが、一例として、ベクトル変換部30は、各レコードを256ビットのビット列のベクトルデータに変換する。
【0043】
データベースアクセス部31は、ベクトル変換部30が変換したベクトルデータと、ベクトルデータを特定するためのデータ識別子と、ベクトルデータに対応するレコードを含むデータベースの管理者を特定するための管理者識別子とを紐づけて、ベクトルデータベースに登録する。なお、ベクトルデータを特定するためのデータ識別子は、そのベクトルデータの元となったレコードを特定するためのデータ識別子と同じであってもよい。
【0044】
図4は、実施の形態に係るベクトルデータベースVのデータ構造を模式的に示す図である。
図4に示すように、ベクトルデータベースVは、管理者識別子毎に、その管理者識別子で特定される管理者Mが管理するデータベースDに由来するベクトルデータをデータ識別子と紐づけて格納している。
図4は、管理者識別子がMID00001である管理者Mが管理するデータベースDのレコードから生成されたベクトルデータを示している。
図4に示すように、各ベクトルデータにはデータ識別子が割り当てられている。例えば、データ識別子がDID00001であるベクトルデータは、「11001101010010・・・」である。
【0045】
ブロックチェーンアクセス部32は、ベクトルデータベースVに登録された管理者識別子をブロックチェーンBに登録する。
【0046】
図5は、実施の形態に係るブロックチェーンBの構成を模式的に示す図である。
図5に示すように、ブロックチェーンBは、複数のブロックを連結した情報である。複数のブロックのそれぞれは、直前のブロックを示す情報のハッシュ値、管理者識別子、アクセス権情報、及びナンス値が含まれている。ナンス値は、ブロックのハッシュ値が特定の条件を満たされるようにするために用いられる情報である。なお、上述したように、アクセス権情報は、管理者M毎にベクトルデータのアクセス許可範囲を定めた情報である。したがって、アクセス権情報にはアクセスが許可されるデータ識別子の情報が含まれる。
【0047】
図5に示すように、ブロックチェーンアクセス部32は、管理者識別子のみをブロックチェーンBに登録し、ベクトルデータ自体は登録しない。ブロックチェーンBは公開されたデータベースであるからである。これにより、データ管理装置1は、ブロックチェーンBからベクトルデータが流出することを防止できる。
【0048】
更新データ取得部33は、複数のデータベースの管理者Mのうちのいずれかの管理者Mである第1管理者M1から、第1管理者M1が管理する第1データベースD1において更新対象とするレコードのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを取得する。
【0049】
類似度算出部34は、更新データ取得部33が取得したデータ識別子に基づいて、ベクトルデータベースVからそのデータ識別子が紐付けられているベクトルデータを更新対象ベクトルデータとして読み出す。類似度算出部34は、更新対象ベクトルデータと、ベクトルデータベースVに格納された他のベクトルデータとの類似度を算出する。類似度算出部34は、例えば、コサイン類似度やユークリッド距離、gensim等のライブラリ等、既知の手法を用いてベクトルデータ間の類似度を算出する。
【0050】
更新情報通知部35は、類似度算出部34が算出した類似度が所定の条件を満たすベクトルデータである類似ベクトルデータに対応するレコードを含む第2データベースD2の管理者Mである第2管理者M2に、類似ベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とを通知する。以下、更新情報通知部35が第2管理者M2に通知する類似ベクトルデータを特定するためのデータ識別子と、更新対象のフィールド名と、更新後のフィールド情報とをまとめて、「更新に関する情報」と記載することがある。
【0051】
第2管理者M2は、更新情報通知部35から通知されたデータ識別子に基づいて、第2データベースD2において更新の対象となるレコードを特定することができる。また、第2管理者M2は、更新情報通知部35から通知された更新対象のフィールド名に基づいて、更新対象のフィールドを推定することができる。このため、第2管理者M2は、更新対象のフィールドの情報を更新情報通知部35から通知されたフィールドの情報に書き換えることができる。
【0052】
図5に示すように、ブロックチェーンアクセス部32は、ベクトルデータベースVにおいて管理者それぞれに割り当てられた管理者識別子を、各管理者のベクトルデータベースにおけるアクセス権を示すアクセス権情報と紐づけてブロックチェーンBに登録する。管理者Mは、ブロックチェーンBに登録されているアクセス権情報によって許可される範囲においてのみ、ベクトルデータベースVに格納されているベクトルデータへのアクセスが許可される。言い換えると、ある管理者Mは、他の管理者Mに許可された場合に限り、他の管理者Mが管理するデータベースDに由来するベクトルデータにアクセスすることができる。
【0053】
ブロックチェーンアクセス部32は、アクセス権情報を参照して、ベクトルデータベースVに登録されているベクトルデータのうち、更新対象とするレコードを含む第2データベースD2の管理者である第1管理者M1がアクセスすることを許可されたベクトルデータを特定する。データベースアクセス部31は、ブロックチェーンアクセス部32がブロックチェーンBから取得したアクセス権が許可する範囲においてベクトルデータベースVに格納されているベクトルデータにアクセスする。このように、アクセス権情報を用いて各管理者Mに関するベクトルデータベースVのアクセス権を管理することにより、データ管理装置1は、ベクトルデータが外部に流出することを抑制できる。
【0054】
更新情報通知部35が第2管理者M2に更新に関する情報を通知した後、ベクトル変換部30は、第1管理者M1が管理する第1データベースD1と第2管理者M2が管理する第2データベースD2を構成するレコードのうち、少なくとも更新されたレコードをベクトルデータに変換する。ベクトル変換部30は、変換したベクトルデータをベクトルデータベースVに再度登録する。これにより、データ管理装置1は、ベクトルデータベースVに格納されている情報を最新の情報に保つことができる。
【0055】
<データ管理装置1が実行するデータ管理方法の処理フロー>
図6は、実施の形態に係るデータ管理装置1が実行するデータ管理処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えばデータ管理装置1が起動したときに開始する。
【0056】
ベクトル変換部30は、異なる管理者Mによってそれぞれ管理される複数のデータベースDのテーブルを構成する各レコードを取得する(S2)。ベクトル変換部30は、取得した各レコードを、それぞれベクトルデータに変換する(S4)。
【0057】
データベースアクセス部31は、ベクトル変換部30が変換したベクトルデータと、ベクトルデータを特定するためのデータ識別子と、ベクトルデータに対応するレコードを含むデータベースDの管理者Mを特定するための管理者識別子とを紐づけて、ベクトルデータベースVに登録する(S6)。
【0058】
更新データ取得部33は、複数のデータベースDの管理者Mのうちのいずれかの管理者Mである第1管理者から、フィールドの更新に関する情報を取得する(S8)。類似度算出部34は、ベクトルデータベースVに格納されたベクトルデータと、更新対象ベクトルデータとの類似度を算出する(S10)。
【0059】
更新情報通知部35は、類似度算出部34が算出した類似度が所定の条件を満たすベクトルデータである類似ベクトルデータに対応するレコードを含む第2データベースD2の管理者Mである第2管理者M2に、フィールドの更新に関する情報を通知する(S12)。更新情報通知部35が第2管理者M2に更新に関する情報を通知すると、本フローチャートにおける処理は終了する。
【0060】
<実施の形態に係るデータ管理装置1が奏する効果>
以上説明したように、実施の形態に係るデータ管理装置1によれば、データベースの共有時のセキュリティを向上させることができる。
【0061】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の全部又は一部は、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果をあわせ持つ。
【0062】
<変形例>
上記では、データベースDが会員データベースである場合について主に説明した。しかしながら、データベースDは会員データベースに限られず、例えば、商品管理やサービス管理用データベース、デジタルコンテンツ管理用データベース、在庫管理用データベース、販売管理や購買履歴管理用データベース、調達管理用データベース、生産管理用データベース、物流管理や配送管理用データベース、物件情報や家財情報を格納するためのデータベース、保険や証券等を始めとした契約を管理するためのデータベース、個人の行動履歴(例えば、心電等の生体情報や、歩数等の活動情報)やIoT(Internet Of Things)機器の挙動データ等を格納するためのデータベースであってもよい。個人の行動履歴は、例えば生体センサを搭載したウェアラブル機器を各ユーザが常時身につけることによって得ることができる。
【0063】
ここで、個人の生体情報はその個人を他者から識別するための特徴を表すデータといえる。例えば、ある人の心拍のパターンは、他者の心拍のパターンとは異なるものとなる。このため、データベースDが個人の行動履歴を格納するデータベースである場合、ベクトル変換部30がデータベースDの各レコードをベクトルデータに変換すると、得られたベクトルデータは個人毎に異なる特徴を反映したデータとなると考えられる。
【0064】
例えば、ある個人の姓名や性別等を変更することなく他人にウェアラブル機器を着用させて生体情報を取得した場合は、ある個人がウェアラブル機器を継続して身につけている場合と比較して、現在のベクトルデータと過去のベクトルデータとの類似度は非類似を示すことになる。このように、類似度算出部34は、ある個人について現在のベクトルデータと過去のベクトルデータとの類似度を算出することにより、ある個人がウェアラブル機器を継続して身につけているか否かを推定することができる。
【0065】
なお、データベースDが個人の行動履歴を格納している場合においては、第2管理者M2は、第1管理者M1が管理する第1データベースD1に登録されているある個人の行動履歴が、第2管理者M2が管理している第2データベースD2ではどのような行動履歴として登録されているかを分析することも考えられる。このような場合、第2管理者M2は、更新情報通知部35から通知されたデータ識別子に基づいて、第2データベースD2において更新の対象となるレコード及び更新対象のフィールドを推定することにとどめ、更新対象のフィールドの情報を更新情報通知部35から通知されたフィールドの情報に書き換えない。
【符号の説明】
【0066】
1・・・データ管理装置
2・・・記憶部
3・・・制御部
30・・・ベクトル変換部
31・・・データベースアクセス部
32・・・ブロックチェーンアクセス部
33・・・更新データ取得部
34・・・類似度算出部
35・・・更新情報通知部
B・・・ブロックチェーン
D・・・データベース
D1・・・第1データベース
D2・・・第2データベース
N1・・・通信ネットワーク
N2・・・セキュアネットワーク
V・・・ベクトルデータベース