(57)【要約】【課題】複雑な構造を持つデータであっても効率的に管理することができるリレーショナルデータベースを提供する。【解決手段】データの集合をテーブルの形で表現し管理するリレーショナルデータベース、格納の対象となる元データにクラスを定義しオブジェクトを生成させるオブジェクト生成手段、前記オブジェクトをシリアライズするシリアライズ手段、データの一時的な記憶が可能なメモリとの間でデータのインプット／アウトプットが可能であると共に、前記シリアライズ手段により生成されたシリアライズドデータを該メモリに書き出すメモリＩ／Ｏ手段、前記メモリに書き出されたシリアライズドデータを文字列化する文字列化手段、前記リレーショナルデータベースとの間でデータのインプット／アウトプットが可能であると共に、前記文字列化手段により生成された文字列データを前記リレーショナルデータベースに格納するデータベースＩ／Ｏ手段を備える。【選択図】図１
2005157718.tif 000002
【特許請求の範囲】
【請求項１】
データの集合をテーブルの形で表現し管理するリレーショナルデータベース、
格納の対象となる元データにクラスを定義しオブジェクトを生成させるオブジェクト生成手段、
前記オブジェクトをシリアライズするシリアライズ手段、
データの一時的な記憶が可能なメモリとの間でデータのインプット／アウトプットを可能にすると共に、前記シリアライズ手段により生成されたシリアライズドデータを該メモリに書き出すメモリＩ／Ｏ手段、
前記メモリに書き出されたシリアライズドデータを文字列化する文字列化手段、
前記リレーショナルデータベースとの間でデータのインプット／アウトプットが可能であると共に、前記文字列化手段により生成された文字列データを前記リレーショナルデータベースに格納するデータベースＩ／Ｏ手段、
を備えて構成されることを特徴とするデータ管理システム。
【請求項２】
前記文字列化手段は、前記シリアライズドデータを１６進数化する１６進数化手段を含んで構成されることを特徴とする請求項１記載のデータ管理システム。
【請求項３】
前記文字列化手段は、前記シリアライズドデータをＢＡＳＥ６４方式に従って文字列に変換するＢＡＳＥ６４変換手段を含んで構成されることを特徴とする請求項１記載のデータ管理システム。
【請求項４】
格納しようとする元データに基づいてハッシュ値を生成させるハッシュ値生成手段、
前記ハッシュ値と、該ハッシュ値を生成させた元データの文字列化データとを関連付けて前記リレーショナルデータベースに記憶させるハッシュ値関連付け手段、
前記リレーショナルデータベースから所定のハッシュ値を検索するハッシュ値検索手段、
を備えて構成される請求項１〜３のいずれか１つに記載のデータ管理システム。
【請求項５】
コンピュータを、
データの集合をテーブルの形で表現し管理するリレーショナルデータベース、
格納の対象となる元データにクラスを定義しオブジェクトを生成させるオブジェクト生成手段、
前記オブジェクトをシリアライズするシリアライズ手段、
データの一時的な記憶が可能なメモリとの間でデータのインプット／アウトプットを可能にすると共に、前記シリアライズ手段により生成されたシリアライズドデータを該メモリに書き出すメモリＩ／Ｏ手段、
前記メモリに書き出されたシリアライズドデータを文字列化する文字列化手段、
前記リレーショナルデータベースとの間でデータのインプット／アウトプットが可能であると共に、前記文字列化手段により生成された文字列データを前記リレーショナルデータベースに格納するデータベースＩ／Ｏ手段、
として機能させることを特徴とするデータ管理システム用プログラム。
【請求項６】
前記文字列化手段は、前記シリアライズドデータを１６進数化する１６進数化手段を含んで構成されることを特徴とする請求項５記載のデータ管理システム用プログラム。
【請求項７】
前記文字列化手段は、前記シリアライズドデータをＢＡＳＥ６４方式に従って文字列に変換するＢＡＳＥ６４変換手段を含んで構成されることを特徴とする請求項５記載のデータ管理システム用プログラム。
【請求項８】
前記コンピュータを、更に、
格納しようとする元データに基づいてハッシュ値を生成させるハッシュ値生成手段、
前記ハッシュ値と、該ハッシュ値を生成させた元データの文字列化データとを関連付けて前記リレーショナルデータベースに記憶させるハッシュ値関連付け手段、
前記リレーショナルデータベースから所定のハッシュ値を検索するハッシュ値検索手段、
として機能させることを特徴とする請求項５〜７のいずれか１つに記載のデータ管理システム用プログラム。
【請求項９】
前記請求項５〜８のいずれか１つに記載のデータ管理システム用プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理の技術に関するものであり、特にリレーショナルデータベースによるデータ管理において、オブジェクト指向を利用するものに関する。
【背景技術】
【０００２】
現在主に利用されているデータベースとして、リレーショナルデータベースがある。リレーショナルデータベースは、１件のデータを複数の項目（フィールド）の集合として表現し、データの集合をテーブル（表）で表すものであり、ＩＤ番号や名前等のキーとなるデータを利用して、データの結合や抽出を容易に行うことができるものであり、ＳＱＬ(Structured Query Language)により操作されるものが最も一般的である。
【０００３】
また、近年オブジェクト指向を取り入れたオブジェクト指向データベース（ＯＯＤＢ）の開発も進んでいる。このＯＯＤＢの従来発明としては、次のようなものが開示されている。この従来発明は、オブジェクトを用いてデータを管理する管理装置であって、前記オブジェクトの属性に関する定義を含むクラスを予め記憶するクラス記憶部と、前記新たに生成させる新規クラスの定義を入力する定義入力部と、前記新規クラスに含まれる属性に類似した属性を、前記クラス記憶部に記憶された既存のクラスから抽出する抽出部と、該抽出された属性同士の関連付けを記憶する関連記憶部とを備えるものである（特許文献１参照）。これによって、新たに定義されたクラスの各属性に対し、既存のクラスに含まれる属性との関連付けを比較的容易に行うことができ、管理目的に応じて多数のクラスが定義された場合でも、共通の情報が記録されるべき属性についての関連付けを行うための負担を軽減させることができるので、オブジェクト指向のデータベースを用いて多数の目的別データベースの情報を効率的に管理可能できるとされている。
【特許文献１】特開２００３−２８０９７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記リレーショナルデータベースは、現在最も普及していると共に、通常のデータであれば検索効率の高いものであるが、従来のシステムにおいては、複雑な構造を持つデータを格納する場合に、データが複数箇所に分散され、データベースへのアクセスが複数回にわたる等の非効率的な面があった。また、複雑な構造を持つデータは、オブジェクト指向により扱いやすくなるが、上記特許文献１を例とするオブジェクト指向データベースでは、アクセス回数が多い等の理由から処理速度が遅く、改良の余地があるのが現状である。
【０００５】
そこで、本発明は、複雑な構造を持つデータであっても効率的に管理することができるリレーショナルデータベースを提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係るデータ管理システムは、データの集合をテーブルの形で表現し管理するリレーショナルデータベース、格納の対象となる元データにクラスを定義しオブジェクトを生成させるオブジェクト生成手段、前記オブジェクトをシリアライズするシリアライズ手段、データの一時的な記憶が可能なメモリとの間でデータのインプット／アウトプットを可能にすると共に、前記シリアライズ手段により生成されたシリアライズドデータ（バイナリ）を該メモリに書き出すメモリＩ／Ｏ手段、前記メモリに書き出されたシリアライズドデータを文字列化する文字列化手段、前記リレーショナルデータベースとの間でデータのインプット／アウトプットが可能であると共に、前記文字列化手段により生成された文字列データを前記リレーショナルデータベースに格納するデータベースＩ／Ｏ手段を備えて構成されるものである（請求項１）。
【０００７】
また、前記文字列化手段は、前記シリアライズドデータを１６進数化する１６進数化手段、若しくは前記シリアライズドデータをＢＡＳＥ６４方式に従って文字列に変換するＢＡＳＥ６４変換手段を含んで構成されることが望ましい（請求項２及び３）。
【０００８】
また、格納しようとする元データに基づいてハッシュ値を生成させるハッシュ値生成手段、前記ハッシュ値と、該ハッシュ値を生成させた元データの文字列化データとを関連付けて前記リレーショナルデータベースに記憶させるハッシュ値関連付け手段、前記リレーショナルデータから所定のハッシュ値を検索するハッシュ値検索手段を備えて構成されることが望ましい（請求項４）。
【０００９】
また、本発明は、コンピュータを、データの集合をテーブルの形で表現し管理するリレーショナルデータベース、格納の対象となる元データにクラスを定義しオブジェクトを生成させるオブジェクト生成手段、前記オブジェクトをシリアライズするシリアライズ手段、データの一時的な記憶が可能なメモリとの間でデータのインプット／アウトプットを可能にすると共に、前記シリアライズ手段により生成されたシリアライズドデータを該メモリに書き出すメモリＩ／Ｏ手段、前記メモリに書き出されたシリアライズドデータを文字列化する文字列化手段、前記リレーショナルデータベースとの間でデータのインプット／アウトプットが可能であると共に、前記文字列化手段により生成された文字列データを前記リレーショナルデータベースに格納するデータベースＩ／Ｏ手段として機能させることを特徴とするデータ管理システム用プログラムである（請求項５）。
【００１０】
また、前記文字列化手段は、前記シリアライズドデータを１６進数化する１６進数化手段、若しくは前記シリアライズドデータをＢＡＳＥ６４方式に従って文字列に変換するＢＡＳＥ６４変換手段を含んで構成されることが望ましい（請求項６及び７）。
【００１１】
また、前記コンピュータを、更に、格納しようとする元データに基づいてハッシュ値を生成させるハッシュ値生成手段、前記ハッシュ値と、該ハッシュ値を生成させた元データの文字列化データとを関連付けて前記リレーショナルデータベースに記憶させるハッシュ値関連付け手段、前記リレーショナルデータベースから所定のハッシュ値を検索するハッシュ値検索手段として機能させることが望ましい（請求項８）。
【００１２】
また、本発明は、前記請求項５〜８のいずれか１つに記載のデータ管理システム用プログラムを記録したコンピュータ読み取り可能な記録媒体である（請求項９）。
【発明の効果】
【００１３】
上述したように、複雑な構造を持つデータをそのままの形でデータベースへ格納すると、データへのアクセスが遅くなる。そこで、本発明は、この複雑な構造を持つ元データを一旦復元可能な別の形に変換し、この変換されたデータをデータベースに格納するようにしたものである。上記本発明の構成によれば、現在最も普及したデータベースであり、検索効率の高いリレーショナルデータベース（ＳＱＬデータベース）に、複雑な構造を持つデータを効率的に格納し、またこれから抽出することが可能となる。
【００１４】
また、本発明に係るシステムにおいては、格納される全てのデータがリレーショナルデータベースに文字の羅列として管理される。即ち、本システムは、データが暗号化された状態でリレーショナルデータベースに格納されることとなり、たとえ第３者にデータベース内をみられたとしても、その内容が読み取られることはなく、高いセキュリティ性を有したものとなる。そして、上記請求項４又は８記載の構成によって、データの抽出時に、リレーショナルデータベース内の全ての文字列データを元データに復元させることなく、目的のデータを効率的に抽出することができるようになる。
【発明を実施するための最良の形態】
【００１５】
以下、添付した図面を参考にして本発明の実施例を説明する。
【実施例１】
【００１６】
図１に示すデータ管理システム１は、リレーショナルデータベース２、オブジェクト生成手段３、シリアライズ手段４、メモリ５、メモリＩ／Ｏ手段６、文字列化手段７、１６進数化手段８又はＢＡＳＥ６４変換手段９、データベースＩ／Ｏ手段１０を有して構成され、一般的には、ＣＰＵ、ＲＯＭ、ＲＡＭ、ディスプレイ、インタフェイス等を有して構成される単数又は複数のコンピュータを、所定のプログラムによって上記データベース２及び手段３，４，６，７，８，９，１０として機能させることにより構成されるものである。
【００１７】
リレーショナルデータベース２は、データの集合をテーブルの形で表現し管理するものであり、ＳＱＬ(Structured Query Language)により操作される一般的なものが好適である。オブジェクト生成手段３は、格納しようとする元データにオブジェクト指向におけるクラスを定義することによってオブジェクトを生成させるものである。
【００１８】
シリアライズ手段４は、前記オブジェクト生成手段３により生成されたオブジェクトをシリアライズ、若しくはデシリアライズするものであり、通常オブジェクト指向に関わる機構に含まれるものである。
【００１９】
メモリ５は、コンピュータに内蔵される記憶装置であり、通常ＣＰＵの作業領域として機能するものである。
【００２０】
メモリＩ／Ｏ手段６は、前記メモリ５との間でデータのインプット／アウトプットを可能にするものであり、特に本構成においては、前記シリアライズ手段４により生成されたシリアライズドデータをメモリ５に書き出すと共に、該メモリ５に存在するシリアライズドデータ５を読み込む作業をする。
【００２１】
文字列化手段７は、前記メモリ５に書き出されたシリアライズドデータを文字列データに変換すると共に、リレーショナルデータベース２から抽出された文字列データをシリアライズドデータ（シリアライズされたオブジェクト：バイナリ）に変換するものである。この文字列化手段７は、１６進数化手段８、又はＢＡＳＥ６４変換手段９を有して構成されており、前記シリアライズドデータの文字列データへの変換は、１６進数化やＢＡＳＥ６４変換法を利用してなされる。
【００２２】
データベースＩ／Ｏ手段１０は、前記リレーショナルデータベース２との間でデータのインプット／アウトプットを可能にするものであり、特に本構成においては、前記文字列化手段７により生成された文字列データを前記リレーショナルデータベース２に格納すると共に、該リレーショナルデータベース２から文字列データを抽出する作業をする。
【００２３】
図２は、上記構成のデータ管理システム１によるデータの格納時の処理を示している。先ず、前記オブジェクト生成手段３により、格納しようとする元データにクラスを定義し、オブジェクトを生成する（ステップ１００）。次いで、前記シリアライズ手段４により、オブジェクト化されたデータをシリアライズし（ステップ１０１）、このシリアライズドデータを、前記メモリＩ／Ｏ手段６により、メモリ５に書き出す（ステップ１０２）。メモリ５に書き出されたシリアライズドデータは、前記文字列化手段７に含まれる１６進数化手段１０若しくはＢＡＳＥ６４変換手段１１により、文字列データに変換される（ステップ１０３）。そして、この文字列データが、前記データベースＩ／Ｏ手段８により、前記リレーショナルデータベース２に格納される（ステップ１０４）。
【００２４】
また、データの抽出時の処理は、上記格納時の処理の逆の手順で行われ、図３に示すように、先ず、データベースＩ／Ｏ手段１０によりリレーショナルデータベース２の該当項目から対応する文字列データ（文字列化されたオブジェクト）を抽出し（ステップ２００）、メモリ５に書き出す（ステップ２０１）。次いで、メモリ５に書き出された文字列データを、文字列化手段７によりシリアライズドデータ（シリアライズされたオブジェクト）に変換させる（ステップ２０２）。このシリアライズドデータは、メモリＩ／Ｏ手段により読み込まれ、シリアライズ手段４によりデシリアライズされ（ステップ２０３）、元のクラスのオブジェクトとして認識される（ステップ２０４）。
【００２５】
上記本実施例に係るデータ管理システム１によれば、複雑な構造を持つデータを効率的にリレーショナル（ＳＱＬ）データベース２によって管理することができる。また、元データの別形式への変換が、主にメモリ５内において行われるため、格納時又は抽出時におけるリレーショナルデータベース２へのアクセスが一度きりとなる。これによって、処理速度を向上させることができる。
【００２６】
更に、本構成においては、全てのデータがリレーショナルデータベース２に文字の羅列として格納される。即ち、本発明に係るデータ管理システムは、データが暗号化された状態でリレーショナルデータベースに格納されるため、たとえ第３者にデータベース内をみられたとしても、その内容が読み取られることはなく、高いセキュリティ性を有したものとなる。
【実施例２】
【００２７】
以下に、本発明の他の実施例を、添付した図面を参考にして説明するが、上記実施例１と同一又は同様の箇所については、その説明を省略する。
【００２８】
図４に示す本実施例に係るデータ管理システム２０は、上記実施例１の構成に加え、ハッシュ値生成手段２１、ハッシュ値関連付け手段２２、ハッシュ値検索手段２３を備えて構成されるものであり、これらの手段２１，２２，２３によって、暗号化された状態で格納されたデータの検索（抽出）を、効率的に行えるようにしたものである。
【００２９】
ハッシュ値生成手段２１は、格納しようとする元データに基づいて、該元データに固有のハッシュ値を生成させるものである。例えば、図５（ａ），（ｂ）に示すように、元データが“内田”という氏名の人物に関するものである場合、“内”及び“田”という漢字に割り付けられているコード（ｕｎｉｃｏｄｅ、漢字コード等）を利用し、任意のハッシュ関数に従ってハッシュ値を演算する。本実施例では、それぞれのコード（内：６４００、田：３２８５）を乗じたものをハッシュ値（２１０２４０００）としている。
【００３０】
ハッシュ値関連付け手段２２は、図５（ｃ）に示すように、上記のようにして生成されたハッシュ値を、該ハッシュ値の生成元であるデータの文字列データ（オブジェクト）に関連付けて、リレーショナルＤＢ２内に記憶させるものである。
【００３１】
ハッシュ値検索手段２３は、データの抽出時において、抽出対象となるデータのハッシュ値と一致するハッシュ値及びこれと関連付けられた文字列データ（オブジェクト）を、リレーショナルＤＢ２から検索し、検索されたデータをデータベースＩ／Ｏ手段１０により抽出されるようになすものである。
【００３２】
図６は、上記本実施例のデータ管理システム２０によるデータの格納時の処理を示している。格納対象となる元データを文字列データに変換する（図２におけるステップ１００〜１０３参照）と共に、前記ハッシュ値生成手段２１により元データに基づくハッシュ値を生成させる（ステップ３００）。次いで、生成された文字列データとハッシュ値とを、前記ハッシュ値関連付け手段２２により、図５（ｃ）に示すように関連付けて、リレーショナルＤＢ２に格納する（ステップ３０１）。
【００３３】
また、データの抽出時の処理は、図７に示すように行われる。先ず、前記ハッシュ値検索手段２３により、抽出しようとするデータ（例えば、“内田”に関する情報）のハッシュ値（２１０２４０００）をリレーショナルＤＢ２から検索し（ステップ４００）、一致するハッシュ値を持つ文字列データ（オブジェクト）を抽出する（ステップ４０１）。この時、コリジョンが生じる可能性、即ち抽出対象と同一のハッシュ値を持つオブジェクトが存在することがある。例えば、本実施例の構成においては、“田内”なるものが存在すれば、上記“内田”と同一のハッシュ値となる（図５（ｂ），（ｃ）参照）。
【００３４】
次いで、抽出されたオブジェクトがいくつあるかを判定し（ステップ４０２）、１つである場合には、抽出されたオブジェクトが抽出対象であると確定され（ステップ４０３）、０である場合には、抽出対象は存在しないと確定され（ステップ４０４）、そして複数ある場合には、抽出された全てのオブジェクトを元データに復元し、その中から正しい抽出対象を選出する（ステップ４０５）。このステップ４０５のような場合であっても、抽出されるオブジェクト（重複するハッシュ値）は極めて少数であろうから、その後の選出処理は簡単なものとなる。
【００３５】
上記本実施例に係るデータ管理システム２０は、上記実施例１の構成に加えて、ハッシュ値を有効に利用する手段を備えていることによって、データの抽出時に、リレーショナルデータベース２内の全ての文字列データを元データに復元させることなく、目的のデータを効率的に抽出することができるようになる。これにより、本発明のデータ管理システムを、暗号化機能を備えたシステムとして、有効に利用することが可能となる。
【産業上の利用可能性】
【００３６】
以上のように、本発明によれば、現在最も普及し、検索効率の高いリレーショナル（ＳＱＬ）データベースを利用して、複雑な構造を持つデータを効率的に管理することができるシステムを提供することができる。また、セキュリティ性の高い暗号化機能を備えたシステムとして利用することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施例１に係る構成を示すデータフローである。
【図２】実施例１におけるデータ格納時の処理を示すフローチャートである。
【図３】実施例１におけるデータ抽出時の処理を示すフローチャートである。
【図４】本発明の実施例２に係る構成を示すデータフローである。
【図５】実施例２におけるハッシュ値の利用法を説明するための図である。
【図６】実施例２におけるデータ格納時の処理を示すフローチャートである。
【図７】実施例２におけるデータ抽出時の処理を示すフローチャートである。
【符号の説明】
【００３８】
１，２０  データ管理システム
２  リレーショナルデータベース
３  オブジェクト生成手段
４  シリアライズ手段
５  メモリ
６  メモリＩ／Ｏ手段
７  文字列化手段
８  １６進数化手段
９  ＢＡＳＥ６４変換手段
１０  データベースＩ／Ｏ手段
２１  ハッシュ値生成手段
２２  ハッシュ値関連付け手段
２３ハッシュ値検索手段
【図１】
2005157718.tif 000003
【図２】
2005157718.tif 000004
【図３】
2005157718.tif 000005
【図４】
2005157718.tif 000006
【図５】
2005157718.tif 000007
【図６】
2005157718.tif 000008
【図７】
2005157718.tif 000009