DE102005025170A1 - Verfahren und Systeme zur Datenintegration - Google Patents

Verfahren und Systeme zur Datenintegration Download PDF

Info

Publication number
DE102005025170A1
DE102005025170A1 DE102005025170A DE102005025170A DE102005025170A1 DE 102005025170 A1 DE102005025170 A1 DE 102005025170A1 DE 102005025170 A DE102005025170 A DE 102005025170A DE 102005025170 A DE102005025170 A DE 102005025170A DE 102005025170 A1 DE102005025170 A1 DE 102005025170A1
Authority
DE
Germany
Prior art keywords
data
query
links
data network
link
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.)
Ceased
Application number
DE102005025170A
Other languages
English (en)
Inventor
James F. Oakland Barstow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Symyx Solutions Inc
Original Assignee
MDL Information Systems Inc
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 MDL Information Systems Inc filed Critical MDL Information Systems Inc
Publication of DE102005025170A1 publication Critical patent/DE102005025170A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Ein Verfahren zum dynamischen Erstellen von Hierarchien, die in Datenbank-Suchläufen verwendet werden soll, umfasst die Schritte des Definierens eines Datennetzwerks und des Empfangens einer Abfrage in Bezug auf Daten, die in einer oder mehreren Datenbanken gespeichert sind. Das Verfahren umfasst des Weiteren den Schritt des dynamischen Aufbauens einer Hierarchie, wenigstens teilweise basierend auf der Abfrage und dem Datennetzwerk. Das Verfahren kann durrch eine integrierende Datenquelle durchgeführt werden, die mit einer oder mehreren anderen Datenquellen kombiniert ist, um ein Datennetzwerk auszubilden.

