02.11.2013 Aufrufe

Diplombericht Master Thesis

Diplombericht Master Thesis

Diplombericht Master Thesis

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.

<strong>Diplombericht</strong> <strong>Master</strong> <strong>Thesis</strong><br />

Lightweight DWH Interface<br />

in der Firma Emmi Schweiz AG<br />

Abstract<br />

Diese Arbeit beinhaltet das Entwickeln einer Schnittstellentechnik, welche die Daten von<br />

einem Quellsystem in ein Datawarehouse überträgt. Hauptziel ist, die heutige Belastung der<br />

Quellsysteme um mindestens 70% zu verringern. Auch soll der Konfigurationsaufwand neuer<br />

Schnittstellen minimiert werden.<br />

Klasse.Nr / Datum: MAS-07-01.21 / 27. August 2009<br />

Experte:<br />

Betreuer:<br />

Student:<br />

Thomas Glauser, Lährenbühlstrasse 14b , 8112 Otelfingen<br />

Tel. P: +41 79 217 66 82<br />

Tel. G: +41 52 261 57 58<br />

E-Mail: thomas.glauser.di@bluewin.ch<br />

Urs Müller, Forelstrasse 1, 3072 Ostermundigen<br />

Tel. G: +41 31 930 24 84<br />

E-Mail: urs-b.mueller@emmi.ch<br />

Stefan Lüthi, Allmendingenstrasse 16, 3608 Thun<br />

Tel. P: +41 79 458 46 84<br />

Tel. G: +41 31 930 24 88<br />

E-Mail: stefan.luethi@emmi.ch<br />

Keywords:<br />

10.09.2009<br />

Datenbank, Datawarehouse, Oracle, ETL, Schnittstelle<br />

Seite 1 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Änderungskontrolle<br />

Version Datum Autor Bemerkungen<br />

0.1 27.08.2009 Stefan Lüthi Erstellung<br />

0.2 30.08.2009 Stefan Lüthi Testing & Planung<br />

0.3 06.09.2009 Stefan Lüthi Anhang & Change Requests<br />

0.4 08.09.2009 Stefan Lüthi Erfahrungen und Schlusswort<br />

1.0 10.11.2009 Stefan Lüthi Fertigstellung<br />

Review / Prüfung<br />

Version Prüfdatum Prüfende Stelle Bemerkungen<br />

Referenzierte Dokumente<br />

Version<br />

Dokument<br />

10.09.2009 Seite 2 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Inhaltsverzeichnis<br />

1 Allgemeines......................................................................................................... 6<br />

1.1 Dokument ........................................................................................................ 6<br />

1.1.1 Zweck.......................................................................................................... 6<br />

1.1.2 Umfang........................................................................................................ 6<br />

1.1.3 Leserkreis.................................................................................................... 6<br />

1.1.4 Übersicht..................................................................................................... 6<br />

1.1.5 Begriffe und Definitionen ............................................................................. 6<br />

1.1.6 Nomenklatur................................................................................................ 6<br />

2 Projektübersicht.................................................................................................. 7<br />

2.1 Allgemeine Beschreibung ................................................................................ 7<br />

2.1.1 ETL Prozess................................................................................................ 7<br />

2.1.2 Ladeprozess kleine Tabellen ....................................................................... 8<br />

2.1.3 Ladeprozess grosser Tabellen ................................................................... 8<br />

2.2 Problemstellung............................................................................................... 9<br />

2.3 Projektziele...................................................................................................... 9<br />

2.4 Mögliche Lösungen........................................................................................ 10<br />

2.4.1 LogMiner (erste Vision) ............................................................................. 10<br />

2.4.2 Timestamp / Change Key Column ............................................................. 11<br />

2.4.3 Tabel differencing...................................................................................... 11<br />

2.4.4 Oracle Change Data Capture .................................................................... 12<br />

2.5 Entscheid....................................................................................................... 13<br />

2.5.1 Erklärung zur Bewertung ........................................................................... 13<br />

3 Analyse .............................................................................................................. 15<br />

3.1 Change Data Capture.................................................................................... 15<br />

3.1.1 Architektur ................................................................................................. 15<br />

3.1.1.1 Publisher......................................................................................... 16<br />

3.1.1.2 Source Tabelle................................................................................ 16<br />

3.1.1.3 Change Source............................................................................... 16<br />

3.1.1.4 Change Set..................................................................................... 16<br />

3.1.1.5 Change Table ................................................................................. 16<br />

3.1.1.6 Subscriber....................................................................................... 16<br />

3.1.2 Change Data Capture Modus .................................................................... 17<br />

3.2 Applikation..................................................................................................... 18<br />

3.2.1 Pakete....................................................................................................... 18<br />

3.2.2 Use Case Diagramm (Publish) .................................................................. 19<br />

3.2.3 Übersicht Use Cases (Publish).................................................................. 20<br />

3.2.4 Aktoren...................................................................................................... 20<br />

3.2.5 Detailbeschreibung Use Cases (Publish)................................................... 21<br />

3.2.5.1 Programm starten ........................................................................... 21<br />

3.2.5.2 Login............................................................................................... 22<br />

3.2.5.3 Destinationsystem konfigurieren ..................................................... 23<br />

3.2.5.4 Change Source konfigurieren.......................................................... 24<br />

3.2.5.5 Change Source löschen.................................................................. 26<br />

3.2.5.6 Change Set konfigurieren ............................................................... 28<br />

3.2.5.7 Change Set löschen........................................................................ 30<br />

3.2.5.8 Changetabelle ändern..................................................................... 32<br />

3.2.5.9 Changetabelle purgen..................................................................... 34<br />

10.09.2009 Seite 3 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.10 Changetabelle erstellen ................................................................ 35<br />

3.2.5.11 Change Tabelle löschen ............................................................... 38<br />

3.2.5.12 Sourcesystem konfigurieren.......................................................... 39<br />

3.2.6 Use Case Diagramm (Subscribe) .............................................................. 40<br />

3.2.7 Übersicht Use Cases (Subscribe).............................................................. 40<br />

3.2.8 Spezifikation GUI....................................................................................... 41<br />

3.2.8.1 Tree View........................................................................................ 41<br />

3.2.8.2 Menu Bar ........................................................................................ 41<br />

3.2.8.3 Toolbar............................................................................................ 42<br />

3.2.8.4 Kontext Menu auf TreeView ............................................................ 42<br />

3.2.8.5 Statusbar ........................................................................................ 42<br />

4 Design ................................................................................................................ 43<br />

4.1 Applikation..................................................................................................... 43<br />

4.1.1 Übersicht Struktur...................................................................................... 43<br />

4.1.2 Source Code ............................................................................................. 44<br />

4.2 Datenbank ..................................................................................................... 45<br />

4.2.1 DB Model DWH (Destination System) ....................................................... 45<br />

4.2.1.1 all_change_sources ........................................................................ 45<br />

4.2.1.2 all_change_sets.............................................................................. 45<br />

4.2.1.3 all_change_tables ........................................................................... 45<br />

4.2.1.4 all_published_columns.................................................................... 45<br />

4.2.1.5 all_tables......................................................................................... 46<br />

4.2.2 DB Model Source Datenbank .................................................................... 46<br />

4.2.2.1 all_tab_columns .............................................................................. 46<br />

4.2.2.2 all_tables......................................................................................... 46<br />

4.2.2.3 all_capture_prepared_tables........................................................... 46<br />

5 Testing ............................................................................................................... 47<br />

5.1 Ziel des Testens ............................................................................................ 47<br />

5.2 Übersicht der Tests........................................................................................ 47<br />

5.3 Testablauf...................................................................................................... 47<br />

5.3.1 Ablauf........................................................................................................ 47<br />

5.3.2 Test Dokumentation .................................................................................. 47<br />

5.3.3 Testmethoden ........................................................................................... 48<br />

5.3.4 Testfälle..................................................................................................... 48<br />

5.4 System Test................................................................................................... 48<br />

5.5 Usability Test................................................................................................. 48<br />

5.6 Testergebnisse.............................................................................................. 49<br />

5.6.1 Systemtests............................................................................................... 49<br />

5.6.2 Usabilitytests ............................................................................................. 49<br />

6 Planung und Zeitmanagement......................................................................... 50<br />

6.1 Vorgehensmodell........................................................................................... 50<br />

6.2 Zeitmanagement............................................................................................ 51<br />

6.3 Projektplan / Zeitplan und Meilensteine ......................................................... 52<br />

6.4 Termine ......................................................................................................... 53<br />

6.5 Projektmanagement....................................................................................... 53<br />

6.6 Meetings / Reviews /Statusmeldungen .......................................................... 53<br />

6.6.1 Meetings.................................................................................................... 53<br />

6.7 Reviews......................................................................................................... 53<br />

6.7.1 Statusmeldungen ...................................................................................... 53<br />

10.09.2009 Seite 4 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

7 Erfüllung der Anforderungen und Ziele .......................................................... 54<br />

7.1 Nicht funktionale Anforderungen.................................................................... 54<br />

7.2 Funktionale Anforderungen............................................................................ 55<br />

7.2.1 Publisher Teil............................................................................................. 55<br />

7.2.2 Subscriber Teil .......................................................................................... 55<br />

7.3 Ziele .............................................................................................................. 56<br />

8 Erfahrungen....................................................................................................... 57<br />

8.1 Resultat ......................................................................................................... 57<br />

8.2 Ausblick ......................................................................................................... 57<br />

8.3 Schlusswort ................................................................................................... 58<br />

9 Installations- und Betriebshandbuch .............................................................. 59<br />

9.1 Technische Umgebung.................................................................................. 59<br />

9.1.1 Client......................................................................................................... 59<br />

9.1.2 Datenbank................................................................................................. 59<br />

9.1.2.1 RDBMS........................................................................................... 59<br />

9.1.2.2 Server Umgebung........................................................................... 59<br />

9.2 Installation ..................................................................................................... 60<br />

9.2.1 Datenbank................................................................................................. 60<br />

9.2.1.1 Konfiguration Change Data Capture ............................................... 60<br />

9.2.1.2 Konfiguration LDI Tool .................................................................... 60<br />

9.2.2 Setup......................................................................................................... 61<br />

9.3 Benutzerhandbuch ........................................................................................ 64<br />

9.3.1 Über LDI.................................................................................................... 64<br />

9.3.2 Startup LDI ................................................................................................ 64<br />

9.3.3 Benutzeroberfläche ................................................................................... 65<br />

9.3.4 TreeView ................................................................................................... 66<br />

9.3.5 Objekte bearbeiten .................................................................................... 67<br />

9.3.6 Changesourcen bearbeiten ....................................................................... 67<br />

9.3.7 Changesets bearbeiten ............................................................................. 68<br />

9.3.8 Changetabellen bearbeiten........................................................................ 69<br />

9.3.8.1 Source Properties ........................................................................... 69<br />

9.3.8.2 Destination Properties..................................................................... 70<br />

9.3.9 Shortcuts................................................................................................... 72<br />

9.3.10 Fehlerbehandlung.................................................................................. 72<br />

10 Change Requests ....................................................................................... 73<br />

11 Anhang ........................................................................................................ 77<br />

11.1 Glossar.......................................................................................................... 77<br />

11.2 Referenzen.................................................................................................... 78<br />

11.3 Tabellenverzeichnis ....................................................................................... 79<br />

11.4 Abbildungsverzeichnis ................................................................................... 79<br />

10.09.2009 Seite 5 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

1 Allgemeines<br />

1.1 Dokument<br />

1.1.1 Zweck<br />

Dieses Dokument ist der <strong>Diplombericht</strong> der <strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21 „Lightweight DWH<br />

Interface“. Es bietet einen Überblick über die gesamte Arbeit und die erstellten Artefakte. Es<br />

soll aufgezeigt werden, welche Arbeiten im Rahmen der Diplomarbeit durchgeführt wurden<br />

und welche Resultate erzielt wurden. Ein wesentlicher Teil setzt sich aus dem Pflichtenheft<br />

und aus der Detailspezifikation zusammen. Zusätzlich werden die dazugehörigen Ergebnisse<br />

dokumentiert. Auch werden die im Laufe des Projekts aufgetretenen Änderungsanfragen<br />

aufgeführt und es wird ein Ausblick auf zukünftig geplante Versionen gegeben.<br />

1.1.2 Umfang<br />

Diese Arbeit wird in der Form einer <strong>Master</strong> <strong>Thesis</strong> vollzogen. Sie bildet einen Teil der<br />

Ausbildung zum <strong>Master</strong> of Advanced Studies in Information Technology (MAS-IT). Der<br />

gesamte Arbeitsaufwand beträgt 360 Stunden (12 ECTS-Punkte) und dauert ein Semester.<br />

1.1.3 Leserkreis<br />

Dieses Dokument richtet sich in erster Linie an den Experten und an den Betreuer.<br />

1.1.4 Übersicht<br />

Dieses Dokument ist wie folgt aufgebaut:<br />

Kapitel 1<br />

Kapitel 2<br />

Kapitel 3<br />

Kapitel 4<br />

Kapitel 5<br />

Kapitel 6<br />

Kapitel 7<br />

Kapitel 8<br />

Kapitel 9<br />

Kapitel 10<br />

Kapitel 11<br />

Vermittelt einen Überblick über das Dokument.<br />

Projektübersicht und Problemstellung<br />

Analyse Change Data Capture und Applikation<br />

Design Applikation und Datenbank<br />

Angaben und Ergebnisse zum Testing<br />

Planung und Zeitmanagement<br />

Übersicht über die Erfüllung der gesteckten Ziele und Anforderungen<br />

Ausblick und Schlusswort zu der Diplomarbeit<br />

Installations- und Betriebshandbuch<br />

Angaben zu den Change Requests<br />

Anhang<br />

1.1.5 Begriffe und Definitionen<br />

Die in diesem Dokument verwendeten Begriffe und Definitionen sind im Glossar beschrieben.<br />

1.1.6 Nomenklatur<br />

Das Dokument ist in Deutsch gehalten. Dort wo es jedoch sinnvoll erscheint, werden die<br />

englischen Originalbegriffe verwendet. Zu Gunsten einer besseren Lesbarkeit wird für<br />

sämtliche Bezeichnungen nur die männliche Form verwendet.<br />

10.09.2009 Seite 6 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

2 Projektübersicht<br />

2.1 Allgemeine Beschreibung<br />

Das Projekt befasste sich mit der Problematik der Übernahme von operativen Daten in den<br />

Staging Bereich eines Datawarehouse.<br />

Die Kapitel 2.1.1 und 2.1.2 zeigen die Ist - Situation dieser Schnittstellen im analysierten<br />

System auf. Das Kapitel 2.1.3 beschreibt die Probleme, welche sich in diesem Bereich stellen<br />

und auch den Anstoss für dieses Projekt gegeben haben.<br />

2.1.1 ETL Prozess<br />

Die Abbildung 1 zeigt den ETL - Prozess in der Emmi Schweiz AG. Dieser folgt immer dem<br />

gleichen Ablauf. Zuerst werden alle benötigten Daten von den Quellsystemen in den<br />

Stagingbereich des DWH übernommen (Punkt 1). Ab dort werden die Daten transformiert und<br />

konvertiert und werden in die verschiedenen Data - Marts geladen (Punkt 2).<br />

Die rot gestreifte Linie markiert den Bereich, in welchem sich dieses Projekt bewegt. Bereiche<br />

ausserhalb der Markierung sind von der geplanten Arbeit nicht betroffen.<br />

relational<br />

dimensional<br />

Quellsysteme<br />

transformation / converting<br />

evaluations<br />

ERP DB<br />

(OLTP)<br />

E1 <strong>Master</strong><br />

landing-zone<br />

Datawarehouse<br />

MIS DB<br />

Oracle 11g R1<br />

Standard Reports<br />

(Microstrategy)<br />

Sales Line<br />

ERP DB<br />

(OLTP)<br />

EFM<br />

1<br />

Staging<br />

2<br />

DWH Bus<br />

Financial<br />

Query<br />

Service<br />

Ad hoc Zugriff<br />

(SQL)<br />

Stammdaten DB<br />

(OLTP)<br />

DWH Bus<br />

ESDS<br />

Procurement<br />

Budget DB<br />

Feedback operationelle<br />

Systeme<br />

(PROCOS)<br />

PROCOS<br />

Abbildung 2-1: ETL Prozess Schema<br />

Metadaten<br />

10.09.2009 Seite 7 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

2.1.2 Ladeprozess kleine Tabellen<br />

Bei der Übernahme von Tabellen mit Records < 30'000'000 in den Stagingbereich, werden<br />

die kompletten Daten bei jeder Übertragung gelöscht und wieder geladen. Die Löschung<br />

erfolgt mit dem Befehl Truncate und ist dadurch sehr schlank gehalten. Der Ladevorgang ist<br />

bei einer grossen Anzahl Records aufwendig.<br />

2.1.3 Ladeprozess grosser Tabellen<br />

Bei der Übernahme von Tabellen mit Records > 30'000'000 in den Stagingbereich, werden<br />

nur Änderungen seit der letzten Übernahme verarbeitet.<br />

Abbildung 2 zeigt den Standardvorgang einer solchen Übernahme.<br />

1. Als erstes wird eine Hilfstabelle gelesen, welche die Primary Keys der gelöschten<br />

Records von der Haupttabelle enthält. Anhand dieses Keys werden auch auf der<br />

Zieltabelle diese Records gelöscht.<br />

2. Anhand einer Spalte, welche das Änderungsdatum enthält, werden die zusätzlichen<br />

oder geänderten Records seit der letzten Übernahme identifiziert. Da diese Spalte<br />

nicht indexiert ist, löst dies jede Nacht einen Full Table Scan aus.<br />

3. Um zu prüfen, ob auch wirklich die Daten auf der Quell- wie auch auf der<br />

Zieldatenbank gleich sind, wird nach jeder Übernahme einen Abgleich gemacht. Dies<br />

wird gemacht, indem man auf einer definierten Spalte eine Summe bildet und diese<br />

beiden Summen vergleicht. Die Vergangenheit hat gezeigt, dass dieser Abgleich<br />

notwendig ist, da schon einige Fehler gefunden wurden.<br />

4. Dies ist ein Trigger, welcher auf der Quelltabelle programmiert werden muss. Dieser<br />

stellt sicher, dass alle Änderungen mit einem korrekten Änderungsdatum versehen<br />

werden. Auch kann durch den Trigger gewährleistet werden, dass gelöschte Records<br />

zu einem späteren Zeitpunkt auf der Zieltabelle via Primary Key auch gelöscht werden<br />

können.<br />

ERP DB<br />

4<br />

PK gelöschte Rows<br />

Quelltabelle<br />

Full Table Scan Summe ausrechnen Summe vergleichen Summe ausrechnen - Full Table Scan<br />

3<br />

2<br />

Stagingbereich DWH<br />

Datawarehouse<br />

MIS DB<br />

Oracle 11g R1<br />

Full Table Scan - Änderungen selektieren - Änderungen übernehmen<br />

Gelöschte Records auch in DWH löschen<br />

1<br />

Delete Tabelle<br />

Zieltabelle<br />

Trigger<br />

Abbildung 2-2: Ladeprozess grösserer Tabellen<br />

10.09.2009 Seite 8 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

2.2 Problemstellung<br />

Durch die aufwendige Übernahme der grossen Tabellen, werden die Quellsysteme derart<br />

belastet, dass der produktive Betrieb während den Übernahmen beeinträchtigt wird.<br />

Abbildung 3 zeigt die Kurve der CPU auf dem Quellsystem während einer Übernahme an<br />

einem Wochenende. Es ist deutlich zu sehen, dass ab ca. 17:00 bis ca. 07:00 die Last<br />

ansteigt. Genau in dieser Zeit wurden die Daten, welche nur wöchentlich übernommen<br />

werden können, übertragen und abgeglichen.<br />

Abbildung 2-3: CPU Kurve Quellsystem<br />

Des Weiteren besteht der Wunsch die Daten mindestens vom Vortag im Datawarehouse<br />

auswerten zu können. Bei dieser Übertragungstechnik ist dies aber nicht möglich, da die<br />

Laufzeit der Schnittstellen bis um ca. 12:00 Mittags dauern würde. Auch darf eine solche<br />

Belastung der Quellsysteme nicht während des Tagesgeschäfts der Emmi AG auftreten, da<br />

dies den Lieferprozess der Firma beeinträchtigt würde.<br />

2.3 Projektziele<br />

Das Ziel dieses Projekts ist eine Schnittstellentechnik zu beschreiben und zu realisieren:<br />

• Welche die Daten im gewünschten Zeitrahmen (max. 2 Stunden für die grössten<br />

Tabellen) in den Staging - Bereich des DWH bringt.<br />

• Welche die Belastung des Quellsystems um mindestens 70% verringert.<br />

• Welche es erlaubt die zukünftigen Schnittstellen mit 50% Aufwand zu realisieren.<br />

• Welche der Stabilität zur jetzigen Technik ebenwürdig ist.<br />

• Welche das weglassen der Trigger auf den Quellsystemen erlaubt.<br />

Um diese Ziele zu erreichen, werden in den folgenden Kapiteln die Lösungsansätze<br />

analysiert und die Anforderungen sowie die Ziele genauer beschrieben.<br />

10.09.2009 Seite 9 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

2.4 Mögliche Lösungen<br />

In diesem Kapitel werden die möglichen Lösungen für das erreichen der Projektziele kurz<br />

beschrieben und verglichen. Danach wird entschieden, welche Technik für das Projekt<br />

geeignet ist. Dieser Entscheid wird die technische Umsetzung des Projekts massiv<br />

beeinflussen. Daher wird diesem Teil genügend Zeit beigemessen. Jede Lösung wird auch<br />

praktisch analysiert und ein schlanker „Proof of Concept“ wird durchgeführt.<br />

2.4.1 LogMiner (erste Vision)<br />

Die erste Idee, wie man die im Kapitel 2.1.3 beschriebenen Probleme lösen könnte, sah wie<br />

folgt aus:<br />

Staging Table<br />

Change Table<br />

Abbildung 2-4: Prozessablauf Vision<br />

Die archivierten Redo Logs der Quelldatenbank, werden auf den Rechner der Zieldatenbank<br />

kopiert. Dort werden mit der bestehenden Oracle Technologie LogMiner alle Änderungen in<br />

eine Zwischentabelle geschrieben. Diese Änderungen werden mittels einer neu<br />

programmierten Applikation gefiltert und aufbereitet. Danach werden die aufbereiteten<br />

Records in die entsprechende Stagingtabelle geschrieben. Jeder Record enthält zusätzliche<br />

wichtige Merkmale wie:<br />

• Änderungsart (Insert, Update, Delete)<br />

• SCN damit die Reihenfolge bestimmt werden kann<br />

• Ein Flag Verarbeitet Ja/Nein<br />

10.09.2009 Seite 10 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

2.4.2 Timestamp / Change Key Column<br />

Diese Methode ist bereits bei den grössten Tabellen umgesetzt und im Kapitel 2.1.3<br />

beschrieben. Sie belastet die Systeme stark und bedeutet einen grossen Aufwand bei der<br />

Programmierung neuer Schnittstellen.<br />

Mit dieser Technik können die Projektziele nicht erreicht werden.<br />

2.4.3 Tabel differencing<br />

Bei dieser Methode, werden die gesamten Daten von der Quelldatenbank zur Zieldatenbank<br />

transportiert. Danach werden sie mittels speziellen SQL’s verglichen (minus). Auch diese<br />

Technik ist sehr belastend für die Systeme. Mittels Datenbanklink kann eine Verbesserung<br />

erzielt werden.<br />

Mit dieser Technik können die Projektziele nicht erreicht werden.<br />

10.09.2009 Seite 11 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

2.4.4 Oracle Change Data Capture<br />

Oracle bietet das Feature „Change Data Capture“ an. Diese Technologie kann in<br />

verschiedenen Modi betrieben werden:<br />

• Synchronus<br />

• Asynchronus HotLog<br />

• Asynchron Distributed HotLog<br />

• Asynchronus HotLog online<br />

• Asynchronus Autolog archive<br />

Für das anstehende Projekt bietet sich „Asynchronus Autolog Archive“ am besten an, da die<br />

Anforderungen ziemlich genau auf die bestehende Umgebung in der Emmi Schweiz AG<br />

passen. Auch ist eine möglichst zeitnahe Übertragung nicht nötig. Des Weiteren belastet<br />

dieser Modus die Systeme am wenigsten.<br />

In diesem Kapitel wird also nur auf den „Asynchronus Autolog Archive“ Modus eingegangen.<br />

Um die Funktionsweise der anderen Modi zu erfahren wird auf das Kapitel 16 im Dokument<br />

Oracle Data Warehousing Guide 11g Release 1 (B28313-02) verwiesen.<br />

Asynchronus Autolog Archive<br />

Dieser Modus beinhaltet einen ziemlich ähnlichen Vorgang wie im Kapitel 2.4.1 beschrieben.<br />

Die Daten werden auch aus den Archivierten Redo Logs gewonnen. Anstelle des LogMiners<br />

steht das Feature Change Data Capture, welches auch die Funktion des Aufbereitens der<br />

Daten beinhaltet. In der Abbildung 5 sieht man ein Übersichtsschema, wie dieser Modus<br />

funktioniert. Eine genaue Beschreibung kann aus dem Dokument Oracle Data Warehousing<br />

Guide 11g Release 1 (B28313-02) entnommen werden.<br />

Abbildung 2-5: Prozessablauf Change Data Capture<br />

10.09.2009 Seite 12 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

2.5 Entscheid<br />

Bei den verschiedenen Lösungsansätzen im Kapitel 2.4 kommen nur die Logminer - Lösung<br />

und das Change Data Capture in Frage. Bei allen Anderen können die gesteckten Ziele nicht<br />

erreicht werden.<br />

Kriterien<br />

Gewicht LogMiner<br />

Change Data<br />

Capture<br />

1 Belastung Quellsystem 9 5 5<br />

2 Belastung Zielsystem 3 3 4<br />

3 Implementationsaufwand / Tabelle 5 2 4<br />

4 Stabilität 7 3 5<br />

5 Supportbarkeit 6 2 4<br />

6 Releasefähigkeit 7 1 4<br />

7 Aufwand 5 2 4<br />

8 Kosten 2 5 5<br />

Resultat 124 194<br />

Tabelle 2-1: Entscheidungstabelle<br />

Aufgrund des Resultats der Entscheidungstabelle wird sich für „Change Data Capture“<br />

entschieden.<br />

2.5.1 Erklärung zur Bewertung<br />

Belastung Quellsystem<br />

Aufgrund der sehr ähnlichen Technologie werden bei beiden Varianten die Quellsysteme<br />

kaum belasten.<br />

Belastung Zielsystem<br />

Da bei der LogMiner Lösung das aufbereiten der Daten programmiert werden muss, gehe ich<br />

nicht davon aus, dass ich dies gleich effizient gestalten könnte wir die Firma Oracle.<br />

Implementationsaufwand / Tabelle<br />

„Change Data Capture“ stellt einige der gewünschten Funktionen zur Verfügung. Somit kann<br />

die zur Verfügung stehende Zeit auch in die Entwicklung eines GUI investiert werden. Somit<br />

sollte auch das Ziel der einfachen Weiterentwicklung erreicht werden.<br />

Stabilität<br />

Da „Change Data Capture“ ein Standard Feature von Oracle ist und dieses weltweit in Firmen<br />

eingesetzt wird, kann von einer guten Stabilität ausgegangen werden. Bei der selber<br />

entwickelten Variante, wäre das „handeln“ jeglicher Spezialsituationen sicher schwierig<br />

gewesen.<br />

10.09.2009 Seite 13 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Supportbarkeit<br />

Bei der LogMiner Variante ist es schwierig über Jahre das Know-How aufrechtzuerhalten. Da<br />

„Change Data Capture“ ein Standard Feature ist, kann man sich auch bei der Firma Oracle<br />

Unterstützung besorgen.<br />

Releasefähigkeit<br />

Das „Change Data Capture“ Feature wird bei Oracle mit den DB Relases gleichzeitig<br />

ausgeliefert, da es ein Bestandteil der ganzen Software ist. Die eigene Lösung müsste bei<br />

jedem Upgrade der Umgebung neu erweitert und getestet werden.<br />

Aufwand<br />

Beim Aufwand kann gesagt werden, dass eine eigene Entwicklung den Rahmen der<br />

Diplomarbeit gesprengt hätte. Beim „Change Data Capture“ kann die vorgesehene Zeit<br />

voraussichtlich eingehalten werden.<br />

Kosten<br />

Das sowohl LogMiner wie auch „Change Data Capture“ keine Option ist, welche separat<br />

Lizenziert werden muss, dürften sich die Kosten im gleichen Rahmen bewegen.<br />

10.09.2009 Seite 14 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3 Analyse<br />

In diesem Kapitel ist der grösste Teil aus der Detailspezifikation entnommen. Es beschreibt<br />

die Technologie Change Data Capture ein wenig genauer und zeigt, wie die Applikation<br />

geplant wurde.<br />

3.1 Change Data Capture<br />

Change Data Capture ist ein standard Feature von Oracle. Es stellt eine sehr ausgereifte<br />

Technik zur Verfügung, welche die Änderungen von einer Datenbank an eine weitere<br />

Datenbank befördert. Um genaue Details dieser Technik zu erfahren wird auf die<br />

Dokumentation von Oracle (Oracle Data Warehousing Guide 11g Release 1 (B28313-02))<br />

verwiesen. In diesem Kapitel wird nur ein grober Überblick dieser Features gegeben, welche<br />

in dieser Arbeit relevant sind.<br />

3.1.1 Architektur<br />

Grundlegend unterteilt sich die Change Data Capture (CDC) Architektur in zwei Bereiche: in<br />

einen Source - Bereich und einen Staging - Bereich. Der Staging - Bereich ist nicht mit einem<br />

üblichen Staging - Bereich im ETL - Umfeld zu vergleichen. Die Abbildung 3-1 zeigt ein<br />

Überblick der CDC Architektur. Die rote Linie beschreibt die Systemgrenzen dieses Projekts.<br />

In einem späteren Release könnte auch der Subscriber - Teil im GUI verwaltbar gemacht<br />

werden.<br />

Abbildung 3-1: Architektur Change Data Capture<br />

Als Source - Bereich wird hier das operative System bezeichnet, in welchem die relevanten<br />

Datenänderungen stattfinden. Im Staging Bereich werden die Änderungen in einem<br />

10.09.2009 Seite 15 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

sogenannten Publisherbereich abgelegt. Pro Source Tabelle gibt es im Stagingbereich<br />

jeweils eine Änderungstabelle (Change Table).<br />

In den folgenden Kapiteln werden die verschiedenen Teile des Change Data Capture<br />

genauer beschrieben.<br />

3.1.1.1 Publisher<br />

Der Publisher enthält alle Funktionalitäten um, die Datenänderungen im Source - Bereich zu<br />

erkennen und darzustellen. Der Publisher ist ein normaler Datenbank Benutzer, welcher mit<br />

den entsprechenden Rechten ausgestattet sein muss. Dieser Benutzer wird für ein DWH<br />

einmalig angelegt und wird daher im geplanten Tool nicht verwaltet werden können, da diese<br />

Möglichkeit in den standard Oracle Tools mehrfach und in einer befriedigenden Form<br />

vorhanden ist.<br />

3.1.1.2 Source Tabelle<br />

Dies ist die Tabelle, von welcher alle Änderungen auf der Stagingdatenbank gewünscht<br />

werden. Um eine Tabelle für CDC zu präparieren, muss diese mit dem Befehl<br />

DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION instanziert werden. Weitere<br />

Schritte sind auf der Source Datenbank nicht nötig.<br />

3.1.1.3 Change Source<br />

Die Change Source ist die logische Repräsentation der Sourcedatenbank. Somit wird für jede<br />

Sourcedatenbank eine Change Source auf der Stagingdatenbank angelegt. Eine Change<br />

Source kann gestoppt und wieder gestartet werden.<br />

3.1.1.4 Change Set<br />

In einem Change Set sind mehrere Change Tabellen zusammengefasst. Alle Change<br />

Tabellen, welche in einem Change Set zusammengefasst sind, werden<br />

transaktionskonsistent nachgeführt. Des Weiteren werden beim asynchronen Change Data<br />

Capture durch das Anlegen, aktivieren und deaktivieren des Change Sets die Oracle Streams<br />

Prozesse, welche für das Erfassen der Datenänderungen zuständig sind, gesteuert.<br />

3.1.1.5 Change Table<br />

In den Change Tabellen werden die Datenänderungen als Logical Change Record<br />

tabellarisch dargestellt. Beim Erstellen der Change Tabellen wird definiert, welche Quell-<br />

