Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining.

Ähnliche Präsentationen


Präsentation zum Thema: "Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining."—  Präsentation transkript:

1 Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

2 OLTP: Online Transaction Processing Beispiele: Flugbuchungssystem Bestellungen in einem Handelsunternehmen Charakteristisch: Hoher Parallelitätsgrad Viele (1000+/sec) kurze Transaktionen Transaktionen 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

3 Data Warehouse-Anwendungen: 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? Im Gegensatz zu OLTP stehen bei OLAP etwa folgende Fragestellungen im Zentrum:

4 Sammlung und periodische Auffrischung der Data Warehouse-Daten Data Warehouse OLTP-Datenbanken und andere Datenquellen OLAP-Anfragen Decision Support Data Mining extract, transform, load

5 Datenbank-Design f ü r Data Warehouses: Stern-Schema Stern-Schema eines Date Warehouse: 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

6 Das Stern-Schema: Handelsunternehmen Verkäufe Zeit Verkäufer Produkte Kunden Filialen Fremdschlüssel- beziehungen

7 Das Stern-Schema: Krankenversicherung Behandlungen Zeit Krankheiten ÄrztePatienten Krankenhäuser

8 Stern-Schema Verkäufe VerkDatumFilialeProduktAnzahlKundeVerkäufer 25-Jul-00Passau Filialen FilialenKennungLandBezirk... PassauDBayern... Kunden KundenNrNamewieAlt Kemper43... Verkäufer VerkäuferNrNameFachgebietManagerwieAlt HandymanElektronik Faktentabelle (typischerweise SEHR groß, Tupel) Dimensionstabellen (relativ klein)

9 Stern-Schema (contd) Zeit DatumTagMonatJahrQuartalKWWochentagSaison 25-Jul DienstagHochsommer Dec DienstagWeihnachten... Produkte ProduktNrProdukttypProduktgruppeProdukthauptgruppeHersteller HandyMobiltelekomTelekomSiemens Typische Tupel-Anzahl: 1000 (3 Jahre) Typische Tupel-Anzahl: (Katalog)

10 Nicht-normalisierte Dimensionstabellen: Hierarchische Klassifizierung Zeit DatumTagMonatJahrQuartalKWWochentagSaison 25-Jul DienstagHochsommer Dec DienstagWeihnachten... Produkte ProduktNrProdukttypProduktgruppeProdukthauptgruppeHersteller HandyMobiltelekomTelekomSiemens Geltende FDs: Datum Monat Quartal ProduktNr Produkttyp Produktgruppe Produkthauptgruppe

11 Normalisierung führt zum Schneeflocken-Schema Verkäufe Zeit Verkäufer Produkte Kunden Filialen Quartale KWs Produkttypen Produktgruppen Produkthaupt- gruppen

12 Typische Anfragen gegen Stern- Schemata: Analyse 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 GROUP BY p.Hersteller; Einschränkung der Dimensionen Join-Prädikate "Wieviele Handys welcher Hersteller haben junge Kunden in den Bayerischen Filialen zu Weihnachten 2001 gekauft?" Verdichtung

13 Algebra-Ausdruck (Star Join) Verkäufe...(Filialen)...(Zeit)...(Kunden)...(Produkte)

14 Grad der Verdichtung: Roll-up/Drill-Down SELECT Jahr, Hersteller, SUM(v.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; SELECT Jahr, SUM(v.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; Roll-up Drill-down

15 Analyse von Handyverkaufszahlen nach verschiedenen Dimensionen

16 Roll-up Drill- Down Analyse von Handyverkaufszahlen nach verschiedenen Dimensionen

17 Data Cubes (n-dim. Datenw ü rfel) Die Darstellung derart verdichteter Information erfolgt in Decision-Support-Systemen oft spreadsheet-artig (cross tabulation): Dieser 2-dimensionale data cube fasst alle Anfrageergebnisse der vorhergenden Folie zusammen.

18 Ultimative Verdichtung SELECT SUM(Anzahl) FROM Verkäufe v, Produkte p WHERE v.Produkt = p.ProduktNr AND p.Produkttyp = 'Handy'; Keine Gruppierung (keine GROUP BY -Klausel) alle Tupel bilden eine einzige Gruppe, bevor aggregiert wird:

19 Materialisierung von Aggregaten INSERT INTO Handy2DCube ( 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, 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, NULL, SUM(v.Anzahl) FROM Verkäufe v, Produkte p WHERE v.Produkt = p.ProduktNr and p.Produkttyp = 'Handy' );

20 Relationale Struktur der Datenwürfel

21 Würfeldarstellung

22 Der CUBE -Operator (SQL:1999) 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); Die Materialisierung von Aggregaten führt zu aufwendigen Anfragen, deren Optimierung für das RDBMS schwierig ist: n Dimensionen 2 n Unterfragen, verbunden durch UNION Aggregate könnten hierarchisch berechnet werden Folgender CUBE -Operator ersetzt 2 3 Unteranfragen:

23 Wiederverwendung von Teil-Aggregaten Annahme: Folgende Verdichtung liegt in der Datenbank vorausberechnet vor (materialisiert): INSERT INTO VerkäufeProduktFilialeJahr ( SELECT v.Produkt, v.Filiale, z.Jahr, SUM(v.Anzahl) FROM Verkäufe v, Zeit z WHERE v.VerkDatum = z.Datum GROUP BYv.Produkt, v.Filiale, z.Jahr ); Dann l äß t sich folgende Anfrage auf der vorausberechneten Verdichtung VerkäufeProduktFilialeJahr berechnen (anstatt auf die Faktentabelle Verkäufe zugreifen zu m ü ssen): SELECT v.Produkt, v.Filiale, SUM(v.Anzahl) FROM Verkäufe v Verk ä ufeProduktFilialeJahr v GROUP BY v.Produkt, v.Filiale

24 Die Materialisierungs-Hierarchie Teilaggregate T sind für eine Aggregation A wiederverwendbar wenn es einen gerichteten Pfad von T nach A gibt Also T... A Man nennt diese Materialisierungshierarchie auch einen Verband (Engl. lattice)

25 Die Zeit-Hierarchie

26 Bitmap-Indexe Optimierung durch Komprimierung der Bitmaps Ausnutzung der dünnen Besetzung, bspw. durch runlength- compression Speichere jeweils die Länge der Nullfolgen zwischen zwei Einsen Typische OLAP-Workloads lassen die Ausnutzung sehr spezifischer Index-Strukuren zu. Hier: Index auf spezifische Werte eines Attributes mit kleiner diskreter Dom ä ne:

27 Bitmap-Indexe: Beispiel-Anfrage und Auswertung Marketing-Aktion: Extrahiere junge, gerade vollj ä hrige Kundinnen: SELECT k.Name FROM Kunden k WHERE k.Geschlecht = 'w' AND k.wiealt BETWEEN 18 AND 19; Unterst ü tzung der Anfrage durch folgende Operation auf Bitmap-Indizes: (w 18 w 19 ) G w

28 Bitmap-Operationen

29 Bitmap-Join-Index Bitmap-Indizes als Join-Indizes Klassischer Join-Index Bitmap-Join-Index

30 B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)... B-Baum TID-K (I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...

31 B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)... SELECT k.* FROM Verkäufe v, Kunden k WHERE v.ProduktID = 5 AND v.KundenNr = k.KundenNr 5 5

32 SELECT v.* FROM Verkäufe v, Kunden k WHERE k.KundenNr = 4711 AND v.KundenNr = k.KundenNr B-Baum TID-K (I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...

33

34 Erinnerung: Star Join 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 GROUP BY p.Hersteller; Einschränkung der Dimensionen Join-Prädikate "Wieviele Handys welcher Hersteller haben junge Kunden in den Bayerischen Filialen zu Weihnachten 2001 gekauft?"

35 Illustration des Star Join

36 Bitmap-Indexe für die Dimensions- Selektion

37 Bitmap-Join-Index Bitmap-Indizes als Join-Indizes Klassischer Join-Index Bitmap-Join-Index

38 Ausnutzung der Bitmap-Join-Indexe

39 Eine weitere Join-Methode: DiagJoin Geeignet zur Verfolgung von 1:N-Beziehungen Daten sind geballt (clustered) durch zeitlich nahe Einfügung in beide beteiligten Tabellen Beispiel: Order (Bestellung) Lineitem (Bestellposition) Order Lineitem Die Lineitems einer Order kommen zeitlich kurz hintereinander Grundidee des DiagJoins besteht darin, synchron über die beiden Relationen zu laufen Die Orders werden in einem Fenster (sliding window) gehalten

40 DiagJoin Order CustomerOrder# Kemper4711 Maier5645 Müller7765 Hummer9876 Kaller9965 Lola3452 Junker1232 …… LineItem Order#PositionProduktPreis 47111PC… 56451Laptop… 47112Drucker… 47113Toner… 56452Hub… 77651Fax… 47114Papier… 56453Handy… 77652Mixer… 98761Handy… …………

41 DiagJoin Order CustomerOrder# Kemper4711 Maier5645 Müller7765 Hummer9876 Kaller9965 Lola3452 Junker1232 …… LineItem Order#PositionProduktPreis 47111PC… 56451Laptop… 47112Drucker… 47113Toner… 56452Hub… 77651Fax… 47114Papier… 56453Handy… 77652Mixer… 98761Handy… …………

42 DiagJoin Order CustomerOrder# Kemper4711 Maier5645 Müller7765 Hummer9876 Kaller9965 Lola3452 Junker1232 …… LineItem Order#PositionProduktPreis 47111PC… 56451Laptop… 47112Drucker… 47113Toner… 56452Hub… 77651Fax… 47114Papier… 56453Handy… 77652Mixer… 98761Handy… …………

43 DiagJoin Order CustomerOrder# Kemper4711 Maier5645 Müller7765 Hummer9876 Kaller9965 Lola3452 Junker1232 …… LineItem Order#PositionProduktPreis 47111PC… 56451Laptop… 47112Drucker… 47113Toner… 56452Hub… 77651Fax… 47114Papier… 56453Handy… 77652Mixer… 98761Handy… …………

44 DiagJoin Order CustomerOrder# Kemper4711 Maier5645 Müller7765 Hummer9876 Kaller9965 Lola3452 Junker1232 …… LineItem Order#PositionProduktPreis 47111PC… 56451Laptop… 47112Drucker… 47113Toner… 56452Hub… 77651Fax… 47114Papier… 56453Handy… 77652Mixer… 98761Handy… 47115Quirl… …………

45 DiagJoin Order CustomerOrder# Kemper4711 Maier5645 Müller7765 Hummer9876 Kaller9965 Lola3452 Junker1232 …… LineItem Order#PositionProduktPreis 47111PC… 56451Laptop… 47112Drucker… 47113Toner… 56452Hub… 77651Fax… 47114Papier… 56453Handy… 77652Mixer… 98761Handy… 47115Quirl… ………… Tupel muss zwischengespeichert und "nachbearbeitet" werden (temp file).

46 Anforderungen an den DiagJoin 1:N-Beziehung zwischen beteiligten Tabellen Die "1"-er Tupel sind in etwa dersleben Reihenfolge gespeichert worden wie die "N"-er Tupel Die Tupel werden in der "time-of-creation"-Reihenfolge wieder von der Platte gelesen (full table scan) Die referentielle Integrität sollte gewährleistet sein (Warum?) Das Fenster muss so groß sein, daß nur wenige Tupel nachbearbeitet werden müssen Nachbearbeitung bedeutet: Tupel auf dem Hintergrundspeicher (temp file) speichern Den zugehörigen Joinpartner in Order via Index auffinden Daf ü r ist ein Index auf Order.Order# hierfür notwendig Kein Index n ö tig für die erste Phase des DiagJoins

47 Data Mining Klassifikation Assoziationsregeln

48 Data Mining : Klassifikationsregeln Ziel des Data Mining: Durchsuchen großer Datenmengen nach bisher unbekannten Zusammenh ä ngen (Knowledge discovery) Klassifikation: Treffe "Vorhersagen" auf der Basis bekannter Attributwerte Vorhersageattribute: V 1, V 2,..., V n Vorhergesagtes Attribut: A Klassifikationsregel: P 1 (V 1 ) P 2 (V 2 )... P n (V n ) A = c Prädikate P 1, P 2,.., P n Konstante c Beispiel f ü r eine Klassifikationsregel: (wieAlt>35) (Geschlecht =`m´) (Autotyp=`Coupé´) (Risiko=´hoch')

49 Klassifikations/Entscheidungsbaum Jedes Blatt des Baumes entspricht einer Klassifikationsregel

50 Klassifikations/Entscheidungsbaum (wieAlt>35) (Geschlecht =`m´) (Autotyp=`Coupé´) (Risiko=´hoch´)

51 Erstellung von Entscheidungs-/ Klassifikationsbäume Trainingsmenge Große Zahl von Datensätzen, die in der Vergangenheit gesammelt wurden Sie dient als Grundlage für die Vorhersage (= Klassifikation) von "neu ankommenden" Objekten Beispiel: neuer Versicherungskunde wird gemäß dem Verhalten seiner "Artgenossen" eingestuft Rekursives Partitionieren: Fange mit einem Attribut A an und spalte die Tupelmenge bzgl. ihrer A-Werte Jede dieser Teilmengen wird rekursiv weiter partitioniert Fortsetzen, bis nur noch gleichartige Objekte in der jeweiligen Partition sind

52 Data Mining : Assoziationsregeln 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.

53 Verkaufstransaktionen Warenkörbe 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 (FI), 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üssen VerkaufsTransaktionen TransIDProdukt 111Drucker 111Papier 111PC 111Toner 222PC 222Scanner 333Drucker 333Papier 333Toner 444Drucker 444PC 555Drucker 555Papier 555PC 555Scanner 555Toner

54 A Priori Algorithmus für alle Produkte p überprüfe ob p ein frequent itemset (Kardinalität 1) ist, also in mindestens minsupp Einkaufswägen enthalten ist k := 1 iteriere solange für jeden frequent itemset I k mit k Produkten generiere alle itemsets I k +1 mit k+1 Produkten und I k I k+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

55 A Priori-Algorithmus VerkaufsTransaktionen TransIDProdukt 111Drucker 111Papier 111PC 111Toner 222PC 222Scanner 333Drucker 333Papier 333Toner 444Drucker 444PC 555Drucker 555Papier 555PC 555Scanner 555Toner Zwischenergebnisse FI-KandidatAnzahl {Drucker}4 {Papier}3 {PC}4 {Scanner}2 {Toner}3 {Drucker, Papier}3 {Drucker, PC}3 {Drucker, Scanner} {Drucker, Toner}3 {Papier, PC}2 {Papier, Scanner} {Papier, Toner}3 {PC, Scanner} {PC,Toner}2 {Scanner, Toner} Disqua- lifiziert Minsupp=3/5

56 A Priori-Algorithmus VerkaufsTransaktionen TransIDProdukt 111Drucker 111Papier 111PC 111Toner 222PC 222Scanner 333Drucker 333Papier 333Toner 444Drucker 444PC 555Drucker 555Papier 555PC 555Scanner 555Toner Zwischenergebnisse FI-KandidatAnzahl {Drucker, Papier}3 {Drucker, PC}3 {Drucker, Scanner} {Drucker, Toner}3 {Papier, PC}2 {Papier, Scanner} {Papier, Toner}3 {PC, Scanner} {PC,Toner}2 {Scanner, Toner} {Drucker, Papier, PC}2 {Drucker, Papier, Toner}3 {Drucker, PC, Toner}2 {Papier, PC, Toner}2

57 Ableitung von Assoziationsregeln aus den frequent itemsets Betrachte jeden FI mit hinreichend viel support Bilde alle nicht-leeren Teilmengen L FI und untersuche die Regel L FI – L Die Confidence dieser Regel berechnet sich als: confidence(L FI – L) = support(FI) / support(L) Falls die Confidence > minconf ist, behalte diese Regel Betrachte FI = {Drucker, Papier, Toner}, L = {Drucker} support(FI) = 3/5 Regel: {Drucker} {Papier, Toner} confidence = support({Drucker, Papier, Toner}) / support({Drucker}) = (3/5) / (4/5 = ¾ = 75 %

58 Erhöhung der Confidence Vergrößern der linken Seite (dadurch Verkleinern der rechten Seite) führt zur Erhöhung der Confidence Formal: L L +, R R - confidence(L R) <= confidence(L + R - ) Beispiel-Regel: {Drucker} {Papier, Toner} confidence = support({Drucker, Papier, Toner}) / support({Drucker}) = (3/5) / (4/5) = ¾ = 75% Beispiel-Regel: {Drucker,Papier} {Toner} Confidence = support({Drucker,Papier,Toner}) / support({Drucker,Papier}) = (3/5) / (3/5) = 1 = 100%


Herunterladen ppt "Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining."

Ähnliche Präsentationen


Google-Anzeigen