[go: up one dir, main page]

DE60030735T2 - Voraussage der realisierbarkeit eines verbindungsweges - Google Patents

Voraussage der realisierbarkeit eines verbindungsweges Download PDF

Info

Publication number
DE60030735T2
DE60030735T2 DE60030735T DE60030735T DE60030735T2 DE 60030735 T2 DE60030735 T2 DE 60030735T2 DE 60030735 T DE60030735 T DE 60030735T DE 60030735 T DE60030735 T DE 60030735T DE 60030735 T2 DE60030735 T2 DE 60030735T2
Authority
DE
Germany
Prior art keywords
instance
objects
bitmap
instances
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60030735T
Other languages
English (en)
Other versions
DE60030735D1 (de
Inventor
Yaniv Morgan Hill GVILY
Shai Los Gatos AGASSI
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.)
SAP Portals Israel Ltd
Original Assignee
SAP Portals Israel Ltd
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 SAP Portals Israel Ltd filed Critical SAP Portals Israel Ltd
Application granted granted Critical
Publication of DE60030735D1 publication Critical patent/DE60030735D1/de
Publication of DE60030735T2 publication Critical patent/DE60030735T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Machine Translation (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf Systeme und Verfahren zum Vorhersagen des Erfolges von Anfragen in Informationssystemen, die aus Objekten und Verbindungen zwischen den Objekten bestehen. Insbesondere bezieht sich die vorliegende Erfindung auf Systeme und Verfahren zum Vorhersagen, ob eine Instanz mit einem Objekt in Verbindung steht, ohne eine tatsächliche Anfrage durchzuführen.
  • Da Informationssysteme und besonders Datenbanksysteme immer weiter wachsen (z. B. in den Terabytebereich hinein), werden auch die Kosten der effizienten Abfrage der Datenbanken größer. Es ist nicht ungewöhnlich, dass ein Benutzer mit einer komplexen Anfrage auf eine Datenbank trifft und nach langen Minuten des Wartens nur "keine passenden Einträge gefunden" erhält. Diese leeren Anfragen nehmen wertvolle Serverressourcen ein, ohne irgendwelche nützlichen Ergebnisse zu liefern.
  • Während das Web an Popularität gewinnt, hat die Zahl von Benutzern, die gleichzeitig auf solche Informationssysteme zugreifen oder treffen können, drastisch zugenommen. Manche Websites erhalten Millionen von Treffern pro Tag. Es ist von zunehmender Bedeutung geworden, in der Lage zu sein, leere Anfragen zu erkennen und sie herauszufiltern, bevor sie wertvolle Ressourcen in Anspruch nehmen.
  • Einige der Probleme in Verbindung mit der Vorhersage, ob eine Anfrage keine Einträge liefern wird, schließen die Bestimmung ein, wie man im Voraus weiß, ob eine Instanz mit einem Objekt verknüpft ist (mit anderen Worten, ob es irgendwelche Instanzen dieses Objektes gibt, die mit der ursprünglichen Instanz in Verbindung stehen), und wie dies gemacht werden kann, ohne mit Laufzeit auf das Informationssystem oder die Datenbank zuzugreifen. Ein weiteres Problem ist es, alle Objekte aufzulisten, mit denen eine bestimmte Instanz in Verbindung steht.
  • Einige derzeit auf dem Fachgebiet bekannte Datenbanken unterstützen eine Art Abfragekosten-Analyse und -Vorhersage. Basierend auf Tabellen-, Index- und Verbindungsindexgrößen ist die Datenbank imstande, die Zeit zu schätzen, die zum Ablauf der Anfrage benötigt wird. Ein intelligenter Benutzerrechner wird Anfragen, die zu lange dauern, abbrechen. Das gibt dem Benutzer die Wahl, eine Anfrage basierend auf ihren Kosten abzubrechen, während diese Erfindung dem Benutzer ermöglicht, eine Anfrage basierend auf ihrem vorhergesagten Ergebnis abzubrechen.
  • Viele Datenbanken unterhalten auch Instanz-Instanz-Indextabellen. Wenn zwei Tabellen durch eine Fremdschlüssel/Primärschlüssel-Beziehung verknüpft sind, dann unterhält die Datenbank typischerweise einen B-Baumindex, der einen Schlüssel aufweist, welches der Fremdschlüssel ist, und Blätter einschließt, die eine Zahl enthalten, die auf die Indexdatei des Primärschlüssels hinweist. Dies gestattet der Datenbank, alle Primärschlüssel, mit denen spezifische Fremdschlüssel in Verbindung stehen, schnell zu finden. Ein Problem bei diesen B-Baumindices ist jedoch, dass sie dazu ausgelegt sind, eine Anfrage zu beantworten, nicht das Abfrage-Ergebnis vorherzusagen, bevor die Anfrage laufen gelassen wird. Außerdem werden diese Tabellen typischerweise für unmittelbar benachbarte Objekte unterhalten (d. h., wo eine direkte Verbindung existiert).
  • Das US-Patent Nr. 5,848,424, erteilt am 8. Dezember 1998 an Scheinkman et al., offenbart eine Datennavigation-Schnittstelle mit Navigation als Funktion ziehbarer Elemente und Ablegeziele. Die Schnittstelle basiert auf einem Zieh-und-Ablage-Paradigma, wodurch der Benutzer ein ziehbares Element verziehen und über einem Ablegezielelement ablegen kann, um eine Anfrage zu erzeugen. Das System ermöglicht dem Benutzer ein leichtes Generieren willkürlicher Ad-hoc-Anfragen, die zum Zeitpunkt der Erzeugung der Datenbank nicht zwangsläufig vorhergesehen werden. Es basiert auf einer Datenbankbeschreibung oder Matrix, wo Objekt-Objekt-Verknüpfungen gespeichert sind; jeder Eintrag in der Matrix steht stellvertretend für eine Art der Verbindung zwischen zwei Klassen von Objekten, wobei eine Klasse der Spalte des Eintrags entspricht, während die andere Klasse der Zeile des Eintrags entspricht. Das Vorhandensein eines Eintrags in der Matrix, d. h. das Vorhandensein eines Bits am Kreuzungspunkt einer Zeile und einer Spalte der Matrix, steht stellvertretend für eine Verbindung von einem Objekt zu einem anderen Objekt. Selbst wenn eine Objekt-Objekt-Verknüpfung existiert, garantiert dies jedoch nicht, dass eine Instanz des ersten Objektes existiert, die mit dem zweiten Objekt in Verbindung steht, geschweige denn, dass es bestimmt, ob spezifische Instanzen existieren. Tatsächlich können beide Objekte ganz ohne Instanzen sein, und doch wird die Datenbankbeschreibung eine Verbindung zwischen ihnen zeigen.
  • Derartige Systeme sind in dem Hyper-Relational Server [Hyperverknüpfungsserver] im Besitz und erfunden von TopTier Software, San Jose, Kalifornien verkörpert. Mit einem TopTier Hyper-Relational Server kann ein Benutzer entgegen den auf der Web-Hypertext-Metapher basierenden Systemen willkürlich Ad-hoc-Anfragen generieren. Dieses System liefert eine Lösung für das Bedürfnis, einem Benutzer die leichte Generierung willkürlicher Anfragen zu ermöglichen; es liefert keine Lösung für die oben aufgeführten Probleme, insbesondere das Problem, die Ergebnisse einer Anfrage vorherzusagen.
  • Was daher benötigt wird, ist ein System und Verfahren zum Vorhersagen, ob eine Anfrage eines Informationssystems eine leere Menge ergeben wird, ohne die Anfrage tatsächlich laufen lassen zu müssen.
  • Das US-Patent Nr. 5,761,654 offenbart ein Verfahren unter Einbeziehung einer Datenstruktur (Verbindungsbaum), die als Bildschirmmaske einer Abfrage-Anweisung dient und als Abfragediagramm graphisch angezeigt werden kann. "Die Abfragediagramm-Datenstruktur kann beim Abstimmen der SQL-Anweisung verwendet werden, so dass bei Analyse und Ausführung der Anweisung durch ein Datenbank-Suchprogramm Filterbedingungen in der Anweisung bei der frühest praktikablen Gelegenheit ausgeführt werden." Demgemäß lehrt US 5,761,654 ein Verfahren der effizienten Durchführung einer Anfrage durch organisiertes Durchforsten einer Verbindungsbaum-Datenstruktur.
  • Das Verfahren von US 5,761,654 zielt darauf ab, die Anfrage unter Verwendung der Tabelle mit der besten Trennschärfe (Lauftabelle) zu beginnen, um die meisten Zeilen in einem früheren Stadium der Anfrage zu eliminieren und den Abfrageprozess daher effizienter zu machen. Die Trennschärfe gibt die Wahrscheinlichkeit der Rückholung einer Zeile bei einem bestimmten Auswahlfilter an.
  • WO 97/11432 offenbart eine Verfahrenstechnik zur effizienten Verbindung mehrfacher großer Tabellen in einem Datenbanksystem mit einem Prozessor unter Verwendung eines kleinen Hauptspeichers. Die Verfahrenstechnik verwendet einen Verbindungsindex und minimiert die Anzahl von Ein-Ausgabe-Operationen bei gleichzeitiger Maximierung der Verwendung des kleinen Hauptspeichers durch einen Pufferzuordnungsprozess. Die Verfahrenstechnik teilt verfügbaren Hauptspeicher in Pufferspeicher auf und weist den Pufferspeichern Bedingungen zu, um sicherzustellen, dass jeder Pufferspeicher im Verbindungsergebnis eine weitgehend gleiche Datenmenge erhält. Die Verfahrenstechnik verarbeitet dann jede Eingabetabelle. Die Ausgabe wird mit einem Fragment für jede Eingabetabelle vertikal fragmentiert, was ferner die Einzelverarbeitung jeder Eingabetabelle erlaubt. WO 97/11432 offenbart auch ein Verfahren zur Erzeugung eines Verbindungsindex, falls nicht vorhanden.
  • O'Neil P. et al: "Multi-table joins through bitmapped join indices", Sigmod Record, Association for Computing Machinery, New York, USA, Vol. 24, Nr. 3, S. 8–11, offenbart ein Verfahren, das Mehrtabellenverbindungen durch Verwendung zeilenweise gesteuerter Verbindungsindices ermöglicht. Das Verfahren verwendet Verbindungsindices mit komprimierten Bitmap-Darstellungen, die es Aussagen, die Spalten von Beschreibungstabellen beschränken, ermöglichen, eine Antwortmenge (oder Schmelzmenge) in einer zentralen Detailtabelle (z. B. einer Auftragstabelle – wo eine Auftragszeile einen einzelnen Kauf enthält) zu bestimmen; das Verfahren verwendet unterschiedliche Aussagen über unterschiedliche Beschreibungstabellen (z. B. Kunden, Produkte und (Verkaufs-)Agenten) in Kombination, um die Detailtabelle durch komprimierte Bitmap-Darstellungen von Verbindungsindices zu beschränken und vervollständigt leicht die Verbindung der umfassend beschränkten Detailtabellenzeilen zurück zu den Beschreibungstabellen.
  • ASHANY R: "APPLICATION OF SPARSE MATRIX TECHNIQUES TO SEARCH, RETRIEVAL, CLASSIFICATION AND RELATIONSHIP ANALYSIS IN LARGE DATA BASE SYSTEMS-SPARCOM", Ergebnisse der internationalen Konferenz über sehr große Datenbanken; Westberlin, 13.–15. September 1978, New York, I.E.E.E., USA, 13. September 1978, Vol. CONF. 4, offenbart ein Informationssystem, das Objekte (im Beispiel gemäß 1 Spalten einer Tabelle mit den Überschriften "Verbrechen", "Waffentyp", "Orte", "Geschlecht", "Augenfarbe", "Sprachen") und Instanzen der Objekte (in 1 die Namen von Leuten, die Verbrechen begangen haben) umfasst. Das Dokument offenbart auch Beziehungen zwischen zumindest einigen der Objekte und den Instanzen der Objekte (in 1 z. B. hat "John" ein "Verbrechen" an einem "Ort" begangen) und eine Instanz-Objekt-Bitmap, die angibt, ob Instanzen von Objekten mit anderen Objekten verknüpft sind (die Tabelle gemäß 1 zeigt beispielsweise deutlich, dass es eine Reihe von Objekten ("Verbrechen", "Orte", "Geschlecht" etc.) gibt, die mit der Instanz des Objektes "John" verknüpft sind).
  • Gravano L, Garcia-Molina H, Tomasic A: "Precision and recall of GIOSS for database discovery", Parallel and Distributed Information Systems, 1994, Ergebnisse der dritten internationalen Konferenz in Austin, Texas, USA, 28.–30. Sept. 1994, Los Alamitos, Kalifornien, USA, IEEE Comput. Soc, 1994-09-28 offenbart ein System, das als Reaktion auf eine Benutzeranfrage relevante Datenbanken zur Suche vorschlagen kann. Die Anfrage des Benutzers durchläuft zwei Schritte: zuerst wird die Anfrage einem Server vorgelegt, um eine Reihe vielversprechender Datenbanken zur Suche auszuwählen. Während des zweiten Schritts wird die Anfrage tatsächlich an den gewählten Datenbanken ausgewertet. Der Server ist angeordnet, um basierend auf Worthäufigkeitsinformationen für jede Datenbank einen Hinweis darauf zu geben, welche Datenbanken für die Anfrage des Benutzers nützlich sein könnten. Diese Information gibt für jede Datenbank und jedes Stichwort in dem Datenbank-vokabular an, wie viele Dokumente für jeden Feldbezeichner an dieser Datenbank das Stichwort tatsächlich enthalten.
  • Das Dokument gibt auch ein Beispiel, wo eine Computer-Wissenschaftsbibliothek berichten könnte, dass "Knuth" (Stichwort) als Verfasser (Feldbezeichner) in 180 Dokumenten vorkommt, das Stichwort "Computer" im Titel von 25.548 Dokumenten usw. Solche als Ergebnis einer Anfrage erhaltenen Informationen sind viel weniger als die von einem Vollindex retournierten Informationen, weil es nur notwendig ist, die Häufigkeit für jedes Stichwort/Feldbezeichnungspaar festzuhalten, nicht die Identitäten der Dokumente, die es enthalten.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf Verfahren und Vorrichtungen zum Generieren einer Instanz-Objekt-Bitmap und Verwenden der Instanz-Objekt-Bitmap zur Vorhersage, ob eine Anfrage ein Ergebnis liefern wird.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird in einem Informationssystem, das Objekte, Instanzen der Objekte und Beziehungen zwischen zumindest einigen der Objekte und den Instanzen der Objekte umfasst, ein Verfahren der Vorhersage bereitgestellt, ob eine Anfrage ein Ergebnis liefern wird, wobei das Verfahren die Schritte umfasst:
    • – Bereitstellen einer Instanz-Objekt-Bitmap, die anzeigt, ob Instanzen von Objekten mit anderen Objekten verknüpft sind;
    • – Zugreifen auf die Bitmap zum Bestimmen, ob die Anfrage ein Ergebnis liefern wird; und
    • – Unterrichten eines Benutzers, dass die Anfrage das Ergebnis liefern wird; und dadurch gekennzeichnet ist, dass der Schritt Bereitstellen einer Instanz-Objekt-Bitmap das Generieren der Instanz-Objekt-Bitmap durch Berechnen von Wegen von Instanzen zu benachbarten Objekten durch Bestimmen eines Weges von einer Instanz in einem Objekt zu einer Instanz in einem benachbarten Objekt und Berechnen eines Weges von einer Instanz zu einem nicht benachbarten Objekt durch Mischen eines Weges von einer Instanz in einem ersten Objekt zu einer Instanz in einem zweiten Objekt mit einem berechneten Weg von der Instanz in dem zweiten Objekt zu dem nicht benachbarten Objekt umfasst.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein Informationssystem bereitgestellt, das dem oben erwähnten Verfahren entspricht und im angehängten Anspruch 5 definiert ist.
  • Der Schritt Berechnen eines Weges von einer Instanz zu einem nicht benachbarten Objekt kann wiederholt werden, bis Wege von Instanzen zu entfernten Objekten bestimmt werden. In Übereinstimmung mit einer Ausführungsform der Erfindung können die Längen der Wege von Instanzen zu entfernten Objekten auf eine vorbestimmte Länge begrenzt sein. Zum Beispiel kann eine maximale Weglänge von 5 verwendet werden.
  • In Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung kann die Instanz-Objekt-Bitmap mit dem TopTier Hyper-Relational Server verwendet werden, um zu bestimmen, ob das Ziehen eines ziehbaren Elementes auf ein Ablegeziel ein Abfrage-Ergebnis liefern wird.
  • In Übereinstimmung mit einer anderen Ausführungsform der vorliegenden Erfindung kann die Instanz-Objekt-Bitmap leicht zum Erzeugen einer Objekt-Objekt-Wahrscheinlichkeitsmatrix verwendet werden, die dazu verwendet werden kann, die Wahrscheinlichkeit einer sich auf ein anderes Objekt beziehenden beliebigen Instanz zu bestimmen. Demzufolge kann anstelle der Verwendung der gewöhnlich größeren Bitmap, um unzweideutig vorherzusagen, ob eine Anfrage ein Ergebnis liefern wird, die Wahrscheinlichkeitsmatrix verwendet werden, um die Chance abzuschätzen, dass eine solche Anfrage ein Ergebnis liefern wird.
  • Ein umfassenderes Verständnis der vorliegenden Erfindung kann durch Bezugnahme auf die detaillierte Beschreibung bevorzugter Ausführungsformen und Ansprüche bei Betrachtung in Verbindung mit den Figuren gewonnen werden, worin gleiche Bezugszeichen sich in allen Figuren auf gleichartige Gegenstände beziehen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das die Beziehung verschiedener Objekte und Instanzen der Objekte zeigt;
  • 2 ist eine Darstellung einer Webseite, die zeigt, wie die Webseite anzeigt, dass Beziehungen zwischen einer Instanz und anderen Objekten existieren;
  • 3 ist eine andere Darstellung einer Webseite, die zeigt, wie die Webseite anzeigt, dass Verbindungen zwischen einer Instanz und anderen Objekten existieren oder nicht existieren;
  • 4 ist ein Blockdiagramm, das die Verbindungen verschiedener Objekte zeigt;
  • 5 ist ein Flussdiagramm eines Verfahrens zum Berechnen einer Instanz-Objekt-Bitmap und Vorhersagen der Ergebnisse von Anfragen unter Verwendung derselben; und
  • 6 ist ein Blockdiagramm, das die Beziehung verschiedener Objekte und Instanzen der Objekte zeigt.
  • BESCHREIBUNG DER SPEZIFISCHEN AUSFÜHRUNGSFORMEN
  • Diese Erfindung stellt die Vorhersage der Ergebnisse von Anfragen in Informationssystemen bereit, die aus Objekten und Verbindungen bestehen. Sie stellt auch Verfahren und Vorrichtungen zum Erkennen und Herausfiltern von Anfragen bereit, die keine Einträge liefern werden (d. h. eine leere Menge). Die vorliegende Erfindung kann mit relationalen, objektorientierten oder anderen geeigneten Datenbanken verwendet werden, ohne sie auf irgendeine Weise zu verändern.
  • In der übrigen Beschreibung ist die Erfindung unter Verwendung einer OLTP-Datenbank beschrieben; es sollte jedoch klar sein, dass die Erfindung nicht auf derartige Datenbanken begrenzt ist, sondern auf jede beliebige Art von System zutreffen kann, das aus Objekten, Instanzen und Verbindungen zwischen ihnen besteht. Es wird dabei beispielsweise an Verbindungen zwischen OLTP-Objekten und Instanzen, OLAP-Objekten und Instanzen, Webkomponenten oder Objekten und/oder Dokumentenbestandteile oder Objekte gedacht, um nur einige wenige zu nennen. In solchen Systemen besteht jedes der Objekte typischerweise aus mehreren Instanzen.
  • Eine Ausführungsform der vorliegenden Erfindung generiert und verwendet vorzugsweise eine Instanz-Objekt-Bitmap einer Datenbank. Sie funktioniert durch Unterhalten eines Bitvektors für jede Instanz jedes Objektes in dem System. Der Bitvektor steht stellvertretend für das Vorhandensein einer Verbindung von der Instanz zu allen anderen Klassen oder Objekten. In Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung wird der Vektor oder die Bitmap "offline" berechnet, bevor eine Anfrage generiert wird. Wenn eine Abfrage angefordert wird, kann in Laufzeit kostengünstig auf den Vektor oder die Bitmap zugegriffen werden, was es möglich macht, die Ergebnisse der Anfrage in viel weniger Laufzeit vorherzusagen als zur Ausführung der Abfrage tatsächlich notwendig wäre.
  • Die Erfindung stellt auch ein Verfahren zum Berechnen einer Instanz-Objekt-Bitmap bereit. Wie nachstehend detaillierter erörtert, ist die Rechenzeit zum Berechnen oder Generieren der Bitmap O(N), wobei N die Gesamtanzahl von Instanzen in dem System ist.
  • Die Instanz-Objekt-Bitmap einer Datenbank sowie die Verwendung dieser Instanz-Objekt-Bitmap wird nun detaillierter beschrieben. Im folgenden Beispiel beziehen sich die Großbuchstaben A, B etc. auf Objekte oder Klassen in einer Datenbank. Eine Instanz einer Klasse oder eines Objektes ist mit einem Index nach dem Großbuchstaben notiert. So bezeichnet Ai eine Instanz in Klasse A. Außerdem soll A→B eine Verbindung zwischen Klassen oder Objekten A und B bezeichnen. In einem TopTier Hyper-Relational Server des im US-Patent Nr. 5,848,424 offenbarten Typs ist die Art solcher Klasse-Klasse-Verbindungen in der Datenbankbeschreibung gespeichert.
  • Ai→B soll eine Verbindung zwischen einer Instanz in A zu Objekt B bezeichnen; Ai→Bj soll ferner bedeuten, dass aus den Instanzen Ai die Instanzen Bj werden, wenn die Verbindung A→B angewendet wird. Schließlich soll der Doppelpfeil →→ einen indirekten Verbindungsweg bedeuten.
  • Unter Bezugnahme auf 1 ist nun ein Blockdiagramm dargestellt, das die Beziehung verschiedener Objekte und Instanzen in einer Musterdatenbank zeigt. Der Einfachheit halber stellt dieses bestimmte Beispiel nur vier Objekte oder Klassen A–D bereit. Wie dargestellt, existieren Klasse-Klasse- oder Objekt-Objekt-Verknüpfungen von A zu B, von B zu C und von C zu D. Musterinstanzen jedes Objektes sind unter jedem Objekt gezeigt. In dem Beispiel gemäß 1 ist nur eine Instanz A1 von Objekt A dargestellt, während acht Instanzen D1 bis D8 von Objekt D dargestellt sind. Das Beispiel in 1 zeigt nur einige Instanzen der Objekte A–D, für die eine Instanz-Instanz-Verbindung existiert. Mit anderen Worten, in der Datenbank können andere Instanzen A2 bis An von Objekt A, andere Instanzen D9 bis Dm von Objekt D etc. vorhanden sein. Auch andere Instanz-Instanz-Verbindungen können existieren, sind aber der Einfachheit halber nicht gezeigt.
  • Angenommen, ein Benutzer möchte alle Instanzen von D abfragen, mit denen A1 in Verbindung steht. Typischerweise muss eine Anfrage erfolgen, um jedes Bi zu erhalten, mit dem A1 in Verbindung steht. Dann muss für jedes der resultierenden Bi eine neue Abfrage ausgeführt werden, um eine Menge Ci,k zu bekommen, mit denen Bi in Verbindung steht. Diese müssen dann besonders gemischt werden, um eine Menge Ck zu liefern. Der Vorgang muss dann noch einmal wiederholt werden, um eine besondere Reihe Dj zu bekommen, auf die sich die Instanzen Ck beziehen. Mit anderen Worten, die indirekte Verbindung von A1 zu den Instanzen Dj des Objektes D gleicht Verbindungen von Instanz A1 zu Instanzen Bi, von Instanzen Bi zu Instanzen Ck und von Instanzen Ck zu Instanzen Dj. A1→→Dj = A1→B1 & Bi→Ck & Ck→Dj
  • Die Größenordnung des Berechnens einer derartigen Verbindung ist die Anzahl von Instanzen zur Leistung der Länge des Weges. Für das gesamte Schema – für jede mögliche Verbindung – gleicht die Rechenzeit der Gesamtzahl von Instanzen zur Leistung der Anzahl von Objekten (stellvertretend für die Länge der Wege) mal die Anzahl von Objekten (für jede unterschiedliche Quelle). Aufgrund der Tatsache, dass Doppeleinträge retourniert werden können, ist der Speicherplatzbedarf sogar noch größer. Die Rechenzeit beträgt somit: O(V·NV)
  • Bei Verwendung der hinlänglich bekannten mathematischen Buchstabenbezeichnung O(x) ist V die Anzahl von Objekten, und N = Σi=1...V|Vi| ist die Gesamtzahl von Instanzen.
  • Überdies können für diese Rechenart viele Male mehrfache Datenbankzugriffe benötigt werden. Typischerweise ist Datenbankzeit eine wertvolle und knappe Ressource. Während die Datenbank arbeitet, müssen alle Benutzer warten, auch derjenige, der die Anfrage laufen lässt. In dem obigen Beispiel sind zumindest drei Zugriffe zum Berechnen einer einzigen Instanz erforderlich.
  • Die vorliegende Erfindung hilft demzufolge, Laufzeitberechnungen zu verhindern, die kein Ergebnis liefern. Sie tut dies durch Vorsehen einer Instanz-Objekt-Bitmap der Datenbank, die verwendet wird, um vorherzusagen, ob eine Anfrage irgendwelche Einträge liefern wird. Die Bitmap kann ein Bitvektor für jede Instanz jedes Objektes in dem System sein; der Bitvektor steht dabei stellvertretend für das Vorhandensein einer Verbindung von der Instanz zu einigen oder allen anderen Klassen oder Objekten in dem System. In dem Beispiel gemäß 1, z. B. A1, würde die Instanz-Objekt-Bitmap anzeigen:
    • – das Vorhandensein oder Nichtvorhandensein einer Verbindung von der Instanz Ai zum Objekt B;
    • – das Vorhandensein oder Nichtvorhandensein einer Verbindung von der Instanz Ai zum Objekt C; und
    • – das Vorhandensein oder Nichtvorhandensein einer Verbindung von der Instanz Ai zum Objekt D.
  • Die Instanz-Objekt-Bitmap macht es möglich, effizient und rasch zu berechnen, ob ein Ergebnis auf eine Anfrage vorhanden ist. In dem Beispiel gemäß 1 macht die Konsultation des Bitmapvektors für die Instanz A1 klar, dass ein Weg von der Instanz A1 zum Objekt D existiert und daher, dass die Abfrage aller Instanzen von D, mit denen A1 verbunden ist, zumindest ein Ergebnis bringen wird. Der Zugriff auf die Instanz-Objekt-Bitmap ist in einem Bruchteil einer Sekunde möglich und ist bedeutend schneller als die Abfrage tatsächlich vollständig durchzuführen. Für alle anderen Instanzen Ai (i ≠ 1) wird die Bitmap anzeigen, dass es keine Verbindung zu irgendeinem der Objekte B–D gibt.
  • Die Erfindung macht es somit möglich, das Ergebnis einer Anfrage vorherzusagen oder, noch genauer, vorherzusagen, ob eine gestellte Anfrage ein Ergebnis liefern wird oder nicht. Dies erlaubt einem Benutzer oder einem von einem Benutzer laufen gelassenen Client-Programm, Anfragen auszuwählen oder Anfragen abzubrechen, die kein Ergebnis liefern werden, bevor irgendein Datenbankzugriff durchgeführt wird.
  • Die Instanz-Objekt-Bitmap kann nicht nur beantworten, ob eine Verbindung existiert, sondern als Nebenprodukt auch in Laufzeit alle realisierbaren Verbindungen für eine gegebene Instanz aufzählen. In diesem Zusammenhang sind realisierbare Verbindungen diejenigen Verbindungen, die ein Ergebnis liefern werden. Ein mit dieser Technologie ausgestattetes System kann den Benutzer durch Navigation in eine relationale oder andere Datenbankumgebung führen, wobei es nur Wege vorschlägt oder zulässt, die tatsächlich ein Ergebnis liefern werden. Diese Fähigkeit kann mit dem TopTier Hyper-Relational Server oder jeder anderen Datenbankzugriff-Technologie verwendet werden. Zum Beispiel kann im Falle des TopTier Hyper-Relational Servers das System so konfiguriert sein, dass jedes Mal, wenn ein Benutzer ein Element in der Schnittstelle zieht und über ein Ablegeziel bringt, das Ziel markiert wird, um anzuzeigen, dass die Anfrage tatsächlich ein Ergebnis liefern wird. Dies hilft dem Benutzer, in der Schnittstelle zu navigieren, indem der Benutzer informiert wird, wenn er ein Element auf ein Ablegeziel fallen lässt, das kein Abfrage-Ergebnis liefern wird, und verhindert somit, dass der Benutzer mit einer solchen Anfrage Zeit verschwendet. Natürlich können auch andere Verfahren zur Beratung des Benutzers in Betracht gezogen werden, ob die Anfrage ein Ergebnis liefern wird oder nicht.
  • In Übereinstimmung mit einer anderen Ausführungsform der vorliegenden Erfindung ist das System und Verfahren der vorliegenden Erfindung dann imstande, alle Objekte aufzulisten, mit denen eine bestimmte Instanz in Verbindung steht. Demgemäß ist es dann möglich, einem Benutzer diejenigen realisierbaren Anfragen aufzuzählen, die ein Ergebnis liefern werden, womit eine geführte Navigation durch bestimmte Daten unter Beweis gestellt wird. Dies kann durch Abtasten einer Vektorbitmap auf eine gegebene Instanz und Anzeigen einer Liste derjenigen Objekte erfolgen, zu denen eine Verbindung von der gegebenen Instanz aus existiert. Wie einem Fachmann auf diesem Gebiet verständlich sein wird, kann die Liste dem Benutzer in vielerlei Formen vorgelegt werden. 2 und 3 zeigen beispielsweise eine Art, einem Benutzer diese Information vorzulegen. 2 stellt eine Webseite 200 dar, die eine Vielzahl von Instanzen 202 und eine Vielzahl von Objekten oder Ablegezielen 204 auflistet. Im Beispiel von 2 wird die Instanz 202-3 gerade zu Ablegezielen 204 hinübergezogen. Die Prüfzeichen 206 neben den Ablegezielen oder Objekten 204 deuten an, dass eine Beziehung zwischen der Instanz 202-3 und den Objekten oder Ablegezielen existiert, und somit das Ablegen der Instanz 202-3 auf ein beliebiges der Objekte 204 ein Abfrage-Ergebnis liefern wird. Wenn keine Beziehung zwischen einer Instanz und einem Objekt existiert, wird ein 'X' 208 verwendet, um dem Benutzer zu zeigen, dass es keine Beziehung gibt (siehe 3). Wie in 3 dargestellt, weist die Instanz 202-4 eine Verbindung mit den Objekten 204-3, 204-4 und 204-5 auf, wie durch die Prüfzeichen 206 gekennzeichnet, hat aber keine Verbindung mit den Objekten 204-1, 204-2, 204-6, 204-7, 204-8 oder 204-9, wie durch 'X' 208 gekennzeichnet.
  • Gemäß noch einer anderen Ausführungsform der vorliegenden Erfindung kann die Verbindungsbitmap nur für Wege unter einer vorbestimmten Länge gespeichert sein. Dies reduziert nämlich die Offline-Rechenzeit der Bitmap und verursacht unter normalen Umständen keinerlei Problem für den Benutzer. In der Tat hat es den Anschein, dass Wege mit erhöhter Länge in den meisten relationalen Datenbanken gewöhnlich von geringerer Bedeutung sind. In Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung ist die vorbestimmte Anzahl von Weglängen fünf. Demzufolge ist in diesem Fall eine Verbindung nur in der Instanz-Objekt-Bitmap gespeichert, wenn der Weg von der Instanz zum letzten Objekt kürzer als oder gleich wie fünf Objekte ist.
  • Die Instanz-Objekt-Bitmap der vorliegenden Erfindung kann in vielerlei Formen verkörpert sein. Wie oben beschrieben, kann sie als Vektor gespeichert sein (Pi, i = 1 ... V), wobei Pi stellvertretend für das Vorhandensein eines Weges von der Instanz zum Objekt Nummer i steht. In diesem Fall entspricht die Größe eines Vektors der Anzahl möglicher Wege von der Instanz zu anderen Objekten. In Übereinstimmung mit anderen Ausführungsformen der vorliegenden Erfindung kann die Instanz-Objekt-Bitmap auch als Matrix oder in irgendeiner anderen geeigneten Form gespeichert sein.
  • Die Instanz-Objekt-Bitmap der vorliegenden Erfindung ist grundsätzlich sehr verschieden von bestehenden Instanz-Instanz-Indextabellen. Wie oben erörtert, kann die vorliegende Erfindung zur Vorhersage verwendet werden, ob ein Ergebnis vorliegt, während eine Instanz-Instanz-Indextabelle typischerweise verwendet wird, um die Antwort auf eine Anfrage zu liefern. In dem Beispiel gemäß 1 würde eine Instanz-Instanz-Tabelle anzeigen, dass die Instanz A1 von Objekt A mit Instanzen B1 und B2 von Objekt B verknüpft ist. Dies macht es möglich, auf die Frage "wie ist Instanz A1 mit Objekt B verknüpft" die Antwort B1 und B2 bereitzustellen. Die Instanz-Objekt-Bitmap der vorliegenden Erfindung macht es möglich vorherzusagen, dass eine Antwort auf die Anfrage existiert, stellt die Antwort aber nicht bereit. Unter der Annahme, dass die Instanz-Objekt-Bitmap der vorliegenden Erfindung typischerweise weniger Informationen liefert als eine Instanz-Instanz-Indextabelle des Standes der Technik, ist die Instanz-Objekt-Bitmap der vorliegenden Erfindung typischerweise viel kleiner als eine Instanz-Instanz-Indextabelle und nimmt somit viel weniger Arbeitsspeicher und/oder Speicherraum ein. Zum Beispiel zeigt die Instanz-Instanz-Indextabelle des Standes der Technik in dem oben gegebenen Beispiel an, dass eine Verbindung zwischen A1 und B1 sowie eine Verbindung zwischen A1 und B2 existiert. Die Instanz-Objekt-Bitmap der vorliegenden Erfindung zeigt jedoch nur an, dass eine Verbindung von A1 zum Objekt B existiert, gibt aber nicht im Einzelnen an, was dies für Verbindungen sind.
  • Nun wird die Berechnung oder Generierung der Instanz-Objekt-Bitmap beschrieben.
  • Insbesondere kann die Bitmap der vorliegenden Erfindung unter Verwendung verschiedener Verfahren berechnet werden. In Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung kann die Bitmap berechnet werden, indem einfach Anfragen laufen gelassen werden, um sämtliche Instanzen-Objekt-Verbindungen zu bestimmen. Wie oben erörtert, entspricht die notwendige Laufzeit für alle Anfragen jedoch O(V·NV), was einen beträchtlichen Zeitaufwand darstellt.
  • Demzufolge gibt es in Übereinstimmung mit einer anderen Ausführungsform der vorliegenden Erfindung ein Verfahren zur Vereinfachung und Beschleunigung der Berechnung der Instanz-Objekt-Bitmap. In Übereinstimmung mit dieser Ausführungsform der vorliegenden Erfindung wird ein Algorithmus zur "Offline"-Berechnung der Instanz-Objekt-Bitmap vorgelegt, der bedeutend schneller abläuft als sein Online-Gegenstück. Daher ist die notwendige Rechenzeit zum Erstellen der Instanz-Objekt-Bitmap eher verkürzt, was Laufzeit spart. In diesem Zusammenhang bedeutet "offline" nur, dass die Bitmap vor ihrer Verwendung zur Vorhersage der Ergebnisse von Anfragen berechnet wird. Einem Fachmann auf diesem Gebiet wird verständlich sein, dass das System während des Generierens der Bitmap auch zu anderen Zwecken laufen kann.
  • In Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung wird die Instanz-Objekt-Bitmap durch Suffixergänzung generiert. Die Suffixergänzung basiert auf der Beobachtung, dass es zur Berechnung eines indirekten Verbindungsweges Ai→→D von der Instanz Ai zum Objekt D möglich ist, zuerst Bj→→D zu berechnen, dann Ai→Bj und die beiden am Ende zu mischen. Dieses Verfahren erlaubt dem Algorithmus Wege, die bereits berechnet wurden, zur Berechnung längerer Wege erneut zu verwenden.
  • Unter Bezugnahme auf 4 wird nun ein Beispiel der Suffixergänzung beschrieben. 4 ist ein Blockdiagramm, das die Verbindungen verschiedener Objekte zeigt. In der Ausführungsform gemäß 4 sind fünf Objekte A–E mit vier Verbindungen dazwischen vorgesehen. Die vier Verbindungen bestehen von A zu B, von B zu C, von C zu D und von E zu B. In diesem Beispiel dient die Berechnung des indirekten Verbindungsweges Bj→→D von Instanzen Bj zum Objekt D als vorberechnetes Suffix zur Berechnung sowohl der indirekten Verbindungswege Ai→→D von den Instanzen Ai zum Objekt D als auch des indirekten Verbindungsweges Em→→D von den Instanzen Em zum Objekt D. Auf diese Weise kann die komplette Menge von Instanz-Objekt-Verbindungen in einer Größenordnung der Anzahl von Instanzen berechnet werden.
  • Eine Ausführungsform eines Verfahren zur Berechnung einer Instanz-Objekt-Bitmap wird nun noch näher erläutert. Zuerst werden für jede Instanz in dem Informationssystem benachbarte Objekte bestimmt. Dies kann beispielsweise unter Verwendung einer Instanz-Instanz-Indextabelle des auf dem Fachgebiet bekannten Typs geschehen, oder es können Anfragen zum Bestimmen dieser Verbindungen verwendet werden.
  • Beim nächsten Schritt werden Instanz-Objekt-Verbindungswege mit einer Länge von zwei berechnet. Dies kann unter Verwendung der im vorhergehenden Schritt berechneten Instanz-Nachbarobjekt-Verbindungswege geschehen. Diese vorberechneten Verbindungswege werden dann als Suffixe zur Berechnung längerer Verbindungswege verwendet. Derselbe Schritt kann so viele Male wie notwendig wiederholt werden, um Instanz-Objekt-Verbindungswege mit größeren Längen zu generieren. Jedes Mal wenn der Schritt wiederholt wird, werden neue Instanz-Objekt-Verbindungswege hinzugefügt, wobei jeder neue Weg eine Länge aufweist, die um ein Objekt länger ist als die Länge der im vorhergehenden Schritt berechneten Verbindungswege. Im Beispiel gemäß 4 weisen die Instanz-Objekt-Verbindungswege von den Instanzen Bj zu D beispielsweise eine Länge von zwei auf. Diese Wege können dann verwendet werden, um Instanz-Objekt-Verbindungswege von den Instanzen Ai zum Objekt D und von den Instanzen Em zum Objekt D zu berechnen; diese Verbindungswege weisen eine Länge von drei auf.
  • Bei jedem Schritt ist die Rechenzeit von der Größenordnung der Anzahl von Instanzen. Schlimmstenfalls können sämtliche Instanzen als Ausgangspunkt eines Instanz-Objekt-Verbindungsweges verwendet werden. Demzufolge beträgt die Rechenzeit für den kompletten Prozess dann O(N), wobei N = Σi=1...V|Vi| die Gesamtzahl von Instanzen ist.
  • Die Begrenzung der Tiefe des Algorithmus auf Wege von weniger als einer vorbestimmten Länge, wie oben erörtert, kann die Rechenzeit durch Begrenzen der Anzahl von Schritten in dem Vorgang weiter verringern. Eine Tiefe von 5, wie in dem oben gegebenen Beispiel, begrenzt dann den Algorithmus so, dass eine Verbindungsbitmap nur für Wege gespeichert wird, deren Länge 5 Objekte nicht überschreitet. Dies wird nicht die ganze Menge von Verbindungen berechnen, kann aber erwünscht sein, weil Wege mit erhöhter Länge gewöhnlich von geringerer Bedeutung sind.
  • Zur Beschleunigung der Rechenzeit der Bitmap kann es wünschenswert sein, den Zugriff auf das Informationssystem während der Berechnung der Instanz-Objekt-Bitmap zu beschränken. Das heißt, wie oben erörtert, die Instanz-Objekt-Bitmap wird vermutlich "offline" vor der Generierung von Anfragen berechnet, für die eine Vorhersage notwendig ist. Wie einem Fachmann auf diesem Gebiet jedoch verständlich sein wird, kann das Informationssystem für andere Zwecke verwendet werden, z. B. für Anfragen, bei denen eine Vorhersage nicht benötigt wird. Eine Minimierung der Belastung des Informationssystems ist daher wichtig, besonders in Echtzeit-Dialogdatenbanken, wo Server-Verfügbarkeit von äußerster Wichtigkeit ist.
  • In Übereinstimmung mit einer anderen Ausführungsform der vorliegenden Erfindung kann eine Cache-Speicherung von Vergleichsabbildungen verwendet werden, um die Schnelligkeit der "Offline"-Berechnung der Bitmap zu erhöhen. Wie einem Fachmann auf diesem Gebiet verständlich sein wird, ist eine Vergleichsabbildung eine Tabelle von Schlüsselpaaren – ein Schlüssel für jedes Objekt der Verbindung. In relationalen Datenbanken wäre dies eine innere Verbindung der zwei Tabellen, deren Verknüpfung untersucht wird. Durch Cache-Speicherung dieser Abbildung für jede der Verbindungen in dem System braucht der Algorithmus nicht mehr als einmal pro Verbindung beim System anfragen, wodurch die Systembelastung bedeutend minimiert wird. Zum Berechnen von Ai→D wird der Algorithmus z. B. die Datenbank für die Verbindungen Ck→D, dann Bj→C und dann Ai→B abfragen, wie oben beschrieben. Zum Berechnen der umgekehrten Verbindungen Di→A besteht keine Notwendigkeit, die Datenbank erneut abzufragen. Die Verknüpfungstabellen zwischen jeden zwei zusammenhängenden Tabellen sind durch den Algorithmus bereits örtlich im Cache gespeichert.
  • Ferner können die im Cache gespeicherten Verknüpfungstabellen nach der Abfrage sortiert werden. Dies erlaubt ein schnelleres Mischen von Bitmaps. Zum Beispiel fragt der Algorithmus nach Berechnen der Bitmap aller Instanzen Bj (zu den Objekten C und D) die Verknüpfungstabelle Ai→Bj ab. Er sortiert diese Liste nach den Instanzen Ai und läuft dann auf allen Instanzen Ai (nicht nur den derzeit von der Verbindung retournierten) und sucht nach jeglichem Vorkommen in der im Cache gespeicherten Verknüpfungstabelle, in der Ai mit Bj verbunden ist. Wenn er ein relevantes Vorkommen findet, verknüpft er die Bitmap durch eine ODER-Operation mit der Bitmap der betreffenden Instanz in B. Durch Verwenden der im Cache gespeicherten Verknüpfungstabellen auf diese Art und Weise nimmt die Suche O(log N), nicht O(N).
  • Unter Bezugnahme auf das Flussdiagramm 500 in 5 wird nun ein Prozess oder Verfahren zum Berechnen einer Instanz-Objekt-Bitmap und Vorhersagen der Ergebnisse von Anfragen unter Verwendung derselben erörtert. Der erste Teil des Flussdiagramms vom Start zu Schritt 508 entspricht der Berechnung der Instanz-Objekt-Bitmap. Der zweite Teil des Prozesses von Schritt 510 bis 518 verkörpert die Vorhersage der Ergebnisse von Anfragen. Nach dem Start werden bei Schritt 502 für jede Instanz einer Datenbank die Verbindungswege zu benachbarten Objekten bestimmt; eine Variable L wird auf 1 gesetzt.
  • Bei Schritt 504 werden für jeden Suffixweg der Länge L Instanz-Objekt-Verbindungswege der Länge L + 1 berechnet; der Prozess geht weiter zu Schritt 506, wo L um 1 heraufgesetzt wird.
  • Beim nächsten Schritt 508 wird bestimmt, ob eine vorbestimmte Höchstlänge Lmax erreicht wird; wenn dies der Fall ist, rückt der Prozess zu Schritt 510 vor, andernfalls geht er zu Schritt 504 zurück. Der Schleifendurchlauf durch die Schritte 504, 506 und 508 fügt Instanz-Objekt-Verbindungswege wachsender Längen hinzu. Bei jeder Schleife nimmt die Anzahl neuer Wege wahrscheinlich ab. Auf alle Fälle erhält man am Ende eine Bitmap von Instanz-Objekt-Verbindungen.
  • Bei Schritt 510 wird eine neue Anfrage erwartet. Wenn eine Anforderung für eine Anfrage erhalten wird, rückt der Prozess zu Schritt 512 vor, wo auf die Instanz-Objekt-Bitmap zugegriffen wird. Durch Zugreifen auf die Instanz-Objekt-Bitmap kann das System vorhersagen, ob die Abfrage-Anforderung eine Abfrage mit Ergebnissen generieren wird. Wenn bei Schritt 514 das Vorhandensein eines Ergebnisses vorhergesagt wird, rückt der Prozess zu Schritt 516 vor, andernfalls rückt er zu Schritt 518 vor. Bei Schritt 516 wird die Abfrage ausgeführt, und der Prozess kehrt zu Schritt 510 zurück. Bei Schritt 518 wird die Anfrage abgebrochen, und der Prozess kehrt dann zu Schritt 510 zurück.
  • Das Flussdiagramm 500 gemäß 5 ist lediglich ein Beispiel einer möglichen Ausführungsform der vorliegenden Erfindung. In Übereinstimmung mit einer anderen Ausführungsform der vorliegenden Erfindung kann der Prozess zum Generieren der Bitmap vollkommen von dem Vorgang der Verwendung der Bitmap zum Vorhersagen des Ergebnisses einer Anfrage abgetrennt sein. Das heißt mit Bezug auf 5, der obere Teil des Flussdiagramms 500 ist vom unteren Teil des Flussdiagramms 500 abgetrennt und läuft zu einer anderen Zeit ab. Auf alle Fälle ist die vorliegende Erfindung nicht auf die dargestellte Ausführungsform beschränkt.
  • Schließlich stellt die vorliegende Erfindung Systeme und Verfahren bereit, um einen Benutzer in Laufzeit zu unterrichten, dass eine spezifische Anfrage (z. B. eine Zieh-und-Verbindungsoperation in einem TopTier Hyper-Relational Server) kein Ergebnis oder keine Einträge liefern wird, ohne dass die Anfrage laufen gelassen oder auf die Datenbanken zugegriffen werden muss. Außerdem kann die vorliegende Erfindung zur Aufzählung realisierbarer Navigationsziele für bestimmte Instanzen verwendet werden und kann zur Anzeige der Wahrscheinlichkeit verwendet werden, dass eine Verbindung ein Ergebnis bringt. Darüber hinaus stellt die Erfindung ein Verfahren zur Offline-Berechnung einer Instanz-Objekt-Bitmap bereit. Obwohl oben eine detaillierte Beschreibung derzeit bevorzugter Ausführungsformen der Erfindung gegeben worden ist, werden für Fachleute auf dem Gebiet verschiedene Alternativen, Modifikationen und Äquivalente offensichtlich sein. Obwohl z. B. vom Algorithmus der vorliegenden Erfindung gesagt wird, dass er für OLTP-Datenbanken verwendet wird, ist er nicht auf OLTP beschränkt. Die vorliegende Erfindung kann mit jedem um Objekte herum erstellten System und die Verbindungen dazwischen verwendet werden. Daher sollte die obige Beschreibung nicht als den Schutzbereich der Erfindung einschränkend angenommen werden, der durch die angehängten Ansprüche definiert ist.

Claims (10)

  1. Verfahren der Vorhersage, ob eine Anfrage ein Ergebnis liefern wird, in einem Informationssystem, das Objekte, Instanzen der Objekte und Beziehungen zwischen zumindest einigen der Objekte und den Instanzen der Objekte umfasst, wobei das Verfahren die Schritte umfasst: – Bereitstellen einer Instanz-Objekt-Bitmap, die anzeigt, ob Instanzen von Objekten mit anderen Objekten verknüpft sind; – Zugreifen auf die Bitmap zum Bestimmen, ob die Anfrage ein Ergebnis liefern wird; und – Unterrichten eines Benutzers, dass die Anfrage das Ergebnis liefern wird; und dadurch gekennzeichnet ist, dass der Schritt Bereitstellen einer Instanz-Objekt-Bitmap das Generieren der Instanz-Objekt-Bitmap durch Berechnen von Wegen von Instanzen zu benachbarten Objekten durch Bestimmen eines Weges von einer Instanz in einem Objekt zu einer Instanz in einem benachbarten Objekt und Berechnen eines Weges von einer Instanz zu einem nicht benachbarten Objekt durch Mischen eines Weges von einer Instanz in einem ersten Objekt zu einer Instanz in einem zweiten Objekt mit einem berechneten Weg von der Instanz in dem zweiten Objekt zu dem nicht benachbarten Objekt umfasst.
  2. Verfahren gemäß Anspruch 1, worin der Schritt Berechnen eines Weges von einer Instanz zu einem nicht benachbarten Objekt wiederholt wird.
  3. Verfahren gemäß Anspruch 1, worin der Schritt Berechnen eines Weges von einer Instanz zu einem nicht benachbarten Objekt wiederholt wird, bis Verbindungswege einer vorbestimmten Länge berechnet werden.
  4. Verfahren gemäß Anspruch 1 oder Anspruch 2, worin der Schritt Bereitstellen einer Instanz-Objekt-Bitmap das Bereitstellen einer Instanz-Objekt-Bitmap umfasst, die anzeigt, ob jede Instanz eines Objektes mit allen anderen Objekten durch einen Verbindungsweg verknüpft ist, der eine Länge gleich wie oder kürzer als eine vorbestimmte Länge aufweist.
  5. Informationssystem mit Objekten, Instanzen der Objekte, Beziehungen zwischen zumindest einigen der Objekte und den Instanzen der Objekte, umfassend: – Mittel zum Bereitstellen einer Instanz-Objekt-Bitmap, die anzeigt, ob Instanzen von Objekten mit anderen Objekten verknüpft sind; – Mittel zum Zugreifen auf die Bitmap, um zu bestimmen, ob eine Anfrage ein Ergebnis liefern wird, und – Mittel zum Unterrichten eines Benutzers, dass die Anfrage das Ergebnis liefern wird, wodurch vorhersagt wird, ob die Anfrage ein Ergebnis liefern wird; dadurch gekennzeichnet, dass die Einrichtung zum Bereitstellen der Instanz-Objekt-Bitmap Mittel zum Generieren der Instanz-Objekt-Bitmap durch Berechnen von Wegen von Instanzen zu benachbarten Objekten durch Bestimmen eines Weges von einer Instanz in einem Objekt zu einer Instanz in einem benachbarten Objekt und durch Berechnen eines Weges von einer Instanz zu einem nicht benachbarten Objekt durch Mischen eines Weges von einer Instanz in einem ersten Objekt zu einer Instanz in einem zweiten Objekt mit einem berechneten Weg von der Instanz in dem zweiten Objekt zu dem nicht benachbarten Objekt umfasst.
  6. System gemäß Anspruch 5, worin die Instanz-Objekt-Bitmap anzeigt, ob eine Instanz eines Objektes mit anderen Objekten durch einen Verbindungsweg verknüpft ist, der eine Länge gleich wie oder kürzer als eine vorbestimmte Länge aufweist.
  7. System gemäß Anspruch 5, das ferner Mittel zum Abbrechen einer Anfrage von einer Instanz an ein Objekt umfasst, wenn die Instanz-Objekt-Bitmap anzeigt, dass die Instanz nicht mit dem Objekt verknüpft ist.
  8. System gemäß Anspruch 5, das ferner eine Datennavigator-Schnittstelle mit zumindest einem ziehbaren Element und zumindest einem Ablegeziel umfasst, wobei eine Anfrage generiert wird, wenn ein ziehbares Element gezogen und an einem Ablegeziel abgelegt wird.
  9. System gemäß Anspruch 8, das ferner Mittel zum Abbrechen der Anfrage umfasst, wenn die Instanz-Objekt-Bitmap anzeigt, dass das ziehbare Element nicht mit dem Ablegeziel verknüpft ist.
  10. System gemäß Anspruch 8, das ferner Mittel zum Darstellen an der Schnittstelle umfasst, dass eine Anfrage keinerlei Ergebnis liefern wird, wenn die Instanz-Objekt-Bitmap anzeigt, dass das ziehbare Element nicht mit dem Ablegeziel verknüpft ist.
DE60030735T 1999-07-02 2000-06-29 Voraussage der realisierbarkeit eines verbindungsweges Expired - Lifetime DE60030735T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14213899P 1999-07-02 1999-07-02
US142138P 1999-07-02
PCT/US2000/018252 WO2001003009A1 (en) 1999-07-02 2000-06-29 Relation path viability prediction

Publications (2)

Publication Number Publication Date
DE60030735D1 DE60030735D1 (de) 2006-10-26
DE60030735T2 true DE60030735T2 (de) 2007-09-13

Family

ID=22498689

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60030735T Expired - Lifetime DE60030735T2 (de) 1999-07-02 2000-06-29 Voraussage der realisierbarkeit eines verbindungsweges

Country Status (9)

Country Link
US (2) US6502094B1 (de)
EP (1) EP1203320B1 (de)
JP (3) JP2003504727A (de)
AT (1) ATE339730T1 (de)
AU (1) AU6065800A (de)
CA (1) CA2377581C (de)
DE (1) DE60030735T2 (de)
IL (1) IL147283A0 (de)
WO (1) WO2001003009A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502094B1 (en) * 1999-07-02 2002-12-31 Sap Portals, Inc. Relation path viability prediction
US7079166B1 (en) * 2000-01-07 2006-07-18 Ricoh Company, Ltd. Graphical user interface with enhanced operations when changing display screen
US6928474B2 (en) * 2000-12-14 2005-08-09 Honeywell International, Inc. Using a probability associative matrix algorithm to modify web pages
GB0110571D0 (en) * 2001-04-30 2001-06-20 Univ Bristol Data retrieval method and system
US6804330B1 (en) * 2002-01-04 2004-10-12 Siebel Systems, Inc. Method and system for accessing CRM data via voice
US7493259B2 (en) * 2002-01-04 2009-02-17 Siebel Systems, Inc. Method for accessing data via voice
US7194069B1 (en) 2002-01-04 2007-03-20 Siebel Systems, Inc. System for accessing data via voice
US7383246B2 (en) 2003-10-31 2008-06-03 International Business Machines Corporation System, method, and computer program product for progressive query processing
US7539666B2 (en) * 2004-04-06 2009-05-26 International Business Machines Corporation Method, system and program for managing geographic data stored in a database
US20060080272A1 (en) * 2004-10-12 2006-04-13 Ya-Huey Juan Apparatus, system, and method for data comparison
US20070156505A1 (en) * 2005-12-30 2007-07-05 Shai Agassi Method and system for providing feedback on business transactions using computer applications
US20070156519A1 (en) * 2005-12-30 2007-07-05 Shai Agassi Method and system for providing sponsored content based on previous provided content
US20070162456A1 (en) * 2005-12-30 2007-07-12 Shai Agassi Method and system for providing context based content for computer applications
US20070179841A1 (en) * 2005-12-30 2007-08-02 Shai Agassi Method and system for providing sponsored content based on user information
US7711607B2 (en) * 2005-12-30 2010-05-04 Sap Ag Method and system for deploying a business application
US20070185721A1 (en) * 2005-12-30 2007-08-09 Shai Agassi Content center and method for business process applications
US20080215998A1 (en) * 2006-12-07 2008-09-04 Moore Dennis B Widget launcher and briefcase
US8424058B2 (en) * 2006-12-07 2013-04-16 Sap Ag Security proxying for end-user applications
US20080141141A1 (en) * 2006-12-07 2008-06-12 Moore Dennis B Widget runtime engine for enterprise widgets
US8117555B2 (en) * 2006-12-07 2012-02-14 Sap Ag Cooperating widgets
CN108616396A (zh) * 2018-05-02 2018-10-02 山东浪潮通软信息科技有限公司 一种业务实现方法及装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751635A (en) 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
JP2569530B2 (ja) * 1987-02-17 1997-01-08 日本電気株式会社 デ−タベ−ス検索方式
JPH02181872A (ja) * 1989-01-06 1990-07-16 Nec Corp 学習型情報検索方法およびその装置
US5748953A (en) * 1989-06-14 1998-05-05 Hitachi, Ltd. Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols
US5671436A (en) 1991-08-21 1997-09-23 Norand Corporation Versatile RF data capture system
JPH0554082A (ja) * 1991-08-21 1993-03-05 Nec Corp データベースシステム
US5416895A (en) * 1992-04-08 1995-05-16 Borland International, Inc. System and methods for improved spreadsheet interface with user-familiar objects
US5412806A (en) 1992-08-20 1995-05-02 Hewlett-Packard Company Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database
JP2990000B2 (ja) * 1993-09-01 1999-12-13 北海道日本電気ソフトウェア株式会社 検索システム
JPH07114569A (ja) * 1993-10-15 1995-05-02 Nec Corp 多重条件検索システム
US5760773A (en) * 1995-01-06 1998-06-02 Microsoft Corporation Methods and apparatus for interacting with data objects using action handles
JPH0973453A (ja) * 1995-09-01 1997-03-18 Canon Inc 情報蓄積検索装置及び方法
US5666525A (en) * 1995-09-21 1997-09-09 The Trustees Of Columbia University In The City Of New York System and method for performing an efficient join operation on large tables with a small main memory
US5983220A (en) * 1995-11-15 1999-11-09 Bizrate.Com Supporting intuitive decision in complex multi-attributive domains using fuzzy, hierarchical expert models
JPH09153048A (ja) * 1995-12-01 1997-06-10 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法及び装置
US5761654A (en) * 1996-06-05 1998-06-02 Oracle Corporation Memory structure and method for tuning a database statement using a join-tree data structure representation, including selectivity factors, of a master table and detail table
US5966730A (en) * 1996-10-30 1999-10-12 Dantz Development Corporation Backup system for computer network incorporating opportunistic backup by prioritizing least recently backed up computer or computer storage medium
US5848424A (en) * 1996-11-18 1998-12-08 Toptier Software, Inc. Data navigator interface with navigation as a function of draggable elements and drop targets
JPH10207906A (ja) * 1997-01-27 1998-08-07 Fuji Xerox Co Ltd 検索履歴管理装置
US5893090A (en) * 1997-01-31 1999-04-06 Informix Software, Inc. Method and apparatus for performing an aggregate query in a database system
JP3495220B2 (ja) * 1997-03-14 2004-02-09 株式会社ナビタイムジャパン 最小コスト経路探索方法およびシステム
US6502094B1 (en) * 1999-07-02 2002-12-31 Sap Portals, Inc. Relation path viability prediction

Also Published As

Publication number Publication date
EP1203320A1 (de) 2002-05-08
JP2006172491A (ja) 2006-06-29
DE60030735D1 (de) 2006-10-26
EP1203320A4 (de) 2003-01-08
US6502094B1 (en) 2002-12-31
ATE339730T1 (de) 2006-10-15
CA2377581C (en) 2009-10-27
WO2001003009A1 (en) 2001-01-11
JP2009116898A (ja) 2009-05-28
JP4272656B2 (ja) 2009-06-03
EP1203320B1 (de) 2006-09-13
IL147283A0 (en) 2002-08-14
JP2003504727A (ja) 2003-02-04
AU6065800A (en) 2001-01-22
JP5065309B2 (ja) 2012-10-31
USRE45752E1 (en) 2015-10-13
CA2377581A1 (en) 2001-01-11

Similar Documents

Publication Publication Date Title
DE60030735T2 (de) Voraussage der realisierbarkeit eines verbindungsweges
DE69833238T2 (de) System zur Schlüsselwortgewinnung und Textwiederauffingungssystem zu seiner Verwendung
DE69811066T2 (de) Datenzusammenfassungsgerät.
EP1311989B1 (de) Verfahren zur automatischen recherche
DE69526168T2 (de) Verfahren und Gerät zur Klassifikation von Dokumentinformationen
DE69933187T2 (de) Dokumentensuchverfahren und Dienst
DE60129652T2 (de) Bildwiederauffindungssystem und Methode mit semantischer und eigenschaftenbasierter Relevanzrückmeldung
DE69431351T2 (de) Verfahren und gerät zum indexieren, suchen und anzeigen von daten
DE69838158T2 (de) Auf die Anzahl von in den Tabellen gespeicherten Datensätzen basiertes Ordnen von Verbindungen
DE69910219T2 (de) Transformation der perspektive auf tabellen von relationalen datenbanken
DE69834386T2 (de) Textverarbeitungsverfahren und rückholsystem und verfahren
DE3855706T2 (de) Automatisierte Rechnung von Materialien
DE69813652T2 (de) System und Verfahren zum hierarchischen Zusammenstellen und Einordnen eines Satzes von Objekten in einem Abfragekontext
DE69835753T2 (de) Verfahren und gerät zur graphischen abbildung von webteilen
DE69815898T2 (de) Identifizierung der relevantesten antworten auf eine aktuelle suchanfrage basierend auf bereits bei ähnlichen anfragen ausgewählten antworten
DE10120870A1 (de) Navigieren in einem Index für den Zugriff auf eine mehrdimensionale Subjektdatenbank
DE10231161A1 (de) Domain-spezifisches wissensbasiertes Metasuchsystem und Verfahren zum Verwenden desselben
DE10028688A1 (de) Methode, System und Programm für eine Verbindungsoperation in einer mehrspaltigen Tabelle sowie in Satellitentabellen mit doppelten Werten
DE10035043A1 (de) Mehrdimensionale Indexierungsstruktur zur Verwendung mit linearen Optimierungsanfragen
DE10328833A1 (de) System und Verfahren für die Verwaltung einer Synonymsuche
DE60300984T2 (de) Methode und Computersystem für die Optimierung eines Boolschen Ausdrucks für Anfragebearbeitung
DE69719641T2 (de) Ein Verfahren, um Informationen auf Bildschirmgeräten in verschiedenen Grössen zu präsentieren
WO2000054167A2 (de) Such- und navigationseinrichtung für hypertext-dokumente
DE10239292A1 (de) Konflikterfassung und -lösung in Zusammenhang mit einer Datenzuweisung
DE60310881T2 (de) Methode und Benutzerschnittstelle für das Bilden einer Darstellung von Daten mit Meta-morphing

Legal Events

Date Code Title Description
8364 No opposition during term of opposition