JP5410514B2 - X500データモデルをリレーショナル・データベースにマッピングするための方法 - Google Patents

X500データモデルをリレーショナル・データベースにマッピングするための方法 Download PDF

Info

Publication number
JP5410514B2
JP5410514B2 JP2011512116A JP2011512116A JP5410514B2 JP 5410514 B2 JP5410514 B2 JP 5410514B2 JP 2011512116 A JP2011512116 A JP 2011512116A JP 2011512116 A JP2011512116 A JP 2011512116A JP 5410514 B2 JP5410514 B2 JP 5410514B2
Authority
JP
Japan
Prior art keywords
entry
attribute
rdb
static
rdn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011512116A
Other languages
English (en)
Other versions
JP2011523750A (ja
Inventor
ジョゲ,フランソワ
ジャフェット,グイ
Original Assignee
アルカテル−ルーセント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2011523750A publication Critical patent/JP2011523750A/ja
Application granted granted Critical
Publication of JP5410514B2 publication Critical patent/JP5410514B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の技術分野は、データベースの分野である。データベースは、データを保存、変更、検索、分析するために、データを実用的な方法で収集し、編成することが知られている。
データベース編成のいくつかのパラダイムが知られている。データは、オブジェクトの形式で提供され、各オブジェクトは、データの一部で、前記オブジェクトに関連する複数のアトリビュートを集めたものであり、各アトリビュートは、名前またはタイプと、値とを含む。
最も使用されているパラダイムの1つが、リレーショナル・データベースRDBである。リレーショナル・データベースでは、データは、関係とも名付けられた、テーブル内に保存される。列の名前は、アトリビュートの名前であり、各オブジェクトは、テーブル内の行に対応し、前記行は、対応するアトリビュートの値を含む。
リレーショナル・データベースは、よく知られるようになってから久しい。リレーショナル・データベースは、データを保存するための強力な方法であることを証明した。リレーショナル・データベースは、世界中でよく使用されており、そのようなデータベースを管理するために、多くのツールおよびシステムが利用可能である。また、そのようなデータベースおよび関連ツールを作成、管理、または使用するために、多くのデータベース技術者が育成されている。例えば、SQL問い合わせ言語がよく知られており、よく使用されている。
しかし、リレーショナル・パラダイムは、構成が複雑なデータを扱う場合に、いくぶん制約的であるように思え、より精巧なセマンテックを用いて前記複雑さを表現するツールを提供するために、新しいパラダイムが開発された。X500は、データベース所有者およびユーザの好評を得ることが多い、これらの代替パラダイムの1つである。X500は、データベースの編成を記述する場合に、より豊富なシンタックスを可能にする。X500は、標準化されている。X500は、データベースの管理者が、そのデータの構造を容易に記述することを可能にする、よりユーザ・フレンドリな手法を提供する。UMLという知られた言語を使用して、X500仕様を設計することも可能である。
RDB世界およびX500世界はともに、独自の利点を有し、2つの世界から恩恵を得ることができれば有利である。その場合、X500データモデルからリレーショナル・データベース・モデルへのマッピングを提供できることが関心事となる。
時間的性能を必要とし、大量のデータを扱う電気通信アプリケーションによって使用されるために、ソリューションが束縛を受けるという事実に由来する他の制約は、直接的なRDB使用と同等な性能を提供する能力と、全体的なデータベース・サイズの可能な限りの最適化である。
国際公開第96/07147号(米国特許第6052681号明細書)は、この問題に対するソリューションを説明している。しかし、X500情報が、RDBテーブルに統合される。これは、データベース・サイズに関して、大きなオーバヘッドを引き起こす。さらに、1つのX500アクセスが、多くのデータベース・アクセスをトリガし、したがって、性能を低下させる。
米国特許出願公開第2006/0173873号明細書では、仮想ディレクトリ・サービス(virtual directory service)を使用する、階層/リレーショナル変換システム(hierarchical/relational translation system)が説明されている。
米国特許第6823338号明細書では、X500アクセス制御データをリレーショナル・データベースにマッピングするための方法が説明されている。
米国特許第5333317号明細書では、X500データベース内で検索を行う方法が説明されている。
しかし、これらの方法はどれも、与えられた制約のすべてを満たすことはない。
国際公開第96/07147号(米国特許第6052681号明細書) 米国特許出願公開第2006/0173873号明細書 米国特許第6823338号明細書 米国特許第5333317号明細書
本発明は、RDBのX500モデル・ビューを提供することによって、この問題に対処し、この問題を解決する。データ・オブジェクトを管理する基礎的なRDBに基づいて、オブジェクトがあたかもX500モデルに従って編成されているかのようにオブジェクトをユーザに示す、マッピング・インタフェースが提供される。ユーザは、オブジェクトがあたかもX500オブジェクトであるかのように、オブジェクトにアクセスし、オブジェクトを管理する。その場合、マッピング・システムが、透過的な方法でRDB管理システムとインタフェースをとるうえで必要なすべてのアクションを提供する。
本発明の主要な独自のアイデアは、データを保存するために、標準的なリレーショナル・データベースを使用または作成し、X500モデルの構造に関係する情報を別途保存して有するというものである。そのようにすることで、データベースは、マッピング方法によって修正または影響されず、データベースのサイズは、有用なデータのサイズにのみ依存する。さらに、X500エンティティとリレーショナル・データベースのスキーマおよびデータとの間の関係を表す、X500モデルとリレーショナル・データベース・モデルとの間のマッピングに関係する情報が提供される。
本発明の目的は、少なくとも1つのエントリと、少なくとも1つのオブジェクトクラスと、ディレクトリ情報ツリー(directory information tree)DITとを含むX500データモデルであって、エントリが、少なくとも1つのアトリビュートを含み、アトリビュートが、タイプと、値とを含み、前記エントリは、1つのオブジェクトについての情報を集めたものであり、オブジェクトクラスが、前記オブジェクトを記述するエントリ内に存在する前記アトリビュートのタイプを定義するモデルであり、前記DIT内の頂点が、エントリであり、各エントリが、識別名(distinguished name)DNを含み、DNが、前記DIT内の前記ペアレントのエントリのDNと、相対識別名(relative distinguished name)RDNとを併せて含み、RDNが、前記エントリに固有の1つの特別に指名されたアトリビュートを含む、X500データモデルを、リレーショナル・テーブルを含むリレーショナル・データベースRDBであって、各テーブルが、いくつかの名付けられた列を含み、これらの列のいくつかが、オブジェクトデータを一意的に識別する値を含む主キー(primary key)であり、オブジェクトデータが、行内に保存される、RDBに、マッピングするための、コンピュータ・システムにおける、方法であって、
各々がそのアトリビュートからなるリストを含む、オブジェクトクラスを構築するステップと、
各々がそのタイプを含む、アトリビュートを構築するステップと、
可変値がすべて除去されたRDNである、スタティックRDNのみを含むDNである、スタティックDN(static DN)SDNのみを含むスタティック・ディレクトリ情報ツリー(static directory information tree)SDITを構築するステップと、
X500データをRDBにマッピングするステップであって、
X500オブジェクトクラスをRDBテーブルに、
X500アトリビュートをRDBテーブルの列に
関連付け、前記テーブルの列の名前を前記X500アトリビュートとともに、前記アトリビュートをポイントするアドレスとして保存することによって、マッピングするステップと
を含む方法である。
本発明の別の特徴によれば、オブジェクトクラスを構築するステップ、アトリビュートを構築するステップ、およびスタティック・ディレクトリ情報ツリーを構築するステップは、X500仕様から前記要素をそれぞれ抽出することによって行われる。
本発明の別の特徴によれば、オブジェクトクラスを構築するステップ、アトリビュートを構築するステップ、およびスタティック・ディレクトリ情報ツリーを構築するステップは、RDBの分析からこれらの要素を生成することによって行われる。
本発明の別の特徴によれば、RDBにマッピングされるX500の、エントリのDNによって定義されるエントリに対するアクセス/リクエスト、個別にはアトリビュートが属するエントリのDNと前記アトリビュートとによって定義されるエントリのアトリビュートに対するアクセス/リクエストは、
すべての可変値を前記DNから除去することによって、前記エントリのDNからスタティックDN SDNを構築するステップと、
スタティックDIT SDITをフェッチして、一致するスタティックDNを見出すステップと、
前記一致するスタティックDNのアトリビュートから、前記エントリのアトリビュートのすべてに対応する、個別には前記アトリビュートに対応する、テーブルの列のマッピング・アドレスを抽出するステップと、
前記マッピング・アドレスを含むRDBリクエストを作成するステップと、
リクエストを実行するステップと、
前記リクエストの結果を取得するステップと
を含む。
本発明の他の特徴、詳細、および利点は、図面に関連する、これ以降で行われる詳細な例示的説明からより明らかになろう。
マッピング方法のUML図である。 X500モデルの編成のUML図である。 許容される/許容されないトポロジの例を示す図である。 X500 DITの階層的編成を示す図である。 RDBの一例を示す図である。 DITの一例を示す図である。 X500モデルを示す、処理の一例を示す図である。 エントリ用に生成されたXMLコードを示す、処理の一例を示す図である。 図8aの続きを示す図である マッピング情報用のXMLコードを示す、処理の一例を示す図である。 RDBテーブル生成用のXMLコードを示す、処理の一例を示す図である。 エントリを生成し、データベースにデータを入力するためのXMLコードを示す、処理の一例を示す図である。 第1のクエリのサンプルを示す、処理の一例を示す図である。 第2のクエリのサンプルを示す、処理の一例を示す図である。
最初に、X500モデルの特徴が説明される。X500モデルは、ディレクトリ情報ベース(directory information base)DIBに基づいている。DIBおよびその構造は、ITU−T勧告X501−ISO/IEC 9594−2において定義されている。本発明を理解可能にするため、これ以下で、X500の主要な特徴が説明される。
DIBは、オブジェクトについての情報から構成される。DIBは、(ディレクトリ)エントリから構成され、エントリの各々は、1つのオブジェクトについての情報の集まりから成る。各エントリは、アトリビュートから構成される。各アトリビュートは、タイプと、1つの値とを有する。DIBのエントリは、ディレクトリ情報ツリーDITという、ツリーの形に配列され、ツリーの頂点が、エントリを表す。ツリー内のより高位の(ルートにより近い)エントリは、しばしば国または組織などのオブジェクトを表し、ツリー内のより低位のエントリは、人々またはアプリケーション・プロセスを表す。
例えば、エントリ{C=GB,L=Winslow,O=Graphic Services,CN=Laser Printer}は、地域(Locality)という地理的アトリビュートを有する、アプリケーション・エンティティ「Laser Printer」を識別する。前記エントリは、4つのアトリビュートから構成される。第1のアトリビュートC=GBは、間を「=」記号でつないで、CというタイプがGBという値を有することを示しており、オブジェクトの(国を表す)Cについて通知する。
図3は、DITの異なるトポロジを示している。DITは、上3つの構成1、2、3によって示されるように、ツリー構造をとらなければならない。下2つの構成4、5は、ツリー構造をとっておらず、DITでは有効な構成ではない。
図4は、多くの頂点/エントリ7を含む、DIT 6の一例を示している。エントリ7が、複数のアトリビュート8を含む様子が詳細に示されている。さらに、アトリビュート8が、タイプ9/値10の組から構成される様子も詳細に示されている。
すべてのエントリ7は、エントリ7を一意的に曖昧さを残さずに識別する、識別名DNを有する。識別名DNのこれらの特性は、情報のツリー構造から引き出される。エントリ7の識別名DNは、その上位エントリの識別名DNと、相対RNまたはRDNとも呼ばれる、エントリ7に属する特別に指名されたアトリビュート値(識別値)とを併せて構成される。エントリ7のアドレスとも呼ばれる識別名DNは、与えられたDN記述から開始して、DNをインスタンス化(構築)または分析(抽出)する能力を提供する。
図5は、DIT 6の一例を提供している。例示的なエントリ{C=GB,L=Winslow,O=Graphic Services,CN=Laser Printer}は、ツリーの右端最下部に配置されている。エントリの特別に指名されたアトリビュート値は、アトリビュートCN=Laser Printerである。そのため、RDNは、CN=Laser Printerに等しい。ツリーのルートに向かって遡りながら、一連の上位エントリのRDNを追加していくことによって、前記エントリのDNを構築することができる。その場合、1つレベルを上がると、O=Graphic Servicesが追加される。さらに1つレベルを上がると、L=Winslowが追加される。最後に、ルートに到る最終のレベルにおいて、C=GBが追加され、前記エントリの完全なDN:{C=GB,L=Winslow,O=Graphic Services,CN=Laser Printer}が、すべての連続するRDNの合併として提供される。
ディレクトリは、DIBが、時間とともに変更にさらされても、適切な形式を保つことを保証するために、1組のルールを強制する。ディレクトリ・スキーマ(Directory schema)として知られるこれらのルールは、エントリが、そのオブジェクトクラスにとって誤ったタイプのアトリビュートを有すること、アトリビュート値が、アトリビュート・タイプにとって誤った形式をとること、さらにはエントリが、誤ったクラスの下位エントリを有することを防止する。
DIT 6は、データベース内のオブジェクトについてのすべての構造的および階層的情報を含む。DIT 6は、エントリ7のインスタンスをアドレスするために使用される、DNまたはDN記述のシンタックスである、データベースのアドレッシング・スキームである。そのアドレッシング・スキームでは、エントリ7の間に階層的編成が存在する。
X500モデルは、特定のエントリ7内に存在するアトリビュート8のタイプ9についての情報も含む。これらのアトリビュートのタイプは、エントリ7が記述するオブジェクトのクラスに依存する。オブジェクトクラスは、与えられたエントリ7内に存在する前記アトリビュートのタイプを定義するモデルである。オブジェクトクラスは、機能的に一緒に結合されるアトリビュート8の論理グルーピングを表し、アトリビュート8のこのグループ内における論理的制約を表すように定義される。DITを定義するDNに加えて与えられる、オブジェクトクラスの仕様が、エントリ7の構築を可能にする。エントリ7は、1つまたは複数のオブジェクトクラスのインスタンス化、すなわち、オブジェクトクラスによって与えられるアプリケーション・スキーマに準拠した1組のアトリビュート8である。
一例として、以下の行は、2つの例示的なオブジェクトクラスを定義する。

ObjectClass="AuthorIdentity" Attributes="name,country"
ObjectClass="BookDescription" Attributes="title,publisherId""

第1のオブジェクトクラスAuthorIdentityは、nameおよびcountryの2つのアトリビュートを含む。著者エントリのインスタンス化は、オブジェクトクラスAuthorIdentityを有利に使用することができる。前記著者の著書目録を扱う場合、前記著者によって書かれた本の各々をインスタンス化するために、オブジェクトクラスBookDescriptionを使用することができる。
例えば、名前:{C=GB,L=Winslow,O=Graphic Services,CN=Laser Printer}は、アプリケーション・エンティティ「Laser Printer」を識別し、そのエンティティは、その識別名内に地域という地理的アトリビュートを有する。その名前が{C=GB,L=Winslow,CN=John Jones}である、住人John Jonesも、その識別名内に同じ地理的アトリビュートを有する。その場合、地理的アトリビュートをオブジェクトクラスにすると有利なことがある。
図2は、X500モデルの構成と、様々なエンティティ間の関係とからなるUML図を提供している。
X500モデルにおいてアドレス可能なエンティティは、エントリ7と、エントリ内のアトリビュート8である。オブジェクトクラスは、そのようにアドレス可能ではない。オブジェクトクラスは、機能的に一緒に結合されるアトリビュートの論理グルーピングと、アトリビュート8のこのグループ内における論理的制約(必須、任意)を表すにすぎない。
次に、リレーショナル・データベースRDBの特徴が説明される。図5は、そのようなRDBのサンプルを示している。リレーショナル・データベース・モデルは、以下の基本概念に基づいており、すなわち、データは、関係の集まりとして提示され、各関係は、テーブル11として表され、列14は、それらのタイトル13によって表されるアトリビュートであり、行15が、オブジェクトに相当する。すべてのテーブル11は、各オブジェクトを一意的に識別する「キー」として一緒に採用された、1組のアトリビュート13を有する。
図5のサンプルは、RDBとして編成され、著者、書名、出版社、および著者_書名というタイトル12によって表される4つのテーブル11を備える、データベースを示している。オブジェクトは、行15内に配置される。例えば、書名テーブル11のオブジェクト/行15は、列タイトル13として示される5つのアトリビュート13を含む。書名テーブル11の第4の行15は、その値が「BU7832」である、タイプ「title_id」のアトリビュート13を有する。同じ行15は、その値が「Straight Talk About Computers」である「title」アトリビュート、その値が「business」である「type」アトリビュート、その値が「19.99」である「price」アトリビュート、その値が「1389」である「pub_id」アトリビュートも有する。
リレーショナル・データベースにおけるキーは、2つの目的を有し、すなわち、キーとして機能する1つまたは複数の列を選択することによってデータベースから情報を迅速に検索し、最終的に情報をキー値によってソートする。データベース管理システムDBMSは、キーフィールドの内容と対応する行15のロケーションのみを含むインデックスを生成し、テーブル11の構造的完全性(structural integrity)を維持し、重複レコード/オブジェクトおよび列13内における値の競合などの問題を回避するのに役立てる。
とりわけキーの中でも、主キーは、テーブル11内のオブジェクトまたは行15を一意的に識別する。学生テーブルでは、例えば、last name+first nameから構築されたキーは、一意的な識別子を与えることができない(例えば、学校に2人以上のJane Doesが在籍する場合)。各学生を一意的に識別するため、特別なStudent IDフィールドを追加して、主キーとして使用することができる。
これは、図5において与えられたリレーショナル・データベースの例においても行われており、著者関係11の主キーとしてau_id(著者Id)を有している。この例では、172−32−1176というIdを有する新しい著者を挿入しようとする試みは、au_idが主キーであり、すでに顧客172−32−1176が存在するので、データベースの設計に違反する。DBMSは、完全性制約の違反によってデータベースを不整合にする、そのようなトランザクションを拒絶しなければならない。
外部キー(foreign key)は、関連するテーブル内の主キーの値を表すために、1つのテーブル11において使用されるキーである。主キーは一意的な値を含まなければならないが、外部キーは重複を有することができる。例えば、学生テーブルにおける主キーとしてstudent IDを使用する(各学生が一意的なIDを有する)場合、student IDを講義(Courses)テーブルにおける外部キーとして使用することができ、各学生は、2つ以上の講義を履修することができるので、講義テーブルにおけるstudent IDフィールド(しばしばCourses.student IDと略記される)は、重複値を有する。外部キーは、アトリビュート・セットの値が別の関係における候補キーから引き出されることを強制する、完全性制約である。例えば、図5の例の書名関係11では、アトリビュートpub_idは、出版社関係における出版社記述へのアクセスを提供する外部キーである。
X500モデルおよびリレーショナル・モデルの特徴についての先の説明から、RDBはデータを構造化するために関係/テーブルしか提供せず、したがって、X500モデルよりも貧弱なシンタックスしか提供しないことが導かれる。X500モデルをRDBデータベースにマッピングする場合、第1に、データについての構造情報を提供しなければならず、第2に、X500モデルのアドレッシング・エンティティを参照して、オブジェクトをRDB内のどこに、どのテーブル内に保存するかについてのマッピング情報を提供しなければならない。
DIT 6は、X500エントリ7の階層的編成の静的表現である。DIT 6は、エントリ7が階層的な方法でどのように編成されなければならないかを定義する。この階層的編成は、各エントリ7のネーミングによって提供される。
X500データモデルのすべてのエントリは、識別名DNによって名付けられる。X500データモデルは、エントリの階層的ツリーであるDIT 6として編成されるので、各エントリ7は、そのペアレント・エントリとの関連において名付けられる。この名前は、エントリ7のペアレントに関連するので、相対識別名RDNと呼ばれる。DIT 6は、X500エントリの階層的編成の静的表現である。DIT 6は、エントリが階層的な方法でどのように編成されなければならないかを定義する。X500データモデルの階層的ツリーは、共通のルートを有する。
エントリ7の識別名DNは、エントリ7のRDNと、階層的ツリーのルートへと遡るそのすべての一連のペアレントのRDNとの系列から構成される。DNは、X500ツリーの各エントリ7を一意的に識別する。エントリ7のDNから、存在するならば、それが含むエントリのDNを取り出すことができ、同様の操作を順次繰り返すことができる。この包含関係は、DNによって伝達される唯一の関係である。他の関係をDNによって伝達または暗示することはできない。DNは、例えば、文字列表現を使用して符号化することができる。
DNの文字列表現に関する最も重要な制限は、RDNが多値データであることはできないことである。
その他の点では、出力は、RDN系列内の各RDNを、系列の第1の要素から開始して、最後の要素に向かって進みながら符号化していった文字列から成る。
RDN文字列表現は、以下のように、シングルトン(singleton)AttributeTypeAndValueの文字列符号化から成り、
AttributeTypeAndValueは、AttributeTypeの文字列表現の後に等号文字(「=」、ASCII 61)が続き、その後にAttributeValueの文字列表現が続いたものとして符号化される。「,」は、RDNの間のセパレータとして使用することができる。空白およびピリオドは、以下の例、すなわち、CN=John T. Mills,O= Cyber System Consulting,L=Goteborg,C=SEにおけるように、RDNの合法的な文字シンタックスの一部として使用することができる。
これは、各エントリ7に対する一意的なDNを含むDNのリストによって、DITのツリー構造を記述することを可能にする。これは、扱いに便利な表現である。図7は、DIT 6と等価な、DNの形式をとるエントリのサンプル・リスティングを含む。この例は、後で詳細に説明される。
ソフトウェア・アプリケーションが、X500ビューとリレーショナル・ビューの間のマッピングを任される。前記アプリケーションは、X500モデルをRDBにマッピングするのに必要なすべての情報を抽出し、管理する。
このマッピングは、
X500オブジェクトクラスがRDBテーブルにマッピングされ、
X500アトリビュートがテーブルの列にマッピングされる、
X500ビューとリレーショナル・スキーマの間の静的マッピングを含む。
動的マッピングに関して、エントリまたはDNによって示されるデータ・オブジェクトのローディングは、対応するテーブルの列内の対応する行/レコードの検索に対応する。エントリまたはアトリビュートの生成または更新または削除を扱う場合、それはそれぞれ、対応するテーブル内の対応する行/レコードの生成または更新または削除に対応する。
X500データモデル内の各エントリについて、エントリがマッピングされるリレーショナル・データベース・テーブルのリストばかりでなく、対応するオブジェクトクラスのマッピングも知らなければならない。各オブジェクトクラスのデータがどの列にマッピングされるかを知らなければならない。
エントリがマッピングされるすべてのテーブルにアクセスするために、このエントリのDNからキー・アトリビュートの値を推測することもできなければならない。
これらのすべてのマッピング記述は、与えられたエントリに関するリクエストをリレーショナル・データベース・テーブル上で適切な1組のリクエストにマッピングすることを可能にするために必要である。
X500データモデルでは、いずれのオブジェクトクラスにおいて定義されたどのアトリビュートも、リレーショナル・データモデルにおけるリレーショナル・テーブルの列名にマッピングされなければならない。
いずれのエントリにおいて定義されたどのオブジェクトクラスも、リレーショナル・データモデルにおけるリレーショナル・テーブルにマッピングされなければならない。
DNシンタックス(DN syntax)DNSは、与えられたエントリをアドレスするために使用されるDNの構造を定義する。DNシンタックスは、エントリがマッピングされる対応するテーブルを見出し、受け取ったDN内のアトリビュートをこれらのテーブルの対応するキー・アトリビュートにマッピングするために、ソフトウェア・アプリケーションによって使用される。
DNシンタックスDNSは、RDN記述(相対識別名記述)の系列から構成され、RDNの各アトリビュートは、適切な場合は、すなわち、RDNが可変値を有する/変数である場合は、リレーショナル・テーブルのキー・アトリビュートにマッピングされる。
1つのDNシンタックスDNSは、唯一のエントリに関連付けられ、1つのエントリは、唯一のDNシンタックスを使用して、アドレスされる。
系列の各RDN記述は、対応するRDNアトリビュートの名前と、RDNが定数値、例えば、OU=CAMELなどの編成単位(organisation unit)を有する場合には、その定数の値とを指示するべきである。
さもなければ、適切な場合は、異なるキー・アトリビュートへのマッピングの記述は、キー・アトリビュートに対応する列の名前と、使用するシンタックスまたは言語に応じて必要な場合は、テーブルの名前とを指示する。
RDNは、以下のいずれか、すなわち、
<RDN attributeName=“Name of a constant attribute: for example “OU””>
<VAL> value of the constant </VAL>
</RDN>

または

<RDN attributeName=“Name of the RDN attribute”
columnName=“Name of the corresponding key attribute of the table”/>
</RDN>

とすることができる。
例としてすでに定義されたX500およびリレーショナル・データモデルに基づいたDN記述の一例が、以下に提供される。

<DNSyntax name="Author_DN">
<RDN attributeName="authorld" columnName="au_id"/>
<RDN attributeName="OU">
<Val>BookshopOnLine</Val>
</RDN>
</DNSyntax>

<DNSyntax name="Title_DN">
<RDN attributeName="isbn" columnName="title_id''/>
<RDN attributeName="OU">
<Val>BookshopOnLine</Val>
</RDN>
</DNSyntax>

<DNSyntax name="Publisher_DN">
<RDN attributeName="publisherld" columnName="pub_id"/>
<RDN attributeName="OU">
<Val>BookshopOnLine</Val>
</RDN>
</DNSyntax>
その場合、定数RDNと可変RDNとを区別することが重要に思える。
RDNは常に、タイプおよび値を有するアトリビュートに対応する。定数RDNでは、値は定数である。可変RDNでは、値は変数である。定数RDNは、例えば、OUまたは編成単位を定義することができる。そのような定数RDNは、エントリの階層的編成を定義し、DIT内に出現する。代わりに、可変RDNは、エントリをインスタンス化することを可能にし、RDBモデルにおけるテーブルの列にマッピングされなければならない。
図1は、マッピング・プロセスと、含まれるすべてのエンティティの間の対話のUML記述を提供している。
本発明による方法は、
各々がそのアトリビュートからなるリストを含む、オブジェクトクラスを構築するステップと、
各々がそのタイプを含む、アトリビュートを構築するステップと、
可変値がすべて除去されたRDNである、スタティックRDNのみを含むDNである、スタティックDN SDNのみを含むスタティック・ディレクトリ情報ツリーSDITを構築するステップと、
X500データをRDBにマッピングするステップであって、
X500オブジェクトクラスをRDBテーブルに、
X500アトリビュートをRDBテーブルの列に
関連付け、前記テーブルの列の名前を前記X500アトリビュートとともに、前記アトリビュートをポイントするアドレスとして保存することによって、マッピングするステップと
を含む。
アトリビュートを構築するステップおよびオブジェクトクラスを構築するステップは、データの類型(typology)を獲得するうえで重要である。これは一般に、X500モデルに存在し、RDBモデルには存在しない特徴である。
X500モデルのみに存在する別の要点は、エントリの階層である。これは、DIT 6には含まれるが、RDBビューでは消滅し、その等価物も見出すことができない。エントリの前記階層を獲得する1つの方法は、DIT 6を保つことである。本発明の重要な特徴は、DIT全体ではなく、階層を表す一部のみが保たれることである。有利には、スタティック・ディレクトリ情報ツリーSDITのみを保つために、DIT 6のすべての可変部分を排除することができる。そのようなSDITは、可変値がすべて除去されたRDNである、スタティックRDNのみを含むDNである、スタティックDN SDNのみを含む。その除去の後、異なるエントリはそれらの値が異なるにすぎないので、多数の同一のスタティックDNが出現することがある。各々について1つのSDNのみが保たれる。この「静的化(statification)」は、SDITのサイズを大きく減少させる。SDITは、後で説明されるように、データベースへの問い合わせにも適合される。例えば、先の例のDN:{C=GB,L=Winslow,O=Graphic Services,CN=Laser Printer}では、このエントリの4つのRDNは可変RDNであるので、対応するスタティックDNは、{C=,L=,O=,CN=}となる。
その結果、データ・オブジェクトを含むRDBは、類型情報、すなわち、オブジェクトクラスおよびアトリビュートによって、トポロジ/階層情報、すなわち、スタティックDITによって「増強」される。これらの情報は、問い合わせに対してデータベースをスキャンするために使用することができる。
別の情報もマッピング・アプリケーションによって維持されなければならず、それはマッピング・アドレス自体である。X500データは、X500オブジェクトクラスをRDBテーブルに関連付けることによって、RDBにマッピングされる。このことは、後で説明されるように、データベース自体の実装に関して重要である。しかし、X500データとRDBデータの間の実際のリンクは、X500アトリビュートをRDBテーブルの列にマッピングすることによって維持される。これは、前記テーブルの列の名前を前記X500アトリビュートとともに保存することによって実施することができる。その場合、そのような名前は、前記アトリビュートをポイントするアドレスとして使用することができる。有利には、これは、先に構築されたアトリビュート内に、またはスケルトンSDIT(skeleton SDIT)内にも保存することができる。
これらすべての要素が定義されると、マッピング・アプリケーションを介して、X500データベースとして、基礎的なRDBを見ること、および基礎的なRDBにアクセスすること、ならびにマッピング・アドレスを用いて、2つの世界の要素を結び付けることが可能となる。
そのようなマッピング・アプリケーションに達するには、データベースの来歴に応じて、2つの開始ポイントが存在し得る。
第1の開始ポイントは、請求項3に対応し、すでに構成され、データが入力された既存のRDBを前提とする。既存性を利用するため、RDBはあるがままに保たれ、X500モデルが、X500ビューをユーザに提供するために追加されなければならない。
第2の開始ポイントは、請求項2に対応し、既存のRDBではなく、データの既存のX500編成と、RDB管理ツールを使用しようという意思を前提とするが、RDBデータベースは、構築され、データが入力されることになっている。
第2のポイントにおいては、データの編成は、X500モデル内に含まれる。前記モデルは、すべての情報、すなわち、オブジェクトクラスと、アトリビュートと、DITまたはSDITとを提供する。これらの情報は、前記モデルから抽出される必要があるだけである。DITにはデータベースの全エントリが「投入」される必要はなく、階層的編成の仕様は、スタティックDITの形で、データベース作成者によって直接与えられ得ることに留意されたい。DITにデータが入力されている場合、すなわち、DITが入力済のX500データベースに対応する場合であっても、DITを最初に「静的化」することができる。
RDBは既存ではないので、X500編成に合致するようにRDBをあつらえ、将来のマッピングを容易にすることが可能である。その場合、RDBテーブルは、各オブジェクトクラスに対して生成される。このテーブルの列は、そのアトリビュートのリストによって定義される。その後、オブジェクトクラスに従ってテーブルを生成し、テーブルの名前およびテーブルの列を対応するアトリビュートに保存することによって、マッピングが行われる。
その後、RDB直接アクセスを介して直接的に、またはX500ビューを用いるマッピング・アプリケーションを介して、RDBにデータを入力することができる。入力済のDITまたはX500完成データベースから開始する場合、すべてのデータが既知の方法で移転されなければならない。
第1のポイントにおいては、すべてが既存のRDBから開始する。問題は、RDBが類型情報または階層情報をまったく含まないという事実から生じる。その場合、2つの選択肢が、管理者に提供される。
第1の選択肢は、必要とされる情報、すなわち、オブジェクトクラス、アトリビュート、およびSDITを、RDBから自動的に引き出すことから成る。これは、例えば、各テーブルに対するオブジェクトクラス、そのようなテーブルの各列に対するアトリビュート、およびDITを構築することによって行うことができる。階層情報は、RDB内で見出すことができないので、自動的に生成することができない。その場合、スタティックRDBは生成されず、SDITは、ルートを含み、すべてのエントリが前記ルートに直接結合された、1レベルのツリーから成る。
第2の選択肢は、データベースの編成を増強するために、マッピングの機会を利用する。その場合、データベース管理者は、いくつかの階層レベルを追加して、多数の追加されたレベルを有するSDITを生成することができる。そのような操作は、データをどのように編成すべきかを知っているオペレータによって手動で行われなければならない。最初はそのような情報が存在しないので、追加されなければならず、すべての一貫性がチェックされなければならない。
それらがどのような方法で獲得されたとしても、今からは、すべてのマッピング情報が利用可能であり、マッピング・アプリケーションが動作する準備ができたと見なせる。そのようなマッピング・アプリケーションは、以下のようにして使用される。
目的は、ユーザにはX500を提供しながら、RDB内に保存されたオブジェクトにアクセスすることである。与えられたエントリにアクセスすることを望む前記ユーザは、自らのリクエストのパラメータとして、エントリまたはエントリのアトリビュートを提供する。X500ビューを用いてそれを行うため、ユーザはDNを提供する。このDNは、前記エントリのDNであるか、または前記アトリビュートの表示によって完結する、前記アトリビュートが属するエントリのDNである。その場合、リクエストは、情報取得(読み取り)リクエスト、または変更(生成、変更、もしくは削除)リクエストとすることができる。ここでの主目的は、リクエストに依存しないマッピングを説明することであるので、これらすべてのリクエストは同等と見なされる。前記マッピング・アプリケーションによって処理されるリクエスト・プロセスは、以下のステップを含む。先と同じ静的化プロセスを適用することによって、すなわち、前記DNのすべての可変値を除去することによって、前記与えられたDNから、スタティックDN SDNが構築/抽出される。
その後、前記SDNが、SDITのSDNと比較され、前記SDITのSDNの1つと一致するまで続けられる。前記一致するSDNが与えられると、マッピング・アプリケーションは、前記SDNに対応するオブジェクトクラスを参照すること、および前記SDNのアトリビュート、1つのアトリビュートに対応する各可変RDNを参照することができる。前記アトリビュートの各々とともに、RDB内における前記アトリビュートのアドレス(テーブルおよび列)が保存される。アトリビュートに対するリクエストの場合、単一のアドレスが使用される。エントリの場合、前記エントリのすべてのアトリビュートのアドレスが使用される。
前記アドレスに基づいて、マッピング・アプリケーションは、RDB管理ツールのRDB要求言語を使用して、RDBリクエストを作成する。結果を取得するために、リクエストが前記管理ツールに対してサブミットされる。その後、前記結果をユーザに提示することができる。変更リクエストも、データを取得するのとまったく同じ方法で処理される。その場合、変更は、RDB内容を変更/更新するために、同じアドレス機構を使用して処理される。
本発明の範囲を理解するのに役立つように、また本発明の教示を適用した使用法を提供するために、今から、方法のいくつかのステップが、一例に対して適用される。
例は、第2の開始ポイントのケースに対応する。RDBデータベースは既存ではない。例は、書籍アプリケーションに関する。データベース管理者は、図7のDITの形に階層ツリーを設計している。DITの前記仕様はすでに静的である。前記DITは、ルートを含んで、11個のエントリまたは11個のスタティックDN、すなわち、SchemaRoot、AuthorRoot、Author、Work、Book、PublisherRoot、Publisher、ClientRoot、Client、Orders、Order、OrderDescription、OrderStatusに対応する11個の頂点/リーフを含む。
図7の前記DITと等価な、XMLシンタックスでのテキスト表現が、図8のリストに提供されている。各エントリは、ツリー構造をテキスト上で把握するために、RDNおよびペアレントRDNを含む。ツリーにおけるのと同様に、例えば、Bookエントリ内で定義されるBookDescriptionなど、アトリビュートおよびそのタイプを定義する、必要なオブジェクトクラスが含まれる。BookDescriptionオブジェクトクラスは、2つのアトリビュート、すなわち、文字列型の「title」と、整数型の「publisherId」とを含む。
X500モデルから直接導出されたこのテキスト記述から、マッピング方法が、
SDN、SDITの直接的テキスト表現、
エントリ内に含まれるオブジェクトクラス、および
前記オブジェクトクラス/エントリのアトリビュート
を、図9のXMLリストによって示されるように抽出する。
少なくとも1つの可変RDNを含む5つの頂点/エントリに対応する、5つのスタティックDNが抽出される。定数RDNのみを含むエントリである純粋な定数DNがSDNを生じることに気づかれよう。これらのスタティックDNが、SDITを構成する。
初期ツリー内に存在するオブジェクトクラスに対応する、6つのオブジェクトクラスが抽出される。
最後に、初期定義から、13個のアトリビュートが抽出される。アトリビュートは、それが関係するオブジェクトクラスによって区別される。例えば、「AuthorIdentity」のアトリビュート「name」は、「ClientIdentity」のアトリビュート「name」から区別される。それらは、それぞれ「AuthorIdentity.name」および「ClientIdentity.name」と表される。各アトリビュートは、その名前に加えて、タイプによって完成する。
RDBデータベースは既存ではないので、マッピング・プロセス中に、テーブルを生成することができる。これは、例のテーブルを生成するために使用されるRDB管理命令(managing order)を示した図10に示されている。これは、自動的に行うことができる簡単な操作である。先に抽出された6つのオブジェクトクラスに対応する、6つのテーブルが生成される。各テーブルは、オブジェクトクラス名をとって名付けられる。テーブルは、「普通」列(“ordinary” column)と呼ばれることもある、オブジェクトクラス抽出において識別される各アトリビュートに1つの列を含み、「特別」列(“special” column)と呼ばれることもある、前記オブジェクトクラスをインスタンス化したエントリ/DN内の各可変RDNに1つの列も含む。各特別列は、テーブルの主キーであるとして宣言されもする。
例えば、「BookDescription」オブジェクトクラスは、アトリビュート「title」および「publisherId」を含む。2つのスタティックDN、「AuthorId」および「ISBN」が、オブジェクトクラス「BookDescription」を使用する。その場合、4つの列、「AuthorId」、「ISBN」、「title」、および「publisherId」を有する、対応する「BookDescription」テーブルが生成される。「title」および「publisherId」は、普通列であり、「AuthorId」列および「ISBN」列は、そのテーブルの主キーとして宣言されもする特別列である。
前記テーブルを生成した後、1つの最後のステップは、データのマッピング・アドレスを獲得し、保存することである。これは、例えば、各アトリビュート内に、それが出現するテーブルの識別子および列の識別子を保存することによって、マッピング・プロセス中に行われる。例えば、アトリビュート「BookDescription.title」は、前記アトリビュートを保存するために、RDBにおいてそれぞれ使用される、テーブルの名前「BookDescription」および列の名前「title」をそれぞれ含む、2つのフィールドTableおよびColumnを含む。これらのフィールド値は、RDBにおける前記テーブルの内容をアドレスするために使用することができる。
そのとき、RDBの構造は、データを受け入れる準備ができている。言い換えると、データベースにデータを入力しなければならない。図11のXMLリストに示されるように、いくつかのエントリ生成が適用される。ここでは、エントリを生成する「createEntry」およびアトリビュートを定義する「setAttribute」の2種類の命令が使用される。例えば、一連の命令

createEntry
Authorld=BALZAC,OU=Authors,OU=BookshopOnLine
setAttribute AuthorId=BALZAC,
OU=Authors,
OU=BookshopOnLine name="Honore de Balzac"
setAttribute Authorld=BALZAC,
OU=Authors,OU=BookshopOnLine country="FRANCE".

によって、エントリBALZACが生成され、その2つのアトリビュートがインスタンス化される。
その後、データベースを使用することができ、例えば、問い合わせを行うことができる。図12および13は、データベース・リクエストの2つのサンプルを示している。第1のものは、図12に見られるように、エントリの読み取りを試みる簡単なリクエストである。そのリクエストは、後ろにDNのAuthorId=BALZAC,OU=Authors,OU=BookshopOnLineが続く、命令「readEntry」を使用する。前記DNを受け取ったマッピング・アプリケーションは最初に、可変値「BALZAC」を除去することによって、スタティックDN、すなわち、AuthorId=,OU=Authors,OU=BookshopOnLineを取り出す。その後、前記SDNが、スタティックDN(図9のリスト)と比較され、それらのうちの第1のものが一致する。それは、オブジェクトクラス「AuthorIdentity」を参照し、今度は、そのオブジェクトクラスが、アトリビュート「name」および「country」を参照する。対応するアトリビュート記述

Attribute="AuthorIdentity.name" Type="String(16)"
Table="AuthorIdentity" Column="name"
Attribute="AuthorIdentity.country" Type="String(16)"
Table="AuthorIdentity" Column="country"

において、アドレスを見出すことができ、それはそれぞれ、Table=“Authorldentity”およびColumn=“name”と、Table=“Authorldentity”およびColumn=“country”である。その後、マッピング・アプリケーションは、「AuthorId」を与えられた主キーと与えられた値の「BALZAC」との照合を試みながら、テーブル「AuthorIdentity」を検索し、一致した行における列「name」および列「country」の内容を取り出すよう指示する、RDBリクエストを作成することができる。そのようなRDBリクエストは、その後、以下の結果を提供する。

>AuthorId=BALZAC,OU=Authors,OU=BookshopOnLine
>name="Honore de Balzac"
>country="FRANCE"
図13のXMLリストは、ワイルドカード「*」を取り入れたリスト・リクエストを有する別の例を示している。

Claims (4)

  1. 少なくとも1つのエントリ(7)と少なくとも1つのオブジェクトクラスとディレクトリ情報ツリーDIT(6)とを含むX500データモデルをリレーショナルデータベースRDBにマッピングする、コンピュータ・システムにおける方法であって、前記エントリ(7)は少なくとも1つのアトリビュート(8)を含み、前記アトリビュート(8)はタイプ(9)と値(10)とを含み、前記エントリ(7)は1つのオブジェクトについての情報を集めたものであり、オブジェクトクラスは、前記オブジェクトを記述するエントリ(7)内に存在する前記アトリビュート(8)のタイプを定義するモデルであり、前記DIT(6)内の頂点がエントリ(7)であり、各エントリ(7)は識別名DNを含み、前記DNは、前記DIT(6)内ペアレントのエントリのDNと相対識別名RDNとを併せて含み、RDNが、前記エントリ(7)に固有の1つの特別に指名されたアトリビュート(8)を含み、前記リレーショナル・データベースRDBはリレーショナル・テーブル(11)を含み、各テーブル(11)がいくつかの名付けられた列(14)を含み、これらの列のいくつかがオブジェクトデータを一意的に識別する値を含む主キーであり、オブジェクトデータが行(15)内に保存され、前記方法が、
    オブジェクトクラスを構築するステップを含み、前記オブジェクトクラスの各々がそのアトリビュート(8)のリストを含み、さらに、
    アトリビュート(8)を構築するステップを含み、前記アトリビュートの各々がそのタイプ(9)を含み、さらに、
    スタティック・ディレクトリ情報ツリー(SDIT)を構築するステップを含み、前記SDITはスタティックDN(SDN)のみを含み、前記SDNはスタティックRDNのみを含むDNであり、前記スタティックRDNは可変値がすべて除去されたRDNとして定義され、さらに、
    X500データをRDBにマッピングするステップを含み、前記マッピングが、
    X500オブジェクトクラスをRDBテーブル(11)に関連付け、そして、
    X500アトリビュート(8)をRDBテーブルの列(14)に関連付けて、前記テーブルの列(14)の名前(13)を前記X500アトリビュート(8)とともに、前記アトリビュート(8)をポイントするアドレスとして保存する、ことによって行われる、
    方法。
  2. オブジェクトクラスを構築するステップとアトリビュートを構築するステップとスタティック・ディレクトリ情報ツリーを構築するステップとが、X500仕様から、前記オブジェクトクラス、前記アトリビュート(8)、前記スタティック・ディレクトリ情報ツリー(SDIT)をそれぞれ抽出することによって行われる、請求項1に記載の方法。
  3. オブジェクトクラスを構築するステップとアトリビュートを構築するステップとスタティック・ディレクトリ情報ツリーを構築するステップとが、RDBの分析から、前記オブジェクトクラス、前記アトリビュート(8)、前記スタティック・ディレクトリ情報ツリー(SDIT)を生成することによって行われる、請求項1または2に記載の方法。
  4. RDBにマッピングされるX500の、エントリ(7)のDNによって定義されるエントリ(7)に対するアクセス/リクエスト、個別にはアトリビュート(8)が属するエントリのDNと前記アトリビュート(8)とによって定義されるエントリのアトリビュート(8)に対するアクセス/リクエストは、
    すべての可変値を前記DNから除去することによって、前記エントリのDNからスタティックDN(SDN)を構築するステップと、
    スタティックDIT(SDIT)をフェッチして、一致するスタティックDNを見出すステップと、
    前記一致するスタティックDNのアトリビュート(8)から、前記エントリ(7)のアトリビュート(8)のすべてに対応する、個別には前記アトリビュート(8)に対応する、テーブルの列(14)のマッピング・アドレスを抽出するステップと、
    前記マッピング・アドレスを含むRDBリクエストを作成するステップと、
    リクエストを実行するステップと、
    前記リクエストの結果を取得するステップとを含む、請求項1乃至3のいずれか1項に記載の方法。
JP2011512116A 2008-06-03 2009-06-03 X500データモデルをリレーショナル・データベースにマッピングするための方法 Expired - Fee Related JP5410514B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08305224A EP2131293A1 (en) 2008-06-03 2008-06-03 Method for mapping an X500 data model onto a relational database
EP08305224.1 2008-06-03
PCT/EP2009/056833 WO2009147185A1 (en) 2008-06-03 2009-06-03 Method for mapping an x500 data model onto a relational database

Publications (2)

Publication Number Publication Date
JP2011523750A JP2011523750A (ja) 2011-08-18
JP5410514B2 true JP5410514B2 (ja) 2014-02-05

Family

ID=39761506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011512116A Expired - Fee Related JP5410514B2 (ja) 2008-06-03 2009-06-03 X500データモデルをリレーショナル・データベースにマッピングするための方法

Country Status (6)

Country Link
US (1) US8166075B2 (ja)
EP (1) EP2131293A1 (ja)
JP (1) JP5410514B2 (ja)
KR (1) KR101573561B1 (ja)
CN (1) CN101645092B (ja)
WO (1) WO2009147185A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2910638B1 (fr) * 2006-12-21 2009-02-13 Thales Sa Procede de simulation de taux de panne d'un equipement electronique due au rayonnement neutronique
CA2707237A1 (en) * 2007-03-26 2008-10-02 Hntb Holdings Ltd Bridge information modeling
US9460189B2 (en) 2010-09-23 2016-10-04 Microsoft Technology Licensing, Llc Data model dualization
US8719777B2 (en) * 2010-11-22 2014-05-06 Sap Ag Object, for object-oriented programming, with state-dependent behaviors
US8805892B2 (en) * 2012-02-02 2014-08-12 Dialogic Inc. Systems and methods of storing and managing configuration data in telecommunications systems and devices
CN103049516B (zh) * 2012-12-14 2016-01-20 北京神州绿盟信息安全科技股份有限公司 一种数据处理方法及装置
US20160063043A1 (en) * 2014-08-29 2016-03-03 Accenture Global Services Limited Versatile Data Model
US10452661B2 (en) * 2015-06-18 2019-10-22 Microsoft Technology Licensing, Llc Automated database schema annotation
CN107862098A (zh) * 2017-12-21 2018-03-30 中通服公众信息产业股份有限公司 一种基于全文检索的关联对象检索方法
US11200402B2 (en) 2018-01-26 2021-12-14 GICSOFT, Inc. Application execution based on object recognition

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE434997B (sv) * 1983-01-12 1984-08-27 Per Roode Berglund Anordning for metning av tjockleken av en rorlig bana
AU631276B2 (en) 1989-12-22 1992-11-19 Bull Hn Information Systems Inc. Name resolution in a directory database
US5291583A (en) * 1990-12-14 1994-03-01 Racal-Datacom, Inc. Automatic storage of persistent ASN.1 objects in a relational schema
US7315860B1 (en) * 1994-09-01 2008-01-01 Computer Associates Think, Inc. Directory service system and method with tolerance for data entry storage and output
EP0777883B1 (en) * 1994-09-01 2003-05-02 Computer Associates Think, Inc. X.500 system and methods
US6016499A (en) * 1997-07-21 2000-01-18 Novell, Inc. System and method for accessing a directory services respository
US6366954B1 (en) 1998-05-14 2002-04-02 Sun Microsystems, Inc. Method and data format for exchanging data between a Java system database entry and an LDAP directory service
US6823338B1 (en) 1998-11-19 2004-11-23 International Business Machines Corporation Method, mechanism and computer program product for processing sparse hierarchical ACL data in a relational database
US6199062B1 (en) * 1998-11-19 2001-03-06 International Business Machines Corporation Reverse string indexing in a relational database for wildcard searching
US20060173873A1 (en) 2000-03-03 2006-08-03 Michel Prompt System and method for providing access to databases via directories and other hierarchical structures and interfaces
US7184995B2 (en) * 2003-02-26 2007-02-27 America Online Inc. Data interoperability between open standard directory service and proprietary database
US20080256142A1 (en) * 2007-04-10 2008-10-16 Apertio Limited Journaling in network data architectures
US9112873B2 (en) * 2007-04-10 2015-08-18 Apertio Limited Alias hiding in network data repositories
US20080256112A1 (en) * 2007-04-10 2008-10-16 Apertio Limited Indirect methods in network data repositories
US8140676B2 (en) * 2007-04-10 2012-03-20 Apertio Limited Data access in distributed server systems
US7664866B2 (en) * 2007-04-10 2010-02-16 Apertio Limited Sub-tree access control in network architectures
US20080256095A1 (en) * 2007-04-10 2008-10-16 Apertio Limited Adaptation in network data repositories
US8782085B2 (en) * 2007-04-10 2014-07-15 Apertio Limited Variant entries in network data repositories
US20080253402A1 (en) * 2007-04-10 2008-10-16 Apertio Limited Timing device and method
US8402147B2 (en) * 2007-04-10 2013-03-19 Apertio Limited Nomadic subscriber data system

Also Published As

Publication number Publication date
KR20110031931A (ko) 2011-03-29
KR101573561B1 (ko) 2015-12-01
WO2009147185A1 (en) 2009-12-10
CN101645092A (zh) 2010-02-10
US20090300062A1 (en) 2009-12-03
EP2131293A1 (en) 2009-12-09
JP2011523750A (ja) 2011-08-18
US8166075B2 (en) 2012-04-24
CN101645092B (zh) 2013-03-13

Similar Documents

Publication Publication Date Title
JP5410514B2 (ja) X500データモデルをリレーショナル・データベースにマッピングするための方法
US6839714B2 (en) System and method for comparing heterogeneous data sources
US20130006968A1 (en) Data integration system
US6738759B1 (en) System and method for performing similarity searching using pointer optimization
US6859805B1 (en) Method and apparatus for generating page-level security in a computer generated report
US8417513B2 (en) Representation of objects and relationships in databases, directories, web services, and applications as sentences as a method to represent context in structured data
CA2281331A1 (en) Database management system
EP1585036A2 (en) Management of parameterized database queries
JP2001014329A (ja) データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体
US20050091199A1 (en) Method and system for generating SQL joins to optimize performance
CN109885665A (zh) 一种数据查询方法、装置及系统
US6772156B1 (en) Method and apparatus for creating and displaying a table of content for a computer-generated report having page-level security
US7409410B2 (en) System and method of presenting multilingual metadata
US20080294673A1 (en) Data transfer and storage based on meta-data
US7574329B1 (en) Object model for decision and issue tracking
EP2365448A1 (en) Data integration system
Fink et al. How linked open data can help in locating stolen or looted cultural property
CN121071127B (zh) 基于知识图谱的档案全文智能检索方法、系统及电子设备
CN119576856B (zh) 基于图数据的政策文件修订方法及装置、介质、设备
JP4261373B2 (ja) 階層型データベース管理システム、階層型データベース管理方法及び階層型データベース管理プログラム
Broughton Classification and subject organization and retrieval
Lim et al. Integration of Wikipedia and a geography digital library
Wong Data connectivity for the composite information system/tool kit
Crookshanks Just Enough SQL
Carvalho et al. A Metadata Model for Knowledge Discovery in Database.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120423

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130912

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131106

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees