Kapitel 17: Betriebliche Anwendungen von Datenbanksystemen DWH Flashcards

1
Q

Was versteht man unter OLTP: Online Transaction Processing

A
  • Beispiele
    • Flugbuchungssystem
    • Bestellungen in einem Handelsunternehmen
  • Charakterisierung
    • Hoher Parallelitätsgrad
    • Viele (Tausende pro Sekunde) kurze Transaktionen
    • TAs bearbeiten nur ein kleines Datenvolumen
    • „mission-critical“ für das Unternehmen
    • Hohe Verfügbarkeit muss gewährleistet sein
  • Normalisierte Relationen (möglichst wenig Update-Kosten)
  • Nur wenige Indexe (wegen Fortschreib
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche DWH Anwendungen gibt es?

A

OLAP: Online Analytical Processing

Wie hat sich die Auslastung der Transatlantikflüge über die letzten zwei Jahre entwickelt?

oder

Wie haben sich besondere offensive Marketingstrategien für bestimmte Produktlinien auf die Verkaufszahlen ausgewirkt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Stern-Schema und Anwendungen

A

Anwendungen

Verkäufe in Mitte, außenherum Kunde, Produkte …

  • Eine sehr große Faktentabelle
    • Alle Verkäufe der letzten drei Jahre
    • Alle Telefonate des letzten Jahres
    • Alle Flugreservierungen der letzten fünf Jahre ! normalisiert
  • Mehrere Dimensionstabellen
    • Zeit
    • Filialen
    • Kunden
    • Produkt
    • Oft nicht normalisiert

Normalisierung führt zu Schneeflockenschema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie könnte eine Anfrage im Stern-Schema aussehen

A
select sum(v.Anzahl), p.Hersteller
from Verkäufe v, Filialen f, Produkte p, Zeit z, Kunden k

where z.Saison = ‘Weihnachten’ and

z. Jahr = 2001 and k.wieAlt < 30 and
p. Produkttyp = ‘Handy’ and f.Bezirk = ‘Bayern’ and v.VerkDatum = z.Datum and v.Produkt = p.ProduktNr and v.Filiale = f.FilialenKennung and v.Kunde = k.KundenNr

[page17image4528]

group by p.Hersteller;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie können Roll-up / Drill-down Anfragen aussehen?

A

select Jahr, Hersteller, sum(Anzahl)
from Verkäufe v, Produkte p, Zeit z
where v.Produkt = p.ProduktNr and v.VerkDatum = z.Datum

and p.Produkttyp = ‘Handy’

group by p.Hersteller, z.Jahr;

roll up –> <– drill-down

select Jahr, sum(Anzahl)
from Verkäufe v, Produkte p, Zeit z
where v.Produkt = p.ProduktNr and v.VerkDatum = z.Datum

and p.Produkttyp = ‘Handy’

group by z.Jahr;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist die ultimative Verdichtung?

A
select sum(Anzahl)
from Verkäufe v, Produkte p
where v.Produkt = p.ProduktNr and p.Produkttyp = 'Handy';
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie können Slide und Dice Operationen ausseehen?

A

insert into Handy2DCube Materialisierung von ( select p.Hersteller, z.Jahr, sum(v.Anzahl)

from Verkäufe v, Produkte p, Zeit z
where v.Produkt = p.ProduktNr and p.Produkttyp = ‘Handy’ and v.VerkDatum = z.Datum
group by z.Jahr, p.Hersteller ) union

( select p.Hersteller, to_number(null), sum(v.Anzahl)
from Verkäufe v, Produkte p
where v.Produkt = p.ProduktNr and p.Produkttyp = ‘Handy’
group by p.Hersteller ) union

( select null, z.Jahr, sum(v.Anzahl)
from Verkäufe v, Produkte p, Zeit z
where v.Produkt = p.ProduktNr and p.Produkttyp = ‘Handy’

and v.VerkDatum = z.Datum
group by z.Jahr ) union

( select null, to_number(null), sum(v.Anzahl)
from Verkäufe v, Produkte p
where v.Produkt = p.ProduktNr and p.Produkttyp = ‘Handy’ )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Beispiel für Cube Operator

A

select p.Hersteller, z.Jahr, f.Land, sum(v.Anzahl)
from Verkäufe v, Produkte p, Zeit z, Filialen f
where v.Produkt = p.ProduktNr and p.Produkttyp = ‘Handy’

and v.VerkDatum = z.Datum and v.Filiale = f.Filialenkennung group by cube (z.Jahr, p.Hersteller, f.Land);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Klassifikationsregeln im Data Mining

A

Klassifikationsregeln

  • Vorhersageattribute ! V1, V2, …, Vn
  • Vorhergesagtes Attribut A ! Klassifikationsregel
  • P1(V1) ∧ P2(V2) ∧ … ∧ Pn(Vn)èA = c ! Prädikate P1, P2, .., Pn
  • Konstante c
  • Beispielregel

(wieAlt>35) ∧ (Geschlecht =m ́) ∧ (Autotyp=Coupé ́) è (Risiko= ́hoch ́)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie werden Entscheidungs/ Klassifikationsbäume erstellt

A
  • Trainingsmenge
    • Große Zahl von Datensätzen, die in der Vergangenheit gesammelt wurden
    • Sie dient als Grundlage für die Vorhersage von „neu ankommenden“ Objekten
    • Beispiel: neuer Versicherungskunde wird gemäß dem Verhalten seiner „Artgenossen“ eingestuft
  • Rekursives Partitionieren
    • Fange mit einem Attribut an und spalte die Tupelmenge
    • Jede dieser Teilmengen wird rekursiv weiter partitiniert
    • Bis nur noch gleichartige Objekte in der jeweiligen Partition sind
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Erkäre die Assoziationsregeln

A
  • Beispielregel
    • Wenn jemand einen PC kauft, dann kauft er/sie auch einen Drucker
  • Confidence
    • Dieser Wert legt fest, bei welchem Prozentsatz der Datenmenge, bei der die Voraussetzung (linke Seite) erfüllt ist, die Regel (rechte Seite) auch erfüllt ist.
    • Eine Confidence von 80% für unsere Beispielregel sagt aus, dass vier Fünftel der Leute, die einen PC gekauft haben, auch einen Drucker dazu gekauft haben.
  • Support
    • Dieser Wert legt fest, wieviele Datensätze überhaupt gefunden wurden, um die Gültigkeit der Regel zu verifizieren.
    • Bei einem Support von 1% wäre also jeder Hundertste Verkauf ein PC zusammen mit einem Drucker.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Verkaufstransaktionen und Warenkröbe

A
  • Finde alle Assoziationsregeln L -> R ! mit einem Support größer als
    • minsupp und
  • einer Confidence von mindestens
    • minconf
  • Dazu sucht man zunächst die sogenannten frequent itemsets, also Produktmengen, die in mindestens minsupp der Einkaufswägen/ Transaktionen enthalten sind
  • Der A Priori-Algorithmus basiert auf der Erkenntnis, dass alle Teilmengen eines FI auch FIs sein müs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Erkläre den A Priori Algorithmus

A

für alle Produkte
überprüfe ob es ein frequent itemset ist, also in mindestens minsupp Einkaufswägen enthalten ist

k:=1

iteriere solange

für jeden frequent itemset Ik mit k Produkten
generiere alle itemsets Ik+1 mit k+1 Produkten und Ik ⊂ Ik+1

lies alle Einkäufe einmal (sequentieller Scan auf der Datenbank)

und überprüfe, welche der (k+1)-elementigen itemset- Kandidaten mindestens minsupp mal vorkommen

k:=k+1

bis keine neuen frequent itemsets gefunden werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Sie eine SQL-Anfrage, die basierend auf dem Schema aus Abbildung 1 einen dreidimensio- nalen Quader berechnet, der es unserem Handelsunternehmen erlaubt, entlang der folgen- den Dimensionen drill-down/roll-up Anfragen zu stellen:

  • Produkttyp,
  • Bezirk,
  • Alter.

Das Handelsunternehmen ist dabei nur an Daten aus Deutschland interessiert, die in die Hochsoommersaison fallen. Verwenden Sie den Cube Operator

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Top-K Berechnung

Die in Abbildung 2 dargestellten Relationen Autos und Unterhalt dienen der Bewertung von Autos. Eine junge Studierende sucht ein Auto mit guter Balance zwischen Sportlichkeit und Kosten. Sie u ̈berlegt sich wie die drei Werte Preis, PS und monatlicher Unterhalt in einen Score umberechnet werden ko ̈nnen und nutzt schließlich folgende Formel:

Preis − (100 ∗ PS) + 24 ∗ Unterhalt

Zeigen Sie die phasenweise Berechnung der Top-3 Ergebnisse jeweils mit dem Threshold- und dem NRA-Algorithmus. Pru ̈fen sie vor der Berechnung ob Teile der Scoringformel schon innerhalb jeder Relation vorberechnet werden ko ̈nnen.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Skyline

a) Formulieren Sie die Anfrage, die die MatrNr in der Skyline fu ̈r die Attribute Vorbe- reitungszeit und Note erzeugt (kleiner ist jeweils besser) in SQL mit Hilfe des Skyline Operators.
b) Formulieren Sie die Anfrage in SQL ohne Skyline Operator.
c) Bestimmen Sie das Ergebnis der Anfrage

