02.06.2013 Aufrufe

DOAG Konferenz 2012 / Brücken bauen im dimensionalen ... - Trivadis

DOAG Konferenz 2012 / Brücken bauen im dimensionalen ... - Trivadis

DOAG Konferenz 2012 / Brücken bauen im dimensionalen ... - Trivadis

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN<br />

1<br />

<strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong><br />

d<strong>im</strong>ensionalen<br />

Modell<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

<strong>DOAG</strong> <strong>Konferenz</strong> <strong>2012</strong><br />

Dani Schnider<br />

<strong>Trivadis</strong> AG<br />

Nürnberg, 22. November <strong>2012</strong>


2<br />

Dani Schnider<br />

Principal Consultant und<br />

DWH/BI Lead Architect<br />

bei <strong>Trivadis</strong> in Zürich<br />

Kursleiter für <strong>Trivadis</strong>-Kurse<br />

über Data Warehousing, SQL<br />

Opt<strong>im</strong>ierung und Oracle<br />

Warehouse Builder<br />

Co-Autor des Buches «Data<br />

Warehousing mit Oracle»<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


<strong>Trivadis</strong> makes IT easier.<br />

3<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

11 <strong>Trivadis</strong> Niederlassungen in CH, DE und AT mit<br />

über 650 Mitarbeitenden<br />

Finanziell unabhängig und nachhaltig profitabel<br />

Umsatz CHF 104 / EUR 84 Mio.<br />

Dienstleistungen für über 800 Kunden in mehr als<br />

1‘900 Projekten<br />

Über 200 Service Level Agreements<br />

Mehr als 4'000 Trainingsteilnehmer<br />

Forschungs- und Entwicklungsbudget: CHF 5.0 /<br />

EUR 4 Mio.


Application Development<br />

Business Intelligence<br />

Business Integration Services<br />

Infrastructure Engineering<br />

Managed Services<br />

Training<br />

Toolbox<br />

- standardisiert<br />

- generiert<br />

- automatisiert<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

Infrastructure<br />

Care<br />

- opt<strong>im</strong>iert<br />

- nachhaltig<br />

- modular<br />

Compliance<br />

- übersetzt<br />

- opt<strong>im</strong>iert<br />

- umfassend<br />

Application Care<br />

- planbar<br />

- effizient<br />

- nachhaltig<br />

biGenius<br />

- schnell<br />

- einfach<br />

- umfassend<br />

Comprehensive<br />

Application<br />

Development<br />

- unabhängig<br />

- kompetent<br />

- vollständig


Beispiel 1: Star Schema für <strong>DOAG</strong> <strong>Konferenz</strong><br />

DIM_DATE<br />

DIM_TIME<br />

DIM_ROOM<br />

5<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

FCT_ATTENDEES<br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_STREAM<br />

DIM_SESSION<br />

331 (...) Alfred Schlaucher<br />

342 (...) Peter Welker<br />

328 (...) Bernhard Rosenberger<br />

333 (...) Dr. Andrea Kennel<br />

341 (...) Holger Huck, Mircea Bobei<br />

336 (...) Reiner Z<strong>im</strong>mermann<br />

337 (...) Dr. Holger Friedrich<br />

356 (...) Dani Schnider<br />

358 (...) Dani Schnider<br />

350 (...) Andreas Nobbmann


Mehrfache Attribute in D<strong>im</strong>ensionen<br />

Lösungsansätze:<br />

Komma-separierte Liste?<br />

Mehrere Attribute SPEAKER_1, SPEAKER_2?<br />

Separate D<strong>im</strong>ension DIM_SPEAKER?<br />

Einschränkung auf einen (Haupt-)Referenten?<br />

Problemstellungen:<br />

L<strong>im</strong>itierung in der Anzahl<br />

Vorträge mit 3, 4, 5 Referenten?<br />

Komplexe Abfragen<br />