Tabellen und welche Spalten dieser Quell-Tabellen für die Change Data Capture Umgebung<br />

relevant sind.<br />

3.1.1.6 Subscriber<br />

Der Subscriber enthält Funktionalitäten um Views auf die Change Tabellen zu erstellen. Mit<br />

Hilfe dieser Views können immer nur die Datenänderungen geladen werden, welche noch<br />

nicht verarbeitet wurden. Diese Views stellen eine angenehme Art dar mit dem ETL Prozess<br />

10.09.2009 Seite 16 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

die Daten abzugreifen. Dies ist aber auch ohne Weiteres direkt auf den Change Tabellen<br />

möglich. Dieser Teil wir nach Bedarf zu einem späteren Zeitpunkt in das vorgesehene Tool<br />

eingebaut.<br />

3.1.2 Change Data Capture Modus<br />

Hier wird nochmals kurz der Modus, welcher ausgewählt wurde beschrieben. Schon bei der<br />

Erstellung des Pflichtenhefts hat man sich für den Modus Asynchronous Auto Log Archive<br />

CDC entschieden. Dieser Modus ist optimal auf die Situation in der Emmi zugeschnitten und<br />

belastet das Source System kaum. Dieser Modus ist nur möglich, weil das Source- und das<br />

Stagingsystem genau die gleiche Hardware und die gleichen Oracle Releases aufweisen. Auf<br />

der Abbildung 3-2 ist der Ablauf grob dargestellt.<br />

Abbildung 3-2: Übersicht Modus CDC<br />

Auf der Source Datenbank wird jede Änderung durch den Logwriter (LGWR) geloggt. Dieser<br />

schreibt diese Änderungen in die Redo-Logs, welche jede halbe Stunde durch den Archiver-<br />

Prozess in die sogenannten Archivierten Redo-Logs geschrieben werden. Dies ist ein ganz<br />

normaler Vorgang und wird auf jeder Oracle Datenbank gemacht. Eine Anpassung, welche<br />

gemacht werden muss, ist das Einschalten eines Supplemental Loggings auf der Source<br />

Datenbank. Dies bewirkt, dass die Source Datenbank zusätzliche Informationen in die<br />

Logdateien schreibt und genau diese zusätzliche Logging ist die einzige Belastung, welche<br />

CDC dem Sourcesystem zufügt.<br />

Auf der Staging Datenbank sind die Oracle Streams Prozesse für das importieren der<br />

erforderlichen Daten aus den archivierten Redo-Logs verantwortlich.<br />

10.09.2009 Seite 17 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2 Applikation<br />

3.2.1 Pakete<br />

Die Applikation kann in zwei Pakete aufgeteilt werden. Im Paket Publish befinden sich diese<br />

Anwendungsfälle, welche im Zusammenhang Übertragung der Daten und zur Verfügung<br />

stellen der Daten stehen.<br />

Im Paket Subscribe befinden sich diese Anwendungsfälle, welche sich im Bereich des<br />

Beziehens der Daten befinden. Das Subscribe Paket wird nur mit einem Use Case Diagramm<br />

beschrieben. Die genaue Spezifikation wird zum Zeitpunkt der Umsetzung gemacht, da dies<br />

voraussichtlich in einem zweite Release umgesetzt wird und nur als Kann Ziel in dieser<br />

Spezifikation aufgeführt wird.<br />

Abbildung 3-3: Package Diagramm LDI<br />

10.09.2009 Seite 18 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.2 Use Case Diagramm (Publish)<br />

Use Case Diagramm: LDI (Publish)<br />

Programm starten<br />

FA.01.010<br />

<br />

Login<br />

FA.01.020<br />

Destinationsystem<br />

konfigurieren FA.02.010<br />

Change Source<br />

Konfigurieren FA.03.010<br />

Change Source<br />

löschen FA.03.020<br />

Change Set<br />

konfigurieren FA.04.010<br />

Change Set löschen<br />

FA.04.020<br />

DWH System<br />

Changetabelle<br />

ändern FA.05.010<br />

ETL - Programmierer<br />

Changetabelle<br />

purgen FA.05.020<br />

Changetabelle<br />

erstellen FA.05.030<br />

Change Tabelle<br />

löschen FA.05.040<br />

Sourcesystem<br />

konfigurieren FA.06.010<br />

Source System<br />

Abbildung 3-4: Use Case Diagramm Publish<br />

10.09.2009 Seite 19 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.3 Übersicht Use Cases (Publish)<br />

ID Beschreibung M K<br />

FA.01<br />

Startup Applikation<br />

FA.01.010 Programm starten X<br />

FA.01.020 Login X<br />

FA.02<br />

Destinationsystem<br />

FA.02.010 Destinationsystem konfigurieren X<br />

FA.03<br />

Change Source<br />

FA.03.010 Change Source konfigurieren X<br />

FA.03.020 Change Source löschen X<br />

FA.04<br />

Change Set<br />

FA.04.010 Change Set konfigurieren X<br />

FA.04.020 Change Set löschen X<br />

FA.05<br />

Change Tabelle<br />

FA.05.010 Changetabelle ändern X<br />

FA.05.020 Changetabelle purgen X<br />

FA.05.030 Changetabelle erstellen X<br />

FA.05.040 Changetabelle löschen X<br />

FA.06<br />

Sourcesystem<br />

FA.06.010 Sourcesystem konfigurieren X<br />

Tabelle 3-1: Übersicht Use Cases (Publish)<br />

Diese Anforderungen wurden gegenüber dem Pflichtenheft ein wenig angepasst. Dies aus<br />

dem Grund, weil bei der detaillierten Analyse erweiterte Erkenntnisse gewonnen wurden.<br />

Diese Erkenntnisse haben dazu bewogen, einige Anforderungen wegzulassen und einige auf<br />

Kann Ziele zurückzustufen.<br />

3.2.4 Aktoren<br />

Es werden alle Aktoren kurz beschrieben.<br />

Name<br />

ETL - Programmierer<br />

Source System<br />

Destination System<br />

Tabelle 3-2: Aktoren<br />

Beschreibung<br />

Dies ist der Hauptbenutzer dieser Software. Er definiert die ETL<br />

Schnittstellen für das DWH. Er ist der einzige, welche mit dieser<br />

Applikation arbeitet.<br />

Das Sourcesystem ist die Datenbank, welche die Quelldaten für<br />

die Schnittstelle enthält.<br />

Das Zielsystem ist der Stagingbereich des DWH. Dies auch in der<br />

Form einer Oracle Datenbank.<br />

10.09.2009 Seite 20 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5 Detailbeschreibung Use Cases (Publish)<br />

3.2.5.1 Programm starten<br />

AD Programm starten<br />

User startet Programm<br />

Login wird aufgerufen<br />

(FA.01.020)<br />

Login nicht erfolgreich<br />

Login OK<br />

Metadaten werden von<br />

DWH eingelesen<br />

Programm wird beendet<br />

GUI wird<br />

Initialisiert<br />

Programm<br />

gestartet<br />

Programm<br />

beendet<br />

Abbildung 3-5: Aktivitätsdiagramm Programm starten<br />

Der Benutzer startet das Programm per Mausklick aus seinem Startmenu. Die Applikation<br />

wird gestartet und der Benutzer wird zum Login aufgefordert (siehe include FA.01.020). Wenn<br />

das Login OK ist, werden die Meta Daten aus dem DWH gelesen und die TreeView wird<br />

konfiguriert (siehe Kapitel GUI). Danach wird das GUI angezeigt. Bei nicht erfolgreichem<br />

Login, wird der Prozess wieder beendet. Mit dem SQL Statement aus Tabelle 3-3 können die<br />

nötigen Informationen aus dem DWH bezogen werden, um die TreeView mit den nötigen<br />

Objekten zu initialisieren. Weitere Infos über die TreeView können aus dem Kapitel 3.2.8.1<br />

bezogen werden.<br />

10.09.2009 Seite 21 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Vorgang<br />

SQL<br />

Daten für TreeView select source_database, source_name, b.set_name, c.change_table_schema,<br />

lesen<br />

c.change_table_name<br />

from all_change_sources a, all_change_sets b, all_change_tables c<br />

where source_type = 'AUTOLOG'<br />

and a.source_name = b.change_source_name<br />

and b.set_name = c.change_set_name;<br />

Tabelle 3-3: SQL Programm starten<br />

3.2.5.2 Login<br />

Dieses Aktivitätsdiagramm zeigt den Ablauf des Anmeldeprozesses. Dieser Prozess wird<br />

nach dem Start der Applikation automatisch aufgerufen und ist ein Teil des Startvorgangs.<br />

AD Login<br />

Auswahl DWH DB<br />

Eingabe Benutzername & Passwort<br />

für DWH DB<br />

abbrechen<br />

neuer Versuch<br />

Login OK<br />

Programm wird beendet<br />

Login<br />

fehlgeschlagen<br />

Login OK<br />

Abbildung 3-6: Aktivitätsdiagramm Login<br />

10.09.2009 Seite 22 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Der Benutzer wird aufgefordert, die DB vom gewünschten DWH auszuwählen (DB’s können<br />

aus dem tnsnames.ora ausgelesen werden) und seine Benutzerangaben einzugeben. Dies<br />

sind die Benutzerangaben des Publishers vom DWH. Die Benutzerangaben werden gegen<br />

die ausgewählte DB geprüft. Bei erfolgreicher Anmeldung wird die Applikation gestartet und<br />

der Angegebene Benutzer bleibt angemeldet. Bei nicht korrekten Angaben wird der Benutzer<br />

aufgefordert es erneut zu versuchen. Der Vorgang kann auch abgebrochen werden. Damit<br />

schliesst sich die Applikation wieder.<br />

Abbildung 3-7: GUI Login<br />

Das GUI wird nicht näher beschrieben, da es selbsterklärend ist.<br />

3.2.5.3 Destinationsystem konfigurieren<br />

Kann Ziel. Wird zum Zeitpunkt der Umsetzung spezifiziert.<br />

10.09.2009 Seite 23 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.4 Change Source konfigurieren<br />

Das Aktivitätsdiagramm zeigt den Ablauf für die Erstellung oder für die Änderung eine<br />

Change Source. Eine Change Source wird nur eine pro Sourcesystem erstellt. Im<br />

dazugehörigen GUI sieht man, wie und wo der Benutzer die Eingaben machen kann.<br />

AD Change Source konfigurieren<br />

User wählt<br />

Sourcesystem aus<br />

CS erstellen<br />

CS ändern<br />

User mutiert CS<br />

Eigenschaften<br />

User erfasst CS<br />

Eigenschaften<br />

CS ändern<br />

CS erstellen<br />

OK<br />

Fehler beim ändern der CS<br />

Fehlermeldung<br />

Fehler beim Erstellung<br />

OK<br />

GUI anpassen<br />

CS geändert<br />

Vorgang<br />

abgebrochen<br />

CS erstellt<br />

Abbildung 3-8: Aktivitätsdiagramm Change Source konfigurieren<br />

Der Benutzer wählt, ob er eine neue Change Source erstellen oder ob er eine bestehenden<br />

abändern will. Aufgrund der Auswahl, werden die Eingabefelder ausgefüllt oder nicht.<br />

Nachdem er die Eigenschaften mutiert hat, kann er die Eingabe speichern. Im Reiter SQL<br />

kann das jeweilige SQL, welches beim Speichern ausgeführt wird, angesehen werden. Wenn<br />

10.09.2009 Seite 24 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

kein Fehler auftritt, wird dieser Vorgang abgeschlossen. Bei einer neuen Source wird die<br />

TreeView entsprechend angepasst. Kann der Vorgang nicht durchgeführt werden, wird die<br />

originale Fehlermeldung der Datenbank ausgegeben. Bei einer Änderung kann das Feld<br />

Change Source Name nicht mutiert werden und ist im GUI gesperrt.<br />

Abbildung 3-9: GUI Change Source<br />

Die Tabelle 3-2 enthält die SQL’s, welche beim Speichern an die Datenbank gesendet<br />

werden. Ein Fehlerhandling ist bei diesen Packages schon implementiert und muss nicht<br />

zusätzlich programmiert werden.<br />

Vorgang<br />

SQL<br />

Change Source DBMS_CDC_PUBLISH.CREATE_AUTOLOG_CHANGE_SOURCE(<br />

erstellen<br />

change_source_name => 'CS_XXXXX',<br />

description => 'Change Source from XXXXXXXX DB',<br />

source_database => 'XXXXXX.emmi.ch',<br />

first_scn => 0000000000);<br />

Change Source DBMS_CDC_PUBLISH.ALTER_AUTOLOG_CHANGE_SOURCE(<br />

ändern<br />

change_source_name => 'CS_XXXXXXX',<br />

first_scn => 0000000000);<br />

Tabelle 3-4: SQL Change Source<br />

10.09.2009 Seite 25 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.5 Change Source löschen<br />

Das Aktivitätsdiagramm zeigt den Ablauf beim Löschen einer Change Source.<br />

AD Change Source löschen<br />

User wählt<br />

Change Source aus<br />

Change Source<br />

löschen<br />

Fehler bei Löschung<br />

Fehlermeldung<br />

OK<br />

GUI anpassen<br />

CS geändert<br />

Vorgang<br />

abgebrochen<br />

Abbildung 3-10: Aktivitätsdiagramm Change Source löschen<br />

Der Benutzer wählt die entsprechenden Change Source aus und wählt Change Source<br />

löschen aus dem Kontext Menu (siehe Kapitel Spezifikation GUI) oder betätigt den<br />

Löschknopf in der Toolbox .<br />

Bei erfolgreicher Löschung wird die TreeView entsprechend angepasst. Bei einem Fehler<br />

wird die originale Datenbankfehlermeldung ausgegeben. Im SQL Reiter wird der<br />

entsprechenden SQL Befehl angezeigt, welcher gegen die DB ausgeführt wird.<br />

10.09.2009 Seite 26 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Bei der Löschung ist zu berücksichtigen, dass eine Change Source nur gelöscht werden<br />

kann, wenn es keine Change Sets mehr enthält. Dies wird aber sauber vom Change Data<br />

Capture Mechanismus abgehandelt und muss nicht durch die Applikation geprüft werden.<br />

In der Tabelle 3-3 sieht man das SQL, welches an die Datenbank gesendet wird. Auf eine<br />

Skizze des GUI wird verzichtet, da dies keinen Nutzen bringt. Der Name der Change Source<br />

(CS_XXXXX) wird von der markierten Stelle aus der TreeView gezogen.<br />

Vorgang<br />

SQL<br />

Change Source löschen DBMS_CDC_PUBLISH.DROP_CHANGE_SOURCE('CS_XXXXX');<br />

Tabelle 3-5: SQL Change Source löschen<br />

10.09.2009 Seite 27 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.6 Change Set konfigurieren<br />

Das Aktivitätsdiagramm zeigt den Ablauf für die Erstellung oder für die Änderung eines<br />

Change Sets. Pro Change Source können mehrere Change Sets konfiguriert werden.<br />

Innerhalb des Change Sets werden die Change Tabellen transaktionskosistent nachgeführt.<br />

Im dazugehörigen GUI sieht man, wie und wo der Benutzer die Eingaben machen kann.<br />

AD Change Set konfigurieren<br />

User wählt<br />

Change Source aus<br />

CSet erstellen<br />

CSet ändern<br />

User mutiert CSet<br />

Eigenschaften<br />

User erfasst CSet<br />

Eigenschaften<br />

CSet ändern<br />

CS erstellen<br />

OK<br />

Fehler bei Änderung<br />

Fehlermeldung<br />

Fehler bei Erstellung<br />

OK<br />

GUI anpassen<br />

CSet geändert<br />

Vorgang<br />

abgebrochen<br />

CSet erstellt<br />

Abbildung 3-11: Aktivitätsdiagramm Change Set konfigurieren<br />

Der Benutzer wählt, ob er ein neues Change Set erstellen oder ein bestehendes abändern<br />

will. Je nach dem, werden die Eingabefelder ausgefüllt oder nicht und die entsprechenden<br />

Felder sind mutierbar. Felder welche für den einen oder anderen Vorgang nicht mutiert<br />

werden dürfen, werden im GUI gesperrt. Dies aus dem Grund, weil nicht beide Statements<br />

10.09.2009 Seite 28 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

die gleichen Eigenschaften haben. Nachdem er die Eigenschaften mutiert hat, kann er die<br />

Eingabe speichern. Im Tab SQL kann das jeweilige SQL, welches beim Speichern ausgeführt<br />

wird, angesehen werden. Wenn kein Fehler auftritt, wird dieser Vorgang abgeschlossen. Bei<br />

einer neuen Source wird die TreeView entsprechend angepasst. Kann der Vorgang nicht<br />

durchgeführt werden, wird die originale Datenbankfehlermeldung ausgegeben. Die<br />

Fehlerbehandlung ist im SQL Package gut abgehandelt und muss nicht weiter programmiert<br />

werden.<br />

Abbildung 3-12: GUI Change Set konfigurieren<br />

In der Tabelle 3-4 sind die SQL Statements ersichtlich, welche beim Speichern auf die<br />

Datenbank gesendet werden.<br />

Vorgang<br />

SQL<br />

Change Set erstellen DBMS_CDC_PUBLISH.CREATE_CHANGE_SET(<br />

change_set_name => 'CSET_XXXXX_1',<br />

description => 'Change Set for XXXXXX',<br />

change_source_name => 'CS_XXXXX',<br />

stop_on_ddl => 'y'<br />

begin_date => NULL,<br />

end_date => NULL);<br />

Change Set ändern DBMS_CDC_PUBLISH.ALTER_CHANGE_SET(<br />

change_set_name => 'CSET_XXXXX_1',<br />

description => 'Change Set for XXXXXX',<br />

enable_capture => 'Y',<br />

recover_after_error => 'Y',<br />

remove_ddl => 'Y',<br />

stop_on_ddl => 'Y');<br />

Tabelle 3-6: SQL Change Set konfigurieren<br />

10.09.2009 Seite 29 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.7 Change Set löschen<br />

Das Aktivitätsdiagramm zeigt den Ablauf einer Löschung eines Change Sets.<br />

AD Change Set löschen<br />

User wählt<br />

Change Set aus<br />

Change Set<br />

löschen<br />

Fehler bei Löschung<br />

Fehlermeldung<br />

OK<br />

GUI anpassen<br />

CS geändert<br />

Vorgang<br />

abgebrochen<br />

Abbildung 3-13: Aktivitätsdiagramm Change Set löschen<br />

Der Benutzer wählt das entsprechenden Change Set aus und wählt Change Set löschen aus<br />

dem Kontext Menu (siehe Kapitel Spezifikation GUI) oder betätigt den Löschknopf in der<br />

Toolbox.<br />

Bei erfolgreicher Löschung wird die TreeView entsprechend angepasst. Bei einem Fehler<br />

wird die originale Datenbankfehlermeldung ausgegeben. Im SQL Tab wird der<br />

entsprechenden SQL Befehl angezeigt, welcher gegen die DB ausgeführt wird.<br />

10.09.2009 Seite 30 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Abbildung 3-14: GUI Change Set löschen<br />

Bei der Löschung ist zu berücksichtigen, dass ein Change Set nur gelöscht werden kann,<br />

wenn es keine Change Tabellen mehr enthält. Dies wird aber sauber vom Change Data<br />

Capture Mechanismus abgehandelt und muss nicht durch die Applikation geprüft werden.<br />

In der Tabelle ist das SQL Statement zu sehen, welches bei der Löschung an die DB<br />

gesendet wird.<br />

Vorgang<br />

SQL<br />

Change Source löschen DBMS_CDC_PUBLISH.DROP_CHANGE_SET('CSet_XXXXX_1');<br />

Tabelle 3-7: SQL Change Set löschen<br />

10.09.2009 Seite 31 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.8 Changetabelle ändern<br />

Das Aktivitätsdiagramm zeigt den Ablauf bei Änderung einer Change Tabelle.<br />

Abbildung 3-15: Aktivitätsdiagramm Changetabelle ändern<br />

Der Benutzer wählt in der TreeView die gewünschte Tabelle und im Kontext Menu (siehe<br />

Kapitel Spezifikation GUI) „Changetabelle ändern“. Im GUI ist nur der Reiter Destination<br />

mutierbar. Die Source - Seite muss nie geändert werden, ausser bei einer Löschung. Der<br />

User nimmt die gewünschten Änderungen vor und speichert anschliessend seine Eingaben.<br />

10.09.2009 Seite 32 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Wenn bei der Änderung ein Fehler auftritt, wird die originale Datenbankfehlermeldung<br />

ausgegeben. Die Eigenschaften können weiter mutiert werden. Der Vorgang wird beendet,<br />

indem der Benutzer die Aktion abbricht oder die Changetabelle korrekt abgespeichert wird.<br />

Abbildung 3-16: GUI Changetabelle ändern<br />

Bei Änderungen an den Spalten, muss mit „ADD“ oder „DROP“ angegeben werden, ob eine<br />

Spalte hinzugefügt bzw. gelöscht werden soll. Dies steht nur bei Änderung an<br />

Changetabellen zur Verfügung.<br />

In der Tabelle 3-6 sieht man das entsprechende Alter Statement, welches beim Speichern an<br />

die Datenbank gesendet wird.<br />

Vorgang<br />

SQL<br />

Change Tabelle ändern DBMS_CDC_PUBLISH.ALTER_CHANGE_TABLE(<br />

owner => ’OWNER’,<br />

change_table_name =>’TABLE’ ,<br />

operation => ’ADD’,<br />

column_type_list => ’COLXXX NCHAR(5)’,<br />

rs_id =>’Y’,<br />

row_id => 'Y' ,<br />

user_id => 'Y',<br />

timestamp => 'Y',<br />

object_id => 'Y' ,<br />

source_colmap => 'Y',<br />

target_colmap => 'Y');<br />

Tabelle 3-8: SQL Changetabelle ändern<br />

.<br />

10.09.2009 Seite 33 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.9 Changetabelle purgen<br />

Dieses Aktivitätsdiagramm zeigt den Ablauf, wenn die Daten einer Changetabelle<br />

reorganisiert werden. Das heisst nicht mehr benötigte Daten werden gelöscht.<br />

AD Changetabelle purgen<br />

User wählt Changetabelle aus<br />

Destinationtabelle purgen<br />

Fehler bei Purgevorgang<br />

Fehlermeldung<br />

OK<br />

Tabelle<br />

purged<br />

Vorgang<br />

abgebrochen<br />

Abbildung 3-17: Aktivitätsdiagramm Changetabelle purgen<br />

Der Benutzer wählt in der TreeView die gewünschte Tabelle und im Kontext Menu (siehe<br />

Kapitel Spezifikation GUI) „Changetabelle purgen“. Das SQL Statement aus Tabelle 3-7 wird<br />

an die Datenbank gesendet. Daten welche von keiner SubscriberView in Zugriff sind, werden<br />

gelöscht. Bei einem Fehler wird die originale Datenbankfehlermeldung ausgegeben.<br />

Daten welche mit diesem Package gelöscht wurden, können nicht mehr hergestellt werden!<br />

Vorgang<br />

SQL<br />

Change Tabelle purgen DBMS_CDC_PUBLISH.PURGE_CHANGE_TABLE(<br />

owner => ‚’OWNER’,<br />

change_table_name => ’TABLE’);<br />

Tabelle 3-9: SQL Change Tabelle konfigurieren<br />

10.09.2009 Seite 34 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.10 Changetabelle erstellen<br />

Das Aktivitätsdiagramm zeigt den Ablauf bei Erstellung einer Change Tabelle.<br />

AD Changetabelle erstellen<br />

User wählt neue Changetabelle erstellen<br />

User erfasst Source Owner & Tabelle<br />

User erfasst sämtliche Eigenschaften<br />

der Changetabelle (Reiter Destination)<br />

Fehlermeldung<br />

User speichert neue Changetabelle<br />

Tabelle wird auf Source DB<br />

instanziert<br />

Fehler beim instanzieren<br />

Vorgang abbrechen<br />

OK<br />

Changetabelle wird in DWH erstellt<br />

Fehler bei Erstellung<br />

Vorgang abbrechen<br />

OK<br />

Changetabelle<br />

erstellt<br />

Vorgang<br />

abgebrochen<br />

Abbildung 3-18: Aktivitätsdiagramm Changetabelle erstellen<br />

10.09.2009 Seite 35 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Der Benutzer wählt ein Change Set und wählt im Kontext Menu (siehe Kapitel Spezifikation<br />

GUI) „Neue Change Tabelle erstellen“. Er erfasst auf dem Reiter Source auf dem GUI Owner<br />

und danach Tabellenname von der gewünschten Source Tabelle. Diese kann der Benutzer<br />

bequem aus Kombinationsfeldern auswählen. Die Daten für die Kombinationsfelder können<br />

aus der Source Datenbank geholt werden. Siehe Statements in Tabelle 3-8.<br />

Abbildung 3-19: GUI Changetabelle erstellen (Source)<br />

Danach wechselt der User auf der Reiter Destination und erfasst dort sämtliche<br />

Eigenschaften der Changetabelle. Der Owner kann ausgewählt werden. Der Inhalt des<br />

Kombinationfeldes kann aus dem DWH bezogen werden (siehe Tabelle 3-8). Der Name für<br />

die Changetabelle muss eingegeben werden. Die restlichen Angaben müssen zum Teil<br />

erfasst werden oder können aus der DWH DB bezogen werden. Wo welche Eigenschaften<br />

des Change Data Capture bezogen werden können, ist auf dem Datenbankmodell in diesem<br />

Dokument ersichtlich.<br />

Nachdem sämtliche Eigenschaften gepflegt sind, speichert der User die Changetabelle. Das<br />

Erstellungsstatement ist in Tabelle 3-8 ersichtlich. Als erstes wird auf der Source Datenbank<br />

die Tabelle instanziert und vorbereiten. Dies muss in der Regel nur einmal gemacht werden.<br />

Das Statement darf aber problemlos mehrere Male ausgeführt werden. Danach wird die<br />

Changetabelle auf dem DWH erstellt. Tritt bei diesen Vorgängen ein Fehler auf, so wird die<br />

originale Datenbankfehlermeldung ausgegeben und die Speicherung wird abgebrochen. Der<br />

Vorgang gilt erst als erfolgreich abgeschlossen, wenn sowohl die Instanzierung wie auch die<br />

Erstellung der Changetabelle erfolgreich sind. Zu beachten gilt, dass die Instanzierung der<br />

Sourcetabelle immer früher als das kreieren der Changetabelle gemacht werden muss.<br />

10.09.2009 Seite 36 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Abbildung 3-20: GUI Changetabelle erstellen Destination<br />

Vorgang<br />

Change Tabelle<br />

erstellen<br />

Source Tabelle<br />

konfigurieren<br />

Selektion Destination<br />

Owner<br />

Selektion Source<br />

Owner<br />

Selektion Source Table<br />

Tabelle 3-10: SQL Source Tabelle konfigurieren<br />

SQL<br />

DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE(<br />

owner => ’OWNER’,<br />

change_table_name =>’TABLE’ ,<br />

change_set_name => ’CSet_XXXXX_1’,<br />

source_schema => ’SRC_OWNER’,<br />

source_table => ’SRC_TABLE’,<br />

column_type_list => ’COLXXX NCHAR(5)’,<br />

capture_values => ’BOTH’ ,<br />

rs_id =>’Y’,<br />

row_id => 'Y' ,<br />

user_id => 'Y',<br />

timestamp => 'Y',<br />

object_id => 'Y' ,<br />

source_colmap => 'Y',<br />

target_colmap => 'Y',<br />

options_string => ’Tablespace XXXXX’);<br />

DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(<br />

'OWNER.TABLE');<br />

SELECT OWNER FROM ALL_TABLES GROUP BY OWNER;<br />

SELECT OWNER FROM ALL_TABLES GROUP BY OWNER;<br />

SELECT TABLE_NAME FROM ALL_TABLES<br />

WHERE OWNER = 'OWNER';<br />

10.09.2009 Seite 37 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.5.11 Change Tabelle löschen<br />

Dieses Aktivitätsdiagramm zeigt den Ablauf für die Löschung einer Change Tabelle.<br />

AD Change Tabelle löschen<br />

User wählt<br />

Change Tabelle aus<br />

Change Tabelle<br />

löschen<br />

Fehler bei Löschung<br />

Fehlermeldung<br />

OK<br />

GUI anpassen<br />

CS geändert<br />

Vorgang<br />

abgebrochen<br />

Abbildung 3-21: Aktivitätsdiagramm Change Tabelle löschen<br />

Der Benutzer wählt die entsprechenden Change Tabelle aus und wählt Change Tabelle<br />

löschen aus dem Kontext Menu (siehe Kapitel Spezifikation GUI) oder betätigt den<br />

Löschknopf in der Toolbox .<br />

Der User wird nochmals aufgefordert die Löschung zu bestätigen. Auf dieser Aufforderung<br />

kann er ein zusätzliches „force“ Flag setzen, welches die Löschung erzwingt.<br />

Bei erfolgreicher Löschung wird die TreeView entsprechend angepasst. Bei einem Fehler<br />

wird die originale Datenbankfehlermeldung ausgegeben. Im SQL Tab wird der<br />

entsprechenden SQL Befehl angezeigt, welcher gegen die DB ausgeführt wird.<br />

10.09.2009 Seite 38 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Abbildung 3-22: GUI Source Tabelle löschen<br />

Vorgang<br />

SQL<br />

Source Tabelle löschen DBMS_CDC_PUBLISH.DROP_CHANGE_TABLE(<br />

owner IN VARCHAR2,<br />

change_table_name IN VARCHAR2,<br />

force_flag IN CHAR);<br />

Tabelle 3-11: SQL Source Tabelle löschen<br />

3.2.5.12 Sourcesystem konfigurieren<br />

Kann Ziel. Dies wird noch nicht spezifiziert.<br />

10.09.2009 Seite 39 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.6 Use Case Diagramm (Subscribe)<br />

Use Case Diagramm: LDI (Subscribe)<br />

Subscription<br />

erstellen FA.51.010<br />

Subscribtion<br />

löschen FA.51.020<br />

Subscribtion<br />

aktivieren FA.51.030<br />

ETL - Programmierer<br />

SubscriberView<br />

erstellen FA.52.010<br />

SubscriberView<br />

löschen FA.52.020<br />

DWH System<br />

SubscriberView<br />

extend Window FA.52.030<br />

SubscriberView purge<br />

Window FA.52.040<br />

Abbildung 3-23: Use Case Diagramm (Subscribe)<br />

3.2.7 Übersicht Use Cases (Subscribe)<br />

ID Beschreibung M K<br />

FA.51<br />

Subscription<br />

FA.51.010 Subscription erstellen X<br />

FA.51.020 Subscription löschen X<br />

FA.51.030 Subscription aktivieren X<br />

FA.52<br />

Destinationsystem<br />

FA.52.010 SubscriberView erstellen X<br />

FA.52.020 SubscriberView löschen X<br />

FA.52.030 SubscriberView extend Window X<br />

FA.52.040 SubscriberView purge Window X<br />

Tabelle 3-12: Übersicht Use Cases (Subscribe)<br />

Der gesamt Subscription - Teil besteht aus Kann Anforderungen und wird voraussichtlich in<br />

der Form eines zweiten Releases umgesetzt.<br />

10.09.2009 Seite 40 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.8 Spezifikation GUI<br />

Wie schon im Pflichtenheft definiert, orientiert sich das GUI stark am SQL Developer von<br />

Oracle. In diesem Kapitel wird noch auf die verschiedenen Menu und anderen komplexen<br />

Steuerelemente eingegangen.<br />

3.2.8.1 Tree View<br />

Die TreeView ist das zentrale Navigationshilfsmittel der Applikation.<br />

Destination System (DWH)<br />

Source System<br />

Change Source<br />

Change Set<br />

Change Table<br />

Sie wird beim Start der Applikation geladen und<br />

aufgrund der Daten im der DWH Datenbank konfiguriert.<br />

Sie wird auch bei jeder Änderung aktualisiert. Auf den<br />

verschiedenen Knoten werden unterschiedliche Kontext<br />

Menus hinterlegt, welche mit der rechten Maustaste<br />

hervorgerufen werden können. Aussehen und Inhalt der<br />

Kontext Menus können im Kapitel Kontext Menu<br />

entnommen werden.<br />

3.2.8.2 Menu Bar<br />

Je nach Zustand der Applikation werden die Menupunkte aktiviert bzw. deaktiviert. Sichtbar<br />

sind die Menupunkte jedoch immer.<br />

Abbildung 3-24: Menu Bar<br />

Die Tabelle 3-11 zeigt zu welchem Zeitpunkt welche Menupunkte aktiv sind.<br />

Tabelle 3-13: Übersicht Menu Bar<br />

10.09.2009 Seite 41 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

3.2.8.3 Toolbar<br />

Auf der Toolbar befinden sich nur die nötigsten Werkzeuge. Wie diese ungefähr aussehen<br />

wird, ist auf der Abbildung 3-25 zu entnehmen. Sie wird viel in erster Linie für das Speichern<br />

und Löschen der verschiedenen Objekte verwendet.<br />

Abbildung 3-25: Übersicht Toolbar<br />

3.2.8.4 Kontext Menu auf TreeView<br />

Entsprechend dem Knoten, wo der User mit der rechten Maustaste das Kontext Menu<br />

hervorholt, sind die Menupunkte aktiviert oder nicht. In Tabelle 3-13 sieht man bei welchem<br />

Knoten, welche Punkte aktiviert sind.<br />

Tabelle 3-14: Übersicht Kontext Menu<br />

3.2.8.5 Statusbar<br />

In der Statusbar informiert den Benutzer über den Verlauf der Applikation. Sie wird soviel wie<br />

nötig aktualisiert.<br />

Abbildung 3-26: Übersicht Statusbar<br />

10.09.2009 Seite 42 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

4 Design<br />

4.1 Applikation<br />

Die Grundregeln der Applikation sind folgende: Die Applikation soll so gebaut werden, dass<br />

keine lokalen Konfigurationsfiles benötigt werden. Die einzigen Angaben, welche die<br />

Applikation lokal bezieht, ist die Anmeldung vom User. Die restlichen Informationen werden<br />

aus der angemeldeten Datenbank gewonnen. Auch dort sollen keine Toolspezifischen<br />

Tabellen angelegt werden, da die gewünschten Informationen in den Systemtabellen von<br />

Oracle vorhanden sind. Somit sollte auch das Setup sehr einfach gestaltet werden können.<br />

4.1.1 Übersicht Struktur<br />

Die Aufgabenstellung fordert kein spezifisches Design. Die Herausforderung besteht darin,<br />

ein für die Grösse der Applikation günstiges Design zu finden. Im .net Kurs wurde die<br />

Trennung in die verschiedenen standard Layer empfohlen.<br />

Abbildung 4-1: Software Layer<br />

• Der Presentation Layer enthält sämtliche Klassen im Zusammenhang mit dem GUI.<br />

• Der Business Layer enthält die Logik der Applikation.<br />

• Der Data Layer enthält die Klassen für die Kommunikation mit der Datenbank. Auch<br />

würde dieser das Lesen bzw. Schreiben von Konfigurationsfiles und Registry<br />

Einträgen steuern. Ein Ziel vom mir ist es aber, in dieser Applikation auf<br />

Konfigurationsfiles und Registry Einträge zu verzichten.<br />

• Der Service Layer enthält unterstützende Klassen, welche auch in späteren Projekten<br />

verwendet werden können und nicht im unmittelbaren Zusammenhang mit dieser<br />

Applikation stehen.<br />

10.09.2009 Seite 43 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

4.1.2 Source Code<br />

In diesem Kapitel sind Regeln für den Sourcecode angegeben. Die Konventionen für die<br />

Namensgebung ist in der Tabelle 4-2 ersichtlich und müssen für die Lesbarkeit eingehalten<br />

werden.<br />

Kürzel Objekttyp<br />

cbo ComboBox<br />

cbx CheckBox<br />

clp Clipboard<br />

cmd CommandButton<br />

cmnu Contextmenu<br />

ctl Control<br />

dat Data<br />

drv DriveListBox<br />

fil<br />

FileListBox<br />

fra Frame<br />

frm Form<br />

glb Global<br />

img Image<br />

lbl Label<br />

lst ListBox<br />

mdi MDIForm<br />

mnu Menu<br />

opt OptionButton<br />

pic PictureBox<br />

prp PropertyPage<br />

tmr Timer<br />

txt TextBox<br />

vsb VScrollBar<br />

Tabelle 4-1: Namenskonventionen Sourcecode<br />

Das Errorhandling wird in jeder Klasse für jeden Bereich nach dem gleichen Ablauf<br />

implementiert.<br />

10.09.2009 Seite 44 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

4.2 Datenbank<br />

Bei den DB Modellen wurden nur diese Tabellen berücksichtigt, welche für die Applikation<br />

benötigt werden. Die meisten Tabellen sind auf den Datenbanken nur logische Views, welche<br />

auf Systemtabellen zugreifen. Es handelt sich ausschliesslich um Oracle Tabellen. Das Tool<br />

soll ausschliesslich mit diesen arbeiten und kann somit gegen jede Oracle Enterprise<br />

Datenbank verwendet werden.<br />

4.2.1 DB Model DWH (Destination System)<br />

Abbildung 4-2: DB Model DWH<br />

4.2.1.1 all_change_sources<br />

In dieser View sind die Eigenschaften aller Change Source enthalten.<br />

4.2.1.2 all_change_sets<br />

In dieser View sind die Eigenschaften aller Change Sets enthalten<br />

4.2.1.3 all_change_tables<br />

In dieser View sind die Eigenschaften aller Change Tabellen enthalten<br />

4.2.1.4 all_published_columns<br />

In dieser View sind alle Spalten der Change Tabellen und die dazugehörigen Eigenschaften<br />

enthalten.<br />

10.09.2009 Seite 45 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

4.2.1.5 all_tables<br />

In dieser View sind alle Tabellen der Datenbank enthalten. Aus dieser Tabelle werden<br />

Informationen wie zum Beispiel der Owner für die Erfassung einiger Objekte gewonnen.<br />

4.2.2 DB Model Source Datenbank<br />

Abbildung 4-3: DB Model Source Datenbank<br />

4.2.2.1 all_tab_columns<br />

Diese View enthält die Eigenschaften der Spalten aller Tabellen auf einer Oracle Datenbank.<br />

Diese Daten werden bei der Erfassung der Changetabellen auf dem GUI benötigt<br />

4.2.2.2 all_tables<br />

In dieser View sind alle Tabellen der Datenbank enthalten. Aus dieser Tabelle werden<br />

Informationen wie zum Beispiel der Owner oder Namen der Sourcetabellen für die Erfassung<br />

auf dem GUI bezogen.<br />

4.2.2.3 all_capture_prepared_tables<br />

In dieser View sind die Tabellen der Sourcedatenbank eingetragen, welche für das Data<br />

Capture vorbereitet sind (Diese Tabellen wurden instanziert).<br />

10.09.2009 Seite 46 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

5 Testing<br />

5.1 Ziel des Testens<br />

• Verifikation der Anforderungen<br />

• Softwarefehler früh erkennen<br />

5.2 Übersicht der Tests<br />

Objekt<br />

Testmethode nach Phase<br />

Entwurf<br />

Realisierung<br />

GUI Usability Walkthrough Usability Test<br />

Dokumentation<br />

Review<br />

Source Code<br />

Review<br />

Funktionale Anforderungen<br />

Programm starten<br />

Login<br />

Destinationsystem<br />

konfigurieren<br />

Change Source konfigurieren<br />

Change Source löschen<br />

Change Set konfigurieren<br />

Change Set löschen<br />

Changetabelle ändern<br />

Changetabelle purgen<br />

Changetabelle erstellen<br />

Changetabelle löschen<br />

Sourcesystem konfigurieren<br />

Nicht funktionale Anforderungen<br />

Siehe Kapitel 3.3.1 in<br />

Pflichtenheft<br />

Tabelle 5-1: Übersicht Tests<br />

5.3 Testablauf<br />

5.3.1 Ablauf<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

Systemtest<br />

1. Test-Fälle werden erfasst<br />

2. Ausführen der Test-Fälle<br />

3. Rapportieren und korrigieren der Fehler<br />

4. Wiederholen von Schritt 2 - 3 bis alle Tests erfolgreich sind<br />

5. Schreiben des Test-Reports<br />

5.3.2 Test Dokumentation<br />

• Die Test-Fälle werden in einem spezifischen Dokument festgehalten.<br />

• Gefundene Fehler werden in einem spezifischen Dokument festgehalten.<br />

10.09.2009 Seite 47 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

5.3.3 Testmethoden<br />

Analyse / Entwurf:<br />

Realisierung:<br />

Abnahme:<br />

Review der Requirements und Dokumente, Usability-<br />

Walkthrough der GUI Skizzen und des ersten Prototyps<br />

Systemtests auf Testsystem<br />

Subset von Systemtests auf Ziel-System<br />

5.3.4 Testfälle<br />

Detailspezifikation und Pflichtenheft dienen als Grundlage für die Identifikation der Testfälle<br />

für die Unit- und Systemtests.<br />

Folgende Eigenschaften werden für jeden Testfall erfasst:<br />

• Fallnummer<br />

• Testfall<br />

• Testschritt Nummer<br />

• Testschritt<br />

• Vorbedingungen<br />

• Beschreibung Testfall<br />

• Erwartetes Ergebnis<br />

• Tatsächliches Ergebnis<br />

• Daten Input<br />

• Daten Output<br />

• Check / Verifikation<br />

5.4 System Test<br />

Bei den Systemtests werden sämtliche funktionalen und nicht funktionalen Anforderungen<br />

getestet. Jeder Use Cases wird manuell durchgetestet. Dazu werden Schnittstellen in den<br />

verschiedenen Möglichkeiten erstellt.<br />

5.5 Usability Test<br />

Nach der Detailspezifikation ist das GUI auf Papier entworfen. Ein erster Walkthrough wird<br />

mit dem ETL - Programmierer durchgeführt und die Erkenntnisse werden dokumentiert und<br />

fliessen direkt in die Entwicklung des Tools ein.<br />

Wenn die erste Lauffähige Version der Applikation erstellt ist, wird ein Usability Test mit dem<br />

ETL - Programmierer durchgeführt. Auch dieses Resultat soll, sofern es mit dem Aufwand<br />

des Projekts zu vereinbaren ist, in die Applikation einfliessen. Ansonsten werden die<br />

Erkenntnisse festgehalten zu einem späteren Zeitpunkt umgesetzt.<br />

10.09.2009 Seite 48 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

5.6 Testergebnisse<br />

5.6.1 Systemtests<br />

Die Tests wurden alle durchgeführt. Es wurden 29 Tests für die funktionalen Anforderungen<br />

und 17 für die nicht funktionalen Anforderungen erfasst. Diese wurden in einem separaten<br />

Excelfile erfasst. Aufgrund des Formates konnten die Testfälle leider nicht in dieses<br />

Dokument integriert werden.<br />

Bis auf drei Tests waren alle erfolgreich. Die nicht erfolgreichen Tests konnten jedoch<br />

korrigiert werden. Nach einem zweiten Testlauf, konnten alle Tests erfolgreich abgeschlossen<br />

werden.<br />

5.6.2 Usabilitytests<br />

Ein erster Usability Test wurde nach dem Entwurf des GUI für die Detailspezifikation<br />

gemacht. Dieser Walkthrough war sehr aufschlussreich, da der ETL Programmierer auch<br />

genau wusste um welche Technologie es sich handelt und er sich dadurch genaue<br />

Vorstellungen hatte, wie das Endprodukt aussehen könnte. Ein Ziel für das Tool war eine<br />

intuitive Bedienbarkeit. Daher musste die Testperson ohne vorherige Angaben und<br />

Erklärungen berichten, was im aufgefallen ist und fragen, was im unklar war. Diese Fragen<br />

ergaben meist kleine Änderungen am GUI. Diese Änderungen wurden danach mittels<br />

Change Requests erfasst und flossen direkt in die Entwicklung. Dies ersparte einige<br />

nachträgliche Korrekturen.<br />

Das gleiche wurde danach noch zweimal mit den ersten Versionen des Tools gemacht. Diese<br />

Tests können als sehr erfolgreich angesehen, da ich dadurch einige Zeit einsparen konnte.<br />

An dieser Stelle möchte ich dem ETL Programmierer auch herzlich für seine Zeit und sein<br />

Engagement bedanken.<br />

10.09.2009 Seite 49 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

6 Planung und Zeitmanagement<br />

6.1 Vorgehensmodell<br />

Beim Vorgehensmodell habe ich mich an dem klassischen Wasserfallmodel orientiert. Da in<br />

diesem Projekt die Phasen ziemlich genaue abgrenzbar sind und die Laufzeit auch ziemlich<br />

kurz ist (5 Monate), sollte sich dieses Vorgehen gut eigenen. Auch für ein Einmannprojekt<br />

fand ich dieses Modell sehr geeignet. Folgende Phasen habe ich durchlaufen:<br />

Abbildung 6-1: Vorgehensmodell<br />

Nachfolgend sind die Inhalte und Resultate pro Projektphase aufgelistet:<br />

Projektphase Inhalt Resultat<br />

Initialisierung • Projektinitialisierung Auftraggeber<br />

• Projektantrag<br />

• Kick-Off Meeting Experte<br />

Analyse • Analyse der bestehenden Lösung<br />

• Pflichtenheft<br />

• Analyse möglicher Lösungswege<br />

• Projektplan<br />

• Diskussion mit Auftraggeber und ETL<br />

Programmierer<br />

• Definition Ziele und Anforderungen<br />

• Projektablauf festlegen<br />

• Erstellung Pflichtenheft<br />

Entwurf • Erhöhung des Verständnisses der<br />

Anforderungen<br />

• Detailspezifikation<br />

• Erstellen der notwendigen UML<br />

Diagramme<br />

• Erarbeiten der Detailspezifikation<br />

• Definition der Testfälle<br />

Realisierung • Konfiguration der Umgebung<br />

• Entwicklung GUI<br />

• Testen der Software<br />

• Erstellung Benutzerhandbuch<br />

Einführung • Umsetzung der neuen Technik in<br />

einem Bereich<br />

• Fertigstellung <strong>Diplombericht</strong><br />

• Präsentation der Diplomarbeit<br />

Nutzung • Nicht Bestandteil der Diplomarbeit<br />

• Flächendeckender Einsatz der neuen<br />

Technik<br />

Tabelle 6-1: Inhalte und Resultate der Projektphasen<br />

• Benutzerhandbuch<br />

• Installationshandbuch<br />

• Software<br />

• Testprotokoll<br />

• <strong>Diplombericht</strong><br />

• Komplette ETL<br />

Schnittstelle auf<br />

neuen Technik<br />

umgesetzt<br />

10.09.2009 Seite 50 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

6.2 Zeitmanagement<br />

Arbeit<br />

Aufwand<br />

Ist pro<br />

geplant Ist Kategorie<br />

Projektleitung 24 21 21<br />

Dokumentation 124 116<br />

Projektantrag 2 3<br />

Pflichtenheft 36 40<br />

Detailspezifikation 36 32<br />

Benutzerhandbuch 14 10<br />

Diverse Protokolle 8 9<br />

<strong>Diplombericht</strong> 28 22<br />

Prototyping 42 58 58<br />

Analyse 24 21<br />

Bestehende Lösung 8 4<br />

Lösungswege 14 14<br />

Entscheide 2 3<br />

Entwurf 28 30<br />

Architektur 12 10<br />

Design 16 20<br />

Realisierung 132 134<br />

Installation Testumgebung 10 7<br />

Konfiguration Umgebung 10 6<br />

Ausbildung .net 32 32<br />

Programmierung<br />

Konfigurationstool 44 56<br />

Testing 36 33<br />

Einführung 32 27<br />

Konfiguration produktive<br />

Umgebung 10 7<br />

Installation Konfigurationstool 10 6<br />

Inbetriebsetzung Schnittstelle 8 11<br />

Schulung Anwender 4 3<br />

Aufwand Total 392 407 407<br />

Tabelle 6-2: Zeitmanagement<br />

Angaben zum Zeitmanagement und warum die geplante Zeit nicht ganz gereicht hat, werden<br />

im Kapitel Ausblick und Schlusswort gemacht.<br />

10.09.2009 Seite 51 von 80


6.3 Projektplan / Zeitplan und Meilensteine<br />

Abbildung 6-2: Projektplan<br />

10.09.2009 Seite 52 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

6.4 Termine<br />

Termin<br />

Ziel<br />

20.04.2009 Review Pflichtenheft<br />

23.04.2009 Abgabe Pflichtenheft<br />

04.06.2009 Review Entwurf (Detailspezifikation)<br />

20.08.2009 Review Realisierung<br />

10.09.2009 Abgabe Diplomarbeit<br />

11.09.2009 Präsentation Diplomarbeit<br />

Tabelle 6-3: Termine<br />

6.5 Projektmanagement<br />

Der Projektplan kann aufgrund neuer Erkenntnisse einer vorgängigen Phase überprüft und<br />

angepasst werden. In der Entwurfsphase wird nach Bedarf eine zweite Iteration durchgeführt,<br />

um die Analyse zu verfeinern und zu vertiefen. In diesem Projekt wurde keine zweite Iteration<br />

benötigt.<br />

6.6 Meetings / Reviews /Statusmeldungen<br />

6.6.1 Meetings<br />

Mit dem Experten wurde nach jeder Phase ein Meeting durchgeführt.<br />

Mit dem Betreuer, welcher auch gleichzeitig der Auftraggeber darstellt, wurden nur nach<br />

Bedarf Meetings durchgeführt.<br />

6.7 Reviews<br />

Die Meetings mit dem Experten, wurden meist als Review einer vergangenen Phase<br />

verwendet.<br />

6.7.1 Statusmeldungen<br />

Dem Experten und dem Betreuer wurde jede zweite Woche ein Statusreport (Vorlage von<br />

BFH) gesendet, damit diese über den Projektfortschritt auf dem Laufenden waren.<br />

10.09.2009<br />

Seite 53 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

7 Erfüllung der Anforderungen und Ziele<br />

In diesem Kapitel werden die gesteckten Ziele und die verschiedenen Anforderungen mit dem<br />

Resultat verglichen. In den untenstehenden Tabellen gibt es jeweils eine Spalte M oder K<br />

welche angeben, ob es jeweils eine Muss bzw. Kann Anforderungen ist.<br />

7.1 Nicht funktionale Anforderungen<br />

ID Beschreibung M K Erfüllt<br />

NFA.01 Architektur / Plattform<br />

NFA.01.010 Das GUI muss auf eine Emmi Standard PC lauffähig sein X <br />

NFA.01.020 Als Datenbanksystem muss Oracle unterstützt werden X <br />

NFA.01.030 Die Erstellung des GUI soll im Visual Studio .net erfolgen X <br />

NFA.02 Zuverlässigkeit / Stabilität<br />

NFA.02.010 Die Stabilität der neue Schnittstellentechnik soll<br />

mindestens der jetzigen Technik entsprechen<br />

NFA.03 Performance<br />

NFA.03.010 Die Belastung der Quellsysteme soll um mindestens 70% X<br />

verringert werden<br />

<br />

NFA.03.020 Die Daten jeder Schnittstelle sollen täglich übernommen X<br />

werden können.<br />

<br />

NA.04 Konfiguration<br />

NFA.04.010 Mit der neuen Technik soll der Aufwand der Konfiguration X<br />

einer neuen Schnittstelle um 50% verringert werden<br />

<br />

NFA.04.020 Auf Trigger in den Quellsystemen soll verzichtet werden X<br />

können<br />

<br />

NFA.05 Monitoring / Logging<br />

NFA.05.010 Alle Konfigurationen sollen geloggt und ausgewertet<br />

X<br />

werden können.<br />

<br />

NFA.06 Dokumentation<br />

X *<br />

NFA.06.010 Installationshandbuch muss erstellt werden X <br />

NFA.06.020 Benutzerhandbuch muss erstellt werden X <br />

NFA.06.030 Projektbericht muss erstellt werden X <br />

NFA.07 Sicherheit<br />

NFA.07.010 Die Benutzerverwaltung soll dem Emmi Standard für<br />

X<br />

Datenbankbenutzer entsprechen<br />

<br />

NFA.08 Sprache<br />

NFA.08.010 Die Sprache im Tool muss englisch sein X <br />

NFA.08.020 Die Dokumentation soll ausschliesslich in deutscher X<br />

Sprache erfolgen.<br />

<br />

NFA.09 Usability<br />

NFA.09.010 Ein ETL - Programmierer soll sich intuitiv im GUI<br />

X<br />

zurechtfinden (Know - How CDC wird vorausgesetzt)<br />

<br />

NFA.09.020 Das System soll den User unterstützen möglichst wenig X<br />

Fehler zu machen<br />

<br />

Tabelle 7-1: Anforderungskatalog nicht funktionaler Anforderungen<br />

* Diese Anforderung kann erst in ca. einem halben Jahr abschliessend beurteilt werden.<br />

10.09.2009 Seite 54 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

7.2 Funktionale Anforderungen<br />

7.2.1 Publisher Teil<br />

ID Beschreibung M K Erfüllt<br />

FA.01<br />

Startup Applikation<br />

FA.01.010 Programm starten X <br />

FA.01.020 Login X <br />

FA.02<br />

Destinationsystem<br />

FA.02.010 Destinationsystem konfigurieren X -<br />

FA.03<br />

Change Source<br />

FA.03.010 Change Source konfigurieren X <br />

FA.03.020 Change Source löschen X <br />

FA.04<br />

Change Set<br />

FA.04.010 Change Set konfigurieren X <br />

FA.04.020 Change Set löschen X <br />

FA.05<br />

Change Tabelle<br />

FA.05.010 Changetabelle ändern X <br />

FA.05.020 Changetabelle purgen X <br />

FA.05.030 Changetabelle erstellen X <br />

FA.05.040 Changetabelle löschen X <br />

FA.06<br />

Sourcesystem<br />

FA.06.010 Sourcesystem konfigurieren X <br />

Tabelle 7-2: Übersicht Use Cases (Publish)<br />

Diese Kann Anforderungen wurden verworfen (Change Request ID 2)<br />

- Diese Kann Anforderung wurde nicht implementiert.<br />

7.2.2 Subscriber Teil<br />

ID Beschreibung M K Erfüllt<br />

FA.51<br />

Subscription<br />

FA.51.010 Subscription erstellen X -<br />

FA.51.020 Subscription löschen X -<br />

FA.51.030 Subscription aktivieren X -<br />

FA.52<br />

Destinationsystem<br />

FA.52.010 SubscriberView erstellen X -<br />

FA.52.020 SubscriberView löschen X -<br />

FA.52.030 SubscriberView extend Window X -<br />

FA.52.040 SubscriberView purge Window X -<br />

Tabelle 7-3: Übersicht Use Cases (Subscribe)<br />

- Der gesamte Subscriber Teil wird in einer zukünftigen Version umgesetzt<br />

10.09.2009 Seite 55 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

7.3 Ziele<br />

Die gesetzten Ziele konnten wie in Tabelle 7-1 ersichtlich erreicht werden. Einige wurden<br />

übertroffen, da die Daten mindestens jede halbe Stunde (Redolog Switch auf der<br />

Sourcedatenbank) an das Datawarehouse übertragen werden. Somit können sicher alle<br />

Tabellen täglich in den Stagingbereich übernommen werden, egal wie gross diese sind.<br />

Auch die Belastung kann sehr gering gehalten werden, da nur noch das senden der<br />

archivierten Redologs das Sourcesystem belasten und eine solche Belastung kann fast<br />

vernachlässigt werden.<br />

Um die Stabilität abschliessend zu beurteilen, bedarf es längerer Erfahrung. Da Change Data<br />

Capture eine etablierte Technologie bei Oracle darstellt, sollte auch dies kein Problem<br />

darstellen.<br />

Mit dem entwickelten Tool ist es nun auch möglich, eine Tabelle innerhalb kürzester Zeit in<br />

den Stagingbereich zu bringen und zu konfigurieren. Die anschliessende Transformation der<br />

Daten muss jedoch weiterhin gemacht werden und in diesem Teil wird keine weitere Zeit<br />

eingespart.<br />

Auf die Trigger in der Source Datenbanken kann in Zukunft verzichtet werden, da Change<br />

Data Capture nur die Änderungen überträgt.<br />

Der Grundstein für eine schlanke Übernahme ist nun gelegt, nun gilt es diese Technologie<br />

flächendeckend einzuführen.<br />

10.09.2009 Seite 56 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

8 Erfahrungen<br />

8.1 Resultat<br />

Mit dem Resultat bin ich grundsätzlich zufrieden. Alle Muss Anforderungen wurde umgesetzt<br />

und einige Kann Anforderungen konnten auch umgesetzt und getestet werden. Zudem<br />

konnte, durch die zahlreichen Change Requests, die Qualität des Tools gegenüber der ersten<br />

Planung zusätzlich verbessert werden.<br />

Bei der Programmierung hatte ich einige Ideen, welche sich hinterher als sehr praktisch<br />

erwiesen haben. Diese Ideen haben mich aber am Anfang sehr viel Zeit gekostet. Dadurch<br />

konnte die geplante Zeit für den Programmieraufwand um einige Stunden nicht eingehalten<br />

werden. Da ich nicht als Programmierer tätig bin, hätte man wahrscheinlich an einigen Stellen<br />

eine professionellere Lösung finden können. Der technische Teil hat aber grossen Spass<br />

gemacht und war für mich sehr lehrreich. Speziell aufwendig war das GUI, welches ich auch<br />

ein wenig unterschätzt habe. Es konnten aber trotzdem viele Funktionen, welche den<br />

Benutzer unterstützen (Shortcuts, Toolbar, Verhinderung von Fehleingaben, etc.) eingebaut<br />

werden. Auch die TreeView wurde mit selbst kreierten Icons ausgestattet.<br />

Ein Punkt welcher man hervorheben könnte ist, dass das Tool keine einzige Tabelle oder<br />

Konfigurationsdatei benötigt. Es bezieht alle Informationen aus den Standardtabellen der<br />

Oracle Datenbank und der Change Data Capture Technologie und auch das Login<br />

funktioniert über die normale Benutzerverwaltung der Datenbank.<br />

8.2 Ausblick<br />

Während der Entwicklung des Tools, sind mir immer Funktionen aufgefallen, welche die<br />

tägliche Arbeit des ETL - Programmierers vereinfachen könnten. Diese Funktionen haben<br />

zum Teil gar nichts mit der Technologie Change Data Capture zu tun, wären aber zum Teil<br />

extrem praktisch. Deshalb wird das Tool in Zukunft einige neue Features erfahren.<br />

Geplante Features für Version 2:<br />

• Verwaltung Subscribtion - Views<br />

• Dashboard um über den Betriebszustand einfach eine Überblick zu erhalten<br />

• Datenansicht der Changetabellen<br />

• Einige kleinere Anpassungen am GUI<br />

10.09.2009 Seite 57 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

8.3 Schlusswort<br />

Die ganze Zeit der Diplomarbeit war spannend, aber auch sehr anspruchsvoll. Da ich<br />

während der ganzen Zeit 100% in der Firma engagiert war und dadurch nicht mehr allzu viel<br />

Freizeit hatte. Ich konnte in dieser Zeit aber äusserst wertvolle Erfahrungen sammeln.<br />

Was bei der Dokumentation immer ein Problem war, war einen gesunden Mittelweg zwischen<br />

Detaillierungsgrad, Wahrung der Übersicht und Aufwand zu finden. Daher bin ich eigentlich<br />

positiv Überrascht, dass der Terminplan in vielen Bereichen sehr gut eingehalten werden<br />

konnte. Als Highlight kann sicher die Detailspezifikation angesehen werden. Hätte ich doch<br />

viel lieber schon im Mai mit der Umsetzung begonnen. Der Aufwand für eine genauere<br />

Analyse hat sich aber voll ausbezahlt.<br />

Zu guter Letzt möchte ich es nicht unterlassen, mich bei meinem Experten Herr Thomas<br />

Glauser zu bedanken, welcher mich durch dieses halbe Jahr begleitet hat und mir mit guten<br />

Ratschlägen zur Seite stand.<br />

10.09.2009 Seite 58 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9 Installations- und Betriebshandbuch<br />

Für das Installations- und Betriebshandbuch gibst es separates Dokument, welches auch auf<br />

der CD mit dem Setup vorhanden sein wird. Im diesem <strong>Diplombericht</strong> werden nur die<br />

wichtigen Kapitel angehängt.<br />

9.1 Technische Umgebung<br />

Dieses Kapitel gibt Auskunft über die technische Umgebung, in welcher das Tool LDI<br />

einwandfrei funktioniert. Bei unterschiedlichen Versionen kann ein einwandfreier Betrieb nicht<br />

garantiert werden.<br />

9.1.1 Client<br />

Betriebssystem: Windows XP<br />

DB-Verbindung: Oracle Client 11g oder 10g<br />

Framework: Microsoft .net Framework 3.5<br />

9.1.2 Datenbank<br />

9.1.2.1 RDBMS<br />

RDBMS:<br />

Oracle Enterprise Database11g<br />

9.1.2.2 Server Umgebung<br />

Das Betriebssystem des RDBMS ist nicht relevant für die Funktionalität von LDI.<br />

10.09.2009 Seite 59 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.2 Installation<br />

Die Installation muss in der gleichen Reihenfolge wie in diesem Kapitel vollzogen werden.<br />

9.2.1 Datenbank<br />

9.2.1.1 Konfiguration Change Data Capture<br />

Hier wird auf das Dokument des Herstellers (Oracle) verwiesen.<br />

Oracle Data Warehousing Guide 11g Release 1 (B28313-02)<br />

9.2.1.2 Konfiguration LDI Tool<br />

9.2.1.2.1 View erstellen (Abfrage Alert Log)<br />

Damit das Tool die Alerts von der Datawarehouse Datenbank abfragen kann, muss eine View<br />

erstellt werden:<br />

1. Auf Datawarehouse als User SYS (as sysdba) einloggen.<br />

2. View mit untenstehendem SQL erstellen<br />

Vorgang<br />

SQL<br />

View erstellen CREATE OR REPLACE VIEW "SYS"."LDI_ALERTLOG" AS<br />

SELECT * FROM X$DBGALERTEXT WITH READ ONLY<br />

Tabelle 9-1: SQL View erstellen<br />

9.2.1.2.2 User erstellen<br />

Auf dem Datawarehouse und auf den entsprechenden Source Datenbanken muss ein<br />

Publisher User erstellt werden:<br />

1. Auf Datawarehouse oder auf der Source Datenbank als User System einloggen.<br />

2. User mit untenstehendem SQL erstellen<br />

Vorgang<br />

SQL<br />

User erstellen CREATE USER CDC_PUBLISHER IDENTIFIED BY *Password<br />

DEFAULT TABLESPACE *Tablespacename;<br />

GRANT DBA TO CDC_PUBLISHER;<br />

Tabelle 9-2: SQL User erstellen<br />

*Password:<br />

*Tablespacename:<br />

Gewünschtes Passwort eingeben<br />

Als Tablespacename soll der Tablespace angegeben werden, welcher<br />

die Change Tabellen enthalten wird.<br />

10.09.2009 Seite 60 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.2.1.2.3 DB Links zu gewünschten Source - Systemen erstellen<br />

Damit das Tool die Meta-Daten von den Source Datenbanken beziehen kann, muss ein<br />

Datenbanklink pro Source Datenbank auf der Datawarehouse Datenbank erstellt werden.<br />

1. Auf Datawarehouse oder auf der Source Datenbank als User System einloggen.<br />

2. Link mit untenstehendem SQL erstellen<br />

Vorgang<br />

SQL<br />

Link erstellen CREATE PUBLIC DATABASE LINK *Linkname<br />

USING *Servicename<br />

Tabelle 9-3: SQL Link erstellen<br />

*Linkname:<br />

*Servicename:<br />

Der Linkname muss zwingend der gleiche Name sein wie der<br />

Servicename<br />

Der Servicename der Source - Datenbank angeben<br />

9.2.2 Setup<br />

Um das Setup zu starten muss die Datei EmmiLDISetup.msi ausgeführt werden. Ansonsten<br />

ist das Setup selbsterklärend.<br />

Startfenster<br />

Abbildung 9-1: Setup Startfenster<br />

10.09.2009 Seite 61 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Auswahl Installationsordner<br />

Abbildung 9-2: Setup Installationsordner<br />

Bestätigung Installation<br />

Abbildung 9-3:Setup Bestätigung Installation<br />

10.09.2009 Seite 62 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Ausführung Installation<br />

Abbildung 9-4:Setup Ausführung Installation<br />

Installation erfolgreich<br />

Abbildung 9-5: Setup Installation erfolgreich<br />

10.09.2009 Seite 63 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.3 Benutzerhandbuch<br />

In diesem Benutzerhandbuch sind die Möglichkeiten und die Handhabung des LDI Tools<br />

beschrieben. Es bietet einen groben Überblick über die Funktionen dieses Tools. Um Change<br />

Data Capture zu administrieren wird aber ein gutes Know-How über diese Technologie<br />

vorausgesetzt. Auf diese Technologie wird jedoch in diesem Handbuch nicht eingegangen,<br />

