(57)【要約】  各々がオブジェクトデータを格納できる１つ以上の属性を含むルートテーブルと、階層レベルのサブテーブルとを含む階層データベース（７０２）に対する方法及び装置（７００）。構成機能（７０８）は、各サブテーブルの親テーブルと関連付けられた一連の素数を乗算することで生成されたテーブル識別子ＴＩＤをそのサブテーブルに割り当てる。格納機能（７０４）は、種々の連続したレベルで階層的に接続されたサブテーブルのパスのテーブル識別子ＴＩＤがオブジェクト識別子ＯＩＤに符号化されるようにデータベースにおいてオブジェクト識別子ＯＩＤを各オブジェクトに割り当て、接続されたサブテーブルのそのオブジェクトに関するデータをテーブルパスに格納する。【選択図】  図７
2013516017.tif 000002
【特許請求の範囲】
【請求項１】
ルートテーブルと、前記ルートテーブルの下の多数の階層レベルで編成された複数の事前定義されたサブテーブルとを含む階層データベースにおいてオブジェクト関連データを処理する方法であって、ここで、各テーブルはオブジェクトデータを格納できる１つ以上の属性を含む、
テーブル識別子ＴＩＤが各サブテーブルに割り当てられ、
ここで、前記テーブル識別子ＩＤは前記サブテーブルの親テーブルと関連付けられた一連の素数を乗算することで生成される；
種々の連続したレベルで階層的に接続されたサブテーブルのパスの前記テーブル識別子ＴＩＤがオブジェクト識別子ＯＩＤに符号化されるように、前記データベースにおいて各オブジェクトに前記オブジェクト識別子ＯＩＤが割り当てられ、
ここで、前記オブジェクトに関するデータが前記テーブルパスにおいて前記接続されたサブテーブルに格納される
ことを特徴とする方法。
【請求項２】
１つのサブテーブルに対するテーブル識別子ＴＩＤは、隣接レベルにおける当該サブテーブルの親テーブルの親テーブルＰＩＤと該親テーブルの次に使用可能な素数とを乗算することで生成されることを特徴とする請求項１に記載の方法。
【請求項３】
オブジェクトに関連するデータを前記データベースに格納するため、
前記オブジェクトに関連する識別されたサブテーブル及び前記サブテーブルに階層的に接続された親テーブルを含むテーブルパスを判定するステップと、
前記判定された関連するサブテーブルの前記テーブル識別子ＴＩＤから算出された前記オブジェクトにオブジェクト識別子ＯＩＤを割り当てるステップと、
前記パスの前記テーブルに前記データ及び前記オブジェクト識別子ＯＩＤを格納するステップと
を備えることを特徴とする請求項１又は２記載の方法。
【請求項４】
前記オブジェクト識別子ＯＩＤは、ＯＩＤ＝２k・ｎ＋ＴＩＤとして算出される、
ここで、ｋは、前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ｎは、前記判定された関連するサブテーブルのオブジェクトに対する順序番号である
ことを特徴とする請求項３に記載の方法。
【請求項５】
要求されたオブジェクトのオブジェクト識別子ＯＩＤに関するデータクエリを受信した場合に前記データベースからオブジェクト関連データを検索するため、
前記受信したオブジェクト識別子ＯＩＤから前記要求されたオブジェクトに関連するサブテーブルのテーブル識別子ＴＩＤを算出するステップと、
前記ルートテーブルに到達するまで逐次レベルの親テーブル識別子ＰＩＤを算出することにより、前記受信したオブジェクト識別子ＯＩＤに符号化された前記テーブルパスを判定するステップと、
前記判定されたテーブルパスにおいて前記テーブルからオブジェクトデータを取り出すステップと、
前記データクエリに応答して前記取り出されたデータを返送するステップと
を備えることを特徴とする請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
前記要求されたオブジェクトに関連する前記サブテーブルの前記テーブル識別子ＴＩＤは、ＴＩＤ＝ｍｏｄ（ＯＩＤ，２k）として算出される
ここで、ｋは、前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ＯＩＤは前記受信したオブジェクト識別子であることを特徴とする請求項５に記載の方法。
【請求項７】
親テーブル識別子ＰＩＤの各々は、現在のテーブル識別子ＴＩＤを最大素因数で除算することで算出されることを特徴とする請求項５又は６に記載の方法。
【請求項８】
新しいサブテーブルを前記データベースに追加するため、
親テーブルの前記テーブル識別子ＰＩＤに次に使用可能な素数を乗算することで前記新しいサブテーブルに対するテーブル識別子ＴＩＤを算出するステップと、
前記算出されたテーブル識別子ＴＩＤが２kを下回らない場合、ｋを１だけ増分し、前記新しいｋに従って前記データベースに格納されたオブジェクトの前記オブジェクト識別子ＯＩＤを更新するステップと、
ここで、ｋは前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数である；
前記算出されたテーブル識別子ＴＩＤを使用して前記新しいサブテーブルを前記データベースに追加するステップと
を更に備えることを特徴とする請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
ルートテーブルと、前記ルートテーブルの下の多数の階層レベルで編成された複数の事前定義されたサブテーブルとを含む階層データベース（７０２）においてオブジェクト関連データを処理するように構成されたデータベース装置（７００）であって、ここで各テーブルはオブジェクトデータを格納できる１つ以上の属性を含む；
各サブテーブルの親テーブルと関連付けられた一連の素数を乗算することで生成されたテーブル識別子ＴＩＤを前記サブテーブルに割り当てるように構成される構成機能（７０８）と、
種々の連続したレベルで階層的に接続されたサブテーブルのパスの前記テーブル識別子ＴＩＤがオブジェクト識別子ＯＩＤに符号化されるように、前記データベースにおいて前記オブジェクト識別子ＯＩＤを各オブジェクトに割り当て、前記接続されたサブテーブルの前記オブジェクトに関するデータを前記テーブルパスに格納するように構成された格納機能（７０４）と、
を備えることを特徴とするデータベース装置（７００）。
【請求項１０】
前記構成機能（７０８）は、前記親テーブルの次に使用可能な素数に隣接レベルのサブテーブルの親テーブルの前記親テーブル識別子ＰＩＤを乗算することで、当該サブテーブルに対して前記テーブル識別子ＴＩＤを生成するように更に構成されることを特徴とする請求項９に記載の装置。
【請求項１１】
前記格納機能（７０４）は、
前記オブジェクトに関連する識別されたサブテーブル及び前記サブテーブルに階層的に接続された親テーブルを含むテーブルパスを判定するように構成された判定モジュール（７０４ａ）と、
前記判定された関連するサブテーブルの前記テーブル識別子ＴＩＤから算出された前記オブジェクトにオブジェクト識別子ＯＩＤを割り当てるように構成された割り当てモジュール（７０４ｂ）と、
前記パスの前記テーブルに前記データ及び前記オブジェクト識別子ＯＩＤを格納するように構成された格納モジュール（７０４ｃ）と
を含むことを特徴とする請求項９又は１０に記載の装置。
【請求項１２】
前記割り当てモジュールは、前記オブジェクト識別子ＯＩＤをＯＩＤ＝２k・ｎ＋ＴＩＤとして算出するように更に構成され、
ここで、ｋは、前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ｎは、前記判定された関連するサブテーブルのオブジェクトに対する順序番号である
ことを特徴とする請求項１１に記載の装置。
【請求項１３】
前記受信したオブジェクト識別子ＯＩＤに基づいて、要求されたオブジェクトのオブジェクト識別子ＯＩＤに関するデータクエリが受け取られる場合に探索すべきテーブルを判定するように構成された探索機能７０６を更に含むことを特徴とする請求項９乃至１２のいずれか１項に記載の装置。
【請求項１４】
前記探索機能（７０６）は、
前記受け取ったオブジェクト識別子ＯＩＤから前記要求されたオブジェクトに関連するサブテーブルのテーブル識別子ＴＩＤを算出するように構成された算出モジュール（７０６ａ）と、
前記ルートテーブルに到達するまで逐次レベルの親テーブル識別子ＰＩＤを算出することにより、前記受け取ったオブジェクト識別子ＯＩＤに符号化されたテーブルパスを判定するように構成された判定モジュール（７０６ｂ）と、
前記判定されたテーブルパスにおいて前記テーブルからオブジェクトデータを取り出し、前記データクエリに応答して前記取り出されたデータを返送するように構成された検索モジュール（７０６ｃ）と
を含むことを特徴とする請求項１３に記載の装置。
【請求項１５】
前記算出モジュール（７０６ａ）は、前記要求されたオブジェクトに関連する前記サブテーブルの前記テーブル識別子ＴＩＤをＴＩＤ＝ｍｏｄ（ＯＩＤ，２k）として算出する
ここで、ｋは、前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ＯＩＤは前記受信したオブジェクト識別子であることを特徴とする請求項１４に記載の装置。
【請求項１６】
前記判定モジュール（７０６ｂ）は、現在のテーブル識別子ＴＩＤを最大素因数で除算することで親テーブル識別子ＰＩＤの各々を算出するように更に構成されることを特徴とする請求項１４又は１５に記載の装置。
【請求項１７】
前記構成機能（７０８）は、
親テーブルの前記テーブル識別子ＰＩＤに前記親テーブルの次に使用可能な素数を乗算することで前記データベースに追加される新しいサブテーブルに対するテーブル識別子ＴＩＤを算出するように構成された算出モジュール（７０８ａ）と、
前記算出されたテーブル識別子ＴＩＤが２kを下回らない場合、ｋを１だけ増分し、前記新しいｋに従って前記データベースに格納されたオブジェクトの前記オブジェクト識別子ＯＩＤを更新するように構成される更新モジュール（７０８ｂ）と、
ここで、ｋは前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数である；
前記算出されたテーブル識別子ＴＩＤを使用して前記新しいサブテーブルを前記データベースに追加するように構成された追加モジュール（７０８ｃ）と
を含むことを特徴とする請求項９乃至１６のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データベースにおいてデータを効率的に格納し、検索する方法及び装置に関する。
【背景技術】
【０００２】
大量のデータが、種々のオブジェクト毎に、データベースに格納される場合においては、特定のオブジェクトに関するデータクエリ又はデータ要求を受け取る際に関連するデータを容易に検索できるようにデータを編成することが有用である。格納データは、階層構造の種々のクラス又はカテゴリに論理的に配置されるあらゆる種類のオブジェクト情報に関連する。例えば項目、資産、エンティティ等の他の用語が更に使用されてよいが、本明細書中では「オブジェクト」という用語が使用される。そのようなデータベースに存在するオブジェクトのいくつかの実際の例は、メディア項目、販売品、電気通信加入者等である。
【０００３】
一般に複数の属性が各オブジェクトに関連し、そのような属性を示すデータは、データクエリに応答して検索できるデータベースに格納される。実際には、一般に属性は、データベースの１つ以上のテーブルにおいて列を形成する。本明細書において、「属性」という用語は、オブジェクトを説明することに関連するあらゆる主題、態様又は特徴を示す。属性は、一般的なものであっても固有のものであってもよい。
【０００４】
例えば、メディア項目は、「動画」及び「静止画」のクラスに分割され、更に「動画」は、「映画」、「スポーツ」及び「ドキュメンタリ」等のクラスに分割される。このように、種々のクラスは、データベースのテーブルが示せる階層構造を形成できる。各クラスは、そのクラスに関連する１つ以上の属性と関連付けられる。
【０００５】
図１は、オブジェクトに対するデータを論理的に編成できる種々のクラスの階層構造を概略的に示す。階層の最上位は、「Ｉｎｆｏ  １」、「Ｉｎｆｏ  ２」、「Ｉｎｆｏ  ３」．．．と示された属性を含む「ルートクラス」である。これらの属性は、メディア項目の例を使用してデータベースの全てのオブジェクトに関連する一般的又は「抽象的」なデータ、例えばタイトル、説明、言語、入力データ等を示す。オブジェクトアイデンティティ「オブジェクトＩＤ」は、このクラスのフィールドにおいて更に特定され、データを探索するための主キーとして使用できる各オブジェクトを識別する。例として、ルートクラスを「資産クラス(asset class)」と呼ぶ。
【０００６】
次のレベルは、それぞれ、「Ｉｎｆｏ  Ａ１」、「Ｉｎｆｏ  Ａ２」、「Ｉｎｆｏ  Ａ３」．．．及び「Ｉｎｆｏ  Ｂ１」、「Ｉｎｆｏ  Ｂ２」、「Ｉｎｆｏ  Ｂ３」．．．を示す属性を含む２つのサブクラスＡ及びＢを含む。各サブクラスの属性は、そのサブクラスに適合するオブジェクトのみに関連する。再度メディア項目の例を使用すると、サブクラスＡは動画を示し、その属性は符号化、持続時間、色等を示し、静止画を示すサブクラスＢは、例えば幅、高さ、解像度、形式等の他の関連する属性を有する。
【０００７】
同様に、次のレベルのサブクラスＡＡ及びサブクラスＡＢは、サブクラスＡの下に編成され、各々が１つ以上のサブクラス別の属性を有する映画及びスポーツをそれぞれ示す。全てのサブクラスＡ、Ｂ、ＡＡ、ＢＢ．．．は、オブジェクトＩＤフィールドを有し、それぞれのサブクラスに適合するオブジェクトを識別する。
【０００８】
今日、一般にリレーショナルデータベースは、上述のクラスに基づく階層的な方法で編成可能なデータを保持するために使用される。しかし、オブジェクト又はクラス定義をデータベーステーブルにマッピングすることは、問題と関連付けられる。この問題は「オブジェクトに関連するインピーダンス不整合」と呼ばれるものである。以下において、リレーショナルデータベースの分野で一般に使用される３つの異なる手法を簡単に説明する。
【０００９】
１）単一のテーブルが、クラス階層全体の全てのサブクラス及び属性に対して使用される。その為、そのテーブルは、データベースにおいて使用される全ての属性に対する列(columns)などを含む。図１の例において、テーブルは、全てのサブクラスにおいて全ての属性Ｉｎｆｏｒ  １−３、Ｉｎｆｏ  Ａ１−Ａ３、Ｉｎｆｏ  Ｂ１−Ｂ３、Ｉｎｆｏ  ＡＡ１−ＡＡ３、Ｉｎｆｏ  ＡＢ１−ＡＢ３．．．に対する列を含むため、一般にテーブルは多数の列がある。従って、データクエリは、オブジェクトに対するデータを検索する際に１つのテーブル探索しか必要としない。一方、一般に単一のテーブルは非常に大きくなるため、データベースの可読性及び性能は低くなる。また、多くの属性がオブジェクトに無関係であることが多いため、多くの列は空となり、すなわちヌル値を含む。従って、データベースの多くの空間は未使用のままであり、データベースは必要以上の大きさとなる。オブジェクトの種類を示すためにデータベースにおいて追加の識別情報が更に必要である。
【００１０】
２）１つのテーブルが、各サブクラスに対して使用され、且つ、そのサブクラスに適合するオブジェクトに関連する全ての属性を含み、それらの属性はそのサブクラスに接続する全ての上位クラスの属性を含む。図１の例において、サブクラスＡＡに対するテーブルは、属性Ｉｎｆｏ  ＡＡ１−ＡＡ３、Ｉｎｆｏ  Ａ１−Ａ３、Ｉｎｆｏ  １−３に対する列を含み、サブクラスＡＢに対するテーブルは、属性Ｉｎｆｏ  ＡＢ１−ＡＢ３、Ｉｎｆｏ  Ａ１−Ａ３、Ｉｎｆｏ  １−３に対する列を含む。この手法の利点は、オブジェクトに対する全てのデータが同一のテーブルに格納され、他のテーブルでの探索が不要になることである。一方、オブジェクトに対してデータが格納されるテーブルは認識されていないため、探索されたオブジェクトに対してデータが見つけられるまでテーブルを１つずつ探索しなければならない。また、例えば上述の例のように多くの属性が多数のテーブルに存在するため、データが重複することにより多くの冗長が発生し、データベースはこの手法においても必要以上の大きさとなる。
【００１１】
３）１つのテーブルがサブクラス毎に使用され、そのサブクラスの属性のみを含むため、冗長及びデータの重複を回避する。しかし、この手法において、種々のクラスが階層構造において互いに接続される方法は明らかではない。オブジェクトのデータを探索する場合、探索を開始する場所は認識されていないが階層の知識を使用して、探索のためにテーブルを選択でき且つ他のテーブルを無視できる。多くのテーブルは依然としてヌル結果をもたらし、これは、非常に時間がかかり、処理リソースを浪費にする。
【００１２】
データベースにおいてテーブルを使用する上述の３つの手法において、３つ目の手法のみがテーブル間で情報を結合する必要がある。しかし、上述したように、いずれの手法も記憶空間を有効に使用できず、迅速な探索もできない。従って、特定のオブジェクトに関する示すデータクエリ又はデータ要求に応答して関連するデータを検索するために大量の格納データを探索しなければならず、それには時間がかかり、多くの処理リソースが必要であるため、問題である。別の問題は、上述の冗長及び格納データの重複の結果、データベースが過度な大きさになることである。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、上述した問題のうちの少なくともいくつかに対処することである。更なる目的は、データベースにおける重複及び冗長を回避でき、それと同時に必要以上の処理遅延及びデータベースを探索する負荷を回避するデータベースの解決策を得ることである。添付の独立請求項に記載の方法及び装置を使用することでこれらの目的及び他の目的を実現できる。
【課題を解決するための手段】
【００１４】
一態様によれば、各々がオブジェクトデータを格納できる１つ以上の属性を含むルートテーブルと、前記ルートテーブルの下の多数の階層レベルで編成された複数の事前定義されたサブテーブルとを含む階層データベースにおいてオブジェクト関連データを処理する方法が提供される。この方法において、テーブル識別子ＴＩＤは、各サブテーブルに割り当てられる。ここで、テーブル識別子ＴＩＤは、前記サブテーブルの親テーブルと関連付けられた一連の素数を乗算することで生成される。更にオブジェクト識別子ＯＩＤは、種々の連続したレベルで階層的に接続されたサブテーブルのパスのテーブル識別子ＴＩＤがオブジェクト識別子ＯＩＤに符号化されるようにデータベースにおいて各オブジェクトに割り当てられる。オブジェクトに関するデータは、適宜テーブルパスに接続されたサブテーブルに格納される。
【００１５】
これにより、複数のテーブル繰り返される属性に起因するデータベースにおける格納データの重複及び冗長を回避できる。同時に、探索されるオブジェクトに対して有効なテーブル及び有効なテーブルパスをオブジェクト識別子ＯＩＤに符号化することでオブジェクトに関するデータが見つけられると予想される場所にデータの探索を限定できるため、処理遅延及びデータベースを探索する負荷を最小限にできる。
【００１６】
別の態様によれば、上述の階層データベースにおいてオブジェクト関連データを処理するように構成される装置が提供される。データベース装置は、各サブテーブルの親テーブルと関連付けられた一連の素数を乗算することで生成されたテーブル識別子ＴＩＤを前記サブテーブルに割り当てるように構成された構成機能を含む。データベース装置は、種々の連続したレベルで階層的に接続されたサブテーブルのパスのテーブル識別子ＴＩＤがオブジェクト識別子ＯＩＤに符号化されるようにデータベースにおいてオブジェクト識別子ＯＩＤを各オブジェクトに割り当て、接続されたサブテーブルの前記オブジェクトに関するデータをテーブルパスに格納するように構成された格納機能を更に含む。
【００１７】
上述の方法及びデータベース装置は、種々の実施形態に従って構成され、実現される。一実施形態において、テーブル識別子ＴＩＤは、前記親テーブルの次に使用可能な素数に隣接レベルのサブテーブルの親テーブルの親テーブル識別子ＰＩＤを乗算することでそのサブテーブルに対して生成される。それにより、テーブルパスは、素数の因数分解を用いてオブジェクト識別子ＯＩＤとして使用された単一の番号に容易に符号化される。
【００１８】
別の実施形態において、オブジェクトに関連するデータは、前記オブジェクトに関連する識別されたサブテーブル及び前記サブテーブルに階層的に接続された親テーブルを含むテーブルパスを判定し、判定された関連するサブテーブルのテーブル識別子ＴＩＤから算出されたオブジェクトにオブジェクト識別子ＯＩＤを割り当て、前記パスのテーブルにデータ及びオブジェクト識別子ＯＩＤを格納することでデータベースに格納される。
【００１９】
オブジェクト識別子ＯＩＤは、ＯＩＤ＝２k・ｎ＋ＴＩＤのように算出される。式中、ｋは、データベース階層においてテーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ｎは、判定された関連するサブテーブルのオブジェクトに対する順序番号である。このように、テーブル識別子ＴＩＤはオブジェクト識別子ＯＩＤに符号化され、全ての親テーブル識別子ＰＩＤは、その素因数分解でそのテーブル識別子ＴＩＤから判定される。
【００２０】
更なる実施形態において、要求されたオブジェクトのオブジェクト識別子ＯＩＤに関するデータクエリを受け取る場合、受け取ったオブジェクト識別子ＯＩＤから要求されたオブジェクトに関連するサブテーブルのテーブル識別子ＴＩＤを算出することでデータベースからオブジェクト関連データを検索できる。次に、受け取ったオブジェクト識別子ＯＩＤに符号化されたテーブルパスは、ルートテーブルに到達するまで逐次レベルの親テーブル識別子ＰＩＤを算出することで判定される。その後オブジェクトデータは、判定されたテーブルパスにおいてテーブルから取り出され、取り出されたデータは、最終的にデータクエリに応答して返送される。
【００２１】
要求されたオブジェクトに関連するサブテーブルのテーブル識別子ＴＩＤは、ＴＩＤ＝ｍｏｄ（ＯＩＤ，２k）のように算出される。式中、ｋは、データベース階層においてテーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ＯＩＤは受け取ったオブジェクト識別子である。また、親テーブル識別子ＰＩＤの各々は、現在のテーブル識別子ＴＩＤを最大素因数で除算することで算出される。
【００２２】
更なる実施形態において、新しいサブテーブルは、親テーブルのテーブル識別子ＰＩＤに次に使用可能な素数を乗算することで新しいサブテーブルに対するテーブル識別子ＰＩＤを算出することによりデータベースに追加される。算出されたテーブル識別子ＴＩＤが２kを下回らない場合、ｋは１だけ増分され、データベースに格納されたオブジェクトのオブジェクト識別子ＯＩＤは新しいｋに従って更新される。ｋは、データベース階層においてテーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数である。新しいサブテーブルは、算出されたテーブル識別子ＴＩＤを使用してデータベースに追加される。
【００２３】
本発明の更なる可能な特徴及び利点は、以下の詳細な説明から明らかとなるだろう。
【００２４】
次に、例示的な実施形態を使用し、添付の図面を参照して、本発明を更に詳細に説明する。
【図面の簡単な説明】
【００２５】
【図１】図１は、オブジェクト情報の種々のクラスを含む例示的な階層構造を示す図である。
【図２】図２は、可能な一実施形態に従って論理探索機能によりデータクエリを処理できる方法を示す概略ブロック図である。
【図３】図３は、可能な別の実施形態に係る例示的なデータベース構造を示す概略図である。
【図４】図４は、更なる例示的な実施形態に従ってオブジェクトデータをデータベースに格納する論理格納機能により実行されるステップを含むフローチャートである。
【図５】図５は、更なる例示的な実施形態に従ってデータベースにおいてオブジェクトデータを探索する論理探索機能により実行されるステップを含むフローチャートである。
【図６】図６は、更なる例示的な実施形態に従って新しいテーブルをデータベースに追加する論理構成機能により実行されるステップを含むフローチャートである。
【図７】図７は、更なる例示的な実施形態に従ってデータベースに接続された論理格納機能、論理探索機能及び論理構成機能を含む装置を更に詳細に示すブロック図である。
【発明を実施するための形態】
【００２６】
先ず簡潔に説明すると、種々の論理的なクラス又はカテゴリと関連付けられたテーブルを階層的に配置してオブジェクトデータを効率的に格納し、データベースから迅速に検索できる解決策が提供される。各テーブルは、データを種々のオブジェクトに対して格納できる列、或るい同等のものに配置された１つ以上の属性を含む。データベースは、基本的に上述の手法３）に従って、すなわちそのサブクラスの属性のみを含むサブクラス毎にたった１つのテーブルを使用して構成される。この場合、多数のテーブルにおける属性及び格納データは必ずしも重複しない。従って、データベースは、例えば階層において最上位レベルにルートテーブル及び続いて下位層に多数のサブテーブルを含む図１に示された方式に従って、テーブルの階層構造において論理的に編成される。本明細書において使用される専門用語によれば、「親テーブル」は、階層構造において１つ以上の従属サブテーブルが接続されたテーブルである。従って、各サブテーブルは親テーブルに接続される。
【００２７】
本発明の解決策において、オブジェクト識別子(object identifier)「ＯＩＤ」が、データベースに格納された各オブジェクトに割り当てられ、特定のオブジェクトに関連する相互接続された全てのサブテーブルのアイデンティティがそのオブジェクトのＯＩＤに効果的に符号化される。従って、探索に関連するテーブルは要求されたオブジェクトのＯＩＤのみから判定でき、更なるテーブルを探索する必要がないため、基本的にあらゆる不要な探索が回避される。同時に、探索されるオブジェクトに関連しないテーブルは探索対象から免れる。
【００２８】
また、データベースにおける各テーブルには、以下の通りオブジェクト識別子ＯＩＤに符号化可能な番号のテーブル識別子「ＴＩＤ」が割り当てられている。一連の素数を乗算することで各ＴＩＤが生成される。そのため、親テーブルに接続されたサブテーブルのＴＩＤは、「次に使用可能な素数」、すなわち親テーブルに接続された他のあらゆるサブテーブルを生成するためにまだ使用されていない素数に、その親テーブルのＴＩＤを乗算することで生成される。以下において、これについて例を用いて更に詳細に説明する。
【００２９】
従って、或る親テーブルに接続された全てのサブテーブルは、親テーブルの最大素因数(gretest prime number factor)より大きい素因数を有さなければならず、各素数は、親テーブルが従属サブテーブルを生成するために一度だけ使用される。例えば、素数７、１１及び１３がＴＩＤ＝５を有する特定の親テーブルに接続される３つの特定のサブテーブルのＴＩＤを生成するために使用されている場合、次に使用可能な素数は１７であり、新しいサブテーブルのＴＩＤは、１７に親テーブルのＴＩＤを乗算することで生成される。その結果、ＴＩＤ＝５・１７＝８５となる。従って、ＴＩＤ＝５を含む親テーブルに接続された他の３つのサブテーブルは、それぞれＴＩＤ＝５・１３＝６５、ＴＩＤ＝５・１１＝５５及びＴＩＤ＝５・７＝３５を有する。このようにＴＩＤを生成することにより、データベースの各テーブルは、一意のＴＩＤを割り当てられる。
【００３０】
データベース構造及びテーブルの階層は予め決められているため既知であり、所定のオブジェクトに最も関連する（最下位の）サブテーブルを論理的に判定できると仮定する。オブジェクトのデータは、最下位の最も関連するサブテーブルが接続される親テーブルに更に格納される。それにより、相互接続されたテーブルのパス(path)における全てのテーブルが所定のオブジェクトに対して有効であるため、そのオブジェクトのＯＩＤに関するデータクエリが実行される場合は常に探索されなければならない連続階層レベルでそのテーブルパスを形成する。しかし、データを格納する際にオブジェクトに最も関連するサブテーブルを論理的に識別する処理は本発明の範囲外である。
【００３１】
従って、最初にオブジェクトに最も関連するサブテーブルを論理的に識別又は判定し、次に、以下のようにオブジェクトに対してＯＩＤを生成するためにそのサブテーブルのＴＩＤを使用することにより、ＯＩＤをオブジェクトに割り当てられる。
ＯＩＤ＝２k・ｎ＋ＴＩＤ                              （１）
【００３２】
式（１）において、ｋは、データベース階層全体においてＴＩＤの最大値として２kを設定するように選択された整数であり、ｎは、判定された関連するサブテーブルのオブジェクトに対する順序番号である。従って、例えば、サブテーブルＴＩＤに格納された第１のオブジェクトはｎ＝１を有し、そのサブテーブルの第２のオブジェクトはｎ＝２を有する。実際には、パラメータｋは、ＴＩＤの最大値を格納するために必要なビット数である。例えば、値２５６を示すために８個のバイナリビットを使用できるため、ｋ＝８の場合に最大ＴＩＤ＝２５６である。データベースの新しいテーブルに対してＴＩＤ＞２５６である必要がある場合、ｋは１だけ増分されなければならないため、格納されたオブジェクトに対して既に生成されているＯＩＤに影響を及ぼす。その結果、データベースにおいてより高いＴＩＤ値に「空間」を与えるようにｋが増分される場合は常に、データベースに既に格納されたオブジェクトのＯＩＤは、式（１）の新しいｋ値に従って更新されなければならない。
【００３３】
次に、図２を参照して、論理探索機能によりデータクエリを処理できる方法を説明する。探索機能２００は、以下のように、オブジェクトデータに対する探索クエリ又は探索要求を受け取ると、階層データベース２０２においてオブジェクトデータを探索するように構成される。データベース２０２は、基本的に上述したように構成される。
【００３４】
探索されるオブジェクトのＯＩＤに関する探索クエリを受信した場合、探索機能２００は、ブロック２０４に示されるように、おそらく要求されたオブジェクトに最も関連する（最下位の）サブテーブルを示す、受け取ったＯＩＤに符号化された最大ＴＩＤ値を判定する。上述したように素数を乗算することでデータベースの全てのＴＩＤが生成されているため、ＯＩＤに符号化された最大ＴＩＤ値は、以下のように算出される。
ＴＩＤ＝ｍｏｄ（ＯＩＤ，２k）                                （２）
式中、「ｍｏｄ」は、ＯＩＤを２kで除算した後の整数剰余を判定する剰余演算子である。
【００３５】
次に探索機能２００は、ブロック２０６に示されるように、第１のＴＩＤを生成する素数を識別することで相互接続されたサブテーブルのパスにおいて全てのより低いＴＩＤを抽出する。上述したようにサブテーブルＴＩＤの各々が親テーブルＴＩＤから生成されているため、すなわち「次に使用可能な素数」に親テーブルのＴＩＤを乗算することで生成されているため、この演算は可能である。基本的に、上述のブロック２０４で（２）により判定されたＴＩＤは、ブロック２０６で因数分解された素数である。
【００３６】
テーブルパスにおいて全てのテーブルＴＩＤが判定されている場合、データは、ブロック２０８に示されるように、それに応じてデータベース２０２においてオブジェクトを探索する。そのオブジェクトのデータがパス外の他のあらゆるテーブルに存在することは予想できないため、このような探索は判定されたパスのテーブルだけに限定される。従って、判定されたテーブルパスは、ＯＩＤに符号化される時にオブジェクトに対して有効である。最終的に、ブロック２１０に示されるように、探索結果、すなわち見つけられたデータをクエリ要求側に返送できる。
【００３７】
図３は、階層において最上位レベル３００にルートテーブル及び続いて下位層３０２、３０４、３０６．．．に多数のサブテーブルを含むテーブルの階層構造で編成されたデータベースに対するＴＩＤ方式を示す。テーブルのＴＩＤは示されたスポット内に与えられる。そして、基礎となるＴＩＤを生成するために使用された素数は、それぞれの接続矢印で与えられる。ルートテーブルはＴＩＤ＝１を有し、以下のレベル３０２で示された３つのサブテーブルは、一連の素数、すなわち２、３及び５に１を乗算することで生成され、結果としてそれぞれＴＩＤ２、３及び５となるＴＩＤを有する。次のレベル３０４において、４つのサブテーブルは、一連の素数、すなわち３、５、７及び１１に２を乗算することで生成され、結果としてそれぞれＴＩＤ６、１０、１４及び２２となるＴＩＤを有する親テーブル２に接続される。
【００３８】
例えば、ＴＩＤの同様の計算は、一連の素数、すなわち５、７、１１及び１３に３を乗算することで生成され、結果としてそれぞれＴＩＤ１５、２１、３３及び３９となるＴＩＤを有する親テーブル３に接続された４つのサブテーブルに対して行われている。尚、各ＴＩＤは、次に使用可能な素数、すなわち親テーブルに接続された他のあらゆるサブテーブルに対して使用されていない素数をその親テーブルのＴＩＤに乗算することで生成される。従って、基礎となるＴＩＤを生成するために使用された各素数が各親テーブルに対して１回だけ使用されるため、「次に使用可能な素数」という用語は、ＴＩＤがデータベースの全てのテーブルに対して一意となることを保証する。
【００３９】
次に、図４のフローチャートを参照して、新しいオブジェクトに関連するデータをデータベースに格納する例示的な手順を説明する。この手順は、データベース装置においてデータベースに接続された「データ格納機能」等により実行される。データベースは、ルートテーブルと、ルートテーブルの下の多数の階層レベルで編成された複数の事前定義されたサブテーブルとを含み、各テーブルは、オブジェクトデータを格納できる１つ以上の属性を含むと仮定する。上述したようにそれぞれの親テーブルと関連付けられた一連の素数を乗算することで生成されているテーブル識別子ＴＩＤは、各サブテーブルに割り当てられていると更に仮定する。
【００４０】
第１のステップ４００において、オブジェクトに関連したデータは、データベースに格納するために受け取られる。次のステップ４０２において、オブジェクト及び割り当てられたＴＩＤに最も関連するサブテーブルは、基本的にデータ格納機能において受け取られる。オブジェクトに最も関連するサブテーブルを識別することは、データベースにおいてオブジェクトの特性及び事前定義されたサブテーブルの定義に依存する論理演算である。関連するサブテーブルを識別する演算は、ある程度管理者により手動で、あるいは予め設定された論理に従って、例えばオブジェクトの種類及び／又は格納されるデータに基づいて自動的に実行される。しかし、この演算の詳細は本発明の範囲外である。
【００４１】
最も関連するサブテーブル及び割り当てられたＴＩＤが決められると、階層において続いて上位層に相互接続された親テーブルを含む有効なテーブルパスは、後続のステップ４０４で関連するサブテーブルのＴＩＤから判定される。本明細書において、親テーブルに対するＴＩＤは、親テーブル識別子「ＰＩＤ」とも示される。親テーブルは、親テーブル識別子ＰＩＤの各々が現在のテーブル識別子ＴＩＤを最大素因数で除算することで１つずつ算出されるように判定される。図３の例示的なテーブル構造を使用すると、最も関連するテーブルが例えば第４の階層レベル３０６に配置されるＴＩＤ＝２３１を有するサブテーブルとして識別されている場合、最大素因数を１１として判定できる結果、ＴＩＤ＝２３１／１１＝２１を含む親テーブルが得られる。また、このサブテーブルが最大素因数として７を有する結果、ＴＩＤ＝２１／７＝３を含む次の親テーブルが得られる。ルートテーブルに到達すると、このテーブルパスの判定は基本的に終了する。
【００４２】
更なるステップ４０６において、ＯＩＤは、オブジェクトに割り当てられ、上記のステップ４０２で識別された最も関連するサブテーブルのＴＩＤを入力として使用する上記の式（１）を用いて算出される。上述したように、ｋは、データベース階層全体においてＴＩＤの最大値として２kを設定するように選択された整数であり、ｎは、判定された関連するサブテーブルのオブジェクトに対する順序番号である。順序番号ｎは、テーブルにおいて一意のオブジェクト番号、例えばそのテーブルにおいて他のあらゆる前のオブジェクトに対して使用されない次に使用可能な番号としてオブジェクトに対して設定される。最終的に、ステップ４０８において、ステップ４００で受け取ったオブジェクトデータ及びステップ４０６で算出され且つ割り当てられたＯＩＤは、適宜ステップ４０４で判定されたテーブルパスのテーブルに格納される。尚、格納できるデータに依存して、このステップにおいてパスのテーブルの全ての属性にデータを入力する必要はない。
【００４３】
次に、図５のフローチャートを参照して、データベースにおいて新しいオブジェクトに関連するデータを探索する例示的な手順を説明する。この手順は、データベース装置においてデータベースに接続された「データ探索機能」等により実行される。ここでも、データベースは、各々が１つ以上の属性を含むルートテーブルと、ルートテーブルの下のサブテーブルとを含むと仮定する。上述したように素数を乗算することで生成されたテーブル識別子ＴＩＤは、各サブテーブルに割り当てられていると更に仮定する。
【００４４】
第１のステップ５００において、オブジェクトのＯＩＤに関するデータクエリは、クエリ要求側から受け取られる。次のステップ５０２において、オブジェクトに最も関連するテーブルのＴＩＤは、上記の式（２）を使用することで、受け取ったＯＩＤから算出される。その結果、ＯＩＤに符号化された最も高いＴＩＤ値が得られる。例えば、ｋが１０に設定されている場合、２k＝１０２４である。受け取ったＯＩＤが４３６９である場合、ｍｏｄ（ＯＩＤ，２k）＝２７３である。これは、ＯＩＤ／２k＝４３６９／１０２４＝４＋２７３／１０２４の時の整数剰余である。従って、ＴＩＤ＝２７３であり、レベル３０６の第２のテーブルとして図３にも偶発的に存在する。１３が２７３の最大素因数であるため、ＴＩＤ＝２７３の親テーブルをＰＩＤ＝２７３／１３＝２１として識別できる。
【００４５】
更なるステップ５０４において、算出されたＴＩＤの最大素因数が判定され、第１のサブテーブルに接続された親テーブルの次のＰＩＤは、先に算出されたＴＩＤを最大素因数で除算することでそこから算出される。次にステップ５０６において、ルートテーブルに既に到達したかが判定される。まだ到達していない場合、ステップ５０４に戻り、次のＰＩＤは、引き続き先に算出されたＰＩＤに最大素因数を除算することで算出される。従って、ステップ５０４及び５０６は、ルートテーブルに到達するまで親テーブルを１つずつ見つけるように繰り返される。
【００４６】
ステップ５０６で最終的にルートテーブルに到達したことが分かると、有効なテーブルパスの判定が完了し、次のステップ５０８で算出されたＴＩＤ／ＰＩＤに従ってパスにおいてテーブルからオブジェクトデータを探索し、取り出せる。上述したように、判定されたテーブルパスにある以外のあらゆるテーブルを探索する必要はない。その後、最後に示されるステップ５１０において、取り出されたオブジェクトのデータはクエリ要求側に返送される。
【００４７】
次に、図６のフローチャートを参照して、新しいテーブルを追加することでデータベースを拡張する例示的な手順を説明する。この手順は、データベース装置においてデータベースに接続された「データベース構成機能」等により実行される。ここでも、データベースは、各々が１つ以上の属性を含むルートテーブルと、ルートテーブルの下のサブテーブルとを含むと仮定する。上述したように素数を乗算することで生成されたテーブル識別子ＴＩＤは、各サブテーブルに割り当てられていると更に仮定する。
【００４８】
この例において、例えばいくつかの点において既存のテーブル定義と適合しない新しい特徴を有するオブジェクトがデータベースに格納される場合、あるいは特定の既存のテーブルが非常に大量の格納データに実装され、そこでの探索を容易にするために細分化される必要がある場合、新しいテーブルをテーブル階層に追加することが望ましいと更に仮定する。最初に示されるステップ６００において、新しいテーブルに関する情報は、一般に、例えばテーブルに対して名前を設定し、属性を規定することで規定されているデータベース構成機能において受け取られる。この詳細は本発明の範囲外である。新しいデーブルがテーブル階層のどこに位置すべきかが更に判定されている。すなわち、親テーブルが判定されている。
【００４９】
次のステップ６０２において、ＴＩＤは、上述した方法で親テーブルのＰＩＤに次に使用可能な素数を乗算することで新しいテーブルに対して生成される。次に後続のステップ６０４において、生成されたＴＩＤがデータベース階層全体においてＴＩＤの最大値として設定されているパラメータ２kに達しないかをチェックする。
【００５０】
生成されたＴＩＤがステップ６０４でパラメータ２k以上である場合、ステップ６０６で示されるように、ｋは１だけ増分され、すなわちｋ＝ｋ＋１となり、データベースにおいてより大きなＴＩＤに対して更なる「空間」を空け、データベースに既に格納されたＯＩＤは、新たに増分されたｋに基づいて更新されなければならない。上述したように、各ＯＩＤは式（１）に従って算出される。一方、生成されたＴＩＤがステップ６０４でパラメータ２k未満である場合、ｋの現在の値を維持でき、ＯＩＤの更新が必要ないため、ステップ６０６は除外される。最終的に、最後に示されるステップ６０８において、新しいテーブルをデータベースに追加できる。
【００５１】
次に、図７のブロック図を参照して、データベース用の装置を更に詳細に説明する。データベース装置７００は、図７には示されないが、ルートテーブルと、ルートテーブルの下の多数の階層レベルで編成された複数の事前定義されたサブテーブルとを含む階層データベース７０２においてオブジェクト関連データを処理するように構成される。各テーブルは、オブジェクトデータを格納できる１つ以上の属性を含む。データベース装置７００は、上述の手順及び実施形態のいずれかを実行するために使用される。データベース装置７００の種々の機能は、ユニット、ブロック、要素又は構成要素としても見なされるが、本明細書において「モジュール」と呼ばれる。
【００５２】
示されたデータベース装置は、格納機能７０４と、探索機能７０６と、構成機能７０８とを含む。構成機能７０８は、各サブテーブルの親テーブルと関連付けられた一連の素数を乗算することで生成されたテーブル識別子ＴＩＤをそのサブテーブルに割り当てるように構成される。格納機能７０４は、種々の連続したレベルで階層的に接続されたサブテーブルのパスのテーブル識別子ＴＩＤがオブジェクト識別子ＯＩＤに符号化されるようにデータベースにおいてオブジェクト識別子ＯＩＤを各オブジェクトに割り当て、接続されたサブテーブルのオブジェクトに関するデータをテーブルパスに格納するように構成される。
【００５３】
構成機能７０８は、親テーブルの次に使用可能な素数に隣接レベルのサブテーブルの親テーブルの親テーブル識別子ＰＩＤを乗算することでそのサブテーブルに対してテーブル識別子ＴＩＤを生成するように更に構成される。例えば、図３に示されたようなレベル３０６のＴＩＤ＝３９９は、次に使用可能な素数１９にＰＩＤ＝２１を乗算することで生成される。この場合、すなわち２１・１９＝３９９である。
【００５４】
図７において、格納機能７０４は、識別されたサブテーブル及びそのサブテーブルに階層的に接続された親テーブルを含むテーブルパスを判定するように構成された判定モジュール７０４ａと、判定された関連するサブテーブルのテーブル識別子ＴＩＤから算出されたオブジェクトにオブジェクト識別子ＯＩＤを割り当てるように構成された割り当てモジュール７０４ｂと、パスのテーブルにデータ及びオブジェクト識別子ＯＩＤを格納するように構成された格納モジュール７０４ｃとを含む。
【００５５】
割り当てモジュールは、オブジェクト識別子ＯＩＤをＯＩＤ＝２k・ｎ＋ＴＩＤのように算出するように更に構成される。式中、ｋは、データベース階層においてテーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ｎは、判定された関連するサブテーブルのオブジェクトに対する順序番号である。
【００５６】
示されたデータベース装置は、受け取ったオブジェクト識別子ＯＩＤに基づいて、要求されたオブジェクトのオブジェクト識別子ＯＩＤに関するデータクエリが受け取られる場合に探索すべきテーブルを判定するように構成された探索機能７０６を更に含む。探索機能７０６は、受け取ったオブジェクト識別子ＯＩＤから要求されたオブジェクトに最も関連するサブテーブルのテーブル識別子ＴＩＤを算出するように構成された算出モジュール７０６ａを含む。探索機能７０６は、ルートテーブルに到達するまで逐次レベルの親テーブル識別子ＰＩＤを算出することにより、受け取ったオブジェクト識別子ＯＩＤに符号化されたテーブルパスを判定するように構成された判定モジュール７０６ｂと、判定されたテーブルパスにおいてテーブルからオブジェクトデータを取り出し、データクエリに応答して取り出されたデータを返送するように構成された検索モジュール７０６ｃとを更に含む。
【００５７】
算出モジュール７０６ａは、最も関連するサブテーブルのテーブル識別子ＴＩＤをＴＩＤ＝ｍｏｄ（ＯＩＤ，２k）のように算出するように更に構成される。式中、ｋは、データベース階層においてテーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ＯＩＤは受け取ったオブジェクト識別子である。判定モジュール７０６ｂは、現在のテーブル識別子ＴＩＤを最大素因数で除算することで各親テーブル識別子ＰＩＤを算出するように更に構成される。
【００５８】
構成機能７０８は、親テーブルのテーブル識別子ＰＩＤに親テーブルの次に使用可能な素数を乗算することでデータベースに追加される新しいサブテーブルに対するテーブル識別子ＴＩＤを算出するように構成された算出モジュール７０８ａを含む。構成機能７０８は更新モジュール７０８ｂを更に含む。算出されたテーブル識別子ＴＩＤが２kを下回らない場合、更新モジュール７０８ｂは、ｋを１だけ増分し、新しいｋに従ってデータベースに格納されたオブジェクトのオブジェクト識別子ＯＩＤを更新するように構成される。ｋは、データベース階層においてテーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数である。構成機能７０８は、算出されたテーブル識別子ＴＩＤを使用して新しいサブテーブルをデータベースに追加するように構成された追加モジュール７０８ｃを更に含む。
【００５９】
尚、当業者は、適切なソフトウェア手段及びハードウェア手段を使用して実際にこれらの機能を自由に実現するが、図７は、論理的な意味でデータベース装置における種々の機能ユニット又は機能モジュールを示すだけである。従って、一般に本発明は示されたそれぞれの機能７０４、７０６及び７０８の構造に限定されず、機能モジュール７０４ａ〜７０４ｃ、７０６ａ〜７０６ｃ及び７０８ａ〜７０８ｃは、適宜図２〜図６に対して上述した方法及び手順に従って動作するように構成される。
【００６０】
特定の例示的な実施形態を参照して本発明を説明したが、一般に明細書は、本発明の概念を示すことだけを意図し、本発明の範囲を限定するものとして解釈されるべきではない。本発明は添付の請求の範囲により規定される。
【図１】
2013516017.tif 000003
【図２】
2013516017.tif 000004
【図３】
2013516017.tif 000005
【図４】
2013516017.tif 000006
【図５】
2013516017.tif 000007
【図６】
2013516017.tif 000008
【図７】
2013516017.tif 000009
【手続補正書】
【提出日】平成23年10月24日(2011.10.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ルートテーブルと、前記ルートテーブルの下の多数の階層レベルで編成された複数の事前定義されたサブテーブルとを含む階層データベースにおいてオブジェクト関連データを処理する方法であって、ここで、各テーブルはオブジェクトデータを格納できる１つ以上の属性を含む、
テーブル識別子ＴＩＤが各サブテーブルに割り当てられ、
ここで、前記テーブル識別子ＩＤは前記サブテーブルの親テーブルと関連付けられた一連の素数を乗算することで生成される；
種々の連続したレベルで階層的に接続されたサブテーブルのパスの前記テーブル識別子ＴＩＤがオブジェクト識別子ＯＩＤに符号化されるように、前記データベースにおいて各オブジェクトに前記オブジェクト識別子ＯＩＤが割り当てられ、
ここで、前記オブジェクトに関するデータが前記テーブルパスにおいて前記接続されたサブテーブルに格納される
１つのサブテーブルに対するテーブル識別子ＴＩＤは、隣接レベルにおける当該サブテーブルの親テーブルの親テーブルＰＩＤと該親テーブルの次に使用可能な素数とを乗算することで生成され、
要求されたオブジェクトのオブジェクト識別子ＯＩＤに関するデータクエリを受信した場合に前記データベースからオブジェクト関連データを検索するため、
前記受信したオブジェクト識別子ＯＩＤから前記要求されたオブジェクトに関連するサブテーブルのテーブル識別子ＴＩＤを算出するステップと、
前記ルートテーブルに到達するまで逐次レベルの親テーブル識別子ＰＩＤを算出することにより、前記受信したオブジェクト識別子ＯＩＤに符号化された前記テーブルパスを判定するステップと、
前記判定されたテーブルパスにおいて前記テーブルからオブジェクトデータを取り出すステップと、
前記データクエリに応答して前記取り出されたデータを返送するステップと
を備えることを特徴とする方法。
【請求項２】
オブジェクトに関連するデータを前記データベースに格納するため、
前記オブジェクトに関連する識別されたサブテーブル及び前記サブテーブルに階層的に接続された親テーブルを含むテーブルパスを判定するステップと、
前記判定された関連するサブテーブルの前記テーブル識別子ＴＩＤから算出された前記オブジェクトにオブジェクト識別子ＯＩＤを割り当てるステップと、
前記パスの前記テーブルに前記データ及び前記オブジェクト識別子ＯＩＤを格納するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記オブジェクト識別子ＯＩＤは、ＯＩＤ＝２k・ｎ＋ＴＩＤとして算出される、
ここで、ｋは、前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ｎは、前記判定された関連するサブテーブルのオブジェクトに対する順序番号である
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記要求されたオブジェクトに関連する前記サブテーブルの前記テーブル識別子ＴＩＤは、ＴＩＤ＝ｍｏｄ（ＯＩＤ，２k）として算出される
ここで、ｋは、前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ＯＩＤは前記受信したオブジェクト識別子であることを特徴とする請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
親テーブル識別子ＰＩＤの各々は、現在のテーブル識別子ＴＩＤを最大素因数で除算することで算出されることを特徴とする請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
新しいサブテーブルを前記データベースに追加するため、
親テーブルの前記テーブル識別子ＰＩＤに次に使用可能な素数を乗算することで前記新しいサブテーブルに対するテーブル識別子ＴＩＤを算出するステップと、
前記算出されたテーブル識別子ＴＩＤが２kを下回らない場合、ｋを１だけ増分し、前記新しいｋに従って前記データベースに格納されたオブジェクトの前記オブジェクト識別子ＯＩＤを更新するステップと、
ここで、ｋは前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数である；
前記算出されたテーブル識別子ＴＩＤを使用して前記新しいサブテーブルを前記データベースに追加するステップと
を更に備えることを特徴とする請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
ルートテーブルと、前記ルートテーブルの下の多数の階層レベルで編成された複数の事前定義されたサブテーブルとを含む階層データベース（７０２）においてオブジェクト関連データを処理するように構成されたデータベース装置（７００）であって、ここで各テーブルはオブジェクトデータを格納できる１つ以上の属性を含む；
各サブテーブルの親テーブルと関連付けられた一連の素数を乗算することで生成されたテーブル識別子ＴＩＤを前記サブテーブルに割り当てるように構成される構成機能（７０８）と、
種々の連続したレベルで階層的に接続されたサブテーブルのパスの前記テーブル識別子ＴＩＤがオブジェクト識別子ＯＩＤに符号化されるように、前記データベースにおいて前記オブジェクト識別子ＯＩＤを各オブジェクトに割り当て、前記接続されたサブテーブルの前記オブジェクトに関するデータを前記テーブルパスに格納するように構成された格納機能（７０４）とを備え、
前記構成機能（７０８）は、前記親テーブルの次に使用可能な素数に隣接レベルのサブテーブルの親テーブルの前記親テーブル識別子ＰＩＤを乗算することで、当該サブテーブルに対して前記テーブル識別子ＴＩＤを生成するように更に構成され、
前記データベース装置は、前記受信したオブジェクト識別子ＯＩＤに基づいて、要求されたオブジェクトのオブジェクト識別子ＯＩＤに関するデータクエリが受け取られる場合に探索すべきテーブルを判定するように構成された探索機能７０６を更に含み、
当該探索機能７０６は、
前記受け取ったオブジェクト識別子ＯＩＤから前記要求されたオブジェクトに関連するサブテーブルのテーブル識別子ＴＩＤを算出するように構成された算出モジュール（７０６ａ）と、
前記ルートテーブルに到達するまで逐次レベルの親テーブル識別子ＰＩＤを算出することにより、前記受け取ったオブジェクト識別子ＯＩＤに符号化されたテーブルパスを判定するように構成された判定モジュール（７０６ｂ）と、
前記判定されたテーブルパスにおいて前記テーブルからオブジェクトデータを取り出し、前記データクエリに応答して前記取り出されたデータを返送するように構成された検索モジュール（７０６ｃ）と
を含むことを特徴とするデータベース装置（７００）。
【請求項８】
前記格納機能（７０４）は、
前記オブジェクトに関連する識別されたサブテーブル及び前記サブテーブルに階層的に接続された親テーブルを含むテーブルパスを判定するように構成された判定モジュール（７０４ａ）と、
前記判定された関連するサブテーブルの前記テーブル識別子ＴＩＤから算出された前記オブジェクトにオブジェクト識別子ＯＩＤを割り当てるように構成された割り当てモジュール（７０４ｂ）と、
前記パスの前記テーブルに前記データ及び前記オブジェクト識別子ＯＩＤを格納するように構成された格納モジュール（７０４ｃ）と
を含むことを特徴とする請求項７に記載の装置。
【請求項９】
前記割り当てモジュールは、前記オブジェクト識別子ＯＩＤをＯＩＤ＝２k・ｎ＋ＴＩＤとして算出するように更に構成され、
ここで、ｋは、前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ｎは、前記判定された関連するサブテーブルのオブジェクトに対する順序番号である
ことを特徴とする請求項８に記載の装置。
【請求項１０】
前記算出モジュール（７０６ａ）は、前記要求されたオブジェクトに関連する前記サブテーブルの前記テーブル識別子ＴＩＤをＴＩＤ＝ｍｏｄ（ＯＩＤ，２k）として算出する
ここで、ｋは、前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数であり、ＯＩＤは前記受信したオブジェクト識別子であることを特徴とする請求項７乃至９のいずれか１項に記載の装置。
【請求項１１】
前記判定モジュール（７０６ｂ）は、現在のテーブル識別子ＴＩＤを最大素因数で除算することで親テーブル識別子ＰＩＤの各々を算出するように更に構成されることを特徴とする請求項７乃至１０のいずれか１項に記載の装置。
【請求項１２】
前記構成機能（７０８）は、
親テーブルの前記テーブル識別子ＰＩＤに前記親テーブルの次に使用可能な素数を乗算することで前記データベースに追加される新しいサブテーブルに対するテーブル識別子ＴＩＤを算出するように構成された算出モジュール（７０８ａ）と、
前記算出されたテーブル識別子ＴＩＤが２kを下回らない場合、ｋを１だけ増分し、前記新しいｋに従って前記データベースに格納されたオブジェクトの前記オブジェクト識別子ＯＩＤを更新するように構成される更新モジュール（７０８ｂ）と、
ここで、ｋは前記データベース階層において前記テーブル識別子ＴＩＤの最大値として２kを設定するように選択された整数である；
前記算出されたテーブル識別子ＴＩＤを使用して前記新しいサブテーブルを前記データベースに追加するように構成された追加モジュール（７０８ｃ）と
を含むことを特徴とする請求項７乃至１１のいずれか１項に記載の装置。
【国際調査報告】
2013516017.tif 000010
2013516017.tif 000011
2013516017.tif 000012