Alle Vorträge, bei denen Peter Welker einer der Referenten ist?<br />

6<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


Alternativen?<br />

DIM_DATE<br />

DIM_TIME<br />

DIM_ROOM<br />

7<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

FCT_ATTENDEES<br />

...<br />

SPEAKER_ID_1<br />

SPEAKER_ID_2<br />

...<br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_STREAM<br />

DIM_SPEAKER<br />

SPEAKER_ID<br />

TITLE<br />

FIRSTNAME<br />

LASTNAME<br />

COMPANY<br />

DIM_SESSION<br />

SESSION_ID<br />

TITLE<br />

ABSTRACT<br />

SPEAKER_1<br />

SPEAKER_2


8<br />

Multi-Valued Bridge Tables<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


Multi-Valued Attribute Bridge Table<br />

9<br />

FCT_ATTENDEES<br />

DIM_SESSION<br />

331 (...)<br />

342 (...)<br />

328 (...)<br />

333 (...)<br />

341 (...)<br />

336 (...)<br />

337 (...)<br />

356 (...)<br />

358 (...)<br />

350 (...)<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

BRG_SESSION<br />

_SPEAKER<br />

331 101<br />

342 102<br />

328 103<br />

333 104<br />

341 105<br />

341 106<br />

336 107<br />

337 108<br />

356 109<br />

358 109<br />

350 110<br />

Bridge Table<br />

DIM_SPEAKER<br />

101 Alfred Schlaucher<br />

102 Peter Welker<br />

103 Bernhard Rosenberger<br />

104 Dr. Andrea Kennel<br />

105 Holger Huck<br />

106 Mircea Bobei<br />

107 Reiner Z<strong>im</strong>mermann<br />

108 Dr. Holger Friedrich<br />

109 Dani Schnider<br />

110 Andreas Nobbmann


Multi-Valued D<strong>im</strong>ension Bridge Table<br />

10<br />

FCT_ATTENDEES<br />

SESS SG #Att.<br />

331 1 64<br />

342 2 82<br />

328 3 74<br />

333 4 57<br />

341 5 70<br />

336 6 81<br />

332 7 49<br />

356 8 50<br />

358 8 60<br />

350 9 78<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_SESSION<br />

BRG_SPEAKER<br />

_GROUP<br />

1 101<br />

2 102<br />

3 103<br />

4 104<br />

5 105<br />

5 106<br />

6 107<br />

7 108<br />

8 109<br />

9 110<br />

Bridge Table<br />

DIM_SPEAKER<br />

101 Alfred Schlaucher<br />

102 Peter Welker<br />

103 Bernhard Rosenberger<br />

104 Dr. Andrea Kennel<br />

105 Holger Huck<br />

106 Mircea Bobei<br />

107 Reiner Z<strong>im</strong>mermann<br />

108 Dr. Holger Friedrich<br />

109 Dani Schnider<br />

110 Andreas Nobbmann


Eigenschaften von Bridge Tables<br />

Vorteile: Flexibilität<br />

Vollständige Abbildung der fachlichen Zusammenhänge möglich<br />

Keine L<strong>im</strong>itierung der Anzahl Werte<br />

Nachteile: Komplexität<br />

n-zu-n Beziehung<br />

Hohe Komplexität bei ETL (v.a. SCD2)<br />

Risiko von Mehrfachzählungen<br />

Komplexe Abfragen für Endanwender<br />

11<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


El<strong>im</strong>inierung der n-zu-n Beziehung<br />

12<br />

FCT_ATTENDEES<br />

SESS SG #Att.<br />

331 1 64<br />

342 2 82<br />

328 3 74<br />

333 4 57<br />

341 5 70<br />

336 6 81<br />

332 7 49<br />

356 8 50<br />

358 8 60<br />

350 9 78<br />

DIM_SPEAKER_GROUP<br />

1<br />

2<br />

3<br />

...<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_SESSION<br />

BRG_SPEAKER<br />

_GROUP<br />

1 101<br />

2 102<br />

3 103<br />

4 104<br />

5 105<br />

5 106<br />

6 107<br />

7 108<br />

8 109<br />

9 110<br />

DIM_SPEAKER<br />

101 Alfred Schlaucher<br />

102 Peter Welker<br />

103 Bernhard Rosenberger<br />

104 Dr. Andrea Kennel<br />

105 Holger Huck<br />

106 Mircea Bobei<br />

107 Reiner Z<strong>im</strong>mermann<br />

108 Dr. Holger Friedrich<br />

109 Dani Schnider<br />

110 Andreas Nobbmann


ETL-Logik für Bridge Tables: SCD Typ 1<br />

Änderungen in D<strong>im</strong>ensionstabelle<br />

Alten Attributwert überschreiben<br />

Änderungen in Bridge Table (Gruppenzugehörigkeiten)<br />

Einfügen von neuen Gruppenmitgliedern<br />

Löschen(!) von ungültigen Gruppenmitgliedern<br />

ev. Anpassung der Gewichtung (allocation factor)<br />

13<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


ETL-Logik für Bridge Tables: SCD Typ 2<br />

Änderungen in D<strong>im</strong>ensionstabelle<br />

Neue Version in D<strong>im</strong>ensionstabelle einfügen<br />

Neue Versionen für alle Gruppenmitglieder in Bridge Table einfügen<br />

Änderungen in Bridge Table (Gruppenzugehörigkeiten)<br />

Neue Version der Gruppe in Bridge Table einfügen<br />

Neue Versionen für alle Gruppenmitglieder in Bridge Table einfügen<br />

ev. Anpassung der Gewichtung (allocation factor) in neuer Version<br />

Bei Attribute Bridge Table ev. neue Version in D<strong>im</strong>ensionstabelle<br />

Achtung!<br />

Bridge Table wächst sehr rasch!<br />

14<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


ETL-Logik für Bridge Tables: SCD Typ 2 – Beispiel<br />

BRG_SPEAKER_GROUP<br />

BRG_SPEAKER_GROUP<br />

1 1 101 101<br />

2 2 102 102<br />

3 3 103 103<br />

4 4 104 104<br />

5 5 105 105 12.06.<strong>2012</strong> 12.06.<strong>2012</strong> 10.07.<strong>2012</strong><br />

31.12.9999<br />

10.07.<strong>2012</strong><br />

5 5 106 106 12.06.<strong>2012</strong> 12.06.<strong>2012</strong> 10.07.<strong>2012</strong><br />

31.12.9999<br />

10.07.<strong>2012</strong><br />

6 6 107 107<br />

7 7 108 108<br />

8 8 109 109<br />

9 9 110 110<br />

10 111 10.07.<strong>2012</strong> 31.12.9999<br />

24.09.<strong>2012</strong><br />

10 106 10.07.<strong>2012</strong> 31.12.9999<br />

24.09.<strong>2012</strong><br />

11 111 24.09.<strong>2012</strong> 31.12.9999<br />

FCT_ATTENDEES<br />

15<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_SPEAKER<br />

101 Alfred Schlaucher<br />

102 Peter Welker<br />

103 Bernhard Rosenberger<br />

104 Dr. Andrea Kennel<br />

105 Holger Huck 12.06.<strong>2012</strong> 31.12.9999<br />

10.07.<strong>2012</strong><br />

106 Mircea Bobei 12.06.<strong>2012</strong> 31.12.9999<br />

107 Reiner Z<strong>im</strong>mermann<br />

108 Dr. Holger Friedrich<br />

109 Dani Schnider<br />

110 Andreas Nobbmann<br />

111 Holger Huck (V2) 10.07.<strong>2012</strong> 31.12.9999


Anzahl Teilnehmer pro Referent<br />

