Bucket-Algorithmus

Bucket-Algorithmus

Der Eimeralgorithmus bzw. Bucket-Algorithmus ist im Rahmen der Informationsintegration ein Algorithmus zur effizienten Zusammenstellung von Sichten auf lokale Datenquellen (Local-as-View), die für eine Anfrage an das integrierte Gesamtsystem kombiniert werden müssen. Der Algorithmus wurde 1996 von Levy, Rajaraman und Ordille vorgestellt.

Grundsätzlich wächst die Anzahl der zu prüfenden Kombinationen exponentiell und das Problem der Prüfung NP-vollständig. Durch geschickte Vorauswahl lässt sich die Anzahl der Kombinationen jedoch reduzieren. Die Grundidee des Bucket-Algorithmus ist, dass jede Relation der Anfrage einen Bucket (Eimer) erhält. In jeden Eimer werden alle Sichten hinzugefügt, die für die Relation nutzbar sind. Geprüft werden nun nur alle Kombinationen von Anfrageumschreibungen, die aus jedem Bucket genau eine Sicht enthalten.

Ob eine Sicht für eine Relation nutzbar ist, hängt von ihren Teilzielen ab. Dabei müssen alle Anfrageattribute vorkommen und die Prädikate passend sein. Eine Sicht kann durchaus mehrfach in einem Bucket auftauchen, wenn sie zur Erfüllung mehrerer Teilziele passt.

Es lässt sich zeigen, dass der Bucket-Algorithmus immer eine Umschreibung der Anfrage ermittelt, die ein vollständiges Ergebnis liefert. Eine Erweiterung des Algorithmus ermittelt nur die besten Anfragepläne, so dass nicht alle Teilpläne ausgeführt werden müssen.

Alternativen zum Bucket-Algorithmus sind der Inverse-Rules-Algorithmus oder der MiniCon-Algorithmus.

Beispiel

Gegeben sei ein globales Schema mit folgenden Relationen:

  • Adresse: Ausweisnummer, Ort
  • Person: Ausweisnummer, Name, Alter

sowie drei lokale Datenquellen mit folgenden Schemata:

  • Q1: Ausweisnummer, Name, Ort
  • Q2: Name, Ausweisnummer, Alter
  • Q3: Ausweisnummer, Alter, Beruf

sowie drei Quellen, deren lokale Schemata als Sichten auf das globale Schema formuliert sind (siehe Beispiel unter Local-as-View):

CREATE VIEW S1 AS SELECT Person.Ausweisnummer, Person.Name, Adresse.Ort FROM Person, Adresse WHERE Person.Ausweisnummer = Adresse.Ausweisnummer
CREATE VIEW S2 AS SELECT Ausweisnummer, Name, Alter FROM Person
CREATE VIEW S3 AS SELECT Ausweisnummer, NULL, Alter FROM Person

Nun soll die folgende Anfrage auf das globale Schema umformuliert werden:

  • SELECT Person.Alter, Adresse.Ort FROM Person, Adresse WHERE Person.Ausweisnummer=Adresse.Ausweisnummer

Die Anfrage lässt sich etwas übersichtlicher in Prolog (Programmiersprache) formulieren

Q(Alter,Ort) :- Person(Ausweisnummer,_,Alter), Adresse(Ausweisnummer, Ort).

Nun werden zwei Buckets für die beiden in der Anfrage vorkommenden Relationen gebildet und mit den Sichten gefüllt, die für diese Relation nutzbar sind.

  1. Bucket (Person): S1, S2, S3
  2. Bucket (Adresse): S1

Es ergeben sich folgende Kombinationen

  • S1 und S1
  • S1 und S2
  • S1 und S3

Die Views S1, S2 und S3 in Prolog-Schreibweise:

S1(Ausweisnummer, Name, Ort) :- Person(Ausweisnummer, Name, _), Adresse(Ausweisnummer, Ort)
S2(Ausweisnummer, Name, Alter) :- Person(Ausweisnummer, Name, Alter)
S3(Ausweisnummer, Alter) :- Person(Ausweisnummer, _, Alter)

