Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1...

45
1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück

Transcript of Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1...

Page 1: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

1

Datenbanksysteme 2013

Kapitel 16:Objektorientierte Datenbanken

Vorlesung vom 02.07.2013

Oliver Vornberger

Institut für InformatikUniversität Osnabrück

Page 2: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

2

Schwächen relationaler SystemeBuch: {[ISBN, Verlag, Titel, Autor, Version, Stichwort]}

2 Autoren, 5 Versionen, 6 Stichworte 2 5 6 = 60 Einträge

Buch : {[ ISBN, Titel, Verlag ]} Autor : {[ ISBN, Name, Vorname]} Version : {[ ISBN, Auflage, Jahr ]} Stichwort : {[ ISBN, Stichwort ]}

Problem: "Liste Bücher mit den Autoren Meier & Schmidt"

Page 3: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

3

Modellierung von Polyedern

Polyeder

Flächen

Begrzg

Hülle

StartEnde

Kanten

Punkte

X Y Z

(3, *)

(2, 2)

(2, 2)

(3, *)

(1, 1)

(4, *)

PolyederPolyID Gewicht Material . . .

cubo#5 25.765 Eisen . . .tetra#7 37.985 Glas . . .. . . . . . . . . . . .

FlächenFlächenID PolyID Material

f1 cubo#5 . . .f2 cubo#5 . . .. . . . . . . . .f6 cubo#5 . . .f7 tetra#7 . . .

KantenKantenID F1 F2 P1 P2

k1 f1 f4 p1 p4k2 f1 f2 p2 p3. . . . . . . . . . . . . . .

PunktePunktID X Y Z

p1 0.0 0.0 0.0p2 1.0 0.0 0.0. . . . . . . . . . . .p8 0.0 1.0 1.0. . . . . . . . . . . .

Page 4: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

4

Schwachpunkte

• Segmentierung• Künstliche Schlüsselattribute• Fehlendes Verhalten• Externe Programmierschnittstelle erforderlich

Page 5: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

5

Vorteile der objektorientierten Datenmodellierung

Struktur + Verhalten in einem Objekt-Typ integriert

objektorientierte Datenbasis

volume

rotatescale

weight

translate

specWeight

Anwendung AsomeCuboid->rotate('x', 10);

Anwendung Bw := someCuboid->weight( );

Page 6: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

6

ODMG

Object Database Management Grouphttp://www.odbms.org/

entwickelt Standards für• objektorientiertes Datenmodell• objektorientierte Abfragesprache OQL• Schnittstellen zu C++, Smalltalk, Java

Page 7: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

7

Eigenschaften von Objekten

Ein Objekt

• gehört zu einer Klasseentsteht durch Instanziierungist Teil der Extension = alle Objekte

• hat Identitätsystemweit eindeutig, unveränderbar

• Wert = Zustand = Ausprägung

Page 8: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

8

Identität

relational: Schlüsselvom Anwender erdacht

objektorientiert:Objektidentifikator OIDvom System generiertunabhängig vom Zustandunabhängig vom Speicherorttransient + persistentmomentaner Speicherort = Tabelle[OID]

Page 9: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

9

Objekte aus der Universitätswelt

PersNr: 2137Name: "Kant"Rang: "C4"residiertIn: id9

hatGeprueft: {. . . }liest: {id2 , id3 }

id1 Professoren

VorlNr: 5001Titel: "Grundzüge"SWS: 4gelesenVon: id1

Hoerer: {. . .}Nachfolger: {. . .}Vorgaenger: {. . .}

Vorlesungenid2

VorlNr: 4630Titel: "Die 3 Kritiken"SWS: 4gelesenVon: id1

Hoerer: {. . .} Nachfolger: {. . .} Vorgaenger: {. . .}

id3 Vorlesungen

Page 10: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

10

Objekttypen-Definition

• Angaben zur Generalisierung und Spezialisierung

• Strukturbeschreibung mit Attributen und Beziehungen

• Verhaltensbeschreibungmit Operationen

Page 11: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

11

Attribute

class Professoren {attribute long PersNr;attribute string Name;attribute string Rang;

};

Page 12: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

12

strukturierte Attribute

class Person {attribute string Name;attribute struct Datum {

short Tag;short Monat;short Jahr;

} GebDatum;};

Page 13: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

13

1:1 Beziehung

class Professoren {attribute long PersNr;...relationship Raeume residiertIn

inverse Raeume::beherbergt;};

class Raeume {attribute long RaumNr;attribute short Groesse;...relationship Professoren beherbergt

inverse Professoren::residiertIn;};

Page 14: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

14

1:N-Beziehung

class Professoren {...relationship set <Vorlesungen> liest

inverse Vorlesungen::gelesenVon;};

class Vorlesungen {...relationship Professoren gelesenVon

inverse Professoren::liest;};

Page 15: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

15

Binäre N:M-Beziehung

class Studenten {...relationship set <Vorlesungen> hoert

inverse Vorlesungen::Hoerer;};

class Vorlesungen {...relationship set <Studenten> Hoerer

inverse Studenten::hoert;};

Page 16: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

16

Universität

RaeumeProfessorenStudenten

Pruefungen

Vorlesungen

Inhalt

wurdeAbgeprueft

wurdeGeprueft hatGeprueft

beherbergtresidiertIn

hoert liest

gelesenVonHoerer

Vorgaenger Nachfolger

PrueferPruefling

Page 17: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

17

Extensionen und Schlüssel

class Studenten (extent AlleStudenten key MatrNr) {attribute long MatrNr;attribute string Name;attribute short Semester;

relationship set<Vorlesungen> hoertinverse Vorlesungen::Hoerer;

relationship set<Pruefungen> wurdeGeprueftinverse Pruefungen::Pruefling;

};

Page 18: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

18

Operationen

• Objekt erzeugen mit Konstruktor

• Zustand erfragen mit Observer

• Zustand verändern mit Mutator

• Objekt zerstören mit Destruktor

Page 19: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

19

Modellierung des Verhaltensclass Professoren {exception hatNochNichtGeprueft { };exception schonHoechsteStufe { };...float wieHartAlsPruefer() raises (hatNochNichtgeprueft);void befoerdert() raises (schonHoechsteStufe);

};

in C++:meinLieblingsProf->befoerdert();

in OQL:select p.wieHartAlsPruefer()from p in AlleProfessorenwhere p.name = "Kant";

Page 20: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

20

Vererbung

Typ1

Objekttypen

Typ2

Typ3

A

B

C

is-a

is-a

A: . . .

Instanzen

Typ1id1

A: . . . B: . . .

id2

Typ2

A: . . . B: . . . C: . . .

id3

Typ3

Page 21: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

21

Typhierarchie bei einfacher Vererbung

ANY

is-a is-a is-a

OT 1

is-ais-ais-a is-ais-ais-a

OT 2

is-a is-a is-a

OT n-1

is-a is-a is-a

OT n

Page 22: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

22

Vererbungclass Angestellte (extent AlleAngestellte) {attribute long PersNr;attribute string Name;attribute date GebDatum;short Alter();long Gehalt();

};

class Assistenten extends Angestellte (extent AlleAssistenten) {attribute string Fachgebiet;

};

class Professoren extends Angestellte (extent AlleProfessoren) {attribute string Rang;relationship Raeume residiertIn inverse Raeume::beherbergt; relationship set(Vorlesungen) liest inverse Vorlesungen::gelesenVon; relationship set(Pruefungen) hatgeprueft inverse Pruefungen::Pruefer;

};

Page 23: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

23

Extension AlleAngestellten

select sum(a.Gehalt()) from a in AlleAngestellten

PersNr: 2137Name: "Kant"GebDatum: . . .

id1 Professoren

PersNr: 3002Name: "Platon"GebDatum: . . .

id11 Assistenten

PersNr: 6001Name: "Maier"GebDatum: . . .

id7 Angestellte

AlleAngestellten: { id1, id11 , id7 }

Page 24: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

24

OQL: select

Liste alle C4-Professoren (als Objekte):select pfrom p in AlleProfessorenwhere p.Rang = "C4";

Liste Name und Rang aller C4-Professoren (als Werte):select p.Name, p.Rangfrom p in AlleProfessorenwhere p.Rang = "C4";

Liste Name und Rang aller C4-Professoren (als Tupel):select struct (n: p.Name, r: p.Rang)from p in AlleProfessorenwhere p.Rang = "C4";

Page 25: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

25

OQL: Pfadausdrücke

select s.Namefrom s in AlleStudenten, v in s.hoert

where v.gelesenVon.Name = 'Sokrates'

Studenten Vorlesungenhört

Professoren NamegelesenVon

Welche Studenten hören Vorlesungen von Sokrates ?

Page 26: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

26

Page 27: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

27

Datenbanksysteme 2013

Kapitel 17:Sicherheit

Oliver Vornberger

Institut für InformatikUniversität Osnabrück

Page 28: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

28

Datenschutz

Datenbank

grant select on Professoren to Erika with grant option

Page 29: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

29

Page 30: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

30

Datenbanksysteme 2013

Kapitel 18:Data Warehouse

Oliver Vornberger

Institut für InformatikUniversität Osnabrück

Page 31: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

31

OLTP versus OLAP

Opera-tionaleDB

Opera-tionaleDB

Opera-tionaleDB

Opera-tionaleDB

OLTP OLAP

Decision Support AnfragenData Mining

Periodischauffrischen

online transaction processing online analytical processing

Page 32: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

32

Sternschema

Verkäufer

Zeit

KundenProdukte Krankheiten

Ärzte

Patienten

ZeitKrankenhäuser

BehandlungenVerkäufe

Filialen

Handelsunternehmen Krankenkasse

Fakten Dimensionen

Page 33: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

33

VerkäufeVerkDatum Filiale Produkt Anzahl Kunde Verkäufer30-Jul-96...

Passau...

1347...

1...

4711...

825...

FilialenFilialenkennung Land Bezirk ...Passau...

D...

Bayern...

...

...

KundenKundenNr Name wiealt ...4711...

Kemper...

38...

...

...

VerkäuferVerkäuferNr Name Fachgebiet Manager wiealt ...825...

Handyman...

Elektronik...

119...

23...

...

...

ZeitDatum Tag Monat Jahr Quartal KW Wochentag Saison ......30-Jul-96...23-Dec-97...

...30...27...

...Juli...Dezember...

...1996...1997...

...3...4...

...31...52...

...Dienstag...Dienstag...

...Hochsommer...Weihnachten...

...

...

...

...

...

ProdukteProduktNr Produkttyp Produktgruppe Produkthauptgruppe Hersteller ...1347...

Handy...

Mobiltelekom...

Telekom...

Siemens...

...

...

Ausprä

gung

Page 34: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

34

Star Join

select p.Hersteller, sum(v.Anzahl) as Anzahlfrom Verkäufe v, Filialen f, Produkte p, Zeit z, Kunden kwhere z.Saison = 'Weihnachten' and z.Jahr = 1996 and k.wiealt < 30 and p.Produkttyp = 'Handy' and f.Bezirk = 'Bayern' and v.VerkDatum = z.Datumand v.Produkt = p.ProduktNrand v.Filiale = f.Filialenkennungand v.Kunde = k.KundenNrgroup by Hersteller;

Welche Handys (d.h. von welchen Herstellern) haben junge Kunden in den bayrischen Filialenzu Weihnachten 1996 gekauft ?

570Nokia400Bosch650Motorola550Siemens

AnzahlHersteller

Page 35: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

35

Verdichtungsgrad

Drill down:• mehr Attribute in group-by-Klausel• mehr Ergebniszeilen• geringere Verdichtung

Roll up:• weniger Attribute in group-by-Klausel• weniger Ergebniszeilen• stärkere Verdichtung

Page 36: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

36

Handyverkäufe nach Herstellern

select p.Hersteller, sum(v.Anzahl) as Anzahlfrom Verkäufe v, Produkte pwhere v.Produkt = p.ProduktNrand p.Produkttyp = 'Handy'group by p.Hersteller ;

4.500Nokia

3.000Bosch

3.500Motorola

8.500Siemens

AnzahlHersteller

z.Jahr,

2.0001996Nokia

1.5001995Nokia

1.0001994Nokia

2.0001996Bosch

1.0001995Bosch

5001994Bosch

1.5001996Motorola

1.0001995Motorola

1.0001994Motorola

3.5001996Siemens

3.0001995Siemens

2.0001994Siemens

UmsatzJahrHersteller

, z.Jahr

Drilldown längs Zeitachse

8.5001996

6.5001995

4.5001994

AnzahlJahr

Rollup längs Hersteller

19.500

AnzahlUltimative Verdichtung:

Page 37: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

37

Materialisierung

Hersteller \ Jahr 1994 1995 1996 ΣSiemens 2.000 3.000 3.500 8.500Motorola 1.000 1.000 1.500 3.500Bosch 500 1.000 1.500 3.000Nokia 1.000 1.500 2.000 4.500Σ 4.500 6.500 8.500 19.500

gewünscht:Handy-Verkäufe nach Jahr und Hersteller

Page 38: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

38

Handy2Cube

Wunsch:verschieden aggregierte Teilergebnise vorberechnen:

create table Handy2DCube(Hersteller varchar(20),Jahr integer,Anzahl integer

);

Page 39: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

39

Berechnung Hersteller + Jahrinsert into Handy2DCube

(select p.Hersteller, z.Jahr, sum(v.Anzahl)from Verkäufe v, Produkte p, Zeit zwhere v.Produkt = p.ProduktNrand p.Produkttyp = 'Handy'and v.VerkDatum = z.Datumgroup by z.Jahr, p.Hersteller)

union (select null, z.Jahr, sum(v.Anzahl)from Verkäufe v, Produkte p, Zeit zwhere v.Produkt = p.ProduktNrand p.Produkttyp = 'Handy'and v.VerkDatum = z.Datumgroup by z.Jahr)

union (select p.Hersteller, null, sum(v.Anzahl)from Verkäufe v, Produkte pwhere v.Produkt = p.ProduktNrand p.Produkttyp = 'Handy'group by p.Hersteller)

union (select null, null, sum(v.Anzahl)from Verkäufe v, Produkte pwhere v.Produkt = p.ProduktNrand p.Produkttyp = 'Handy');

Page 40: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

40

Cube-Operator

select p.Hersteller, z.Jahr, f.Land, sum(Anzahl)as Anzahl

from Verkäufe v, Produkte p, Zeit z, Filialen fwhere v.Produkt = p.ProduktNrand p.Produkttpy = 'Handy'and v.VerkDatum = z.Datumand v.Filiale = f.Filialenkennunggroup by z.Jahr, p.Hersteller, f.Landwith cube;

Erzeugt bei k Attributen in group-by-Klausel2k Teilmengen (inkl. Null-Werte) und vereinigt sie.

Page 41: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

41

Ergebnisdes CubeOperators

Handy3DCubeHersteller Jahr Land Anzahl

Siemens 1994 D 800Siemens 1994 A 600Siemens 1994 CH 600Siemens 1995 D 1.200Siemens 1995 A 800Siemens 1995 CH 1.000Siemens 1996 D 1.400

... ... ... ...Motorola 1994 D 400Motorola 1994 A 300Motorola 1994 CH 300

... ... ... ...Bosch ... ... ...... ... ... ...null 1994 D ...null 1995 D ...... ... ... ...

Siemens null null 8.500... ... ... ...null null null 19.500

Page 42: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

42

MySQL: WITH ROLLUP

select Hersteller, Jahr, sum(Umsatz) as Umsatzfrom Handysgroup by Hersteller, Jahrwith Rollup

MySQL WorkBench

Page 43: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

43

Data Mining

Datenbestand durchsuchen nach (bisher unbekannten) Zusammenhängen (Knowledge Discovery)

• Klassifikation von Objekten:z.B. Risikoabschätzung bei Versicherungspolicenmännlich + alt + Coupé hohes Risiko

• Assoziationsregeln:z.B. Analyse des Kaufverhaltens"Wer PC kauft, kauft auch Drucker"

Page 44: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

44

Datamining: Beispiel für Klassifikation

geringVanm40

hochCoupém40

…………

geringVanm24

geringCoupéw38

hochCoupém19

geringVanw22

geringCoupéw18

geringVanw45

SchadenAutotypGeschlecht

Alter Geschlecht

Alter

Autotyp

GeringesRisiko

hohesRisiko

GeringesRisiko

hohesRisiko

männlich weiblich

Coupé Van

> 35<=35

Page 45: Datenbanksysteme 2013 - uni-osnabrueck.dedbs/2013/PDF/dbs2013-07-02.pdf · 2013. 7. 1. · 1 Datenbanksysteme 2013 Kapitel 16: Objektorientierte Datenbanken Vorlesung vom 02.07.2013

45

Datamining: Beispiel für Assoziationen

Scanner555

Toner555

PC555

Papier555

Drucker555

PC444

Drucker444

Toner333

Papier333

Drucker333

Scanner222

PC222

Toner111

PC111

Papier111

Drucker111

ProduktTransID

3{Drucker, Papier, PC}{Drucker, Papier, Toner}{Drucker, PC, Toner}{Papier, PC, Toner}

33

32

3

2

{Drucker, Papier}{Drucker, PC}{Drucker, Scanner}{Drucker, Toner}{Papier, PC}{Papier, Scanner}{Papier, Toner}{PC, Scanner}{PC, Toner}{Scanner, Toner}

43423

{Drucker}{Papier}{PC}{Scanner}{Toner}

AnzahlFrequent Itemset-Kandidat