(57)【特許請求の範囲】
【請求項１】
ＲＤＢ（リレーショナルデータベース）と、前記ＲＤＢに対して処理を実行するための処理部と、を備え、可変構造のＲＤＢを提供するためのＲＤＢシステムであって、
前記ＲＤＢは、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理するクラステーブルと、
それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理するプロパティテーブルと、
ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理するインスタンステーブルと、
前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理する実体値テーブルと、を備え、
前記処理部は、入力されたクラス情報に基づいて前記クラスレコードの管理を行うためのクラス管理手段と、
入力されたプロパティ情報に基づいて前記プロパティレコードの管理を行うためのプロパティ管理手段と、
入力されたインスタンス情報に基づいて前記インスタンスレコードの管理を行うためのインスタンス管理手段と、
入力された実体値情報に基づいて前記実体値レコードの管理を行うための実体値管理手段と、を備えることを特徴とするＲＤＢシステム。
【請求項２】
前記実体値レコードにおける実体値は、インスタンスを少なくとも指定した参照値を、値として保持可能であることを特徴とする請求項１に記載のＲＤＢシステム。
【請求項３】
前記プロパティレコードは、前記実体値レコードにおける実体値の、値のタイプを示すタイプ情報を有することを特徴とする請求項１又は請求項２に記載のＲＤＢシステム。
【請求項４】
前記プロパティレコードは、前記実体値レコードにおける実体値のユニーク性を示すユニーク性情報を有することを特徴とする請求項１〜３の何れかに記載のＲＤＢシステム。
【請求項５】
前記ＲＤＢは、データ格納のために利用する言語を、言語レコードとして管理する言語テーブルと、
前記クラスの言語別の名称を、クラスレコード及び言語レコードと関係性を有するクラス言語レコードとして管理するクラス言語テーブルと、
前記プロパティの言語別の名称を、プロパティレコード及び言語レコードと関係性を有するプロパティ言語レコードとして管理するプロパティ言語テーブルと、を更に備え、
前記処理部は、入力された言語情報に基づいて前記言語レコードの管理を行うための言語管理手段と、
入力されたクラス言語情報に基づいて前記クラス言語レコードの管理を行うためのクラス言語管理手段と、
入力されたプロパティ言語情報に基づいて前記プロパティ言語レコードの管理を行うためのプロパティ言語管理手段と、を更に備え、
前記実体値レコードは、更に言語レコードと関係性を有すること、を特徴とする請求項１〜４の何れかに記載のＲＤＢシステム。
【請求項６】
前記プロパティ言語レコードは、前記実体値レコードにおける実体値の入力規則を示す規則情報を有することを特徴とする請求項５に記載のＲＤＢシステム。
【請求項７】
前記クラスレコード及び前記プロパティレコードは、管理表示時の表示順序を示す順序情報を有することを特徴とする請求項１〜６の何れかに記載のＲＤＢシステム。
【請求項８】
可変構造のＲＤＢ（リレーショナルデータベース）を提供するための管理プログラムであって、コンピュータを、
クラステーブルの管理を行うためのクラス管理手段と、
プロパティテーブルの管理を行うためのプロパティ管理手段と、
インスタンステーブルの管理を行うためのインスタンス管理手段と、
実体値テーブルの管理を行うための実体値管理手段と、として機能させ、
前記クラステーブルは、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理し、
前記プロパティテーブルは、それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理し、
インスタンステーブルは、ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理し、
実体値テーブルは、前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理することを特徴とする管理プログラム。
【請求項９】
可変構造のＲＤＢ（リレーショナルデータベース）を提供するためのサーバ装置であって、
クラステーブルの管理を行うためのクラス管理手段と、
プロパティテーブルの管理を行うためのプロパティ管理手段と、
インスタンステーブルの管理を行うためのインスタンス管理手段と、
実体値テーブルの管理を行うための実体値管理手段と、を備え、
前記クラステーブルは、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理し、
前記プロパティテーブルは、それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理し、
インスタンステーブルは、ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理し、
実体値テーブルは、前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理することを特徴とするサーバ装置。
【請求項１０】
ＲＤＢ（リレーショナルデータベース）形式でデータベース装置に記憶された複数のテーブルを用いて、可変構造のデータ管理を行うためのデータ管理方法であって、
データ格納のための構造単位を定義するクラスを、クラスレコードとして管理するクラステーブルと、
それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理するプロパティテーブルと、
ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理するインスタンステーブルと、
前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理する実体値テーブルと、クラステーブルの管理を行うためのクラス管理手段と、プロパティテーブルの管理を行うためのプロパティ管理手段と、インスタンステーブルの管理を行うためのインスタンス管理手段と、実体値テーブルの管理を行うための実体値管理手段と、を用いてデータ管理を行うことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変構造のＲＤＢ（リレーショナルデータベース）システムに関るものである。
【背景技術】
【０００２】
従来から、各技術分野・産業分野で種々の情報をデータベース化しており、種々の情報を格納したデータベースシステムが利用されている。例えば顧客情報データベースや、会社情報データベースなどがその一例であり、ＲＤＢ（リレーショナルデータベース）が用いられている。
【０００３】
現状、データベースシステムとして、ＲＤＢを利用したＲＤＢシステムが広く利用されている。しかしながら、ＲＤＢシステムを稼働させるためには、予めデータテーブルの列（属性）を指定しておく必要がある。また、予めデータの性質毎にデータテーブルそのものも定義しておく必要がある。そのため、稼働後にデータテーブルの列を増加させる場合や、データテーブル間のリレーションの追加や変更などを行う場合には、ＲＤＢ、ＲＤＢシステムの処理プログラムについて、大幅に変更を行う必要が生じていた。
【０００４】
そのため、一般的なＲＤＢのデータテーブルを、属性名管理テーブル、属性値管理テーブル、組データ管理テーブルに変形し、データテーブルの列（属性）を、データテーブルの行（タプル）として扱う為のＲＤＢシステムが開発された（特許文献１）。データテーブルの管理項目として扱う列（属性）を、データ個数として扱う行に配置するようにしたので、管理項目である属性の追加削除を柔軟に行うことが可能となった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１８６７７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術によって、従来のＲＤＢシステムのデータテーブルにおける属性の増減や変更を、柔軟に行うことが可能となった。しかしながら、従来のＲＤＢシステムにおけるテーブル（表）を増加させることはできず、関係性を有した複数のデータテーブルを、ＲＤＢ上に可変構造で表現することは出来ない。また、テーブルで利用可能なデータタイプが、数値乃至は事前に定義された文字列のみに制限されている。そのため、データの構造や利用可能なデータタイプ、データ同士の関係性などをより柔軟に変化可能であって、それらの変化に関る処理を容易に行うことが可能なＲＤＢシステムが求められていた。
【０００７】
本発明は、上記のような実状に鑑みてなされたものであり、可変構造のＲＤＢシステムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、ＲＤＢ（リレーショナルデータベース）と、前記ＲＤＢに対して処理を実行するための処理部と、を備え、可変構造のＲＤＢを提供するためのＲＤＢシステムであって、前記ＲＤＢは、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理するクラステーブルと、それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理するプロパティテーブルと、ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理するインスタンステーブルと、前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理する実体値テーブルと、を備え、前記処理部は、入力されたクラス情報に基づいて前記クラスレコードの管理を行うためのクラス管理手段と、入力されたプロパティ情報に基づいて前記プロパティレコードの管理を行うためのプロパティ管理手段と、入力されたインスタンス情報に基づいて前記インスタンスレコードの管理を行うためのインスタンス管理手段と、入力された実体値情報に基づいて前記実体値レコードの管理を行うための実体値管理手段と、を備えることを特徴とする。
【０００９】
このような構成とすることで、従来のＲＤＢシステムにおける複数のテーブルを、ＲＤＢ上において可変構造で構築することが可能となる。これにより、テーブルの増減や各テーブルにおける情報単位の増加に対応可能なＲＤＢを提供することが可能となり、従来必要であったＲＤＢの構造の見直しや再構築を行う必要がなくなる。
【００１０】
また、管理者がＲＤＢのスキーマ追加や変更に関する知識を必要とせず、クラスやプロパティの追加・変更・削除を容易に行うことが可能となる。更に、クラスやプロパティが増大しても、ＲＤＢ上のスキーマは増加しない。そのため、構造の把握・メンテナンス・バックアップといった作業を、極めて単純に行うことができる。
【００１１】
また、インスタンスや実体値の登録・取得・変更は、どのクラスのインスタンスに対しても同様の方法で実行可能となる。そのため、従来のように複数の表や複数の列のそれぞれ対応した開発を必要とせず、データベースの構築時のコストを大幅に低廉化できる。
【００１２】
本発明の好ましい形態では、前記実体値レコードにおける実体値は、インスタンスを少なくとも指定した参照値を、値として保持可能であることを特徴とする。
【００１３】
本発明の好ましい形態では、前記プロパティレコードは、前記実体値レコードにおける実体値の、値のタイプを示すタイプ情報を有することを特徴とする。
【００１４】
本発明の好ましい形態では、前記プロパティレコードは、前記実体値レコードにおける実体値のユニーク性を示すユニーク性情報を有することを特徴とする。
【００１５】
本発明の好ましい形態では、前記ＲＤＢは、データ格納のために利用する言語を、言語レコードとして管理する言語テーブルと、前記クラスの言語別の名称を、クラスレコード及び言語レコードと関係性を有するクラス言語レコードとして管理するクラス言語テーブルと、前記プロパティの言語別の名称を、プロパティレコード及び言語レコードと関係性を有するプロパティ言語レコードとして管理するプロパティ言語テーブルと、を更に備え、前記処理部は、入力された言語情報に基づいて前記言語レコードの管理を行うための言語管理手段と、入力されたクラス言語情報に基づいて前記クラス言語レコードの管理を行うためのクラス言語管理手段と、入力されたプロパティ言語情報に基づいて前記プロパティ言語レコードの管理を行うためのプロパティ言語管理手段と、を更に備え、前記実体値レコードは、更に言語レコードと関係性を有すること、を特徴とする。
このような構成とすることで、多言語に対応したデータを管理可能なＲＤＢシステムを提供することが可能となる。
【００１６】
本発明の好ましい形態では、前記プロパティ言語レコードは、前記実体値レコードにおける実体値の入力規則を示す規則情報を有することを特徴とする。
このような構成とすることで、言語ごとに実体値に対して入力規則を設定することができる。
【００１７】
本発明の好ましい形態では、前記クラスレコード及び前記プロパティレコードは、管理表示時の表示順序を示す順序情報を有することを特徴とする。
このような構成とすることで、管理画面での表示を容易に行うことが可能となる。また、クラスレコード及びプロパティレコード以外にも、言語テーブルにおける言語レコード等、他のテーブルのレコードについても、管理画面での表示順序を示す順序情報を有していても構わない。
【００１８】
本発明は、可変構造のＲＤＢ（リレーショナルデータベース）を提供するための管理プログラムであって、コンピュータを、クラステーブルの管理を行うためのクラス管理手段と、プロパティテーブルの管理を行うためのプロパティ管理手段と、インスタンステーブルの管理を行うためのインスタンス管理手段と、実体値テーブルの管理を行うための実体値管理手段と、として機能させ、前記クラステーブルは、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理し、前記プロパティテーブルは、それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理し、インスタンステーブルは、ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理し、実体値テーブルは、前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理することを特徴とする。
【００１９】
本発明は、可変構造のＲＤＢ（リレーショナルデータベース）を提供するためのサーバ装置であって、クラステーブルの管理を行うためのクラス管理手段と、プロパティテーブルの管理を行うためのプロパティ管理手段と、インスタンステーブルの管理を行うためのインスタンス管理手段と、実体値テーブルの管理を行うための実体値管理手段と、を備え、前記クラステーブルは、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理し、前記プロパティテーブルは、それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理し、インスタンステーブルは、ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理し、実体値テーブルは、前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理することを特徴とする。
【００２０】
本発明は、ＲＤＢ（リレーショナルデータベース）形式でデータベース装置に記憶された複数のテーブルを用いて、可変構造のデータ管理を行うためのデータ管理方法であって、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理するクラステーブルと、それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理するプロパティテーブルと、ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理するインスタンステーブルと、前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理する実体値テーブルと、クラステーブルの管理を行うためのクラス管理手段と、プロパティテーブルの管理を行うためのプロパティ管理手段と、インスタンステーブルの管理を行うためのインスタンス管理手段と、実体値テーブルの管理を行うための実体値管理手段と、を用いてデータ管理を行うことを特徴とする。
【００２１】
本発明は、可変構造のリレーショナルデータベースであって、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理するクラステーブルと、それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理するプロパティテーブルと、ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理するインスタンステーブルと、前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理する実体値テーブルと、を備えることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、可変構造のＲＤＢシステムを提供することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態１に関るＲＤＢシステムのブロック図である。
【図２】本発明の実施形態１に関るＲＤＢの多言語対応時のＥＲ図である。
【図３】本発明の実施形態１に関るＲＤＢの多言語非対応時のＥＲ図である。
【図４】本発明の実施形態１に関るＲＤＢのデータテーブル例である。
【図５】本発明の実施形態１に関るＲＤＢのデータテーブル例である。
【図６】本発明の実施形態１に関るＲＤＢのデータテーブル例である。
【図７】本発明の実施形態１に関るＲＤＢの管理画面の一例である。
【図８】本発明の実施形態１に関るＲＤＢの管理画面の一例である。
【図９】本発明の実施形態１に関るＲＤＢシステムの管理処理時の処理フローチャートである。
【図１０】本発明の実施形態１に関るＲＤＢシステムの出力処理／入力処理の処理フローチャートである。
【図１１】本発明の実施形態１に関るＲＤＢシステムの出力処理／入力処理の処理フローチャートである。
【図１２】本発明の実施形態２に関るＲＤＢシステムのブロック図である。
【図１３】本発明の実施形態２に関るＲＤＢシステムの管理処理時の処理フローチャートである。
【発明を実施するための形態】
【００２４】
＜実施形態１＞
以下、図１〜図１１を用いて、本発明の実施形態１に関るＲＤＢシステムについて説明する。なお、以下に示す実施形態は本発明の一例であり、本発明を以下の実施形態に限定するものではない。本実施形態では、本実施形態に関るデータ構造のＲＤＢに対する処理を行なうための処理部が、アプリケーションサーバ内にフレームワークとして提供される場合を示す。
【００２５】
図１は、本実施形態に関るＲＤＢシステムの機能ブロック図である。符号１は本実施形態に関るデータ構造のＲＤＢを、符号２はＲＤＢ１を有するデータベース装置を、符号３は処理部を、符号４はユーザ端末を、符号５は特定の業務処理を行なうためのアプリケーションプログラムを格納したアプリケーションサーバを、符号６はウェブサーバをそれぞれ示している。ウェブサーバ６は、アプリケーションサーバ５と一体になって提供されても構わない。また、ウェブサーバ６は、必ずしも設けられている必要はない。
【００２６】
データベース装置２は、ＲＤＢ形式でデータを記憶した、読出／書込可能な記憶装置２１と、データベース管理システム２２とを備えている。データベース管理システム２２は、処理部３からの要求を受け付ける手段と、処理部３からの要求に基づいて記憶装置２１に記憶されたＲＤＢ１を管理するためのＲＤＢ管理手段と、を有している。なお、記憶装置２１には、ＲＤＢ１以外のデータが記憶されていても構わない。
【００２７】
アプリケーションサーバ５は、ユーザからの要求（ユーザリクエスト）に基づいて処理部３に対する特定の業務処理を要求するアプリケーション５１と、フレームワーク５２として提供される処理部３を有している。アプリケーション５１は、ユーザリクエストに基づいて処理部３に処理要求を行い、処理部３から受け取ったデータに基づく出力を行う。アプリケーションサーバ５がデータベース装置２から取得したデータや処理結果は、ウェブサーバ６を介してユーザ端末４に送られる。
【００２８】
処理部３は、アプリケーション５１からの処理要求の受け付け、並びにデータの出力を行う為の入出力部３１と、クラステーブルのレコード・フィールドの追加、変更、削除、検索等、管理を行う為のクラス管理手段３２と、プロパティテーブルのレコード・フィールドの追加、変更、削除、検索等、管理を行う為のプロパティ管理手段３３と、インスタンステーブルのレコード・フィールドの追加、変更、削除、検索等、管理を行う為のインスタンス管理手段３４と、実体値テーブルのレコード・フィールドの追加、変更、削除、検索等、管理を行う為の実体値管理手段３５と、言語テーブルのレコード・フィールドの追加、変更、削除、検索等、管理を行う為の言語管理手段３６と、クラス言語テーブルのレコード・フィールドの追加、変更、削除、検索等、管理を行う為のクラス言語管理手段３７と、プロパティ言語テーブルのレコード・フィールドの追加、変更、削除、検索等、管理を行う為のプロパティ言語管理手段３８と、を備えている。
【００２９】
次いで、図２〜図６を用いて、多言語対応時のＲＤＢ１のデータモデル構造と、当該データモデル構造におけるクラステーブル、プロパティテーブル、インスタンステーブル、実体値テーブル、言語テーブル、クラス言語テーブル、プロパティ言語テーブルの具体例について説明する。
【００３０】
図２は、実施形態１に関わる多言語対応のＲＤＢシステムのデータモデル構造を示し、各テーブルの関連を表したＥＲ図(Entity Relationship Diagram)である。実施形態１に関わるＲＤＢ１は、クラステーブル、プロパティテーブル、インスタンステーブル、実体値テーブル、言語テーブル、クラス言語テーブル、プロパティ言語テーブル、を有している。ＲＤＢシステムを多言語対応で運用しない場合には、言語テーブル、クラス言語テーブル、プロパティ言語テーブル、が設けられている必要はない。図３には、多言語非対応のＲＤＢ１のデータモデル構造に関るＥＲ図を示す。
【００３１】
図４（ａ）は、言語テーブルの一例を示す図である。言語テーブルは、データ格納のために利用する言語を、言語レコードとして管理している。本実施形態における言語レコードは、主キーとして言語ＩＤを有し、更に、言語の名称と、後述する管理画面上での表示順序を表す順序情報を有している。実施形態１では、日本語（ｊｐｎ）及び英語（ｅｎｇ）の２言語に対応したＲＤＢ１を構成する場合の例を示す。ここにさらに他の言語を追加することもでき、言語の追加に対応した柔軟なデータベースを構築することができる。
【００３２】
図４（ｂ）は、クラステーブルの一例を示す図である。クラステーブルは、データ格納のための構造単位を定義するクラスを、クラスレコードとして管理している。本実施形態におけるクラスレコードは、主キーとしてクラスＩＤを有し、更に、前記順序情報を有している。このクラスは、一般的なＲＤＢにおける各テーブルを定義するものに該当する。
【００３３】
図４（ｃ）は、クラス言語テーブルの一例を示す図である。クラス言語テーブルは、クラスの言語別の名称を、クラスレコード及び言語レコードと関係性を有するクラス言語レコードとして管理している。本実施形態におけるクラス言語レコードは、主キーとしてクラスＩＤ及び言語ＩＤを有し、更に、言語ごとのクラスの名称を有している。クラス言語は、言語テーブルで設定される言語ごとに、各クラスの名称を管理するためのものである。多言語に対応しない場合には、クラスレコードがクラスの名称を有していてもよい。
【００３４】
図５（ａ）は、プロパティテーブルの一例を示す図である。プロパティテーブルは、それぞれの前記クラスに対して関連付けられる属性であるプロパティを、前記クラスレコードと関係性を有するプロパティレコードとして管理している。本実施形態におけるプロパティレコードは、主キーとしてプロパティＩＤを有し、更に、前記クラスＩＤと前記順序情報、後述する実体値の値タイプに関るタイプ情報、実体値のユニーク性タイプに関るユニーク性情報、を有している。プロパティレコードは、更に、実体値のNOTNULL制約、実体値の初期値の設定に関るフィールドを有していてもよい。プロパティは、一般的なＲＤＢにおける各テーブルの属性を定義するものに該当する。
【００３５】
図５（ｂ）は、プロパティ言語テーブルの一例を示す図である。プロパティ言語テーブルは、プロパティの言語別の名称を、プロパティレコード及び言語レコードと関係性を有するプロパティ言語レコードとして管理している。本実施形態におけるプロパティ言語レコードは、主キーとしてプロパティＩＤ及び言語ＩＤを有し、更に、言語ごとのプロパティの名称と、言語ごとの実体値の入力規則を有している。プロパティ言語は、言語テーブルで設定される言語ごとに、各プロパティの名称を管理するためのものである。多言語に対応しない場合には、プロパティレコードがプロパティの名称及び言語ごとの実体値の入力規則を有していてもよい。
【００３６】
図６（ａ）は、インスタンステーブルの一例を示す図である。インスタンステーブルは、ぞれぞれの前記クラスに属する実体であるインスタンスを、前記クラスレコードと関係性を有するインスタンスレコードとして管理している。本実施形態におけるインスタンスレコードは、主キーとしてインスタンスＩＤを有し、更に、前記クラスＩＤを有している。
【００３７】
図６（ｂ）は、実体値テーブルの一例を示す図である。実体値テーブルは、前記インスタンスがそれぞれの前記プロパティについて持つ値を示す実体値を、前記インスタンスレコード及びプロパティレコードと関係性を有する実体値レコードとして管理している。本実施形態における実体値レコードは、主キーとしてインスタンスＩＤ、プロパティＩＤ、言語ＩＤを有し、更に、実体値として非ユニーク文字列、ユニーク文字列、非ユニーク数値、ユニーク数値、非ユニーク日時、ユニーク日時、非ユニークバイナリ、ユニークバイナリ、非ユニークインスタンス参照、ユニークインスタンス参照、を有している。非ユニークインスタンス参照及びユニークインスタンス参照とは、他のインスタンスを参照する為の参照値である。本実施形態では、例えば、インスタンスＩＤを指定することで、実体としてグループのインスタンスを参照可能に構成している。また、インスタンスに加えてプロパティも指定させ、他の実体値を参照値として保持可能であってもよい。その場合、値のタイプ情報として実体値参照を追加しておき、実体値レコードにはユニーク／非ユニーク実体値参照のフィールドを設ければよい。
【００３８】
実体値としてインスタンス参照を持たせることで、一般的なＲＤＢにおけるリレーションを定義することができ、リレーションを柔軟に追加、変更等可能なＲＤＢシステムを提供することが可能となる。例えば図４〜６の例では、インスタンス参照としてインスタンス（ｉ００１）で設定されるグループを選択する構成にしている。これにより、インスタンス（ｉ００２）で設定された各メンバーと、インスタンス（ｉ００１）で設定されるグループのリレーションを定義し、各メンバーが所属するグループを設定することができる。このような構成とすることで、幅広いデータ型に対応したシステムを提供することができる。そのため、現実的なシステム運用時に必要となる厳格なデータ管理を実現可能となり、様々なシステムに適用することができる。
【００３９】
また、本実施形態の実体値テーブルにおいて、プロパティＩＤと言語ＩＤとユニーク文字列、プロパティＩＤと言語ＩＤとユニーク数値、プロパティＩＤと言語ＩＤとユニーク日時、プロパティＩＤと言語ＩＤとユニークバイナリ、プロパティＩＤと言語ＩＤとユニークインスタンス参照、の組み合わせには、複合ユニーク制約が設けられている。
【００４０】
図７、図８は、ユーザ端末４に表示される管理画面例を示す。図７は、実体値を管理する際の管理画面の一例を示す図である。ユーザは、この管理画面からＲＤＢ１に対して検索やレコードの追加等の管理を行うことができる。図８（ａ）はプロパティを管理する際の管理画面の一例を示す図である。図８（ｂ）は、プロパティ言語を管理する際の管理画面の一例を示す図である。クラスやクラス言語、言語、インスタンスについても同様の管理画面で管理することができる。各レコードは、管理画面で用いる備考等の情報を更に有していてもよい。
【００４１】
次いで図９を用いて、管理画面からレコードの追加を行う際の処理フローについて説明する。本実施形態では、プロパティテーブルにプロパティレコードを追加する際の例を示す。なお、クラスレコードやインスタンスレコード等の各テーブルのレコードを追加、編集、削除する場合についても、同様の処理手順で実行可能である。また、検索処理やウェブページの表示処理等、要求に基づいて所定のデータを取得する場合についても、同様の処理手順で実行可能である。この追加、変更、削除、検索等に関る管理処理は、必ずしも管理画面から行われる必要はなく、本実施形態で例示する管理画面から要求を行う以外の方法で行われても構わない。
【００４２】
ユーザは、ユーザ端末４のウェブブラウザを用いてウェブサーバ６にアクセスし、管理画面の提供をリクエストする。管理画面の提供に関るユーザリクエストは、ウェブサーバ６によってアプリケーションサーバ５に転送される。アプリケーションサーバ５は、データベース装置２から必要な情報を受け取り、アプリケーション５１、ウェブサーバ６を介して、ユーザ端末４に各管理画面の提供を行う（Ｓ１）。
【００４３】
ユーザは、提供されたプロパティ管理画面からプロパティレコードの新規追加を選択し、新規プロパティの追加要求を行う（Ｓ２）。新規プロパティを追加する際に、ユーザは、当該プロパティが対象とするクラスを選択し、実体値のタイプ情報と、ユニーク性情報と、プロパティＩＤと、順序情報と、を入力する。ここで、所定の項目、例えばプロパティＩＤや順序情報等は、自動的に設定されるように構成してもよい。
【００４４】
また、言語ごとのプロパティの名称及び、言語ごとの実体値の入力規則の入力も同時に受け付け、プロパティレコードに加えてプロパティ言語レコードを合わせて管理可能できるように構成しても構わない。クラスレコードの追加に合わせてそのクラス言語についても合わせて管理可能な構成等、ＲＤＢ１の複数のテーブルに関る事項を管理可能に構成してもよい。
【００４５】
ユーザによって入力された新規プロパティに関する情報は、新規プロパティを追加するためのユーザリクエストとして、ウェブサーバ６によりアプリケーションサーバ５に転送される（Ｓ３）。アプリケーションサーバ５では、受け取ったユーザリクエストをアプリケーション５１で処理し、処理部３に対してプロパティレコードの追加指示を行う（Ｓ４）。
【００４６】
処理部３は、アプリケーション５１からのプロパティレコードの追加指示を入出力部３１で受け取る。そして、受け取った追加指示に基づいて、ＪＤＢＣやＯＤＢＣ等のデータベースドライバを経由して、プロパティ管理手段３３を用いてデータベース管理システム２２にアクセスし、プロパティ追加の要求を行う（Ｓ５）。データベース管理システム２２は、処理部３から受け取った新規プロパティの追加指示に基づいて、プロパティテーブルに新たなプロパティレコードを追加する（Ｓ６）。データベース装置２における処理結果は、アプリケーション５１に渡され、ウェブサーバ６で扱う為の所定のデータに加工されて、ユーザ端末４のウェブブラウザに通知される（Ｓ７）。
【００４７】
次いで図１０を用いて、ユーザによるウェブページを介した出力／入力処理について説明する。ユーザは、ユーザ端末４のウェブブラウザを用いてウェブサーバ６にアクセスし、出力／入力処理をリクエストする（Ｓ１１）。ユーザリクエストには、ユーザが使用するブラウザの言語設定が含まれている。ウェブサーバ６は、言語設定を有するユーザリクエストを取得し、ユーザアプリケーションサーバ５に転送する（Ｓ１２）。
【００４８】
言語設定を有するユーザリクエストを受け取ったアプリケーション５１は、ユーザリクエストに含まれる言語設定を判別する。ＲＤＢ１が言語設定された言語に対応していない場合、対応している別の言語を指定して言語情報とする。アプリケーション５１は、この言語情報及びユーザリクエストに基づいて、処理部３に処理の要求を行う（Ｓ１３）。
【００４９】
処理部３は、受け取った処理要求に基づいて、ＪＤＢＣやＯＤＢＣ等のデータベースドライバを経由して、データベース管理システム２２にアクセスし、データの処理要求を行う（Ｓ１４）。データベース管理システムは、要求された処理を実行し、処理結果を出力する（Ｓ１５）。この出力は、アプリケーション５１に渡され、ウェブサーバ６で扱う為の所定のデータに加工される（Ｓ１６）。このデータを受け取ったウェブサーバ６は、ユーザ端末４のウェブブラウザに通知を行なう（Ｓ１７）。
【００５０】
図１１（ａ）を用いて、Ｓ１３において、ユーザに対してデータの出力処理を行う際の例について説明する。例えば、ユーザに対して動的なコンテンツをウェブブラウザで表示する場合や、ユーザからあるデータについての出力要求があった場合が本例に該当する。
【００５１】
言語設定を有するユーザリクエストを受け取ったアプリケーション５１は、ユーザリクエストに基づいて、出力要求を受けている実体値を特定する（Ｓ１３）。言語の特定は、判別された言語情報に基づいて行われる（Ａ１）。言語設定の言語がＲＤＢ１で利用可能な言語に対応している場合、言語設定の言語が出力対象のデータの言語となる。利用可能な言語に対応していない場合は、所定の言語が出力対象のデータの言語となる。
【００５２】
ユーザリクエストに基づいて、出力対象の実体値に関るインスタンス及びプロパティが特定される（Ａ２）。Ａ１で決定された言語と、Ａ２で特定されたインスタンス及びプロパティに基づいて、実体値のレコードの中の一つの実体値が特定される（Ａ３）。
【００５３】
ユーザリクエストに含まれるすべての実体値が特定できたなら（Ａ４Ｙ）、フレームワークへの処理要求を行う（Ａ５）。そして、Ｓ１４に進み、特定された実体値のデータを、実体値管理手段３５を用いてＲＤＢ１より取得する。このインスタンスについての複数の実体値を取得したい場合や、クラスの全データを取得したい場合には、Ａ２及びＡ３の処理を繰り返せばよい（Ａ４Ｎ）。なお、フレームワーク、データベース管理システムへの処理要求や、Ａ４における繰り返しの判定などは、別のタイミングで行っても構わない。例えば、フレームワークへの処理要求をＡ３後に行うようにして、繰り返しの判定（Ａ４）は、Ｓ１５でデータベース管理システムから受け取った後等に行っても構わない。
【００５４】
また、ある言語のあるクラスに含まれる実体値データ全てを取得したいような場合には、ユーザリクエストとしてクラスを指定する情報と言語設定を受け取ってもよい。この場合、まず、処理部３を介してＲＤＢ１から指定されたクラスを含むインスタンスを検索して受け取り、このインスタンスを含み、言語情報に対応した実体値データを全件取得するように処理部３に要求してもよい。
【００５５】
図１１（ｂ）を用いて、Ｓ１３において、ユーザからのデータの入力処理を行う際の例について説明する。例えば、入力フォームからユーザのデータを取得して記憶する場合や、注文データを記憶する場合が本例に該当する。
【００５６】
言語設定を有するユーザリクエストを受け取ったアプリケーション５１は、ユーザリクエストに基づいて、入力要求を受けているインスタンスを特定する（Ｓ１３）。アプリケーション５１は、言語設定から、言語情報を判別する（Ｂ１）。この言語設定は、実体値の言語の特定に利用してもよい。また、クラスによって言語別にデータ格納の構造単位を定義している場合には、クラスの特定等に利用してもよい。
【００５７】
ユーザリクエストに基づいて、入力対象の実体値に関るクラス及びプロパティが特定される（Ｂ２）。言語は、言語設定以外のユーザリクエストに基づいて決定されるように構成してもよいし、言語設定に基づいて特定された言語情報に基づいて決定されてもよい。
【００５８】
ユーザの新規データを登録する場合、処理部３に対して、Ｂ２で特定されたクラスに属する新規インスタンスの作成要求を行う。作成されたインスタンスと、Ｂ２で特定されたプロパティ及び言語に基づいて、一つの実体値データが特定される（Ｂ３）。
【００５９】
ユーザリクエストに含まれるすべての実体値が特定できたなら（Ｂ４Ｙ）、フレームワークへの処理要求を行う（Ｂ５）。そして、Ｓ１４に進み、特定された実体値のデータを、実体値管理手段３５を用いてＲＤＢ１に記憶する。このインスタンスについての複数の実体値を記憶したい場合は、Ｂ２及びＢ３の処理を繰り返せばよい（Ｂ４Ｎ）。
【００６０】
また、あるインスタンスについてのデータを上書きしたい場合には、ユーザリクエストとしてインスタンスを指定する情報と、プロパティを指定する情報と、言語設定を受け取ってもよい。この場合、特定される実体値レコードを上書きするように処理部３に要求すればよい。
【００６１】
本発明によれば、従来のＲＤＢシステムにおける複数のテーブルを、ＲＤＢ上において可変構造で構築することが可能となる。これにより、テーブルの増減や各テーブルにおける情報単位の増加に対応可能なＲＤＢを提供することが可能となる。
【００６２】
また、従来のＲＤＢのように、データの性質毎にデータテーブルそのものを定義しておく必要がなくなる。更に、従来のＲＤＢにおけるデータテーブル間のリレーションの追加や変更を、極めて容易に行うことが可能となる。
【００６３】
また、柔軟に言語を追加できる多言語データを管理可能なＲＤＢシステムを提供することが可能となる。
【００６４】
＜実施形態２＞
図１２、図１３を用いて、本発明の実施形態２に関るＲＤＢシステムについて説明する。なお、同実施形態において、先の実施形態と基本的に同一の構成要素については、同一の符号を付してその説明を簡略化する。
【００６５】
実施形態２では、データベース管理システム２２の基本機能として、本発明に関るデータ構造のＲＤＢ１を管理するそれぞれの管理手段が設けられている場合について説明する。図１２に示すように、データベース管理システム２２は、アプリケーションサーバ５からの要求に基づいて記憶装置２１に記憶されたＲＤＢを管理するためのＲＤＢ管理手段２３と、アプリケーションサーバ５からの要求を受け付ける入出力部３１と、クラス管理手段３２と、プロパティ管理手段３３と、インスタンス管理手段３４と、実体値管理手段３５と、言語管理手段３６と、クラス言語管理手段３７と、プロパティ言語管理手段３８と、を備えている。
【００６６】
なお、実施形態１と同様、ＲＤＢシステムを図３に示すように多言語非対応で運用する場合には、言語テーブル、クラス言語テーブル、プロパティ言語テーブル、が設けられている必要はない。ウェブサーバ６は、アプリケーションサーバ５と一体になって提供されても構わない。また、ウェブサーバ６は、必ずしも設けられている必要はない。
【００６７】
図１３を用いて、本実施形態におけるＲＤＢ１の管理処理に関る処理フローについて説明する。本実施形態では、実体値テーブルに実体値レコードを追加する際の例を示す。なお、クラスレコードやプロパティレコード等の各テーブルのレコードを追加、編集、削除等、管理する場合についても、同様の処理フローで実行可能である。また、検索処理やウェブページの表示処理等、要求に基づいて所定のデータを取得する場合についても、同様の処理フローで実行が可能である。
【００６８】
ユーザは、ユーザ端末４のウェブブラウザを用いてウェブサーバ６にアクセスし、管理画面の提供をリクエストする。管理画面の提供に関るユーザリクエストは、ウェブサーバ６によってアプリケーションサーバ５に転送される。アプリケーションサーバ５は、データベース装置２から必要な情報を受け取り、アプリケーション５１、ウェブサーバ６を介して、ユーザ端末４に各管理画面の提供を行う（Ｓ２１）。
【００６９】
ユーザは、提供された実体値の管理画面から実体値レコードの新規追加を選択し、新規実体値の追加要求を行う（Ｓ２２）。新規実体値を追加する際に、ユーザは、当該実体値が対象とするインスタンス、プロパティ、言語を選択し、実体値を入力する。この実体値の入力では、選択したプロパティについてプロパティレコードで設定された値のタイプ情報及びユニーク性情報、選択した言語及びプロパティについてプロパティ言語レコードで設定された実体値の入力規則、の制約を受ける。ここで、更に、ＲＤＢ１の複数のテーブルに関る事項を管理可能に構成してもよい。
【００７０】
ユーザによって入力された新規実体値に関する情報は、新規実体値を追加するためのユーザリクエストとして、ウェブサーバ６を介してアプリケーションサーバ５に転送される（Ｓ２３）。アプリケーションサーバ５では、受け取ったユーザリクエストをアプリケーション５１で処理し、ＪＤＢＣやＯＤＢＣ等のデータベースドライバを経由して、入出力部３１にアクセスする（Ｓ２４）。そして、実体値管理手段３５は、受け取った追加指示に基づいて、実体値テーブルに新たな実体値レコードを追加する（Ｓ２５）。データベース装置２における処理結果は、アプリケーション５１に渡され、ウェブサーバ６で扱う為の所定のデータに加工されて、ユーザ端末４のウェブブラウザに通知される（Ｓ２６）。
【００７１】
本発明によれば、従来のＲＤＢシステムにおける複数のテーブルを、ＲＤＢ上において可変構造で構築することが可能となる。これにより、テーブルの増減や各テーブルにおける情報単位の増加に対応可能なＲＤＢを提供することが可能となる。
【００７２】
また、従来のＲＤＢのように、データの性質毎にデータテーブルそのものを定義しておく必要がなくなる。更に、従来のＲＤＢにおけるデータテーブル間のリレーションの追加や変更を、極めて容易に行うことが可能となる。
【００７３】
また、柔軟に言語を追加できる多言語データを管理可能なＲＤＢシステムを提供することが可能となる。
【００７４】
また、本発明に関るデータ構造のＲＤＢを管理するための管理手段をデータベース管理システムの基本機能に入れ込むことで、読み取りの一貫性が上がり、効果的に本発明を提供することができる。
【産業上の利用可能性】
【００７５】
本発明によって、大規模かつ変更が頻繁に行われるデータを管理する場合に適した、可変構造、多言語対応のＲＤＢシステムを提供することができる。
【符号の説明】
【００７６】
１  ＲＤＢ
２  データベース装置
２１  記憶装置
２２  データベース管理システム
２３  ＲＤＢ管理手段
３  処理部
３１  入出力部
３２  クラス管理手段
３３  プロパティ管理手段
３４  インスタンス管理手段
３５  実体値管理手段
３６  言語管理手段
３７  クラス言語管理手段
３８  プロパティ言語管理手段
４  ユーザ端末
５  アプリケーションサーバ
５１  アプリケーション
５２  フレームワーク
６  ウェブサーバ
【要約】      （修正有）【課題】可変構造のＲＤＢ（リレーショナルデータベース）システムを提供する。【解決手段】ＲＤＢ１と、ＲＤＢに対して処理を実行するための処理部３と、を備える。ＲＤＢは、データ格納のための構造単位を定義するクラスを管理するクラステーブルと、それぞれのクラスに対して関連付けられる属性であるプロパティを管理するプロパティテーブルと、ぞれぞれのクラスに属する実体であるインスタンスを管理するインスタンステーブルと、インスタンスがそれぞれのプロパティについて持つ値を示す実体値を管理する実体値テーブルと、を備える。処理部は、クラスレコードの管理を行うためのクラス管理手段３２と、プロパティレコードの管理を行うためのプロパティ管理手段３３と、インスタンスレコードの管理を行うためのインスタンス管理手段３４と、実体値レコードの管理を行うための実体値管理手段３５と、を備える。【選択図】図１【図１】
0005877488.tif 000002
【図２】
0005877488.tif 000003
【図３】
0005877488.tif 000004
【図４】
0005877488.tif 000005
【図５】
0005877488.tif 000006
【図６】
0005877488.tif 000007
【図７】
0005877488.tif 000008
【図８】
0005877488.tif 000009
【図９】
0005877488.tif 000010
【図１０】
0005877488.tif 000011
【図１１】
0005877488.tif 000012
【図１２】
0005877488.tif 000013
【図１３】
0005877488.tif 000014