DE60208778T2 - Datenstruktur für informationssysteme - Google Patents

Datenstruktur für informationssysteme Download PDF

Info

Publication number
DE60208778T2
DE60208778T2 DE60208778T DE60208778T DE60208778T2 DE 60208778 T2 DE60208778 T2 DE 60208778T2 DE 60208778 T DE60208778 T DE 60208778T DE 60208778 T DE60208778 T DE 60208778T DE 60208778 T2 DE60208778 T2 DE 60208778T2
Authority
DE
Germany
Prior art keywords
type
data
infotype
data elements
tree
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
DE60208778T
Other languages
English (en)
Other versions
DE60208778D1 (de
Inventor
Axel Von Bergen
Arne Schwarz
Volker Sauermann
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 SE
Original Assignee
SAP SE
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 SE filed Critical SAP SE
Priority to DE60208778T priority Critical patent/DE60208778T2/de
Publication of DE60208778D1 publication Critical patent/DE60208778D1/de
Application granted granted Critical
Publication of DE60208778T2 publication Critical patent/DE60208778T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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; 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
    • 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
    • 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/99942Manipulating data structure, e.g. compression, compaction, compilation
    • 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)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Circuits Of Receivers In General (AREA)
  • Hardware Redundancy (AREA)

Description

  • Die Erfindung betrifft eine Datenstruktur für Informationsspeichersysteme, wie zum Beispiel Datenbanksysteme. In computergestützten Datenspeichersystemen werden Daten in einem bestimmten Medium, wie zum Beispiel einem Speicher und einem Festplattenlaufwerk, gespeichert und daraus abgerufen. Bei bekannten Systemen werden die Daten in einer Datenstruktur gespeichert, wie zum Beispiel einer auf dem Relationalmodell basierenden Struktur. Obwohl unter Verwendung der bekannten Datenspeichersysteme gespeicherte Daten gespeichert, durchsucht und abgerufen werden können, kann die für das Abrufen erforderliche Zeit insbesondere im Fall komplexer Anfragen beträchtlich sein. Ferner ist das Konstruieren eines effizienten Datenmodells kompliziert und deshalb kostspielig. Nachdem ein Datenbanklayout oder Datenmodell definiert ist, lassen sich spätere Abänderungen nur schwierig implementieren und führen fast immer zu Leistungsverlust.
  • Um die Ansprechzeit für Anfragen an die Datenbank zu beschleunigen, wird häufig ein Anfrageoptimierer verwendet, wie zum Beispiel ein auf Regeln basierender Optimierer oder ein auf Kosten basierender Optimierer. Der auf Regeln basierende Optimierer verwendet eine Menge vordefinierter Regeln. Der auf Kosten basierende Optimierer verwendet statistische Informationen über die Daten zur Strukturierung von Anfragen, indem die Selektivität jeder Anfragekomponente geschätzt und der Suchweg zuerst entlang den selektivsten Komponenten geführt wird. Obwohl die Verwendung der bekannten Optimierer die mittlere Ansprechzeit verkürzen kann, werden Optimierer benötigt, die jede spezifische Anfrage optimieren.
  • Gemäß dem Buch "Data Structures & Their Algorithms", ISBN 0-673-39736-X, können Fachleute einen weiteren Ansatz zum Speichern und Abrufen der Daten durch Repräsentieren der Daten durch eine Baumstruktur verwenden. Zu einer solchen Repräsentation kann gehören, die Daten in Teile zu zerlegen und einen Knoten des Baums mit einem Teil zu identifizieren. Es ist zweckmäßig, für die Repräsentation eine Binärbaumstruktur zu verwenden, weil die Binärbaumstruktur ein schnelles Abrufen der Teile der Daten erlaubt. Ferner kann die Binärbaumstruktur so ausgeglichen werden, daß die Anzahl der Ebenen unter dem Wurzelknoten klein ist und das Abrufen der Teile wenige Schritte umfaßt.
  • Ein Ziel der Erfindung ist die Bereitstellung eines Datenspeichersystems, das leicht einzurichten und zu warten ist. Ein anderes Ziel ist die Bereitstellung eines Datenspeichersystems, das ein schnelles Abrufen von Daten erlaubt. Ein weiteres Ziel der Erfindung ist die Bereitstellung eines Datenspeichersystems, bei dem eine Anfrage deterministisch optimiert werden kann.
  • Diese Aufgaben werden durch Bereitstellung eines Datenbanksystems nach Anspruch 1 gelöst.
  • Durch Verwendung der beanspruchten Struktur läßt sich eine Datenbank leicht aufbauen, während Abänderungen leicht durchführbar sind.
  • Ferner stellt die Erfindung einen Anfrageoptimierer nach Anspruch 6 bereit. Durch Bestimmung von in einem Anfrageteil zu findenden tatsächlichen Datenelementen kann eine deterministische Analyse des tatsächlichen Anfragewegs für die spezifische Anfrage durchgeführt werden. Deshalb kann der beste Weg für jede Anfrage bestimmt werden, so daß man zu optimalen Anfragezeiten für jede Anfrage gelangt.
  • Zusätzliche Merkmale und Vorteile werden in der folgenden Beschreibung einer Ausführungsform der Erfindung ersichtlich. Vorteilhafte Varianten sind der Gegenstand der abhängigen Ansprüche.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt schematisch die hierarchische Struktur des Systems gemäß der Erfindung,
  • 2 zeigt einen Datentyp gemäß der Erfindung,
  • 3 zeigt eine InfoType-Struktur mit einem Anker und einer InfoCell,
  • 4 zeigt zwei InfoCells gemäß der Erfindung,
  • 5 zeigt ein InfoCluster mit drei InfoTypes in einer Binärbaumkonfiguration,
  • 6 zeigt ein InfoCourse als einen Binärbaum, sortiert nach InfoType-Identifikationsnummer,
  • 7 zeigt eine Substruktur 4-dimensional verknüpfter InfoCell-Elemente mit einer Tabelle des repräsentierten Inhalts,
  • 8 zeigt einen Doppelverknüpfungs-Selbstring mit Nummern (Elementzähler des Rings),
  • 9 zeigt eine Nummer für den Elementzähler einer mehrdimensionalen Struktur,
  • 10 zeigt eine Tabelle als 6-dimensionale Struktur,
  • 11 zeigt kaskadierte InfoBridges,
  • 12 zeigt eine InfoBridge mit acht Flags,
  • 13 zeigt ein Beispiel für eine Baumstruktur,
  • 14 zeigt eine Vereinfachung von 13,
  • 15 zeigt ein erstes Beispiel,
  • 16 zeigt ein zweites Beispiel,
  • 17 zeigt ein drittes Beispiel,
  • 18 zeigt das Beispiel von 17,
  • 19 zeigt das Beispiel von 17,
  • 20 zeigt das Beispiel von 17,
  • 21 zeigt ein viertes Beispiel,
  • 22 zeigt ein fünftes Beispiel und
  • 23 zeigt ein sechstes Beispiel.
  • Ausführliche Beschreibung
  • Im folgenden wird ein Ausführungsbeispiel für ein Datenspeichersystem gemäß der Erfindung beschrieben. Die folgenden Ausführungsbeispiele der Erfindung werden gemäß einem relationalen Datenbankmodell implementiert. Das erfindungsgemäße System ist nicht auf die Verwendung innerhalb der Beschränkungen einer bekannten relationalen Datenbankarchitektur begrenzt. Es ist jedoch möglich, die Erfindung hauptsächlich gemäß den Regeln einer relationalen Datenbank zu implementieren. Die Elemente der Erfindung sind grob folgendermaßen in die bekannte Nomenklatur der Theorie der relationalen Datenbanken übersetzbar (wobei die erfindungsgemäßen Definitionen links erscheinen):
    InfoSystem ← Management-System
    InfoArea ← Datenbank
    InfoCluster ← Tabelle
    InfoType ← Attribut
    InfoCourse ← Datensatz
    InfoCell ← Feld
    InfoBridge ← nicht verfügbar
  • Man beachte, daß es für die erfindungsgemäße InfoBridge (die im folgenden beschrieben wird) in dem Gebiet der relationalen Datenbanken kein Gegenstück gibt.
  • In 1 ist ein Diagramm der statischen Hierarchie eines erfindungsgemäßen Datensystems gezeigt. Die höchste Ebene in dem Datensystem ist die InfoSystem-Ebene. Von der obersten Ebene aus nach unten sind ein oder mehrere InfoAreas mit dem InfoSystem verbunden. Das InfoSystem liefert dem System in Laufzeit die notwendigen Algorithmen zum Betreiben des Systems. Das InfoSystem ist durch ein Verknüpfungselement, das im folgenden als Anker beschrieben wird, mit einer beliebigen Anzahl von InfoAreas verbunden. Diese InfoAreas können sich zum Beispiel auf logische Einheiten des InfoSystems beziehen.
  • Jeder InfoArea ist über ein Verknüpfungselement (wieder wie zuvor beschrieben ein Anker) mit einem InfoCluster verbunden. Jedes InfoCluster ist seinerseits durch jeweilige Verknüpfungselemente wie zum Beispiel Anker mit mindestens einem InfoCourse und mindestens einem InfoType verbunden. Der InfoType kann als ein Attribut einer Tabelle angesehen werden; ein InfoCourse beginnt immer in einem InfoCluster. Wenn ein InfoCourse in einem InfoCluster mit seinen adressierten InfoCell-Elementen bleibt, die einem Feld einer Tabelle entsprechen, dann ist er einem Datensatz einer Tabelle ähnlich.
  • Unter dem InfoCourse und dem InfoType befindet sich die InfoCell; sie ist das Element auf der niedrigsten Ebene in der hierarchischen Struktur. Bei Erzeugung einer Instanz des InfoType wird ein Anker erzeugt, der auch eine Instanz des Typs InfoCell ist. Dieser Anker hat die Funktion des Repräsentierens der Struktur der folgenden InfoCell-Elemente (siehe 2). Wie der InfoCell-Informationsträger besitzt der Anker sieben Zeiger, wie später erläutert werden wird.
  • Für die Implementierung der Ebenen unter dem InfoArea, d.h. des InfoCluster, des InfoCourse, des InfoType und der InfoCell, wird ein erfindungsgemäßes Datenelement benutzt (siehe 2). Das Datenelement ist schematisch als ein Anker gezeigt und ist mit einer Anzahl von Zeigern ausgestattet. In diesem Beispiel besitzt das Datenelement drei Paare und einen einzelnen Zeiger. In dem in 2 gezeigten Anfangszustand zeigen alle Zeiger auf den Anker. Bei diesen Anfangszuständen handelt es sich auch um die einfachsten möglichen Ringstrukturen. Jeder Zeiger in der Struktur besitzt eine gültige Adresse, und Fälle eines nicht definierten Zeigers (Nil-Zeiger) werden vermieden.
  • Die Zeiger des ersten Paars tragen die Bezeichnungen LVR und RVR (Links-Vertikalring bzw. Rechts-Vertikalring), die Zeiger des zweiten Paars tragen die Bezeichnungen LHR und RHR (Links-Horizontalring bzw. Rechts-Horizontalring), die Zeiger des dritten Paars tragen die Bezeichnungen LSR und RSR (Links-Selbstring bzw. Rechts-Selbstring) und der einzelne Zeiger trägt die Bezeichnung IF (InFormation-Brücke). Man beachte, daß die Zeiger LSR, RSR und IF im Prinzip optional sind.
  • 7 zeigt eine Tabelle A mit Daten bezüglich Vornamen, Alter und Gewicht. Für diese Tabelle wird ein InfoCluster erzeugt. Ferner werden zur Repräsentation von Vornamen, Alter bzw. Gewicht drei InfoTypes erzeugt.
  • 3 zeigt die Verwendung des Datenelements für die Implementierung des InfoType. Der InfoType umfaßt semantische Informationen, wie zum Beispiel den Datentyp (in diesem Beispiel "INTEGER"), Indikation (in diesem Beispiel "Alter") usw. Der InfoType ist ein mit dem InfoType assoziierter Anker. Der Anker zeigt mit seinem RVR-Zeiger auf den eigentlichen Informationsträger, das heißt, die InfoCell. Die InfoCell wird oben als die Entität der niedrigsten Ebene in dem Datensystem beschrieben. Die InfoCell hält die Informationen, wie in 3 gezeigt; in diesem Beispiel "Alter ist 30 in INTEGER".
  • Die InfoCell wird wie oben beschrieben mit einem LVR/RVR-Zeigerpaar ausgestattet. Wie in 3 gezeigt, zeigt der RVR-Zeiger der InfoCell auf den Anker, und auch der LVR-Zeiger zeigt auf den Anker. Folglich wird die Ringkonfiguration des Ankers aufrechterhalten.
  • 4 zeigt, wie eine weitere InfoCell zu der Datenstruktur hinzugefügt wird. Die InfoCell (mit dem Wert "25") wird nach der ersten InfoCell in den LVR-Ring eingefügt. Die Zeiger LVR und RVR der InfoCell zeigen auf den Anker, um so einen geschlossenen Ring aufrechtzuerhalten.
  • Die Reihenfolge, in der die InfoCells organisiert werden, hängt von ihrem Wert ab. Im Fall eines kleineren Werts wird die InfoCell auf der LVR-Seite eingeordnet, andernfalls auf der RVR-Seite. Diese Praktik ist in der Technik als Binärbaumaufbau wohlbekannt. Vorzugsweise werden die Binärbäume als ausgeglichene oder AVL-Bäume organisiert, wobei diese Verfahren in der Technik wohlbekannt sind. Diese Arten von Bäumen minimieren die Anzahl von Ebenen in der Baumstruktur, um so die Zugriffszeit zu minimieren. Vorzugsweise werden alle Baumstrukturen in dem Datensystem bei der Benutzung dynamisch ausgeglichen, um so optimale Zugriffszeiten zu garantieren.
  • 5 zeigt die Struktur, die erhalten wird, wenn alle InfoTypes der Tabelle A in der Datenstruktur abgelegt werden. Es liegen insgesamt drei InfoTypes vor; Alter, Vorname und Gewicht. Man beachte, daß die Endzeiger des letzten Elements in den jeweiligen Bäumen nicht gezeigt sind. Unter jedem Anker des InfoType werden die InfoCells in einem Binärbaum organisiert. Das InfoCluster zeigt auf einen Anker, der seinerseits auf einen ersten InfoType zeigt. Der erste InfoType zeigt seinerseits auf die anderen beiden InfoTypes. Jeder InfoType zeigt auf einen Anker. Der Anker hat die zusätzliche Funktion einer Markierung, die von einem Zugriffs- oder Anfrageprozeß als Break- oder Return-Zeichen verwendet werden kann.
  • Um die Implementierung der Tabelle zu vervollständigen, müssen die Relationen zwischen dem InfoType hergestellt werden. Zu diesem Zweck wird ein InfoCourse eingeführt. 6 zeigt den InfoCourse, der die Daten für die vierte Zeile der Tabelle enthält. Es werden LHR- und RHR-Zeiger verwendet. Die Endzeiger zeigen wieder zurück auf den Anker des InfoCourse, um die Ringstruktur aufrechtzuerhalten. Man beachte, daß der InfoCourse auch einen Binärbaum bildet, der nach den ID-Nummern der InfoTypes sortiert ist. Man beachte, daß die ID-Nummern der InfoTypes eindeutig sind und daß ganzzahlige Werte verwendet werden.
  • 7 zeigt alle InfoCourse-Wege (zum Beispiel unter Verwendung von Zeigern implementiert) für Tabelle A. Man beachte, daß alle InfoCells in dem oberen Teil mit ihrer jeweiligen InfoType-Id-Nummer versehen wurden, worüber die Binärbaumkonfiguration des InfoCourse über die LHR/RVR-Zeiger organisiert wird.
  • Wenn während des Aufbaus eines Baums für einen InfoType die Instanz einer InfoCell mehrmals auftritt, wird der folgende Mechanismus benutzt, um zu vermeiden, daß mehr als einmal in der Baumstruktur ähnliche Instanzen auftreten. In 9 ist der Fall gezeigt, daß der Vorname Bob dreimal auftritt und der Name Alex zweimal auftritt. Mittels des LSR/RSR-Zeigerpaars werden im Ringverfahren nachfolgende mehrfache Einträge hinzugefügt, was in diesem Kontext als Selbstring bezeichnet wird, da der Ring in der Elementebene der Datenstruktur bleibt. Das zuletzt hinzugefügte Element wird zu dem Master-Element des Rings; das Master-Element ist Teil der Baumstruktur. Wie gezeigt wird in dem unteren Teil jedes Elements die tatsächliche Gesamtzahl der Elemente in einem Ring in dem Master-Element gespeichert. Die anderen, älteren Elemente haben historischen Wert (d.h. niedrigeren Wert), da diese Werte während des Einfügens eines neuen Elements in den Ring nicht aktualisiert werden. Dies hat den praktischen Vorteil, daß die Zahl anzeigt, ob das Element älter oder jünger in dem Ring ist. Dies ist beim Navigieren durch den Ring hilfreich, insbesondere da in der Praxis auf jüngere Daten häufiger zugegriffen wird. Wenn ein Element einen Ringwert von 0 besitzt, ist dies eine Anzeige, daß um dieses Element herum kein Selbstring gebildet wird, siehe auch 8. Diese Informationen können zur Beschleunigung von Suchanfragen verwendet werden.
  • Ein weiteres Merkmal ist ferner, daß jeder InfoCell ein Elementzähler zugeordnet wird. Der Elementzähler ist in 9 in der neben den Elementen angegebenen Box angezeigt. Der Elementzähler ist als der Gesamtwert der Anzahl der Elemente definiert, die über die Zeiger LVR/RVR und LSR/RSR erreicht werden können, das heißt, die Anzahl der Elemente in dem (etwaigen) Selbstring, plus die Anzahl der Elemente in dem Baum unter dem jeweiligen Element. Die Anzahl der Elemente in dem Selbstring ist bereits in dem Master-Element selbst bekannt, und die unterhalb in dem Baum gelegenen Elemente folgen einfach aus dem Elementzähler der Elemente, auf die die Zeiger LVR und RVR zeigen. Im Prinzip ist es nicht notwendig, tatsächlich durch den Baum zu gehen, um die Anzahl relevanter Elemente zu bestimmen. Die Bestimmung des Elementzählers sowie des Selbstring-Elementzählers erfolgt zu Anfang während des Mountens der Datenstruktur, und auch wenn Elemente hinzugefügt oder gelöscht werden. Folglich repräsentiert der Elementzähler die potentielle Anzahl der Elemente, die in einer potentiellen Suche über dieses Element durchsucht werden müssen, bzw. die notwendigen Betriebsmittel für eine solche Suche. Obwohl es im Prinzip ausreicht, nur einen einzigen gerichteten Zeigerselbstring zu verwenden, hat es zusätzliche Vorteile, einen bidirektionalen Zeigerring zu verwenden.
  • 10 zeigt eine Tabelle B als 6-dimensionale Struktur. Für jeden Knoten sind alle Zähler und Identifikationszahlen gezeigt. Ankerelemente und Zeiger, die mit den Ankern assoziiert sind (wie zum Beispiel die Zeiger, die die geschlossene Schleifenstruktur bilden), sind nicht gezeigt.
  • Die Struktur des InfoType kann die Funktionalität einer zuvor definierten Menge besitzen, so daß Elemente in dem InfoType-Baum erscheinen können, die in keinem InfoCourse enthalten sind. Falls ein Element in einem InfoType-Baum nicht von mehr als einem InfoCourse benötigt wird, wird bevorzugt, für jeden InfoCourse zusätzliche InfoType-Strukturen zu erstellen, so daß die Struktur definit bleibt. Der Zeiger IF des Datenelements gemäß der Erfindung kann für jede Instanz eines beliebigen Objekttyps verwendet werden. Der Zeiger IF kann auf eine beliebige Art von Instanz zeigen; die Art der Instanz, auf die er zeigt, kann aus dem Kontext oder einem Indikator bestimmt werden. Dabei kann es sich zum Beispiel um eine Liste von Flags (siehe 12) oder zum Beispiel um einen Konditionengraph (aus der Theorie bekannt) für jeden Knoten handeln. Der Zeiger ist effizienter, da er nicht so viele Bit erfordert, während ein Konditionengraph die Vorteile hat, daß er die Aufnahme semantischer Informationen zur Erweiterung der Datenstruktur bietet.
  • Unter Verwendung des IF-Zeigers lassen sich Verbindungen zu anderen Instanzen herstellen; dies kann zum Beispiel über eine InfoBridge geschehen. Eine erfindungsgemäße InfoBridge ist ein Verbindungselement, das wie ein Y-Adapter aussieht und kaskadiert werden kann (11). Wahlweise kann die InfoBridge bidirektional sein, so daß jedes beliebige Netzwerk über die Grundstruktur repräsentiert werden kann.
  • Der Zeiger IF hat eine weitere Anwendung. Operationen in einer Datenstruktur ändern im ganzen gesehen viele Datenelemente auf einmal. Auf der Mikroebene finden jedoch alle Änderungen sequentiell statt. Zum Beispiel wird eine Operation mit einer Commit-Arbeit oder einem Rollback ausgeführt (diese Operationen sind aus dem System SAP R/3 bekannt). Das heißt, daß sowohl der ursprüngliche (unveränderte) Wert als auch der Zielveränderte) Wert vorübergehend im Speicher gehalten werden müssen, bis die Transaktion vollständig abgeschlossen wurde. Mit einer InfoBridge kann man beide Werte miteinander verbinden. 12 zeigt ein Beispiel. Die obere InfoBridge verbindet zwei InfoCells miteinander. Durch Hinzufügen einer InfoBridge wird alle Funktionalität behalten und kann, wie durch die schraffierte InfoBridge in 12 gezeigt, durch eine Kaskade ergänzt werden.
  • Obwohl nur ein Verbinder mit einer Y-Konfiguration gezeigt ist, kann man andere Konfigurationen verwenden, zum Beispiel mit mehr als drei Verbindungen.
  • Obwohl in den gezeigten Beispielen der InfoCourse eine Datensatzdefinition betrifft, die in einer Tabelle ausgedrückt wird, ist die Verwendung eines InfoCourse nicht darauf beschränkt. Ein InfoCourse kann sich zum Beispiel über unbegrenzte InfoTypes verschiedener InfoClusters oder sogar InfoAreas erstrecken. Auf diese Weise ist es auch möglich, Referenzintegrität sicherzustellen. Zum Beispiel ist es nicht notwendig, Werte einer Testtabelle in die Anwendungstabelle zu kopieren (so wie es für bekannte Datenbanken üblich ist). Stattdessen wird der jeweiligen InfoCell als Wert ein Zeiger auf die InfoCell des InfoClusters gegeben, das als die Testtabelle verwendet wird.
  • Zur Bestimmung der Anfrageroute, die die kürzeste geschätzte Laufzeit besitzt, werden Anfrageoptimierer verwendet.
  • Die Implementierung des oben beschriebenen Systems kann unter Verwendung beliebiger bekannter und geeigneter Verfahren und Programmiersprachen erfolgen. Es ist hilfreich, wenn die Sprache der Implementierung Zeiger unterstützt. Auch ist es hilfreich, wenn die Programmiersprache objektorientiert ist, obwohl dies nicht wesentlich ist. Für die meisten Implementierungen wären Zusatzsteuerstrukturen notwendig, die temporäre Elemente umfassen. Solche Implementierungseinzelheiten sind jedoch bekannt und liegen im Kenntnisbereich von Fachleuten. Eine experimentelle Implementierung der Erfindung wurde in C++ programmiert, wobei diese Sprache die zusätzlichen Vorteile der Verfügbarkeit von Zeigern, Objekten und Objektklassen besitzt.
  • Die Erfindung kann insbesondere in einem Direktzugriffsspeicher (RAM) implementiert werden, wobei direkt auf die Adressen zugegriffen werden kann. Die Verwendung eines Direktzugriffsspeichers hat außerdem den Vorteil, daß Änderungen an der Datenstruktur die Effizienz auf keinerlei Weise beeinflussen. Obwohl die Erfindung vorzugsweise in einem Direktzugriffsspeicher implementiert wird, ist die Implementierung nicht auf diese Form beschränkt und es sind andere Implementierungen in Speichereinrichtungen möglich.
  • Beispiele
  • In den folgenden Beispielen wird gezeigt, wie der Zugriff auf InfoCells stattfindet. Für die Beispiele werden nur InfoCells benutzt, die zu einem InfoType gehören. Eine solche Struktur, die Teil eines größeren Datensatzes ist, ist in 13 gezeigt.
  • Um auf ein Datenelement in der Struktur zuzugreifen, wird die Ringzeigerstruktur verwendet, einschließlich der Zeiger, die zu einem Ring zurückführen (LVR/RVR) und Selbstringe. In 13 werden die Zeiger durch kleine Ankersymbole dargestellt. In 14 ist die Struktur von 13 gezeigt, einschließlich der Relationen der Binärbaumstruktur, die der Struktur von 13 zugrundeliegt, für den Fall, daß keine mehrfachen identischen Elemente angenommen werden. Im folgenden werden mehrere Beispiele für Suchanfragen gezeigt.
  • Beispiel 1: Anfrage (Schlüssel = 54)
  • Das Ziel ist das Finden eines Datenelements mit Schlüssel 54. Die Suche beginnt an der Position 1 (Pfeil mit 1 in 15), die kurz nach dem in 13 gezeigten Anker kommt. Danach ist die Suche einer Suche in einem Binärbaum ähnlich, und die InfoCells werden der Reihe nach besucht, d.h. es wird in dem Baum abgestiegen, wobei die aufeinanderfolgenden InfoCells durch Pfeile 1 bis 5 angezeigt sind. Mit 5 wird das jeweilige Element gefunden.
  • Diese InfoCell ist wie andere InfoCells mit einem Zeigerpaar LHR und RHR ausgestattet. Von der InfoCell aus können benachbarte semantische Informationen des InfoCourse beschafft werden. Da die InfoCourse-Zeiger ebenfalls als ein Ringbaum organisiert sind, kann immer der Startanker des InfoCourse erreicht werden. Von diesem Startanker aus kann jedes Element in der InfoCourse-Struktur erreicht werden. Um die Leistung weiter zu verbessern, kann man zusätzliche Zeiger zu jeder InfoCell hinzufügen, die direkt auf diesen InfoCourse-Anker zeigen. Die Verwendung dieses Zeigers ist nicht notwendig, um vollständig den InfoCourse-Baum zu durchlaufen, um diesen Anker zu erreichen.
  • Um einen Wert einzufügen (zum Beispiel 53, wie in 15 bei 6 gezeigt), wird dasselbe Verfahren wie oben beschrieben verwendet, um Punkt 6 zu erreichen, wo die neue InfoCell hinzugefügt wird. Nach dem Hinzufügen der InfoCell kann der Binärbaum gegebenenfalls neu sortiert werden, um ihn auszugleichen. Solche Umsortierverfahren sind in der Technik wohlbekannt.
  • Beispiel 2: Anfrage (Schlüssel < 20)
  • In diesem Beispiel besteht die Anfrage darin, die schraffierte Teilmenge des Baums (16) zu finden, die die Bedingung Schlüssel < 20 erfüllt. Wieder wird die Suche an der Position 1 gestartet und es wird dem Baum nach unten gefolgt (wie zuvor unter Verwendung bekannter Techniken), um zu der Position 3 zu gelangen. Hier ist zu bemerken, daß aufgrund der Struktur des Baums alle Elemente unterhalb dieses Endes des Baums die Bedingung erfüllen. Die Elementzahl in diesem Teil des Baums ist bekannt (ohne daß der untere Teil des Baums durchsucht werden muß), da die InfoCell 10 mit einer Anzeige des Elementzählers (X1) ausgestattet ist, die genau angibt, wie viele Elemente in diesem Teil des Baums folgen.
  • Beispiel 3: Anfrage (Schlüssel < 28)
  • In diesem Beispiel (17) ist gezeigt, wie für eine Suche in der Datenbankstruktur eine Anzahl von Treffern bestimmt werden kann.
  • Die Suche in dem Baum beginnt mit Position 1 und führt zu Position 2, an der das Anfragekriterium erfüllt ist. Der Elementzähler x1 kann jedoch nicht direkt verwendet werden, da auch Zellen enthalten sind, die das Kriterium nicht erfüllen (d.h. 30 und 35). Es wird dem Weg von Position 2 aus zu Position 3 gefolgt (18), wo der Elementzähler y1 gefunden wird. von dieser Position aus führt der Weg weiter zu Position 4, wo der Elementzähler x2 gefunden wird (19). Nun ist die Suche abgeschlossen und die genaue Anzahl der Treffer für den Anfrageschlüssel (<28) kann durch jeweilige Addition und Subtraktion der gefundenen Elementzähler x1, y1 und x2 berechnet werden (20), um die Anzahl der Zellen in dem schraffierten Bereich zu erhalten, der die Zielgruppe von Zellen repräsentiert. Man beachte, daß mit einer relativ kleinen Anzahl von Schritten einen Weg herunter in der Baumstruktur die Anzahl der Treffer, die die Anfrage ergibt, deterministisch bestimmt ist, so daß sich eine exakte Anzahl von Zellen ergibt.
  • Auf der Basis der Informationen der Anzahl der Treffer für eine gegebene Anfrage kann der Suchoptimierer auf der Basis von wirklichen Tatsachen einen Suchplan erstellen.
  • Beispiel 4: Anfrage (Schlüssel > 10)
  • In 21 ist dieselbe logische Analyse wie für Beispiel 3 für ein weiteres Beispiel gezeigt, mit einem Anfrageschlüssel >10. Die Suche beginnt mit Position 1, die sofort die ersten Ergebnisse in Form des schraffierten Bereichs ergibt. Die Suche gelangt dann zu der Position 2, wo der zweite schraffierte Bereich bestimmt wird. Die Suche endet dann mit Position 3. Alle Zellen in dem rechten Weg müssen berücksichtigt werden (mit Ausnahme von Zelle 10 in Position 3 selbst). Wäre der Schlüssel >= gewesen, hätte auch diese Zelle berücksichtigt werden müssen.
  • Die Anzahl der Treffer wird genauso wie in den vorherigen Beispielen bestimmt, d.h. durch Addieren und Subtrahieren von Elementzählern abhängig davon, ob sie berücksichtigt werden sollen oder nicht.
  • Beispiel 5: Anfrage (Schlüssel zwischen 24 und 54)
  • In 22 ist eine Anfrage gezeigt, die zwei Suchen durch die Baumstruktur erfordert, um die Anzahl der Treffer zu bestimmen. Es wird bei 40 in den Baum eingetreten, so daß sowohl linke als auch rechte Zweige durchsucht werden müssen, genauer gesagt der linke Zweig mit dem unteren Wert 24 und der rechte Zweig mit dem oberen Wert 54. Als Ergebnis wird die eingekreiste Menge von Zellen, die die Kriterien der Anfrage erfüllen, identifiziert.
  • Als Alternative könnte die Anfrage in zwei Elementanfragen (Schlüssel >= 24 und Schlüssel <= 54) aufgeteilt werden, das Ergebnis bliebe aber gleich.
  • Beispiel 6: Optimierung des Zugangswegs
  • In diesem Beispiel ist eine komplexere Suche gezeigt, sowie ein Optimierungsverfahren, das die gerade beschriebenen Verfahren der Bestimmung der Anzahl der Treffer für eine spezifische Anfrage benutzt.
  • Das Beispiel besitzt das folgende zusammengesetzte Anfragekriterium:
    Schlüssel_1 < 28 und Schlüssel_2 >= Wert_2 und Schlüssel_3 < Wert_3
  • Um eine solche komplexe Anweisung auszuführen, bestimmt der erfindungsgemäße Optimierer, wie viele Treffer in jedem Teil der Anfrage erhalten werden. Auf der Basis der Anzahl der Treffer verarbeitet der Optimierer Anfrageteile mit der kleinsten Trefferzahl zuerst und die mit höheren Trefferzahlen später.
  • Um die Anzahl der Treffer für jeden Teil der Anfrage zu bestimmen, muß der Baum für jeden Teil einmal durchsucht werden, wie in dem obigen Beispiel gezeigt.
  • Als Alternative ist es möglich, die Startadressen von Knoten in dem Baum, die bereits gefunden wurden, zu speichern. Auf der Basis der Informationen, die diese Startadressen enthalten (wie zum Beispiel Elementzähler), müssen Teile des Baums nicht nach einem untergeordneten Teil der Anfrage durchsucht werden, da er aus bereits gespeicherten Informationen deduziert werden kann.
  • Der erste Teil der Anfrage stimmt mit dem in 17 gezeigten Beispiel überein. Wenn in diesem Beispiel Position 2 erreicht wird, wird eine temporäre Instanz eines Objekts des Typs Guide erstellt, die die Adresse von Position 2 speichert. Ferner wird ein Iterationswert It erstellt (ähnlich wie bei 23), der die Anzahl tatsächlicher gültiger Zellen in einem Subbaum speichert. Dieser Wert It kann später als Endekriterium für einen Algorithmus zum Durchqueren des Subbaums verwendet werden. Dies erspart den Vergleich des Suchkriteriums mit den Zellenwerten, da das Endekriterium nach Besuchen aller gültigen Zellen in dem Baumteil erreicht wird. Da It vom Integer-Typ ist, ist der Vergleich schneller als ein Vergleich des tatsächlichen Werts einer Zelle, wobei es sich bei dieser Zelle um eine lange Zeichenkette handeln könnte.
  • Aus 19, Position 4 (25), ist klar, daß ein weiterer Subbaum existiert, der durchquert werden muß, wenn das Kriterium (Schlüssel_1 < 28) später von dem Optimierer als das erste verwendet wird.
  • Zu diesem Zweck wird ein weiterer Guide eingeführt, der die Startadresse der Zelle 25 und den Iterationswert It, der in diesem Fall x2 ähnlicht ist, speichert.
  • Bei sehr extensiven Baumstrukturen können während einer Durchquerung mehrere Subbäume, die gültige Treffer enthalten, identifiziert werden. Für jedes oberste Element eines solchen Subbaums wird ein Guide erstellt, der die Startadresse des It-Werts des Elements enthält. Alle Guides bilden eine Verbund-Linearliste, die zu dem jeweiligen Kriterium hinzugefügt wird.
  • Nachdem alle Teile der AND-Kette nach ihrer Trefferzahl (M) durchsucht wurden und der Optimierer den Teil des Auswahlkriteriums gewählt hat, der die kleinste Anzahl von Treffern aufweist, kann der Optimierer die Linearliste der Guides zum direkten Zugriff auf die Bäume mit gültigen Zellen benutzen. Man beachte, daß die Linearlisten für die anderen Teile des Kriteriums verworfen werden, dies aber nicht zu vergrößerter Verarbeitungszeit führt.
  • Der erfindungsgemäße Optimierer bestimmt den Suchweg auf der Basis der exakten Bestimmung der Anzahl der Treffer, die mit jeweiligen Teilen eines Suchkriteriums erhalten werden. Auf diese Weise ergibt die Bestimmung des Suchweges immer die optimalste Wahl.

Claims (9)

  1. Computersystem zur Bereitstellung einer Datenbank-Indexbaumstruktur zur Speicherung von Daten und zum Zugriff auf Daten, wobei die Datenbank-Indexbaumstruktur mindestens ein Datenelement eines ersten Typs (InfoCluster) aufweist, assoziiert mit: – Datenelementen (InfoCells) eines zweiten Typs (InfoTypes) zur Repräsentation von Datenbank-Attributeinträgen, und – Datenelementen eines dritten Typs (InfoCourse) zur Repräsentation von Datensätzen, die mit den Datenelementen des zweiten Typs (InfoType) assoziiert sind, wobei die Datenelemente (InfoCells) des zweiten Typs (InfoType) in einer Vielzahl ausgeglichener Attribut-Baumstrukturen angeordnet sind, wobei jede Attribut-Baumstruktur die Datenelemente des zweiten Typs (InfoType) eines Datenbank-Attributs in sortierter Reihenfolge enthält und jede Attribut-Baumstruktur eine Menge von Zeigern (LVR, RVR, LSR, RSR, IF) enthält, die die Datenelemente (InfoCells) des zweiten Typs (InfoType) verknüpfen; die Datenelemente des dritten Typs (InfoCourse) in einer weiteren ausgeglichenen Baumstruktur angeordnet sind; und für jedes Datenelement des dritten Typs (InfoCourse) die Datenelemente (InfoCells) des zweiten Typs (InfoType), die zu dem Datensatz gehören, der durch das assoziierte Datenelement des dritten Typs (InfoCourse) repräsentiert wird, in der weiteren ausgeglichenen Baumstruktur nach einer Identifikationsnummer (ID) der Datenelemente des zweiten Typs (InfoType) sortiert sind, wobei alle Datenelemente (InfoCells) des zweiten Typs (InfoType) in einer Attribut-Baumstruktur dieselbe Identifikationsnummer (ID) aufweisen und wobei die weitere ausgeglichene Baumstruktur eine weitere Menge von Zeigern (LHR, RHR) enthält, die die Datenelemente (InfoCells) des zweiten Typs (InfoType), die zu dem Datensatz gehören, der durch das assoziierte Datenelement des dritten Typs (InfoCourse) repräsentiert wird, verknüpfen.
  2. Computersystem nach Anspruch 1, wobei Endteile der Baumstrukturen über Verknüpfungselemente mit einem Startteil mindestens der jeweiligen Baumstruktur verbunden sind.
  3. Computersystem nach Anspruch 1 oder 2, wobei mehrfach auftretende ähnliche Datenelemente des zweiten Typs (InfoType) in einem Selbstring angeordnet sind, der eine Menge von Datenelementen umfaßt, die untereinander durch Verknüpfungselemente verbunden sind, und wobei ein Datenelement der Menge direkt Teil der jeweiligen Baumstruktur ist.
  4. Computersystem nach einem der vorhergehenden Ansprüche, wobei Datenelemente eines Baums mit einer Zahl ausgestattet werden, die die Anzahl der in der Baumstruktur unter dem jeweiligen Datenelement angeordneten Datenelemente repräsentiert.
  5. Computersystem nach einem der vorhergehenden Ansprüche, wobei ein Knoten zwischen den Datenelementen des ersten und des zweiten Typs durch Elemente eines dritten Typs (InfoCell) gebildet wird.
  6. Computersystem nach einem der vorhergehenden Ansprüche, wobei ein Datenelement für eine Datenbankstruktur folgendes umfaßt: ein erstes Zeigerpaar (LSR, RSR), ein zweites Zeigerpaar (LHR, RHR) und ein drittes Zeigerpaar (LVR, RVR).
  7. Computersystem nach Anspruch 4, wobei ein Datenelement ferner einen IF-Zeiger (IF) umfaßt.
  8. Verfahren zum Optimieren einer Datenbankanfrage, mit den folgenden Schritten: Zerlegen eines Suchkriteriums in Teile, wobei ein Teil eine Menge von Datenelementen (InfoCells) des Datentyps (InfoTypes) repräsentiert, wobei die Datenelemente (InfoCells) durch Zeiger in einer ausgeglichenen Attribut-Baumstruktur verbunden sind, in der die Datenelemente (InfoCells) des Datentyps (InfoTypes) angeordnet sind, wobei Datenelemente eines weiteren Datentyps (InfoCourse) Datensätze repräsentieren, die mit Datenelementen des Datentyps (InfoType) assoziiert sind, und die Datenelemente des weiteren Datentyps (InfoCourse) in einer weiteren ausgeglichenen Baumstruktur angeordnet werden und wobei für jedes Datenelement des weiteren Datentyps (InfoCourse) die Datenelemente (InfoCells) des Datentyps (InfoType), die zu dem Datensatz gehören, der durch das assoziierte Datenelement des weiteren Datentyps (InfoCourse) repräsentiert wird, in einer weiteren ausgeglichenen Baumstruktur angeordnet werden, die nach einer Identifikationsnummer (ID) der Datenelemente des Datentyps (InfoType) sortiert wird, wobei alle Datenelemente (InfoCells) des Datentyps (InfoType) in einer Attribut-Baumstruktur dieselbe Identifikationsnummer (ID) aufweisen und wobei die weitere ausgeglichene Baumstruktur eine weitere Menge von Zeigern (LHR, RHR) enthält, die die Datenelemente (InfoCells) des Datentyps (InfoType), die zu dem Datensatz gehören, der durch das assoziierte Datenelement des weiteren Datentyps (InfoCourse) repräsentiert wird, verknüpfen, Bestimmen einer Anzahl von Treffern an der tatsächlichen Datenbankstruktur für jeden Teil, Auswählen eines Datenbank-Anfrageweges abhängig von der bestimmten Anzahl von Treffern für jeden Teil.
  9. Computerprogrammprodukt mit Programmanweisungen, die in einen Speicher eines Computersystems ladbar sind und, wenn sie geladen sind, das Computersystem für folgendes konfigurieren: Erzeugen mindestens eines Datenelements eines ersten Typs (InfoCluster); Erzeugen von Datenelementen (InfoCells) eines zweiten Typs (InfoTypes) zum Repräsentieren von Datenbank-Attributeinträgen, wobei die Datenelemente (InfoCells) des zweiten Typs (InfoType) in einer Vielzahl ausgeglichener Attribut-Baumstrukturen angeordnet werden, wobei jede Attribut-Baumstruktur die Datenelemente des zweiten Typs (InfoType) eines Datenbank-Attributs in sortierter Reihenfolge enthält und jede Attribut-Baumstruktur eine Menge von Zeigern (LVR, RVR, LSR, RSR, IF) enthält, die die Datenelemente (InfoCells) des zweiten Typs (InfoType) verknüpfen; Erzeugen von Datenelementen eines dritten Typs (Info-Course), wobei die Datenelemente des dritten Typs (InfoCourse) in einer weiteren Baumstruktur angeordnet werden; und für jedes Datenelement des dritten Typs (InfoCourse) werden die Datenelemente (InfoCells) des zweiten Typs (InfoType), die zu dem Datensatz gehören, der durch das assoziierte Datenelement des dritten Typs (InfoCourse) repräsentiert wird, in noch einer weiteren ausgeglichenen Baumstruktur angeordnet, die nach einer Identifikationsnummer (ID) der Datenelemente des zweiten Typs (InfoType) sortiert wird, wobei alle Datenelemente (InfoCells) des zweiten Typs (InfoType) in einer Attribut-Baumstruktur dieselbe Identifikationsnummer (ID) aufweisen und wobei die noch weitere ausgeglichene Baumstruktur eine weitere Menge von Zeigern (LHR, RHR) enthält, die die Datenelemente (InfoCells) des zweiten Typs (InfoType), die zu dem Datensatz gehören, der durch das assoziierte Datenelement des dritten Typs (InfoCourse) repräsentiert wird, verknüpfen; und Verbinden eines Datenelements des ersten Typs (InfoCluster) mit einem Datenelement des zweiten Typs (InfoType) und einem Datenelement des dritten Typs (InfoCourse) durch einen Anker.
DE60208778T 2001-02-01 2002-02-01 Datenstruktur für informationssysteme Expired - Lifetime DE60208778T2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE60208778T DE60208778T2 (de) 2001-02-01 2002-02-01 Datenstruktur für informationssysteme

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE10104831 2001-02-01
DE10104831A DE10104831A1 (de) 2001-02-01 2001-02-01 Datenstruktur für Informationssysteme
PCT/EP2002/001026 WO2002061612A2 (en) 2001-02-01 2002-02-01 Data structure for information systems
DE60208778T DE60208778T2 (de) 2001-02-01 2002-02-01 Datenstruktur für informationssysteme

Publications (2)

Publication Number Publication Date
DE60208778D1 DE60208778D1 (de) 2006-04-06
DE60208778T2 true DE60208778T2 (de) 2006-09-07

Family

ID=7672701

Family Applications (3)

Application Number Title Priority Date Filing Date
DE10104831A Withdrawn DE10104831A1 (de) 2001-02-01 2001-02-01 Datenstruktur für Informationssysteme
DE60238179T Expired - Lifetime DE60238179D1 (de) 2001-02-01 2002-02-01 Datenbanksystem und abfrageoptimierungseinheit
DE60208778T Expired - Lifetime DE60208778T2 (de) 2001-02-01 2002-02-01 Datenstruktur für informationssysteme

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE10104831A Withdrawn DE10104831A1 (de) 2001-02-01 2001-02-01 Datenstruktur für Informationssysteme
DE60238179T Expired - Lifetime DE60238179D1 (de) 2001-02-01 2002-02-01 Datenbanksystem und abfrageoptimierungseinheit

Country Status (8)

Country Link
US (3) US20040093329A1 (de)
EP (2) EP1393206B1 (de)
JP (2) JP2004518226A (de)
AT (2) ATE316266T1 (de)
AU (2) AU2002229734B2 (de)
CA (1) CA2434081C (de)
DE (3) DE10104831A1 (de)
WO (2) WO2002061613A2 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785668B1 (en) * 2000-11-28 2004-08-31 Sas Institute Inc. System and method for data flow analysis of complex data filters
DE10104831A1 (de) 2001-02-01 2002-08-08 Sap Ag Datenstruktur für Informationssysteme
JP2006508643A (ja) 2002-07-01 2006-03-16 アーキオン ライフ サイエンシーズ エルエルシー ディー/ビー/エー バイオ−テクニカル リソーセズ ディビジョン グルコサミンおよびn−アセチルグルコサミン製造のためのプロセスおよび材料
US7610582B2 (en) 2003-04-18 2009-10-27 Sap Ag Managing a computer system with blades
US7590683B2 (en) 2003-04-18 2009-09-15 Sap Ag Restarting processes in distributed applications on blade servers
EP1852792B1 (de) * 2003-07-08 2013-04-17 Sap Ag Verfahren und System zur Abfrageverarbeitung
ATE483205T1 (de) * 2003-07-17 2010-10-15 Sap Ag Verfahren und computersystem zum speichern von mehrfachen attributwerten
ATE522873T1 (de) * 2003-07-18 2011-09-15 Sap Ag Verfahren und computersystem für zusammengestellte informationen
US7337295B2 (en) 2003-07-24 2008-02-26 Sap Aktiengesellschaft Memory management frame handler
US7310719B2 (en) 2003-07-24 2007-12-18 Sap Aktiengesellschaft Memory management tile optimization
EP1503297A1 (de) * 2003-07-30 2005-02-02 Sap Ag Computerimplementierte Methoden zum Abruf von Trefferzahlen aus einem Datenbanksystem, und ensprechendes Programmprodukt
ATE368901T1 (de) 2003-08-27 2007-08-15 Sap Ag Weiterleiten von änderungen in einer datenbank
EP1510932A1 (de) * 2003-08-27 2005-03-02 Sap Ag Computer implementierte Methode und zugehöriges Computer-Programm-Produkt um Datenmengen zu speichern und diese in einem Datenspeicher zu ermitteln
US20060101018A1 (en) * 2004-11-08 2006-05-11 Mazzagatti Jane C Method for processing new sequences being recorded into an interlocking trees datastore
US8706686B2 (en) * 2003-12-24 2014-04-22 Split-Vision Kennis B.V. Method, computer system, computer program and computer program product for storage and retrieval of data files in a data storage means
GB2431742A (en) * 2005-10-27 2007-05-02 Hewlett Packard Development Co A method of retrieving data from a data repository
US20070118510A1 (en) * 2005-11-18 2007-05-24 Microsoft Corporation Optimization of leaf-level multi-dimensional calculation using scripts
US8738639B1 (en) * 2006-02-23 2014-05-27 Verizon Data Services Llc Methods and systems for an information directory providing audiovisual content
US9367553B2 (en) * 2006-12-30 2016-06-14 Sap Se Computer file system traversal
US7752229B2 (en) 2007-01-26 2010-07-06 International Business Machines Corporation Real-time identification of sub-assemblies containing nested parts
US8954840B2 (en) * 2007-08-03 2015-02-10 Sap Se Annotation processing of computer files
JP4834054B2 (ja) * 2008-11-19 2011-12-07 新日鉄ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム
US10564944B2 (en) * 2010-01-07 2020-02-18 Microsoft Technology Licensing, Llc Efficient immutable syntax representation with incremental change
US9009137B2 (en) * 2010-03-12 2015-04-14 Microsoft Technology Licensing, Llc Query model over information as a networked service
DE102011087843B4 (de) * 2011-12-06 2013-07-11 Continental Automotive Gmbh Verfahren und System zur Auswahl mindestens eines Datensatzes aus einer relationalen Datenbank
US9781075B1 (en) * 2013-07-23 2017-10-03 Avi Networks Increased port address space
US9870417B2 (en) 2014-04-22 2018-01-16 Business Objects Software Ltd. Merging business object hierarchies
US9838303B2 (en) * 2015-03-20 2017-12-05 Juniper Networks, Inc. PIM source discovery by last hop router
EP3091449B1 (de) * 2015-05-04 2018-07-25 Deloitte Consulting GmbH Betrieb eines datenbanksystems
US9998292B2 (en) 2015-09-30 2018-06-12 Juniper Networks, Inc. PIM source discovery by last hop router on shared tree
US10387443B2 (en) 2016-05-09 2019-08-20 Sap Se Exporting and importing database containers
US10984021B2 (en) 2017-06-29 2021-04-20 Sap Se Deployment of independent database artifact groups
US11093443B2 (en) 2017-06-29 2021-08-17 Sap Se Database-level container group management
US10674438B2 (en) 2017-06-29 2020-06-02 Sap Se Restricting access to external schemas from within a database level container by whitelisting allowed schemas
US10776330B2 (en) 2017-06-29 2020-09-15 Sap Se Optimized re-deployment of database artifacts
US10657114B2 (en) 2017-11-28 2020-05-19 Sap Se Reserving key specifications
US11030164B2 (en) 2018-01-18 2021-06-08 Sap Se Artifact deployment for application managed service instances

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829427A (en) * 1984-05-25 1989-05-09 Data General Corporation Database query code generation and optimization based on the cost of alternate access methods
US4849905A (en) * 1987-10-28 1989-07-18 International Business Machines Corporation Method for optimized RETE pattern matching in pattern-directed, rule-based artificial intelligence production systems
US4956774A (en) * 1988-09-02 1990-09-11 International Business Machines Corporation Data base optimizer using most frequency values statistics
US5257365A (en) * 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
JPH04299459A (ja) * 1991-03-27 1992-10-22 Nec Corp データベースアクセスシステム
US5355473A (en) * 1991-06-20 1994-10-11 Lawrence Au Indexed record locating and counting mechanism
FR2696853B1 (fr) * 1992-10-12 1994-12-23 Bull Sa Procédé d'aide à l'optimisation d'une requête d'un système de gestion, de base de données relationnel et procédé d'analyse syntaxique en résultant.
JP3526585B2 (ja) * 1992-03-12 2004-05-17 株式会社リコー 分散データベースの質問処理最適化方式
US5737732A (en) * 1992-07-06 1998-04-07 1St Desk Systems, Inc. Enhanced metatree data structure for storage indexing and retrieval of information
US5548770A (en) * 1993-02-25 1996-08-20 Data Parallel Systems, Inc. Method and apparatus for improving retrieval of data from a database
US5560007A (en) * 1993-06-30 1996-09-24 Borland International, Inc. B-tree key-range bit map index optimization of database queries
US5657437A (en) * 1993-12-10 1997-08-12 Lucent Technologies Inc. Data processing apparatus and method including proportional updating of data
US5557786A (en) * 1994-01-24 1996-09-17 Advanced Computer Applications, Inc. Threaded, height-balanced binary tree data structure
US5742806A (en) * 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
CA2124094C (en) * 1994-05-20 1999-07-20 K. Bernhard Schiefer Method and apparatus for optimizing data retrieval using index scanning
DE19515020A1 (de) * 1994-07-01 1996-01-04 Hewlett Packard Co Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren
US5664172A (en) * 1994-07-19 1997-09-02 Oracle Corporation Range-based query optimizer
US5659728A (en) * 1994-12-30 1997-08-19 International Business Machines Corporation System and method for generating uniqueness information for optimizing an SQL query
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6175835B1 (en) * 1996-07-26 2001-01-16 Ori Software Development, Ltd. Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks
US5819255A (en) * 1996-08-23 1998-10-06 Tandem Computers, Inc. System and method for database query optimization
US5822747A (en) * 1996-08-23 1998-10-13 Tandem Computers, Inc. System and method for optimizing database queries
US6021405A (en) * 1996-08-23 2000-02-01 Tandem Computers, Inc. System and method for optimizing database queries with improved performance enhancements
GB2330221B (en) * 1997-10-09 2002-07-03 Ibm Optimisation of relational database queries
AU1603199A (en) * 1997-12-03 1999-06-16 Curagen Corporation Methods and devices for measuring differential gene expression
US6675173B1 (en) * 1998-01-22 2004-01-06 Ori Software Development Ltd. Database apparatus
US7016910B2 (en) * 1999-12-30 2006-03-21 Decode Genetics Ehf. Indexing, rewriting and efficient querying of relations referencing semistructured data
DE10104831A1 (de) 2001-02-01 2002-08-08 Sap Ag Datenstruktur für Informationssysteme