A

SQL mit Skyline:

select MatrNr from Klausur k skyline of k.Vorbereitungszeit min, k.Note min

SQL ohne Skyline:

select MatrNr from Klausur k where not exists (
select * from klausur dom where

dom. Vorbereitungszeit <= k.Vorbereitungszeit and dom.Note <= k.Note and (
dom. Vorbereitungszeit < k.Vorbereitungszeit or dom.Note < k.Note)

)

Ergebnis:

1) Ist in Skyline (Kann in Vorbereitungszeit nur von MatrNr 2 dominiert werden, dort ist aber Note schlechter)
2) Ist in Skyline (Minimum fu ̈r Vorbereitungszeit)
3) Ist nicht in Skyline, dominiert von MatrNr 1
4) Ist nicht in Skyline, dominiert von MatrNr 1
5) Ist in Skyline (Minimum fu ̈r Note)

17
Q

Zeigen Sie die weiteren Phasen des A` priori-Algorithmus fu ̈r unser Beispiel in Abbildung 3 (hier ist lediglich bis inkl. 2. Phase dargestellt). Damit eine Menge von Produkten ein frequent itemset ist, muss sie in mindestens 3/5 aller Verka ̈ufe enthalten sein, d.h. minsupp = 3/5.

A

Gemäß dem Beispiel ist minsupp = 3/5. Berechne minsupp für alle sodass minsupp mind 3/5.

Überprüfe für alle Produkte ob es ein frequent itemset ist, also in meindestens minsupp Warenkörben enhalten ist

K := 1

iteriere so lange

  • Für jeden frequent itemset Ik mit k Produkten

* generiere alle itemsets Ik+1 mit k+1 Produkten und Ik Teilmene von Ik+1

  • lies alle Einkäufe einmal (sequentieller Scan) und überprüfe welcher der k+1-elementigen itemset Kandidaten mindestens minsupp mal vorkommt.
    k: = k+1

bis keine neuen frequent itemsets gefunden werden

Mögliche Artikel sind: PC und SCanner. Scanner scheiden jedoch von vornherein aus, da deren support nur bei 2/5 liegt. Da der support {Papier, PC} = 2/5 und {Papier, PC} Teilmenge von {Drucker, Papier Toner, PC} ist, fällt diese Erwartung inerhalb der geforderten Schranke minsupp. Somit termniert der Algorithmus und liefert frequent itemsets der maximalen Größe 3.

18
Q

Row vs Column Store

Gegeben eine Tabelle Produkte mit folgendem Schema und 10000 Eintra ̈gen: Id (8 Byte) | Name ( 32 Byte) | Preis ( 8 Byte) | Anzahl ( 8 Byte )

Wieviele Daten werden fu ̈r folgende Queries in den CPU-Cache geladen? Unterscheiden sie jeweils zwischen Row und Column Store.

  1. select * from Produkte
  2. select Anzahl from Produkte
A

Daten ko ̈nnen maximal mit Cacheline Granularita ̈t (64 Byte) in den Cache geladen wer- den. Das heißt, selbst wenn nur auf einen 64 bit Integer Wert zugegriffen wird, muss die komplette Cacheline geladen werden. Mit diesem Hintegrund ergeben sich folgende Ergeb- nisse:

  1. select * from Produkte
    a) Row: 10000 ∗ 56 = 560000 Byte

5

b) Column:10000∗8+10000∗32+10000∗8+10000∗8=560000Byte 2. select Anzahl from Produkte
a) Row: 10000 ∗ 56 = 560000 Byte b) Column: 10000 ∗ 8 = 80000 Byte

19
Q
A