Description

  • In der Vergangenheit wurde die Unterstützung für komplexe Datenmodelle, für die eine Integration erforderlich war, innerhalb jeder Datenquelle oder durch Code bereitgestellt, der vom Kunden oder Berater geschrieben wurde. Beispielsweise ist die komplexe Datenhierarchie, die in Beilstein-Datenbanken verwendet wird, in Beilstein selbst installiert. Relationale Datenbanken, wie beispielsweise Oracle, besitzen diese Fähigkeit nicht und erfordern Fachwissen über die zu Grunde liegende Tabellenstruktur, die strukturierte Abfragesprache SQL und Programmierung, um die Daten auf eine Weise zu integrieren, dass auf sie durch Endbenutzer zugegriffen werden kann.
  • Ein bestehendes Integrationssystem ist ISIS ("Integrated Scientific Information System"), ein Produkt von MDL Information Systems, Inc. in San Leandro, Kalifornien. ISIS ist ein führendes Informatiksystem in der Biowissenschafts- und Chemie-Branche. Die ISIS/Host-API ist eine C-Schnittstelle, die eine Integration von Datenquellen und Struktursuche bereitstellt. Die Hview ist eine bearbeitbare Textdatei, die ISIS/Host darüber informiert, wie der Endbenutzer diese Integration sehen wird. Unter Verwendung von Hview kann ISIS/Host ähnliche Datenbanken öffnen, die sich auf einem oder mehreren Host-Rechnern befinden, und für die ISIS-Benutzer vereinheitlichte Datensichten darstellen.
  • Obwohl die Hview eine leistungsstarke Möglichkeit zum Beschreiben von Datenmodellen bereitstellt, weist sie einige beträchtliche Einschränkungen auf. Erstens ist sie zu starr. Zum Beispiel kann ein vorgegebenes Datenmodell als viele verschiedene Hierarchien betrachtet werden; manchmal ist es sogar sinnvoll, eine Hierarchie abzufragen und eine andere abzurufen. In der ISIS-Domäne ist das Betrachten von Daten über verschiedene Hviews problematisch, und es kann erforderlich werden, dass ein Programmierer einen kundenspezifischen Code schreiben muss. Zweitens unterstützen Hviews eine begrenzte Gruppe von Datenbeziehungen. Das Drehen von Daten ist eine Funktionalität, die fast jeder Kunde braucht, die aber von ISIS/Host nicht direkt unterstützt wird. Selbst im einfachsten Fall einer Drehung ist das Suchen und Abrufen von Daten ein zweistufiger Prozess; in den meisten Fällen ist er viel komplexer. Schließlich ist die Syntax von Hviews obskur; einige Firmen haben Experten, die sich nur um das Schreiben und Verwalten von Hviews kümmern. Obwohl der zu Grunde liegende Prozess des Beschreibens von komplexen Datenmodellen immer Fachleute erfordern kann, sollte die verwendete Syntax den Prozess einfacher und nicht schwieriger machen.
  • Ziele einer bevorzugten Ausführungsform der vorliegenden Erfindung umfassen Folgendes. Erstens sollte das System flexibel sein und es einfacher machen, mehrere hierarchische Datensichten des gleichen Datenmodells bereitzustellen. Zweitens sollte das System erweiterbar sein, um die Definition neuer, unvorhergesehener Datenbeziehungen zu gestatten. Drittens sollte der Prozess des Beschreibens eines Datenmodells durch eine obskure Syntax nicht noch schwieriger gemacht werden.
  • Kurzdarstellung der Erfindung
  • In einer bevorzugten Ausführungsform der vorliegenden Erfindung wird die Integration über eine Integrationsdatenquelle (Integrated Data Source – IDS) bereitgestellt. Auf diese Datenquelle kann zugegriffen werden, und sie lässt sich unter Verwendung von Standardschnittstellen manipulieren; Abfragen können unter Verwendung hierarchischer SQL- (UQL) Erweiterungen vorgenommen werden, und die Daten können in hierarchischen Datensatzgruppen wieder zurückgegeben werden. (Die vereinheitlichte Abfragesprache UQL (Unified Query Language) wird im Folgenden ausführlicher erläutert.)
  • Die IDS stellt ein Verfahren bereit, um hierarchische Abfragen über mehrere Datenquellen übergreifend über ein vordefiniertes Datennetzwerk vorzunehmen. In der IDS sind die Datennetzwerke aus "Knoten" und "Verknüpfungen" aufgebaut. Ein Datennetzwerk ersetzt mehrere Hviews. Jeder Knoten in dem Netzwerk ist eine relationale Tabelle oder eine andere Datenquelle. Jede Kante in dem Netzwerk ist eine XML-definierte Verknüpfung, welche die Beziehung zwischen den zwei Knoten beschreibt. Die Verknüpfungen können in statischen Dateien definiert oder in einfachem Java-Code während der Laufzeit erstellt werden.
  • Im Gegensatz zu dem Hview-Modell sind die durch die IDS assemblierten Datensichten nicht statisch. Es können viele verschiedene Hierarchien dynamisch aus einem einzigen Datennetzwerk aufgebaut werden, abhängig von dem Pfad, der durch das Netzwerk genommen wird. Der Anfangspunkt in dem Netzwerk wird der Stamm der aufgebauten Hierarchie. Ausgehend von einer einzelnen Abfrage gibt es viele Wege, wie die Abfrage auf das Netzwerk angewendet werden kann, was zu verschiedenen Hierarchien führt. Diese Hierarchien spiegeln verschiedene Beziehungen der Daten wider, die in die Abfrage einbezogen sind.
  • Jede Kante in dem Netzwerk wird durch eine Verknüpfung definiert, welche die Datenbeziehung zwischen den zwei Knoten beschreibt. Diese Datenbeziehung kann eine Vielfachheit von Eins-zu-Eins oder Eins-zu-Viele aufweisen und in eine Umwandlung der sich daraus ergebenden Daten (z.B. Drehen) einbezogen sein. Verknüpfungen sind richtungsbestimmt; um eine Verknüpfung in zwei Richtungen zu haben, werden zwei Verknüpfungen definiert.
  • Eine vorgegebene Verknüpfung kapselt die Implementierung einer bestimmten Datenbeziehung ein, und umfasst das Übersetzen der Abfrage- und Abrufdaten. Die meisten Verknüpfungen werden aufgebaut, indem eine aus einer kleinen Gruppe von Basisverknüpfungen erweitert wird, und anschließend einige Methoden unwirksam gemacht werden. Allgemeine Einzelheiten zu Verknüpfungen umfassen:
    • 1. Verknüpfungen beschreiben eine Beziehung zwischen zwei Datengruppen.
    • 2. Eine vorgegebene Datengruppe kann eine relationale Tabelle, SQL-Anweisung, Berechnung, Datenquelle usw. sein.
    • 3. Beziehungen können Eins-zu-Eins, Eins-zu-Viele, Viele-zu-Viele sein.
    • 4. Verknüpfungen sind zuständig für das Generieren von SQL zum Suchen und Abrufen der mit ihnen verbundenen Daten.
    • 5. Verknüpfungen rufen Daten entweder sofort ab oder stellen den Abruf bis zur Anforderung zurück.
    • 6. Verknüpfungen können Daten transparent umwandeln (z.B. Drehen).
    • 7. Verknüpfungen werden problemlos erweitert, um neue Beziehungen oder eine neue Funktionalität zu unterstützen.
  • Eine bevorzugte Verfahrens-Ausführungsform des Erfindungsgegenstands umfasst ein Verfahren zum dynamischen Erstellen von Hierarchien, die in Datenbanksuchen verwendet werden, umfassend die folgenden Schritte: (a) Definieren eines Datennetzwerks; (b) Empfangen einer Abfrage in Bezug auf Daten, die in einer oder mehreren Datenbanken gespeichert sind; und (c), wenigstens basierend auf der Abfrage und dem Datennetzwerk, dynamisches Aufbauen einer Hierarchie. Zugehörige Ausführungsformen enthalten Folgendes: (1) das Datennetzwerk umfasst Knoten und Verknüpfungen; (2) der Schritt des Definierens eines Datennetzwerks umfasst das Verknüpfen von einem oder mehreren Ursprungsknoten zu einem oder mehreren über Verknüpfungen verbundene Knoten; (3) die Verknüpfungen umfassen Ausgabefeld-Elemente und definieren Beziehungen zwischen den Knoten; (4) eine Hierarchie wird basierend auf Ausgabefeldern und Beziehungen aufgebaut; (5) es gibt einen Schritt zum Identifizieren einer Stammverknüpfung in einem Datennetzwerk auf der Basis einer Abfrage; (6) das Datennetzwerk wird auf der Basis eines relationalen Datenmodells definiert; (7) der Schritt des Definierens eines Datennetzwerks umfasst das Analysieren eines Datenmodells, um Objekte zu identifizieren, die herausgestellt werden sollen; (8) der Schritt des Definierens eines Datennetzwerks umfasst das Analysieren eines Vererbungsbaums von identifizierten Objekten; (9) der Schritt des Definierens eines Datennetzwerks umfasst das Analysieren von Beziehungen zwischen Objekten; (10) Beziehungen zwischen Objekten umfassen eine Vielfachheit von Beziehungen und wechselseitigen Beziehungen; (11) der Schritt des Definierens eines Datennetzwerks umfasst das Definieren von Verknüpfungen für jedes der Objekte; (12) der Schritt des Definierens von Verknüpfungen für jedes der Objekte resultiert in der Herausstellung relevanter Daten in einer Hierarchie, die für das Objekt geeignet ist; (13) die Verknüpfungen bilden untergeordnete Netzwerke aus; (14) für jedes untergeordnete Netzwerk werden die darin befindlichen Verknüpfungen modifiziert, um ihre Beziehungen zwischen Objekten in dem Netzwerk widerzuspiegeln; (15) die Verknüpfungen umfassen Verknüpfungen, die Daten umwandeln; und (16) die Verknüpfungen umfassen Verknüpfungen, die Daten aus externen Quellen integrieren.
  • Eine weitere bevorzugte Verfahrens-Ausführungsform des Erfindungsgegenstands umfasst ein Verfahren zum Abfragen eines Datennetzwerks, umfassend die folgenden Schritte: (a) Auswählen gewünschter Felder; (b) Angeben eines Stamms; (c) Angeben einer Suchbedingung; und (d) Angeben eines Pfads für jedes von einem oder mehreren der gewünschten Felder. Zugehörige Ausführungsformen enthalten Folgendes: (1) der Schritt des Angebens eines Stamms umfasst das Angeben einer FROM-Klausel; (2) jeder Pfad entspricht einer Gruppe von Verknüpfungen; und (3) die Gruppe von Verknüpfungen umfasst eine oder mehrere der folgenden Eins-zu-Viele-Verknüpfung, Eins-zu-Eins-Verknüpfung, Dreh-Verknüpfung.
  • Eine bevorzugte System-Ausführungsform des Erfindungsgegenstands umfasst ein System zum dynamischen Erstellen von Hierarchien, die in Datenbanksuchen verwendet werden, umfassend: (a) Mittel zum Definieren eines Datennetzwerks; (b) Mittel zum Empfangen einer Abfrage in Bezug auf Daten, die in einer oder mehreren Datenbanken gespeichert sind; und (c) Mittel, die wenigstens teilweise auf der Abfrage basieren, zum dynamischen Aufbauen einer Hierarchie aus dem Datennetzwerk.
  • Eine weitere bevorzugte System-Ausführungsform des Erfindungsgegenstands umfasst ein System zum Abfragen eines Datennetzwerks, umfassend: (a) Mittel zum Auswählen gewünschter Felder; (b) Mittel zum Angeben eines Stamms; und (c) Mittel zum Angeben einer Suchbedingung.
  • Eine weitere bevorzugte System-Ausführungsform des Erfindungsgegenstands umfasst ein System zum Abfragen von Datenbanken, umfassend: (a) einen elektronischen Abfrage-Server, der betriebsfähig ist zum Empfangen von elektronischen Datenübertragungen von und zum Senden von elektronischen Datenübertragungen zu einem Benutzer-Datenendgerät über ein elektronisches Datenübertragungs-Netzwerk; und (b) einen oder mehrere Datenbank-Server, die mit dem Abfrage-Server in elektronischer Datenverbindung stehen und betriebsfähig sind, um eine oder mehrere Datenbanken zu suchen; wobei der Abfrage-Server betriebsfähig ist, um eine elektronische Abfrage über ein elektronisches Datenübertragungs-Netzwerk von dem Benutzer-Datenendgerät zu empfangen und, basierend auf dieser Abfrage, eine oder mehrere Hierarchien dynamisch zu erstellen. Zugehörige Ausführungsformen enthalten Folgendes: (1) eine oder mehrere Hierarchien werden basierend auf Datennetzwerken erstellt; und (2) die Datennetzwerke umfassen Knoten, die durch Verknüpfungen verbunden sind, und jeder Knoten entspricht einer Gruppe von Daten.
  • Kurze Beschreibungen der Zeichnungen
  • 1 veranschaulicht ein einfaches beispielhaftes Datennetzwerk einer bevorzugten Ausführungsform.
  • 2 zeigt eine grafische Darstellung eines beispielhaften Netzwerks.
  • 3 ist eine grafische Darstellung des in Anhang A beschriebenen Netzwerks.
  • 4 zeigt grundlegende Abschnitte einer bevorzugten Verknüpfungs-Beschreibung.
  • 5 zeigt beispielhafte Verknüpfungs-Definitionen für einen Ursprungsknoten und einen verbundenen Knoten und das Netzwerk, das sie ausbilden.
  • 6 zeigt eine Stammverknüpfung, die zu dem Netzwerk von 5 hinzugefügt wurde.
  • 7 zeigt zwei zusätzliche Verknüpfungen, die zu dem Netzwerk von 6 hinzugefügt wurden.
  • 8 zeigt ein Entitäts-Beziehungsdiagramm, das ein einfaches Reaktions-Datenmodell veranschaulicht.
  • 9 zeigt Verknüpfungen für das Datenmodell von 8.
  • 10 zeigt zwei zusätzliche Verknüpfungen, die zu denjenigen von 9 hinzugefügt wurden.
  • 11 zeigt eine grafische Darstellung eines Datennetzwerks.
  • 12 veranschaulicht eine Abfrage, die auf das Netzwerk von 11 angewendet wird.
  • 1317 veranschaulichen Ablaufdiagramme, die detailliert angeben, wie eine UQL-Abfrage in Standard-SQL übersetzt wird.
  • 18 zeigt ein System zum Abfragen von einer oder mehreren Datenbanken.
  • Detaillierte Beschreibung von bevorzugten Ausführungsformen
  • In einer bevorzugten Ausführungsform ist eine Integrationsdatenquelle (IDS) eine Datenquelle, die mit einer oder mehreren anderen Datenquellen, (die typischerweise eine relationale Datenquelle aufweisen), kombiniert ist, um ein Datennetzwerk auszubilden. Basierend auf einem bereitgestellten Datenmodell kann ein Fachmann für Datenmodelle ein Datennetzwerk erstellen. Damit werden die Daten in eine oder mehrere hierarchische Datensichten umgewandelt, und die Fähigkeit wird bereitgestellt, über diese Datenquellen übergreifend zu suchen und Gruppen von integrierten Ergebnissen zurückzugeben. Verknüpfungen geben die Datenbeziehungen zwischen den Datenquellen an. 1 veranschaulicht ein einfaches Datennetzwerk.
  • Verknüpfungen mit Eins-zu-Eins- oder Eins-zu-Viele-Beziehungen können verwendet werden, um ein Netzwerk auszubilden. Verknüpfungen generieren SQL- Anweisungen für die Suche nach und den Abruf von den mit den Verknüpfungen verbundenen Daten.
  • Datenquellen in dem Datennetzwerk können eine einzelne relationale Tabelle, eine Berechnung, die Ergebnisse einer SELECT-Anweisung, eine externe Datenquelle sein – potenziell alles, was Daten liefert.
  • Das Datennetz kann einfach sein – Verknüpfungen zwischen mehreren Datenquellen. Oder es kann sehr viel komplexer sein – Tausende von Datenquellen mit Verknüpfungen, die sie miteinander verbinden. Ein Datennetzwerk, das IDS-Verknüpfungen verwendet, stellt eine maßgeschneiderte Gruppe von Datensichten bereit, die auf den Arbeitsablauf und die Anforderungen eines bestimmten Verwendungszwecks zugeschnitten sind. Im Gegensatz zu dem Hview-Modell kann ein Datennetzwerk mehrere Hviews ersetzen, und ein vorgegebenes Datenmodell kann als viele verschiedene Hierarchien betrachtet werden. Die durch die IDS assemblierten hierarchischen Datensichten sind nicht statisch. Flexibilität ist äußerst erwünscht und ist ein integriertes IDS-Merkmal. Ein gut ausgelegten Datennetzwerk gestattet es, Hierarchien aufzubauen, die der Entwickler nicht vorhergesehen hat. Es ist beispielsweise manchmal von Vorteil, eine Hierarchie abzufragen, aber Daten von einer anderen abzurufen.
  • Ein weiterer Vorteil der Verwendung von IDS besteht darin, dass sie gestattet, dass Datenumwandlungen, wie beispielsweise Drehen, dynamisch auftreten. Dies ist nur ein Beispiel für die Fähigkeit, Daten aus der Form, in der sie in einer Datenbank gespeichert sind, in eine Form umzuwandeln, an die der Endbenutzer gewöhnt ist. Außerdem können mit IDS mehrere Anfangspunkte bzw. Stämme für eine vorgegebene Suche angegeben werden.
  • Abfragen werden vorzugsweise unter Verwendung der hierarchischen Erweiterungen der Unified Query Language (UQL) vorgenommen, und Daten werden in hierarchischen Datensatzgruppen zurückgegeben.
  • Die folgenden Schritte erläutern den bevorzugten IDS-Arbeitsablauf im Detail.
    • 1. Der Datenbank-Administrator analysiert den Bedarf eines Einsatzorts.
    • 2. Der Datenbank-Administrator installiert Datenbanken und richtet Accounts für Systemadministratoren ein.
    • 3. Der Systemadministrator fügt Datenbank-Kontexte hinzu und weist Benutzer zu diesen Kontexten zu.
    • 4. Der Systemadministrator erstellt Datenquellen-Definitionen. Aus diesen Definitionen werden XML-Dateien erstellt.
    • 5. Ein Fachmann für Datenmodelle (mit Systemadministrator-Privilegien) baut das Netzwerk auf.
    • 6. Sobald der Fachmann für Datenmodelle das Datennetzwerk aufgebaut und getestet hat, veröffentlicht der Systemadministrator das Datennetzwerk für den Server.
    • 7. Ein Wissenschaftler (zum Beispiel) fragt die Datenbanken unter Verwendung des Datennetzwerks ab. Der Wissenschaftler erstellt die Abfragen unter Verwendung der hierarchischen UQL-Erweiterungen, und die Daten werden in hierarchischen Datensatzgruppen zurückgegeben.
  • In einigen Fällen kann es notwendig sein, neue, unvorhergesehene Datenbeziehungen zu definieren, die durch die standardmäßigen IDS-Verknüpfungen nicht unterstützt werden. Ist dies der Fall, gibt der Fachmann für Datenmodelle nach Bedarf neue Verknüpfungen an und leitet die Spezifikationen an einen Entwickler weiter. Der Entwickler baut die erforderlichen Verknüpfungen auf.
  • Über Verknüpfungen
  • Eine Verknüpfung ist der grundlegende Aufbaublock eines Datennetzwerks in einer Integrationsdatenquelle. Eine Verknüpfung ist eine XML-Beschreibung der Beziehung zwischen Knoten von Daten in einem Datennetzwerk. Diese Beziehung wird durch die Verknüpfung genutzt, wenn sie die systemspezifische Abfrage für die Suche nach und den Abruf von den verknüpften Daten generiert. Die Beziehung kann Eins-zu-Eins oder Eins-zu-Viele sein. Die Beziehung gibt auch an, ob der Datenabruf sofort durchgeführt oder bis zu seiner Anforderung verschoben wird.
  • 4 zeigt grundlegende Abschnitte einer Verknüpfungsbeschreibung. Die meisten Verknüpfungen weisen wenigstens die Elemente Connector (Verknüpfung), LinkFields (Verknüpfungsfelder) und OutputFields (Ausgabefelder) auf.
  • Wie Verknüpfungen ein Datennetzwerk aufbauen
  • Obwohl eine Verknüpfung die Verknüpfung zwischen dem Ursprungsknoten und dem verbundenen Knoten herstellt, definiert sie vorzugsweise den Zugang nur zu den Daten in dem verbundenen Knoten. Der Zugang zu den Daten in dem Ursprungsknoten wird vorzugsweise durch eine andere Verknüpfung definiert. Für den Zugang zu den Daten sowohl im Urspungsknoten und dem verknüpften Knoten benötigt man vorzugsweise eine Verknüpfung für jeden Knoten. 5 zeigt zwei Verknüpfungsdefinitionen für den Ursprungsknoten und den verknüpften Knoten und zeigt, wie sie ein sehr einfaches Datennetzwerk ausbilden.
  • Die Daten in diesem Netzwerk werden durch die Ausgabefelder in jeder Verknüpfung definiert. Die aus einer Abfrage abgerufene Hierarchie wird aus den angegebenen Ausgabefeldern und den Beziehungen abgeleitet, die durch ihre Verknüpfungen definiert werden. Die Vielfachheit der Beziehungen zwischen zwei Knoten wirkt sich auf die Form der Hierarchie aus. Bei einer Eins-zu-Eins-Beziehung werden die Ausgabefelder des verknüpften Knotens mit den Ausgabefeldern des Ursprungsknotens zusammengeführt. Bei einer Eins-zu-Viele-Beziehung wird in den Quelldaten ein übergeordnetes Feld erstellt. Wenn beispielsweise die Beziehung zwischen ConnectorA und ConnectorB in dem Beispiel Eins-zu-Eins ist, sieht die abgeleitete Hierarchie wie folgt aus:
    FieldA1
    FieldA2
    FieldB1
    FieldB2
  • Wenn die Beziehung zwischen ConnectorA und ConnectorB in dem Beispiel Eins-zu-Viele ist, sieht die abgeleitete Hierarchie wie folgt aus:
    Figure 00090001
  • Das soeben beschriebene Datennetzwerk ist einfach eine Reihe von Verknüpfungen, ohne Eingangspunkt zum Netzwerk. Damit eine Abfrage auf diesem Datennetzwerk weitergeleitet werden kann, muss eine Stammverknüpfung vorhanden sein. Die Stammverknüpfung stellt dar, welcher Datentyp auf diesem Datennetzwerk abgefragt werden kann. Die Stammverknüpfung ist das, was in der FROM-Klausel der Abfrage angegeben werden muss.
  • 6 zeigt eine weitere Verknüpfung ConnectorX, die zu dem Datennetzwerk hinzugefügt wurde.
  • ConnectorX ist die Stammverknüpfung in diesem Datennetzwerk. Wie dargestellt, muss ConnectorX ebenfalls seine eigene Connector-Elementdefinition aufweisen. Zum Angeben von ConnectorX als Stammverknüpfung muss sie in dem Stamm-Abschnitt des Verknüpfungselements hinzugefügt werden:
    Figure 00100001
  • Wenn die Beziehungen zwischen ConnectorX, ConnectorA und ConnectorB Eins-zu-Eins ist, sieht die abgeleitete Hierarchie wie folgt aus:
    FieldX
    FieldA1
    FieldA2
    FieldB1
    FieldB2
  • Wenn die Beziehungen zwischen ConnectorX, ConnectorA und ConnectorB Eins-zu-Viele ist, sieht die abgeleitete Hierarchie wie folgt aus:
    Figure 00100002
  • Unter Verwendung der Eins-zu-Viele-Beziehung als Beispiel kann die folgende Abfrage weitergeleitet werden:
    Figure 00110001
  • Dabei ist zu beachten, dass die ConnectorX-Definition kein FROMTABLE-Attribut aufweist und keine LinkFields definiert, weil sie nicht von einem Urspungsknoten aus verbunden ist. Es ist jedoch auch möglich, eine Verknüpfung zu definieren, die zwei Knoten (wie beispielsweise ConnectorA oder ConnectorB) als eine Stammverknüpfung verbindet.
  • Es können auch mehrere Verknüpfungen definiert werden, die von dem gleichen Ursprungsknoten aus verbinden, und mehrere Verknüpfungen, die mit dem gleichen verbundenen Knoten verbinden. In 7 werden neue Verknüpfungen ConnectorC und ConnectorD zu dem Datennetzwerk hinzugefügt, das in den vorherigen Beispielen verwendet wurde. ConnectorB und ConnectorC werden beide von TableA aus verbunden, und ConnectorB und ConnectorB sind beide mit TableB verbunden.
  • Unter Verwendung des dargestellten Datennetzwerks wählt die folgende Abfrage alle der Ausgabefelder aus allen der Verknüpfungen:
    Figure 00110002
  • Im Folgenden wird die abgeleitete Hierarchie gezeigt:
    Figure 00110003
    Figure 00120001
  • Die Art von ConnectorA, ConnectorC und ConnectorD ist OneToManyDataConnector; die Eins-zu-Viele-Beziehung erstellte die entsprechenden Felder der übergeordneten und unteren Ebene. Die Art von ConnectorB ist OneToOneDataConnector; die Eins-zu-Eins-Beziehung fügte die Felder in das übergeordnete (Ursprungsknoten) Feld von ConnectorA ein. Dabei ist zu beachten, dass das Auswählen von "*" in der Abfrage die Felder der unteren Ebene nicht abruft. Zum Abrufen der Felder unter einem übergeordneten Feld wird die Verknüpfungsbezeichnung als ein Pfad zu den Feldern angegeben. Beispielsweise wählt "select * from ConnectorX" nur die Ausgabefelder von ConnectorX. Zum Auswählen der Felder von ConnectorX und ConnectorD wird "select *, ConnectorA.ConnectorC.ConnectorD.* from ConnectorX" angegeben.
  • In vielen Fällen gibt es Anwendungsbenutzer, die sich nur für die Daten in bestimmten Ebenen der Hierarchie interessieren. Unter Verwendung des vorhergehenden Beispiels gibt die folgende Abfrage ein Feld der unteren Ebene (ConnectorC) zurück, das auf einem anderen Feld der unteren Ebene (ConnectorD) basiert:
    Figure 00120002
  • Um den Zugang zu diesen Knoten in dem Datennetzwerk einfacher zu machen, kann ConnectorC als ein Stamm hinzugefügt werden:
    Figure 00120003
  • Dies macht ConnectorC zu einem weiteren Eingangspunkt in das Datennetzwerk. Das Definieren von ConnectorC als eine Stammverknüpfung zieht ihre Daten in die Stammebene einer Hierarchie hinauf, ohne das darunterliegende Datenmodell zu verändern. Das Folgende wird dann zu einer weiteren Hierarchie, die in dem Datennetzwerk zur Verfügung steht:
    Figure 00130001
  • Unter Verwendung des neuen Stamms kann die folgende einfachere Abfrage weitergeleitet werden:
    Figure 00130002
  • Ein Beispiel: Verknüpfungen für ein Reaktions-Datennetzwerk
  • 8 zeigt ein Entitäts-Beziehungsdiagramm, das ein einfaches Reaktions-Datenmodell zeigt, das aus drei Tabellen Rxn, RxnMols und Mols besteht. 8 zeigt auch, wie diese Tabellen durch ihre Primär- und Fremdschlüssel verbunden sind. Von diesem Datenmodell aus könnten Benutzer daran interessiert sein, auf die folgenden Daten zuzugreifen: Reaktionen, Reaktanten, Produkte, Reaktantmoleküle und Produktmoleküle. Jedes davon kann als Knoten in einem Datennetzwerk definiert werden, auf die durch die Verknüpfungen zugegriffen wird, wie in 9 gezeigt.
  • Indem Reactions (Reaktionen) als die Stammverknüpfung definiert wird, kann die folgende Hierarchie von dem Datennetzwerk abgeleitet werden:
    Figure 00130003
  • Es ist zu beachten, dass, weil die Art der RctMol- und PrdMol-Verknüpfungen OneToOneDataConnector ist, ihre Ausgabefelder mit ihren entsprechenden Ursprungsknoten zusammengeführt werden. Die Ausgabefelder von Reactants und Products werden nur zum Verbinden verwendet, so dass sie verborgen werden und nicht in der Hierarchie erscheinen. Es ist ebenfalls zu beachten, dass die Reactants- und Products-Verknüpfungen beide mit der RxnMols-Tabelle verbunden sind. Die Verwendung TOTABLEALIAS in diesen Verknüpfungen ermöglichte das Verbinden mehrerer Verknüpfungen (RctMol und PrdMol) von der gleiche Tabelle aus.
  • Das soeben beschriebene Datennetzwerk definiert eine einzelne Hierarchie. Die Leistung eines Datennetzwerk-Verfahrens wird offenkundig, wenn es gestattet, dass sich Verknüpfungen von Astknoten aus zurück zum übergeordneten Knoten definieren lassen. Beispielsweise lassen sich zwei neue Verknüpfungen erstellen, welche die Reactants- und Products-Knoten zu Rxn zurück verbinden (siehe 10)
  • Es ist zu beachten, dass die zwei neuen Verknüpfungen die gleiche Bezeichnung aufweisen (Rxn) und gleich aussehen. Der einzige Unterschied ist der FROMTABLE-Wert. Einer ist von der Reactants-Verknüpfung und der andere von der Product-Verknüpfung aus verbunden.
  • Unter Verwendung der ersten Rxn-Verknüpfung, (deren FROMTABLE="Rcts"), kann die folgende alternative Hierarchie abgeleitet werden:
    Figure 00140001
  • Unter Verwendung der anderen Rxn-Verknüpfung, (deren FROMTABLE="Prds"), kann die folgende Hierarchie abgeleitet werden:
    Figure 00150001
  • 11 zeigt eine grafische Darstellung des soeben erstellten Datennetzwerks, einschließlich Rxn, Reactants und Products als mögliche Stämme von mehrfachen, nicht-statischen Hierarchien.
  • Abfragen des Datennetzwerks
  • Ein Datennetzwerk kann unter Verwendung von einheitlichen Abfragen abgefragt werden – Abfragen, die in Unified Query Language (UQL) geschrieben wurden. UQL stellt eine allgemeine Syntax zum Suchen von Datenquellen bereit. UQL ist SQL ähnlich.
  • Zum Abfragen eines Datennetzwerks wählen Sie mit SELECT die Felder, die in der Hierarchie gewünscht werden, geben den Stamm des Datennetzwerks in der FROM-Klausel an und geben die Suchbedingung in der WHERE-Klausel an. Da das Datennetzwerk mehrere Hierarchien haben kann, bestimmen die in den SELECT- und WHERE-Klauseln verwendeten Felder, welche Hierarchie verwendet werden soll. Ausgehend von dem in der FROM-Klausel angegebenen Stamm werden die Verknüpfungen durch das Netzwerk verfolgt, um einen Pfad zu den angegebenen Feldern zu bestimmen. In den meisten Fällen ist der kürzeste, der zuerst gefunden wird, der richtige. In dem Fall, in dem der Pfad vieldeutig ist, ist es möglich, einen Pfad zu dem Feld anzugeben.
  • Um zu sehen, wie Felder in einem Datennetzwerk gefunden werden, ist das Datennetzwerk, das in Verknüpfung mit dem in den 8 und 9 gezeigten Beispiel verwendet wurde, zu betrachten. Die Abfrage wählt beispielsweise Reactants.CTAB aus Rxn. Die Suche beginnt bei der Rxn-Verknüpfung. Die Reactants-Verknüpfung wird gefunden, und sie kann verwendet werden, weil ihr FROMTABLE-Wert mit dem TOTABLE-Wert von Rxn übereinstimmt, und weil ihr FROMFIELD-Wert in dem Verbindungsfeld mit einem Ausgabefeld der Rxn-Verknüpfung übereinstimmt. (Es ist zu beachten, dass mehrere Reactants-Verknüpfungen vorhanden sein können. Die erste, deren Verbindungen mit denen von Rxn übereinstimmen, wird verwendet.) Die Reactants-Verknüpfung weist das Feld CTAB nicht als ein Ausgabefeld aus, also wird die Suche fortgesetzt. Danach wird die RctMol-Verknüpfung überprüft; ihr FROMTABLE-Wert und Verbindungsfeld stimmen mit der Reactants-Verknüpfung überein, und sie weist das CTAB-Ausgabefeld auf, so dass die Suche beendet wird.. 12 zeigt den Abschnitt des Datennetzwerks, der soeben beschrieben wurde.
  • In diesem Beispiel wird das CTAB-Feld gefunden, indem alle Verknüpfungen von Reactants geprüft werden, bis eine gefunden wird, die das CTAB-Feld aufweist. Es gibt jedoch Fälle, in denen es nützlich ist, dass Verknüpfungspfade explizit angegeben werden können, indem das PATH-Attribut des OutputField-Elements verwendet wird. Das PATH-Attribut ermöglicht die Angabe eines bestimmten Pfads, der für ein einzelnes Ausgabefeld verwendet werden soll.
  • Sobald ein Datennetzwerk beschrieben ist, kann es abgefragt werden, und Daten können durch die Verwendung der Unified Query Language (UQL) abgefragt werden. UQL basiert auf SQL mit Erweiterungen, um hierarchische Bezeichnungen und chemische Suchfunktionen zu unterstützen. Die SELECT-Liste des SQL-Ausdrucks bestimmt die Form der Hierarchie, die zurückgegeben wird, wobei die WHERE-Klausel bestimmt, welche Daten zurückgegeben werden. Da eine Hierarchie einen Stamm erfordert, wird dieser als der Wert der FROM-Klausel angegeben. Bei objektorientierter Terminologie ist das Ziel der FROM-Klausel das Objekt, zu dem Fragen gestellt werden. Die WHERE-Klausel ist die Frage, die gestellt werden soll, und die SELECT-Liste definiert die Informationen, die zurückgegeben werden sollen.
  • Im Allgemeinen lautet der Algorithmus, der vorzugsweise verwendet wird, um die Gruppe von Verknüpfungen für einen bestimmten hierarchischen Pfad, wie beispielsweise A.B.C.leaf, auszuwählen, wie folgt:
    • 1. Das übergeordnete Feld des Stammes und seine Verknüpfung müssen sich in der Liste von zulässigen Stämmen befinden.
    • 2. Alle übergeordneten Werte in dem Pfad müssen eine Bezeichnung aufweisen, die mit der Bezeichnung einer Verknüpfung übereinstimmt. Für eine Verknüpfung mit der Bezeichnung "B", die von der Verknüpfung "A" aus verwendet werden soll, muss das FromTable-Attribut von "B" mit dem ToTable-Attribut von "A" übereinstimmen. Außerdem müssen alle FromLink-Felder in "B" als Ausgabefelder in "A" gefunden werden.
    • 3. Wenn das Ast-Feld in den Ausgabefeldern in dem endgültigen übergeordneten Feld gefunden wird, ist die Suche abgeschlossen. (Wenn dieses Feld ein PATH-Attribut aufweist, sind die angegebenen Verknüpfungen ebenfalls notwendig.) Wenn das Ast-Feld nicht gefunden wird, werden die in dem PreferredPaths-Element angegebenen Verknüpfungen geprüft, ob dort das Ast-Feld zu finden ist. Falls nicht, wird eine umfassende Suche ausgeführt, um festzustellen, ob es irgendwelche Eins-zu-Eins-Verknüpfungen gibt, die das Ast-Feld ausgeben und eine Verknüpfung zu dem endgültigen übergeordneten Feld herstellen können.
  • Im Folgenden sind einige beispielhafte Abfragen und ihre daraus resultierenden Hierarchien zu finden:
    Figure 00170001
    Figure 00180001
  • Abfrage-Übersetzungsstrategien
  • Die IDS unterstützt wenigstens zwei verschiedene Strategien zum Übersetzen von Abfragen in SQL: eine verwendet nur Joins, und die andere verwendet Joins für Eins-zu-Eins-Beziehungen und IN-Klauseln für Eins-zu-Viele-Beziehungen. Die Join-Strategie ist der Standard, wenn keine Strategie angegeben ist. Die Strategie kann angegebenen werden, indem eine Eigenschaft in der Eigenschafts-Gruppe angegeben wird, die an IDBStatement.setUnifiedQuery übergeben wird:
    Figure 00180002
    Figure 00190001
  • Aufbau eines IDS-Datennetzwerks aus einem relationalen Datenmodell
  • Obwohl eine IDS in einer bevorzugten Ausführungsform keine objektorientierte Datenbank ist, ist es nützlich, ein Datenmodell beim Aufbau eines Netzwerks von IDS-Verknüpfungen aus einer Objektperspektive zu analysieren, um dieses Datenmodell darzulegen.
  • Bevorzugte Schritte beim Aufbauen eines derartigen Netzwerks umfassen Folgendes:
    • 1. Analysieren des Datenmodells, um zu bestimmen, welche "Objekte" dargelegt werden sollen. Objekte sind typischerweise gut definierte Entitäten, die einfach beschrieben werden können, (z.B. Angestellter, chemische Struktur, Stapelinformationen usw.). Sie sind normalerweise in einer oder mehreren Tabellen eingebettet, wobei eine die primären Daten oder wenigstens den Primärschlüssel für jedes Objekt enthält. Diese Objekte werden oft zu den Stämmen von Hierarchien, die aus dem Netzwerk abgeleitet werden.
    • 2. Analysieren des Vererbungsbaums dieser Objekte. Einige Datenmodelle machen umfangreichen Gebrauch von generischen Beschreibungen, die sich durch den Dateninhalt unterscheiden. IDS lässt die Bearbeitung derartiger Modelle zu, indem ein Objekt der unteren Ebene definiert wird, das dann erweitert wird, um bestimmte Objekttypen getrennt zu identifizieren. Ein typisches Beispiel stammt von Reaktions-Datenmodellen, in denen Reaktanten, Produkte, Katalysatoren usw. alle spezifische Instances einer chemischen Strukturdefinition einer unteren Ebene sind. In der IDS kann eine Definition dieser chemischen Struktur leicht erweitert werden, um die spezifischen Definitionen jeder der Komponenten zu unterstützen.
    • 3. Analysieren der Beziehungen von jedem dieser Objekte zueinander. Diese Analyse umfasst Vielfachheits- (Eins-zu-Eins, Eins-zu-Viele) und wechselseitige Beziehungen (Angestellter zu Manager, Manager zu Angestellter).
    • 4. Definieren von Verknüpfungen für jedes dieser Objekte, so dass alle relevanten Daten in einer Hierarchie dargelegt werden, die für das Objekt logisch ist. Es ist zu versuchen, jede Gruppe von Verknüpfungen als ein unabhängiges, in sich geschlossenes untergeordnetes Netzwerk zu erstellen. Jedes Objekt sollte eine einzelne Stammverknüpfung aufweisen, die einen Eingangspunkt zu dem untergeordneten Netzwerk bereitstellt. Weitere Verknüpfungen verbinden mit dieser Verknüpfung durch entsprechende Werte für die FromTable- und ToTable-Attribute und LinkFields.
    • 5. Modifizieren der Verknüpfungen für jedes der untergeordneten Netzwerke, um die Beziehungen zwischen den Objekten und dem Netzwerk widerzuspiegeln. Dies erfolgt über die Spezifizierung der FromTable- und ToTable-Attribute und LinkFields. Wenn ein Objekt Beziehungen mit mehr als einem anderen Objekt aufweist, kann eine einzelne Stammverknüpfung mehrmals erweitert werden, um diese Beziehungen widerzuspiegeln.
    • 6. Optimieren und Abstimmen des Netzwerks durch Hinzufügen von Verknüpfungen, die Daten umwandeln (PivotConnector), und die Daten aus externen Quellen (DataSourceConnector) integrieren. Bei Bedarf, basierend auf dem Leistungsverhalten, sind einige Verknüpfungen zu ändern, um einen zurückgestellten Abruf zu verwenden.
  • Die 1317 veranschaulichen Ablaufdiagramme, die im Detail beschreiben, wie eine UQL-Abfrage in Standard-SQL übersetzt wird. Der grundlegende Ansatz ist, dass die Abfrage in ihre grundlegenden Komponenten zerlegt wird, und jede dieser Komponenten wird analysiert, um zu bestimmen, welche Verknüpfungen erforderlich sind. Diese Verknüpfungen werden dann verwendet, um hierarchische Metadaten zu erstellen, wie durch die Abfrage definiert. Diese Metadaten werden verwendet, um die Komponenten der UQL zu übersetzen. Die Verknüpfungen selbst stellen die Tabellen und Joins bereit, die für die Ausführung der Abfrage notwendig sind.
  • Weitere Ausführungsformen
  • Eine alternative Ausführungsform konzentriert sich primär auf relationale Daten. Daten aus nicht-relationalen Quellen (Hview, XML usw.) können mit einigen Einschränkungen in das Datennetzwerk integriert werden.
  • Erstens ist die Verknüpfung zu der nicht-relationalen Datenquelle der Stamm ihrer Hierarchie. Beispielsweise können Beilstein-Daten aufgenommen, aber nur über den Stamm der Beilstein-Hierarchie verknüpft werden.
  • Zweitens müssen nicht-relationale Daten ein Endknoten in dem Datennetzwerk sein. Dies folgt aus dem ersten Punkt, da Verknüpfungen nur zu dem Stamm hergestellt werden können. Damit nicht-relationale Daten in der Mitte einer Hierarchie funktionieren können, wäre eine Verknüpfung von Daten einer unteren Ebene erforderlich.
  • Drittens können nicht-relationale Daten nicht als der Stamm von irgendeiner abgeleiteten Hierarchie funktionieren. Dies folgt aus der zweiten Bedingung.
  • Trotz dieser Einschränkungen ist die Integration von nicht-relationalen Daten ganz brauchbar. Beispielsweise konnte Beilstein, (ein Informationssystem für organische Chemie mit Millionen von chemischen Datensätzen und Reaktionen), unter Verwendung von ACD-(Available Chemicals Directory) Software verknüpft werden, um einen transparenten Abruf von Beilstein-Daten für jede ACD-Eingabe zu ermöglichen. Es ist des Weiteren zu beachten, dass die IDS selbst als eine nicht-relationale Quelle behandelt werden kann, so dass alle bestehenden IDS-Netzwerke über einen einzelnen Punkt miteinander verknüpft werden können
  • Zugreifen auf die IDS
  • Auf die IDS wird vorzugsweise wie auf jede andere Datenquelle zugegriffen.
  • Sie kann als ein neuer Typ von Datenquelle definiert und entweder als eine bezeichnete, initialisierte Instance oder eine nicht bezeichnete Instance erstellt werden, die mit Initialisierungs-XML bereitgestellt werden muss.
  • Initialisierungs-XML
  • Die Verknüpfungen, die ein Datennetzwerk beschreiben, werden vorzugsweise unter Verwendung von XML definiert, das in der Initialisierungs-XML für die IDS enthalten ist. Das Skelett der IDS-Initialisierung sieht aus wie folgt:
    Figure 00210001
    Figure 00220001
  • Das ConnectionAttributes-Element gibt die Bezeichnung einer relationalen Datenquelle an, welche die Verknüpfung zu den Daten bereitstellt, mit denen die IDS arbeitet. Das Roots-Element enthält eine Liste von Root-Elementen, von denen jedes die Bezeichnung eines zulässigen Stamms in der Hierarchie angibt. Das Properties-Element ermöglicht es, dass globale Eigenschaften der Datenquelle eingerichtet werden können.
  • Figure 00220002
  • Figure 00230001
  • Das ConnectionAttributes-Element
  • Das ConnectionAttributes-Element gibt die Bezeichnung einer relationalen Datenquelle an, welche die Verknüpfung zu den Daten bereitstellt, mit denen die IDS arbeitet..
  • Figure 00230002
  • Das Roots-Element
  • Das Roots-Element gibt an, welche Verknüpfungen als der Stamm einer abgeleiteten Hierarchie zulässig sind. (Man kann sich dies auch als die Angabe der Arten von Objekten vorstellen, die abgerufen werden können.) Es enthält eine Sammlung von Root-Elementen, von denen jedes eine einzelne Verknüpfung angibt. Als Annehmlichkeit beim Abfragen kann jede Stammverknüpfung auch eine oder mehrere bezeichnete vordefinierte Hierarchien angeben. Auf diese Hierarchien kann dann durch ihre Bezeichnungen in der FROM-Klausel einer UQL-Anweisung Bezug genommen werden. Zum Beispiel würde die XML über die UQL:
    select * from RxnRoot where...
    erweitert werden zu:
    select *,reactants.,products.* from Rxn where ...
  • Es ist zu beachten, dass, wenn eine vordefinierte Hierarchie verwendet wird, das einzige Element in der SELECT-Liste sein darf.
  • Figure 00240001
  • Es wird bevorzugt, nicht beides, NAME und ID, für das Stammelement anzugeben.
  • Das Initializer-Element
  • Das Initializer-Element gibt die Bezeichnung einer Java-Klasse an, welche die (im Folgenden erläuterte) IIDSInitializer-Schnittstelle angibt. Nachdem alle anderen Konfigurationsinformationen verarbeitet und spezifizierte Verknüpfungen erstellt worden sind, wird diese Klasse instanziiert, und die Schnittstelle wird zum Abrufen von zusätzlicher Konfigurations-XML verwendet.
  • Figure 00240002
  • Das Connectors-Element
  • Verknüpfungen können durch die Art von Daten, die sie verknüpfen (Tabellen, Datenquellen, Berechnungen usw.), ihre Vielfachheit (Eins-zu-Eins, Eins-zu-Viele), ob sie Daten sofort oder nur auf Anforderung abrufen, wie sie verbunden sind (durch Feld-Werte oder SQL-Anweisungen), und ob sie ein übergeordnetes Feld in der sich daraus ergebenden Hierarchie erstellen, klassifiziert werden. Gleichgültig, welche Besonderheiten eine bestimmte Verknüpfung aufweist, alle weisen vorzugsweise die gleiche grundlegende XML-Struktur auf:
    Figure 00250001
    Figure 00260001
    Figure 00260002
    Figure 00270001
  • Bemerkungen zur Verknüpfungs-XML:
    • 1) Wenn eine Verknüpfung durch Erweitern einer anderen erstellt wird, können alle Attribute und untergeordneten Elemente unwirksam gemacht werden, ausgenommen die tatsächliche Verknüpfungsart. Wenn ein untergeordnetes Element, wie beispielsweise LinkFields, unwirksam gemacht wird, wird der vererbte Wert vollständig ersetzt. Eine Ausnahme bildet das Properties-Element, bei dem die Eigenschaften zusammengeführt werden.
    • 2) Die Verwendung von TOTABLEALIAS ermöglicht es, mehrere Verknüpfungen zu der gleichen Tabelle herzustellen, wie beispielsweise bei den Reactants- und Products-Verknüpfungen in dem obigen Beispiel.
    • 3) Auf eine Tabelle in einer anderen Instance von Oracle kann (vorzugsweise) durch die Verwendung von Datenbank-Verbindungen und Synonymen verwiesen werden.
    • 4) Verweise auf Felder in der generierten SQL werden auf die enthaltende Tabelle (oder das Tabellen-Alias) eingeschränkt
    • 5) Wenn Verknüpfungen mit dem gleichen TOTABLE-Eintrag in zwei getrennten Verzweigungen unter einem übergeordneten Wert verwendet werden, ist für jede Verzweigung eine getrennte Verknüpfungsdefinition mit einem unterschiedlichen TOTABLEALIAS-Eintrag vorhanden. Dies geschieht, um Abfragen darzustellen, die beide Verknüpfungen gleichzeitig einbeziehen. (Ohne verschiedene Alias-Bezeichnungen könnte es mehrdeutige Verweise auf Felder geben.)
    • 6) Wenn mehrere Verknüpfungen mit der gleichen Bezeichnung vorhanden sind, kann nur eine von ihnen ein Stamm sein und muss in dem Roots-Abschnitt durch ihre ID identifiziert werden.
  • Das LinkField-Element
  • Das LinkField-Element enthält eine Liste von Verbindungsfeldern. Jedes LinkField-Element weist zwei Attribute auf, welche die Bezeichnungen der From- und To-Felder angeben.
  • Figure 00280001
  • Bemerkungen zur LinkField-XML:
    • 1) Die Bezeichnung des FROMFIELD wird als das linke Feld in einem Join verwendet, der entweder durch die FROMTABLE oder FROMTABLEALIAS eingeschränkt wird.
    • 2) Die Bezeichnung des TOFIELD wird als das rechte Feld in einem Join verwendet, der entweder durch die TOTABLE oder TOTABLEALIAS eingeschränkt wird.
  • Beispiel:
    Figure 00290001
  • Das FilterValues-Element
  • Das FilterValues-Element enthält eine Liste von Filterwerten. Jedes FilterValue-Element muss wenigstens ein TOFIELD-Attribut aufweisen, welches das Feld in den verbundenen Daten angibt, das abgefragt werden soll. Für einen einzelnen Filterwert weist jedes FilterValue-Element auch ein Value-Attribut auf. Alternativ können mehrere Werte durch mehrere Value-Elemente angegeben werden, von denen jedes einen einzelnen Wert enthält.
  • Figure 00290002
  • Beispiele:
    Figure 00290003
  • Figure 00300001
  • Das OutputField-Element
  • Das OutputFields-Element enthält eine Liste von OutputField-Elementen, von denen jedes ein einzelnes Feld angibt, das ausgegeben werden soll. Als Kurzbefehl kann das SELECT ALL-Attribut für das OutputFields-Element eingerichtet werden; damit wird veranlasst, dass alle Felder in der verknüpften Tabelle ausgegeben werden. (Diese Liste kann unter Verwendung der im Folgenden beschriebenen REMOVED/HIDDEN-Attribute bearbeitet werden.)
    Figure 00300002
    Figure 00310001
  • Bemerkungen zur OutputField-XML:
    • 1) Ein Feld mit einem PATH-Attribut muss eine Eins-zu-Eins-Datenbeziehung aufweisen. Abhängig von der oder den Verknüpfungen, die zum Zugreifen auf das Feld verwendet werden, kann sein Abruf entweder sofort oder zurückgestellt erfolgen. Der Vorteil, ein Feld mit einem PATH-Attribut anzugeben, besteht darin, dass es automatisch in die Ausgabefelder der Verknüpfung aufgenommen wird. Beispielsweise befindet sich das CTAB-Feld in dem obigen Reaktionsdatenmodell in der MOL-Tabelle. Wenn das CTAB-Feld in den Reactants/Products-Verknüpfungen mit einem PATH-Attribut angegeben wird, wird durch die Angabe von Reactants.* oder Products.* das CTAB-Feld automatisch in die abgeleitete Hierarchie aufgenommen. Ohne das PATH-Attribut müsste das CTAB-Feld in die SELECT-Liste unter Verwendung von Reactants.CTAB aufgenommen werden.
    • 2) Der Wert des PATH-Attributs kann ein durch Punkt getrennter Pfad von mehreren Verknüpfungen sein.
    • 3) Ein einfacher Kurzbefehl, wenn die meisten, wenn auch nicht alle Felder in einer Tabelle ausgegeben werden sollen, besteht darin, das SELECT ALL-Attribut in Verbindung mit den REMOVE- und HIDDEN-Attributen zu verwenden. Siehe die folgenden Beispiele.
    • 4) Der Wert von NAME wird in dem SELECT-Abschnitt der SQL-Anweisung verwendet, die durch TOTABLEALIAS oder TOTABLE eingeschränkt wird, wenn kein Alias angegeben ist.
    • 5) Wenn eine Funktion für NAME verwendet wird, müssen die Funktionsargumente bereits in Bezug auf die dazugehörigen Tabellen-Verweise eingeschränkt sein.
    • 6) Weitere Eigenschaften, die in dem OutputField-Element angegeben sind, würden in dem entsprechenden Feld in den sich daraus ergebenen Metadaten wiedergegeben werden.
  • Beispiele:
    Figure 00320001
  • Figure 00330001
  • Das OrderByClause-Element
  • Das OrderByClause-Element enthält eine Liste von OrderByClause-Elementen, von denen jedes ein einzelnes Feld angibt, das beim Sortieren verwendet werden soll, wenn Daten unter Verwendung dieser Verknüpfung als eine untergeordnet übergeordnete Verknüpfung abgerufen werden. (Das Sortieren auf der Stammebene muss unter Angabe der "Sortieren nach"-Klausel in der Abfrage erfolgen.)
    Figure 00330002
    Beispiele:
    Figure 00330003
    Figure 00340001
  • Das Property-Element
  • Das Property-Element enthält eine Liste von Property-Elementen, die sich auf die Funktion der Verknüpfung auswirken. Einige Eigenschaften können auch für die Datenquelle eingerichtet werden, um einen globalen Wert einzurichten. (Dieser globale Wert wird durch jeden verknüpfungsspezifischen Wert unwirksam gemacht.)
  • Figure 00340002
  • Figure 00350001
  • Figure 00360001
  • Angeben von Verknüpfungen
  • Verknüpfungen treten in einer Reihe verschiedener Arten auf. In einigen Fällen führt eine Verknüpfung zu mehrfachen Datensätzen, die eine Hierarchie erstellen. In anderen werden Felder aus mehreren Quellen in einen einzelnen Datensatz integriert. Manchmal wird ein Feld nur selten abgefragt, so dass es am besten ist, einen Abruf zurückzustellen, bis ein Wert angefordert wird. Jedes dieser Szenarios kann durch eine spezifische Verknüpfung bearbeitet werden. Im Folgenden ist eine Tabelle von bevorzugten Verknüpfungen und ihren grundlegenden Merkmalen zu finden:
    Figure 00360002
  • Verknüpfungsbesonderheiten
  • Für die Beispiele in der folgenden Beschreibung wird ein Datenmodell angenommen, das wie folgt aussieht:
    Figure 00360003
    und eine Verknüpfung für Table1, die wie folgt aussieht:
    Figure 00370001
  • Es wird angenommen, dass Root ein zulässiger Stamm der Hierarchie und ein Eingangspunkt in das Datennetzwerk ist. (Diese Verknüpfung definiert den nur den Zugriff auf Table1.)
  • OneToManyDataConnector
  • Diese Verknüpfung verbindet zwei relationale Tabellen mit einer Eins-zu-Viele-Beziehung mit den verbundenen Daten unter einem übergeordneten Feld. Der Abruf wird zurückgestellt, bis er angefordert wird. Die Verknüpfungsdefinition würde wie folgt aussehen:
    Figure 00370002
  • Die sich daraus ergebenden Metadaten würden wie folgt aussehen:
    Figure 00380001
  • OneToOneDataConnector
  • Diese Verknüpfung verbindet zwei relationale Tabellen mit einer Eins-zu-Eins-Beziehung mit den verbundenen Daten, die auf die gleiche Ebene der Hierarchie egalisiert wurden wie die Quelldaten. Der Abruf erfolgt zum gleichen Zeitpunkt, zu dem Daten für die Quelldaten abgerufen werden. Die Verknüpfungsdefinition würde wie folgt aussehen:
    Figure 00380002
  • Nach dem Kombinieren dieser Verknüpfung mit den Root- und Table2Parent-Verknüpfungen würden die sich daraus ergebenden Metadaten wie folgt aussehen:
    Figure 00380003
    Figure 00390001
  • Es ist zu beachten, dass die Table2_3Link-Verknüpfung keinen übergeordneten Wert erstellt.
  • OneToOneDeferredConnector
  • Diese Verknüpfung ist identisch mit der Verknüpfung OneToOneDataConnector, mit Ausnahme dessen, dass die Daten erst abgerufen werden, wenn sie angefordert werden. Die sich daraus ergebenden Metadaten sind identisch.
  • OneToOneParentConnector
  • Diese Verknüpfung ist identisch mit der Verknüpfung OneToOneDataConnector, mit Ausnahme dessen, dass sie ein übergeordnetes Feld erstellt, obwohl die Vielfachheit Ein-zu-Eins lautet. Dies kann nützlich sein, um Datenbeziehungen zu klären. In der Datensatzgruppe von dem übergeordneten Feld befindet sich höchstens ein einzelner Datensatz. Die Bezeichnung des übergeordneten Felds ist die Bezeichnung der Verknüpfung.
  • PivotConnector
  • Diese Verknüpfung erweitert die Funktionalität der Verknüpfung OneToManyDataConnector, indem gestattet wird, die Daten transparent zu drehen. Wenn die gedrehten Spalten in dem XML-PivotedFields-Element angegeben werden, kann die Abfrage über die gedrehte Struktur erfolgen und automatisch durch die Verknüpfung übersetzt werden. Die Konfiguration dieser Verknüpfung gibt alle Informationen an, die erforderlich sind, um die einmal gedrehte Datensatzgruppe in einer Form zu erstellen, die mit der Verknüpfung OneToManyDataConnector identisch ist, und fügt zusätzliche Informationen unter dem PivotParams-Element hinzu, das angibt, wie die Drehung erfolgen soll. Der Inhalt des PivotParams- Elements ist identisch mit demjenigen des PivotRecordset zuzüglich des PivotedFields-Elements.
  • Der Inhalt des PivotedFields-Elements liegt im standardmäßigen Metadaten-XDfile-Format vor. Die Felder müssen die Spalten definieren, die sich aus dem Drehvorgang ergeben. Jede Feld-Spezifikation muss einen Typ enthalten, der mit ihren gedrehten Daten konsistent ist. Felder mit Aliasbezeichnung werden mit dem Alias als der Wert der NAME-Eigenschaft und der tatsächlichen Spaltenbezeichnung in der NATIVENAME-Eigenschaft angegeben.
  • Figure 00400001
  • Figure 00410001
  • CalculatorConnector
  • Diese Verknüpfung gestattet die Verwendung von kundenspezifischen Rechenprogrammen in einem Datennetzwerk. Die Verknüpfung OneToOneDeferredConnector wird damit so erweitert, dass, wenn eine Berechnung mehrere Werte zurückgibt, sie in mehreren Feldern übergeben werden müssen. (Es ist zu beachten, dass einfache Berechnungen mit der UQL selbst ausgeführt werden können.) Die tatsächliche Berechnung wird durch eine Java-Klasse ausgeführt, welche die (im Folgenden erläuterte) IIDSCalculator-Schnittstelle implementiert. Beispielsweise:
    Figure 00420001
  • Es ist zu beachten, dass die Verbindungsfelder alle Felder in der übergeordneten Verknüpfung angeben sollten, die von der Berechnung verwendet werden, da dadurch gewährleistet wird, dass sie abgerufen werden. Alle für die Berechnung abgerufenen Felder werden nicht verborgen, da sie für die Berechnungs-Implementierung zugänglich sein müssen. Da eigentlich keine Verbindung durchgeführt wird, ist kein TOFIELD-Attribut erforderlich. Jedes OutputField-Element sollte den durch die Berechnung zurückgegebenen Datentyp angeben. Es ist zu beachten, dass eine einzige Rechenprogramm-Implementierung mehrere Werte in mehreren Feldern zurückgeben kann. Die Klasse, welche die Rechenprogramm-Schnittstelle (IIDSCalculator) implementiert, wird in der CALCULATORCLASS-Eigenschaft angegeben.
  • DataSourceConnector
  • Diese Verknüpfung gestattet es, Hierarchien aus anderen Datenquellen in eine abgeleitete Hierarchie aufzunehmen. UQL-Suchbegriffe können verwendet werden, um übergreifend Felder sowohl der externen Hierarchie als auch der IDS-Hierarchie zu durchsuchen. Auf die externe Datenquelle wird als eine einzige feste Hierarchie zugegriffen. Da die Suchvorgänge dieser externen Datenquellen bis zum Abschluss durchgeführt werden müssen, können bei der Verwendung dieser Verknüpfung leistungsbezogene Kosten entstehen. Die Initialisierung von XML für DataSourceConnector verläuft ziemlich unterschiedlich von den anderen:
    Figure 00430001
    Figure 00440001
    Figure 00440002
  • Bemerkungen zu DataSourceConnector
    • 1) Nur eine feste Hierarchie kann über die Datenquellenverknüpfung integriert werden. Die Werte von RootName oder des CatalogProperties-Elements werden verwendet, um anzugeben, welche Hierarchie zu verwenden ist.
    • 2) Der Wert des bzw. der LinkField-Elemente gibt an, wie die Felder in der übergeordneten Datenquelle und der externen Datenquelle zueinander in Beziehung stehen.
  • Glossar
  • Dieses Glossar enthält Begriffe, die in dieser Beschreibung verwendet wurden.
  • Figure 00450001
  • Figure 00460001
  • Figure 00470001
  • Figure 00480001
  • IDS-spezifische Schnittstelle
  • Schnittstelle IIDSCalculator
  • Öffentliche Schnittstelle IIDSCalculator
  • Kundenspezifische Rechenprogramme müssen diese Schnittstelle implementieren.
  • Figure 00490001
  • Figure 00500001
  • Schnittstelle IIDSInitializer
  • Öffentliche Schnittstelle IIDSInitializer
  • Diese Schnittstelle wird zur kundenspezifischen Initialisierung verwendet.
  • Figure 00500002
  • Figure 00510001
  • Verwendungs-Szenarios
  • Dieser Abschnitt stellt Szenarios bereit, welche die Vorteile der Verwendung der IDS in verschiedenen Ausführungsformen veranschaulichen.
    • 1. Ein Wissenschaftler kann eine beliebige IDS-Abfrage unter Verwendung einer Integrationsdatenquelle assemblieren. Sie können eine Liste von Rückgabedatenfeldern unter Verwendung der gleichen Definition der Integrationsdatenquelle erstellen. Die sich daraus ergebenden Daten gestatten den Datenabruf in einer Reihe von Anzeigeformaten, die von den Datenquellen unabhängig sind. Die Integrationsdatenquelle wickelt Abfrage und Datenabruf-Optimierung ab, verbirgt die internen Komplexitäten und stellt die grundlegende Funktionalität für eine benutzerfreundliche Arbeitsumgebung bereit. Sobald die IDS-Abfrage aufgebaut ist, kann die IDS eine Rückmeldung zur Abfragegültigkeit bereitstellen. Die Abfrage kann dann für eine optimale Leistung zur Abfrage-Ausführung und zum Daten-Abruf konstruiert werden. Dem Benutzer kann dann mit Indikatoren angezeigt werden, dass die Abfrage sachgemäß ausgeführt wird. Der Wissenschaftler kann die Abfrage/Ergebnis-Ausführung während der Abfragephase und während der Ergebnis-Abrufphase unterbrechen. In idealer Weise wird die Suchvorgang-Unterbrechung von Oracle abgewickelt. Auf Anwendungsebene kann der Wissenschaftler eine Pause einlegen und die Ergebnis-Abrufphase fortsetzen oder beenden.
  • Das Ergebnis dieser Fähigkeit ist, dass ein Chemiker, der sich hauptsächlich für die Chemie-Aspekte in der Arzneimittelforschung interessiert, seine Abfragen in einer mehr "auf Chemie konzentrierten" Ausrichtung entwickeln kann, während ein Biologie seine Abfragen in einer mehr "auf Biologie konzentrierten" Ausrichtung entwickeln könnte. Die Gewichtung jeder Ausführung von Abfragen/Ergebnissen würde von zwei Faktoren abhängen: dem Abfrage-Begriff und der Konfiguration der IDS. Die gleiche IDS könnte sowohl chemisch als auch biologisch ausgerichtete Abfragen unterstützen. Ein Wissenschaftler kann eine Voreinstellung für die Rückgabe von chemisch oder biologisch ausgerichteten Ergebnissen einrichten, ungeachtet der Art der ausgeführten Abfrage, und Listen-Operationen an den sich daraus ergebenden Datensatzgruppen durchführen.
    • 2. Ein Administrator hat vorher eine IDS für Abfrage/Ergebnis-Abruf von biologischen, chemischen und bestandsbezogenen Informationen vorbereitet, sie getestet und angewendet. Er erstellte eine einzige IDS-XML-Konfigurationsdatei für die Zugänglichkeit durch Biologen, Chemiker und Lager-Mitarbeiter. Sie müssen dann jedoch diese Datenquellen in eine neue Lösung integrieren, ohne die laufenden Abfrage-/Abruf-Operationen zu unterbrechen, die unabhängig voneinander von jeder Gruppe durchgeführt werden.
  • Der Administrator kann neue Entitäts-Hierarchien zu den bestehenden hinzufügen, ohne gezwungen zu sein, den Verknüpfungs-XML-Code zwischen den bestehenden biologischen, chemischen und bestandsbezogenen Tags zu kopieren. Er kann eine biologisch-chemische, chemisch-biologische und jede andere Kombination von Entitäts-Hierarchien in jeder Reihenfolge erstellen, ohne den bestehenden XML-Code zu replizieren. Typische Entitäts-Arten umfassen chemische, biologische und bestandsbezogene, könnten aber viele andere umfassen, wie vom Fachmann erkannt wird.
  • Der Administrator kann diese Operation durchführen, indem er bestehende Entitäts-Hierarchien in ihren verschiedenen Kombinationen einfach verknüpft, um ein diversifizierteres integriertes Abfrage-/Ergebnisabruf-System bereitzustellen. Danach können Chemiker über andere wissenschaftliche Bereiche übergreifend suchen, wobei die neuen Entitäts-Hierarchien verwendet werden. Wenn ein Chemiker nur einen Suchvorgang/Ergebnisabruf in Bezug auf die chemischen Daten ausführt, wird die alte chemische Entitäts-Hierarchie automatisch wie vorher verwendet, und er erhält die gleichen Ergebnisse auf Stammebene.
    • 3. Ein Benutzer oder Entwickler öffnet eine Integrationsdatenquelle und führt eine Suche über eine Stammhierarchie aus. Der Benutzer gibt die daraus resultierenden Treffer in ein großes Dokument zurück und zeigt die Daten in einem kleinen Fenster auf dem großen Dokument an. Beim Durchblättern der ursprünglichen Daten hat der Benutzer eine zündende Idee in Bezug auf einige zugehörige Daten und möchte dann eine weitere Abfrage über eine zweite Datenquelle ausführen, ohne den Inhalt der ursprünglichen Suche zu verlieren. Sie können eine zweite Suche auf Stammebene durchführen und die Daten anzeigen, ohne dass sich dies auf den Inhalt der ursprünglichen Suche auswirkt. Die Wirkung besteht darin, dass verschiedene IDS-Stämme unabhängig voneinander durchsucht werden können, ohne sich gegenseitig zu beschädigen oder zurückzusetzen. Der einzige Zeitpunkt, zu dem der ursprüngliche Inhalt der Suche ersetzt oder ungültig gemacht werden würde, ist derjenige, zu dem der ursprüngliche Stamm erneut verwendet wird, um eine Suche auszuführen.
  • Diese Fähigkeit, mehrere Suchvorgänge über verschiedene IDS-Stämme gleichzeitig auszuführen und anzuzeigen, weist bedeutende Vorteile in der Anwendungsauslegung und -nutzbarkeit auf.
    • 4. Ein Endbenutzer versucht, eine Suche nach einer Reihe von Reagenzien durchzuführen. Der Benutzer verwendet eine Reihe von Datenbanken (ACD, Aldrich und eine interne Lagerraum-Datenbank). Die Suche war eine einfache SSS nach der Grundstruktur. Der Benutzer gibt eine Struktur in ein Feld in der Maske ein. Die Suche wird ausgeführt, und die Ergebnisse werden als der erste Datensatz und die Gesamtanzahl der Treffer aus allen Datenquellen und die Anzahl der Treffer in jeder der Datenbanken angezeigt. Der Benutzer blättert dann durch jeden Datensatz und wählt aus, welche Datensätze von dem Anbieter angefordert werden sollten.
    • 5. Ein Endbenutzer sucht nach einer Struktur, die auf einer Struktur und Kriterien aus einer Gruppe von Regelungstabellen basiert. Die Regelungstabellen sind Listen von IDs und der Art der Substanz und der Berechtigung des Benutzers, die ausgewählte Struktur anzufordern und mit ihr zu arbeiten. Eine Liste mit Strukturen wird von der Abfrage zurückgegeben und auf dem Bildschirm angezeigt. Der Benutzer wählt eine Verbindung und zeigt die Struktur und alle relevanten Verbindungsdaten an. Der Benutzer wählt eine Registerkarte, welche die Struktur, ID und alle regulatorischen Daten für diese Struktur anzeigt.
    • 6. Ein Administrator empfängt eine Datei mit allen neuen geregelten Substanzen, die nach CAS-Nummer und Bezeichnung aufgelistet sind. Der Administrator muss nun alle CAS-Nummern durchsuchen und eine Liste mit Strukturen generieren, die diesen Nummern entsprechen. Dann müssen für alle Instances dieser Strukturen ihre Primärschlüssel in einer Querverweistabelle für geregelte Daten registriert werden.
    • 7. Ein Biologe hat einen Einfall für eine Verbindungsart für eine neue Rezeptorenstelle. Der Biologe möchte nach allen historischen Verbindungen, die gute ADME-Nummern haben, in dem Test-Probenraum suchen und sie anzeigen. Der Biologe möchte sehen, welche Tests vorher mit diesen Verbindungen durchgeführt worden sind. Die Biologiedaten sind in einer Gruppe von langen, schmalen Tabellen gespeichert. Der Biologie gibt die untergeordnete Struktur und den ADME-Schwellenwert ein, der eine akzeptable Ebene bereitstellt, um die Verbindung in das System zu laden. Der Biologe kennt den Test, aber nicht die Datenbanken und braucht Hilfe bei der Abfrage, da die Daten systembedingt in keiner durchsuchbaren Form vorliegen. Die Suche wird durchgeführt, und die Strukturen und alle vorher an den Verbindungen durchgeführten Tests werden dann auf dem Bildschirm angezeigt.
    • 8. Hierarchien während einer Reihe von eingrenzenden Suchen ändern Argument: Einer der Hauptkritikpunkte bei den HVIEWS war die Tatsache, dass jede "Datenbank" eine vordefinierte Hierarchie aufwies. Wenn der Stamm geändert werden musste, musste eine andere Datenbank geöffnet werden, selbst wenn sie auf die gleichen Daten zugriff.
  • Beschreibung: Durchsuchen von Reaktionen und der Ergebnisgruppe; Eingrenzen der Suche mit Produkt-Molekül-bezogenen Kriterien.
  • Schritte:
    • i) Eine IDS mit Reaktion, Molekülrolle (1:n), Molekül (1:1) und Molekül-Eigenschaften (1:n) öffnen
    • ii) Reaktionssuche (RSS) durchführen
    • iii) Reaktionsbasierten Datensatz durchsuchen und zu verschiedenen Molekülen zugehörige Daten anzeigen
    • iv) Liste in Produktmoleküle umwandeln
    • v) Suche in den Produktmolekülen durchführen (z.B. nicht-strukturell, vielleicht eigenschaftsbezogen)
    • vi) Produkt-Molekül-basierte Datensatzgruppe durchsuchen und zu Reaktionen sowie Moleküleigenschaften zugehörige Daten anzeigen
    • 9. Ein Benutzer führt eine Suche auf der unteren Ebene in einer IDS durch und erhält eine hierarchische Datensatzgruppe. Der Benutzer möchte dann eine zweite Suche in dieser gleichen Hierarchie durchführen, indem die Suchdomäne auf die untere Ebene eingerichtet wird, in der er die vorherige Suche durchgeführt hatte. Der Benutzer kann die Domäne der unteren Ebene einrichten, um den Inhalt seiner nachfolgenden Suchvorgänge weiter einzugrenzen..
  • Er kann auch Suchvorgänge auf jeder Ebene in der IDS-Hierarchie durchführen und dann die aktuelle Such-/Anzeige-Domäne für diese oder jede andere Ebene in der Hierarchie einrichten. Die Alternative dazu ist, dass der Benutzer gezwungen wäre, viel komplexere Abfragen auszuführen, um die Treffer seiner Suche weiter einzugrenzen, und dies würde wahrscheinlich zu beträchtlichen Leistungsproblemen führen.
    • 10. Ein Biologe zeigt fünf Assays (als den Stamm) an, die Ergebnisse mit Molekülinformationen enthalten. Die Datensatzgruppe stellt insgesamt 100 Moleküle dar. Der Biologie würde die Ergebnisse gerne umdrehen und mit dem Molekül als Stamm anzeigen. Er kann die Abfrage erneut ausführen und den Stamm so einrichten, dass er Molekül lautet, und die Molekül-IDs aus der Datensatzgruppe verwenden, um die vorherige Datensatzgruppe nach Molekül geordnet anzuzeigen, d.h. der Benutzer bekommt 100 Datensätze zu sehen und sieht alle Assay-Ergebnisse, die zu jeder Struktur gehören.
    • 11. Verknüpfungen unterstützen die Verwendung der Oracle Text- und Oracle XMLDB-Funktionalität. Beispielweise werden SELECT-Anweisungen wie die Folgenden unterstützt:
      Figure 00550001
      Figure 00560001
  • Dies ermöglicht die Integration von Suchvorgängen in Dokumente, Datensätze usw..
  • Obwohl die hierin gezeigten und beschriebenen Ausführungsformen völlig in der Lage sind, die Aufgaben der Erfindung zu erfüllen, muss klar sein, dass diese Ausführungsformen nur zum Zweck der Veranschaulichung und nicht zum Zweck der Einschränkung gezeigt werden, und dass für den Fachmann unter Berücksichtigung der vorhergehenden Beschreibung Variationen offenkundig sind.
  • Anhang A: Ein vollständiges Beispiel
  • Das folgende ist eine vollständige Definition von Verknüpfungen für den Zugriff auf ein bevorzugtes Datenmodell. Es gestattet, dass Moleküle, CAS-Nummern, Produkte, Pakete oder Kataloge der Stamm der abgeleiteten Hierarchie sein können. 3 ist eine grafische Ansicht des Netzwerks.
  • Figure 00570001
  • Figure 00580001
  • Figure 00590001
  • Figure 00600001
  • Figure 00610001
  • Figure 00620001
  • Figure 00630001
  • Anhang B: Beispielhafte IDS-Muster
    Figure 00640001
  • Figure 00650001
  • Anmerkungen:
    • 1. Das Feld CorpID wird nicht abgerufen, wenn ein Ausdruck Alle auswählen, z.B. select * from Mol verwendet wird, weil es nicht als ein Ausgabefeld der Mol-Verknüpfung angegeben ist. Damit CorpID in diesem Fall abgerufen wird, muss explizit darauf verwiesen werden, wie in select *, corpID from Mol. Damit wird die Abfrage-Analyseroutine informiert, dass nach einer Verknüpfung gesucht werden soll, die das Feld CorpID bereitstellen kann.
    • 2. Dieses Muster wird wahrscheinlich nicht sehr oft verwendet, weil es erfordert, dass direkt auf ein Feld verwiesen wird, und dann die Kosten des unmittelbaren Abrufs entstehen. Diese Art von Beziehung wird wahrscheinlicher eine explizite Verbindung mit oder ohne zurückgestelltem Abruf verwenden.
    • 3. Es ist zu beachten, dass, wenn CorpID in der SELECT-Liste angegeben wird, jeder Abruf von Daten aus der Mol-Verknüpfung die Joins und den Abruf von Werten der CorpID-Tabelle umfasst. (Dies ist der unmittelbare Abruf.) Zum Zurückstellen des Abrufs, siehe das zugehörige Muster, das angibt, wie der Abruf zurückgestellt wird.
    • 4. Dieses Muster ist nützlich, wenn ein Feld nur selten abgerufen wird. Das Feld CTAB ist ein Beispiel dafür. Es kann für den Client nicht abgerufen werden, weil es in nichts Nützliches umgewandelt werden kann. Es wird jedoch manchmal durch untergeordnete Abfragen abgerufen. Zum Beispiel select from mol where sss (ctab, select ctab from Mol where cdbregno=1) = 1. Dieses Muster macht das Feld für den Abruf verfügbar, aber nur, wenn explizit darauf verwiesen wird.
  • Figure 00660001
  • Anmerkungen:
    • 1. Eine explizite Verbindung zwischen Verknüpfungen, angegeben durch das PATH-Attribut, gestattet es, dass die Verbindung vor dem Benutzer vollständig verborgen wird. In diesem Fall ruft eine Abfrage Alle auswählen, z.B. select * from Mol, CorpID ab, weil es als ein Ausgabefeld von der mol-Verknüpfung angegeben worden ist.
    • 2. Es ist zu beachten, dass jeder Abruf von Daten aus der Mol-Verknüpfung die Joins und den Abruf von Werten der CorpID-Tabelle umfasst. (Dies ist der unmittelbare Abruf.) Zum Zurückstellen des Abrufs, siehe das zugehörige Muster, das angibt, wie der Abruf zurückgestellt wird.
  • Figure 00670001
  • Figure 00680001
  • Anmerkungen:
    • 1. Dieses Muster ist mit dem vorherigen identisch mit Ausnahme dessen, dass die Verknüpfung OneToOneDataConnector durch eine Verknüpfung OneToOneDeferredConnector ersetzt wird. Diese Änderung bewirkt, dass der Abruf des CorpID-Werts zurückgestellt wird, bis er tatsächlich angefordert wird. Für den Abruf muss eine zusätzliche SQL-Anweisung ausgeführt werden.
    • 2. Dieses Muster wird typischerweise für Daten verwendet, deren Abruf entweder teuer ist oder deren Datentyp mit SQL-Abfragen inkompatibel ist. (Beispielsweise können BLOBS nicht in einer SQL-Anweisung abgerufen werden, die den eindeutigen Operator enthält.)
    • 3. Dies zeigt auch, dass mehr als ein Feld von einer Eins-zu-Eins-Verknüpfung bearbeitet werden kann.
  • Figure 00690001
  • Figure 00700001
  • Anmerkungen:
    • 1. Dieses Muster ist identisch mit dem vorherigen mit Ausnahme dessen, dass die verbundenen Daten das Ergebnis eines Funktionsaufrufs sind
    • 2. Dieses Muster wird aus dem gleichen Grund verwendet wie das vorherige: zum Zurückstellen teurer oder inkompatibler Abrufe. Es verbirgt auch die Komplexitäten von Funktionsaufrufen vor dem Benutzer.
    • 3. Es ist zu beachten, dass die Verknüpfungen mit der gleichen Tabelle verbunden sind.
  • Figure 00700002
  • Figure 00710001
  • Anmerkungen:
    • 1. Dieses Muster ist dem vorhergehenden ähnlich mit Ausnahme dessen, dass es zeigt, wie das explizite PATH-Attribut einen Mehrfach-Verknüpfungspfad angeben kann.
    • 2. Wenn eine andere Verknüpfung vorhanden ist, die den CorpID-Wert zum Verbinden der Mol-Verknüpfung verwendet, kann sie CorpID als das FROMFIELD angeben, und die Verweistabellen werden transparent bearbeitet. Dies wird in einem folgenden Eins-zu-Viele-Muster gezeigt.
  • Figure 00720001
  • Figure 00730001
  • Anmerkungen:
    • 1. Eine untergeordnete Muster-Beziehung ist manchmal nützlich zum logischen Gruppieren von Daten, auch wenn die Datenbeziehung Eins-zu-Eins ist.
    • 2. Dieses gleiche Muster kann verwendet und das gleiche Ergebnis erhalten werden, auch wenn sich die Adressdaten in der gleichen Tabelle befinden wie der Rest der Firmendaten. In diesem Fall wäre das TOTABLE-Attribut der Adressen-Verknüpfung nur die gleiche Firmen-Tabelle.
  • Figure 00730002
  • Figure 00740001
  • Anmerkungen:
    • 1. Wenn strukturierte Daten als BLOBS in einer RDBMS gespeichert sind, kann eine Wrapper-Klasse zum Bearbeiten dieser Daten erforderlich sein. Dieses Muster stellt eine Möglichkeit bereit, mit dieser Situation umzugehen. Wenn das FIELDWRAPPER-Attribut angegeben ist, gibt die IDS die Daten automatisch als eine Instance der angegebenen Klasse zurück. Weitere Informationen sind den Angaben zur FieldWrapper-Klasse zu entnehmen.
  • Figure 00740002
  • Figure 00750001
  • Figure 00760001
  • Anmerkungen:
    • 1. Dieses Muster gestattet die Aufnahme von externen Berechnungen in eine Verknüpfungsausgabe. Die Berechnung wird durch die angegebene Berechnungs-Klasse ausgeführt, welche die IIDSCalculator-Schnittstelle implementieren muss, die in der CALCULATORCLASS-Eigenschaft angegeben wird.
    • 2. Die Felder, welche die Eingabedaten für die Berechnung bereitstellen, sollten als Verbindungsfelder in der Verknüpfung CalculatorConnector angegeben werden.
    • 3. Berechnete Felder werden automatisch als nicht durchsuchbar gekennzeichnet.
    • 4. Die Rechenprogramme werden ohne eine explizite Verbindung definiert, aber eines hätte über das PATH-Attribut angegeben werden können.
  • Figure 00760002
  • Figure 00770001
  • Anmerkungen:
    • 1. Dies ist das Standardmuster, das für fast alle Eins-zu-Viele-Beziehungen verwendet wird. Der Abruf wird immer zurückgestellt.
  • Figure 00770002
  • Figure 00780001
  • Figure 00790001
  • Figure 00800001
  • Anmerkungen:
    • 1. Tabellen-Aliasbezeichnungen müssen verwendet werden, weil die gleichen Tabellen in verschiedenen Joins verwendet werden können. Wenn keine Aliasbezeichnungen verwendet werden, stellen Abfragen nicht die korrekten Ergebnisse bereit.
    • 2. Andere Komponenten (Katalysatoren, Lösungsmittel usw.) können durch weitere Erweiterungen zur ComponentBase-Verknüpfung ausgesplittet werden.
  • Figure 00800002
  • Figure 00810001
  • Figure 00820001
  • Anmerkungen:
    • 1. Dieses Muster verwendet die Verknüpfung DataSourceConnector, welche die Verknüpfung OneToManyDataConnector erweitert, um nicht- relationale Datenquellen zu bearbeiten. Die Verwendung der Verbindungsfelder bleibt jedoch die gleiche.
    • 2. ACD-MDL-Nummern stehen mit Beilstein-BRNs in Beziehung unter Verwendung der CTB5-Verweistabelle. Die Art dieser Tabelle erfordert 2 unabhängige Verweistabellen, von denen jede die Verwendung von verschiedenen Filtern erfordert. Dies erfolgt über die 2 Verknüpfungen und Tabellen-Aliasbezeichnungen.
    • 3. Die Beilstein-Verknüpfung verwendet das Feld Compound_ID zum Verbinden ohne Berücksichtigung, dass ihr Abruf zurückgestellt wird und 2 weitere Verknüpfungen für den Zugriff erforderlich sind. Wenn das übergeordnete Beilstein-Feld abgerufen wird, wird die SQL, die zum Abrufen des Felds Compound_ID erforderlich ist, ausgeführt, und ihr Wert wird dann von der Beilstein-Verknüpfung verwendet. Diese zusätzlichen Schritte erfolgen transparent, ohne vom Benutzer oder der Beilstein-Verknüpfung gesehen zu werden.
  • Figure 00830001
  • Figure 00840001
  • Figure 00850001
  • Anmerkungen:
    • 1. Dieses Muster veranschaulicht die Verwendung des Drehens zum Umwandeln von Daten. Die Aufnahme des <MetaData>-Elements stellt eine Möglichkeit bereit, anzugeben, wie die gedrehten Daten aussehen werden, die es gestatten, dass Abfragen transparent ausgeführt werden. Ohne ein <MetaData>-Element müssen Abfragen über nicht-gedrehte Daten erfolgen, was ziemlich benutzerfeindlich ist. Es ist zu beachten, dass diese Verknüpfung dynamisch (on-the-fly) während der IDS-Initialisierung konfiguriert werden kann, so dass der Inhalt des <MetaData>-Elements während der Laufzeit bestimmt werden kann. Details sind in den Angaben zur IIDSInitializer-Schnittstelle zu finden..
    • 2. Die Übersetzung von Eigenschaftskennung (PropID) in Eigenschaftsbezeichnung (Name) erfolgt über die PropIDToName-Verknüpfung, die automatisch aufgerufen wird, wenn festgestellt wird, dass das Feld Name durch die Verknüpfung PivotConnector selbst nicht definiert ist.
    • 3. Abfragen über gedrehte Daten können komplex sein, weil jede Abfrageklausel in mindestens 2 verschiedene Klauseln übersetzt wird, die über die nicht-gedrehten Daten ausgeführt werden. Jeder dieser Ausdrücke muss ein anderes Tabellen-Alias verwenden, um zu verhindern, dass sich die Tabellen gegenseitig störend beeinflussen. Die Verknüpfung PivotConnector bearbeitet dies transparent.
  • 18 zeigt ein System zum Abfragen von einer oder mehreren Datenbanken in Übereinstimmung mit einer bevorzugten Ausführungsform der Erfindung. Das System 1800 umfasst ein Benutzer-Datenendgerät 1802, das an einen Abfrage-Server 1806 über ein Datenübertragungs-Netzwerk 1804 angeschlossen ist. Der Abfrage-Server 1806 steht in Verbindung mit einem oder mehreren Datenbank-Servern 1808a–c. Jeder Datenbank-Server 1808a–c umfasst eine oder mehrere Datenbanken 1800a–c, wobei jede Datenbank eine oder mehrere Dateien enthält, in denen Daten gespeichert sind. Jeder Datenbank-Server 1808a–c umfasst Datenbank-Management-Software zum Verwalten einer entsprechenden Art von Datenbank (beispielsweise umfasst der Datenbank-Server 1810a Software zum Verwalten einer relationalen Datenbank, während die Datenbank-Software 1810b Software zum Verwalten einer hierarchischen Datenbank umfasst). Alternativ oder zusätzlich umfasst jeder Datenbank-Server eine Datenbank, die Daten enthält, die durch einen entsprechenden Daten-Anbieter bereitgestellt werden. Die Datenbank-Server sind betriebsfähig zum Ausführen von Datenbank-Abfragen mittels der Datenbank-Management-Software. Der Abfrage-Server 1806 integriert den einen oder die mehreren Datenbank-Server 1808a–c, so dass auf jeden der Datenbank-Server (und ihre entsprechenden Datenbanken 1810a–c) durch das Benutzer-Datenendgerät 1802 über den Abfrage-Server zugegriffen werden kann. Das Benutzer-Datenendgerät 1902 ist so ausgelegt, dass es ein Computerprogramm zum Definieren eines Datennetzwerks, (beispielsweise Software zum Bearbeiten von XML) und Software zum Bilden einer Datenbankabfrage ausführt. Einige oder alle der vorher genannten Funktionalitäten des Benutzer-Datenendgeräts 1802 können zusätzlich oder alternativ durch den Abfrage-Server 1806 bereitgestellt werden.
  • Somit wurde ein Verfahren zum Abfragen von einer oder mehreren Datenbanken beschrieben, wobei das Verfahren die folgenden Schritte umfasst: (a) Definieren, (beispielsweise in den Benutzer-Datenendgeräten 1802 oder dem Abfrage-Server 1806), eines Datennetzwerks, das eine Vielzahl von Datenquellen umfasst, die in einer Hierarchie durch eine oder mehrere Verknüpfungen verbunden sind, und (b) Bilden einer Datenbank-Abfrage, (wiederum beispielsweise in den Benutzer-Datenendgeräten 1802 oder dem Abfrage-Server 1806), die ein Attribut einer Verknüpfung enthält. Beispielsweise kann die Verknüpfung ein Attribut, (wie beispielsweise ein Attribut Connector NAME) zum Identifizieren der Verknüpfung enthalten und/oder ein Attribut, (wie beispielsweise ein Attribut OutputField NAME), zum Angeben von wenigstens einem Teil einer Datenquelle (beispielsweise eine Datenbanktabelle oder eine Spalte einer Datenbanktabelle, die in einer Datenbank 1810a–e von einem der Datenbank-Server1808a–c gespeichert ist), die mit der Verknüpfung verknüpft ist (oder durch sie verbunden wird).
  • Vorzugsweise umfasst das Verfahren des Weiteren den Schritt (c) des Ausführens der Datenbank-Abfrage. Beispielsweise kann die Abfrage auf dem Abfrage-Server 1806 und/oder auf einem oder mehreren der Datenbank-Server 1808a–c ausgeführt werden. Die Abfrage kann vorzugsweise aufgespalten werden, so dass verschiedene Teile der Abfrage auf einem entsprechenden Datenbank-Server ausgeführt werden. Vorzugsweise umfasst das Verfahren des Weiteren den Schritt (d) der Rückgabe von Daten, (beispielsweise über den Abfrage-Server 1806 an das Benutzer-Datenendgerät 1802), die sich aus dem Schritt des Abfragens der Datenbank ergeben. Vorzugsweise werden die Daten in einem Format zurückgegeben, das auf dem definierten Datennetzwerk basiert.
  • Vorzugsweise sind die Datenquellen Knoten wie die hierin beschriebenen. Vorzugsweise ist wenigstens eine der Datenquellen eine Tabelle einer relationalen Datenbank oder Teil einer derartigen Tabelle (beispielsweise eine oder mehrere Zeilen und/oder eine oder mehrere Spalten, oder ein Abschnitt von einer oder mehreren Zeilen und/oder Spalten). Zusätzlich oder alternativ können andere Datenquellen, (beispielsweise nicht-relationale Datenbanken, wie beispielsweise Altdatenbanken), verwendet werden. Vorzugsweise werden die Datenquellen in einer oder mehreren Datenbanken als Datenbanken 1810a–e gespeichert, wobei auf jede Datenbank von einem oder mehreren Datenbank-Servern 1808a–c zugegriffen werden kann.
  • Somit gestattet eine bevorzugte Ausführungsform der Erfindung die Integration von Daten aus einer Vielzahl von ungleichartigen Datenquellen, um so zu ermöglichen, dass Datenquellen in einer einheitlichen Weise abgefragt werden, (beispielsweise in einer Weise, die durch eine Hierarchie der Datenquellen definiert wird), und/oder zu ermöglichen, dass Daten, die über eine Datenbankabfrage an die Datenquellen zurückgegeben werden, in einem einheitlichen Format zurückgegeben werden (beispielsweis in einem Format, das durch eine Hierarchie der Datenquellen definiert wird). Eine bevorzugte Ausführungsform der Erfindung kann das leichte und dynamische Definieren von Beziehungen zwischen Datenquellen, (entweder in einer vorab gespeicherten Konfigurationsdatei in dem Benutzer-Datenendgerät 1802 oder dem Abfrage-Server 1806, oder dynamisch in Echtzeit in einer dieser Komponenten), und insbesondere die Modifizierung in Echtzeit (zum Zeitpunkt der Ausführung der Abfrage) durch die entsprechende Konfiguration von Verknüpfungen ermöglichen. Die Konfiguration von Verknüpfungen kann beispielsweise die Angabe von geeigneten Attributen in einer XML-Definition der Verknüpfung umfassen. Dadurch kann die Definition neuer Beziehungen zwischen Daten ermöglicht werden, ohne Änderungen an den zu Grunde liegenden Datenquellen oder der Art, in der Daten in diesen Datenquellen gespeichert sind, erforderlich zu machen.
  • Vorzugsweise können Verknüpfungen Eins-zu-Eins- und/oder Eins-zu-Viele-Beziehungen zwischen zu definierenden Datenquellen ermöglichen. Vorzugsweise umfasst das Datennetzwerk eine Datenquelle auf einer unteren Ebene, (wie beispielsweise einen Ursprungsknoten oder einen Stammknoten), die mit einer oder mehreren Ebenen von Datenquellen auf höherer Ebene verknüpft sind, (wie beispielsweise verbundene Knoten oder Astknoten), wobei jede Ebene vorzugsweise einen oder mehrere Knoten umfasst. Vorzugsweise definiert eine Verknüpfung eine unidirektionale Verbindung zwischen Datenquellen. Beispielsweise definiert eine Verknüpfung typischerweise eine Verbindung von einer Datenquelle einer unteren Ebene zu einer Datenquelle einer höheren Ebene. Andere Verbindungen können Verbindungen von Datenquellen einer höheren Ebene zurück zu Datenquellen einer unteren Ebene definieren. Unter einigen Umständen wird bevorzugt, dass gewisse derartige Verknüpfungen alle Knoten in einer oder mehreren dazwischenliegenden Ebenen ausschließen.
  • Es ist klar, dass die obige Beschreibung nur als Beispiel angegeben wurde, und dass der Umfang der Erfindung nicht auf irgendwelche oder alle dieser Beispiele beschränkt ist.