16<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_SESSION<br />

SELECT d.speaker_name<br />

, SUM(f.num_attendees)<br />

FCT_ATTENDEES<br />

FROM<br />

SESS<br />

fct_attendees<br />

SG #Att.<br />

f<br />

JOIN<br />

331<br />

brg_speaker_group<br />

1 64<br />

b ON (b.speaker_group_id = f.speaker_group_id)<br />

JOIN<br />

342<br />

d<strong>im</strong>_speaker<br />

2 82<br />

d ON (d.speaker_id = b.speaker_id)<br />

GROUP<br />

328<br />

BY<br />

3<br />

d.speaker_name BRG_SPEAKER<br />

74<br />

_GROUP<br />

DIM_SPEAKER<br />

333 4 57<br />

1 101<br />

101 Alfred Schlaucher<br />

341 5 70<br />

2 102<br />

102 Peter Welker<br />

336 6 81<br />

3 103<br />

103 Bernhard Rosenberger<br />

332 7 49<br />

4 104<br />

104 Dr. Andrea Kennel<br />

356 8 50<br />

5 105<br />

105 Holger Huck<br />

358 8 60<br />

5 106<br />

106 Mircea Bobei<br />

350 9 78<br />

6 107<br />

107 Reiner Z<strong>im</strong>mermann<br />

7 108<br />

108 Dr. Holger Friedrich<br />

8 109<br />

109 Dani Schnider<br />

9 110<br />

110 Andreas Nobbmann<br />

Holger Huck 70<br />

Mircea Bobei 70<br />

Dani Schnider 110


Anzahl Teilnehmer pro Firma der Referenten<br />

17<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_SESSION<br />

SELECT d.company_name<br />

, SUM(f.num_attendees)<br />

FCT_ATTENDEES<br />

FROM<br />

SESS<br />

fct_attendees<br />

SG #Att.<br />

f<br />

JOIN<br />

331<br />

brg_speaker_group<br />

1 64<br />

b ON (b.speaker_group_id = f.speaker_group_id)<br />

JOIN<br />

342<br />

d<strong>im</strong>_speaker<br />

2 82<br />

d ON (d.speaker_id = b.speaker_id)<br />

GROUP<br />

328<br />

BY<br />

3<br />

d.company_name<br />

BRG_SPEAKER<br />

74<br />

_GROUP<br />

DIM_SPEAKER<br />

333 4 57<br />

1 101<br />

101 Alfred Schlaucher<br />

341 5 70<br />

2 102<br />

102 Peter Welker<br />

336 6 81<br />

3 103<br />

103 Bernhard Rosenberger<br />

332 7 49<br />

4 104<br />

104 Dr. Andrea Kennel<br />

356 8 50<br />

5 105<br />

105 Holger Huck<br />

358 8 60<br />

5 106<br />

106 Mircea Bobei<br />

350 9 78<br />

6 107<br />

107 Reiner Z<strong>im</strong>mermann<br />

<strong>Trivadis</strong> 340<br />

7 108<br />

8 109<br />

108 Dr. Holger Friedrich<br />

109 Dani Schnider<br />

9 110<br />

110 Andreas Nobbmann<br />

<strong>Trivadis</strong> 410


Vermeidung von Mehrfachzählungen: Gewichtung<br />

18<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_SESSION<br />

SELECT d.company_name<br />

, SUM(f.num_attendees * b.allocation_factor)<br />

FCT_ATTENDEES<br />

FROM<br />

SESS<br />

fct_attendees<br />

SG #Att.<br />

f<br />

JOIN<br />

331<br />

brg_speaker_group<br />

1 64<br />

b ON (b.speaker_group_id = f.speaker_group_id)<br />

JOIN<br />

342<br />

d<strong>im</strong>_speaker<br />

2 82<br />

d ON (d.speaker_id = b.speaker_id)<br />

GROUP<br />

328<br />

BY<br />

3<br />

d.company_name BRG_SPEAKER<br />

74<br />

_GROUP<br />

DIM_SPEAKER<br />

333 4 57<br />

1 101 1.0<br />

101 Alfred Schlaucher<br />

341 5 70<br />

2 102 1.0<br />

102 Peter Welker<br />

336 6 81<br />

3 103 1.0<br />

103 Bernhard Rosenberger<br />

332 7 49<br />

4 104 1.0<br />

104 Dr. Andrea Kennel<br />

356 8 50<br />

5 105 0.5<br />

105 Holger Huck<br />

358 8 60<br />

5 106 0.5<br />

106 Mircea Bobei<br />

350 9 78<br />

6 107 1.0<br />

107 Reiner Z<strong>im</strong>mermann<br />

7 108 1.0<br />

SELECT d.speaker_name<br />

108 Dr. Holger Friedrich<br />

, SUM(f.num_attendees)<br />

8 109 1.0<br />

109 Dani Schnider<br />

9 110 1.0<br />

FROM fct_attendees f<br />

110 Andreas Nobbmann<br />

JOIN brg_speaker_group b ON (b.speaker_group_id = f.speaker_group_id)<br />

JOIN d<strong>im</strong>_speaker d ON (d.speaker_id = b.speaker_id)<br />

GROUP BY d.speaker_name


Vereinfachung der Abfragen: View für Hauptreferent<br />

19<br />

FCT_ATTENDEES<br />

SESS SG #Att.<br />

331 1 64<br />

342 2 82<br />

328 3 74<br />

333 4 57<br />

341 5 70<br />

336 6 81<br />

332 7 49<br />

356 8 50<br />

358 8 60<br />

350 9 78<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_SESSION<br />

BRG_SPEAKER<br />

_GROUP<br />

1 101 Y<br />

2 102 Y<br />

3 103 Y<br />

4 104 Y<br />

5 105 Y<br />

5 106 N<br />

6 107 Y<br />

7 108 Y<br />

8 109 Y<br />

9 110 Y<br />

V_DIM_MAIN_SPEAKER<br />

DIM_SPEAKER<br />

101 Alfred Schlaucher<br />

102 Peter Welker<br />

103 Bernhard Rosenberger<br />

104 Dr. Andrea Kennel<br />

105 Holger Huck<br />

106 Mircea Bobei<br />

107 Reiner Z<strong>im</strong>mermann<br />

108 Dr. Holger Friedrich<br />

109 Dani Schnider<br />

110 Andreas Nobbmann<br />

WHERE b.pr<strong>im</strong>ary_flag = 'Y'


Vereinfachung der Abfragen: Zusätzliche Beziehung<br />

FCT_ATTENDEES<br />

SESS Main SG #Att.<br />

331 101 1 64<br />

342 102 2 82<br />

328 103 3 74<br />

333 104 4 57<br />

341 105 5 70<br />

336 107 6 81<br />

332 108 7 49<br />

356 109 8 50<br />

358 109 8 60<br />

350 110 9 78<br />

20<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

Main Speaker<br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_SESSION<br />

BRG_SPEAKER<br />

_GROUP<br />

DIM_SPEAKER<br />

101 Alfred Schlaucher<br />

102 Peter Welker<br />

103 Bernhard Rosenberger<br />

104 Dr. Andrea Kennel<br />

105 Holger Huck<br />

106 Mircea Bobei<br />

107 Reiner Z<strong>im</strong>mermann<br />

108 Dr. Holger Friedrich<br />

109 Dani Schnider<br />

110 Andreas Nobbmann


21<br />

Hierarchy Bridge Tables<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


Beispiel 2: Mitarbeiterumsatz einer Beratungsfirma<br />

22<br />

DIM_DATE<br />

DIM_PROJECT<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

FCT_REVENUE<br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_CUSTOMER<br />

Rekursive<br />

Hierarchie<br />

DIM_EMPLOYEE


Rekursive Mitarbeiterhierarchie<br />

23<br />

DIM_EMPLOYEE<br />

7499<br />

ALLEN<br />

7521<br />

WARD<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

7698<br />

BLAKE<br />

7654<br />

MARTIN<br />

7844<br />

TURNER<br />

7900<br />

JAMES<br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

7839<br />

KING<br />

7782<br />

CLARK<br />

7934<br />

MILLER<br />

7902<br />

FORD<br />

7369<br />

SMITH<br />

7566<br />

JONES<br />

7788<br />

SCOTT<br />

7876<br />

ADAMS


Implementation mittels Self-Relationship (Parent-Child)<br />

Hierarchische Abfrage in SQL<br />

SELECT emp_id, name, parent_emp_id<br />

FROM d<strong>im</strong>_employee<br />

START WITH name = 'Jones'<br />

CONNECT BY PRIOR emp_id = parent_emp_id<br />

Nachteile<br />

Von vielen BI Tools nicht unterstützt<br />

Komplex für Endanwender<br />

Oracle-spezifisch<br />

ETL-Logik für Initial Load<br />

24<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

DIM_EMPLOYEE


Implementation als flache D<strong>im</strong>ensionstabelle<br />

25<br />

DIM_EMPLOYEE<br />

EMP_ID NAME LEVEL_1_ID LEVEL_2_ID LEVEL_3_ID LEVEL_4_ID<br />

7839 King 7839 7839 7839 7839<br />

7698 Blake 7839 7698 7698 7698<br />

7499 Allen 7839 7698 7499 7499<br />

7521 Ward 7839 7698 7521 7521<br />

7654 Martin 7839 7698 7654 7654<br />

7844 Turner 7839 7698 7844 7844<br />

7900 James 7839 7698 7900 7900<br />

7782 Clark 7839 7782 7782 7782<br />

7934 Miller 7839 7782 7934 7934<br />

7566 Jones 7839 7566 7566 7566<br />

7902 Ford 7839 7566 7902 7902<br />

7369 Smith 7839 7566 7902 7369<br />

7788 Scott 7839 7566 7788 7788<br />

7876 Adams 7839 7566 7788 7876<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


Implementation als Hierarchy Bridge Table<br />

26<br />

FCT_REVENUE<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

BRG_EMP_HIERARCHY<br />

UPPER_ID LOWER_ID LEVELS<br />

7839 7839 0<br />

7839 7698 1<br />

7839 7499 2<br />

7839 7521 2<br />

7839 7654 2<br />

7839 7844 2<br />

7839 7900 2<br />

7839 7782 1<br />

7839 7934 2<br />

7839 7566 1<br />

7839 7902 2<br />

7839 7369 3<br />

7839 7788 2<br />

7839 7876 3<br />

7698 7698 0<br />

...<br />

Bridge Table<br />

DIM_EMPLOYEE<br />

7839 King<br />

7566 Jones<br />

7788 Scott<br />

7876 Adams<br />

7902 Ford<br />

7369 Smith<br />

7698 Blake<br />

7499 Allen<br />

7521 Ward<br />

7654 Martin<br />

7844 Turner<br />

7900 James<br />

7782 Clark<br />

7934 Miller


El<strong>im</strong>inierung der n-zu-n Beziehung<br />

27<br />

FCT_REVENUE<br />

...<br />

EMP_ID<br />

...<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

DIM_EMPLOYEE<br />

EMP_ID<br />

NAME<br />

JOB<br />

DEPARTMENT<br />

...<br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

BRG_EMP_HIERARCHY<br />

LOWER_ID<br />

UPPER_ID<br />

LEVELS


Umsatz aller Mitarbeiter unter Mr. Jones<br />

28<br />

7902<br />

FORD<br />

7369<br />

SMITH<br />

7566<br />

JONES<br />