da diese in unzähligen Oracle Dokumenten zu genüge beschrieben ist. Ein empfehlenswertes<br />

Dokument ist der Oracle Data Warehousing Guide 11g Release 1 (B28313-02) hier wird<br />

Change Data Capture im Kapitel 16 genau beschrieben.<br />

9.3.1 Über LDI<br />

Mit LDI Version 1.0 kann die Technologie Change Data Capture von Oracle verwaltet<br />

werden. Es sind sowohl Changesourcen, Changesets und Changetables administrierbar. Alle<br />

möglichen Funktionen können in diesem Tool ausgeführt oder angepasst werden. In einer<br />

späteren Version werden auch die Subscription View administriert werden können.<br />

9.3.2 Startup LDI<br />

Beim aufstarten des Programms, wird die Loginmaske (Abb. 4-1) angezeigt. Dort müssen die<br />

Benutzerangaben (Publisher) der Datawarehouse Datenbank angegeben werden.<br />

Die Anmeldung erfolgt genau gleich wie diese bei normalen Oracle Datenbanken. Für<br />

detaillierte Angaben wird an dieser Stelle auf die Dokumentation von Oracle verwiesen.<br />

Abbildung 9-6: Loginmaske<br />

10.09.2009 Seite 64 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.3.3 Benutzeroberfläche<br />

Die Benutzeroberfläche (Abb. 4-2) ist wie die gewohnten Microsoft Produkte aufgeteilt. Sie<br />

lehnt sich auch sehr an den SQL Developer von Oracle. Am oberen Rand befinden sich die<br />

Menuleiste und die Toolbar. Am unteren Rand ist die Statusleiste angebracht.<br />

Auf der linken Seite befindet sich eine TreeView, welche die zentrale Navigation für das<br />

gesamt Tool darstellt. Der rechte Teil ist der eigentliche Arbeitsbereich.<br />

<br />

<br />

<br />

<br />

Abbildung 9-7: Benutzeroberfläche<br />

1. Menuleiste & Toolbar<br />

2. TreeView<br />

3. Eigenschaften der ausgewählten Objekte<br />

4. Statusbar<br />

10.09.2009 Seite 65 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.3.4 TreeView<br />

Die TreeView ist die zentrale Navigation des LDI Tools. Sie zeigt die gesamte Hierarchie des<br />

Change Data Capture eines Datawarehouses. Mit Doppelklick auf ein Knoten, wird das<br />

ausgewählte Objekt im rechten Arbeitsbereicht des Tools angezeigt und kann danach<br />

bearbeitet werden. Ein Klick mit der rechten Maustaste bewirkt das Anzeigen eines<br />

Kontextmenüs. Auf diesem Menu sind nur die möglichen Punkte aktiviert. Die anderen<br />

Punkte sind zwar sichtbar, aber nicht auswählbar.<br />

Abbildung 9-8: TreeView<br />

10.09.2009 Seite 66 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.3.5 Objekte bearbeiten<br />

Wenn ein Objekt bearbeitet wird, werden im rechten Teil der Applikation die verschiedenen<br />

Eigenschaften und Optionen angezeigt. Dieser Teil ist mit verschiedenen Registern unterteilt.<br />

<br />

Abbildung 9-9: Register des Bearbeitungsteils<br />

1. Register zur Erfassung der Eigenschaften und Optionen der Source Datenbank.<br />

2. Register zur Erfassung der Eigenschaften und Optionen der Datawarehouse<br />

Datenbank.<br />

3. Dieses Register enthält die zuletzt ausgeführten SQL Statements im Zusammenhang<br />

mit Change Data Capture. Diese Statements können auch in einem normalen SQL-<br />

Tool ausgeführt werden und sollen detailliert aufzeigen, was genaue konfiguriert<br />

wurde.<br />

4. Im Register Log sind die Alertmeldungen der DWH Datenbank aufgelistet. Dies gibt<br />

detailliert Auskunft über den Zustand der DB und der verschiedenen Capture<br />

Prozesse.<br />

9.3.6 Changesourcen bearbeiten<br />

Wenn eine Changesource zur Bearbeitung ausgewählt wird oder eine neue erstellt werden<br />

soll, werden im rechten Teil der Applikation die Eigenschaften angezeigt. Bei Erstellung<br />

können alle Eigenschaften erfasst werden. Bei Änderung einer Changesource können nur<br />

diese Felder verändert werden, welche noch änderbar sind. Die Applikation lässt nur Zeichen<br />

zur Eingaben zu, welche auch von Oracle unterstützt werden, dies soll den Benutzer vor<br />

Fehleingaben schützen.<br />

<br />

<br />

<br />

<br />

Abbildung 9-10: Changesource bearbeiten<br />

1. Changesource Name<br />

2. Beschreibung der Changesource<br />

3. Auswahl der Source Datenbank (hier werden nur diese Datenbanken angezeigt,<br />

welche auch mit Change Data Capture funktionieren)<br />

4. Erfassung der SCM (System Change Number). Mit dieser Option kann angegeben<br />

werden, ab welchem Zeitpunkt der Captureprozess starten soll. Der momentane Wert<br />

wird jeweils automatisch vom Tool abgefragt und angezeigt. Mit der Eingabe NULL<br />

wird diese Option so belassen wie sie ist.<br />

10.09.2009 Seite 67 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.3.7 Changesets bearbeiten<br />

Wenn ein Changeset zur Bearbeitung ausgewählt wird oder ein neues erstellt werden soll,<br />

werden im rechten Teil der Applikation die Eigenschaften angezeigt. Bei Erstellung können<br />

alle nötigen Eigenschaften erfasst werden. Bei Änderung einer Changesource können nur<br />

diese Felder verändert werden, welche noch änderbar sind. Die Applikation lässt nur Zeichen<br />

zur Eingaben zu, welche auch von Oracle unterstützt werden, dies soll den Benutzer vor<br />

Fehleingaben schützen.<br />

<br />

<br />

<br />

<br />

<br />

<br />

Abbildung 9-11: Changesets bearbeiten<br />

1. Changeset Name<br />

2. Beschreibung des Changesets<br />

3. Name der übergeordneten Changesource. Dieser kann nie verändert werden.<br />

4. Option Stop on DDL<br />

5. Hier kann der Zeitraum des Capturings genau definiert werden. Bei der Auswahl<br />

NULL werden keine zeitlichen Begrenzungen gesetzt<br />

6. Hier können drei weitere Optionen für den Capturingprozess gesetzt werden:<br />

• Enable Capture<br />

• Recover after Error<br />

• Remove DDL<br />

Die Optionen für die Changesets sind im Dokument Oracle Data Warehousing Guide 11g<br />

Release 1 (B28313-02) ausführlich beschrieben.<br />

10.09.2009 Seite 68 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.3.8 Changetabellen bearbeiten<br />

Wenn eine Changetabelle zur Bearbeitung ausgewählt wird oder eine neue erstellt werden<br />

soll, werden im rechten Teil der Applikation die Eigenschaften angezeigt. Bei Erstellung<br />

können alle nötigen Eigenschaften erfasst werden. Bei Änderung einer Changesource<br />

können nur diese Felder verändert werden, welche noch änderbar sind. Die Applikation lässt<br />

nur Zeichen zur Eingaben zu, welche auch von Oracle unterstützt werden, dies soll den<br />

Benutzer vor Fehleingaben schützen.<br />

9.3.8.1 Source Properties<br />

Hier werden die Angaben der Sourcetabelle erfasst.<br />

<br />

<br />

<br />

Abbildung 9-12: Changetabelle Source bearbeiten<br />

1. Auswahl Source Datenbank. Diese kann nie verändert werden, da sie vom<br />

übergeordneten Changeset vorgegeben ist.<br />

2. Owner der Source Tabelle. Bei dieser Auswahl werden nur mögliche Owner<br />

angezeigt. Systemuser sind nicht enthalten.<br />

3. Auswahl der Sourcetabelle. Hier werden nur diese Tabellen zur Verfügung gestellt,<br />

welche zum ausgewählten Owner gehören.<br />

Die Optionen für die Changesets sind im Dokument Oracle Data Warehousing Guide 11g<br />

Release 1 (B28313-02) ausführlich beschrieben.<br />

10.09.2009 Seite 69 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.3.8.2 Destination Properties<br />

Hier werden die Angaben der Destinationtabelle (Capture Table) erfasst.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Abbildung 9-13: Changetabelle Destination bearbeiten<br />

1. Auswahl Destination Owner. Hier stehen nur mögliche Owner des Datawarehouses<br />

zur Auswahl.<br />

2. Name der Changetabelle. Hier lässt das Tool nur Oracle kompatible Zeichen zu.<br />

3. Auswahl des Changesets. Diese ist nie mutierbar, da diese durch das übergeordnete<br />

Changeset gegeben ist.<br />

4. Diese Auswahl beinhaltet die Capture Values. Folgende Werte können ausgewählt<br />

werden:<br />

• New = Nur die neuen Werte der Updates auf der Sourcetabelle werden in die<br />

Changetabelle geschrieben<br />

• Old = Nur die Werte vor einem Update auf der Sourcetabelle werden in die<br />

Changetabelle geschrieben<br />

• Both = Es werden sowohl die alten wie auch die neuen Werte bei einem<br />

Update auf der Sourcetabelle in die Changetabelle geschrieben<br />

10.09.2009 Seite 70 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

5. Im Feld Optionsstring können weitere Optionen für das kreieren eine Tabelle<br />

angegeben werden. Die Syntax ist die gleiche wir bei einem normalen CREATE<br />

TABLE DDL Befehl. Die möglichen Optionen können in der Oracle Dokumentation<br />

nachgelesen werden. (Oracle Database Administrator’s Guide 11g Release 1<br />

(B28310-01))<br />

6. In dieser Liste werden die Spalten einer Tabelle angezeigt. Ob es die Spalten der<br />

Sourcetabelle oder diese der Changetabelle sind ist abhängig von der Auswahl bei<br />

Punkt 8.<br />

7. In diesem Bereich werden die konfigurierten Hilfsspalten der Changetabelle<br />

angezeigt. Dieser Bereich dient nur zur Anzeige.<br />

8. Bei den beiden Checkboxen „Add“ und „Drop“ wird entschieden, ob die selektierten<br />

Spalten entfernt bzw. hinzugefügt werden sollen. Wenn die Checkbox „Add“ selektiert<br />

ist, werden in der Liste (Punkt 6) alle Spalten der Sourcetabelle angezeigt, welche<br />

noch nicht in der Changetabelle vorhanden sind. Ist die Checkbox „Drop“ angewählt,<br />

werden in der Liste (Punkt 6) alle Spalten der Changetabelle angezeigt. Diese beiden<br />

Checkboxen haben auch Einfluss auf den Bereich von Punkt 9. Wenn in diesem<br />

Bereich eine Hilfsspalte auf Y (yes) steht, wird diese auch entfern bzw. hinzugefügt.<br />

9. In diesem Bereich kann angegeben werden, ob eine Hilfsspalte hinzugefügt bzw.<br />

entfernt werden soll. Siehe auch Punkt 8.<br />

Die Optionen für die Changetabellen und die Hilfsspalten sind im Dokument Oracle Data<br />

Warehousing Guide 11g Release 1 (B28313-02) ausführlich beschrieben.<br />

10.09.2009 Seite 71 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

9.3.9 Shortcuts<br />

Die folgenden Shortcuts können genutzt werden:<br />

Shortcut<br />

[Strg] + [C]<br />

[Strg] + [V]<br />

[Strg] + [X]<br />

[Strg] + [F4]<br />

[Strg] + [Tab]<br />

[Alt] + [Leertaste]<br />

[Alt] + [Leertaste] + [X]<br />

[Alt] + [Leertaste] + [N]<br />

[Alt] + [Leertaste] + [X]<br />

[Alt] + [unterstrichener Menubuchstabe]<br />

[Shift] + [F10]<br />

[Shift] + [Tab]<br />

Tabelle 9-4: Shortcuts<br />

Beschreibung<br />

Kopieren<br />

Einfügen<br />

Ausschneiden<br />

Applikation schliessen<br />

Register wechseln<br />

(mit Shift gegen den Uhrzeigersinn)<br />

Systemmenü<br />

Fenster maximieren<br />

Fenster minimieren<br />

Fenster wiederherstellen<br />

Menupunkt Aufruf<br />

Kontextmenu öffnen<br />

Rückwärts durch Optionen<br />

9.3.10 Fehlerbehandlung<br />

Tritt in der Applikation eine Fehler auf, so wird dieser mit einem Error Provider angezeigt<br />

(Abb. 4-9). Beim Auftreten eines Fehlers, wird der rote Punkt mit dem Ausrufezeichen<br />

blinkend angezeigt. Um die genaue Fehlermeldung anzuzeigen, muss mit dem Mauszeigen<br />

auf dem roten Punkt positioniert werden. Mit einem Mausklick irgendwo im Fenster des Error<br />

Provider, kann der Fehler ausgeblendet werden. Ist der Fehler im Change Data Capture<br />

aufgetreten, wird immer die original Fehlermeldung der Datenbank im Tool ausgegeben.<br />

Abbildung 9-14: Fehleranzeige<br />

10.09.2009 Seite 72 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

10 Change Requests<br />

Die Usability Test haben immer wieder einige kleinere Änderungen ergeben, welche aber für<br />

die Applikation zum Teil einen erheblichen Mehrwert dargestellt haben. Diese Änderungen<br />

wurden in der Form von Change Requests aufgenommen. Die Änderungen, welche vom<br />

Auftraggeber bewilligt wurde, wurden innerhalb dieses Projekts umgesetzt. Die<br />

nichtgenehmigten Änderungen werden voraussichtlich in einem späteren Release umgesetzt.<br />

Auf den folgenden Seiten sind die Change Request tabellarisch dargestellt.<br />

Angaben zur Tabelle Change Requests:<br />

Personen<br />

Kurzzeichen<br />

Experte Thomas Glauser<br />

TGL<br />

ETL - Programmierer Stéphane Probst SPR<br />

Auftraggeber Urs Müller<br />

UMU<br />

Tabelle 10-1: Personen Change Request<br />

10.09.2009 Seite 73 von 80


CR<br />

Nr. Beschreibung<br />

Anforderungs-<br />

ID<br />

Mehrkosten<br />

Nein / Ja<br />

(Betrag)<br />

Grund<br />

Bewilligung<br />

durch<br />

Auftraggeber<br />

(UMU)<br />

Review<br />

durch<br />

1<br />

Bei der Detailspezifikation wurden aufgrund<br />

neuer Erkenntnisse die Funktionalen<br />

Anforderungen nochmals überarbeitet. Deshalb<br />

wird beantragt, die Anforderungen der<br />

Detailspezifikation als die geltenden dieses<br />

Projekts zu bewilligen.<br />

Funktionale<br />

Anforderungen<br />

Pflichtenheft<br />

Nein<br />

Mit den überarbeiteten Anforderungen,<br />

können die Projektziele nicht nur<br />

erreicht, sondern übertroffen werden.<br />

Auch kann das Tool für spätere<br />

Erweiterungen, besser konzipiert<br />

werden.<br />

̌<br />

TGL<br />

SPR<br />

2<br />

3<br />

4<br />

5<br />

6<br />

Die in der Detailspezifikation definierte<br />

Verwaltung des Sourcesystems kann komplett<br />

weggelassen werden, da die Detailanalyse<br />

gezeigt hat, dass eine elegantere Lösung mit<br />

den Change Sourcen möglich ist. Das<br />

Sourcesystem hat nur eine informative Funktion<br />

und diese Informationen können aus der<br />

Change Source bezogen werden. Deshalb<br />

können die Anforderungen des Sourcesystems<br />

weggelassen werden. FA.06.010 Nein<br />

Auf dem GUI ist ein Reiter geplant, welcher<br />

anzeigt, was im<br />

Moment bearbeitet wird. Dieser ist überflüssig Gesamtes GUI Nein<br />

Das Change Set kann aktiviert bzw. deaktiviert<br />

werden.<br />

Dies kann der Benutzer bequemer über das<br />

Kontextmenu in der TreeView verwalten, als auf<br />

dem rechten Panel im Konfigurationsteil des<br />

Tools FA.04.010 Nein<br />

Bei der Erstellung einer Changetabelle wäre<br />

eine Listbox effektiver als eine ComboBox. FA.05.030 Nein<br />

Beim erstellen oder ändern einer Changetabelle<br />

konnte der Type der Spalten verändert werden.<br />

Dies wird als nicht sinnvoll erachtet.<br />

FA.05.010<br />

FA.05.030<br />

Nein<br />

Ein Ziel der Applikation ist, dass<br />

möglichst wenige<br />

Daten in einer speziellen Tabelle oder<br />

in einem Konfigurationsfile abgelegt<br />

werden. Dies damit eine sehr schlanke<br />

Verwaltung dieses Tools möglich ist.<br />

Auch der Usability Walkthrough hat<br />

ergeben, dass die Verwaltung des<br />

Sourcesystems überflüssig und es zu<br />

einer schlankeren Handhabung beiträgt. ̌ SPR<br />

Der Usability Walkthrough hat ergeben,<br />

dass dieser Reiter überflüssig ist und<br />

kann deshalb weggelassen werden. ̌ SPR<br />

Der Usability Walkthrough hat ergeben,<br />

dass die<br />

Manipulation über ein Kontextmenu für<br />

den Benutzer einfacher und logischer<br />

ist. ̌ SPR<br />

Der Usability Walkthrough hat ergeben,<br />

dass die Auswahl einer Sourcetabelle<br />

so einfacher wird. ̌ SPR<br />

Beim Usability Walkthrough ist<br />

aufgefallen, dass die Änderung der<br />

Datentypen nicht sinnvoll ist ̌ SPR<br />

10.09.2009 Seite 74 von 80


CR<br />

Nr. Beschreibung<br />

7<br />

8<br />

9<br />

Nach Anmeldung des Benutzers, wird auf dem<br />

rechten Panel nichts angezeigt. Dort könnten<br />

einige Angaben zum Zustand der verschiedenen<br />

Prozesse stehen.<br />

Auf der rechten Seite im GUI sollte immer ein<br />

Reiter Log vorhanden sein. In diesem kann der<br />

jeweilige Status der Ausführung angeschaut<br />

werden<br />

Auf der rechten Seite im GUI ist ebenfalls eine<br />

Toolbox geplant. Dies ist überflüssig, da die<br />

gleichen Buttons auch auf der Haupttoolbox<br />

vorhanden sind.<br />

Anforderungs-<br />

ID<br />

Mehrkosten<br />

Nein / Ja<br />

(Betrag)<br />

Neue Anforderung<br />

(Kann) Ja (700.--)<br />

Neue Anforderung<br />

(Kann) Ja (800.--)<br />

Bewilligung<br />

durch<br />

Auftraggeber Review<br />

Grund<br />

(UMU) durch<br />

Beim Usability Walkthrough und der<br />

dazu geführten Diskussion ist<br />

aufgefallen, dass diese<br />

Statusinformationen sehr praktisch für<br />

den User wären. SPR<br />

Wenn eine Ausführung aus dem Tool<br />

nicht erfolgreich ist, muss analysiert<br />

werden warum nicht. Das Log ist daher<br />

sehr nützlich und sollte direkt im Tool<br />

angesehen werden können. ̌ SPR<br />

FA.02.XX,<br />

FA.03.XX,<br />

FA.04.XX,<br />

FA.05.XX Nein Siehe Beschreibung ̌ SPR<br />

10<br />

Im Contextmenu sollte ein Save Menu Punkt<br />

vorhanden sein<br />

Kontextmenu<br />

Kapitel 3.2.8.4<br />

in Detailspezifikation<br />

Nein<br />

Dieser Menupunkt wäre in manchen<br />

Fällen praktisch und gibt keinen<br />

Mehraufwand ̌ SPR<br />

11<br />

Im Menu wurde ein File / Open Menupunkt<br />

geplant, dieser kann weggelassen werden<br />

Menu Bar<br />

Kapitel 3.2.8.4<br />

in Detailspezifikation<br />

Nein<br />

Dieser Menupunkt ist überflüssig und<br />

kann zum Teil verwirrend wirken ̌ SPR<br />

12<br />

Im Menu wurde unter Run ein Delete Button<br />

geplant, dieser sollte unter der Gruppe File<br />

platziert werden<br />

Menu Bar<br />

Kapitel 3.2.8.4<br />

in Detailspezifikation<br />

Nein<br />

Der Menupunkt ist für den User unter<br />

File logischer zu finden. Dies hat ein<br />

weiterer Usability Test mit dem ETL<br />

Programmierer ergeben ̌ SPR<br />

13<br />

In der Toolbar kann der Open Button<br />

weggelassen werden<br />

Tool Bar<br />

Kapitel 3.2.8.3<br />

in Detailspezifikation<br />

Nein<br />

Dieser Button ist überflüssig und kann<br />

zum Teil verwirrend wirken ̌ SPR<br />

10.09.2009 Seite 75 von 80


CR<br />

Nr. Beschreibung<br />

Anforderungs-<br />

ID<br />

Mehrkosten<br />

Nein / Ja<br />

(Betrag)<br />

Grund<br />

Bewilligung<br />

durch<br />

Auftraggeber<br />

(UMU)<br />

Review<br />

durch<br />

14<br />

Im Menu unter der Gruppe View ist der Log<br />

Menupunkt überflüssig.<br />

Da nicht nur eine Tabelle, sondern auch ein<br />

ChangeSet oder die ganze Tabelle gepurged<br />

werden können, sollte dies auch im Tool<br />

15 möglich sein.<br />

Tabelle 10-2: Change Requests<br />

Menu Bar<br />

Kapitel 3.2.8.4<br />

in Detailspezifikation<br />

Nein<br />

Neue Anforderung<br />

(Muss) Ja (300.--)<br />

Dieser Punkt wurde durch den Change<br />

Reguest CR8 überflüssig ̌ SPR<br />

Diese Möglichkeiten sind im Laufe des<br />

Projekts aufgefallen und sollte<br />

umgesetzt werden ̌ SPR<br />

10.09.2009 Seite 76 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

11 Anhang<br />

11.1 Glossar<br />

Begriff<br />

Aktor<br />

CDC<br />

CPU<br />

CS<br />

Cset<br />

DB<br />

DBA<br />

Destination<br />

DWH<br />

E1<br />

EFM<br />

ERP<br />

ETL<br />

Beschreibung<br />

Ein Aktor ist ein Benutzer oder ein System welches mit der<br />

Applikation interagiert.<br />

Change Data Capture - Technologie von Oracle zum Übertragen der<br />

Änderungen einer Datenbank<br />

zentrale Verarbeitungseinheit eine Computers (Prozessor)<br />

Change Source<br />

Change Set<br />

Datenbank<br />

Datenbankadministrator<br />

Ziel - in diesem Projekt meist der Staging bereich des DWH<br />

Datawarehouse. Zentrale Datensammlung (Datenbank), deren Inhalt<br />

sich aus Daten unterschiedlicher Quellen zusammensetzt.<br />

Name des ERP Releases, welcher in der EMMI eingesetzt wird.<br />

Emmi Factory Management<br />

Enterprise Ressource Planning<br />

Bezeichnet den Prozess einer Schnittstelle zu einem DWH.<br />

E. Extraktion (Extract) der relevanten Daten aus verschiedenen Quellen<br />

T. Transformation (Transform) der Daten in das Format der<br />

Zieldatenbank<br />

L. Laden (Load) der Daten in die Zieldatenbank.<br />

GUI<br />

Graphical User Interface, englischer Begriff für Bedienoberfläche.<br />

LDI<br />

Lightweight Datawarehouse Interface<br />

MIS<br />

Management Information System<br />

OLAP<br />

Online Analytical Processing<br />

OLTP<br />

Online Transaction Processing<br />

Oracle<br />

Oracle ist eine Datenbankmanagementsoftware<br />

Owner<br />

Eigentümer eine Tabelle und Benutzer einer Datenbank<br />

Proof of Concept Machbarkeitsstudie<br />

purge<br />

reorganisieren von nicht benötigten Daten<br />

Records Datensatz einer Tabelle<br />

Redo Logs Dort werde alle Änderungen einer DB gespeichert<br />

Review<br />

Begutachtung<br />

RMT<br />

Rechte Maus Taste<br />

Rows<br />

siehe Record<br />

Schema siehe Owner<br />

SCN<br />

System Change Number<br />

Source<br />

Quelle - in diesem Projekt eine ERP System<br />

tnsnames.ora File welches die auf dem Client konfigurierten Datenbanken enthält<br />

10.09.2009 Seite 77 von 80


Tool<br />

Trigger<br />

UML<br />

Use Case<br />

<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Werkzeug<br />

Datenbanktrigger. Bei einer bestimmten Art einer Änderung, wird ein<br />

gespeichertes Programm aufgerufen.<br />

Unified Modeling Language<br />

Anwendungsfall - Verhalten zwischen Aktoren und dem betrachteten<br />

System<br />

User<br />

Benutzer, Anwender eines Systems<br />

Tabelle 11-1: Glossar<br />

11.2 Referenzen<br />

Folgende Dokumente und Webadressen dienten als Informationsquellen.<br />

Projektmanagement<br />

http://de.wikipedia.org/<br />

http://www.stefan-baur.de<br />

http://www.it-checklists.com<br />

Unterlagen BFH CAS Business Engineering, Zühlke Engineering AG<br />

Oracle Data Capture<br />

Oracle Data Warehousing Guide 10g Release 2 (B14223-02)<br />

Oracle Data Warehousing Guide 11g Release 1 (B28313-02)<br />

ETL Architektur<br />

The Data Warehouse Lifecycle Toolkit, Ralph Kimball<br />

Skript Data Warehousing, CAS Information Management und BI, Thomas Glauser<br />

10.09.2009 Seite 78 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

11.3 Tabellenverzeichnis<br />

Tabelle 2-1: Entscheidungstabelle........................................................................................ 13<br />

Tabelle 3-1: Übersicht Use Cases (Publish) ......................................................................... 20<br />

Tabelle 3-2: Aktoren ............................................................................................................. 20<br />

Tabelle 3-3: SQL Programm starten..................................................................................... 22<br />

Tabelle 3-4: SQL Change Source......................................................................................... 25<br />

Tabelle 3-5: SQL Change Source löschen............................................................................ 27<br />

Tabelle 3-6: SQL Change Set konfigurieren ......................................................................... 29<br />

Tabelle 3-7: SQL Change Set löschen ................................................................................. 31<br />

Tabelle 3-8: SQL Changetabelle ändern .............................................................................. 33<br />

Tabelle 3-9: SQL Change Tabelle konfigurieren................................................................... 34<br />

Tabelle 3-10: SQL Source Tabelle konfigurieren .................................................................. 37<br />

Tabelle 3-11: SQL Source Tabelle löschen .......................................................................... 39<br />

Tabelle 3-12: Übersicht Use Cases (Subscribe) ................................................................... 40<br />

Tabelle 3-13: Übersicht Menu Bar ........................................................................................ 41<br />

Tabelle 3-14: Übersicht Kontext Menu.................................................................................. 42<br />

Tabelle 4-1: Namenskonventionen Sourcecode ................................................................... 44<br />

Tabelle 5-1: Übersicht Tests................................................................................................. 47<br />

Tabelle 6-1: Inhalte und Resultate der Projektphasen .......................................................... 50<br />

Tabelle 6-2: Zeitmanagement............................................................................................... 51<br />

Tabelle 6-3: Termine ............................................................................................................ 53<br />

Tabelle 7-1: Anforderungskatalog nicht funktionaler Anforderungen..................................... 54<br />

Tabelle 7-2: Übersicht Use Cases (Publish) ......................................................................... 55<br />

Tabelle 7-3: Übersicht Use Cases (Subscribe) ..................................................................... 55<br />

Tabelle 9-1: SQL View erstellen ........................................................................................... 60<br />

Tabelle 9-2: SQL User erstellen ........................................................................................... 60<br />

Tabelle 9-3: SQL Link erstellen ............................................................................................ 61<br />

Tabelle 9-4: Shortcuts .......................................................................................................... 72<br />

Tabelle 10-1: Personen Change Request............................................................................. 73<br />

Tabelle 10-2: Change Requests ........................................................................................... 76<br />

Tabelle 11-1: Glossar ........................................................................................................... 78<br />

11.4 Abbildungsverzeichnis<br />

Abbildung 2-1: ETL Prozess Schema..................................................................................... 7<br />

Abbildung 2-2: Ladeprozess grösserer Tabellen..................................................................... 8<br />

Abbildung 2-3: CPU Kurve Quellsystem ................................................................................. 9<br />

Abbildung 2-4: Prozessablauf Vision .................................................................................... 10<br />

Abbildung 2-5: Prozessablauf Change Data Capture ........................................................... 12<br />

Abbildung 3-1: Architektur Change Data Capture................................................................. 15<br />

Abbildung 3-2: Übersicht Modus CDC .................................................................................. 17<br />

Abbildung 3-3: Package Diagramm LDI................................................................................ 18<br />

Abbildung 3-4: Use Case Diagramm Publish........................................................................ 19<br />

Abbildung 3-5: Aktivitätsdiagramm Programm starten .......................................................... 21<br />

Abbildung 3-6: Aktivitätsdiagramm Login.............................................................................. 22<br />

Abbildung 3-7: GUI Login ..................................................................................................... 23<br />

Abbildung 3-8: Aktivitätsdiagramm Change Source konfigurieren ........................................ 24<br />

Abbildung 3-9: GUI Change Source ..................................................................................... 25<br />

Abbildung 3-10: Aktivitätsdiagramm Change Source löschen............................................... 26<br />

Abbildung 3-11: Aktivitätsdiagramm Change Set konfigurieren ............................................ 28<br />

Abbildung 3-12: GUI Change Set konfigurieren.................................................................... 29<br />

10.09.2009 Seite 79 von 80


<strong>Diplombericht</strong><br />

<strong>Master</strong> <strong>Thesis</strong> MAS-07-01.21<br />

Abbildung 3-13: Aktivitätsdiagramm Change Set löschen..................................................... 30<br />

Abbildung 3-14: GUI Change Set löschen ............................................................................ 31<br />

Abbildung 3-15: Aktivitätsdiagramm Changetabelle ändern.................................................. 32<br />

Abbildung 3-16: GUI Changetabelle ändern ......................................................................... 33<br />

Abbildung 3-17: Aktivitätsdiagramm Changetabelle purgen.................................................. 34<br />

Abbildung 3-18: Aktivitätsdiagramm Changetabelle erstellen ............................................... 35<br />

Abbildung 3-19: GUI Changetabelle erstellen (Source) ........................................................ 36<br />

Abbildung 3-20: GUI Changetabelle erstellen Destination .................................................... 37<br />

Abbildung 3-21: Aktivitätsdiagramm Change Tabelle löschen .............................................. 38<br />

Abbildung 3-22: GUI Source Tabelle löschen ....................................................................... 39<br />

Abbildung 3-23: Use Case Diagramm (Subscribe) ............................................................... 40<br />

Abbildung 3-24: Menu Bar.................................................................................................... 41<br />

Abbildung 3-25: Übersicht Toolbar ....................................................................................... 42<br />

Abbildung 3-26: Übersicht Statusbar .................................................................................... 42<br />

Abbildung 4-1: Software Layer ............................................................................................. 43<br />

Abbildung 4-2: DB Model DWH ............................................................................................ 45<br />

Abbildung 4-3: DB Model Source Datenbank ....................................................................... 46<br />

Abbildung 6-1: Vorgehensmodell.......................................................................................... 50<br />

Abbildung 6-2: Projektplan ................................................................................................... 52<br />

Abbildung 9-1: Setup Startfenster......................................................................................... 61<br />

Abbildung 9-2: Setup Installationsordner .............................................................................. 62<br />

Abbildung 9-3:Setup Bestätigung Installation ....................................................................... 62<br />

Abbildung 9-4:Setup Ausführung Installation ........................................................................ 63<br />

Abbildung 9-5: Setup Installation erfolgreich......................................................................... 63<br />

Abbildung 9-6: Loginmaske .................................................................................................. 64<br />

Abbildung 9-7: Benutzeroberfläche ...................................................................................... 65<br />

Abbildung 9-8: TreeView ...................................................................................................... 66<br />

Abbildung 9-9: Register des Bearbeitungsteils ..................................................................... 67<br />

Abbildung 9-10: Changesource bearbeiten........................................................................... 67<br />

Abbildung 9-11: Changesets bearbeiten............................................................................... 68<br />

Abbildung 9-12: Changetabelle Source bearbeiten............................................................... 69<br />

Abbildung 9-13: Changetabelle Destination bearbeiten ........................................................ 70<br />

Abbildung 9-14: Fehleranzeige............................................................................................. 72<br />

10.09.2009 Seite 80 von 80

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!