IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-90552データ管理システム及びデータ管理方法
<>
  • 特開-データ管理システム及びデータ管理方法 図1
  • 特開-データ管理システム及びデータ管理方法 図2
  • 特開-データ管理システム及びデータ管理方法 図3
  • 特開-データ管理システム及びデータ管理方法 図4
  • 特開-データ管理システム及びデータ管理方法 図5
  • 特開-データ管理システム及びデータ管理方法 図6
  • 特開-データ管理システム及びデータ管理方法 図7
  • 特開-データ管理システム及びデータ管理方法 図8
  • 特開-データ管理システム及びデータ管理方法 図9
  • 特開-データ管理システム及びデータ管理方法 図10
  • 特開-データ管理システム及びデータ管理方法 図11
  • 特開-データ管理システム及びデータ管理方法 図12
  • 特開-データ管理システム及びデータ管理方法 図13
  • 特開-データ管理システム及びデータ管理方法 図14
  • 特開-データ管理システム及びデータ管理方法 図15
  • 特開-データ管理システム及びデータ管理方法 図16
  • 特開-データ管理システム及びデータ管理方法 図17
  • 特開-データ管理システム及びデータ管理方法 図18
  • 特開-データ管理システム及びデータ管理方法 図19
  • 特開-データ管理システム及びデータ管理方法 図20
  • 特開-データ管理システム及びデータ管理方法 図21
  • 特開-データ管理システム及びデータ管理方法 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023090552
(43)【公開日】2023-06-29
(54)【発明の名称】データ管理システム及びデータ管理方法
(51)【国際特許分類】
   G06F 16/81 20190101AFI20230622BHJP
【FI】
G06F16/81
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021205565
(22)【出願日】2021-12-17
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】勝沼 聡
(72)【発明者】
【氏名】樫山 俊彦
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA02
5B175FA01
5B175FA03
(57)【要約】
【課題】半構造化データに対する検索利便性や検索効率を向上できるようにする。
【解決手段】JSONデータを管理するデータ管理システム1において、データ管理システム1は、1以上のプロセッサと、JSONデータを格納するJSONテーブル24と、を含み、プロセッサを、JSONデータの複数のデータ単位に含まれる複数のキーについて、複数のデータ単位におけるキー同士の関係に基づいて、複数のキーグループに分け、JSONデータに対する検索キーを特定し、複数のキーグループのそれぞれについて、キーグループに検索キーが含まれる場合に、検索キーのカラムとデータ単位を示すカラムとを含むキーグループテーブルを生成するように構成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
半構造化データを管理するデータ管理システムであって、
前記データ管理システムは、1以上のプロセッサと、前記半構造化データを格納する半構造化データ記憶部と、を含み、
前記プロセッサは、
前記半構造化データの複数のデータ単位に含まれる複数のキーについて、複数のデータ単位におけるキー同士の関係に基づいて、複数のキーグループに分け、
前記半構造化データに対する検索キーを特定し、
前記複数のキーグループのそれぞれについて、前記キーグループに検索キーが含まれる場合に、前記検索キーのカラムと前記データ単位を示すカラムとを含むキーグループテーブルを生成する
データ管理システム。
【請求項2】
前記プロセッサは、
所定の割合以上のデータ単位が有する複数のキーを同一のキーグループとする
請求項1に記載のデータ管理システム。
【請求項3】
前記プロセッサは、
第1キーを有するデータ単位のグループと、前記第1キー以外の第2キーを有するデータ単位のグループとの類似度が所定以上である場合に、前記第1キーと、前記第2キーとを同一のキーグループとする
請求項2に記載のデータ管理システム。
【請求項4】
前記プロセッサは、
前記キーグループに含まれる検索キーによる検索時間が所定以上でなく、且つ、検索時間が悪化する傾向にない場合に、前記キーグループについてのキーグループテーブルを生成しない
請求項1に記載のデータ管理システム。
【請求項5】
前記プロセッサは、
前記キーグループに含まれる検索キーにより、半構造化データ記憶部の半構造化データを検索するよりも、前記キーグループに含まれる検索キーをカラムとするキーグループテーブルを検索する方が所定以上の検索時間の短縮が見込まれない場合に、前記キーグループについてのキーグループテーブルを生成しない
請求項1に記載のデータ管理システム。
【請求項6】
前記プロセッサは、
前記キーグループに対するキー及び検索キーの追加が一定頻度以下でない場合に、前記キーグループについてのキーグループテーブルを生成しない
請求項1に記載のデータ管理システム。
【請求項7】
前記プロセッサは、
ユーザからキーグループテーブルを生成するキーの指定を受け付け、
受け付けた前記キーをカラムとするキーグループテーブルを生成する
請求項1に記載のデータ管理システム。
【請求項8】
前記プロセッサは、
前記半構造化データ記憶部における前記半構造化データに対する検索クエリを受け付け、
前記検索クエリを、前記キーグループテーブルに格納されている検索キーに関わるキーグループテーブル用部分クエリと、前記半構造化データ記憶部の半構造化データを検索するための半構造化データ記憶部用部分クエリとを含む書換後検索クエリに変換し、
前記キーグループテーブル用部分クエリにより、前記キーグループテーブルに対する検索を行い、前記半構造化データ記憶部用部分クエリに基づいて、前記半構造化データ記憶部の検索を行い、それらの検索結果をまとめて、前記検索クエリの送信元に返す
請求項1に記載のデータ管理システム。
【請求項9】
半構造化データを管理するデータ管理システムによるデータ管理方法であって、
前記データ管理システムは、前記半構造化データを格納する半構造化データ記憶部を含み、
前記半構造化データの複数のデータ単位に含まれる複数のキーについて、複数のデータ単位におけるキー同士の関係に基づいて、複数のキーグループに分け、
前記半構造化データに対する検索キーを特定し、
前記複数のキーグループのそれぞれについて、前記キーグループに検索キーを含まれる場合に、前記検索キーのカラムと前記データ単位を示すカラムとを含むキーグループテーブルを生成する
データ管理方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半構造化データを管理する技術に関する。
【背景技術】
【0002】
例えば、製品の製造実績データは、工程ごとに異なる計測パラメータを有している場合があり、また、同一工程でも製造過程や運用の変更等によって時間の推移で計測パラメータが変更される場合もあるので、JSON(JavaScript Object Notation:JavaScriptは、登録商標)形式のデータ(JSONデータという)等の半構造化データにより管理されている場合がある。
【0003】
JSONデータに対する検索効率は低いので、JSONデータをリレーショナルデータベースのテーブルに格納するようにする技術が知られている。
【0004】
例えば、XMLデータをリレーショナルデータベースに格納する技術として、XMLデータをそのまま単一カラムに保存し、XMLカラムのアクセス定義に従って、XMLのキーをカラムとするサイドテーブルを定義する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願公開第2002/0123993号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
半構造化データをリレーショナルデータベースのテーブルで管理する場合には、テーブルと、そのテーブルのカラムをどのような構成とするかによって、テーブルの構築や運用に要するコストが大きくなってしまって検索利便性が低下してしまう虞や、検索効率が向上しない虞がある。例えば、テーブル数が多くなったり、テーブルのカラム数が多くなったりすると、テーブルの構築や運用に要するコストが大きくなって検索利便性が低下してしまい、検索効率が低下してしまう。
【0007】
本発明は、上記事情に鑑みなされたものであり、その目的は、半構造化データに対する検索利便性や検索効率を向上することのできる技術を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、一観点に係るデータ管理システムは、半構造化データを管理するデータ管理システムであって、前記データ管理システムは、1以上のプロセッサと、前記半構造化データを格納する半構造化データ記憶部と、を含み、前記プロセッサは、前記半構造化データの複数のデータ単位に含まれる複数のキーについて、複数のデータ単位におけるキー同士の関係に基づいて、複数のキーグループに分け、前記半構造化データに対する検索キーを特定し、前記複数のキーグループのそれぞれについて、前記キーグループに検索キーが含まれる場合に、前記検索キーのカラムと前記データ単位を示すカラムとを含むキーグループテーブルを生成する。
【発明の効果】
【0009】
本発明によれば、半構造化データに対する検索利便性や検索効率を向上することができる。
【図面の簡単な説明】
【0010】
図1図1は、第1実施形態に係るデータ管理システムの全体構成図である。
図2図2は、第1実施形態に係るJSONテーブルの構成図である。
図3図3は、第1実施形態に係る検索クエリログの構成図である。
図4図4は、第1実施形態に係るキーグループテーブル群の構成図である。
図5図5は、第1実施形態に係るJSONキーグループ情報の構成図である。
図6図6は、第1実施形態に係るJSONキー更新ログの構成図である。
図7図7は、第1実施形態に係る検索キー集計情報の構成図である。
図8図8は、第1実施形態に係る検索キーログの構成図である。
図9図9は、第1実施形態に係るキーグループテーブル生成インターフェースの構成例を示す図である。
図10図10は、第1実施形態に係るキー・データマッピングテーブルの構成図である。
図11図11は、第1実施形態に係る計算機のハードウェア構成図である。
図12図12は、第1実施形態に係るJSONデータの挿入処理を説明する図である。
図13図13は、第1実施形態に係るデータ検索処理を説明する図である。
図14図14は、第1実施形態に係る検索クエリの書換えを説明する図である。
図15図15は、第1実施形態に係るキーグループテーブルへのデータ変換・転送処理を説明する図である。
図16図16は、第1実施形態に係るキーグループテーブルの生成処理を説明する図である。
図17図17は、第1実施形態に係るJSONキーグルーピング処理のフローチャートである。
図18図18は、第1実施形態に係る検索キー抽出処理のフローチャートである。
図19図19は、第1実施形態に係るキーグループテーブル生成処理のフローチャートである。
図20図20は、第2実施形態に係るデータ管理システムの全体構成図である。
図21図21は、第2実施形態に係るJSONデータの挿入処理を説明する図である。
図22図22は、第2実施形態に係るデータ検索処理を説明する図である。
【発明を実施するための形態】
【0011】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
以下の説明では、「AAAテーブル」、「AAAログ」等の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」、「AAAログ」を「AAA情報」と呼ぶことができる。
【0013】
図1は、第1実施形態に係るデータ管理システムの全体構成図である。
【0014】
データ管理システム1は、キーグループテーブル生成サーバ10と、データベース管理サーバ20と、データ検索サーバ30と、データ挿入サーバ40と、クライアントPC50と、これら装置間を通信可能に接続するネットワーク60と、を備えている。
【0015】
ネットワーク60は、例えば、有線LAN(Local Area Network)や無線LAN、WAN(Wide Area Network)などである。
【0016】
キーグループテーブル生成サーバ10は、例えば、PC(Personal Computer)や、サーバ等の計算機によって構成されている。キーグループテーブル生成サーバ10は、キーグループテーブルを生成する処理を行う。キーグループテーブル生成サーバ10は、JSONキーグルーピング部11と、検索キー抽出部12と、キーグループテーブル生成部13と、キーグループテーブル生成インターフェース14と、JSONキーグループ情報15と、検索キー集計情報16と、JSONキー更新ログ17と、検索キーログ18と、キー・データマッピングテーブル19とを備える。なお、各構成の詳細については後述する。
【0017】
データベース管理サーバ20は、例えば、PCや、サーバ等の計算機によって構成されている。データベース管理サーバ20は、データベースを管理する処理を行う。データベース管理サーバ20は、データベース管理システム21と、データ変換・転送部22と、検索クエリ書換え部23と、JSONテーブル24と、検索クエリログ25と、キーグループテーブル群26とを備える。データベース管理システム21は、テーブルにより構成されるデータベースを管理し、例えば、テーブルに対する検索用に索引等を作成し、索引を使って検索する機能を有している。なお、各構成の詳細については後述する。
【0018】
データ検索サーバ30は、例えば、PCや、サーバ等の計算機によって構成されている。データ検索サーバ30は、データベース管理サーバ20が管理しているデータベースに対する検索処理を行い、検索結果に基づいて各種処理を行う。データ検索サーバ30は、データ検索部31を有する。データ検索部31の詳細については後述する。
【0019】
データ挿入サーバ40は、例えば、PCや、サーバ等の計算機によって構成されている。データ挿入サーバ40は、図示しない工場等において取得された製造実績データを半構造化データの一例であるJSON形式のデータ(JSONデータ)として、データベース管理サーバ20が管理しているデータベースに挿入する挿入処理を行う。データ挿入サーバ40は、データ挿入部41を有する。データ挿入部41の詳細については後述する。
【0020】
クライアントPC50は、例えば、PC等の計算機によって構成されている。クライアントPC50は、キーグループテーブルを生成するユーザにより使用され、例えば、キーグループテーブル生成インターフェース14によってユーザからのキーグループテーブルの生成指示(生成リクエスト)を受け付けて、キーグループテーブル生成サーバ10に送信する。
【0021】
次に、JSONテーブル24について説明する。
【0022】
図2は、第1実施形態に係るJSONテーブルの構成図である。
【0023】
JSONテーブル24は、データ挿入サーバ40から挿入されたJSONデータ(データ単位)毎のエントリを格納する。JSONテーブル24のエントリは、ID24aと、JSON24bとのフィールドを格納する。ID24aには、エントリに対応するJSONデータを識別する識別情報(ID)が格納される。JSON24bには、エントリに対応するJSONデータが格納される。
【0024】
次に、検索クエリログ25について説明する。
【0025】
図3は、第1実施形態に係る検索クエリログの構成図である。
【0026】
検索クエリログ25は、データ検索部31によって発行される1以上の検索クエリ251を格納する。検索クエリは、例えば、SELECT文で記述され、テーブルから選択するキーを指定するSELECT句と、検索対象とするテーブルを記述するFROM句と、1以上の検索キーの条件を記述するWHERE句とを有する。
【0027】
次に、キーグループテーブル群26について説明する。
【0028】
図4は、第1実施形態に係るキーグループテーブル群の構成図である。
【0029】
キーグループテーブル群26は、キーグループテーブルが生成された後においては、1以上のキーグループテーブルを格納する。図4の例では、キーグループテーブル群26は、キーグループテーブルとして、グループ1テーブル(group_1_Table)261と、グループ2テーブル(group_2_Table)262と、グループ3テーブル(group_3_Table)263とを有する。
【0030】
グループ1テーブル261は、グループ1のキーグループに分けられたJSONデータのキーに対応するテーブルであり、各エントリは、ID261aと、親ID261bと、Time261cと、Process261dとのフィールドを含む。
【0031】
ID261aには、エントリの識別子(ID)が格納される。親ID261bには、エントリのキー値を有するJSONデータの識別子(ID:親ID)が格納される。Time261cには、エントリに対応するJSONデータのTimeの値が格納される。Process261dには、エントリに対応するJSONデータのProcessの値が格納される。
【0032】
グループ2テーブル262は、グループ2のキーグループに分けられたJSONデータのキーに対応するテーブルであり、各エントリは、ID262aと、親ID262bと、Acc262cとのフィールドを含む。
【0033】
ID262aには、エントリの識別子(ID)が格納される。親ID262bには、エントリのキー値を有するJSONデータの識別子(ID:親ID)が格納される。Acc262cには、エントリに対応するJSONデータのAccの値が格納される。
【0034】
グループ3テーブル263は、グループ3のキーグループに分けられたJSONデータのキーに対応するテーブルであり、各エントリは、ID263aと、親ID263bと、Temp263cと、Velocity263dとのフィールドを含む。
【0035】
ID263aには、エントリの識別子(ID)が格納される。親ID263bには、エントリのキー値を有するJSONデータの識別子(ID:親ID)が格納される。Temp263cには、エントリに対応するJSONデータのTempの値が格納される。Velocity263dには、エントリに対応するJSONデータのVelocityの値が格納される。
【0036】
次に、JSONキーグループ情報15について説明する。
【0037】
図5は、第1実施形態に係るJSONキーグループ情報の構成図である。
【0038】
JSONキーグループ情報15は、JSONデータにおける各キーをグループに分けた際の各グループ(JSONキーグループ、キーグループ)のキーを管理する。JSONキーグループ情報15は、JSONキーグループごとのエントリを格納する。JSONキーグループ情報15のエントリは、JSONキーグループ15aと、JSONキー15bとのフィールドを含む。JSONキーグループ15aには、エントリに対応するJSONキーグループのグループ名が格納される。JSONキー15bには、エントリに対応するJSONキーグループに属するJSONデータのキー(JSONキー)が格納される。
【0039】
次に、JSONキー更新ログ17について説明する。
【0040】
図6は、第1実施形態に係るJSONキー更新ログの構成図である。
【0041】
JSONキー更新ログ17は、JSONキーグループにおけるキーの更新について管理する。JSONキー更新ログ17は、更新されるキー毎のエントリを含む。JSONキー更新ログ17のエントリは、日時17aと、JSONキーグループ17bと、JSONキー17cと、更新内容17dとのフィールドを含む。
【0042】
日時17aには、エントリに対応するキーの更新がされた日時が格納される。JSONキーグループ17bには、エントリに対応するキーが属するJSONキーグループのグループ名が格納される。JSONキー17cには、エントリに対応する更新されたJSONキーが格納される。更新内容17dには、エントリに対応する更新の内容が格納される。
【0043】
次に、検索キー集計情報16について説明する。
【0044】
図7は、第1実施形態に係る検索キー集計情報の構成図である。
【0045】
検索キー集計情報16は、JSONキーグループにおける検索キーを管理する。検索キー集計情報16は、JSONキーグループ毎のエントリを格納する。検索キー集計情報16のエントリは、JSONキーグループ16aと、検索キー16bとのフィールドを含む。
【0046】
JSONキーグループ16aには、エントリに対応するJSONキーグループのグループ名が格納される。検索キー16bには、エントリに対応するJSONキーグループにおける検索キーが格納される。検索キー16bには、エントリに対応するJSONキーグループに検索キーが存在しない場合には、何も格納されず、複数の検索キーが存在する場合には、複数の検索キーが格納される。
【0047】
次に、検索キーログ18について説明する。
【0048】
図8は、第1実施形態に係る検索キーログの構成図である。
【0049】
検索キーログ18は、検索に使用された検索キーの情報を管理する。検索キーログ18は、検索に対応するエントリを格納する。検索キーログ18のエントリは、日時18aと、JSONキーグループ18bと、検索キー18cと、検索時間18dとのフィールドを含む。
【0050】
日時18aには、エントリに対応する検索が行われた日時が格納される。JSONキーグループ18bには、エントリに対応する検索での検索キーが属するJSONキーグループのグループ名が格納される。検索キー18cには、エントリに対応する検索での検索キーが格納される。検索時間18dには、エントリに対応する検索に要した時間(検索時間)が格納される。なお、検索時間18dには、一回の検索に対応する複数のエントリがある場合には、一回の検索に要した時間が格納される。
【0051】
例えば、1行目及び2行目のエントリは、1回の検索に対応するエントリであり、2021/8/31 13:00に検索が行われ、Group_1のTime,Processと、Group_2のAccとを検索キーとして検索が行われ、検索に10秒かかったことを示している。
【0052】
次に、キーグループテーブル生成インターフェース14について説明する。
【0053】
図9は、第1実施形態に係るキーグループテーブル生成インターフェースの構成例を示す図である。
【0054】
キーグループテーブル生成インターフェース14は、ユーザがキーグループテーブルを作成する指示を行うためのインターフェースであり、ユーザは、作成するキーグループテーブルのカラムとするJSONキーを指定することができる。キーグループテーブル生成インターフェース14によると、ユーザは所望のキーをカラムとするキーグループテーブルを生成させることができる。図9の例では、JSONデータにおけるキーの中のTime、Process、S1、S2、S4のキーをカラムとするキーグループテーブルを生成する指示を示している。
【0055】
次に、キー・データマッピングテーブル19について説明する。
【0056】
図10は、第1実施形態に係るキー・データマッピングテーブルの構成図である。
【0057】
キー・データマッピングテーブル19は、JSONデータに含まれるJSONキーを管理するテーブルであり、このキー・データマッピングテーブル19により、キーグループが決定される。キー・データマッピングテーブル19の行191は、JSONテーブル24に格納されているJSONデータを示す識別情報(ID)を格納する。列192は、JSONデータに格納されているキーを格納する。行191のJSONデータのIDと、列192のキーとに対応するセルには、IDが示すJSONデータに、そのキーが含まれているか否かを示す情報が格納される。本実施形態では、IDが示すJSONデータに、キーが含まれている場合には、黒丸が格納される。キー・データマッピングテーブル19によると、各JSONデータに含まれるキーを把握することができ、複数のJSONデータにおけるキーをいくつかのグループ(JSONキーグループ)に分けることができる。
【0058】
次に、キーグループテーブル生成サーバ10、データベース管理サーバ20、データ検索サーバ30、データ挿入サーバ40、クライアントPC50を構成する計算機の一例について説明する。
【0059】
図11は、第1実施形態に係る計算機のハードウェア構成図である。
【0060】
計算機100は、通信インターフェース(I/F)101と、プロセッサの一例としてのCPU102と、入力デバイス103と、記憶デバイス104と、メモリ105と、表示デバイス106とを含む。CPU102と、入力デバイス103と、記憶デバイス104と、メモリ105と、表示デバイス106とは、バス107を介して接続されている。なお、キーグループテーブル生成サーバ10、データベース管理サーバ20、データ検索サーバ30、及びデータ挿入サーバ40のいずれかを構成する計算機においては、入力デバイス103と、表示デバイス106とを備えなくてもよい。
【0061】
通信I/F101は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク60を介して他の計算機と通信する。
【0062】
CPU102は、メモリ105及び/又は記憶デバイス104に格納されているプログラムに従って各種処理を実行する。キーグループテーブル生成サーバ10を構成する計算機100であれば、CPU102がプログラムを実行することにより、JSONキーグルーピング部11、検索キー抽出部12、及びキーグループテーブル生成部13を構成する。また、データベース管理サーバ20を構成する計算機100であれば、CPU102がプログラムを実行することにより、データベース管理システム21、データ変換・転送部22,検索クエリ書換え部23を構成する。また、データ検索サーバ30を構成する計算機100であれば、CPU102がプログラムを実行することにより、データ検索部31を構成する。また、データ挿入サーバ40を構成する計算機100であれば、CPU102がプログラムを実行することにより、データ挿入部41を構成する。
【0063】
メモリ105は、例えば、RAM(RANDOM ACCESS MEMORY)であり、CPU102で実行されるプログラムや、必要な情報を記憶する。
【0064】
記憶デバイス104は、例えば、ハードディスクやフラッシュメモリなどであり、CPU102で実行されるプログラムや、CPU102に利用されるデータを記憶する。例えば、キーグループテーブル生成サーバ10を構成する計算機100であれば、記憶デバイス104には、JSONキーグループ情報15、検索キー集計情報16、JSONキー更新ログ17、検索キーログ18、キー・データマッピングテーブル19を格納する。また、データベース管理サーバ20を構成する計算機100であれば、記憶デバイス104は、JSONテーブル24、検索クエリログ25、キーグループテーブル群26を格納する。この場合には、記憶デバイス104が半構造化データ記憶部に相当する。
【0065】
入力デバイス103は、例えば、マウス、キーボード等であり、ユーザによる情報の入力を受け付ける。表示デバイス106は、例えば、ディスプレイであり、各種情報を含むユーザインターフェースを表示出力する。
【0066】
次に、第1実施形態に係るデータ管理システム1による処理について説明する。
【0067】
まず、JSONデータの挿入処理について説明する。
【0068】
図12は、第1実施形態に係るJSONデータの挿入処理を説明する図である。
【0069】
データ挿入サーバ40のデータ挿入部41は、図示しない工場等において取得された製造実績データをJSONデータとし、データベース管理サーバ20のデータベース管理システム21に、JSONテーブル24にJSONデータを挿入させる挿入クエリを送信する。ここで、挿入クエリには、JSONデータが含まれている。データベース管理システム21は、挿入クエリを受信すると、JSONテーブル24に新たなエントリを追加し、エントリのJSON24bに挿入クエリに含まれているJSONデータを格納する。
【0070】
次に、データ検索処理について説明する。
【0071】
図13は、第1実施形態に係るデータ検索処理を説明する図である。
【0072】
データ検索サーバ30のデータ検索部31は、JSONテーブル24から所望のデータを検索する検索クエリをデータベース管理サーバ20の検索クエリ書換え部23に送信する。
【0073】
検索クエリ書換え部23は、検索クエリを受信すると、受信した検索クエリを検索クエリログ25に格納する。検索クエリ書換え部23は、キーグループテーブル群26におけるキーグループテーブルの情報(テーブル情報)を取得する。ここで、テーブル情報とは、キーグループテーブル群26に存在するキーグループテーブルを識別する情報と、そのキーグループテーブルで管理されている(カラムとなっている)キーとの情報を含む。
【0074】
検索クエリ書換え部23は、取得したテーブル情報に基づいて、検索クエリについて、キーグループテーブル及びJSONテーブル24を利用して検索を行うキーグループテーブル用部分クエリと、半構造化データ記憶部の半構造化データを検索するための半構造化データ記憶部用部分クエリと、を含む検索クエリ(書換後検索クエリ)に書換える。なお、キーグループテーブル群26にキーグループテーブルが生成されていない場合やキーグループテーブルに関係ない検索クエリである場合には、検索クエリ書換え部23は、受信した検索クエリをそのまま書換後検索クエリとする。
【0075】
検索クエリ書換え部23は、書換後検索クエリをデータベース管理システム21に渡す。データベース管理システム21は、書換後検索クエリに基づいて、JSONテーブル24又は、JSONテーブル24及びキーグループテーブル群26のキーグループテーブルに対して検索処理を実行し、検索結果のデータ(検索データ)を検索クエリ書換え部23に返す。
【0076】
検索クエリ書換え部23は、返された検索データを検索クエリの送信元のデータ検索部31に送信する。
【0077】
この処理により、データ検索部31には、検索クエリに対応する検索データが返されることとなる。
【0078】
次に、検索クエリ書換え部23による検索クエリの書換えについて説明する。
【0079】
図14は、第1実施形態に係る検索クエリの書換えを説明する図である。図14は、キーグループテーブル群26が図4に示す状態において、検索クエリ32を書換後検索クエリ33に書き換える例を示している。
【0080】
検索クエリ32は、JSONテーブル24からTime、Process、Acc、Rot、Volt、Volt2のキーの値を取得する検索クエリである。この検索クエリ32は、JSONテーブル24に対する検索クエリであり、検索クエリ32を送信するデータ検索部31は、キーグループテーブル群26のキーグループテーブルの構成を考慮して検索クエリを作成する必要がない。
【0081】
検索クエリ書換え部23は、キーグループテーブル群26からテーブル情報を取得し、キーグループテーブル群26におけるキーグループテーブルの構成を認識する。本実施形態では、検索クエリ書換え部23は、図4に示すような構成のグループ1テーブル261と、グループ2テーブル262と、グループ3テーブル263とがあり、それぞれのテーブルのカラムとなっているキーを認識することができる。
【0082】
ここで、検索クエリ書換え部23は、検索クエリ32に含まれる各キーについて、いずれかのキーグループテーブルに存在するかを特定し、キーグループテーブルに存在するキーの値については、そのキーグループテーブルのカラムから取得し、いずれのキーグループにも存在しないキーの値については、JSONテーブル24から取得するように、SELECTの対象を書換える。さらに、検索クエリ書換え部23は、FROM句の内容を、キー値を取得する各テーブルに書き換え、WHERE句として、JSONテーブル24と、各キーグループテーブルのキー値とが同一のJSONデータとなるように、JSONテーブルのIDと、各グループテーブルの親IDとが一致する部分とし、書換後検索クエリ33を完成させる。ここで、書換後検索クエリ33におけるキーグループテーブルに対する検索キーによる検索を指定している部分が、キーグループテーブル用部分クエリに相当し、JSONテーブル24のJSONデータの検索を指定している部分が半構造化データ記憶部用部分クエリに相当する。
【0083】
この処理により、検索クエリ32は、書換後検索クエリ33のように書き換えられる。
【0084】
次に、キーグループテーブルへのデータ変換・転送処理について説明する。
【0085】
図15は、第1実施形態に係るキーグループテーブルへのデータ変換・転送処理を説明する図である。
【0086】
データ変換・転送部22は、JSONテーブル24の中のまだキーグループテーブル群26のキーグループテーブルに転送していないエントリを対象にデータ変換・転送処理を行う。
【0087】
データ変換・転送部22は、JSONテーブル24から対象のエントリを取得し、エントリのJSON24bに含まれるJSONデータの中からキーグループテーブル群26のキーグループテーブルにカラムとして存在するキーを特定する。次いで、データ変換・転送部22は、特定したキーのカラムを有するキーグループテーブルに新たなエントリを追加し、キーの値をそのエントリに格納する。ここで、データ変換・転送部22は、追加したエントリにおける親IDに対して、JSONテーブル24の対象のエントリのIDを格納する。
【0088】
この処理により、JSONテーブル24に格納されたJSONデータをキーグループテーブル群26のキーグループテーブルに適切に転送することができる。
【0089】
次に、キーグループテーブルの生成処理について説明する。
【0090】
図16は、第1実施形態に係るキーグループテーブルの生成処理を説明する図である。
【0091】
JSONキーグルーピング部11は、JSONテーブル24のエントリを参照し、キー・データマッピングテーブル19を作成する。
【0092】
次いで、JSONキーグルーピング部11は、キー・データマッピングテーブル19を参照し、JSONキーについて関連するキーのグループに分ける(グループ分けする)。例えば、図10のキー・データマッピングテーブル19の例では、JSONキーグルーピング部11は、各JSONデータで共通するキーのグループであるグループ1と、各ProcessのJSONデータで共通するキーのグループであるグループ2,3,4とにグループ分けする。次いで、JSONキーグルーピング部11は、グループ分けに従ってJSONキーグループ情報15を登録又は更新し、その内容をJSONキー更新ログ17に登録する。
【0093】
一方、検索キー抽出部12は、検索クエリログ25を参照し、検索クエリから検索キーを抽出し、JSONキーグループ情報15を参照し、検索キーが属するJSONキーグループを特定し、検索キーとJSONキーグループとの関係を検索キー集計情報に16に登録するとともに、この検索クエリに関する検索キーのログを検索キーログ18に登録する。
【0094】
次いで、キーグループテーブル生成部13は、JSONキーグループ情報15、JSONキー更新ログ17、検索キー集計情報16、及び検索キーログ18の情報に基づいて、キーグループテーブルを生成し、キーグループテーブル群26に格納する。なお、キーグループテーブル生成インターフェース14によりユーザからキーグループテーブル生成指示を受け付けた場合には、キーグループテーブル生成部13は、キーグループテーブル生成指示に基づいてキーグループテーブルを生成して、キーグループテーブル群26に格納する。
【0095】
次に、JSONデータのキーをJSONキーグループに分けるJSONキーグルーピング処理について説明する。
【0096】
図17は、第1実施形態に係るJSONキーグルーピング処理のフローチャートである。
【0097】
JSONキーグルーピング処理は、例えば、一定時間おきに実行される。まず、キーグループテーブル生成サーバ10のJSONキーグルーピング部11は、JSONテーブル24に対して、新たなJSONデータがあるか否かを判定する(ステップS11)。
【0098】
この結果、新たなJSONデータがない場合(ステップS11:No)には、JSONキーグルーピング部11は、処理を終了する。一方、新たなJSONデータがある場合(ステップS11:Yes)には、JSONキーグルーピング部11は、新たなJSONデータを取得し、JSONデータを解析してJSONキーを抽出し、キー・データマッピングテーブル19を更新する(ステップS12)。具体的には、JSONキーグルーピング部11は、JSONデータに対応する列を追加し、JSONデータに含まれるJSONキーに対応する行に、JSONキーが存在することを示す記号を登録する。なお、JSONキーグルーピング部11は、JSONデータにキー・データマッピングテーブル19の行に存在しないJSONキーが含まれている場合には、このJSONキーに対応する行を追加する。
【0099】
次いで、JSONキーグルーピング部11は、キー・データマッピングテーブル19のJSONキーの1つを処理対象として、ループ1の処理(ステップS13~S16)を実行する。ここで、この処理の説明において、処理対象のJSONキーを対象キーということとする。
【0100】
まず、JSONキーグルーピング部11は、対象キーを持つJSONデータのセットと、他のキーを持つJSONデータのセットとの類似度を検出し、類似度が高い(所定の閾値以上である)場合には、対象キーと、他のキーとを同じJSONキーグループと定義する(ステップS13)。なお、JSONキーグループとして定義された各キーについては、以降のループ1の処理対象から外す。
【0101】
次いで、JSONキーグルーピング部11は、ステップS13で新たなJSONキーグループが定義されたか否かを判定し(ステップS14)、新たなJSONキーグループが定義されていない場合(ステップS14:No)には、対象キーに対するループ1の処理を終了し、次の処理対象に対するループ1の処理を実行する。
【0102】
一方、新たなJSONキーグループが定義された場合(ステップS14:Yes)には、JSONキーグルーピング部11は、新たなJSONキーグループを登録するようにJSONキーグループ情報15を更新する(ステップS15)。次いで、JSONキーグルーピング部11は、JSONキーグループ情報15を更新した内容をJSONキー更新ログ17に書込み(ステップS16)、対象キーに対するループ1の処理を終了し、次の処理対象についてのループ1の処理を実行する。
【0103】
キー・データマッピングテーブル19のJSONキーの全てのキーについて、ループ1の処理でいずれかのJSONキーグループに分けられた場合には、JSONキーグルーピング部11は、ループ1を抜けて、JSONキーグルーピング処理を終了する。
【0104】
このJSONキーグルーピング処理によると、JSONデータのJSONキーを適切にJSONキーグループに分けることができる。
【0105】
次に、検索キー抽出処理について説明する。
【0106】
図18は、第1実施形態に係る検索キー抽出処理のフローチャートである。
【0107】
検索キー抽出処理は、例えば、一定時間おきに実行される。まず、キーグループテーブル生成サーバ10の検索キー抽出部12は、検索クエリログ25に、JSONテーブル24に対する新たな検索クエリがあるか否かを判定する(ステップS21)。
【0108】
この結果、新たな検索クエリがない場合(ステップS21:No)には、検索キー抽出部12は、検索キー抽出処理を終了する。一方、新たな検索クエリがある場合(ステップS21:Yes)には、検索キー抽出部12は、新たな検索クエリを取得し、検索クエリを解析して検索条件の絞り込みに使用される検索キーを抽出し(ステップS22)、抽出した検索キーに関するログを検索キーログ18に書き込む(ステップS23)。
【0109】
次いで、検索キー抽出部12は、抽出した検索キーが検索として初めて使用された検索キーであるか否か、具体的には、検索キー集計情報16に格納されていない検索キーであるか否かを判定し(ステップS24)、検索キーが初めて使用されたものでない場合(ステップS24:No)には、検索キー抽出処理を終了する。
【0110】
一方、検索キーが初めて使用されたものである場合(ステップS24:Yes)には、検索キー抽出部12は、抽出された検索キーを、この検索キーが属するJSONキーグループに対応するエントリに登録することにより、検索キー集計情報16を更新し(ステップS25)、処理を終了する。
【0111】
この検索キー抽出処理によると、検索キー集計情報16にJSONキーグループにおいて使用された検索キーを適切に登録することができる。
【0112】
次に、キーグループテーブル生成処理について説明する。
【0113】
図19は、第1実施形態に係るキーグループテーブル生成処理のフローチャートである。
【0114】
キーグループテーブル生成処理は、例えば、キーグループテーブル生成サーバ10が起動している際に繰り返し実行される。キーグループテーブル生成サーバ10のキーグループテーブル生成部13は、JSONキーグループ情報15の各JSONキーグループを処理対対象としてループ2の処理(ステップS31~S37)を実行する。ここで、処理対象のJSONキーグループを対象キーグループという。
【0115】
まず、キーグループテーブル生成部13は、ユーザからキーグループテーブル生成インターフェース14によりキーグループテーブルの生成リクエストをあるか否かを判定する(ステップS31)。この結果、キーグループテーブルの生成リクエストをある場合(ステップS31:Yes)には、キーグループテーブル生成部13は、生成リクエストに含まれるユーザに指定されたキーをカラムとして含むキーグループテーブルを生成し(ステップS37)、ループ2の最後に進む。なお、生成したキーグループテーブルに対しては、データ変換・転送部22により、JSONテーブル24のJSONデータについてのキー値が転送されることとなる。
【0116】
一方、キーグループテーブルの生成リクエストがない場合(ステップS31:No)には、キーグループテーブル生成部13は、検索キー集計情報16を参照し、対象キーグループのキーが検索キーに存在するか否かを判定する(ステップS32)。
【0117】
この結果、対象キーグループのキーが検索キーに存在しないと判定した場合(ステップS32:No)には、対象キーグループは検索に利用されないことを意味しており、キーグループテーブルを作成する必要がないので、キーグループテーブル生成部13は、対象キーグループについてのキーグループテーブルを生成せずに、対象キーグループに対するループ2の処理を終了する。これにより、検索に利用されない無駄なキーグループテーブルが生成されることを適切に防止することができる。
【0118】
一方、対象キーグループのキーが検索キーに存在すると判定した場合(ステップS32:Yes)には、キーグループテーブル生成部13は、検索キーログ18を参照し、対象キーグループの検索キーによる検索時間が一定以上である、又は、悪化する傾向にあるか否かを判定する(ステップS33)。
【0119】
この結果、対象キーグループの検索キーによる検索時間が一定以上でなく、且つ悪化する傾向にないと判定した場合(ステップS33:No)には、現在の状態でよく、対象キーグループのキーグループテーブルを生成する必要がないので、キーグループテーブル生成部13は、対象キーグループについてのキーグループテーブルを生成せずに、対象キーグループに対するループ2の処理を終了する。
【0120】
一方、対象キーグループの検索キーによる検索時間が一定以上である、又は、悪化する傾向にある場合(ステップS33:Yes)には、キーグループテーブル生成部13は、検索キーによりキーグループテーブルを検索した方が、JSONテーブル24を検索するよりも、検索時間短縮が一定以上見込まれるか否かを判定する(ステップS34)。具体的には、キーグループテーブル生成部13は、JSONテーブル24を索引がないリレーショナルテーブルと仮定した場合における検索コスト(JSONテーブル検索コスト)と、キーに索引が付けられたキーグループテーブルにおける検索コスト(キーグループテーブル検索コスト)とを算出し、JSONテーブル検索コストとキーグループテーブル検索コストとの差が一定以上であるか否かを判定する。
【0121】
この結果、キーグループテーブルを検索した方が、JSONテーブル24を検索するよりも、検索時間短縮が一定以上見込まれないと判定した場合(ステップS34:No)には、キーグループテーブルを生成する必要がないので、キーグループテーブル生成部13は、対象キーグループについてのキーグループテーブルを生成せずに、対象キーグループに対するループ2の処理を終了する。
【0122】
一方、キーグループテーブルを検索した方が、JSONテーブル24を検索するよりも、検索時間短縮が一定以上見込まれると判定した場合(ステップS34:Yes)には、キーグループテーブル生成部13は、JSONキー更新ログ17及び検索キーログ18を参照し、対象キーグループのJSONキー及び検索キーの追加が、直近で一定以下の頻度であるか否かを判定する(ステップS35)。
【0123】
この結果、対象キーグループのJSONキー及び検索キーの追加が、直近で一定以下の頻度でないと判定した場合(ステップS35:No)には、キーグループテーブルを生成したとしても、テーブルにないキーのカラムが必要となってしまう可能性があり、生成したキーグループテーブルが無駄になってしまう可能性があることを意味しているので、キーグループテーブル生成部13は、対象キーグループについてのキーグループテーブルを生成せずに、対象キーグループに対するループ2の処理を終了する。
【0124】
一方、対象キーグループのJSONキー及び検索キーの追加が、直近で一定以下の頻度であると判定した場合(ステップS35:Yes)には、キーグループテーブル生成部13は、対象キーグループの検索キーをカラムとして含むキーグループテーブルを生成し(ステップS36)、対象キーグループに対するループ2の処理を終了する。本実施形態では、キーグループテーブルは、対象キーグループの検索キーとならないキーについてのカラムは含んでおらず、テーブルにおけるカラム数を低減することができる。なお、生成したキーグループテーブルに対しては、データ変換・転送部22により、JSONテーブル24のJSONデータについてのキー値が転送されることとなる。
【0125】
キーグループテーブル生成部13は、JSONキーグループ情報15の処理対象としていないJSONキーグループを次の処理対象としてループ2の処理(ステップS31~S37)を実行し、JSONキーグループ情報15のすべてのJSONキーグループを処理対象とした場合に、ループ2を抜けて、キーグループテーブル生成処理を終了する。
【0126】
上記実施形態によると、キーグループを単位として、テーブルを生成するか否かを判定してキーグループテーブルを作成するようにしたので、生成されるテーブル数を抑えることができる。また、キーグループにおける検索キーをカラムとして含み、検索キー以外のキーをカラムとしないので、テーブルにおけるカラム数を抑えることができる。これにより、半構造化データに対する検索利便性や検索効率を向上できる。
【0127】
次に、第2実施形態に係るデータ管理システムについて説明する。
【0128】
図20は、第2実施形態に係るデータ管理システムの全体構成図である。なお、図20においては、第1実施形態に係るデータ管理システム1と同様な構成には、同一の符号を付している。
【0129】
データ管理システム1Aは、データベース管理サーバ20に代えて、データベース統合管理サーバ70と、JSONデータベース管理サーバ80と、リレーショナルデータベース管理サーバ90とを備え、データベース管理サーバ20の機能を、データベース統合管理サーバ70、JSONデータベース管理サーバ80、及びリレーショナルデータベース管理サーバ90の機能により実現するようにしたものである。
【0130】
データベース統合管理サーバ70と、JSONデータベース管理サーバ80と、リレーショナルデータベース管理サーバ90とは、ネットワーク60に接続されている。
【0131】
データベース統合管理サーバ70は、例えば、PCや、サーバ等の計算機(例えば、計算機100)によって構成されている。データベース統合管理サーバ70は、JSONデータベース管理サーバ80とリレーショナルデータベース管理サーバ90とを統合して管理する処理を行う。データベース統合管理サーバ70は、検索クエリ書換え部71と、検索クエリログ25とを備える。なお、検索クエリ書換え部71の詳細については後述する。
【0132】
JSONデータベース管理サーバ80は、例えば、PCや、サーバ等の計算機(例えば、計算機100)によって構成されている。JSONデータベース管理サーバ80は、JSONテーブル24によりJSONデータを管理する。JSONデータベース管理サーバ80は、JSONデータベース管理システム81と、JSONテーブル24とを備える。なお、JSONデータベース管理システム81の詳細については後述する。
【0133】
リレーショナルデータベース管理サーバ90は、例えば、PCや、サーバ等の計算機(例えば、計算機100)によって構成されている。リレーショナルデータベース管理サーバ90は、キーグループテーブル群26によりデータを管理する。リレーショナルデータベース管理サーバ90は、リレーショナルデータベース管理システム91と、キーグループテーブル群26とを備える。なお、リレーショナルデータベース管理システム91の詳細については後述する。
【0134】
まず、JSONデータの挿入処理について説明する。
【0135】
図21は、第2実施形態に係るJSONデータの挿入処理を説明する図である。
【0136】
データ挿入サーバ40のデータ挿入部41は、図示しない工場等において取得された製造実績データをJSONデータとし、JSONデータベース管理サーバ80のJSONデータベース管理システム81に、JSONテーブル24にJSONデータを挿入させる挿入クエリを送信する。ここで、挿入クエリには、JSONデータが含まれている。JSONデータベース管理システム81は、挿入クエリを受信すると、JSONテーブル24に新たなエントリを追加し、エントリのJSON24bに挿入クエリに含まれているJSONデータを格納する。
【0137】
次に、データ検索処理について説明する。
【0138】
図22は、第2実施形態に係るデータ検索処理を説明する図である。
【0139】
データ検索サーバ30のデータ検索部31は、JSONテーブル24から所望のデータを検索する検索クエリをデータベース統合管理サーバ70の検索クエリ書換え部71に送信する。
【0140】
検索クエリ書換え部71は、検索クエリを受信すると、受信した検索クエリを検索クエリログ25に格納する。検索クエリ書換え部71は、リレーショナルデータベース管理システム91からキーグループテーブル群26におけるキーグループテーブルの情報(テーブル情報)を取得する。ここで、テーブル情報とは、キーグループテーブル群26に存在するキーグループテーブルを識別する情報と、そのキーグループテーブルで管理されている(カラムとなっている)キーとの情報を含む。
【0141】
検索クエリ書換え部71は、取得したテーブル情報に基づいて、検索クエリについて、キーグループテーブル及びJSONテーブル24を利用して検索を行うキーグループテーブル用部分クエリと、半構造化データ記憶部の半構造化データを検索するための半構造化データ記憶部用部分クエリと、を含む検索クエリ(書換後検索クエリ)に書換える。なお、キーグループテーブル群26にキーグループテーブルが生成されていない場合やキーグループテーブルに関係ない検索クエリである場合には、検索クエリ書換え部71は、受信した検索クエリをそのまま書換後検索クエリとする。
【0142】
検索クエリ書換え部71は、書換後検索クエリをリレーショナルデータベース管理システム91に渡す。リレーショナルデータベース管理システム91は、書換後検索クエリのうちのキーグループテーブル群26のキーグループテーブルに対する検索内容に基づいて、キーグループテーブル群26に対する検索を行う。また、リレーショナルデータベース管理システム91は、キーグループテーブル群26に対する検索結果と、書換後検索クエリとに基づいて、JSONテーブル24に対する検索内容を示す検索クエリ(副クエリ)を生成し、副クエリをJSONデータベース管理サーバ80のJSONデータベース管理システム81に送信する。JSONデータベース管理システム81は、副クエリを受信し、副クエリに従ってJSONテーブル24を検索し、検索結果のデータ(検索途中データ)をリレーショナルデータベース管理システム91に返す。
【0143】
リレーショナルデータベース管理システム91は、キーグループテーブル群26に対する検索結果と、JSONデータベース管理システム81から受信した検索途中データと組み合わせて、書換後検索クエリに対する検索結果のデータ(検索データ)を作成し、検索データを検索クエリ書換え部71に返す。
【0144】
検索クエリ書換え部71は、リレーショナルデータベース管理システム91から検索データを受け取って、検索データを検索クエリの送信元であるデータ検索部31に送信する。これにより、データ検索部31では、検索データを用いて各種処理を行うことができる。
【0145】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0146】
例えば、上記実施形態では、キーグループテーブル生成処理のステップS35において、対象キーグループのJSONキー及び検索キーについて、直近に一定以下の頻度で発生したか否かを判定するようにしていたが、本発明はこれに限られず、例えば、対象キーグループの検索キーについてのみ直近に一定以下の頻度で発生したか否かを判定するようにしてもよい。
【0147】
また、上記実施形態では、ステップS33、S34、S35の全ての判定を行うことにより、キーグループテーブルを生成するか否かを判定していたが、本発明はこれに限られず、例えば、ステップS33、S34、S35の少なくとも一つのステップを省略してキーグループテーブルを生成するか否かを判定してもよい。
【0148】
また、上記実施形態のデータ管理システムは、上記構成に限られず、例えば、複数のサーバの中の少なくとも複数を1つの計算機で実現するようにしてもよく、また、各サーバの機能の切り分けも上記に限られず、データ管理システムに含まれるいずれかの計算機のプロセッサによって機能が実現されていればよい。
【0149】
また、上記実施形態では、JSONデータを用いた例を示していたが、本発明はこれに限られず、例えば、XMLデータ等の他の半構造化データを用いてもよい。
【0150】
また、上記実施形態において、機能部が行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態における機能部を構成するプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
【符号の説明】
【0151】
1,1A…データ管理システム、10…キーグループテーブル生成サーバ、11…JSONキーグルーピング部、12…検索キー抽出部、13…キーグループテーブル生成部、20…データベース管理サーバ、21…データベース管理システム、22…データ変換・転送部、23…検索クエリ書換え部、30…データ検索サーバ、31…データ検索部、40…データ挿入サーバ、41…データ挿入部、50…クライアントPC、60…ネットワーク、70…データベース統合管理サーバ、71…検索クエリ書換え部、80…JSONデータベース管理サーバ、90…リレーショナルデータベース管理サーバ

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22