7788<br />

SCOTT<br />

7876<br />

ADAMS<br />

FCT_REVENUE<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

BRG_EMP_HIERARCHY<br />

UPPER_ID LOWER_ID LEVELS<br />

...<br />

7782 7782 0<br />

7782 7934 1<br />

7934 7934 0<br />

7566 7566 0<br />

7566 7902 1<br />

7566 7369 2<br />

7566 7788 1<br />

7566 7876 2<br />

7902 7902 0<br />

7902 7369 1<br />

7369 7369 0<br />

7788 7788 0<br />

...<br />

DIM_EMPLOYEE<br />

7839 King<br />

7566 Jones<br />

7788 Scott<br />

7876 Adams<br />

7902 Ford<br />

7369 Smith<br />

7698 Blake<br />

7499 Allen<br />

7521 Ward<br />

7654 Martin<br />

7844 Turner<br />

7900 James<br />

7782 Clark<br />

7934 Miller


Umsatz von Adams und all seiner Vorgesetzten<br />

29<br />

7839<br />

KING<br />

7566<br />

JONES<br />

7788<br />

SCOTT<br />

7876<br />

ADAMS<br />

FCT_REVENUE<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

BRG_EMP_HIERARCHY<br />

UPPER_ID LOWER_ID LEVELS<br />

7839 7839 0<br />

7839 7698 1<br />

...<br />

7839 7788 2<br />

7839 7876 3<br />

...<br />

7566 7788 1<br />

7566 7876 2<br />

...<br />

7369 7369 0<br />

7788 7788 0<br />

7788 7876 1<br />

7876 7876 0<br />

...<br />

DIM_EMPLOYEE<br />

7839 King<br />

7566 Jones<br />

7788 Scott<br />

7876 Adams<br />

7902 Ford<br />

7369 Smith<br />

7698 Blake<br />

7499 Allen<br />

7521 Ward<br />

7654 Martin<br />

7844 Turner<br />

7900 James<br />

7782 Clark<br />

7934 Miller


SQL-Abfragen auf Hierarchy Bridge Table<br />

30<br />

7902<br />

FORD<br />

7369<br />

SMITH<br />

7566<br />

JONES<br />

7788<br />

SCOTT<br />

7876<br />

ADAMS<br />

7839<br />

KING<br />

7566<br />

JONES<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

7788<br />

SCOTT<br />

7876<br />

ADAMS<br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

SELECT SUM(f.amount)<br />

FROM fct_revenue f<br />

JOIN brg_emp_hierarchy b<br />

ON (b.lower_id = f.emp_id)<br />

JOIN d<strong>im</strong>_employee d<br />

ON (d.emp_id = b.upper_id)<br />

WHERE d.name = 'Jones'<br />

SELECT SUM(f.amount)<br />

FROM fct_revenue f<br />

JOIN brg_emp_hierarchy b<br />

ON (b.upper_id = f.emp_id)<br />

JOIN d<strong>im</strong>_employee d<br />

ON (d.emp_id = b.lower_id)<br />

WHERE d.name = 'Adams'


31<br />

Fazit<br />

Bridge Tables<br />

sind flexibel,<br />

können aber<br />

gefährlich sein<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong>


BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN<br />

32<br />

VIELEN DANK.<br />

<strong>2012</strong> © <strong>Trivadis</strong><br />

<strong>DOAG</strong> - <strong>Brücken</strong> <strong>bauen</strong> <strong>im</strong> d<strong>im</strong>ensionalen Modell<br />

22. November <strong>2012</strong><br />

<strong>Trivadis</strong> AG<br />

Dani Schnider<br />

Europa-Strasse 5<br />

CH-8152 Glattbrugg/Zürich<br />

Schweiz<br />

Tel. +41 44 808 70 20<br />

Fax +41 44 808 70 21<br />

info@trivadis.com<br />

www.trivadis.com

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!