Claims (26)

  1. Verfahren zum dynamischen Erstellen von Hierarchien, die in Datenbank-Suchen verwendet werden sollen, umfassend die folgenden Schritte: Definieren eines Datennetzwerks; Empfangen einer Abfrage in Bezug auf Daten, die in einer oder mehreren Datenbanken gespeichert sind; und wenigstens teilweise auf der Abfrage und dem Datennetzwerk basierend, dynamisches Aufbauen einer Hierarchie.
  2. Verfahren nach Anspruch 1, wobei das Datennetzwerk Knoten und Verknüpfungen umfasst.
  3. Verfahren nach Anspruch 2, wobei der Schritt des Definieren eines Datennetzwerks das Verbinden von einem oder mehreren Ursprungsknoten mit einem oder mehreren verbundenen Knoten über Verknüpfungen umfasst.
  4. Verfahren nach Anspruch 3, wobei die Verknüpfungen Ausgabefeld-Elemente umfassen und Beziehungen zwischen den Knoten definieren.
  5. Verfahren nach Anspruch 4, wobei die Hierarchie basierend auf den Ausgabefeldern und den Beziehungen aufgebaut wird.
  6. Verfahren nach Anspruch 2, des Weiteren umfassend das Identifizieren einer Stammverknüpfung in dem Datennetzwerk auf Basis der Abfrage.
  7. Verfahren nach Anspruch 1, wobei das Datennetzwerk basierend auf einem relationalen Datenmodell definiert wird.
  8. Verfahren nach Anspruch 1, wobei der Schritt des Definieren eines Datennetzwerks das Analysieren eines Datenmodells umfasst, um Objekte zu identifizieren, die dargelegt werden sollen.
  9. Verfahren nach Anspruch 8, wobei der Schritt des Definierens eines Datennetzwerks des Weiteren das Analysieren eines Vererbungsbaums der identifizierten Objekte umfasst.
  10. Verfahren nach Anspruch 9, wobei der Schritt des Definieren eines Datennetzwerks des Weiteren das Analysieren von Beziehungen zwischen den Objekten umfasst.
  11. Verfahren nach Anspruch 10, wobei die Beziehungen zwischen den Objekten mehrere Beziehungen und wechselseitige Beziehungen umfassen.
  12. Verfahren nach Anspruch 10, wobei der Schritt des Definierens eines Datennetzwerks des Weiteren das Definieren von Verknüpfungen für jedes der Objekte umfasst.
  13. Verfahren nach Anspruch 12, wobei der Schritt des Definierens von Verknüpfungen für jedes der Objekte zum Darlegen von relevanten Daten in einer Hierarchie führt, die für das Objekt geeignet ist.
  14. Verfahren nach Anspruch 12, wobei die Verknüpfungen untergeordnete Netzwerke ausbilden.
  15. Verfahren nach Anspruch 14, wobei für jedes untergeordnete Netzwerk die darin befindlichen Verknüpfungen modifiziert werden, um Beziehungen zwischen Objekten in dem Netzwerk widerzuspiegeln.
  16. Verfahren nach Anspruch 12, wobei die Verknüpfungen Verknüpfungen umfassen, die Daten umwandeln.
  17. Verfahren nach Anspruch 12, wobei die Verknüpfungen Verknüpfungen umfassen, die Daten aus externen Quellen integrieren.
  18. Verfahren zum Abfragen eines Datennetzwerks, umfassend die folgenden Schritte: Auswählen gewünschter Felder; Angeben eines Stammes; Angeben einer Suchbedingung; und Angeben eines Pfades zu jedem des einen oder der mehreren gewünschten Felder.
  19. Verfahren nach Anspruch 18, wobei der Schritt des Angebens eines Stammes das Angeben einer "FROM"-Klausel umfasst.
  20. Verfahren nach Anspruch 18, wobei jeder Pfad einer Gruppe von Verknüpfungen entspricht.
  21. Verfahren nach Anspruch 20, wobei die Gruppe von Verknüpfungen eines oder mehreres des Folgenden umfasst: Eins-zu-Viele-Verknüpfung, Eine-zu-Eins-Verknüpfung, Dreh-Verknüpfung.
  22. System zum dynamischen Erstellen von Hierarchien, die in Datenbank-Suchen verwendet werden sollen, umfassend: Mittel zum Definieren eines Datennetzwerks; Mittel zum Empfangen einer Abfrage in Bezug auf Daten, die in einer oder mehreren Datenbanken gespeichert sind; und Mittel, wenigstens teilweise auf der Abfrage und dem Datennetzwerk basierend, zum dynamischen Aufbauen einer Hierarchie.
  23. System zum Abfragen eines Datennetzwerks, umfassend: Mittel zum Auswählen gewünschter Felder; Mittel zum Angeben eines Stamms; und Mittel zum Angeben einer Suchbedingung.
  24. System zum Abfragen von Datenbanken, umfassend: einen elektronischen Abfrage-Server, wobei der Abfrage-Server betriebsfähig ist zum Empfangen von elektronischen Datenübertragungen von und zum Senden von elektronischen Datenübertragungen zu einem Benutzer-Datenendgerät über ein elektronisches Datenübertragungs-Netzwerk; und einen oder mehrere Datenbank-Server, von denen jeder mit dem Abfrage-Server in elektronischer Datenverbindung steht, wobei jeder Datenbank-Server betriebsfähig ist, um eine oder mehrere Datenbanken zu durchsuchen; wobei der Abfrage-Server betriebsfähig ist, um eine elektronische Abfrage über das elektronische Datenübertragungs-Netzwerk von dem Benutzer-Datenendgerät zu empfangen und, basierend auf dieser Abfrage, eine oder mehrere Hierarchien dynamisch zu erstellen.
  25. System nach Anspruch 24, wobei eine oder mehrere Hierarchien auf der Basis von Datennetzwerken erstellt werden.
  26. System nach Anspruch 25, wobei die Datennetzwerke Knoten umfassen, die durch Verknüpfungen verbunden sind, und wobei jeder Knoten einer Gruppe von Daten entspricht..
DE102005025170A 2004-06-01 2005-06-01 Verfahren und Systeme zur Datenintegration Ceased DE102005025170A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/858,897 2004-06-01
US10/858,897 US20050278308A1 (en) 2004-06-01 2004-06-01 Methods and systems for data integration

Publications (1)

Publication Number Publication Date
DE102005025170A1 true DE102005025170A1 (de) 2006-01-19

Family

ID=34839039

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005025170A Ceased DE102005025170A1 (de) 2004-06-01 2005-06-01 Verfahren und Systeme zur Datenintegration

Country Status (5)

Country Link
US (2) US20050278308A1 (de)
EP (1) EP1622049A3 (de)
DE (1) DE102005025170A1 (de)
GB (1) GB2414833B (de)
NL (1) NL1029167C2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
US20060235820A1 (en) * 2005-04-14 2006-10-19 International Business Machines Corporation Relational query of a hierarchical database
US7526473B2 (en) * 2005-06-21 2009-04-28 Microsoft Corporation Traversing a relational model with preferred paths
US7924270B2 (en) * 2006-02-06 2011-04-12 Abacalab, Inc. Apparatus and method for mobile graphical cheminformatic
US8131560B2 (en) * 2006-02-15 2012-03-06 Genzyme Corporation Systems and methods for managing regulatory information
US20090063448A1 (en) * 2007-08-29 2009-03-05 Microsoft Corporation Aggregated Search Results for Local and Remote Services
US8200257B2 (en) * 2007-08-30 2012-06-12 Yahoo! Inc. Customizable mobile message services
US8200520B2 (en) 2007-10-03 2012-06-12 International Business Machines Corporation Methods, systems, and apparatuses for automated confirmations of meetings
KR100930617B1 (ko) * 2008-04-08 2009-12-09 한국과학기술정보연구원 다중 개체 중심적 통합 검색 시스템 및 방법
US9720971B2 (en) * 2008-06-30 2017-08-01 International Business Machines Corporation Discovering transformations applied to a source table to generate a target table
US8554801B2 (en) * 2009-07-10 2013-10-08 Robert Mack Method and apparatus for converting heterogeneous databases into standardized homogeneous databases
ITVE20110021A1 (it) * 2011-04-12 2012-10-13 Neural Engineering S P A Metodo di creazione di un documento rappresentativo dell'esito di una consultazione di una pluralità di banche dati.
US10430775B1 (en) * 2011-11-11 2019-10-01 Amazon Technologies, Inc. Validation and lookup techniques for rule-based data categorization
US8930303B2 (en) * 2012-03-30 2015-01-06 International Business Machines Corporation Discovering pivot type relationships between database objects
US9116932B2 (en) * 2012-04-24 2015-08-25 Business Objects Software Limited System and method of querying data
US9600351B2 (en) 2012-12-14 2017-03-21 Microsoft Technology Licensing, Llc Inversion-of-control component service models for virtual environments
US10182054B2 (en) * 2013-03-14 2019-01-15 Open Text Sa Ulc Systems, methods and computer program products for information integration across disparate information systems
US10073956B2 (en) 2013-03-14 2018-09-11 Open Text Sa Ulc Integration services systems, methods and computer program products for ECM-independent ETL tools
US9898537B2 (en) 2013-03-14 2018-02-20 Open Text Sa Ulc Systems, methods and computer program products for information management across disparate information systems
US9767151B2 (en) * 2013-11-18 2017-09-19 Sap Se Optimizing database queries having hierarchy filters
US10585892B2 (en) * 2014-07-10 2020-03-10 Oracle International Corporation Hierarchical dimension analysis in multi-dimensional pivot grids
US10606855B2 (en) 2014-07-10 2020-03-31 Oracle International Corporation Embedding analytics within transaction search
US10198159B2 (en) * 2015-04-28 2019-02-05 Osisoft, Inc. Multi-context sensor data collection, integration, and presentation
US10331899B2 (en) 2015-10-24 2019-06-25 Oracle International Corporation Display of dynamic contextual pivot grid analytics
EP3602323A1 (de) * 2017-03-28 2020-02-05 Open Text SA ULC Integrationsdienstesysteme, verfahren und computerprogrammprodukte für ecm-unabhängige etl-tools
IT201700082320A1 (it) 2017-07-19 2019-01-19 Nuovo Pignone Tecnologie Srl Sistema di ricerca per banche dati e metodo
CN111868708A (zh) * 2018-01-22 2020-10-30 艾瑞星食品公司 用于提供食品相关信息的系统和方法

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3689965T2 (de) * 1985-08-12 1994-11-17 Fuji Photo Film Co Ltd Verfahren zum Verarbeiten von Informationen bezüglich chemischer Reaktionen.
JPS6257017A (ja) * 1985-09-05 1987-03-12 Fuji Photo Film Co Ltd 化学反応情報の処理方法
JPS6258331A (ja) * 1985-09-09 1987-03-14 Fuji Photo Film Co Ltd 化学反応情報の記録・検索方法
CA2048039A1 (en) * 1991-07-19 1993-01-20 Steven Derose Data processing system and method for generating a representation for and random access rendering of electronic documents
US5566333A (en) * 1992-11-05 1996-10-15 Trace Technologies, Inc. Relational database information management system for facilitating normalization of a relational database
EP0707465A4 (de) * 1993-07-08 1997-04-16 Cygnus Therapeutic Systems Monolithisches matrix transdermales abgabesystem
US5463564A (en) * 1994-09-16 1995-10-31 3-Dimensional Pharmaceuticals, Inc. System and method of automatically generating chemical compounds with desired properties
US6030917A (en) * 1996-07-23 2000-02-29 Symyx Technologies, Inc. Combinatorial synthesis and analysis of organometallic compounds and catalysts
US5985356A (en) * 1994-10-18 1999-11-16 The Regents Of The University Of California Combinatorial synthesis of novel materials
US6983227B1 (en) * 1995-01-17 2006-01-03 Intertech Ventures, Ltd. Virtual models of complex systems
US5980096A (en) * 1995-01-17 1999-11-09 Intertech Ventures, Ltd. Computer-based system, methods and graphical interface for information storage, modeling and stimulation of complex systems
US5758145A (en) * 1995-02-24 1998-05-26 International Business Machines Corporation Method and apparatus for generating dynamic and hybrid sparse indices for workfiles used in SQL queries
US5855013A (en) * 1996-07-01 1998-12-29 Sun Microsystems, Inc. Method and apparatus for creating and maintaining a computer database utilizing a multi-purpose data format
US6738529B1 (en) * 1996-10-09 2004-05-18 Symyx Technologies, Inc. Analysis of chemical data from images
CA2270527A1 (en) * 1996-11-04 1998-05-14 3-Dimensional Pharmaceuticals, Inc. System, method, and computer program product for the visualization and interactive processing and analysis of chemical data
US5848415A (en) * 1996-12-18 1998-12-08 Unisys Corporation Selective multiple protocol transport and dynamic format conversion in a multi-user network
US5875446A (en) * 1997-02-24 1999-02-23 International Business Machines Corporation System and method for hierarchically grouping and ranking a set of objects in a query context based on one or more relationships
IL121181A0 (en) * 1997-06-27 1997-11-20 Agentics Ltd A method and system for unifying multiple information resources into hierarchial integrated information resource accessible by means of user interface
US6003040A (en) * 1998-01-23 1999-12-14 Mital; Vijay Apparatus and method for storing, navigating among and adding links between data items in computer databases
US6192373B1 (en) * 1998-05-15 2001-02-20 International Business Machines Corp. Managing directory listings in a relational database
US6415276B1 (en) * 1998-08-14 2002-07-02 University Of New Mexico Bayesian belief networks for industrial processes
US6618852B1 (en) * 1998-09-14 2003-09-09 Intellichem, Inc. Object-oriented framework for chemical-process-development decision-support applications
AU1125500A (en) 1998-10-19 2000-05-08 Symyx Technologies, Inc. Graphic design of combinatorial material libraries
US7199809B1 (en) * 1998-10-19 2007-04-03 Symyx Technologies, Inc. Graphic design of combinatorial material libraries
US6587856B1 (en) * 1998-12-07 2003-07-01 Oracle International Corporation Method and system for representing and accessing object-oriented data in a relational database system
US6343291B1 (en) * 1999-02-26 2002-01-29 Hewlett-Packard Company Method and apparatus for using an information model to create a location tree in a hierarchy of information
AU5979200A (en) * 1999-06-30 2001-01-22 Pirelli Pneumatici S.P.A. High-performance tyre for a motor vehicle
US6598043B1 (en) * 1999-10-04 2003-07-22 Jarg Corporation Classification of information sources using graph structures
US6947953B2 (en) * 1999-11-05 2005-09-20 The Board Of Trustees Of The Leland Stanford Junior University Internet-linked system for directory protocol based data storage, retrieval and analysis
EP1259907A2 (de) * 2000-02-29 2002-11-27 Cambridgesoft Corporation Verwaltung chemischer informationen und handels
US7213017B2 (en) * 2000-03-17 2007-05-01 Microsoft Corporation Systems and methods for transforming query results into hierarchical information
US7216113B1 (en) * 2000-03-24 2007-05-08 Symyx Technologies, Inc. Remote Execution of Materials Library Designs
US20020049548A1 (en) * 2000-04-03 2002-04-25 Libraria, Inc. Chemistry resource database
US7325201B2 (en) * 2000-05-18 2008-01-29 Endeca Technologies, Inc. System and method for manipulating content in a hierarchical data-driven search and navigation system
US6968536B2 (en) * 2000-07-14 2005-11-22 Borland Software Corporation Frame component container
US6519618B1 (en) * 2000-11-02 2003-02-11 Steven L. Snyder Real estate database search method
US6839716B1 (en) * 2000-12-11 2005-01-04 Microsoft Corporation Method and system for building a dataset
CA2431066C (en) * 2000-12-15 2007-05-15 Youqi Wang Methods and apparatus for designing high-dimensional combinatorial experiments
US7085773B2 (en) * 2001-01-05 2006-08-01 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
US6658429B2 (en) * 2001-01-05 2003-12-02 Symyx Technologies, Inc. Laboratory database system and methods for combinatorial materials research
US7250950B2 (en) * 2001-01-29 2007-07-31 Symyx Technologies, Inc. Systems, methods and computer program products for determining parameters for chemical synthesis
US6944619B2 (en) * 2001-04-12 2005-09-13 Primentia, Inc. System and method for organizing data
ATE313010T1 (de) * 2001-06-06 2005-12-15 Textron Lycoming Verbesserte zylinderanordnung für einen flugzeugmotor
CA2704294C (en) * 2001-07-26 2012-11-20 Irise System and process for automatically configuring a behavior for an instruction for a requirements validation computer program
US7984423B2 (en) * 2001-08-14 2011-07-19 National Instruments Corporation Configuration diagram which displays a configuration of a system
US20030105771A1 (en) * 2001-12-01 2003-06-05 Tiefenbrun Natan E. Attribute driven dynamic tree structure
US7308363B2 (en) * 2002-01-23 2007-12-11 Sri International Modeling and evaluation metabolic reaction pathways and culturing cells
JP3860046B2 (ja) * 2002-02-15 2006-12-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ランダムサンプル階層構造を用いた情報処理のためのプログラム、システムおよび記録媒体
AU2003228366A1 (en) * 2002-03-25 2003-10-13 Michael Z. Morciz Accessing deep web information using a search engine
WO2003107323A1 (en) * 2002-06-13 2003-12-24 Cerisent Corporation A subtree-structured xml database
WO2003107576A2 (en) * 2002-06-13 2003-12-24 Cerisent Corporation Xml-db transactional update system
US7219328B2 (en) * 2002-08-28 2007-05-15 Honeywell International Inc. Model-based composable code generation
US7213034B2 (en) * 2003-01-24 2007-05-01 Symyx Technologies, Inc. User-configurable generic experiment class for combinatorial materials research
US7792866B2 (en) * 2003-08-25 2010-09-07 International Business Machines Corporation Method and system for querying structured documents stored in their native format in a database
AU2004292680B2 (en) * 2003-11-28 2010-04-22 Canon Kabushiki Kaisha Method of constructing preferred views of hierarchical data
WO2005059779A2 (en) * 2003-12-16 2005-06-30 Symyx Technologies, Inc. Indexing scheme for formulation workflows
US20060064674A1 (en) * 2004-06-03 2006-03-23 Olson John B Jr Methods and apparatus for visual application design
US7818666B2 (en) * 2005-01-27 2010-10-19 Symyx Solutions, Inc. Parsing, evaluating leaf, and branch nodes, and navigating the nodes based on the evaluation
US20070050092A1 (en) * 2005-08-12 2007-03-01 Symyx Technologies, Inc. Event-based library process design

