DE69935657T2 - Verfahren und gerät zum optimieren der querygenerierung durch selektives verwenden von zusätzen oder schlüsselwerten - Google Patents
Verfahren und gerät zum optimieren der querygenerierung durch selektives verwenden von zusätzen oder schlüsselwerten Download PDFInfo
- Publication number
- DE69935657T2 DE69935657T2 DE69935657T DE69935657T DE69935657T2 DE 69935657 T2 DE69935657 T2 DE 69935657T2 DE 69935657 T DE69935657 T DE 69935657T DE 69935657 T DE69935657 T DE 69935657T DE 69935657 T2 DE69935657 T2 DE 69935657T2
- Authority
- DE
- Germany
- Prior art keywords
- dimension
- key
- query
- values
- value
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 12
- 230000001419 dependent effect Effects 0.000 claims description 5
- 238000013479 data entry Methods 0.000 claims 4
- 101150086656 dim1 gene Proteins 0.000 description 5
- 238000005192 partition Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
- Die vorliegende Erfindung betrifft Abfragen von Daten in einer Datenbank, und konkreter ein Verfahren zum Auswählen geeigneter Abfrageparameter, um eine Abfrage effizient durchzuführen.
- Datenbanken speichern Daten üblicherweise in einer oder mehreren Faktentabellen, die Instanzdaten irgendeiner Art darstellen, zusammen mit Dimensionstabellen, die Attribute für Daten in den Faktentabellen definieren. Wie in
1 gezeigt, weisen die Faktentabellen Spalten auf, von denen jede ein Element einer bestimmten Dimension darstellt, die eben dieser Instanz zugeordnet ist, und eine oder mehrere Kennzahlen (Measure)-Spalten, die Daten enthalten, die sich auf diese bestimmte Instanz beziehen. Häufig sind die Kennzahlen Werte, welche auf irgendeine Weise aggregiert werden können, wenn Datensätze in den Faktendaten in Gruppen zusammengefasst sind. Zum Beispiel könnten die Eingaben addiert oder gemittelt werden. Allerdings könnte das nicht der Fall sein, und "Kennzahlendaten" in gewissen Kennzahlenspalten in den Faktentabellen könnten nur ein willkürlicher String oder eine andere Art von Wert sein, welcher nicht aggregiert werden kann. Diese Erfindung funktioniert mit jedem Typ von Faktentabelle, solange sie auf eine oder mehrere Dimensionen mit Attributen bezogen ist. - Dimensionen stellen ein eingegrenztes Set von Einheiten innerhalb einer Klasse dar, jede mit einem oder mehreren Attributen, welche auf eine gemeinsame Art klassifiziert werden können. Eine Dimension wird normalerweise in einer Dimensionstabelle dargestellt, wobei eine oder mehrere Spalten in der Tabelle jede Einheit in der Dimension eindeutig identifizieren, das ist bekannt als der Schlüsselwert oder die Schlüsselwerte. Schlüsselwerte sind häufig willkürliche Bezeichner, welche den Einheiten in der Dimen sion gegeben sind, um sie eindeutig zu identifizieren. Andere Spalten in der Tabelle, darunter möglicherweise eine der Schlüsselspalten, sehen unterschiedliche Attribute für jede der Einheiten vor. Diese Attributwerte können verwendet werden, um die Eingaben in der Dimensionstabelle auf unterschiedlichen Ebenen zu gruppieren, und um Daten aus der Faktentabelle entsprechend ihren Attributen zu extrahieren oder zu aggregieren.
- Aus Gründen von Platzeffizienz, und um Redundanz zu vermeiden, die zu Inkonsistenzen in der Datenbank führen könnte, werden nur die Schlüsselwerte für jede Dimension in den Faktendatentabellen gespeichert. Es wäre anzumerken, dass interne Repräsentationen mit einer eins-zu-eins Entsprechung mit den Schlüsselwerten in eben dieser Dimension in den Faktentabellen gespeichert werden könnten, falls das effizienter wäre. Diese würden vom Benutzer nie eingesehen. In einem derartigen Fall kann die interne Repräsentation für die Zwecke dieser Erörterung als der Schlüsselwert betrachtet werden.
- Abfragebeispiele werden in dieser Patentanmeldung in der Sprache SQL gebracht, da diese bei weitem die verbreitetste Abfragesprache ist, die heute verwendet wird. Allerdings ist klar, dass die Erfindung, die hier beschrieben ist, auf gleich effiziente Weise mit anderen Abfragesprachen implementiert werden kann.
-
- In dieser Art von Abfrage werden die in der Abfrage spezifizierten Tabellen an allen gemeinsamen Feldern in jeder der Tabellen miteinander verknüpft. In dem oben angeführten Beispiel ist das Feld key1 der Tabelle dim1 und der Faktentabelle gemeinsam. Das Feld key2 ist der Tabelle dim2 und der Faktentabelle gemeinsam. Das Feld key3 ist der Tabelle dim3 und der Faktentabelle gemeinsam.
- Unter Verwendung einer derartigen Join-Verknüpfung wird eine Eingabe in der Ausgabetabelle für alle Kombinationen von Eingaben in beiden der zwei verknüpften Tabellen erstellt, in welchen das verknüpfte Feld in jeder Tabelle dasselbe ist. Das verknüpfte Feld erscheint nur einmal in der verknüpften Ausgabetabelle. Zum Beispiel ergibt Verknüpfen der zwei Tabellen, die in
2A und2B gezeigt sind, die Ausgabetabelle, die in2C gezeigt ist. - Wenn allerdings zuerst ein Abbilden der in jeder Dimension ausgewählten Attributwerte auf die Schlüsselwerte dieser Dimension ausgeführt wird, ist es nicht nötig, die Dimensionstabellen mit den Faktentabellen in der Abfrage zu verknüpfen, da sich alle nötige Information in der Faktentabelle befindet. Zum Beispiel kann die Abfrage wie folgt lauten:
- Das wird häufig weitaus effizienter sein als die äquivalente Attributlogikabfrage, abhängig davon, wie die Datenbank mit der Abfrage umgeht, da die Dimensionstabellen nicht in der Abfrage beinhaltet sein müssen. Ferner könnte eine Datenbank-Engine in der Lage sein, mit Schlüsselwerten effizienter umzugehen als mit Attributen, auf Grund verschiedener Optimierungen.
- Datenbanken könnten zum Beispiel durch Indizieren der Faktentabelle mit Schlüsselwert in jeder Dimension optimiert werden. Die geeigneten Faktendaten, die in das resultierende Datenset einzuschließen sind, können dann sehr schnell durch Scannen durch die Eingaben nach jedem Schlüssel in dem Index gefunden werden, da die Indices, die einem bestimmten Schlüssel zugeordnet sind, konsekutiv angeordnet sind.
-
- Ungeachtet dessen, welche Abfragelogik von üblichen Datenbankabfrage-Tools verwendet wird, verwenden sie alle dieselben Transformationen von der Anforderung in die geeignete SQL-Abfrage, ungeachtet der Anzahl an Eingaben, welche auf Verwenden der ausgewählten Abfragelogik durchsucht werden. Zum Beispiel ergeben, in einigen Situationen, getroffene Auswahlen, besonders auf höheren Ebenen in Dimensionen, eine große Anzahl an Datensätzen von einer Dimensionstabelle, auf welche die Auswahlkriterien zutreffen. Zum Beispiel könnte man nach allen Aktienfonds aller Investmentfonds am Markt fragen. Tatsächlich könnte es hunderte von Dimensionseingaben geben, auf welche das Auswahlkriterium zutrifft. Wenn das Datenbankabfrage-Tool automatisch eingestellt ist, die ausgewählten Dimensions-Attributeingaben in Schlüsselwerte in der Fonds-Dimension zu transformieren, würden die Dimensionen durchsucht, um Schlüsselwerte zu finden, auf die das Auswahlkriterium zutrifft. Eben diese Eingaben würden dann der Abfrage hinzugefügt, unter Verwendung einer "IN"-Liste, wie oben gezeigt. Ein Problem entsteht, wenn die Anzahl der Schlüsselwerte sehr groß wird. Die meisten Datenbanksysteme setzen der Anzahl der Werte in einer einzigen "IN"-Liste eine Grenze, und das Abfrage-Tool muss daher die Abfrage in eine Anzahl an Abfragen teilen, nach welchen die Datenbank durchsucht wird. Ferner könnte es, selbst wenn die Dimensionen nicht indiziert sind, tatsächlich länger dauern, eine Abfrage mit einer signifikanten Anzahl an Schlüsselwerten unter Verwendung nur der Faktentabelle durchzuführen, als die Abfrage unter Verwendung der wenigen abgefragten Attributwerte durchzuführen, und unter Einbringen der Dimensionen in die Abfrage. Zum Beispiel könnte es für eine Datenbank-Engine nahezu gleich schnell sein, einen Attributwert in der zugeordneten Dimensionstabelle aufzusuchen und zu prüfen, um festzustellen, ob er zutrifft, wie es sein könnte, festzustellen, ob ein Schlüsselwert zutrifft. Wenn es signifikant mehr Schlüsselwerte in der äquivalenten Abfrage gibt als die Anzahl an Attributwerten, würde es nahezu mit Sicherheit schneller sein, die Attributwerte in der zugeordneten Dimension aufzusuchen, als alle Schlüsselwerte zu prüfen, um festzustellen, ob einer von ihnen zutrifft.
- Es zeigt sich, dass ein Abfrage-Tool erforderlich ist, das zwischen alternativen Abfragestrukturen wählen kann, abhängig von den tatsächlich abgefragten Attributen.
- Chaudhuri, S. und Dayal, U., "An Overview of Data Warehousing and OLAP Technology" (SIGMOD Record, Vol. 26, No. 1, Seiten 65 bis 74, März 1997) beschreibt eine Datenbank, die aus einer einzigen Faktentabelle und einer einzigen Tabelle für jede Dimension besteht. Jedes Tupel in der Faktentabelle besteht in einem Zeiger zu jeder der Dimensionen, welche ihre multidimensionalen Koordinaten bereitstellen, und speichert die numerischen Kennzahlen (Measures) jener Koordinaten. Jede Dimensionstabelle besteht aus Spalten, die Attributen der Dimension entsprechen. Chaudhuri et al. beinhaltet eine Übersicht relevanter Literatur zur Transformation komplexer SQL-Abfragen.
- KURZDARSTELLUNG DER ERFINDUNG
- Gemäß der vorliegenden Erfindung ist Folgendes vorgesehen: Verfahren nach Anspruch 1; Vorrichtung nach Anspruch 6; und ein computerlesbares Medium nach Anspruch 11.
- Ein bevorzugtes Beispiel sieht ein Verfahren vor zum Erzeugen von Abfragen aus Datenanforderungen, welche Attribute von einer oder mehreren Dimensionen einbeziehen, wobei die entsprechenden Schlüsselwerte für die Attribute bestätigt werden, und danach eine Entscheidung getroffen wird, ob Attributlogik oder Schlüsselwertlogik in der Abfrage verwendet werden soll, abhängig von der Anzahl der Schlüsselwerte und Attribute, die nötig sind, um die Abfrage durchzuführen. Vorzugsweise basiert die Abfrage auf einer Anforderung nach Daten, welche einen oder mehrere der Attributwerte aus einer oder mehrerer der Dimensionen spezifizieren.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt drei generische Relationstabellen und eine entsprechende Faktentabelle mit Beispielcharakter. -
2A und2B zeigen zwei Tabellen mit Beispielcharakter. -
2C zeigt eine Verknüpfung der zwei in2A und2B gezeigten Tabellen. -
3 zeigt Komponenten eines Systems gemäß einer ersten Ausführungsform der Erfindung. -
4 ist ein Flussdiagramm, das einen Auswahlalgorithmus gemäß einer ersten Ausführungsform der Erfindung darstellt. - AUSFÜHRLICHE BESCHREIBUNG
- Eine konkrete Ausführungsform der vorliegenden Erfindung wird nun mit Bezug auf
3 bis4 beschrieben. - Wie in
3 gezeigt, ist ein Abfragegenerator20 vorgesehen als ein Objekt auf einem Applikationsserver2 . Der Abfragegenerator nimmt externe Anforderungen an und erzeugt SQL-Abfragen aus denselben. Diese SQL-Abfragen werden danach an eine Datenbank-Engine4 gesendet, welche die angeforderten Daten von einer Datenbank6 bezieht. Die zurückgegebenen Daten werden dann von der Datenbank-Engine an den Anwendungsserver zurückgesendet und entweder an den Anfordernden zurückgegeben oder verarbeitet und an eine andere Stelle gesendet, zum Beispiel zu einem Displayserver10 . - Der Applikationsserver speichert auch Repliken
12 der Dimensionen, die in der Datenbank gespeichert sind, welche die Faktendaten betreffen, die bezogen werden sollen. Wenn eine Anforderung, die ein oder mehrere Attribute einbezieht, von dem Abfragegenerator empfangen wird, durchsucht der Abfragegenerator die Dimensionseingaben und identifiziert alle erforderlichen Schlüsselwerte. Das könnte auch unter Verwendung von Abfragen an den Datenbankserver geschehen, wäre jedoch weitaus ineffizienter. - Der Abfragegenerator
20 entscheidet danach, wie die Abfrage erzeugt werden sollte, unter Verwendung der folgenden Logik, welche als ein Flussdiagramm in4 dargestellt ist. - Für jede der Dimensionen wird es, wenn die Anzahl der Schlüsselwerte unter einem gewissen empirisch bestimmten Schwellenwert liegt, als wahrscheinlich erachtet, dass es effizienter ist, die Schlüsselwerte einfach mit den Werten in der Faktentabelle zu vergleichen, um die Resultate der Abfrage zu erhalten. Für dieses System, an welchem die Ausführungsform von den Anmeldern implementiert worden ist, wurde ein idealer Wert für diese Schwelle bei 30 gefunden. Die Abfrage, die in diesem Fall generiert wird, beinhaltet nicht die Dimensionen und wird einfach nach den Faktendaten durchgeführt (bezeichnet als eine Abfrage "ohne" bezogen auf die Dimension, da die Dimension nicht erforderlich ist.) Zum Beispiel könnte die folgende Abfrage erzeugt werden.
- Wenn allerdings die Anzahl der Schlüssel die gewisse vorbestimmte Schwelle übersteigt, variiert die erzeugte Abfrage abhängig davon, ob es einen Index zur Dimension für die Faktentabelle gibt oder nicht.
- Wie oben erörtert, kann, wenn die Dimension indiziert ist, ein Schlüsselwert von dieser Dimension sehr schnell auf geeignete Eingaben in der Faktentabelle abgebildet werden, welche den Schlüsselwert verkörpern.
- Wenn der Dimensionsschlüssel indiziert ist, wird ein Vergleich durchgeführt, um festzustellen, ob die Anzahl an Schlüsselwerten, welche in der Abfrage erscheinen, die Anzahl an Attributwerten, multipliziert mit einer gewissen vorbestimmten Konstante A, ebenfalls empirisch bestimmt, überschreitet. Für das System, an welchem diese Ausführungsform von den Anmeldern implementiert worden ist, wurde ein idealer Wert bei 30 gefunden, wenngleich anzumerken wäre, dass dieser Wert mit dem oben erörterten Schwellenwert in keinem Zusammenhang steht.
- Wenn die Anzahl an Schlüsselwerten diesen Wert übersteigt, wird für wahrscheinlich erachtet, dass Attributlogik effizienter ist, und es wird eine Attributabfrage erzeugt. Zum Beispiel wird eine Abfrage "mit Join" erzeugt, welche die folgenden Terme beinhaltet. Der Begriff "mit Join" bezieht sich darauf, dass eine Join-Verknüpfung zwischen der Faktentabelle und eben dieser Dimensionstabelle, wie mit Bezug auf
2A bis2C erörtert, durchgeführt wird. Es wäre anzumerken, dass alle attributbasierten Abfragen bezogen auf diese Dimension Abfragen "mit Join" sind, da die Attributwerte nicht ohne Rückgriff auf die Dimensionstabelle bestätigt werden können. - Wenn allerdings die Anzahl an Schlüsselwerten die Anzahl an Attributwerten, multipliziert mit der Konstante A, nicht übersteigt, wird eine schlüsselwertbasierte Abfrage "mit Join" erzeugt, welche die Dimension in der Abfrage beinhaltet, unter Verwendung des optimierten Indizierens der Datenbank-Engine. Die Abfrage könnte die folgenden Terme beinhalten:
- Wenn eben diese Dimension nicht indiziert ist, wird es weniger von Vorteil sein, die Schlüsselwerte zu verwenden, sofern es überhaupt von Vorteil ist. Zum Beispiel könnte es für eine Datenbank-Engine nahezu gleich schnell sein, einen Attributwert in der zugeordneten Dimensionstabelle aufzusuchen und zu prüfen, um festzustellen, ob er zutrifft, wie es wäre, festzustellen, ob ein Schlüsselwert zutrifft. Daher wird in diesem Fall eher ein einfacher Vergleich der Anzahl an Schlüsselwerten mit der Anzahl an Attributwerten durchgeführt, als der lange Weg des Erstellens eines empirischen Koeffizienten beschritten. Ein derartiger Koeffizient könnte allerdings, wenn geeignet, verwendet werden, abhängig von der Datenbank-Engine.
- Wenn die Anzahl an Schlüsselwerten größer ist als die Anzahl an Attributwerten, welche in der Abfrage für diese Dimension verwendet würden, wird eine Attributabfrage "mit Join" für diese Dimension in der Abfrage verwendet. Andernfalls wird eine Schlüsselwerteabfrage "ohne Join" für diese Dimension verwendet, da kein Vorteil darin besteht, die Dimension in die Suche einzuschließen, da sie nicht indiziert ist.
- Dieser Auswahlalgorithmus wird für jede Dimension wiederholt, und die Abfrage wird danach geeignet erzeugt und an die Datenbankabfrage-Engine weitergeleitet.
- Selbstverständlich könnten, abhängig von den verschiedenen Eigenschaften der Abfrage in jeder der Dimensionen, unterschiedliche Join-Verknüpfungen in jeder Dimension ausgeführt werden. Einige Dimensionen könnten in der Abfrage beinhaltet sein und andere nicht. Ferner könnten einige der Dimensionen Attributlogik beinhalten und andere nicht. Zum Beispiel könnte die folgende vollständige Abfrage erzeugt werden, wobei die erste Dimension und die dritte Dimension in der Abfrage beinhaltet wären, wobei die erste Schlüsselwertlogik verwenden könnte und die zweite Attributwertlogik:
- Einige Anforderungen sind komplexer als die bisher beschriebenen Fälle. Zum Beispiel treten "multiple keeps"-Anforderungen auf, wenn ein Benutzer mehrere getrennte Auswahlen ("Keeps") aus einer Dimension ausführt. Die Abfrage, die in diesem Fall erzeugt wird, muss ODER-Logik in der WHERE-Klausel verwenden, um diese Situation zu modellieren. Nehmen wir also an, ein Benutzer hat zum Beispiel bei Auswählen aus Dimension dim1 mehrere "Keeps" ausgeführt. Der erste Keep hat Attribute attr1 und attr2 einbezogen, während der zweite Keep Attribute attr3 und attr4 einbezogen hat. Die erzeugte Abfrage sollte wie folgt lauten:
- Gemäß dieser Ausführungsform, bei Abfragen dieser Art, wird jedes in der attributbasierten Abfrage bezeichnete Attribut als ein Attribut in dem obigen Algorithmus gezählt. Die äquivalente Abfrage unter Verwendung von Schlüsselwerten ist von demselben an früherer Stelle beschriebenen Format, mit einer einfachen "IN"-Liste, und es gibt daher keine zusätzliche Komplexität beim Erstellen der Anzahl der Schlüsselwerte.
- Ein noch komplexeres Szenario tritt auf, wenn der Benutzer eine Kennzahl (Measure) auswählt, die eine "Base"-Berechnung beinhaltet (d.h. "etw" wie Share). Das verlangt typischerweise (eine) zusätzliche Auswahl(en) "hinter den Kulissen" aus der gegebenen Dimension. Die Schlüssellogik löst diese Situation durch zusätzliche Schlüsselwerte in der Liste der Schlüssel für die Dimension. Die Attributlogik muss ein zusätzliches ODER noch dazu zu der Syntax ausführen, bezogen auf die mehreren "Keeps". Angenommen, dass (noch dazu zu den mehreren "Keeps" aus dem obigen Beispiel) der Benutzer eine "Base"-Berechnung auswählt, die zusätzliche Auswahl in Dimension dim1 verlangt, etwa aus attr5. Die Abfrage wird wie folgt aussehen:
- Eine derartige Situation wird in dem "multiple keeps"-Szenario auf ähnliche Weise behandelt.
- Es wäre anzumerken, dass eine Sternverknüpfungsoption in Verbindung mit der Attributelogikoption verwendet werden kann, wobei einige Dimensionen eine Sternverknüpfung auf Basis einer indizierten Dimension verwenden, und einige Dimensionen die Standardattributlogik verwenden. Angenommen, dass ein einfacher Fall von Attributlogik für Dimension dim1 verwendet wird, so könnte die Abfrage wie folgt aussehen:
- In dem System dieser Ausführungsform erlauben Benutzerprofile, die Daten, die an den Benutzer zurückgegeben werden, in Subsets zu unterteilen. Der Benutzer hat nur Zugriff auf jene Datensätze, die einzusehen der Benutzer berechtigt ist. Base verwendet einen Filtermechanismus, um das zu erreichen. Vom Standpunkt der Attributlogik aus betrachtet ist das Benutzerprofil ein Set von Dimensionsauswahlen, die das Datensubset bestimmen, auf das der Benutzer zugreifen kann.
-
- Jeder genannte Attributwert wird in dem Algorithmus dieser Ausführungsform der Erfindung als ein einziger Attributwert behandelt.
- Die Attributlogik wird von partitionierten Faktensets nicht beeinträchtigt. Im Fall physikalischer Partitionen wird jede Partition unter Verwendung einer Aggregattabelle definiert. Typischerweise wird eine Abfrage auf jede Partition unter Verwendung der beschriebenen Logik gerichtet.
- Während bevorzugte Ausführungsformen der vorliegenden Erfindung illustriert und beschrieben worden sind, wird es in Durchschnittsfachkreisen klar sein, dass Änderungen und Modifikationen vorgenommen werden können, ohne von der Erfindung, wie sie beansprucht ist, abzuweichen. Verschiedene Merkmale der vorliegenden Erfindung sind in den folgenden Ansprüchen ausgeführt.
Claims (11)
- Verfahren zur Erzeugung einer Abfrage, die dazu verwendet werden soll, um Daten aus einer Datenbank zu erhalten, wobei die Datenbank eine oder mehrere Faktentabellen und mindestens eine Dimensionstabelle umfasst; wobei jede Dimensionstabelle Daten bereitstellt, die eine Dimension darstellen, und die Daten Attributwerte in einem Satz von Attributen für einen Satz von Einheiten umfassen, wobei jede Einheit durch einen Schlüsselwert identifiziert wird und die Faktentabellen Dateneingaben umfassen, wobei jede Dateneingabe einer Einheit aus jeder der Dimensionen zugeordnet ist; dadurch gekennzeichnet, dass das Verfahren für jede Dimension die folgenden Schritte umfasst: Herstellen aller Schlüsselwerte in der Dimension, die den Attributwerten in der Dimension zugeordnet sind; Auswählen, ob ein Schlüsselwert oder ein Attributwert in dieser Dimension als eine Funktion der Anzahl der Schlüsselwerte und der Anzahl der Attributwerte in der Dimension abgefragt werden soll; und Erzeugen der Teile der Abfrage entsprechend dieser Dimension durch Verwendung von Attributwerten, wenn eine Attributwertabfrage ausgewählt wurde; Erzeugen der Teile der Abfrage entsprechend dieser Dimension durch Verwendung von Schlüsselwerten, wenn eine Schlüsselwertabfrage ausgewählt wurde.
- Verfahren nach Anspruch 1, wobei der Schritt des Auswählens, ob ein Schlüsselwert oder ein Attributwert abgefragt wird, den Schritt des Vergleichs der Anzahl der Schlüsselwerte mit einem Schwellenwert umfasst und, wenn die Anzahl der Schlüsselwerte geringer ist als ein zuvor festgelegter Wert, der Teil der Abfrage entsprechend jener Dimension durch eine Schlüsselwertabfrage in einer Faktentabelle implementiert wird.
- Verfahren nach Anspruch 2, wobei bei einer Anzahl der Schlüsselwerte in der Dimension, die höher ist als der zuvor festgelegte Schwellenwert, der Teil der Abfrage entsprechend der Dimension durch Verwendung von Attributwerten implementiert wird, wenn das Verhältnis der Schlüsselwerte zu den Attributwerten, das notwendig ist, um die Abfrage zu implementieren, unterhalb eines gewissen Verhältniswertes liegt, und Implementieren durch Verwenden von Schlüsselwerten, wenn das Verhältnis oberhalb des Verhältniswertes liegt.
- Verfahren nach Anspruch 3, wobei der Verhältniswert in Abhängigkeit davon, ob die Dimension indiziert ist, variiert.
- Verfahren nach Anspruch 3, wobei bei einer Implementierung des Teiles der Abfrage Verwendung von Schlüsselwerten der Teil der Abfrage unter Anwendung lediglich der Faktentabelle implementiert wird, wenn die Dimension nicht indiziert ist, und die Abfrage implementiert wird durch Zusammenfügen der Faktentabelle mit der entsprechenden Dimensionstabelle und Abfragen des Dimensionsschlüssels in der zusammengefügten Dimensionstabelle, wenn die Dimension indiziert ist.
- Vorrichtung zur Erzeugung einer Abfrage, um Daten aus einer Datenbank zu erhalten, wobei die Datenbank eine oder mehrere Faktentabellen und mindestens eine Dimensionstabelle umfasst; wobei jede Dimensionstabelle Daten bereitstellt, die eine Dimension darstellen und die Daten Attributwerte in einem Satz von Attributen für einen Satz von Einheiten umfassen und jede Einheit durch einen Schlüsselwert identifiziert wird; wobei die Faktentabellen Dateneingaben um fassen und jede Dateneingabe einer Einheit aus jeder der Dimensionen zugeordnet ist; dadurch gekennzeichnet, dass die Vorrichtung umfasst: Mittel zum Erstellen aller Schlüsselwerte in jeder Dimension, die den Attributwerten in der Dimension zugeordnet sind; Mittel zum Auswählen, ob ein Schlüsselwert oder ein Attributwert in dieser Dimension als eine Funktion der Anzahl der Schlüsselwerte und der Anzahl der Attributwerte in der Dimension abgefragt werden soll; und Mittel zum Erzeugen der Teile der Abfrage entsprechend der Dimension durch Verwendung von Attributwerten, wenn eine Attributwertabfrage ausgewählt wurde; Mittel zum Erzeugen der Teile der Abfrage entsprechend der Dimension durch Verwendung von Schlüsselwerten, wenn eine Schlüsselwertabfrage ausgewählt wurde.
- Vorrichtung nach Anspruch 6, wobei die Mittel zum Auswählen, ob ein Schlüsselwert oder ein Attributwert abgefragt werden sollen, Mittel zum Vergleichen der Anzahl der Schlüsselwerte mit einem Schwellenwert umfassen und, wenn die Anzahl der Schlüsselwerte geringer ist als ein zuvor festgelegter Wert, der Teil der Abfrage, der der Dimension entspricht durch Verwendung einer Schlüsselwertabfrage in einer Faktentabelle implementiert wird.
- Vorrichtung nach Anspruch 7, wobei bei einer Anzahl der Schlüsselwerte in der Dimension, die über dem zuvor festgelegten Schwellenwert liegt, der Teil der Abfrage, der der Dimension entspricht durch Verwendung von Attributwerten implementiert wird, wenn das Verhältnis der Schlüsselwerte zu den Attributwerten, welches notwendig ist, um die Abfrage zu implementieren, unterhalb eines gewissen Verhältniswertes liegt, und Implementieren durch Verwenden von Schlüsselwerten, wenn das Verhältnis oberhalb dieses Verhältniswertes liegt.
- Vorrichtung nach Anspruch 8, wobei der Verhältniswert in Abhängigkeit davon variiert, ob die Dimension indiziert ist.
- Vorrichtung nach Anspruch 8, wobei der Teil der Abfrage unter Verwendung lediglich der Faktentabelle implementiert wird, wenn der Teil der Abfrage durch Verwendung von Schlüsselwerten implementiert wird, wenn die Dimension nicht indiziert ist, und die Abfrage durch Zusammenfügen der Faktentabelle mit der entsprechenden Dimensionstabelle implementiert wird und durch Abfragen des Dimensionsschlüssels in der kombinierten Dimensionstabelle, wenn die Dimension indiziert ist.
- Computerlesbares Medium, umfassend die Anweisungen, die den Computer dazu veranlassen, ein Verfahren gemäß einem der Ansprüche 1 bis 5 durchzuführen, sofern dieses durch einen dafür geeigneten Computer ausgeführt wird.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/185,042 US6192357B1 (en) | 1998-11-03 | 1998-11-03 | Method and apparatus for optimizing query generation by selectively utilizing attributes or key values |
PCT/US1999/025939 WO2000028439A1 (en) | 1998-11-03 | 1999-11-03 | Method and apparatus for optimizing query generation by selectively utilizing attributes or key values |
US185042 | 2008-08-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69935657D1 DE69935657D1 (de) | 2007-05-10 |
DE69935657T2 true DE69935657T2 (de) | 2007-12-13 |
Family
ID=22679320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69935657T Expired - Lifetime DE69935657T2 (de) | 1998-11-03 | 1999-11-03 | Verfahren und gerät zum optimieren der querygenerierung durch selektives verwenden von zusätzen oder schlüsselwerten |
Country Status (12)
Country | Link |
---|---|
US (1) | US6192357B1 (de) |
EP (1) | EP1049997B1 (de) |
JP (1) | JP2004520633A (de) |
CN (1) | CN1292125A (de) |
AT (1) | ATE358297T1 (de) |
AU (1) | AU755859B2 (de) |
BR (1) | BR9906714A (de) |
CA (1) | CA2325863A1 (de) |
DE (1) | DE69935657T2 (de) |
IL (1) | IL137127A (de) |
WO (1) | WO2000028439A1 (de) |
ZA (1) | ZA200003317B (de) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130853B2 (en) * | 2000-06-06 | 2006-10-31 | Fair Isaac Corporation | Datamart including routines for extraction, accessing, analyzing, transformation of data into standardized format modeled on star schema |
US6785666B1 (en) * | 2000-07-11 | 2004-08-31 | Revenue Science, Inc. | Method and system for parsing navigation information |
US20030095145A1 (en) * | 2001-10-30 | 2003-05-22 | Jonathan Patrizio | System and method for table row selection in a GUI display |
US20040133583A1 (en) * | 2002-11-20 | 2004-07-08 | Tingey Kenneth B. | system architecture and method for entering and accessing entity data in events accounting |
US7103591B2 (en) * | 2002-12-02 | 2006-09-05 | International Business Machines Corporation | Method of describing business and technology information for utilization |
US7627587B2 (en) * | 2003-09-25 | 2009-12-01 | Unisys Corporation | System and method for improving information retrieval from a database |
KR100619016B1 (ko) * | 2004-05-06 | 2006-08-31 | 삼성전자주식회사 | 광 기록 정보 저장 매체, 기록/재생 장치 및 호스트 장치 |
US7840607B2 (en) * | 2004-08-06 | 2010-11-23 | Siemens Aktiengesellschaft | Data mart generation and use in association with an operations intelligence platform |
US7580922B2 (en) * | 2005-01-04 | 2009-08-25 | International Business Machines Corporation | Methods for relating data in healthcare databases |
US7680781B1 (en) | 2005-03-04 | 2010-03-16 | Teradata Us, Inc. | Automatic search query generation and results set management |
US7650196B2 (en) * | 2005-09-30 | 2010-01-19 | Rockwell Automation Technologies, Inc. | Production monitoring and control system having organizational structure-based presentation layer |
US7590541B2 (en) * | 2005-09-30 | 2009-09-15 | Rockwell Automation Technologies, Inc. | HMI presentation layer configuration system |
US7933900B2 (en) * | 2005-10-23 | 2011-04-26 | Google Inc. | Search over structured data |
US7464083B2 (en) * | 2005-10-24 | 2008-12-09 | Wolfgang Otter | Combining multi-dimensional data sources using database operations |
US8954426B2 (en) * | 2006-02-17 | 2015-02-10 | Google Inc. | Query language |
US20070185870A1 (en) | 2006-01-27 | 2007-08-09 | Hogue Andrew W | Data object visualization using graphs |
US8954412B1 (en) | 2006-09-28 | 2015-02-10 | Google Inc. | Corroborating facts in electronic documents |
CN100498793C (zh) * | 2007-06-08 | 2009-06-10 | 北京神舟航天软件技术有限公司 | 用基于小波的压缩直方图实现二维谓词选择率估计的方法 |
US7702622B2 (en) | 2007-06-29 | 2010-04-20 | Microsoft Corporation | Advanced techniques for SQL generation of performancepoint business rules |
US8200604B2 (en) | 2007-06-29 | 2012-06-12 | Microsoft Corporation | Multi-platform business calculation rule language and execution environment |
US8020144B2 (en) * | 2007-06-29 | 2011-09-13 | Microsoft Corporation | Metadata-based application deployment |
CN102043866B (zh) * | 2011-01-25 | 2013-03-13 | 苏州普达新信息技术有限公司 | 基于表单特征的松弛搜索与优化排序方法 |
US9785704B2 (en) * | 2012-01-04 | 2017-10-10 | Microsoft Technology Licensing, Llc | Extracting query dimensions from search results |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440730A (en) * | 1990-08-09 | 1995-08-08 | Bell Communications Research, Inc. | Time index access structure for temporal databases having concurrent multiple versions |
JPH077422B2 (ja) * | 1991-08-23 | 1995-01-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ処理データベース・システムにおけるジョインの実行方法及びシステム |
JPH0756652B2 (ja) * | 1992-03-24 | 1995-06-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 動画像のフレーム列の検索 |
US5359724A (en) * | 1992-03-30 | 1994-10-25 | Arbor Software Corporation | Method and apparatus for storing and retrieving multi-dimensional data in computer memory |
US5572731A (en) * | 1992-12-30 | 1996-11-05 | Hewlett-Packard Company | Sequentially navigated object oriented computer system |
JP3266351B2 (ja) * | 1993-01-20 | 2002-03-18 | 株式会社日立製作所 | データベース管理システムおよび問合せの処理方法 |
US5713020A (en) * | 1993-09-02 | 1998-01-27 | Microsoft Corporation | Method and system for generating database queries containing multiple levels of aggregation |
WO1995019008A1 (en) * | 1994-01-05 | 1995-07-13 | Covey Peter J | Dynamic-state, multi-dimensional, multi-media database |
GB9417314D0 (en) * | 1994-08-27 | 1994-10-19 | Int Computers Ltd | Method for performing joins in a database system |
US5675785A (en) * | 1994-10-04 | 1997-10-07 | Hewlett-Packard Company | Data warehouse which is accessed by a user using a schema of virtual tables |
US5590324A (en) * | 1995-02-07 | 1996-12-31 | International Business Machines Corporation | Optimization of SQL queries using universal quantifiers, set intersection, and max/min aggregation in the presence of nullable columns |
US5745754A (en) * | 1995-06-07 | 1998-04-28 | International Business Machines Corporation | Sub-agent for fulfilling requests of a web browser using an intelligent agent and providing a report |
US5761652A (en) * | 1996-03-20 | 1998-06-02 | International Business Machines Corporation | Constructing balanced multidimensional range-based bitmap indices |
US5832475A (en) * | 1996-03-29 | 1998-11-03 | International Business Machines Corporation | Database system and method employing data cube operator for group-by operations |
US5897622A (en) * | 1996-10-16 | 1999-04-27 | Microsoft Corporation | Electronic shopping and merchandising system |
US5974418A (en) * | 1996-10-16 | 1999-10-26 | Blinn; Arnold | Database schema independence |
US5799300A (en) * | 1996-12-12 | 1998-08-25 | International Business Machines Corporations | Method and system for performing range-sum queries on a data cube |
US5937408A (en) * | 1997-05-29 | 1999-08-10 | Oracle Corporation | Method, article of manufacture, and apparatus for generating a multi-dimensional record structure foundation |
-
1998
- 1998-11-03 US US09/185,042 patent/US6192357B1/en not_active Expired - Lifetime
-
1999
- 1999-11-03 AT AT99968035T patent/ATE358297T1/de not_active IP Right Cessation
- 1999-11-03 WO PCT/US1999/025939 patent/WO2000028439A1/en active IP Right Grant
- 1999-11-03 CA CA002325863A patent/CA2325863A1/en not_active Abandoned
- 1999-11-03 JP JP2000581554A patent/JP2004520633A/ja active Pending
- 1999-11-03 AU AU24731/00A patent/AU755859B2/en not_active Ceased
- 1999-11-03 BR BR9906714-5A patent/BR9906714A/pt not_active IP Right Cessation
- 1999-11-03 CN CN99803525A patent/CN1292125A/zh active Pending
- 1999-11-03 EP EP99968035A patent/EP1049997B1/de not_active Expired - Lifetime
- 1999-11-03 DE DE69935657T patent/DE69935657T2/de not_active Expired - Lifetime
- 1999-11-03 IL IL13712799A patent/IL137127A/xx not_active IP Right Cessation
-
2000
- 2000-06-30 ZA ZA200003317A patent/ZA200003317B/xx unknown
Also Published As
Publication number | Publication date |
---|---|
CA2325863A1 (en) | 2000-05-18 |
DE69935657D1 (de) | 2007-05-10 |
AU2473100A (en) | 2000-05-29 |
ZA200003317B (en) | 2002-12-02 |
IL137127A (en) | 2005-06-19 |
JP2004520633A (ja) | 2004-07-08 |
EP1049997A1 (de) | 2000-11-08 |
BR9906714A (pt) | 2000-10-17 |
AU755859B2 (en) | 2003-01-02 |
WO2000028439A1 (en) | 2000-05-18 |
ATE358297T1 (de) | 2007-04-15 |
EP1049997B1 (de) | 2007-03-28 |
CN1292125A (zh) | 2001-04-18 |
IL137127A0 (en) | 2001-07-24 |
US6192357B1 (en) | 2001-02-20 |
EP1049997A4 (de) | 2005-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69935657T2 (de) | Verfahren und gerät zum optimieren der querygenerierung durch selektives verwenden von zusätzen oder schlüsselwerten | |
DE10028688B4 (de) | Methode, System und Programm für eine Verbindungsoperation in einer mehrspaltigen Tabelle sowie in Satellitentabellen mit doppelten Werten | |
DE69910219T2 (de) | Transformation der perspektive auf tabellen von relationalen datenbanken | |
DE3788750T2 (de) | Schätzeinrichtung des Indexschlüsselbereiches. | |
DE68927743T2 (de) | Sortier-/Mischausgabe | |
DE68926849T2 (de) | Struktur und Verfahren zur Anordnung rekursiv abgeleiteter Daten in einer Datenbank | |
DE19954534A1 (de) | Rückwärtsindexieren von Zeichenketten in einer relationalen Datenbank zum Suchen mit Joker | |
DE69433165T2 (de) | Assoziatives textsuch- und wiederauffindungssystem | |
EP0910829B1 (de) | Datenbanksystem | |
DE68927413T2 (de) | Verfahren und Vorrichtung zur Datenbankverarbeitung | |
DE68916486T2 (de) | Verfahren zur Durchführung von Operationen in einem relationalen Datenbankverwaltungssystem. | |
DE19515020A1 (de) | Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren | |
DE60121231T2 (de) | Datenverarbeitungsverfahren | |
DE19624696C2 (de) | Verfahren zum Suchen von Datenbankeinträgen in einer Vielzahl von Datenbanken | |
DE69530595T2 (de) | System und verfahren für die x.500-datenbanknorm | |
DE69932344T2 (de) | Zugriff zu hierarchischem datenspeicher via sql-eingabe | |
DE60022152T2 (de) | Parallele optimierte Ereignisauslösung in parallelen Datenbanksystemen | |
DE69838158T2 (de) | Auf die Anzahl von in den Tabellen gespeicherten Datensätzen basiertes Ordnen von Verbindungen | |
DE10103574A1 (de) | Aggregierte Prädikate und Suche in einem Datenbankverwaltungssystem | |
DE10134229A1 (de) | Verfahren und System zum Ermitteln von Abweichungen in Datentabellen | |
DE10056763B4 (de) | Generieren von Einschränkungsabfragen mit Hilfe von Tensordarstellungen | |
DE102016216843A1 (de) | Verteiltes Zusammenführen von Dateien | |
DE112012000280T5 (de) | Organisation von Tabellen mit reduzierten Indizes | |
DE112013003205T5 (de) | Verfahren und Vorrichtung zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem | |
DE102007037646A1 (de) | System und Verfahren zum Indizieren, Durchsuchen und zur Datenwiedergewinnung von Datenbanken |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |