86

Informatik (Subject) / Data Warehouse (Lesson)

Karten zu Data Warehouse (Prof. Teubner, SS2018, TU Dortmund)

This lesson was created by checko.

Learn lesson

Advertisement
  • Was sind die beiden Strategien, durch dessen Anwendung die Berechnung eines star queries begünstigt wird? Was sind die Vor- und Nachteile der beiden Strategien? Strategie 1: Index auf den Spaltenbeschriftungen von Dimensionstabellen(In jeder Dimensionstabelle werden die übereinstimmenden Zeilen gefiltert, um Schlüsselspalten zu ermitteln, auf die Faktentabellen-RIDs (record identifier) verweisen. Aus den RIDs werden dann Listen gebildet, aus denen die Schnittmenge berechnet wird. Die verbleibenden Zeilen in der Faktentabellen werden noch gruppiert und zusammengefasst. Vorteil: Gut für selektive Anfragen. Nachteile: Strategie ist umständlich und kostenintensiv.) Strategie 2: Index auf dem primäre Schlüssel von Dimensionstabellen(Die Faktentabelle wird zunächst gescant. Dabei wird für jede Zeile der Tabelle die zugehörigen Zeilen aus den Dimensiontabellen ermittelt. Die Zeilen werden "gespeichert", wenn die Bedingungen (Einschränkung, Auswahl) erfüllt sind. Die so generierte Faktentabelle wird noch gruppiert und zusammengefasst. Vorteil: Bei kleinen Dimensionstabellen können die Indices alle in den Speicher passen. Nachteile: 1.) Da die Faktentabelle riesig ist, werden viel Indexzugriffe benötigt -> zeitintensiv. 2.) Einzeln kann jedes Dimensionsprädikat eine geringe Selektivität aufweisen. Doch zusammen genommen kann die Selektivität sehr hoch sein.)
  • Was ist ein "Hub Star Join"? Was sind die Vor- und Nachteile? Bei einem "Hub Star Join" werden zunächst die Dimensionstabellen miteinander verknüpft (join!). Dies entspricht der Bildung eines immer größer werden kart. Produktes, da die Dimensionstabellen (im Wesentlichen) disjunkt sind. Für die Verknüpfung (join!) des kart. Produktes mit der Faktentabelle wird ein Index-nested-loops-join (mehrspaltiger Index für Fremdschlüssel) verwendet. Vorteile: 1.) Es werden nur die relevanten Faktentabellen abgefragt. 2) Keine Schnittmengeberechnung nötig. 3.) Kein Sortieren oder Entfernen von Duplikaten nötig. Nachteil: Im kartesischen Produkt werden die Fremdschlüsselkombinationen überschätzt.  Zusammengefasst: Hub Join ist gut, wenn das kart. Produkt klein ist.
  • Wie lautet der Algorithmus des zig-zag-joins? Was ist die Voraussetzung? Voraussetzung: Die RIDs beider Tabellen müssen sortiert sein. Algorithmus:1.) Es werden die jeweiligen niedrigsten RIDs aus beiden Listen gewählt und verglichen.2a.) Stimmen die RIDs überein, dann werden die entsprechenden Tupel abgefragt und gejoint.2b.) Stimmen die RIDs nicht überein, dann wird der kleinere RID verworfen und Schritt 2a wiederholt.3.) Ist eine oder sind beide RID-Listen leer, dann terminiert der Algorithmus.
  • Wie funktioniert der Hash Join? Was sind die Voraussetzungen? Voraussetzungen: Es wird ein Vergleichsoperator benötigt. (=, <, >, \=) Die kleinere Relation muss vollständig in den Speicher passen. Algorithmus: Aufbauphase (Die Tupel (Einträge, Zeilenr) oder (RID, Zeilennr) der kleineren Relation werden in eine Hashtabelle eingefügt.) Prüfphase (Es wird anhand der erstellten Hashtabelle geprüft, ob die Werte eines Tupels der größeren Relationen mit denen eines Tupels der kleineren Relation übereinstimmen. Falls ja, wird dieses Tupel in den Ergebnistabelle übernommen.)
  • Was ist ein Bloomfilter und wie funktioniert er? Der Bloom-Filter dient zum Entfernen von Duplikaten aus einer Tabelle. Im Falle des DW hilft dieser Filter den join der Dimensionstabellen mit der Faktentabelle zu beschleunigen. Positve Fehler sind möglich. D.h. kann enthalten sein oder definitiv nicht enthalten. Funktionsweise: Es wird ein m Bit großer Array erstellt und k unabhängige hash-Funktionen definiert. Jedes Dimensions-Tupel wird dem Array hinzugefügt, in dem die Bits des Arrays gesetzt werden, für die das Tupel die Hash-Funktionen erfüllt. Es wird für jedes Tupel der Faktentabelle geprüft, ob es im Array enthalten ist, in dem ebenfalls die Hash-Funktion ausgewertet und die resultierende Stellen geprüft werden. Sind alle Bits gesetzt, wird das Tupel in die Ergebnisrelation übernommen. Dabei wird m in Bits pro Speichereintrag gemessen und im Optimalfall 0,7 mal m Hashfunktionen (= k) definiert. Für m = 10 Bits pro Speichereintrag ist die Genauigkeit 1%.
  • Welche 3 Arten von join-Indices gibt es? (Am Beispiel von Cities |><| Sales) Typ 1: join key --> <{ridCities}, {ridSales}>(Wähle aus den Listen der RIDs von Cites und Sales diejenigen, die den angegeben join-Schlüsselwert enthalten.) Typ 2: ridCities --> {ridSales}(Wähle aus der Liste der RIDs von Sales diejenigen, die mit dem angegebenen Datensatz von Cities übereinstimmen.) Typ 3: dim value --> {ridSales}(Wähle aus der Liste der RIDs von Sales diejenigen, die mit denjenigen Cities-Tupel verknüpft wurden, welche den angegebenen Dimensionswert haben.)
  • Wie funktioniert der Star Join mit Hilfe von Join Indices? Es werden zunächst die übereinstimmenden RIDs der Faktentabelle mit den jeweiligen Dimensionstabelle ermittelt. Für jede Dimensionstabelle wird dabei eine Liste mit übereinstimmenden RIDs angelegt. Anschließend wird aus den erhaltenen Liste die Schnittmenge gebildet und so die relevanten Sales-Einträge ermittelt. (Zum Vergleich: Ohne die Join-Indices würden die Joins nacheinander ausgeführt werden. Durch die Indices wird der join beschleunigt.)
  • Was ist ein Bitmap-Index und was ist der Vorteil hinsichtlich der Ausführung ein Star Query? Ein Bitmap-Index ist ein Bit in einem Bitvektor. Der Bitvektor wird dabei aus den Spaltenwerten (oder bei sortierten Werten aus Teilwerten des Spaltenwertes) generiert. Die Länge eines Bitvektors entspricht der Anzahl der Spalten der Faktentabelle. (s. hierzu das Beispiel in (7)) Vorteil: Boolsche Select-Operatoren in der Anfrage können direkt durch Verwendung der passenden Bitvektoren ausgewertet werden. Ebenso kann ein bestimmter Spaltenwert in der Dimension schneller gefunden werden.
  • Wie groß ist der Speicherplatzverbrauch für n bit Vektoren bezogen auf eine Tabelle mit N Zeilen? N * n bits.
  • Wie funktioniert die Word-Aligend-Hybrid (WAH) Kompression für die Reduzierung des Speicherplatzes für Bitvektoren? Die Bitvektoren werden auf eine Länge von 32 reduziert. Dabei gilt: Der erste Bit zeigt an, ob es sich um ein Füllwort (=1) oder ein Literal (=0) handelt. Bei einem Füllwort zeigt der zweite Bit an, ob die nachfolgenden Stellen mit 0 oder 1 gefüllt werden müssen. Bei einem Literal ist dies ein Datenbit. - 32. Bei einem Füllwort repräsentieren diese Bits eine binäre Zahl b, die die Anzahl der zu füllenden Bits (b * 31) angibt. Bei einem Literal sind dies Datenbits. (Anmerkung: Bei einer hohen Anzahl an eindeutigen Werten und damit Bitvektoren wird zusätzlich Speicher für Buchhaltungsprozesse benötigt.)
  • Advertisement
  • Auf welche zwei Arten können Änderungen in der DW sichtbar gemacht werden? 1.) Führen einer Änderungshistorie in Form von zusätzlichen Spalten. 2.) Versionierung der DW. Ein frühere Snapshot wird mit dem Aktuellen verglichen. Diese Methode ist allerdings rechenintensiv. Beschleunigung durch Checksummenprüfung oder Verwendung von Hashtabellen.
  • Reale Daten sind oft fehlerbehaftet. Eine Integrationsplattform der DW dient zur Minimierung der Fehler. Was muss diese können? 1.) Korrektur von Schreibfehlern 2.) Identifizierung von Übereinstimmungen und Duplikaten (ggf. aufgrund der Schreibfehler) 3.) Auflösen von Datenkonflikten und -inkosistenzen. 4.) Normalisierung der "geeigneten" Daten
  • Nenne die drei primitiven Operationen für die Datenbereinigung! 1.) Similarity Join (Auswahlalgorithmus für die Wahl von Datenpaaren und Berechnung der Ähnlichkeit zwischen Ihnen) 2.) Clustering (Anhand der Ähnlichkeit werden die Daten gruppiert.) 3.) Parsing (Je nach Ähnlichkeit müssen die Datenwerte/Spalten angepasst werden. Bspw. ("Rd" , "Road") --> "Road" oder eine Relation hat die Spalte "Adresse" und die Andere "Straße", "PLZ", "Ort".) (s. hierzu (8))
  • Nenne drei Methoden für die Berechnung der Ähnlichkeit zweier Strings! 1.) Änderungsdistanz (Es wird kürzeste Änderungsdistanz, d.h. die geringste Anzahl an Operationen berechnet, um String 1 in String 2 zu überführen. Die zuässigen Operationen sind Einfügen (ab -> axb), Löschen (axb -> ab), Ersetzen (axb -> ayb) und Vertauschen (axyb -> ayxb).) 2.) Jaccard Ähnlichkeit (Die Ähnlichkeit von zwei Menge erhält man, in dem die Schnittmenge der Mengen durch die Vereinigung der Mengen geteilt wird. Ein String kann in ein Set überführt werden, in dem er in q-grams (d.h. alle Teilstrings der Größe q) unterteilt wird. Bsp.: Sweet --> {Sw, we, ee, et} (q = 2)) 3.) Soundex (Die Ähnlichkeit von zwei Strings bestimmt, indem die Strings in phonetische Indices überführt werden. (s. entsprechende Karteikarte))
  • Was versteht man unter der Levenhstein Distanz und wie unterscheidet sie sich zur längste Standard Teilfolge (auch LCS, longest Common Subsequence)? Die Levenhstein-Distanz bezeichnet die Anzahl der notwendigen Operationen, die benötigt werden um einen String A in einen String B zu überführen. Sie dient zur Berechnung der Ähnlichkeit zwei Strings. Die Operationen sind Einfügen, Löschen, Ersetzen und Vertauschen. Die LCS Distanz entspricht der Levenhstein-Distanz, wobei die Ersetzen- und Vertauschen-Operation nicht erlaubt sind.
  • Wie funktioniert der phonetische Algorithmus, welcher dem Soundex zugrunde liegt und zur Berechnung der Ähnlichkeit zweier Strings benutzt wird? 1. Nehme den 1. Buchstaben des Wortes 2. Ersetze die nachfolgenden Buchstaben durch folgende Nummern gemäß englischer Betonung des Buchstabens: b,f,p,v = 1 c,g,j,k,q,s,x,z = 2 d,t = 3 l = 4 m,n = 5 r = 6 3. Überspringe Buchstaben mit gleicher Nummer 4. Wähle genau drei Zahlen (ggf. mit 0 auffüllen.)
  • Wie lauten die phonetischen Indices (Soundex) der folgenden Wörter: Sweet, Robert, House, Flipper? Sweet = S300 Robert = R163 House = H200 Flipper = F416
  • Welche Strategien können beim Similarity Join angewendet werden? Wodurch unterscheiden sie sich? 1.) Naive Strategie (Jeder Wert mit jedem Wert verglichen. Kosten: N2/2) 2.) Blocking (Werte werden in Blöcke aufgeteilt und innerhalb der Blöcke mit jedem anderen Wert verglichen. Kosten bei n Daten und b Blöcken: 1/2 (n2/b - n). Hier können aber Duplikate übersehen werden.) 3.) Nachbarschaft (Es wird ein "Vergleichsfenster" der Größe w festgelegt. Innerhalb dieser Fenster werden die Werte miteinander verglichen. Dann wird das Fenster um eine Stelle verschoben und die Prozedur wiederholt, bis das Ende der Tabelle erreicht wurde. Anzahl der Vergleiche (Kosten) bei einer Fenstergröße von w und n Daten: (w-1)*(n-w/2). Benötigt ein gutes Sortierkriterium.)
  • Nenne die drei Möglichkeiten, mit denen man Datenkonflikte und Inkonsistenzen aufspüren kann. 1.) Spaltenscreening (Schnelles Screening erhält man durch Testdaten in den Spalten. Es werden dann nur diese auf Richtigkeit des Wertes, des Formats und der Nullwerte geprüft.) 2.) Strukturscreening (Stimmen die Fremdschlüsselbeziehungen? Ergibt bspw. die Kombination der Spalten "Ort", "Straße", "PLZ", "Hausnr." gültige Adressen?) 3.) Screening auf Einhaltung der Geschäftsvorgaben/-regeln (Sind die Daten hinsichtlich der Firmenvorgaben plausibel?)
  • Was sollte zuerst geladen werden? Die Faktentabelle oder Dimensionstabellen? Alle Dimensionstabellen müssen zuerst geladen werden, da die Faktentabelle Fremdschlüssel der Dimensionstabellen enthält. Diese müssen alle verfügbar sein, bevor die Faktentabelle aufgebaut wird.
  • Wie ist die Vorgehensweise, wenn Änderungen in eine Tabelle durch Überschreiben übernommen werden? 1. Suche in der Dimensionstabelle anhand eines natürlichen Schlüssel nach der passenden Zeile. 2. Wurde in 1. eine Zeile gefunden, überschreibe ggf. die alten Werte durch die neuen Werte. 3. Wurde in 1. keine Zeile gefunden, füge eine neue Zeile ein. Erstelle dafür ein zugehörigen Stellvertreterschlüssel.
  • Wie ist die Vorgehensweise, wenn Änderungen in eine Tabelle ohne Überschreiben der alten Werte übernommen werden? Füge für jede Änderung eine neue Zeile ein. Erstelle dabei für jede neue Zeile einen Stellvertreterschlüssel. Füge zusätzlich die Spalten "seit" und "bis", um die Gültigkeit einer Zeile zu dokumentieren. Alternative kann auch eine Spalte eingefügt werden, die ein boolschen Wert enthält.
  • Nenne vier von sechs Möglichkeiten, um das Laden der Daten zu beschleunigen! 1.) Protokollierung deaktivieren. (Datenbanken verwenden das Prinzig der write-ahead-Protokollierung (Änderungen werden erst protokolliert und dann übernommen.) Dieses Prinzip ist zeilenweise sehr aufwendig.) 2.) Daten vorsortieren (Dies kann in Abhängigkeit vom System, die Indexerstellung beschleunigen.) 3.) Tabellen vorab kürzen. (Verbessert teilweise die Protokollierung und Fehlertoleranz.) 4.) Fast Mode aktivieren. (Bei guter Datenpräparation könnte der Parsingmechanismus beschleunigt werden.) 5.) Die Richtigkeit der Daten sicherstellen. (Umso fehlerfrei die Daten, umso weniger Fehler müssen protokolliert und weniger Daten (Abkürzungen) angepasst werden.) 6.) Vorübergehend die Integritätskontrolle deaktivieren.
  • Was sind die drei Herausforderungen bei der Hochskalierung eines Data Warehouse? 1.) Robustheit (Umso mehr Komponenten, umso höher ist die Fehleranfälligkeit. Dabei kann bereits eine Komponente das gesamte System lahm legen.) 2.) Skalierbarkeit/Elastizität der Resourcen (Sollten die verfügbaren Ressourcen anderweitig genutzt werden, wenn die DW nicht ihre Höchstlast erreicht hat? Sollten nachträglich weitere Ressourcen hinzugefügt werden?) 3.) Kosten (Große (zuverlässige) System werden immer teurer, da es nur einen kleinen Markt für solche Systeme gibt.)
  • Wie funktioniert das Programmiermodel MapReduce, mit Hilfe dessen die Auswertung von großen Datenmengen parallel ausgeführt werden kann? (Allgemein und Anhand des Beispiels Wörter in Dokumenten ermitteln und zählen.) MapReduce unterteilt sich in drei Phasen: (s. auch (9)) 1.) Map-Phase: Die Eingabedaten werden auf eine Menge von Map-Prozessen verteilit und die Map-Funktion ausgewertet. Idealerweise werden die Map-Prozesse parallel ausgeführt, wobei jeder Prozess für seine Ergebnisse zwischenspeichert.(Eine Map-Funktion für das Beispiel ist: Lese die Dokumente ein und bilde Tupel bestehend aus dem Wort und der Zahl "1". Dabei wird jedes Dokument in eine Liste von Wörtern umgewandelt (Parsing) und dann die Map-Funktion angewendet.) 2.) Shuffle-Phase: Alle Elemente in den Zwischenergebnislisten werden entsprechend eines Schlüssels neu verteilt, so dass sich in einer Zwischenergebnisliste alle Elemente mit dem gleichen Schlüssel befinden.(In dem Beispiel werden alle Wörterlisten aus den einzelnen Map-Prozessen nach den Wörter sortiert. D.h. bspw. alle "der" in eine Liste [("der",1), ("der",1) ...].) 3.) Reduce-Phase: Auf alle aus der Shuffle-Phase kommenden Zwischenergebnislisten wird jeweils eine Reduce-Funktion angewendet und ausgewertet, was wiederum parallelisiert abläuft.(In dem Beispiel werden die einzelnen Listen parallel reduziert, in dem über die Wörter summiert wird. (Reduce-Funktion). Aus den Ergebnissen der Reduce-Funktionen wird schließlich das Endergebnis gebildet.) Zusammengefasst: MapReduce: (K x V)* -> (L x W)*                                                     [(k1,v1),...,(kn,vn)] -> [(l1,w1),...,(ln,wn)]
  • Was macht das MapReduce-Modell "von sich aus"? Das MapReduce-Modell ... entscheidet über die Anzahl an Map- und Reduce-Funktionen, die realisiert werden. entscheidet über die Partitionierung von Daten und Berechnungen auf die Knoten. verschiebt Daten wenn notwendig und führt die Shuffle-Phase aus. berücksichtigt die Cluster-Topologie, Systemlast etc. verbindet sich über eine Schnittstelle mit einem verteilten Dateisystem wie dem "Google File System".
  • Wie umgeht man die hohe Fehleranfälligkeit bei der Verwendung von MapReduce? Die Map- und Reduce-Funktionen müssen rein sein. D.h. keine Nebeneffekte und die Ausgaben hängen ausschließlich von den Eingaben ab. Unter diesen Bedingung kann die Berechnung auf einem beliebigen Knoten stattfinden und auch (ggf. auf einem anderen Knoten) wiederholt werden. Funktionsausführung überwachen Wenn ein Job nicht rechtzeitig beendet wurde, wird er auf einem anderen Knoten neu gestartet. Bei mehreren identischen Ergebnissen wird nur eins übernommen. (Dies hilft auch bei der Behandlung von Nachzüglern. --> Verbesserung der Performance)
  • Was ist der Unterschied zwischen MapReduce und Data Warehouse (DW)? Was sind die Vorteile von MapReduce? DW = Datenbank (enthält Tabellen, Tupel, Zeilen, Indices etc.) MapReduce wird typischerweise in einem verteilten Filesystem gespeichert. D.h. keine Betandteile einer Datenbank und damit auch kein Optimieren, Validieren etc. der Daten.Vorteil von MapReduce: 1.) Analysen können sofort starten. Es muss nicht auf die Indexerstellung etc. gewartet werden. 2.) Kann Ad hoc-Analysen vereinfachen.
  • Was lädt länger? MapReduce Filesystem oder Data Warehouse? Warum? Data Warehouse, wegen der Schema und die physische Datenorganisation.
  • Was ist Apache Pig, Apache Hadoop und Pig Latin? Apache Pig ist eine High-Level-Plattform zum Erstellen von Programmen, die auf Apache Hadoop laufen. In Apache Pig können Jobs u.a. in MapReduce ausgeführt werden. Apache Hadoop ist ein Rahmenprogramm, was auf dem MapReduce-Algorithmus und den Vorschläge des Google-Dateisystems basiert. Es ermöglicht intensive Rechenprozesse mit großen Datenmenge (Big Data, Petabytes) auf Computerclustern. Pig Latin ist die Programmiersprache für die Plattform Apache Pig und ist SQL ähnlich (basiert aber auf Java MapReduce.)
  • Advertisement
  • Was ist im Bezug auf materialisierte Sichten ein Datenwürfel? Welche drei Möglichkeit gibt es, um die Wahl der zu materialisierenden Sichten zu bestimmen? Welche ist die Sinnvollste? Datenwürfel: Ein Schema, in dem die Abhängigkeiten der materialisierten Sicht dargestellten werden. Werden bei der Gruppierung drei Dimensionstabellen A, B, C berücksichtigt, so ergibt sich der in (10) gezeigte Datenwürfel. Oben ist die Pflichtsicht (ABC), aus der die Sichten (AB, AC, BC), aus denen dann die Sichten (A,B,C) abgeleitet werden können. Die "leere" Sicht ist ganz unten und ist aus A, B oder C herleitbar. Möglichkeit für die Wahl der zu materialisierenden Sichten: Der ganze Würfel (Sehr geringe Antwortzeiten, aber sehr hoch Speicherplatzverbrauch. Nicht optimal.) Gar keine Sicht (Hohe Antwortzeiten, da Anfrage für jede Zeile berechnet werden muss, aber sehr geringer Speicherplatzverbrauch. Nicht optimal.) Ein Teil der Sichten (Dies ist die sinnvollste Variante. Allerdings ist die Wahl der Schichten schwierig, da ein gutes Verhältnis zw. der Antwortzeit und dem Speicherplatzverbrauch erreicht werden sollte.)
  • Wie kann aus einer materialisierten Sicht bestehend aus den Dimensionen A, B und C die materialisierte Sicht A, B bzw. C abgeleitet werden? A: Erst zusammenfassen der B-, dann der C-Werte oder umgekehrt.(ABC -> AC -> A bzw. ABC -> AB -> A) B: Erst zusammenfassen der A-, dann der C-Werte oder umgekehrt.(ABC -> BC -> B bzw. ABC -> AB -> B) C: Erst zusammenfassen der A-, dann der B-Werte oder umgekehrt.(ABC -> BC -> C bzw. ABC -> AC -> C)
  • Gegeben sind zwei WAH-codierte Bitvektoren. Es soll die AND-Operation auf die beiden Bitvektoren angewendet werden. Wie wird die Operation in Abhängigkeit des Bitvektortyps (Literal o. Füllwort) berechnet? Literal ∧ Literal: AND-Operation wird bitweise ausgewertet. Literal ∧ 1-Füllwort: Literal wird übernommen und von der Binärzahl des 1-Füllwortes 1 abgezogen. Literal ∧ 0-Füllwort: 0-Füllwort wird übernommen und dessen Binärzahl um 1 reduziert. 1-Füllwort ∧ 1-Füllwort bzw. 0-Füllwort ∧ 0-Füllwort: Das kleinere 1-Füllwort bzw. größere 0-Füllwort (dieses enthält die kleinere bzw. größere binäre Zahl in den Bits 3-30) wird übernommen. Die Differenz zw. den Binärzahlen der Füllwörter ergibt die neue Binärzahl des übernommen Füllwortes. 1-Füllwort ∧ 0-Füllwort: Das 0-Füllwort wird übernommen, wobei dessen binäre Zahl um die in dem 1-Füllwort reduziert wird.
  • Gegeben sind zwei WAH-codierte Bitvektoren. Es soll die OR-Operation auf die beiden Bitvektoren angewendet werden. Wie wird die Operation in Abhängigkeit des Bitvektortyps (Literal o. Füllwort) berechnet? Literal ∨ Literal: OR-Operation wird bitweise ausgewertet. Literal ∨ 1-Füllwort: 1-Füllwort wird übernommen und dessen Binärzahl um 1 reduziert. Literal ∨ 0-Füllwort: Literal wird übernommen und von der Binärzahl des 0-Füllwortes 1 abgezogen. 1-Füllwort ∨ 1-Füllwort bzw. 0-Füllwort ∨ 0-Füllwort: Das größere 1-Füllwort bzw. kleinere 0-Füllwort (dieses enthält die größere bzw. kleinere binäre Zahl in den Bits 3-30) wird übernommen. Die Differenz zw. den Binärzahlen ergibt die neue Binärzahl des übernommen Füllwortes. 1-Füllwort ∨ 0-Füllwort: Das 1-Füllwort wird übernommen, wobei dessen binäre Zahl um die in dem 0-Füllwort reduziert wird.
  • Wie funktioniert der von Harinarayan, Rajaraman und Ullman vorgestellte Greedy-Algorithmus, mit Hilfe dessen die drei günstigsten zu materialisierenden Sichten zzgl. der obersten Sicht ausgewählt werden? Anmerkungen: Der Algorithmus bzw. auf einen Datenwürfel (zeigt die Abhängigkeit zw. den materialisierten Sichten) und wählt diejenigen Ecken des Würfels aus, deren Kosten in der Materialisierung der zugehörigen Sicht am günstigsten sind. Es wird angenommen, dass die Kosten gleich der Anzahl der Reihen der Tabelle ist. 1. Bestimme die bzgl. der Abhängigkeiten günstigste Sicht aus der Menge der materialisierten Sichten S. (min(S)) 2. Berechne nun für jeden Knoten des Datenwürfels dessen Kosten Bw für dessen Materialisierung. Dabei müssen auch deren Abhängigkeiten nach unten miteinbezogen werden, da für diese ebenfalls die Kostenminimierung gilt.Dabei gilt: Bw = min(S), wenn v = u.Sonst: Wenn C(v) < C(u), dann Bw = C(v) - C(u), sonst Bw = 0Die Gesamtkosten für einen Knoten B(v,S) ergeben sich dann: B(v,S) = ∑Bw 3. Der Knoten mit dem höchsten Wert (höchste Kostensenkung) wird in S aufgenommen und dann alle Schritt wiederholt bis |S| = 4.
  • Was ist die ABC-Analyse? (mit Beispiel) Bei der ABC-Analyse werden die Werte eines Attributs der Faktentabelle in drei Kategorien A, B und C eingeteilt. Dabei haben die Werte der Gruppe A die höchste, die der Gruppe eine mittlere und die der Gruppe C die geringste Priorität. Beispiel: Eine Firma muss genau planen, wann sie welches Produkt wieviel produzieren will. Durch die ABC-Analyse bekommt die Firma die Information, welche Produkte bspw. den höchsten, mittleren und geringsten Umsatz erzielt haben und wird infolgedessen die Produkte der Gruppe A vermehrt produzieren als die in der Gruppe C.