Also Published As

Publication number Publication date
US20040139046A1 (en) 2004-07-15
DE10104831A1 (de) 2002-08-08
WO2002061612A2 (en) 2002-08-08
ATE316266T1 (de) 2006-02-15
US20040093329A1 (en) 2004-05-13
US7257599B2 (en) 2007-08-14
JP2004518225A (ja) 2004-06-17
WO2002061613A2 (en) 2002-08-08
DE60238179D1 (de) 2010-12-16
EP1360616B1 (de) 2010-11-03
AU2002249161B2 (en) 2005-05-19
EP1393206B1 (de) 2006-01-18
CA2434081A1 (en) 2002-08-08
AU2002229734B2 (en) 2005-05-05
DE60208778D1 (de) 2006-04-06
ATE487186T1 (de) 2010-11-15
US20040088307A1 (en) 2004-05-06
EP1393206A2 (de) 2004-03-03
WO2002061612A3 (en) 2003-11-27
EP1360616A2 (de) 2003-11-12
JP3959027B2 (ja) 2007-08-15
CA2434081C (en) 2009-06-16
WO2002061613A3 (en) 2003-09-04
JP2004518226A (ja) 2004-06-17

Similar Documents

Publication Publication Date Title
DE60208778T2 (de) Datenstruktur für informationssysteme
DE3688529T2 (de) Verfahren zur Auffrischung von Mehrspaltentabellen in einer relationellen Datenbank mit Mindestinformation.
DE3382808T2 (de) Datenbankzugriffsverfahren mit einem benutzerfreundlichen Menü
DE3855706T2 (de) Automatisierte Rechnung von Materialien
DE69533193T2 (de) Paralleles verarbeitungssystem zum durchlaufen einer datenbank
DE69126795T2 (de) Dateienverwaltungssystem mit graphischer benutzerschnittstelle zum aufstellen von fragen
DE68926849T2 (de) Struktur und Verfahren zur Anordnung rekursiv abgeleiteter Daten in einer Datenbank
DE60035432T2 (de) System zur verwaltung der rdbm fragmentierungen
DE3856055T2 (de) Verfahren und Einrichtung, um gleichzeitigen Zugriff zu indizierten sequentiellen Dateien zu ermöglichen
DE69932344T2 (de) Zugriff zu hierarchischem datenspeicher via sql-eingabe
DE69024515T2 (de) Gerät zur Streckenmessung und -analyse zur Leistungsabschätzung von Software-Entwürfen
EP0910829B1 (de) Datenbanksystem
DE68927743T2 (de) Sortier-/Mischausgabe
DE69333408T2 (de) Ein Computer-System und Verfahren zum interaktiven Verwalten eines verteilten Datenbanksystems
DE3788750T2 (de) Schätzeinrichtung des Indexschlüsselbereiches.
DE68919041T2 (de) Vereinigte Variationen in mustergesteuerten, regelbasierten Produktionssystemen für künstliche Intelligenz.
DE3855212T2 (de) Verfahren zur Berechnung eines transitiven Abschlusses
DE10103574A1 (de) Aggregierte Prädikate und Suche in einem Datenbankverwaltungssystem
DE19515020A1 (de) Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren
DE10056763B4 (de) Generieren von Einschränkungsabfragen mit Hilfe von Tensordarstellungen
DE19959765A1 (de) Datei-Editor für mehrere Datenuntermengen
DE60300984T2 (de) Methode und Computersystem für die Optimierung eines Boolschen Ausdrucks für Anfragebearbeitung
WO2007137309A1 (de) Verfahren zum steuern eines relationalen datenbanksystems
EP1166228B1 (de) Verfahren zur nutzung von fraktalen semantischen netzen für alle arten von datenbank-anwendungen
EP1276056A1 (de) Verfahren zum Verwalten einer Datenbank

Legal Events

Date Code Title Description
8364 No opposition during term of opposition