Die Kombination von S1 mit S1 kann die Anfrage nicht beantworten, da der Kopf von S1 nicht das Anfrageattribut 'Alter' enthält. Es bleiben also zur Beantwortung der Anfrage die beiden anderen Kombinationen, die vereinigt werden. Es ergibt sich als Umschreibung der Anfrage:

SELECT S2.Alter, S1.Ort FROM S1, S2 
WHERE S1.Ausweisnummer=S2.Ausweisnummer
UNION
SELECT S3.Alter, S1.Ort FROM S1, S3 
WHERE S1.Ausweisnummer=S3.Ausweisnummer

Literatur


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Bucket-Algorithmus (Begriffsklärung) — Als Bucket Algorithmus (Eimer Algorithmus) bezeichnet man verschiedene Rechenverfahren: Den Leaky Bucket Algorithmus zum Traffic Shaping in ATM Netzwerken Den Token Bucket Algorithmus ein weiterer Algorithmus zum Traffic Shaping Den Bucket… …   Deutsch Wikipedia

  • Leaky-Bucket-Algorithmus — Der Leaky Bucket Algorithmus ist ein einfaches Verfahren zum Traffic Shaping. Es wird damit die Menge der übertragenen Daten geregelt. Dabei wird die maximale Datenrate begrenzt. Ein ähnlicher Algorithmus ist der Token Bucket Algorithmus. Leaky… …   Deutsch Wikipedia

  • Token-Bucket-Algorithmus — Der Token Bucket Algorithmus ist ein Konzept der Informatik aus dem Bereich des Traffic Shapings. Es wird damit die Menge der übertragenen Daten geregelt. Dabei wird die durchschnittliche Datenrate begrenzt. Ein ähnlicher Algorithmus ist der… …   Deutsch Wikipedia

  • Leaky Bucket — Der Leaky Bucket Algorithmus ist ein einfaches Verfahren zum Traffic Shaping. Es wird damit die Menge der übertragenen Daten geregelt. Dabei wird die maximale Datenrate begrenzt. Ein ähnlicher Algorithmus ist der Token Bucket Algorithmus. Alle… …   Deutsch Wikipedia

  • LaV — Local as View (LaV, Lokal als Sicht) ist ein Fachbegriff aus der Informatik, der sich auf die Art der Verarbeitung von Daten bezieht. Local as View bezeichnet ein Muster zur Zusammenführung von Schemata im Rahmen der Informationsintegration.… …   Deutsch Wikipedia

  • GCRA — Der Leaky Bucket Algorithmus ist ein einfaches Verfahren zum Traffic Shaping. Es wird damit die Menge der übertragenen Daten geregelt. Dabei wird die maximale Datenrate begrenzt. Ein ähnlicher Algorithmus ist der Token Bucket Algorithmus. Alle… …   Deutsch Wikipedia

  • Generic Cell Rate Algorithm — Der Leaky Bucket Algorithmus ist ein einfaches Verfahren zum Traffic Shaping. Es wird damit die Menge der übertragenen Daten geregelt. Dabei wird die maximale Datenrate begrenzt. Ein ähnlicher Algorithmus ist der Token Bucket Algorithmus. Alle… …   Deutsch Wikipedia

  • Traffic-Shaper — Traffic Shaping ist ein Telekommunikations Verfahren bei dem beim Senden der Datenfluss von IP Paketen, ATM Zellen, Ethernet Frames oder anderen Transfereinheiten nach definierten Kriterien gesteuert wird. Es ist unidirektional, das heißt, es… …   Deutsch Wikipedia

  • Traffic Shaping — ist ein Telekommunikations Verfahren bei dem beim Senden der Datenfluss von IP Paketen, ATM Zellen, Ethernet Frames oder anderen Transfereinheiten nach definierten Kriterien gesteuert wird. Es ist unidirektional, das heißt, es arbeitet im… …   Deutsch Wikipedia

  • Traffic shaping — ist ein Telekommunikations Verfahren bei dem beim Senden der Datenfluss von IP Paketen, ATM Zellen, Ethernet Frames oder anderen Transfereinheiten nach definierten Kriterien gesteuert wird. Es ist unidirektional, das heißt, es arbeitet im… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”