Also Published As

Publication number Publication date
EP1622049A2 (de) 2006-02-01
US7912845B2 (en) 2011-03-22
NL1029167C2 (nl) 2006-05-23
GB0511200D0 (en) 2005-07-06
GB2414833A (en) 2005-12-07
EP1622049A3 (de) 2006-07-19
GB2414833B (en) 2006-11-29
NL1029167A1 (nl) 2005-12-05
US20050278308A1 (en) 2005-12-15
US20100076992A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
DE102005025170A1 (de) Verfahren und Systeme zur Datenintegration
Ioannidis et al. ZOO: A desktop experiment management environment
DE60130475T2 (de) Durchführung von kalkulationen eines tabellenkalkulationstyps in einem datenbanksystem
US8356029B2 (en) Method and system for reconstruction of object model data in a relational database
US6708186B1 (en) Aggregating and manipulating dictionary metadata in a database system
DE60213409T2 (de) Erstellung von strukturierten daten aus unformatiertem text
CA2318299C (en) Metadata exchange
US6442566B1 (en) Frame-based knowledge representation system and methods
CN100541486C (zh) 对数据的函数应用的结果进行结构化索引
EP1311989B1 (de) Verfahren zur automatischen recherche
US20150242649A1 (en) Role-based security policy for an object-oriented database system
US20040044959A1 (en) System, method, and computer program product for querying XML documents using a relational database system
US20010037228A1 (en) System and method for using metadata to flexibly analyze data
US8639717B2 (en) Providing access to data with user defined table functions
Marcos et al. Aggregation and composition in object-relational database design
EP1030254B1 (de) Verfahren und System zum Verwalten von Dokumenten
Nachouki et al. Multi-data source fusion
Di Ruscio et al. A data-modelling approach to web application synthesis
Fileto et al. A survey on information systems interoperability
Blaha et al. Requirements for repository software
Convey et al. Data integration services
Huang et al. A query mediation approach to interoperability of heterogeneous databases
Chippimolchai et al. Semantic query formulation and evaluation for Xml databases
Lawrence et al. Unity-a database integration tool
Muyeba et al. A framework for Post-Rule Mining of Distributed Rules Bases

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection