Diplomarbeit - Hochschule Wismar

Werbung
Hochschule Wismar
Fachbereich Wirtschaft
Diplomarbeit
Erstellung eines dynamischen Reportingmoduls auf
Grundlage einer operativen Unternehmensdatenbank
Diplomarbeit zur Erlangung des Grades
Diplom-Wirtschaftsinformatiker (FH)
der Hochschule Wismar
eingereicht von:
Martin Behrndt
geboren am 29. Oktober 1980 in Stralsund
Studiengang Wirtschaftsinformatik
Matrikel Nr. : 101045
Betreuer:
Prof. Dr. J. Cleve
Prof. Dr. Ing. U. Lämmel
Wismar, den 28. Mai 2006
Inhaltsverzeichnis
I
Einleitung
1
1
Einleitung und Problemstellung
2
1.1
Motivation der Ausarbeitung . . . . . . . . . . . . . . . . . . . . . .
2
1.2
Einordnung der Problemstellung . . . . . . . . . . . . . . . . . . . .
3
II
2
Theorie
4
Allgemeine Begriffserklärung
5
2.1
Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Datenbanksysteme . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.1
Relationale Datenbanken . . . . . . . . . . . . . . . . . . . .
7
2.2.2
Multidimensionale Datenbanken . . . . . . . . . . . . . . . .
9
Relational versus Multidimensional . . . . . . . . . . . . . . . . . .
10
2.3.1
Anwendungsorientierte Ebene . . . . . . . . . . . . . . . . .
10
2.3.2
Datenmodellierungsebene . . . . . . . . . . . . . . . . . . .
12
2.3.3
Darstellungsorientierte Ebene . . . . . . . . . . . . . . . . .
12
Informationssysteme . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.4.1
Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.4.2
Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.4.3
Informationsbedarf . . . . . . . . . . . . . . . . . . . . . . .
14
MIS-Konzepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.5.1
Begriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.5.2
Management Information Systems . . . . . . . . . . . . . . .
16
2.5.3
Management Reporting Systems . . . . . . . . . . . . . . . .
17
2.5.4
Decision Support Systems . . . . . . . . . . . . . . . . . . .
17
2.5.5
Executive Information Systems . . . . . . . . . . . . . . . .
18
2.5.6
Data Warehouse . . . . . . . . . . . . . . . . . . . . . . . .
19
2.5.7
Online Analytical Processing . . . . . . . . . . . . . . . . . .
24
Client-Server Architektur . . . . . . . . . . . . . . . . . . . . . . . .
25
2.3
2.4
2.5
2.6
I
INHALTSVERZEICHNIS
III
3
Praxis
Ausgangssituation
28
3.1
Das MedienHaus Rostock . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2
Grundgedanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.3
Die manuelle Auswertung . . . . . . . . . . . . . . . . . . . . . . .
31
3.4
Auswertungsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.4.1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.4.2
Definition und Vorgehen . . . . . . . . . . . . . . . . . . . .
33
3.4.3
Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
Grundsätzliche Schwierigkeiten . . . . . . . . . . . . . . . . . . . .
35
3.5.1
Sprachprobleme . . . . . . . . . . . . . . . . . . . . . . . .
36
3.5.2
Abfrageerstellung . . . . . . . . . . . . . . . . . . . . . . . .
37
3.6
Erweiterung der Problemstellung . . . . . . . . . . . . . . . . . . . .
38
3.7
Lösungsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.7.1
OLAP und Data Warehouse . . . . . . . . . . . . . . . . . .
39
3.7.2
Externe Berichtswerkzeuge . . . . . . . . . . . . . . . . . .
41
3.7.3
Eigene Entwicklung . . . . . . . . . . . . . . . . . . . . . .
42
3.5
4
Software Engineering
43
4.1
Anforderungsdefinition . . . . . . . . . . . . . . . . . . . . . . . . .
43
4.1.1
Zielbestimmung . . . . . . . . . . . . . . . . . . . . . . . .
44
4.1.2
Produkteinsatz . . . . . . . . . . . . . . . . . . . . . . . . .
44
4.1.3
Produktübersicht . . . . . . . . . . . . . . . . . . . . . . . .
45
4.1.4
Produktfunktionen, -daten und -leistungen . . . . . . . . . . .
46
Konzeption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
4.2.1
Grobkonzept . . . . . . . . . . . . . . . . . . . . . . . . . .
47
4.2.2
Feinkonzept . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.3.1
Verbale Beschreibung . . . . . . . . . . . . . . . . . . . . .
50
4.3.2
Komponentenüberblick . . . . . . . . . . . . . . . . . . . . .
52
4.3.3
Datenbankkomponente . . . . . . . . . . . . . . . . . . . . .
53
4.3.4
Query-Engine . . . . . . . . . . . . . . . . . . . . . . . . . .
56
4.2
4.3
5
27
Umsetzung
61
5.1
Aufbau der Tabellenstruktur . . . . . . . . . . . . . . . . . . . . . .
61
5.1.1
Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . .
61
5.1.2
Besonderheiten der Laufzeitumgebung . . . . . . . . . . . .
62
5.1.3
Das RPE-Datenmodell . . . . . . . . . . . . . . . . . . . . .
63
II
INHALTSVERZEICHNIS
5.2
6
Implementierung des Projektions-Moduls . . . . . . . . . . . . . . .
Schlussfolgerungen und Fazit
63
66
IV Anhang
VI
Ehrenwörtliche Erklärung
VII
Abkürzungsverzeichnis
VIII
Literaturverzeichnis
X
Stichwortverzeichnis
XII
A SQL_Analyser.pl
XIII
B Datenblätter Berichtswerkzeuge
XVII
B.1 Business Objects Crystal Reports . . . . . . . . . . . . . . . . . . . . XVII
B.2 Cognos ReportNet . . . . . . . . . . . . . . . . . . . . . . . . . . . XVII
B.3 Microsoft Reporting Services . . . . . . . . . . . . . . . . . . . . . . XVII
C Detailbeschreibung des Datenmodells
XXVII
D Inhalt der Begleit-CD
XXXII
III
Abbildungsverzeichnis
2.1
Aufbau eines Datenbanksystems . . . . . . . . . . . . . . . . . . . .
6
2.2
relationale Beispieltabellen . . . . . . . . . . . . . . . . . . . . . . .
8
2.3
Würfelmetapher . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.4
Einordnung der MIS-Konzepte . . . . . . . . . . . . . . . . . . . . .
15
2.5
Aufbau eines MIS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.6
Aufbau eines DSS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.7
Daten- und Informationsfluss im DWH-Modell . . . . . . . . . . . .
20
2.8
Sprachkonflikte im Datawarehouse . . . . . . . . . . . . . . . . . . .
21
2.9
Data Warehouse-Architekturen . . . . . . . . . . . . . . . . . . . . .
23
2.10 3-Schichten Architektur . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.1
Verbindung KDB-MHR . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.2
Ablauf einer manuellen Auswertung . . . . . . . . . . . . . . . . . .
31
3.3
graphischen Darstellung der Auswertungsanalyse . . . . . . . . . . .
34
4.1
Die ReportingEngine im Anwendungskontext . . . . . . . . . . . . .
45
4.2
Use Case Diagramm des Grobkonzeptes . . . . . . . . . . . . . . . .
47
4.3
Use Case: Abfragefragmente definieren . . . . . . . . . . . . . . . .
48
4.4
Use Case: Auswertung zusammenstellen . . . . . . . . . . . . . . . .
49
4.5
Aktivitätsdiagramm: Abfrage zusammenstellen . . . . . . . . . . . .
49
4.6
Komponentenüberblick . . . . . . . . . . . . . . . . . . . . . . . . .
52
4.7
ERD der administrativen Daten . . . . . . . . . . . . . . . . . . . . .
53
4.8
ERD der Nutzerdaten . . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.9
ERD der Ergebnisdaten . . . . . . . . . . . . . . . . . . . . . . . . .
55
4.10 ERD des gesamten Datenmodells . . . . . . . . . . . . . . . . . . . .
56
4.11 beispielhafte Projektion und Speicherung aus Datensicht . . . . . . .
58
4.12 Programmablaufplan von Projektion und Datenspeicherung . . . . . .
59
5.1
64
Datenmodell des Reporting-Moduls . . . . . . . . . . . . . . . . . .
IV
Tabellenverzeichnis
2.1
Nutzengetriebene Unterschiede zwischen OLTP und OLAP . . . . . .
11
2.2
DBS-getriebene Unterschiede zwischen OLTP und OLAP . . . . . .
11
2.3
Darstellung Relation und Cube . . . . . . . . . . . . . . . . . . . . .
12
5.1
Suffixe in der KDB . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
V
Teil I
Einleitung
1
Kapitel 1
Einleitung und Problemstellung
1.1
Motivation der Ausarbeitung
In Anbetracht zunehmender Globalisierung, steigender Markttransparenz sowie der
verstärkten Austauschbarkeit von Produkten und Dienstleistungen vergrößert sich der
Bedarf an entscheidungsstützenden Werkzeugen immer weiter. Gleichzeitig wächst die
Anzahl der zur Verfügung stehenden Informationen und damit auch ihre Bedeutung
für den wirtschaftlichen Erfolg eines Unternehmens [FROS03]. Jedoch wäre es weit
gefehlt zu behaupten, mehr Informationen sei gleichbedeutend mit mehr Erfolg. Vielmehr gilt es die Devise „die richtige Information zur richtigen Zeit am richtigen Ort“
umzusetzen.
Als Konsequenz wurde in den letzten Jahrzehnten eine Reihe von Ansätzen entwickelt, um vorhandene Daten und Informationen zur Entscheidungsstützung zu nutzen.
Die Grundlage moderner Systeme bilden dabei zumeist analytische Datenbanken, welche neben den operativen Datenbanken und Informationssystemen betrieben werden.
Kleine, mittelständische und zum Teil auch größere Unternehmen scheuen nicht selten
Aufwand und Kosten für die Erstellung und den Betrieb solcher Datenbanksysteme.
Bei anderen Unternehmen ist die Integration solcher Systeme in bestehende Strukturen
nicht ohne Weiteres möglich. Analytische Datenbanken sind jedoch, zumindest theoretisch, die Grundlage für effiziente, schnelle und umfassende Datenanalysen, auch
wenn die Wirtschaftlichkeit dieser Systeme nur schwer messbar ist.
Ein weiteres Problem, das wachsende Datenbestände mit sich bringen, ist die zunehmende Trennung von Datenspeicherung und Datenverwendung. Dieses Vorgehen verbessert zwar auf der einen Seite die Sicherheit, die Widerverwendbarkeit und die Effizienz der Verwaltung der Daten, verhindert jedoch auf der anderen Seite die Daten2
1.2. EINORDNUNG DER PROBLEMSTELLUNG
verwendung ohne Programm- oder Administratorunterstützung. Eine nutzergesteuerte
Datenanalyse wird allein dadurch unmöglich das dem Nutzer das Wissen fehlt wie er
an die zu analysierenden Daten gelangt.
In dieser Ausarbeitung soll versucht werden, einen geeigneten Kompromiss für den
Zielkonflikt zwischen Kosten und Notwendigkeit von entscheidungsstützenden Maßnahmen zu finden. Als Lösungsmöglichkeit wird ein Reportingmodul, das Daten nutzergesteuert aus der Datenbank eines operativen Informationssystems auslesen, aufbereiten und darstellen kann, vorgeschlagen.
Mit diesem System als Grundlage wird es in späteren Projekten möglich sein, einen
Großteil an entscheidungsrelevanten Datenanalysen durchzuführen, ohne neben dem
Informationssystem eine analytische Datenbank betreiben zu müssen.
1.2
Einordnung der Problemstellung
Die Einordnung des Problems in ein bestimmtes Themengebiet ist äußerst schwierig. Viele Konzepte aus der Literatur tangieren ähnliche Probleme, jedoch sind ihre
Betrachtungsweisen oft zu speziell oder eingeschränkt. Der angebotene Lösungsvorschlag wird sich aus diesem Grund an einigen Konzepten orientieren und gegebenenfalls Vorgehensweisen miteinander kombinieren. Um dem Leser die Möglichkeit zu
geben, diesen Prozess nachzuvollziehen, wird im Kapitel 2 kurz und prägnant auf die
folgenden Konzepte eingegangen:
• Informationssysteme (IS)
• Management Information System (MIS)
• Decision Support Systems (DSS)
• Executive Information System (EIS)
• Data Warehouse (DWH)
• Online Analytical Processing (OLAP)
Das durch diese Ausarbeitung betroffene Themengebiet wird als „Reporting“ bezeichnet werden.
3
Teil II
Theorie
4
Kapitel 2
Allgemeine Begriffserklärung
Dieses Kapitel wird die begrifflichen Grundlagen für den praktischen Teil der vorliegenden Ausarbeitung schaffen. Neben Begriffsdefinitionen werden zusätzlich historische Entwicklungen beschrieben, um daraus entstandene Zusammenhänge zu verdeutlichen.
2.1
Reporting
Unter dem Begriff des Reportings bzw. Berichtswesens werden alle Mittel und Maßnahmen zur Beschaffung, Verarbeitung, Speicherung und Weiterleitung von Informationen in Form eines Berichtes verstanden. Dabei ist ein Bericht im Kontext dieser
Ausarbeitung als zweckgebundene, meist tabellarische Zusammenstellung von Informationen anzusehen. Der Zweck eines Berichtes liegt in der Informationsversorgung
der operativen und strategischen Einheiten eines Unternehmens.
In der Literatur findet sich das Berichtswesen zumeist als integriertes Werkzeug des
Controllings oder Rechnungswesens wieder, dessen Aufgabe darin besteht, dem gehobenen Management unternehmensbezogene Informationen, Kennzahlen sowie ergebnisverbessernde Maßnahmen zu präsentieren. [SCHU01, S.22 ff.] Diesem Bild soll
das Reporting in dieser Ausarbeitung nicht entsprechen. Stattdessen ist es zwar als
Werkzeug zur Informationsbeschaffung zu verstehen, jedoch beschränkt sich die Zielgruppe nicht auf das gehobene Management und die Bewertung der Information liegt
allein beim Empfänger.
5
2.2. DATENBANKSYSTEME
Weiterhin soll das Reporting folgenden Anforderungen1 genügen:
• Wahrheit: Berichte müssen inhaltlich und strukturell korrekt sein.
• Klarheit: Berichte müssen dem Empfänger begrifflich verständlich sein. Dazu
gehören u. a. Aufbau und Nutzung eines einheitlichen Vokabulars, um Missverständnisse und Verwechslungen zu vermeiden.
• Sicherheit: Berichte müssen unter Beachtung bestehender Berechtigungskonzepte erstellt werden. Darüber hinaus müssen sie den jeweiligen gesetzlichen
Bestimmungen genügen.
2.2
Datenbanksysteme
Ist umgangssprachlich von einer Datenbank die Rede, ist meistens ein Datenbanksystem (DBS) gemeint.
Ein DBS ist ein System zur elektronischen Datenverwaltung, dessen wesentliche Aufgabe darin besteht, große Datenmengen zu speichern und für Abfragen durch mehrere
Benutzer bzw. Anwendungen bereitzustellen. Ein DBS besteht aus zwei Komponenten: der Verwaltungssoftware2 , die als Datenbank-Management-System (DBMS) bezeichnet wird, und dem eigentlichen Datenspeicher, der Datenbank.
Abbildung 2.1: Aufbau eines Datenbanksystems
Das DBMS stellt das Herzstück eines DBS dar. Hierbei handelt es sich um hoch komplexe Software zur Datenverwaltung, die u. a. das Speichern, Ändern, Löschen und
Lesen von Daten, unter Berücksichtigung von Aspekten wie Mehrbenutzerbetrieb, Datenintegrität und -sicherheit, übernimmt. Wie Abbildung 2.1 zeigt, ist ein DBMS nicht
1
2
In Anlehnung an [WEREP].
Abbildung 2.1 verdeutlicht diesen Zusammenhang.
6
2.2. DATENBANKSYSTEME
auf eine Datenbasis beschränkt, sondern verwaltet i. d. R. mehrere gleichzeitig. Die eigentliche Datenbank ist lediglich der logische und physische3 Speicherort von Daten,
die i. d. R. inhaltlich zusammengehörig sind.
2.2.1
Relationale Datenbanken
Speichert ein DBS Daten in relationaler Form, wird von einem relationalen Datenbanksystem (RDBS) gesprochen. Weit verbreitete RDBS sind z. B. mySQL, ORACLE,
MsSQL, DB2 und dBase. Analog zum DBS wird bei einem DBMS, das relational gespeicherte Daten verwaltet, von einem relationalen Datenbank-Management-System
(RDBMS) gesprochen.
RDBS stellen zur Zeit eines der wichtigsten Systeme zur Datenspeicherung dar. Neben
der Kommunikationsinfrastruktur zählen sie zu den Schlüsseltechnologien des Informationszeitalters. Sie bieten die Möglichkeit, Daten sicher, konsistent und effizient im
Hinblick auf den benötigten Speicherplatz mehrbenutzerfähig zu speichern, abzufragen, zu bearbeiten und zu löschen. Dieser Abschnitt soll dazu dienen, die Grundgedanken und -begriffe der relationalen Datenbanktechnologie zu vermitteln. Dabei soll
vor allem auf das Relationenmodell und die Normalisierung eingegangen werden.
Relationenmodell
Das Relationenmodell, welches die Grundlage eines jeden RDBS darstellt, wurde Anfang der siebziger Jahre von E. F. Codd entwickelt. Im Wesentlichen beschreibt es die
Verwaltung von Daten in zweidimensionalen Tabellen, die über Schlüsselattribute miteinander verknüpft werden können. Eine Tabelle gemäß dem Relationenmodell ist wie
folgt aufgebaut [MEIE04, S. 3 f.]:
• Eine Tabelle besitzt einen eindeutigen Namen.
• Die Spalten einer Tabelle werden als Attribute bezeichnet.
• Innerhalb einer Tabelle sind Attributnamen eindeutig.
• Attributwerte sind atomar.
• Die Zeilen einer Tabelle werden als Tupel bezeichnet.
• Innerhalb einer Tabelle sind Tupel eindeutig.
• Das Attribut bzw. die minimale Attributkombination, die ein Tupel innerhalb
einer Tabelle eindeutig identifiziert, wird als Primärschlüssel bezeichnet.
• Die Reihenfolge und Anordnung von Attributen und Tupel ist bedeutungslos.
3
Kleine Datenmengen werden meist in einer, größere verteilt auf mehrere Dateien gespeichert.
7
2.2. DATENBANKSYSTEME
Normalisierung
Die Normalisierung ist ein wichtiges Mittel zur Konsistenzsicherung, die diese durch
Redundanzminimierung realisiert. Insgesamt gibt es sechs Normalformen. An dieser
Stelle wird sich jedoch auf die Darstellung der ersten drei beschränkt, da diese in der
Praxis zumeist ausreichend sind. [MEIE04, S. 34ff.]
• 1NF: Eine Tabelle ist in erster Normalform, wenn ihre Attributwerte atomar
sind.
• 2NF: Eine Tabelle befindet sich in zweiter Normalform, wenn sie der ersten
Normalform genügt und jedes Nichtschlüsselattribut von jedem Schlüssel voll
funktional abhängig ist.
• 3NF: Eine Tabelle ist in dritter Normalform, wenn sie sich in zweiter Normalform befindet und kein Nichtschlüsselattribut von einem Schlüssel transitiv abhängt.
Abbildung 2.2: Aufbau eines Datenbanksystems
Abbildung 2.2 zeigt vier Tabellen, an denen die Grundzüge der relationalen Datenmodellierung beispielhaft skizziert werden sollen. Tabelle a) enthält Beispieldaten und
befindet sich bereits in erster Normalform. Die Tabellen b) bis d) sind das Ergebnis der
Normalisierung und befinden sich in dritter Normalform. Es ist zu erkennen, dass Normalisierung zur Verteilung der Daten auf mehrere Tabellen führt. Um die Beziehungen
der Werte untereinander zu erhalten, werden Referenzen benutzt, die als Fremdschlüssel bezeichnet werden. Fremdschlüssel verweisen immer auf den Primärschlüssel der
referenzierten Tabelle.
8
2.2. DATENBANKSYSTEME
2.2.2
Multidimensionale Datenbanken
Obwohl multidimensionale Datenbankensysteme in der Literatur4 oft als OLAPDatenbanken bezeichnet werden, sollen ihre Charakteristika in dieser Ausarbeitung
allgemein im Themenbereich der Datenbanken beleuchtet werden. Dennoch ist die Bezeichnung OLAP-Datenbanken im Grunde nicht unberechtigt, denn die Blütezeit5 der
multidimensionalen Datenbankensysteme begann mit dem Aufkommen von OLAPSystemen und diese sind auch heute noch die Hauptnutzer dieser Technologie.
Unter einem multidimensionalen Datenbanksystem (MDBS), wird ein Datenbanksystem verstanden, das die auf konzeptioneller Ebene mehrdimensional dargestellten Datenstrukturen auch physisch in mehrdimensionalen Datenbank- und Speicherstrukturen
umsetzt. [LEHN99, S. 37ff.]
Abbildung 2.3: Der Würfel als Metapher für mehrdimensionale Daten
Der Grundgedanke besteht darin, den Datenbestand als mehrdimensionalen Würfel
darzustellen, wobei die quantitativen Daten den Zellen und die qualitativen den Kanten
entsprechen. Abbildung 2.3 zeigt beispielhaft einen dreidimensionalen Würfel6 . Das
multidimensionale Datenmodell gestaltet sich wesentlich einfacher als das relationale.
Es ist wie folgt aufgebaut [CLAU98, S. 20]:
• Jede Zelle wird durch die Angabe der Ausprägungen der Dimensionen eindeutig
identifiziert.
• Jede Zelle besitzt einen Inhalt, der auch leer sein kann.
Der Würfel in Abbildung 2.3 zeigt einen Teil der in Abbildung 2.2 relational modellierten Beispieldaten. Um den Begriff der Würfelmetapher zu wahren, wurde jedoch
der Maßstab missachtet.
4
5
6
Z. B. [CLAU98], [LEHN99], [HOLT99], [OEHL00].
Die Anfänge lassen sich bis in die frühen sechziger Jahre zurück verfolgen.
Ein multidimensionales DBS kann auch mehr als drei Dimensionen darstellen.
9
2.3. RELATIONAL VERSUS MULTIDIMENSIONAL
Das klassische MDBS zeichnet sich dadurch aus, dass es seine Daten direkt auf einen
physischen Speicherbereich aufteilt. Der Zugriff erfolgt ähnlich wie im mehrdimensionalen Array direkt, da die Adresse jedes Datums einfach berechenbar ist. Der Datenzugriff ist damit sehr schnell. Allerdings hat diese Speicherform den gravierenden
Nachteil, dass für die Speicherung der Daten nicht soviel Platz benötigt wird wie es
Daten gibt, sondern soviel wie es Daten geben könnte.
Als Konsequenz werden in der Praxis oft multidimensionale Daten mit Hilfe von relationalen Datenbanken gespeichert. Das prominenteste Beispiel sind die in Abschnitt
2.5.6 beschriebenen DWH.
2.3
Relational versus Multidimensional
Grundsätzlich ist zu sagen, dass RDBS und MDBS auf Grund der Verschiedenheit ihrer Konzeption zwar schlecht vergleichbar sind, Unterschiede und damit auch Stärken
und Schwächen aber so am besten sichtbar sind. Es sollen Unterschiede auf drei Ebenen aufgezeigt werden: die anwendungsorientierte, die Datenmodellierungs- und die
darstellungsorientierte Ebene.
2.3.1
Anwendungsorientierte Ebene
Zur Ermittlung der Unterschiede wird für jedes Konzept jeweils die in der Praxis meist
auftretende Verwendungsform gewählt. Für RDBS ist es das Online Transaction Processing (OLTP). MDBS werden meist in OLAP-Systemen eingesetzt, so auch hier.
Tabelle 2.1 charakterisiert die verschiedenen Einsatzbereiche der beiden Konzepte. Dabei wird deutlich, dass im Mittelpunkt von OLAP die Analyse von historischen Daten
steht. Im Gegensatz dazu werden OLTP-Systeme zur Haltung von aktuellen Daten eingesetzt.
Tabelle 2.2 zeigt die datenbanktechnischen Unterschiede zwischen OLTP und OLAP.
Dabei sei darauf hingewiesen, dass unter OLAP-Datenbanken in der Praxis oft die
in Abschnitt 2.2.2 angesprochenen RDBS zur Speicherung von mehrdimensionalen
Daten verstanden werden. Nur diese Systeme sind in der Lage, Terrabytes an Daten
aufzunehmen und zu verwalten.
10
2.3. RELATIONAL VERSUS MULTIDIMENSIONAL
Online Transaction Processing
Online Analytycal Processing
- Administration / Kontrolle
- Entscheidungsstützung
bereich
⇒ operative Datenverarbeitung
⇒ dispositive Datenverarbeitung
Art und Einheit
- sich wiederholende, struktur-
- Ad-hoc-Zugriffe für interaktive
Anwendungs-
der Interaktion
ierte, überwiegend vordefinierte
Zugriffe
Datenexploration
- vordefinierte Zugriffe für
⇒ Transaktion
Standardberichte
⇒ Statistische Analyse
Verarbeitungs-
- Einfüge-, Änderungs- und
- überwiegend lesender und
einheiten und
Löschoperationen von über-
aggregierender Zugriff auf
charakteristik
wiegend einzelnen, in einer
große Teile des Gesamtdaten-
Transaktion geklammerten,
bestandes
Datensätzen
⇒ ’append-only’ Semantik
⇒ ’update in place’-Semantik
Zentraler Fokus
⇒ ’Data In’
⇒ ’Information Out’
Tabelle 2.1: Nutzengetriebene Unterschiede zwischen OLTP und OLAP
Art der zu
verwaltenden
Online Transaction Processing
Online Analytycal Processing
- aktuelle und sich dynamisch
- bereinigte, historische und
ändernde Werte
statistische Einzeldaten
Information
Design des
konzeptionellen
Schemas
- verdichtete Stammdaten
⇒ Datenisolierung
⇒ Datenkonsolodierung
- anwendungsorientiert (auf
- themenbezogen teilweise
Basis des ER-Modells)
- hochgradig Normalisiert mit
dem Ziel der Redundanzfreiheit
Nebenläufigkeit
denormalisierte Schemata
(Star-/Snowflake)
- gezielte Verletzung der
Redundanzfreiheit
- hoch bis extrem hoch
- von geringem Interesse
- Einhaltung der ACIDEigenschaften
Physische
- einzelsatzorientierer Zugriff
- verlaufsorientiert, verdichtend
Zugriffs-
- Index-/Hashzugriff über
- sequenzieller Lesezugriff
charakteristika
Datenbankgröße
Primärschlüssel
(Scan-Operationen)
- 10 Megabyte bis mehrere
Gigabyte
Geforderte
Antwortzeiten
- 5 Gigabyte bis mehrere
Terrabyte
- Bruchteile von Sekunden
(maximal 2-3 Sekunden)
- Sekunden bis zu wenigen
Minuten
Tabelle 2.2: DBS-getriebene Unterschiede zwischen OLTP und OLAP
11
2.3. RELATIONAL VERSUS MULTIDIMENSIONAL
2.3.2
Datenmodellierungsebene
Ein für diese Ausarbeitung wichtiger Unterschied zwischen MDBS und RDBS ist
die Art der Daten, die durch die Systeme sinnvoll gespeichert werden können. Dieser Aspekt wird in der Literatur nicht diskutiert, da er bei der in der Theorie üblichen
strikten Trennung von Produktiv- und Analysedaten irrelevant ist. Wird diese Trennung, wie in der Praxis üblich, nicht eingehalten, zeigt sich, dass zwar das relationale
Datenmodell in der Lage ist, beliebige mehrdimensionale Daten abzubilden, jedoch
nicht anders herum.
Das multidimensionale Datenmodell ist beispielsweise nicht dazu fähig, einfache Listen sinnvoll aufzunehmen. Es benötigt einen Fakt, um den sich Dimensionen anordnen.
Eine Liste, z. B. von Mitarbeitern, besitzt jedoch keine Elemente, die sich in Dimensionen und Fakten unterteilen lassen. Zwar wäre es möglich, eine der Spalten als Fakt und
die anderen als Dimension zu deklarieren oder alle Spalten als Dimensionen um einen
leeren Fakt anzusehen, ein sinnvoller Zusammenhang zwischen den Daten entsteht so
jedoch nicht.
2.3.3
Darstellungsorientierte Ebene
Neben der logischen und physischen Speicherung von Daten spielt deren Präsentation
eine zentrale Rolle. Hierbei soll im Folgenden lediglich auf die textuellen, nicht aber
auf die Aspekte der graphischen Datendarstellung eingegangen werden.
Region
Monat
Produkt
Umsatz
Nord
Januar
Teller
100
Nord
Januar
Tasse
150
Süd
Februar
Teller
250
Süd
Februar
Tasse
200
Januar
Februar
Teller
Tasse
Teller
Tasse
Nord
100
−
250
−
Süd
−
150
−
200
Tabelle 2.3: Darstellung identischer Daten als Relation und statistische Tabelle
Tabelle 2.3 greift das Beispiel vorheriger Abschnitte wieder auf und zeigt die typischen
Darstellungsformen von relationalen und multidimensionalen Daten. Da der zweidimensionale Raum eines Bildschirms oder eines Blatt Papiers i. d. R. zur Darstellung
12
2.4. INFORMATIONSSYSTEME
von mehrdimensionalen Konstrukten nicht ausreichend ist, wird in der Praxis auf das
Konzept der statistischen Tabelle zurückgegriffen. Dieses ermöglicht durch eine verschachtelte Darstellung die Anzeige aller Inhalte. Zudem bietet sie eine wesentlich
intuitivere Nutzung. [LEHN99, S. 61 ff.]
2.4
2.4.1
Informationssysteme
Definition
Als IS wird ein System bezeichnet, dessen Zweck in der Beschaffung, Verarbeitung,
Speicherung, Übertragung und Bereitstellung von Informationen liegt. Die benannten
Zwecke sind im Konkreten zumeist unterschiedlich ausgeprägt. [SCHW95, S. 18]
Die Komponenten eines betrieblichen IS sind [SCHW95, S. 19]:
• Hard- und Systemsoftware,
• Anwendungssoftware,
• organisatorische Konzepte und Regelungen,
• Menschen, die an bzw. mit dem System arbeiten,
• Management für die Steuerung und Kontrolle des Systembetriebes und
• Daten.
2.4.2
Anforderungen
Die Anforderungen an IS sind größtenteils einsatzbezogen, deshalb stellt der folgende
Ausschnitt nur die wichtigsten allgemeinen Anforderungen dar. [OEHL00, S. 5 ff.]
• Relevanz: Der Relevanzbegriff verbindet in diesem Kontext Informationen mit
zutreffenden Entscheidungen. Je besser sich die zur Verfügung gestellte Information für die richtige Auswahl einer Alternative im Entscheidungsprozess eignet,
desto relevanter ist sie für die Entscheidungsfindung.
• Genauigkeit: Die Genauigkeit bezeichnet im Umfeld der Informationsverarbeitung den Grad der Realitätstreue des Informationsmodells. Dabei geht es jedoch
nicht um jede Einzelheit, sondern lediglich darum, das Wesentliche der realen
Welt einzufangen.
13
2.4. INFORMATIONSSYSTEME
• Flexibilität: Das ideale IS stellt für jede zu treffende Entscheidung die relevanten Informationen bereit. Da die Informationssuche jedoch i. d. R. fest im IS
codiert ist, müssten im Vorhinein alle relevanten Informationsarten bekannt sein,
um ausgewertet werden zu können. Weil dies in der Praxis meist nicht der Fall
ist, wird sich damit beholfen, möglichst zweckpluralistische Informationen bereit zu stellen, d. h. Auswertungen liefern Informationen, die für möglichst viele
Sachverhalte relevant sind.
• Sprachliche Adäquanz: Die sprachliche Adäquanz soll gewährleisten, dass der
Nutzer die bereitgestellten Informationen auch versteht. Aus diesem Grund sollte die Sprachebene der Informationsausgabe immer die des Benutzers sein. Diese
Maßgabe ist oft nur schwer umsetzbar, da sich zum Einen die Sprachebenen der
einzelnen Benutzer unterscheiden und sich zum Anderen die IS-Entwickler der
Sprachebene der Benutzer nicht bewusst sind.
• Zeitliche Adäquanz: Der Begriff der zeitlichen Adäquanz bezeichnet die Aktualität einer Information. Im Allgemeinen sollten Informationen über ein Ereignis unmittelbar nach dessen Eintritt zur Verfügung stehen. Dabei ist es jedoch
sinnvoll, den Zeitbezug einer Information im Auge zu behalten. Es bringt z. B.
keinen Vorteil, Ressourcen darauf zu verwenden, schnellstmöglich eine Information zur Verfügung zu stellen, die wohlweislich die nächsten Wochen niemand
benötigt.
2.4.3
Informationsbedarf
Ein wichtiger Arbeitsschritt bei der Erstellung von entscheidungsstützenden Werkzeugen ist die Ermittlung des Informationsbedarfs mit Hilfe der Informationsbedarfsanalyse. Mit dieser soll sowohl Fehlentwicklungen als auch der Informationsüberflutung
vorgebeugt werden. Laut HOLTEN wird die Analyse des tatsächlichen Informationsbedarfs von Systementwicklern immer noch sehr „stiefmütterlich“ behandelt. Unnötige oder Informationen in der falschen Form sind meist die Folge. Allzu oft wird
die Analyse jedoch durch den Umstand erschwert bzw. verhindert, dass es nicht möglich ist, die benötigten Informationen für zukünftige Prozesse zu quantifizieren. Auch
unerwartete oder sehr selten auftretende Aufgaben benötigen in vielen Fällen Informationen, die bei der Entwicklung des IS noch nicht absehbar waren.
14
2.5. MIS-KONZEPTE
2.5
2.5.1
MIS-Konzepte
Begriff
Es ist ein schwieriges Unterfangen, Datenverarbeitungssysteme, die Informationen für
die Entscheidungsunterstützung bereitstellen, unter einen gemeinsamen Oberbegriff zu
vereinen. Zwar liegt es nahe, derartige Systeme als entscheidungsunterstützende Systeme zu bezeichnen, doch ist dieser Begriff bereits für die deutsche Übersetzung des
Decision Support Systems reserviert. Auch die Bezeichnung als Führungsinformationssystem oder Management Information System, wie sie in der Literatur verwendet
wird, ist grundsätzlich nicht möglich, da beide Begriffe eigenständige Konzepte repräsentieren.
Dennoch muss im Rahmen der vorliegenden Arbeit ein Oberbegriff für die beschriebenen Datenverarbeitungssysteme gefunden werden. Der Verfasser entscheidet sich
dabei für den Begriff des Management Informationssystems. Dieser repräsentiert zwar
ein eigenes Konzept, doch wird dieses im Gegensatz zu den anderen Begriffsalternativen nicht mehr weiterentwickelt und stellt trotzdem den Ursprung der meisten Datenverarbeitungssysteme zur Entscheidungsunterstützung dar. Um Verwechslungen zu
vermeiden, wird die Abkürzung MIS für eben jenen Oberbegriff verwandt, während
der Begriff Management Information System (Man.Inf.Sys.) das System der sechziger
und siebziger Jahre bezeichnet.
Abbildung 2.4: zeitliche und inhaltliche Einordnung der MIS-Konzepte7
MIS sind somit spezielle Informationssysteme für die obere Führungsebene, d. h. sie
sollen dem Management die richtigen Informationen zum richtigen Zeitpunkt in der
richtigen Form zur Verfügung stellen, damit dieses möglichst fundierte Entscheidun7
In Anlehnung an [OEHL00, S. 8].
15
2.5. MIS-KONZEPTE
gen treffen kann. Im Folgenden wird ein kurzer inhaltlicher und geschichtlicher Abriss
bisheriger MIS-Konzepte gegeben.
2.5.2
Management Information Systems
Der Begriff des Man.Inf.Sys. entstand zu Beginn der sechziger Jahre. Er basiert auf
dem Ansatz der Analyse von Variablen, die den Schlüssel zum Unternehmenserfolg
darstellen. Diese so genannten Schlüsselvariablen werden sowohl von globalen Umgebungsvariablen, Ressourcen und Organisationsstruktur der Unternehmung, als auch
von der Unternehmensstrategie beeinflusst. Um dem Management alle entscheidungsrelevanten Kennzahlen zur Verfügung stellen zu können, verfolgen Man.Inf.Sys. das
Ziel, den gesamten Unternehmensdatenbestand in Echtzeit zu analysieren. Darüber
hinaus sollten sie die Möglichkeit der Erstellung von Ausnahmeberichten, interaktiven
Abfragen und der Simulation von Entscheidungsalternativen bieten.
Es handelt sich somit um einen zentralistischen Ansatz für unternehmensweite Managementunterstützung. Durch den Einsatz von DV-Technik sollen alle Unternehmensbereiche mit Informationen und Funktionen versorgt werden. Das Man.Inf.Sys.-Konzept
verbindet die Basisdatenverarbeitungen8 der einzelnen Unterbereiche miteinander. Die
so entstandene ganzheitliche Unternehmenssicht soll damit globale Informationen für
die Führung zur Verfügung stellen. Zu den Hauptzielen des Man.Inf.Sys.-Konzepts
gehört zudem die Automatisierung von Massenarbeiten und die Unterstützung bei
Dispositions- und Planungsarbeiten durch die Bereitstellung entscheidungsrelevanter
Informationen.
Abbildung 2.5: schichtweiser Aufbau eines MIS [SCHI99, S. 7]
Abbildung 2.5 veranschaulicht die neu gewonnene Unternehmenssicht. Durch die Ver8
Engl.: elementary data processing (EDP).
16
2.5. MIS-KONZEPTE
dichtung der Gesamtdaten sind Man.Inf.Sys. in der Lage, den Kenntnisstand des Unternehmens entscheidend zu vergrößern. Der Erfolg der Man.Inf.Sys. ist jedoch durch
die hohen Ansprüche und mangelnde DV-Möglichkeiten9 stark eingeschränkt.
Folgende Probleme führten letztlich zum Scheitern des Konzeptes:
• Der Informationsbedarf des Top Managements war kaum bestimmbar.
• Zur Informationsversorgung sollten alle Daten des Unternehmens genutzt werden.
• Die Masse der Informationen führte zur Informationsüberflutung.
• Der angestrebte Funktionsumfang war allgemein zu hoch.10
• Die technischen Voraussetzungen waren für derart komplexe Systeme ungenügend.
Als Konsequenz der unzureichenden Umsetzung dieser (zu) hohen Anforderungen entwickelten sich im Laufe der siebziger und achtziger Jahre Management Reporting Systems (MRS). Diese engten den Begriff des Man.Inf.Sys. auf ein umsetzbares Maß ein.
[HOLT99, S. 29 ff.]
2.5.3
Management Reporting Systems
MRS stellen einen direkten Ableger des Man.Inf.Sys.-Gedankengutes dar. Allerdings
konzentrieren sie sich auf einzelne Unternehmensbereiche und versorgen dort das operative und mittlere Management mit gezielten Berichts- und Kontrollsystemen. Vorrangiges Ziel ist die Darstellung von zeitbezogenen, unternehmensinternen Informationen für gut strukturierte und vorhersehbare Problembereiche. Als MRS-Erweiterungen
gelten Ausnahme- und Bedarfsberichte sowie spezielle Abfragemöglichkeiten. Bis
heute finden sich in der Unternehmenspraxis oft MRS unter funktionsbezogenen Bezeichnungen wie Finanz-, Produktions- oder Personalinformationssystem. [HOLT99,
S. 29 ff.]
2.5.4
Decision Support Systems
Zu Beginn der siebziger Jahre entwickelten GORRY und SCOTT MORTON den Ansatz der DSS. Sie nutzen interaktive, computergestützte Systeme für die Lösung von
9
10
Es standen nur Großrechner zur periodischen Kennzahlenversorgung auf Papier zur Verfügung.
Es wurde versucht, die sprichwörtliche „eierlegende Wollmilchsau“ zu erschaffen.
17
2.5. MIS-KONZEPTE
nicht im Voraus planbarer Vorgänge, d. h. DSS konzentrierten sich auf die Lösung von
teilweise oder unstrukturierten Problemen. Sie sollen die Entscheidungsqualität nicht
durch zusätzliche, sondern durch die Ausnutzung bereits existierender Informationen verbessern. Die Kombination von mathematischen Methoden, Unternehmensdaten, Rechenleistung und kreativen Nutzern sollen im interaktiven Mensch-MaschineDialog komplexe unstrukturierte Aufgaben besser lösen und zur Entwicklung neuer
Entscheidungsmodelle führen.[SCHI99, S. 8 f.]
Abbildung 2.6: schichtweiser Aufbau eines DSS [SCHI99, S. 9]
Abbildung 2.6 verdeutlicht, dass DSS das Man.Inf.Sys.-Konzept um eine entscheidungsorientierte Sicht ergänzen. Da in der Praxis der Man.Inf.Sys.-Gedanke lediglich
partiell durch den Einsatz von meist abteilungsbezogenen MRS realisiert wird, fügt
erst das DSS die Teildaten zu einem Gesamtüberblick zusammen.
2.5.5
Executive Information Systems
Anfang der achtziger Jahre begann die Ausbreitung der EIS. Ihr Einsatz stand im engen Zusammenhang mit der Einführung von PCs am Arbeitsplatz des Top Managements. Die Verbreitung wurde zudem durch betriebswirtschaftliche Belange wie dem
Wunsch nach mehr Transparenz der Unternehmensstruktur und der zunehmende Bedeutung von Informationsvorsprüngen voran getrieben. Letztendlich verdankten EIS
ihre wachsende Popularität auch der Unzufriedenheit über die Informationsüberflutung
durch MRS. [HOLT99, S. 32 f.]
EIS wurden mit dem Ziel geschaffen, den obersten Führungskräften effektivere Werkzeuge zur Informationsnutzung im Planungs- und Kontrollprozess zu bieten. Dies soll
durch Nutzung mehrdimensionale Datenbanken ermöglicht werden. EIS spannen zu18
2.5. MIS-KONZEPTE
meist einen Datenkubus mit den Dimensionen Zeit, Unternehmens- und Produktstrukturen sowie betriebswirtschaftliche Größen auf. Neben schneller Navigation in den
Daten bieten EIS zusätzlich die Möglichkeit schneller, bedarfsorientierter Überblicke
über Kernvariablen des Geschäftes und interaktive Datenmanipulationen zu Analysezwecken. Die organisatorische Unterstützung, d. h. Zusammenstellung, Aufbau und
Aktualisierung der Datenbasis, werden von EIS-Spezialisten übernommen. [HOLT99,
S. 33 ff.]
2.5.6
Data Warehouse
Da das DWH-Konzept einerseits durch seine neue Datensicht eine Schlüsselposition
unter den MIS-Konzepten einnimmt und andererseits eine mögliche Alternative zum
zu entwickelnden Reporting-Modul darstellt, soll dieses Konzept im Gegensatz zu den
bisher beschriebenen ausführlicher vorgestellt werden.
Mit steigenden Datenmengen wurde Anfang der neunziger Jahre deutlich, dass Präsentation und Modellierung, auf die sich die bisherigen MIS-Konzepte konzentriert
hatten, nur noch zu unbefriedigenden Lösungen führen falls weiterhin die Datenbasis
vernachlässigt würde. Die operativen Datenbanken als Informationsbasis zu nutzen,
hatte zur Folge, dass die Antwortzeiten sowohl der Produktivsysteme als auch für MIS
immer größer wurden.
An diesem Punkt setzt der Grundgedanke des DWH an. Das DWH stellt eine von operativen DV-Systemen unabhängige, speziell für die Informationsgewinnung optimierte
Datenbasis dar. Im Folgenden sollen die wichtigsten Merkmale eines DWH charakterisiert werden [LEHN03, S. 9 f.],[OEHL00, S. 17 f.].
• Auswertungsorientierte Datenorganisation: Im Gegensatz zu operativen Systemen orientiert sich die logische und physische Datenmodellierung im DWH
nicht an der Datenbeschaffung, sondern an der Datenauswertung. Demzufolge
werden die Daten abfrageoptimal modelliert.
• Datenintegration aus verschiedenen Quellen: Ein DWH verbindet verschiedenste Datenquellen zu einer zentralen, einheitlichen Datenbasis. Dafür müssen
die Daten aus den betroffenen Quellsystemen extrahiert, bereinigt und vereinheitlicht werden.
• Keine Aktualisierung durch den Nutzer: DWH-Nutzer können lediglich lesend auf die Daten zugreifen. Schreibend wird auf ein DWH nur zum Zweck
des periodischen Datenimports zugegriffen. Datenänderungen finden in einem
DWH im Idealfall nicht statt.
19
2.5. MIS-KONZEPTE
• Zeitraumbezug: Durch das kontinuierliche Hinzufügen von Daten bildet ein
DWH Zeiträume ab. Die Daten werden dabei oft bis zu zehn Jahre in Abhängigkeit ihres Alters in zunehmenden Aggregationsstufen gespeichert.
• (Optionale) Historisierung: Unter Historisierung wird das vollständige Aufzeichnen von Datenänderungen verstanden. Diese Technik muss im Quellsystem implementiert sein. Historisierung erstellt ein detailierteres Datenabbild, ist
jedoch in ihrer Anwendung meist durch den enormen Speicherbedarf begrenzt.
Abbildung 2.7 skizziert den Fluss von Daten und Informationen im DWH-Modell.
Darüber hinaus verdeutlicht sie die Grundgedanken des Konzeptes, die zum Einen in
der Trennung der Datenbasis für die operativen und entscheidungsstützenden Systeme
und zum Anderen in der periodischen Aktualisierung der DWH-Datenbasis sowohl aus
internen als auch aus externen Quellen liegen.
Abbildung 2.7: Daten- und Informationsfluss im DWH-Modell [LEHN03, S. 4]
Während ein DWH-System die einzelnen Bestandteile und Strukturen beschreibt, bezeichnet der Begriff Data Warehousing den Prozess, der zur Planung, zum Aufbau
und insbesondere zum Betrieb eines DWH-Systems notwendig ist. [LEHN03, S. 10]
Da dieser Abschnitt lediglich den Zweck verfolgt, die Funktionsweise eines DWH in
groben Zügen zu verdeutlichen, wird auf die Erläuterungen zu den Themen Planung
und Aufbau eines DWH verzichtet. Stattdessen soll der DWH-Betrieb mit seinen drei
wesentlichen Bestandteilen Load Management, Warehouse Management und Query
Management im Folgenden näher betrachtet werden. [OEHL00, S. 20 ff.]
20
2.5. MIS-KONZEPTE
Load Management
Ziel des Load Managements ist die Bereitstellung einer homogenen Datenbasis. Es
beinhaltet das Extrahieren, Konvertieren und Vorverdichten von Daten aus unterschiedlichsten Quellen. Bevor die gewonnenen Daten ins DWH einfließen können, müssen
sie zumeist bereinigt werden. Dieser Vorgang wird i. A. als Cleansing bezeichnet. Der
Transformationsprozess ist aus zwei Blickwinkeln zu betrachten: aus technischer und
aus semantischer Sicht. Technisch gesehen sind Probleme wie der Umgang mit unterschiedlichsten Datenformaten11 , Gruppierungen oder Schlüsselsystemen zu lösen. Die
Interpretation von Nullwerten und nicht gefüllte Pflichtfelder stellen weitere Herausforderungen dar.
Wesentlich größere Schwierigkeiten bestehen jedoch in semantischer Hinsicht. Bei der
Zusammenführung der verschiedensten Datenbestände zu einer inhaltlich und begrifflich homogene Datenbasis werden oft Defekte deutlich, deren Ursprung in den unterschiedlichen Datendefinitionen der Ursprungssysteme liegt. In Abbildung 2.8 sind die
wichtigsten Defekte graphisch dargestellt.
Abbildung 2.8: Sprachkonflikte im Datawarehouse [OEHL00, S. 22]
• Abgrenzung: Abgrenzungsunterschiede ergeben sich bei der Verwendung des
gleichen Begriffs und Sachverhalts, bei unterschiedlichen zeitlichen und sachlichen Zuordnungen.
• Synonym: Synonyme sind verschiedene Begriffe, die den gleichen Sachverhalt
bezeichnen.
• Homonym: Homonyme sind gleiche Begriffe die verschiedene Sachverhalte bezeichnen.
• Äquipollenz: Zwei Begriffe gelten als äquipollent, wenn sie denselben Sachverhalt in verschiedener Form widerspiegeln.
11
Die größten Schwierigkeiten gehen hierbei von nicht öffentlichen Daten und Dateiformaten aus.
21
2.5. MIS-KONZEPTE
Besondere Herausforderungen entstehen bei Unternehmenszusammenschlüssen. Einerseits sollen die Daten der zusammengeführten Unternehmen möglichst schnell
vereinigt werden, um einen besseren Überblick über das neue Gesamtunternehmen
zu erhalten, andererseits zieht die Fusion meist gravierende Umstrukturierungen der
Organisations- und damit auch der Datenstruktur nach sich. [OEHL00, S. 20 ff.]
Warehouse Management
Das Warehouse Management beinhaltet neben der Daten- und Nutzerverwaltung auch
Sicherungskonzepte und andere administrative Vorgänge wie z. B. die Optimierung der
Datenbasis für Abfrage.
Als eines der wichtigsten Werkzeuge zu diesem Zweck ist eine geeignete Datenmodellierung zu sehen. Das charakteristische Beschreibungsmittel eines DWH ist das StarSchema12 . Dieser Modellierungsansatz wurde mit der Absicht entwickelt, die Stärken
von relationalen und multidimensionalen Datenbanksystemen miteinander zu verbinden. RDBS speichern Daten sehr effizient im Hinblick auf den benötigten Speicherplatz, während multidimensionale DBS sehr schnelle Abfragen ermöglichen.
Im Mittelpunkt des Star-Schemas steht die Faktentabelle. Sie enthält die zu analysierenden quantitativen Daten13 . Sternförmig um die Faktentabelle gruppieren sich Dimensionstabellen, die die Kriterien, nach denen die Fakten später analysiert werden
können, definieren. Der Primärschlüssel der Faktentabelle setzt sich aus den Primärschlüsseln der Dimensionstabellen zusammen. Dies impliziert, dass es jeden Eintrag
zu einer Kombination von Dimensionen nur einmal geben kann. Die Dimensionstabellen enthalten flache Hierarchiestrukturen, die durch die Verletzung der dritten Normalform14 schnelle Abfragen ermöglichen.
Query Management
Das Query Management beinhaltet den gesamten Bereich der Datenabfrage und
-analyse. Dazu kommen neben den im DWH integrierten Werkzeugen insbesondere
OLAP-Systeme, welche in Abschnitt 2.5.7 beschrieben werden, zum Einsatz.
Den größten Einfluss auf die Datenabfrage hat die Art der Datenspeicherung. Hierbei wird zwischen den drei Architekturen Data Marts, zentrales und virtuelles Data Warehouses unterscheiden. Abbildung 2.9 gibt einen Gesamtüberblick der DWHArchitekturen.
12
13
14
Siehe [OEHL00, S. 23].
Dies sind beispielsweise Daten wie Umsätze, Kosten, Verkaufszahlen oder Erträge.
Genauere Erklärungen zu Normalformen finden sich in Abschnitt 2.2.1.
22
2.5. MIS-KONZEPTE
Abbildung 2.9: Data Warehouse-Architekturen und ihre Bestandteile [SCHI99, S. 19]
Im virtuellen DWH existiert keine für das Konzept typische autonome Datenbasis, d. h.
die Abfrageergebnisse stammen aus den jeweiligen Quellsystemen. Das Harmonisieren der unterschiedlichen Datenbasen erfolgt hier zur Laufzeit der Auswertung und
ausschließlich mit Hilfe von Metadaten. Der Vorteil eines virtuellen DWH liegt in der
Aktualität der Abfrageergebnisse und einer höheren Flexibilität. Zudem ist ein virtuelles DWH wesentlich kostengünstiger als eine zentrale- oder Data Mart-Lösung, da
auf bereits vorhandene Daten und Hardware zurückgegriffen werden kann. Allerdings
ergeben sich gravierende Geschwindigkeitsverluste, da sowohl auf nicht für Abfragen
optimierte operative Systeme oder Dateien zugegriffen wird als auch die Übersetzung
und Harmonisierung der Daten Zeit benötigt. Darüber hinaus besteht die Gefahr, dass
der Betrieb der operativen Systeme empfindlich gestört wird. Letztlich ist die Möglichkeit der Einbindung externer Datenquellen beschränkt und historische Daten sind
nur soweit, wie in den Produktivsystemen15 vorhanden, verfügbar.
Das zentrale DWH repräsentiert den DWH-Gedanken im klassischen Sinne. Es verfügt über eine zentrale, homogene von Produktivsystemen getrennte Datenbasis, die
periodisch durch Hinzufügen von Daten aus internen und externen Datenquellen aktualisiert wird. Ist in der Literatur von einem DWH die Rede, so wird damit meist
automatisch das zentrale DWH assoziiert.
Aus der Kritik, dass der DWH-Gedanke einen zu umfassenden Anspruch erhebt, indem
es versucht alle entscheidungsrelevanten Unternehmensdaten zentral16 zu modellieren,
resultiert die Data Mart-Architektur. Um Projektlaufzeiten von teilweise mehreren Jah15
16
Historische Daten in Produktivsystemen überschreiten selten einen Horizont von 2-3 Jahren.
Zur Erinnerung: An diesem Anspruch sind die Man.Inf.Sys. der frühen sechziger Jahre gescheitert.
23
2.5. MIS-KONZEPTE
ren aus dem Weg zu gehen, wird sich oft auf abteilungsspezifische Ausschnitte konzentriert. Diese als Data Mart bezeichneten Ausschnitte stellen für sich genommen jeweils
kleine DWH dar. Durch die eingeschränkte Sichtweise vermindert sich die Komplexität des zu entwickelnden Systems radikal, jedoch geht dadurch auch die allumfassende
Unternehmenssicht verloren. Dazu kommen Redundanzen und Inkonsistenzen in den
verschiedenen Data Marts.
Wie aus den Abbildungen 2.7 und 2.9 deutlich wird, sind Metadaten ein unverzichtbarer Bestandteil im DWH. Metadaten beschreiben sowohl Art, Struktur und Herkunft als
auch Zugriffsart und Speicherung der Daten im DWH. Darüber hinaus dokumentieren
sie Art und Zeitpunkt von Datenextraktionen aus Quellsystemen. Diese Daten werden
im laufenden DWH-Betrieb zum Nachvollziehen abgelaufener Prozesse, zur Bewertung von Kennzahlen und für den Zugriff auf die eigentlichen Analysedaten benötigt.
Metadaten werden neben den Nutzdaten in einer separaten Datenbank, dem so genannten Metadaten Repository, gespeichert und verwaltet. [LEHN03, S.45 ff.],[SCHI99,
S. 25 ff.]
2.5.7
Online Analytical Processing
Wie in Abbildung 2.4 zu erkennen ist, begann die Entwicklung von OLAP-Systemen
in den frühen neunziger Jahren, etwa zeitgleich mit dem Aufkommen von DWH. Meist
werden beide Konzepte in einem Atemzug genannt bzw. die Funktionalität des Einen
dem Anderen zugesprochen. Beide Standpunkte sind weder als falsch noch als richtig einzuordnen, denn auf der einen Seite ergänzen sich die beiden Konzepte, indem
das DWH Daten zur Verfügung stellt und OLAP diese analysiert, auf der anderen
Seite können die Konzepte auch ohne einander existieren. Darüber hinaus besitzen
praktische DWH-Systeme, wenn auch begrenzte, Analysemöglichkeiten und OLAPSysteme sind in der Lage, Daten zu modellieren.
Fest steht, dass OLAP ein eigenständiges Konzept mit dem vorrangigen Ziel, mehrdimensionale Daten möglichst schnell zu analysieren, ist. Prägend für den Begriff war
die Veröffentlichung der 12 Grundregeln von E.F. Codd im Jahr 1993. Da diese jedoch zum Teil umstritten17 , sehr detailliert und deshalb nur schwer umsetzbar waren,
folgte 1995, im Rahmen des OLAP Report18 , mit dem Begriff Fast Analysis of Shared
Multidimensional Information (FASMI) eine praktikable OLAP-Definition [CLAU98,
S. 11 ff.]:
17
18
Denn die Regeln entstanden in Zusammenarbeit mit einen namhaften OLAP-Anbieter.
Der OLAP Report ist eine unabhängige Informationsquelle zum Thema OLAP, siehe [OLAP].
24
2.6. CLIENT-SERVER ARCHITEKTUR
• Fast: Die Antwortzeiten des Systems müssen gering sein. Einfache Abfragen
sollten maximal fünf, komplexe nicht mehr als 20 Sekunden benötigen.
• Analysis: Das System muss in der Lage sein, die benötigte Analyselogik abzubilden. Zudem soll es dem Nutzer intuitive Werkzeuge zur Logikeingabe zur
Verfügung stellen.
• Shared: Das System muss für den Mehrbenutzerbetrieb ausgelegt sein, was
dementsprechende Maßnahmen zur Integritätssicherung voraussetzt.
• Multidimensional: Als Schlüsselkriterium wird vom System der Umgang mit
und die Analyse von mehrdimensionalen Datenstrukturen inklusive der Unterstützung von Mehrfachhierarchien verlangt.
• Information: Das System soll die Fähigkeit besitzen, Informationen aus den zur
Verfügung stehenden Daten abzuleiten.
Laut Abbildung 2.4 ist OLAP konzeptionell in die Kategorie der Präsentation einzuordnen, doch wie lässt sich das mit der Aussage, OLAP-Systeme sind in der Lage, Daten zu modellieren, oder dem Begriff der OLAP-Datenbank vereinbaren? Der
Grund liegt darin, dass OLAP vorwiegend für die Analyse und Präsentation von mehrdimensional gespeicherten Daten konzipiert wurde. Ähnlich wie ein DWH sind OLAPSysteme in der Lage, Daten z. B. aus relationalen DB zu extrahieren und in mehrdimensionaler Form zu speichern, um dann die Vorteile der mehrdimensionalen Datenhaltung bei der Analyse nutzen zu können.
OLAP ist nicht das erste Konzept, das auf die Analyse mehrdimensional modellierter
Daten setzt, auch EIS waren diesen Schritt schon gegangen. Jedoch versucht OLAP
analog zum DWH, die Analysedatenbasis weitgehend von den Produktivsystemen zu
trennen.
2.6
Client-Server Architektur
Unter Client-Server Architektur wird eine Netzwerkstruktur verstanden, bei der eine
hierarchische Aufgabenverteilung vorliegt. Der Server ist dabei der Anbieter von Ressourcen und Diensten, auf die die Arbeitsstationen (Clients) zugreifen können. Der
Client ist in diesem Modell für die Interaktion mit dem Nutzer optimiert, während
der Server für die Bereitstellung von Daten für viele gleichzeitig zugreifende Clients
optimiert ist.
25
2.6. CLIENT-SERVER ARCHITEKTUR
Abbildung 2.10: 3-Schichten Architektur
Eine spezielle Form der Client-Server Architektur findet sich in der 3-Schichten Architektur. Wie Abbildung 2.10 zeigt, wird in diesem Modell die Ebene des Servers
weiter in Präsentations- bzw. Anwendungsschicht und Datenschicht unterteilt. Dieses
Konzept findet seine Anwendung zumeist bei dynamischen Webseiten oder browserbasierten Informationssystemen. Es zeichnet sich durch folgende Merkmale aus:
• Plattformunabhängigkeit: Durch den Einsatz von serverseitigen Skriptsprachen wie z. B. PHP, Active Server Pages (ASP) , VB- und Javascript, deren Output HTML ist, wird auf dem Clientrechner zum Anzeigen der Daten lediglich ein
Browser benötigt. Da HTML standardisiert ist und Browser für nahezu alle Betriebssysteme verfügbar sind, ist höchste Plattformunabhängigkeit gewährleistet.
• Sicherheit: Datenabfragen und -manipulationen sind ausschließlich mit Hilfe
der auf dem Web- bzw. Applikationsserver gespeicherte Skripte möglich. Da
dem Nutzer die direkte Kommunikation mit der Datenbasis durch physikalische
Trennung von Präsentation und Daten verwehrt ist, wird die Sicherheit der Daten
wesentlich erhöht.
• Lastverteilung: Die physische Trennung von Präsentations- und Datenschicht
bringt einen weiteren Vorteil mit sich. Starke Belastung des einen Systems führt
nicht zwangsläufig zu Beeinträchtigungen des anderen.
26
Teil III
Praxis
27
Kapitel 3
Ausgangssituation
3.1
Das MedienHaus Rostock
Das MedienHaus Rostock (MHR) ist ein kleiner IT-Dienstleister, der in den Bereichen Consulting, System-Design, Programmierung, Grafik-Design und Bildverarbeitung, Server- und Application-Hosting sowie eBusiness-Lösungen, B2B und B2C tätig
ist.
Es bietet bzw. erarbeitet IT-Lösungen auf den Gebieten:
• Datenbanken, insbesondere SQL- und ACCESS-Lösungen,
• öffentliche und nicht-öffentliche IT-Systemlösungen,
• integrierte Internet- und Telekommunikations-Lösungen,
• Content Management Lösungen,
• neuronale Technologien sowie
• Netzwerk und Netzwerksicherheit.
Der Schwerpunkt der Leistungen des MedienHauses liegt dabei auf der Integration der verschiedenen IT-Komponenten und -Technologien. Darüber hinaus bietet es
Komplettlösungen von Konzeption über Produktion, Installation, Schulung bis hin
zum Pre-Sales-Service. Das MedienHaus Rostock entwickelt, integriert und betreibt
Informations- und Kommunikationssysteme sowie eCommerce Applikationen.
Zu aktuellen Projekten des MHR gehören u. a. Maklersysteme, Webshops und ein Kundeninformationssystem für die Vereins- und Westbank (VuW).
28
3.1. DAS MEDIENHAUS ROSTOCK
Das Maklersystem ist ein datenbankgestütztes Wohnungsverwaltungssystem für
freie Wohnungen, Häuser und Gewerberäume. Der Mittelpunkt der Anwendung ist eine moderne und leistungsfähige Datenbank. In ihr werden die Stammdaten gespeichert
und gepflegt. Aus den Daten werden mit Hilfe von serverseitigen Skriptsprachen sowohl die Homepage als auch die Administrationsschnittstellen als Internetpräsentation
generiert.
GlobalWebShop 3.0 ist ein vollwertiges Warenkorb-System mit Bestellmöglichkeit.
Beim Kundeninformationssystem handelt es sich um ein spezielles Informationsund Managementsystem, welches für Abteilungen der VuW entwickelt wurde. Das
System wurde als Intranetlösung konzipiert und dient der Erfassung, Bereitstellung
und Auswertung aller Informationen zu Geschäftskunden, die Onlinebanking nutzen.
Das Informationssystem ist als zentralisierte Datenbanklösung auf Basis des MS SQL
Servers aufgebaut. Alle Funktionen des Systems sind mittels Webbrowser einfach und
intuitiv bedienbar. Zur Erfassung von Daten verfügt das System über Module zum automatisierten Datenimport, so dass die Daten ständig auf dem aktuellen Stand gehalten
werden können. Zusätzlich ist eine manuelle Datenerfassung möglich.
Das Informationssystem stellt den Mitarbeitern alle vorhandenen Informationen über
ihre Onlinebanking-Kunden schnell und übersichtlich zur Verfügung. So beinhaltet das
System u. a. folgende Kundendaten:
• Adressen, Konten und Zahlungsverkehr,
• betriebswirtschaftliche Daten,
• Informationen zur EDV-Ausstattung,
• Informationen zur Nutzung von Onlinebankingprodukten und -diensten,
• Informationen zum Nutzungsverhalten beim Onlinebanking und
• erbrachte Serviceleistungen inkl. Abrechnungen.
Mit Hilfe von Assistenten kann der Mitarbeiter Auswertungen über Kunden bzw. Kundengruppen, z. B. zum Zahlungsverkehr, zur effektiven Nutzung von OnlinebankingProdukten oder anderen Kriterien erstellen lassen. Diese sind u. a. Grundlage für fundierte Beratungsansätze der Kundenbetreuer.
Weiterhin werden über das System z. B. die Einführung von Hard- und Softwareprodukten für das Onlinebanking beim Kunden abgewickelt. Dabei werden Aufträge der
29
3.2. GRUNDGEDANKEN
Kunden manuell erfasst bzw. auf Grundlage von zuvor getätigten Auswertungen vorqualifiziert. Die Auslösung der anfallenden Versandaufträge erledigt das System dabei
ebenso automatisch wie die Aktualisierung der Kundendaten und die eventuelle Ableitung von Aufgaben für beteiligte Mitarbeiter.
Zusätzlich beinhaltet das Informationssystem spezifische Taskplanungs- und Messagingmodule. Aufgrund seines modularen Aufbaus kann das System bei Bedarf um
weitere Module, z. B. zur Prozess-, Bestellabwicklung, Abrechnung, Auswertung usw.
erweitert werden. [MHHRO]
Das soeben beschriebene Kundeninformationssystem soll zukünftig mit dem Namen
Roteiro und die zugehörige Datenbank als Kundendatenbank (KDB) bezeichnet werden.
3.2
Grundgedanken
Im Tagesgeschäft von Roteiro besteht oft die Notwendigkeit zur Durchführung von
teilweise einmaligen Datenabfragen- und auswertungen. Zwar handelt es sich bei den
verschiedenen Abfragen, wie eine spätere Analyse in Abschnitt 3.4 zeigen wird, in
vielen Fällen um ähnliche Daten, jedoch unterscheiden sich zumeist die Auswahlkriterien oder die Nutzdatenzusammenstellung der gewünschten Ausgabe. Die Realisierung
dieser Auswertungen ist bislang nur mit Hilfe manueller SQL-Abfragen möglich.
Der beschriebene Sachverhalt bringt großen Arbeitsaufwand mit sich. Zum Einen lassen sich die SQL-Abfragen auch bei ähnlichen Problemstellungen meist nicht wieder verwenden, weil sie für die eine bestimmte Problemlösung optimiert wurden, zum
Anderen muss für jede Auswertung eine Ausgabedatei mit eigenem Layout erzeugt
werden. Für beide Probleme sucht das MHR schon seit Längeren nach geeigneten Lösungen.
Mit dem Hardwareumzug Roteiros nach München im Januar 2006 entstand ein weiteres Problem. Wie Abbildung 3.1 zeigt, hat das MHR nun nur noch eingeschränkten
Zugriff auf Roteiro. Manuelle SQL-Abfragen sind nahezu unmöglich.
Der Grundgedanke besteht darin, ein System zu schaffen, welches im Idealfall beliebige Datenabfragen erlaubt und dabei möglichst wenig Eingreifen eines Entwicklers
verlangt. Zudem soll sowohl die Datenauswahl als auch die Erstellung des Präsentationslayout durch den Nutzer vorgenommen werden.
30
3.3. DIE MANUELLE AUSWERTUNG
Abbildung 3.1: Zugriffsweg MHR auf KDB
3.3
Die manuelle Auswertung
In diesem Abschnitt wird der Vorgang der Erstellung einer manuellen Auswertung
skizziert. Ziel ist es, einen Eindruck vom Vorgehen zu vermitteln und bereits bekannte
Schwachstellen aufzuzeigen.
Abbildung 3.2: Ablauf einer manuellen Auswertung als Aktivitätsdiagramm
Abbildung 3.2 zeigt den typischen Ablauf bei der Erstellung manueller Auswertungen.
Erfahrungsgemäß dauert die Anfertigung einer Auswertung, ohne Nachbesserung, in
Abhängigkeit von der Komplexität zwischen zwei und acht Arbeitsstunden. Allerdings
entspricht das Auswertungsergebnis des ersten Durchlaufes i. d. R. nicht den Vorstellungen der Nutzer und es kommt zur Nachbearbeitung. In Extremfällen kann es so
31
3.4. AUSWERTUNGSANALYSE
vereinzelt zu Bearbeitungszeiten von bis zu 40 Stunden kommen.
Die häufigsten Fehlerquellen sind Missverständnisse bei der Begriffsdefinition, vergessene Datenfelder oder falsche bzw. unvollständige Auswahlkriterien. In der Regel wird
pro Woche maximal eine Auswertung angefordert, wobei die Arbeit meist von keinem
bestimmten Entwickler übernommen wird. Damit liegen für den Einzelnen teilweise vier bis fünf Wochen zwischen zwei Auswertungen. Durch diese relativ großen
Zeiträume geraten gemachte Fehler oft in Vergessenheit und werden später erneut begangen.
3.4
Auswertungsanalyse
In diesem Abschnitt werden die Motivation, das Vorgehen und die Ergebnisse der Analyse der in den Abschnitten 3.2 und 3.3 angesprochenen manuellen Auswertungen vorgestellt.
3.4.1
Motivation
Die Analyse wird aus drei Gründen durchgeführt. Erstens soll sie die These des Entwicklerteams, dass es sich bei den Auswertungen um zumeist ähnliche Sachverhalte
und damit auch ähnlich Sprachkonstrukte handelt, untermauern. Wäre dies nicht der
Fall, wäre die gesamte Entwicklung zu überdenken.
Zweitens bilden die Analyseergebnisse die Grundlage für die Zielstellung und die
Entwicklung. Zwar existiert von vornherein das allgemeine Ziel, dass das ReportingModul mindestens 80% der bisherigen manuellen Abfragen bewältigen können muss,
aber eine konkrete Vorstellung, in welcher Größenordnung die Komplexität für die
Erfüllung dieser Anforderung liegen würde, ist bis dato nicht vorhanden.
Drittens soll die Analyse als Mittel der in Abschnitt 2.4.3 beschriebenen Informationsbedarfsermittlung eingesetzt werden. Dabei ist zwar klar, dass vergangene Auswertungen kein Maß für zukünftige darstellen, jedoch bleibt anzunehmen, dass die häufigsten
Sprachkonstrukte auch in neuen Auswertung Wiederverwendung finden.
Darüber hinaus sollte letztlich auch die Tatsache, dass ein strukturierter Gesamtüberblick oft neue Sichtweisen eröffnet, nicht vergessen werden. Es besteht demnach die
Möglichkeit, dass die angestrebte Analyse völlig unerwartete Ergebnisse liefert.
32
3.4. AUSWERTUNGSANALYSE
3.4.2
Definition und Vorgehen
Um die einzelnen Auswertungen einheitlich bewerten zu können, wird im Folgenden
das Vorgehen bei der Analyse definiert.
Gegenstand der Analyse sind alle im Jahr 2005 im Rahmen des Projekts Roteiro durchgeführten manuellen Auswertungen. Der Begriff der manuellen Auswertung bezeichnet dabei eine in Textform gespeicherte Abfolge von SQL-Befehlen.
Um den Inhalt zu bestimmen, werden sowohl Ausprägung als auch Anzahl von Tabellen, Spalten, Funktionen, Sortierungen und Gruppierungen ermittelt. Darüber hinaus
werden Zweck und Besonderheiten der Auswertung bestimmt. Temporärtabellen und
deren Spalten werden nicht in die Analyse mit einbezogen, da sie lediglich Daten aus
realen Spalten enthalten und über die einzelnen Auswertungen hinaus nicht verglichen
werden können. Da der Aufwand für die Auswertungserstellung im Nachhinein nicht
mehr bestimmt werden kann, soll die Anzahl der Zeilen und Zeichen der groben Schätzung1 dienen.
Um eine möglichst gleich bleibende Qualität bei der Durchführung zu sichern, werden einfache, häufig auftretende Arbeitsschritte automatisiert. Das Zählen und Dokumentieren der einzelnen Inhalte wird z. B. durch ein dafür entwickeltes Perlskript2
übernommen. Das Identifizieren der Inhalte sowie die Bestimmung von Zweck und
Besonderheiten bleiben jedoch dem Menschen vorbehalten.
Trotz vieler quantitativer Daten wird die Bewertung der Kompliziertheit einer Auswertung zum Großteil von der subjektiven Einschätzung des Durchführenden beeinflusst.
Die SQL-Syntax, obwohl oft als starr und einfach empfunden, ist zu komplex, um die
Schwere einer Abfrage anhand eines einfachen Modells zu berechnen. Da die Analyse
der Auswertungen jedoch lediglich einen Teil dieser Ausarbeitung darstellt, wird die
Komplexität der Abfragen der Einfachheit halber subjektiv bestimmt.
Als Zusammenfassung der Einzelanalysen wird eine Aufstellung der relativen Häufigkeiten der untersuchten Inhalte das Gesamtbild abrunden. Die Inhalte mehrmals ausgeführter Auswertungen gehen dabei nur einmal in die Wertung mit ein, da bei der
geringen Anzahl von Auswertungen mehrfach ausgeführte das Bild stark dominieren
würden.
1
2
Diese Schätzung ist keinesfalls repräsentativ.
Der Quellcode dieser Analysehilfe befindet sich in Anhang A.
33
3.4. AUSWERTUNGSANALYSE
3.4.3
Ergebnisse
Nach der Analyse der 25 manuellen Auswertungen aus dem Jahr 2005 stellt sich die
durchschnittliche Auswertung wie folgt dar3 :
Die Auswertung fragt mit Hilfe von 10,96 Select-Anweisungen 10,72 verschiedene
Spalten aus 7,44 unterschiedlichen Tabellen ab. Sie nutzt 1,6 Insert-, 1,84 Update-,
0,72 Order by- und 0,36 Group by-Anweisungen. Sie enthält 2053,72 Zeichen auf
59,12 Zeilen verteilt, besitzt einen Schweregrad von 3,68 und wird durchschnittlich
1,48 mal ausgeführt. Weiterhin handelt es sich beim Ergebnis der Auswertung mit
einer Wahrscheinlichkeit von 88% um eine Liste aus zweidimensionalen und zu 12%
um mehrdimensionale Daten.
Durchschnittlich wird alle zwei Wochen eine Auswertung erstellt. Bei der graphischen
Darstellung4 der einzelnen Zeitpunkte fällt jedoch auf, dass sich die Auswertungen
nicht gleichmäßig verteilen, sondern meist in Gruppen auftreten. Bei gleichzeitiger
Betrachtung der Inhalte wird klar, dass meist zwei Auswertungen zu ähnlichen Sachverhalten in kurzen Abständen hinter einander angefertigt wurden.
Abbildung 3.3: graphischen Darstellung der Auswertungsanalyse
3
4
Alle Materialien und Ergebnisse der Analyse befinden sich auf der Begleit-CD im Verzeichnis
Analyse, siehe Anhang D.
Siehe Abbildung 3.3 oben.
34
3.5. GRUNDSÄTZLICHE SCHWIERIGKEITEN
Annähernd jede zweite Auswertung enthält Daten aus den Tabellen Mitarbeiter, Partnernummer, Kunden, Adressen, BcsPartner oder Kundenbetreuer. Dies war zu erwarten, da es sich bei diesen Objekten um die zentralen Elemente Roteiros handelt. Allerdings sollte das nicht darüber hinweg täuschen, dass in den 25 Auswertungen 98
Spalten aus 40 verschiedene Tabellen abgefragt wurden. Auch wenn diese Zahlen auf
den ersten Blick nichtssagend klingen, lassen sich doch einige Erkenntnisse aus ihnen
ableiten.
1. Der hohe Anteil der Tabellen (32,5%) und Spalten (51%), die in einer Auswertungen auftauchten, zeigt, dass sich die Abfragen nicht so stark ähneln wie erhofft.
2. Sich ähnelnde Auswertungen wurden meist in geringen Abständen erstellt, was
den Eindruck der Entwickler erklärt, dass verschiedene Auswertungen oft die
gleichen gleichen Sachverhalte wiederspiegeln.
3. Bei den Ergebnissen der manuellen Auswertungen handelte es sich vorrangig um
Listen zur Synchronisierung von Datenbeständen oder als Grundlage für Marketingaktionen, echte Datenanalysen waren die Seltenheit.
4. Sortierungen spielten oft eine wichtige Rolle, Gruppierungen der Daten wurden
dagegen wesentlich sparsamer eingesetzt.
5. Die Anzahl der Insert- und Update-Befehle zeigt, dass zur Ergebniserstellung
oder -speicherung meist Temporärtabellen eingesetzt wurden.
6. Der Einsatz von Update-Anweisungen kann die Komplexität einiger Abfrage auf
Kosten der Quelltextmenge herabsetzen.
7. Die Komplexität der Auswertungen schwankte sehr stark, jedoch war ein Trend
zwischen Länge und Schwere der Auswertung erkennbar.5
Auffällig waren die teilweise sehr komplizierten Zusammenhänge zwischen Speicherung und Bedeutung der Daten. Für einen Teil dieser Zusammenhänge wurden zur
Vereinfachung Funktionen genutzt, deren Verwendung im Laufe des Jahres zunahm.
3.5
Grundsätzliche Schwierigkeiten
In diesem Kapitel werden die bei bisherigen manuellen Anfragen beobachteten und
von Vornherein absehbaren Schwierigkeiten für das zukünftige System erläutert und
diskutiert.
5
Siehe Abbildung 3.3 unten.
35
3.5. GRUNDSÄTZLICHE SCHWIERIGKEITEN
3.5.1
Sprachprobleme
Eine der schwierigsten Aufgaben bei der Anfertigung von manuellen Auswertungen
ist die korrekte Umsetzung der verbalen Anfrage des Nutzers. Das Hauptproblem liegt
hierbei in den verschiedenen Sprachebenen, auf denen sich Nutzer und Entwickler
bewegen. Als Folge dieses Verständigungsproblems entstehen falsche6 Auswertungsergebnisse und mit deren Korrektur ein nicht unerhebliches Maß an Mehrarbeit. Die
Verständigungsschwierigkeiten sind vergleichbar mit den in Abschnitt 2.5.6 beschriebenen und in Abbildung 2.8 gezeigten Sprachkonflikten beim Load Management im
DWH.
Eine weitere Fehlerquelle liegt in der Datensicht. Während der Nutzer nur die Daten kennt, die er zum täglichen Arbeiten benötigt, stehen dem Entwickler meist alle
existierenden Daten zur Verfügung. Darüber hinaus arbeitet der Nutzer mit bereits angepassten, der Entwickler jedoch mit Rohdaten.
Letztlich enthalten die verbalen Anfragen meist nur erwünschte Parameter. Ausschlusskriterien werden oft als selbstverständlich oder implizit angesehen, obwohl gerade sie die Grundlage effizienter Datenabfragen darstellen.
Da das Problem der Verständigung sowohl auf Nutzer- als auch auf Entwicklerseite
besteht, ist es schwierig, eine geeignete Lösung zu finden. Die beste Möglichkeit besteht in der Definition eines unmissverständlichen Begriffskatalogs. Jedoch ist dessen
Realisierung im Rahmen dieses Projektes nicht möglich.
Es scheint nicht Erfolg versprechend, dem Nutzer die Sprachebene des Entwicklers
abzuverlangen. Daher bleibt nur die Möglichkeit, dem Entwickler Mittel zur Verfügung zu stellen, die das Verständnis des Nutzers erleichtern. Der sukzessive Aufbau
einer Übersetzungstabelle wäre mit geringem Aufwand realisierbar und würde sich als
hilfreich erweisen. So könnten auch als selbstverständlich geltenden Kriterien als Standardparameter in geeigneter Form festgelegt und gespeichert werden. Darüber hinaus
wäre es sinnvoll, Begriffsdefinitionen aus Roteiro heranzuziehen, da der Nutzer einen
Großteil der Begrifflichkeiten von dort entlehnt. Allerdings ist zu bedenken, dass durch
den sukzessiven Aufbau einige Zeit vergehen wird, bevor zufrieden stellende Ergebnisse erzielt werden.
6
I. S. v. das Ergebnis entspricht nicht dem, was der Nutzer erwartet hat.
36
3.5. GRUNDSÄTZLICHE SCHWIERIGKEITEN
3.5.2
Abfrageerstellung
Eine weitere schwierige Aufgabe besteht in der Erstellung des SQL-Quelltextes der
Auswertung. In komplexen Produktivsystemen wie Roteiro7 fällt es selbst dann, wenn
der Benutzer bereits weiß, was er benötigt, nicht leicht, die entsprechenden Daten
zu extrahieren. Dies liegt zum Großteil daran, dass die Datenbank im Hinblick auf
Integritäts- und Konsistenzsicherung optimiert ist. Auch der andauernde Wandel von
Strukturelementen und die Integration neuer Merkmale verschlechtern die Übersichtlichkeit und erschweren die Datenentnahme. In der Praxis wird in diesem Zusammenhang oft von gewachsenen Systemen gesprochen, d. h. in das System werden nachträglich Sachverhalte aufgenommen, die bei der Planung nicht vorgesehen waren. Einfachste Sachverhalte bedürfen daher nicht selten komplexer SQL-Abfragen.
Wie bereits in Abschnitt 3.4.3 angesprochen, erleichtern inzwischen so genannte benutzerdefinierte Funktionen den Datenbankzugriff. Mit ihrer Hilfe lassen sich komplizierte Abfragen speichern und parametrisiert wieder verwenden. Dennoch haben auch
diese Funktionen Grenzen und Nachteile. Das größte Manko besteht darin, dass der bereits kompilierte Code der Funktion bei der SQL-internen Abfrageoptimierung nicht
mehr berücksichtigt wird. Die Folgen sind schwer kalkulierbare Geschwindigkeitsverluste, die sich besonders bei großen Abfragen und Datenmengen bemerkbar machen.
Bei kleinen Abfragen bzw. wenigen Daten bringen die Funktionen dagegen teilweise
erhebliche Geschwindigkeitsvorteile, was darauf zurückzuführen ist, dass der Code der
Funktion bereits in kompilierter Form vorliegt. Bei Auswertungen liegt der Hauptvorteil der benutzerdefinierte Funktion jedoch eindeutig in der zentralen Definition und
Speicherung von komplizierten Abfragen und Zusammenhängen.
Im Hinblick auf den in Abschnitt 3.2 formulierten Grundgedanken stellt sich die Frage, wie eine nutzergesteuerte Datenextraktion erfolgen soll. Sicher ist, dass der Nutzer
kein SQL für seine Abfrage benötigen darf. Dies hat zwei Gründe: Erstens ist davon
auszugehen, dass der überwiegende Teil der Roteironutzer keine SQL-Kenntnisse besitzt und zweiten ist das Erstellen von sinnvollen Abfragen nur mit Wissen über den
Aufbau des Datenmodells und den Zusammenhängen zwischen den Daten möglich.
Zweiteres stellt allgemein das Problem bei Abfragen dar. Metadaten- und Dokumentationssysteme versuchen die Schwierigkeiten zu minimieren, indem sie mehr Transparenz im Bereich Datenstruktur und -zusammenhang schaffen.
7
Die KDB enthält zur Zeit ca. 230 Tabellen mit mehr als 3000 Spalten.
37
3.6. ERWEITERUNG DER PROBLEMSTELLUNG
3.6
Erweiterung der Problemstellung
In diesem Abschnitt wird der in Abschnitt 3.2 formulierte Grundgedanke mit den gefundenen Problemen und daraus resultierenden Erkenntnissen kombiniert. Das Ziel
dabei ist, eine erste detaillierte Spezifikation der Aufgabenstellung unter Berücksichtigung bekannter Probleme zu erstellen, auf deren Basis eine zielgerichtete Suche nach
Lösungen möglich ist.
Der Grundgedanke der Ausarbeitung ist die Tatsache, dass sowohl die HypoVereinsbank (HVB) als auch das MHR die Entwicklung eines Systems anstreben, mit dem
sich nutzergesteuert Daten aus einer Datenbank extrahieren und analysieren lassen.
Dabei ergeben sich zusammengefasst folgende Probleme:
Sprach- und Verständigungsprobleme:
• allgemeine Sprachkonflikte zwischen Nutzer und Entwickler
• der einzelne Nutzer kennt i. d. R. nur die Daten, die er selbst verwendet
• Nutzer bezeichnen mit gleichen Begriffen verschiedene Sachverhalte
Probleme bei der Datenidentifikation:
• der Nutzer ist sich der Abfragedefinition oft nicht bewusst welche Parameter
bzw. Filter zu verwenden sind
• selbst den Administratoren der HVB sind die Strukturen und Abhängigkeiten
ihres Datenmodells nicht immer bewusst
• die Datenspeicherung in Roteiro ist teilweise sehr kompliziert
Zugriffsbeschränkungen:
• der Datenzugriff darf nur unter Berücksichtigung der in Roteiro implementierten
Nutzerrechte möglich sein
• Roteiro ist ein browserbasiertes IS, einzige Schnittstelle ist der Internet Information Services (IIS)
Sonstige Probleme:
• der Betrieb eines weiteren Datenbanksystems ist wegen zusätzlicher Hardwarekosten tendenziell unerwünscht
• Analyse und Extraktion sollen auf möglichst aktuellen Daten realisiert werden
38
3.7. LÖSUNGSMÖGLICHKEITEN
Spezifikation:
Unter Berücksichtigung der aufgelisteten Probleme muss das System folgenden Anforderungen genügen.
7→ Das System muss Daten extrahieren und analysieren können,
7→ Ergebnisse in geeigneter Form z. B. als CSV-, PDF- oder XLS-Datei speichern,
7→ den Nutzer bei der Datenauswahl unterstützen,
7→ aus Benutzersicht Abfragen ohne SQL ermöglichen,
7→ das in Roteiro implementierte Rechtekonzept umsetzen,
7→ in die Benutzeroberfläche von Roteiro integrierbar sein,
7→ auf dem operativen Produktionssystem aufsetzten und
7→ darf den Ablauf des Produktionssystems nicht behindern.
3.7
Lösungsmöglichkeiten
In diesem Abschnitt werden die verschiedene Möglichkeiten zur Realisierung des
Reporting-Moduls eingehend betrachtet und diskutiert. Potenziell bieten sich drei
Varianten zur Realisierung eines Reporting-Moduls. Hierbei handelt es sich um
OLAP/DWH, kommerzielle Reportingtools und eine Eigenentwicklung.
3.7.1
OLAP und Data Warehouse
Zunächst ist festzuhalten, dass OLAP und DWH bei der Bewertung der Lösungsmöglichkeiten zusammengefasst werden. Sie sind zwar jeweils eigenständige Konzepte8 ,
allerdings ist die einzelne Betrachtung im Kontext dieser Lösungssuche nicht sinnvoll.
Im Rahmen der gestellten Anforderungen ist auf Seiten des DWH nur der Einsatz einer virtuellen DWH-Lösung möglich, weil die Analysedaten aktuell sein sollen und
die Anschaffung neuer Hardware nicht finanzierbar ist. Da zum Einen virtuelle DWHLösungen oft Bestandteil von OALP-Systemen sind und zum Anderen ähnliche Vorund Nachteile wie OLAP aufweisen, sind unter dem Begriff OLAP-System im Folgenden auch virtuelle DWH zu verstehen.
8
Vgl. Abschnitt 2.5.7.
39
3.7. LÖSUNGSMÖGLICHKEITEN
OLAP-Systeme sind zur Datenanalyse konzipiert und darüber hinaus in der Lage, benutzerdefinierte Abfragen zu realisieren. Die Abfragen lassen sich mit dem Frontend
erstellen. Analysen von multidimensional gespeicherten Daten sind sehr schnell, zudem stellen OLAP-Systeme eine Reihe verschiedener Auswertungsmöglichkeiten aus
den Bereichen Statistik und Data Mining zur Verfügung. Die Distribution des Microsoft SQL Server 2000 (MsSQL2000), die vom MHR für die Datenspeicherung Roteiros eingesetzt wird, enthält bereits das OLAP-System Analysis Services, es würden
demnach keine zusätzlichen Softwarekosten entstehen.
Das Speichern der Analyseergebnisse in den gewünschten Formaten stellt kein Problem dar.
Bei der Datenauswahl unterstützen OLAP-Systeme wie Analysis Services den Benutzer insofern, dass Spalten aus Tabellen ausgewählt werden können. Die sinnvolle
Verknüpfung der Daten aus mehreren Tabellen erfolgt automatisch unter Verwendung
der Fremdschlüsselbeziehungen. Die Datenauswahl ist somit ohne SQL möglich, allerdings navigiert der Benutzer direkt auf der Produktivdatenbank. Demzufolge sind
Kenntnisse zur Datenstruktur der Inhalte unbedingt erforderlich.
Die Nutzerrechte werden direkt in der OLAP-Datenbank definiert. Die Nutzung des
Rechtekonzepts aus Roreiro ist damit nicht möglich.
Da es sich bei OLAP-Systemen i. A. um Client-Server-Anwendungen handelt, ist der
volle Funktionsumfang lediglich bei der Verwendung des Frontends möglich, dessen
Einsatz sich jedoch aus zwei Gründen verbietet. Erstens müsste die Clientsoftware
beim Nutzer lokal installiert sein, was aber aus Sicherheitsgründen bei der HVB nicht
erlaubt ist. Zweitens müssten Client- und Serversoftware direkt miteinander kommunizieren können. Das hätte jedoch zur Folge, dass der OLAP-Server auf dem mit der
Außenwelt verbundenen Webserver installiert sein müsste. Auch dies ist aus Sicherheitsgründen nicht zulässig. Die angestrebte Integration in Roteiro mittels der standardisierten Schnittstelle OLE DB for OLAP ist nur mit erheblichem Aufwand möglich,
denn einerseits fehlt es dem MHR an Kenntnissen zum Umgang mit dieser Schnittstelle und andererseits bringt die Integration großen Programmieraufwand mit sich.
OLAP-Systeme können zwar direkt auf relationale Datenbanken aufsetzen und deren
Daten analysieren, allerdings geht dabei der wesentliche Geschwindigkeitsvorteil verloren. Um diesen im vollen Umfang auszunutzen, müssten die auszuwertenden Daten
zuvor in multidimensionaler Form gespeichert werden. Diese Überführung der Daten birgt jedoch erhebliche Schwierigkeiten, denn die multidimensional gespeicherten
Daten stellen lediglich das Abbild zum Zeitpunkt der Überführung dar. Demzufolge
müssten die Daten entweder vor jeder Auswertung erneut überführt werden, was allein
40
3.7. LÖSUNGSMÖGLICHKEITEN
aus zeitlicher Sicht nicht vertretbar ist, oder es müsste eine periodische Aktualisierung, die beispielsweise täglich oder wöchentlich durchgeführt werden würde, in Kauf
genommen werden.
Zusammenfassend ist festzustellen, dass OLAP- und DWH-Systeme für die Lösung
der bestehenden Problem nicht in Frage kommen.
3.7.2
Externe Berichtswerkzeuge
Reportingtools wie z. B. Business Objects Crystal Reports, Cognos ReportNet oder
Microsoft Reporting Services sind spezielle Softwarelösungen zur Berichtserstellung.
Auch wenn sich die Zielsetzungen dieser Produkte stark ähneln, gibt es z. T. erhebliche
Unterschiede in der Art und den Umfang der Umsetzung. Da es sich bei den genannten
Berichtswerkzeugen um auf dem Markt weit verbreitete Produkte handelt, sollen sie
an dieser Stelle als Stellvertreter für die Bewertung dienen.
Die Extraktion und Analyse von Daten aus verschiedensten Quellen sowie die Speicherung der Ergebnisse in unterschiedlichsten Dateiformen sind elementare Bestandteile
dieser Systeme. Darüber hinaus bieten sie Hilfsmittel zur Berichtsgestaltung und zur
Erstellung von Graphiken.
Bei der Abfrageunterstützung zeigen sich gravierende Unterschiede. Während Crystal
Reports und ReportNet auf graphische Unterstützung setzen, sind die Datenabfragen
in Reporting Services mit SQL zu definieren. Allerdings wird in der Welt der Berichtswerkzeuge unter einem Nutzer immer ein Individuum verstanden, welches sich mit
den Datenstrukturen der Datenbank auskennt. Dies ist i. d. R. ein Administrator oder
Entwickler. Der eigentliche Nutzer des Systems wird meist als Empfänger, Kunde oder
Partner bezeichnet und hat nur wenige Möglichkeiten, die Berichtsdarstellung oder deren Inhalte zu beeinflussen.
Alle Werkzeuge bringen ihre eigenen Komponenten zur Rechteverwaltung mit. Inwiefern externe Rechtekonzepte übernommen werden können, ist nicht bekannt.
Die Anzeige der erstellten Berichte als Webseite ist generell bei allen Tools möglich.
Das liegt nicht zuletzt daran, dass Berichte verteilt werden müssen und Netzwerke
dazu ein ideales Medium sind. Allgemein zeigen sich bei den Nutzerschnittstellen
die größten Unterschiede zwischen den Reportinglösungen. Während ReportNet den
kompletten Funktionsumfang als browserbasiertes System zur Verfügung stellt, bietet Reporting Services lediglich die Darstellung und Verwaltung der Berichte über die
Webschnittstelle. Zur Reporterstellung wird zusätzlich Microsoft Visual Studio benö41
3.7. LÖSUNGSMÖGLICHKEITEN
tigt. Um bei Crystal Reports den vollen Funktionsumfang nutzen zu können, ist der
Benutzer auf das Frontend angewiesen. Dieses unterstützt ihn nicht nur bei der Berichtserstellung und -verwaltung, sondern bietet darüber hinaus viele Analysehilfen,
die sich sonst in OLAP- und Data Mining-Werkzeugen finden.
Um die Integration in verschiedenste Anwendungen zu ermöglichen, verfügen die
untersuchten Berichtswerkzeuge über Programmierschnittstellen, mit deren Hilfe ein
Großteil der Funktionalitäten auch von externen Anwendungen genutzt werden kann.
Abschließend ist zu den Reportingtools festzuhalten, dass sie zahlreiche nützliche
Hilfsmittel und Funktionen bieten, um das Standardreporting einfacher und effektiver
zu gestallten. Graphische Darstellungen sowie Analysewerkzeuge aus den Bereichen
OLAP und Data Mining helfen zudem dabei, den zur Verfügung stehenden Daten noch
mehr Information zu entnehmen.9
Zur Lösung des Hauptproblems der Ausarbeitung sind sie dennoch ungeeignet, da sie
in jedem Fall Administrator- bzw. Entwicklerwissen zur Datenextraktion voraussetzen.
Es fehlen Konzepte, die es Nutzern ermöglichen, Daten ohne Kenntnis der Datenstruktur abzufragen.
3.7.3
Eigene Entwicklung
Es ist anzunehmen, dass eine maßgeschneiderte Lösung die gestellten Anforderungen
am ehesten erfüllen wird, da sich die Realisierung an den Problemen orientiert, jedoch
sind dabei Kosten im Auge zubehalten.
Für häufig auftretende Probleme und Aufgabenstellung bietet externe Software zumindest im Hinblick auf Kosten und Nutzen meist die günstigere Alternative. Denn
sie garantiert den Erhalt eines großen Umfangs an Funktionen und Unterstützung und
die Kosten dafür liegen unter denen, die bei der Entwicklung einer eigenen Software
entstehen würden. Ausgehend davon kann festgestellt werden, dass eine Eigenentwicklung meist nur dann sinnvoll ist, wenn es keine externe Lösung gibt, die die gestellten
Anforderungen erfüllt.
Das zu entwickelnde Reporting-Modul ist ein solcher Fall. Aus der fehlenden Möglichkeit, ein Modell zu definieren, das es auch einem Nutzer gestattet, Daten zu extrahieren, resultiert die Notwendigkeit, ein solches Modell selbst zu entwickeln. Die
Realisierung des Reporting-Moduls wird in den Kapiteln 4 und 5 eingehend beschrieben.
9
Weiter Informationen zu den beschriebenen Berichtswerkzeugen befinden sich in Anhang B.
42
Kapitel 4
Software Engineering
In diesem Kapitel wird die Entwicklung des Reporting-Moduls, das im folgenden auch
als Reporting-Engine (RPE) bezeichnet wird, aus der Sicht der System- und Softwareentwicklung betrachtet, dessen strukturiertes Vorgehen möglichen Entwicklungsfehlern entgegen wirken soll.
Die Anwendungsentwicklung erfolgt idealtypisch in den sechs Phasen Analyse, Konzeption, Design, Implementierung, Einführung und Betrieb. [STEI05, S. 4 ff.] Da der
Ist-Zustand bereits in Kapitel 3 sowohl ausführlich erläutert als auch analysiert wurde
und die Einführung sowie der Betrieb des Reporting-Moduls nicht Gegenstand dieser Ausarbeitung sind, verbleiben lediglich die Phasen Konzeption, Design und Implementierung. Letztere wird separat in Kapitel 5 behandelt. Als Ergebnis der ISTAnalyse wird zunächst die Anforderungsdefinition mittels Lastenheft präsentiert, bevor die Konzeption und das Design der RPE vorgestellt werden.
4.1
Anforderungsdefinition
Zur strukturierten Abbildung der Anforderungsdefinition eines Softwaresystems wird
in der Praxis häufig ein Lastenheft verwendet. Bei umfangreichen Softwareprojekten
wird aus diesem in einem zweiten Schritt ein Pflichtenheft erstellt, das die einzelnen Abschnitte des Lastenheftes weiter verfeinert. Das Pflichtenheft dient später sowohl als Grundlage für die Entwicklung als auch als Basis für Vertragsverhandlungen.
[SCHW95, S.106 ff.] Da es sich bei der Entwicklung im Rahmen dieser Ausarbeitung
lediglich um ein Teilsystem handelt, wird sich auf die weniger detaillierte Anforderungsdefinition mittels Lastenheft beschränkt.
43
4.1. ANFORDERUNGSDEFINITION
4.1.1
Zielbestimmung
Die Zielbestimmung präzisiert die Zielstellung der Entwicklung mittels dreier Kriterien: Musskriterien sind zwingend zu erfüllen und bilden den zentralen Kern der Entwicklung. Kannkriterien bezeichnen Aufgaben und Eigenschaften der Software, die
erwünscht, aber nicht unbedingt erforderlich sind. Die Abgrenzungskriterien dienen
letztlich dazu, die Zielstellung mit Hilfe einer Negativliste so weit wie möglich einzugrenzen.
Musskriterien:
• Extraktion von Daten aus der KDB
• Datenauswahl durch Roteironutzer
• Verwaltung der Datenauswahl und zugehöriger Ergebnisse
• Darstellung relationaler und multidimensionaler Daten
• Datenausgabe in den Formaten HTML, PDF und XLS
• keine Störung des Betriebs Roteiros
Kannkriterien:
• Analyse der KDB-Daten
• graphische Darstellung und Analyse
Abgrenzungskriterien:
• kein vollständiger Abfragegenerator
4.1.2
Produkteinsatz
Der Produkteinsatz betrachtet das Einsatzgebiet der Software-Lösung von drei verschiedenen Standpunkten. Dabei stellt jeder Blickwinkel eine weitere Spezifikation
der Anforderungen dar.
Das Reporting-Modul dient der nutzergesteuerten Entnahme von Daten aus der KDB.
Da es sich bei der RPE um ein in Roteiro zu integrierendes Teilsystem handelt, ist der
Einsatzbereich in jedem Fall stark an das Gesamtsystem gebunden.
44
4.1. ANFORDERUNGSDEFINITION
Anwendungsbereiche
Roteiro und damit auch RPE finden ihre Anwendung im Bereich Electronic Services
der HVB.
Zielgruppen
• Mitarbeiter des Bereiches Electronic Services (Anfangs mind. Level 2)
• Administratoren des MHR
Betriebsbedingungen
• Nutzung im Einschichtbetrieb, für etwa 8 bis 10 Stunden täglich
• MultiUserAnwendung
• Administratorunterstützung
4.1.3
Produktübersicht
Die Produktübersicht in Abbildung 4.1 visualisiert die Einordnung des Moduls ins
Gesamtsystem. Die Darstellung zeigt das die RPE zur Ausführung den Web- und Applikationsserver Roteiros und zur Datenspeicherung einen Teil der KDB nutzen soll.
Durch dieses Vorgehen ist eine vollständige Integration der RPE in Roteiro gewährleistet.
Abbildung 4.1: Die ReportingEngine im Anwendungskontext
45
4.2. KONZEPTION
4.1.4
Produktfunktionen, -daten und -leistungen
In diesem Abschnitt werden stichpunktartig sowohl die Funktionen und Leistungen als
auch die Daten, die die Software zur Verfügung stellen bzw. mit denen sie umgehen
muss, definiert.
Produktfunktionen
F10 Erstellung und Verwaltung von Auswertungsdefinitionen
F20 Umsetzung der Auswertungsdefinitionen zu Auswertungsergebnisse
F30 Verwaltung der Auswertungsergebnisse
F40 Erstellung der Ergebnisausgabe als HTML, PDF und XLS
Produktdaten
D10 alle relevanten Nutzdaten der KDB
D20 Metadaten zur Beschreibung der Nutzdaten
D30 Formatierungsdaten des Reports
D40 Ergebnisdaten des Reports
Produktleistungen
L10 nutzerdefinierte Datenabfragen
L20 Speicherung der Abfrageergebnisse
L30 dynamische Darstellung der Ergebnisse
4.2
Konzeption
Dieser Abschnitt dient der Erstellung eines Modells, welches die gestellten Aufgaben
und Anforderungen erfüllen soll. Das Konzept wird mittels Top-Down-Entwurfes erstellt und mit Hilfe von Use-Case-Diagrammen visualisiert.
Im ersten Schritt des Top-Down-Entwurfs wird das Grobkonzept erstellt, das den prinzipiellen Ablauf der nötigen Prozesse skizziert. Anschließend werden diese Prozesse
im Feinkonzept weiter konkretisiert.
46
4.2. KONZEPTION
4.2.1
Grobkonzept
Die Grundidee der RPE besteht darin, SQL-Abfragen so zu definieren, dass sich der
Roteironutzer später beliebige Auswertungen zusammenstellen kann. Um dies zu erreichen wird, der SQL-Quellcode modular gespeichert. Im Folgenden wird der so gespeicherte Quellcode als Abfragefragment oder -teil bezeichnet. Abbildung 4.2 illustriert die Beziehungen zwischen den vier zentralen Prozessen und den zwei beteiligten
Akteuren.
Abbildung 4.2: Use Case Diagramm des Grobkonzeptes
Der Prozess ist aus zwei Blickwinkeln zu betrachten: aus Administrator- und aus Nutzersicht. Aufgabe der Administratoren wird es sein, im Vorfeld alle Abfrageteile, die
die Nutzer in ihren Auswertung verwenden möchten, zu definieren. Dieser Vorgang
erfolgt für jedes Fragment einmalig. Nach der Definition kann es durch beliebig viele
Nutzer beliebig oft wiederverwendet werden.
Die Beziehung zwischen Nutzer und Administrator, welche die Definition benötigter
Abfragefragmente initiiert, wird im Modell absichtlich nicht abgebildet. Dafür gibt es
folgende Gründe:
1. Der Kommunikationsprozess zwischen Nutzer und Administrator ist für den
Kerngedanken des Konzepts irrelevant.
2. Es handelt sich um einen für jeden einzelnen Abfrageteil einmaligen Prozess.
3. Die ersten Definitionen von Abfragefragmenten erfolgen auf Grundlage der Auswerungsanalyse bzw. ausgewählter Beispiele.
Aus Nutzersicht ist für eine Auswertung sowohl der Inhalt als auch das Layout zu
definieren. Nach der Erstellung werden dem Nutzer die Ergebnisse in Dateiform zur
Verfügung gestellt.
Die Generierung und Ausführung der SQL-Abfrage erfolgt vollautomatisch.
47
4.2. KONZEPTION
4.2.2
Feinkonzept
In diesem Abschnitt werden die im Grobkonzept vorgestellten Prozesse weiter verfeinert, d. h. jeder Prozess wird in weitere Teilprozesse zerlegt.
Abfragefragmente definieren
In diesem Prozess werden SQL-Abfragen so zerteilt, dass die Fragmente später zu
beliebigen, jedoch trotzdem korrekten SQL-Abfragen kombiniert werden können. Abbildung 4.3 verdeutlicht die Zusammenhänge zwischen den zu definierenden Teilen.
Abbildung 4.3: Use Case: Abfragefragmente definieren
Die SQL-Abfrage wird in die vier Bestandteile Tabellendaten, Filter, Verknüpfungen
und Nutzdatenabfrage zerlegt. Die Tabellendaten bestehen aus dem Tabellennamen
und dem Primärschlüssel. Filter dienen der Einschränkung der Datenmenge. Verknüpfungen repräsentieren für Auswertungen sinnvolle Fremdschlüsselbeziehungen zwischen zwei Tabellen. Als Nutzdaten werden im Rahmen dieser Ausarbeitung die Daten
bezeichnet, die dem Nutzer letztendlich zur Verfügung gestellt werden.
Um den Nutzer eine Auswertungsdefinition ohne SQL-Kenntnisse zu ermöglichen,
werden zusätzlich zu den Abfragefragmenten Metadaten mit Informationen zur Bedeutung der Teile abgelegt. Diese fungieren dann als Übersetzungsschicht.
Auswertung zusammenstellen
Das Zusammenstellen der Auswertung wird im weiteren Verlauf dieser Ausarbeitung
als Erstellung eines Auswertungsprofils bzw. als Erstellung eines Profils bezeichnet.
Diese Begrifflichkeit wurde gewählt, um zu verdeutlichen, dass es sich bei der Zusammenstellung nicht um reale Daten sondern lediglich um deren Beschreibung handelt.
48
4.2. KONZEPTION
Abbildung 4.4: Use Case: Auswertung zusammenstellen
Ein Auswertungsprofil wird von einem Nutzer definiert. Dieser ist der Eigentümer des
Profils. Das Verändern oder Löschen eines Profils ist ausschließlich1 dem Eigentümer
vorbehalten.
Abbildung 4.4 verdeutlicht die grundlegenden Prozesse beim Anlegen eines Profils. Gleichzeitig sind die drei enthaltenen Informationsarten erkennbar. Dies sind
Auswertungs-, Anzeige- und Profilinformationen.
Abfrage generieren und ausführen
Das Generieren und Ausführen der SQL-Abfrage wird als vollautomatischer Prozess
konzipiert. Eine direkte Interaktion mit einem Akteur ist demnach nicht notwendig.
Die Darstellung als Use Case Diagramm ist aus diesem Grund nicht sinnvoll. Stattdessen soll das Aktivitätsdiagramm in Abbildung 4.5 den grundsätzlichen Ablauf dieses
Prozesses verdeutlichen.
Abbildung 4.5: Aktivitätsdiagramm: Abfrage zusammenstellen
Ergebnisse abholen
Der Prozess des Abholens der Ergebnisse wird nicht weiter verfeinert, da er keine
Unterprozesse besitzt. Er ist jedoch für das Verständnis des Konzeptes von zentraler
1
Hiervon ausgenommen sind administrative Eingriffe.
49
4.3. DESIGN
Bedeutung. Durch ihn wird signalisiert, dass sowohl die Datenabfrage als auch die Datenaufbereitung nicht online realisiert werden. Mit diesem Vorgehen soll der gestellten
Anforderung nachgekommen werden, den reibungslosen Betrieb des Produktivsystems
so wenig wie möglich zu stören.
Da es bei den bisherigen manuellen Auswertungen in jedem Fall zu Wartezeiten kam,
stand schon bei Projektbeginn fest, dass eine warteschlangenbasierte Lösung einer
RPE in Frage kommen würde. Dadurch lassen sich Probleme, die insbesondere durch
den Mehrbenutzerbetrieb und durch umfangreiche Auswertungen entstehen, erheblich
entschärfen. Beispielsweise gab es in der Vergangenheit Auswertungen, die Laufzeiten von mehr als 30 Minuten aufwiesen. Diese Auswertung über eine Webschnittstelle
auszuführen, hätte unweigerlich ein Timeout des Webservers zur Folge. Zudem würde
die gleichzeitige Ausführung vieler Auswertungen mit großer Wahrscheinlichkeit den
Betrieb des Produktivsystems erheblich behindern.
Durch den Einsatz eines warteschlangenbasierten Systems können diese Probleme umgangen werden. Der Nutzer stellt seinen Auftrag ein und wird bei Fertigstellung informiert. Die Abarbeitung der Aufträge kann damit so gesteuert werden, dass die zur
Verfügung stehende Rechenzeit optimal genutzt wird. Das könnte z. B. auch bedeuten,
dass die Ausführung der Auswertungen auf die Tageszeiten verlegt werden, in denen
niemand am Produktivsystem arbeitet.
4.3
Design
Ziel der Designphase ist es, auf Grundlage der Konzeption eine Softwarearchitektur zu erstellen und damit die anschließende Realisierung des Systems vorzubereiten.
[STEI05, S. 7]
Zunächst wird das zu entwickelnde System verbal beschrieben. In weiteren Schritten
folgt die technische Darstellung.
4.3.1
Verbale Beschreibung
Zur Realisierung des Funktionsumfangs wird die RPE in vier Komponenten unterteilt. Diese Unterteilung orientiert sich an den zu erfüllenden Aufgaben und an den
Programmiersprachen, mit denen diese umgesetzt werden. Als Ergebnis entstehen die
folgenden Komponenten.
50
4.3. DESIGN
Das UserInterface (UI) wird als Webanwendung mittels ASP umgesetzt. Seine Aufgabe besteht darin, dem Nutzer eine einfache und intuitive Benutzung des Reportingmoduls zu ermöglichen. Gleichzeitig soll es mit Hilfe von Eingabemasken und Plausibilitätstests Fehler, die durch falsche Eingaben entstehen, verhindern. Weiterhin ist ein
Teil des UI für die Administration des Reportingmoduls vorgesehen. Das UI stellt die
zentrale Schnittstelle der RPE dar. Es verknüpft sowohl die Module untereinander, als
auch das Reportingmodul mit dem Informationssystem. Da das MHR auf die Entwicklung webbasierter UI spezialisiert ist und sich die RPE nahtlos in Roteiro einfügen soll,
wird das Design und die Realisierung des UI von einem Entwickler des MHR erfolgen.
Im Rahmen dieser Ausarbeitung werden lediglich die formalen Schnittstellen zu den
einzelnen Komponenten definiert.
Die Datenbankkomponente (DBK)
beinhaltet hauptsächlich das Datenmodell, wel-
ches zur Verwaltung und Speicherung der Abfragefragmente, den Auswertungsdefinitionen und deren Ergebnissen benötigt wird. Darüber hinaus werden SQL-Funktionen
und -Prozeduren, so genannte „userdefined Functions“ und „stored Procedures“, zur
funktionalen Unterstützung des System genutzt. Durch die Nutzung von Filtern und
Nutzdatenabfragen, die als SQL-Funktionen oder -Prozeduren implementiert wurden,
können vorhandene Funktionalitäten aus Roteiro direkt in der RPE verwendet. Im Umkehrschluss sind dadurch auch Funktionen, die im Rahmen der Realisierung und des
Betriebes der RPE entstehen, unmittelbar in Roteiro einsetzbar.
Die Query-Engine (QE) wird zur Generierung des SQL-Quellcode eingesetzt. Die
gesamte Logik, die benötigt wird, um aus den Abfragefragmenten und dem Auswertungsprofil eine korrekte SQL-Abfrage zu erstellen, wird als Perlskript abgelegt. Für
diese Aufgabe könnte auch jede andere Programmiersprache genutzt werden, da Perl
jedoch schon in anderen Modulen Roteiros benutzt wird und es sich um eine sowohl
einfache als auch vielseitige Sprache handelt, bietet sich ihre Verwendung in diesem
Projekt an.
Um die in Abschnitt 4.2.2 angesprochene warteschlangenorientierte Lösung zu realisieren, wird ein vom MHR entwickeltes Inter Process Communication Modul (IPC)
eingesetzt. Dieses übernimmt bereits seit Längerem die kapazitätsabhängige Ablaufsteuerung von Prozessen in Roteiro.
Die Output-Engine (OE)
wird letztendlich die Darstellung der Ergebnisse überneh-
men. Da die Abfrageergebnisse in homogener Form in der Datenstruktur der RPE gespeichert werden, wird die OE in der Lage sein, Ergebnisse jeglicher Art darzustellen.
Zunächst ist eine Ausgabe in HTML geplant. Darüber hinaus wird jedoch in späteren
Versionen auch das Erzeugen von PDF- und MS Exceldateien angestrebt.
51
4.3. DESIGN
Die Planung und Implementierung der OE wird nicht im Rahmen dieser Ausarbeitung
erfolgen, da sie bereits als Gegenstand eines anderen Projektes vorgesehen ist.
4.3.2
Komponentenüberblick
In diesem Abschnitt wird zunächst das Zusammenspiel der Komponenten erläutert,
bevor in den nächsten Abschnitten auf das Design der einzelnen Teile eingegangen
wird.
Abbildung 4.6 verdeutlicht sowohl den allgemeinen Programmablauf als auch die nötigen Datenflüsse zur Erstellung einer Auswertung. Dieser idealtypische Ablaufplan
geht davon aus, dass alle benötigten Abfrageteile bereits im Vorfeld definiert wurden.
Abbildung 4.6: Zusammenspiel der RPE-Komponenten
Die Erstellung der Auswertung beginnt mit der Definition eines Auswertungsprofils.
Die benötigten Profildaten werden mittels UI entgegen genommen und im Datenmodell der DBK gespeichert. Anschließend wird der Auftrag zur Umsetzung des Profils
in die Warteschlange des IPC-Moduls eingestellt. Sobald freie Kapazitäten vorhanden sind, veranlasst das IPC-Modul den Start der QE. Diese liest die Profildaten und
Abfragefragmente aus der DBK, erstellt den SQL-Quellcode der Abfrage und führt
ihn aus. Die Ergebnisse der Abfrage werden in der DBK gespeichert. Danach signalisiert die QE dem UI die Beendigung seiner Aktivitäten, woraufhin der Nutzer über
die Bereitstellung der Auswertungsergebnisse informiert wird. Im letzten Schritt nutzt
das UI die OE um dem Nutzer die Ergebnisse seiner Auswertung in Form von HTML
darzustellen bzw. als PDF- oder XLS-Datei zur Verfügung zu stellen.
52
4.3. DESIGN
4.3.3
Datenbankkomponente
Wie in Abschnitt 4.3.2 deutlich wurde, stellt das Datenmodell den zentralen Datenspeicher und damit das Herzstück des Reporting-Moduls dar. Durch die Verwendung eines zentralen Speichermediums ist es möglich, die Schnittstellen zwischen
den Komponenten weitestgehend zu minimieren und damit einer wichtigen Forderung
der Softwareentwicklung, dem Prinzip der schmalen Datenkopplung, nachzukommen.
[SCHW95, S. 150]
In diesem Abschnitt wird das benötigte Datenmodell unter Verwendung des EntityRelationship-Modells (ERM) entwickelt. Bereits in Abschnitt 4.2.1 wurde der grobe
Rahmen für die zu speichernden Daten gesteckt, wobei sich die drei Bereiche administrative, Nutzer- und Ergebnisdaten heraus kristallisierten.
Im Folgenden wird zu jedem der Datenbereiche ein separates Entity-RelationshipDiagramm (ERD) angefertigt. Diese werden im letzten Schritt zu einem Gesamtmodell
zusammengefügt.
Administrative Daten
Als administrative Daten werden die Abfragefragmente bezeichnet, da diese ausschließlich von Administratoren anzulegen sind. Neben Informationen zu Spalten, Tabellen und Auswahlkriterien, so genannten Filtern, werden hier auch Metadaten abgelegt, die die Bedeutung der Abfrageteile beschreiben. Aggregationen werden zunächst
nicht in das Modell aufgenommen, denn zum Einen erschweren sie die Modellierung
und zum Anderen sind Gruppierungen und Aggregationen in den bisherigen manuellen
Auswertung eher die Ausnahme. Zudem ist eine Aggregation erst auf Nutzdaten sinnvoll. Demnach kann diese Arbeit auch von einer späteren Erweiterung übernommen
werden.
Abbildung 4.7: ERD der administrativen Daten
Abbildung 4.7 stellt das ERM der administrativen Daten dar. Die Entität Line reprä53
4.3. DESIGN
sentiert die Spalteninformationen einer Abfrage. Der Begriff Line soll signalisieren,
dass die Nutzdaten mehrdimensional darstellbar sind. Eine Line gehört zu genau einem Show_Block. Zu einem Show_Block gehört mindestens eine Line. Ein Element
der Entität Show_Block stellt dabei zusammengehörige Daten aus Nutzersicht dar. Ein
Element der Entität Query_Block verkörpern dagegen eine Tabelle oder ein abstraktes Filtermodul und repräsentiert den logischen Speicherort der Daten. Auch zu einem
Query_Block gehört mindestens eine Line und eine Line gehört zu genau einem Query_Block.
Die Implementierung von Filtermodulen ist als stored Procedure oder userdefined
Function geplant. Zur Ausführung wird eine Parameterliste benötigt. Die Entität
Filter_Para repräsentiert die einzelnen Filterparameter eines Filtermoduls. Ist das
Query_Block-Element eine Tabelle, so stellt ein Filterparameter eine mögliche Selektionsbedingung dar. Dabei hat ein Query_Block beliebig viele Filter_Para. Ein Filterparameter wiederum gehört zu genau einem Query_Block. Zur Speicherung von festen
Parameterwerten wird jedem Filter_Para eine beliebige Anzahl an Para_Values zugeordnet, wobei ein Para_Value immer zu genau einem Filterparameter gehört.
Das Zusammenfügen von beliebigen Daten wird dadurch erreicht, dass jeweils zwei
Abfrageblöcke mittels Verbundoperation zusammengefügt werden. Um diese Beziehung abzubilden, stellt die Entität Connection jeweils die linke und rechte Verbindung
zwischen zwei Query_Blocks dar.
Nutzerdaten
Nutzerdaten enthalten die Nutzereingaben, die ein Auswertungsprofil beschreiben.
Dies sind z. B. der Name des Profils, die ausgewählten Inhalte und Parameter für verwendete Filter. Darüber hinaus soll in späteren Versionen der RPE auch ein Großteil
des Berichtslayouts durch den Nutzer definiert werden. In dieser Phase der Entwicklung wird jedoch zunächst auf diese Funktionalität verzichtet und lediglich ein Standardlayout verwendet.
Abbildung 4.8: ERD der Nutzerdaten
Abbildung 4.8 zeigt die zur Speicherung der Nutzerdaten nötigen Strukturen. Die Entität Profil enthält allgemeine Profilinformationen. Zu jedem Profil werden Inhalte in
Form von Lines definiert. Diese stellen im Kontext der Abfrage die Projektion dar.
54
4.3. DESIGN
Zu jedem Profil gehört mindestens eine Profil_Projection, eine Profil_Projection gehört dabei genau zu einem Profil. Die Entität Profil_Selection repräsentiert alle vom
Nutzer ausgewählten Filterbedingungen. Da auch Verbundoperationen eine Filtercharakter aufweisen, fließen sie an dieser Stelle in die Selektion mit ein. Die Filterung
beeinflusst die Gesamtmenge der Ausgabe, deshalb gilt: Ein Profil hat beliebig viele
Profil_Selection, wobei jede zu genau einem Profile gehört.
Ergebnisdaten
Unter Ergebnisdaten werden in erster Linie die Ergebnisse einer Auswertung verstanden. Hier spielt die Art und Weise, wie die Daten gespeichert werden, eine wichtige
Rolle. Damit die OE später auf alle Ergebnisse in der gleichen Art und Weise zugreifen kann, muss eine dynamische Datenstruktur geschaffen werden. Darüber hinaus
schließt der Begriff Ergebnisdaten in diesem Kontext alle nötigen Daten zur Ergebnisverwaltung und -beschreibung mit ein.
Abbildung 4.9: ERD der Ergebnisdaten
Das Modell zur Speicherung der Ergebnisdaten wird durch Abbildung 4.9 veranschaulicht. Die Verwaltungsdaten eines Auswertungsauftrags werden durch die Entität Job
dargestellt. Sie verwaltet die Ergebnisse, die durch die Ausführung einer Auswertung
entstehen. Ein Job hat beliebig viele Job_Lines, wobei eine Job_Line zu genau einem Job gehört. Die gesamten Ergebnisse eines Jobs werden mit Hilfe der Entität
Job_Data abgebildet, um mit Hilfe eines einheitlichen Speicherortes die Datenausgabe
mittels OE zu ermöglichen. Da jede Job_Line mindestens ein Job_Data hat und umgekehrt, wird zur Abbildung dieser Beziehung eine Kreuztabelle benötigt. Die Entität
Job_LineData illustriert diese Beziehung. Mit ihrer Hilfe lassen sich die Zusammenhänge zwischen Line und Data wie in einem Koordinatensystem abbilden.
Gesamtdatenmodell
Im letzten Schritt werden die drei Datenbereiche zu einem Datenmodell zusammengefügt. Die abstrakte Line, welche die Menge der erwünschten Daten repräsentiert, stellt
dabei das Bindeglied zwischen den einzelnen Datenbereichen dar. Zudem spiegelt das
Datenmodell den angestrebten Wiederverwendungsgedanken wieder. Eine Line wird
Bestandteil beliebig vieler Auswertungen, indem sie als Projektion in das jeweilige
Auswertungsprofil einfließt. Wird eine Auswertung mehrmals ausgeführt, so wird die
Projektion, die auch als Line eines Profils bezeichnet werden kann, in mehreren Jobs
verwendet. Da es durchaus möglich ist, dass aus einer Auswertung ein leeres Ergebnis
55
4.3. DESIGN
resultiert, jedoch keine leeren Datenfelder gespeichert werden sollen und die Dokumentation des Jobs erwünscht ist, wird ein Job direkt einem Profil zugeordnet.
Abbildung 4.10: ERD des gesamten Datenmodells
Abbildung 4.10 zeigt das gesamte Datenmodell. Die Umsetzung in konkrete Datenbanktabellen erfolgt in Abschnitt 5.1.
4.3.4
Query-Engine
Der folgende Abschnitt wird sich mit dem konzeptionellen Design der QE auseinander
setzen. Dabei wird zunächst auf Gegebenheiten in der KDB eingegangen, bevor das in
Abschnitt 4.2.2 vorgestellte Konzept weiter verfeinert wird.
Die Kundendatenbank
Die KDB stellt die Datenbasis der Auswertungen dar. Um den Entwicklungsaufwand
so klein wie möglich zu halten, wird die RPE und damit auch die QE weitestgehend
an die Gegebenheiten der KDB angepasst.
Bei der Entwicklung wird sich der Sachverhalt zunutze gemacht, dass alle Tabellen
der KDB einen numerischen künstlichen Primärschlüssel besitzen. Dieses Schlüsselattribut wird im Folgenden als Index oder Primärschlüssel einer Tabelle bezeichnet. Es
sei darauf hingewiesen, dass dieser als Index bezeichnete künstliche Primärschlüssel
nichts mit dem für die Abfragebeschleunigung verwendeten Spaltenindex zu tun hat.
56
4.3. DESIGN
Als Konsequenz daraus ist jeder Datensatz der KDB über den Tabellennamen und
einen numerischen Wert adressierbar. Dies wiederum ermöglicht es den Ablauf der
QE in zwei separate Teilbereiche aufzuteilen: das Zusammenstellen der Abfragedaten
als Indizes sowie das Umwandeln der Indizes in Nutzdaten und Eintragen der Daten in
die Tabellenstruktur. Aus Sicht des Relationenmodells werden durch diese Aufteilung
Selektion und Projektion voneinander getrennt.
Selektion und Verbundoperationen
Das Projekt hatte bis dato mehr Zeit in Anspruch genommen als geplant. Zudem wurde seitens der HVB eine schnelle Möglichkeit benötigt, die zur Zeit fehlenden manuellen Auswertungen zu ersetzen. Die Implementierung des UI und der QE hatten noch
nicht begonnen, die OE und das Datenmodell waren jedoch nahezu fertiggestellt. Aus
diesem Grund fiel die Entscheidung, zunächst den zweiten Schritt der QE, also die
Projektion, zu realisieren. Durch den modularen Aufbau der RPE war dies prinzipiell
möglich.
Da der Autor vor Beendigung des Designs der Selektion aus dem Projekt ausschied,
wird dieser Teilbereich lediglich in stark verkürzter Form dargestellt. Die Implementierung des Selektionsmoduls wird aus diesem Grund ebenfalls nicht im Rahmen dieser
Ausarbeitung stattfinden.
Der Begriff der Selektion bezeichnet die Datenoperation zur Auswahl von Tupeln aus
einer Tabelle. [KREM01, S. 112] Eine Verbundoperation verbindet zwei Tabellen über
ein gemeinsames Merkmal. [MEIE04, S. 219]
Aufgabe des Selektionsmoduls ist die Erstellung einer Temporärtabelle, die für jede
an der Auswertung beteiligte Tabelle genau eine Spalte mit dessen Primärschlüssel
enthält.
Ist lediglich eine Tabelle an der Auswertung beteiligt, wird die Abfrage aus den einzelnen Fragmenten zusammengestellt und das Ergebnis in ein temporäre Tabelle umgeleitet, die dann an den zweiten Schritt der QE, die Projektion, übergeben wird. Im
Falle der Beteiligung mehrerer Tabellen wird neben der Selektion auch eine paarweise
Verbundoperation angewendet. Das Ergebnis dieser Operation wird ebenfalls in eine
temporäre Tabelle umgeleitet, welche im folgenden Schritt mit der nächsten Tabelle
vereinigt wird. Das Ergebnis ist wiederum eine temporäre Tabelle. Dieses Prozedere
wird solange fortgeführt bis alle an der Auswertung beteiligten Tabellen abgearbeitet
worden sind.
Projektion und Datenspeicherung
Der Begriff der Projektion bezeichnet die Datenoperation zur Auswahl von Spalten aus
57
4.3. DESIGN
einer Tabelle. [KREM01, S. 112]
Das Projektionsmodul hat zwei grundlegende Aufgaben. Im ersten Schritt wandelt sie
die Indizes der Temporärtabelle in Nutzdaten um. Im Anschluss werden diese Daten
in der Ergebnisstruktur gespeichert.
Die Speicherstruktur ist so angelegt, dass die Daten sowohl relational als auch multidimensional abgebildet werden können. Dadurch ist es später möglich, die Daten
variabel anzuzeigen.
Der Schritt der Projektion beginnt mit der Übernahme des Job-Index, aus dem sich alle
erforderlichen Informationen für die weiter Arbeit entnehmen lassen. Über die Beziehung „Job führt zu Profil“ werden die Profildaten ermittelt. Die Namenskonvention
„tmp_RPE_result_“Job-Index beschreibt den eindeutigen Namen der mittels Selektion erstellten Temporärtabelle.
Abbildung 4.11: beispielhafte Projektion und Speicherung aus Datensicht
Abbildung 4.11 zeigt beispielhaft die Umwandlung der temporären Indexdaten in das
gewünschte Ergebnisformat aus Datensicht. Um das Beispiel anschaulicher zu gestalten, enthält die Ausgangstabelle bereits Daten an Stelle von Indizes. Zur Herstellung
der benötigten Struktur sind drei Arbeitsschritte nötig. Im Ersten wird für jede Zeile der
Temporärtabelle und jede Profil_Projection eine Job_Line angelegt. Als zweites werden die Indizes der Temporärtabelle Profile_Projection-weise in Nutzdaten übersetzt,
für jedes Datum ein Job_Data angelegt und die Verbindung zur Job_Line mittels eines
Job_LineData-Eintrags hergestellt. Im letzten Schritt werden die Zeilenzugehörigkei58
4.3. DESIGN
ten der Daten in die Tabelle Job_LineData eingetragen. Um diese Beziehung herstellen
zu können, wird der Primärschlüssel der Temporärtabelle verwendet.
Der in Abbildung 4.12 dargestellte Programmablaufplan verdeutlicht den Weg von
der Temporärtabelle zu den Ergebnisdaten. Gleich zu Beginn wird deutlich, dass eine
erfolgreiche Abarbeitung des Programms nur möglich ist, sofern ein Job und die zugehörige Temporärtabelle existieren. Ist dies der Fall und die Selektion führte trotzdem
zur leeren Ergebnismenge, wird das Programm ohne Ergebnis beendet.
Abbildung 4.12: Programmablaufplan von Projektion und Datenspeicherung
Sofern die temporäre Ergebnistabelle Werte enthält, wird für jede Zeile eine Job_Line
angelegt. Diese werden später genutzt, um die Zusammengehörigkeit der einzelnen Datenfelder abzubilden. Danach werden die Linedaten aus den Tabellen Profil_Projection und Line ausgelesen. Anschließend wird für jede beteiligte Line zunächst eine Job_Line angelegt, die Daten der Temporärtabelle mittels vordefinierter
SQL-Abfrage in Nutzdaten gewandelt und als Job_Data gespeichert. Nach dem Speichern wird für jedes Job_Data ein Job_LineData angelegt, welches zum Einen auf die
59
4.3. DESIGN
aktuelle Job_Jine und zum Anderen auf die neu eingetragenen Job_Datas verweist.
Sind alle Profil_Projections abgearbeitet, wird die bereits angesprochene Zeilenzugehörigkeit hinzugefügt. Hierfür wird sowohl bei den Job_Lines, die die Zeilen der Temporärtabelle repräsentieren, als auch bei den Job_Datas der Primärschlüssel der Temporärtabelle hinterlegt. Die innere Verknüpfung der Tabelle Job_Line und Job_Data
über diesen Schlüssel liefert die noch fehlenden Job_LineData.
Im letzten Schritt werden die temporären Daten und Zeilenzuordnungen gelöscht und
Verwaltungsinformationen wie die Anzahl der Resultate und der Zeitpunkt der Beendigung der Auswertung in die Tabelle Job eingetragen.
Es zeigt sich, dass die Hauptaufgabe in der Herstellung der richtigen Zuordnung der
Datenfelder zueinander liegt. Da der SQL-Quelltext zur Umwandlung des Indexes in
ein Datum bereits fertig in der Definition der zugehörigen Line gespeichert ist, beschränkt sich der Umwandlungsaufwand auf einfache Textoperationen und das Ausführen der SQL-Abfrage.
60
Kapitel 5
Umsetzung
Zwar nahm die Implementierung des ausgearbeiteten Konzeptes viel Zeit in Anspruch,
jedoch würde die Beschreibung der durchgeführten Tätigkeiten nur wenig zur Erweiterung des Kenntnisstandes beitragen. Aus diesem Grund wird die eigentliche Umsetzung lediglich in groben Zügen skizziert. Stattdessen soll das Kapitel weitestgehend
für die Beschreibung der Anpassungen des in den Phasen Konzeption und Design erarbeiteten Modells an die reale Einsatzumgebung genutzt werden.
Das Hauptaugenmerk des Kapitels liegt auf der Implementierung des in Abschnitt
4.3.3 entwickelten Datenmodells, da hier mehrere Veränderungen des Modells nötig
waren. Im Anschluss wird kurz die Umsetzung des Projektions-Moduls erläutert, obwohl dafür kaum Änderungen des Konzeptes nötig waren.
5.1
Aufbau der Tabellenstruktur
Im Folgenden wird zunächst auf nötige Modellanpassungen eingegangen. Diese Anpassungen waren nötig, da das Modell einerseits an bestimmte Konventionen angepasst
werden musste und andererseits spezielle Eigenschaften der Laufzeitumgebung zu beachten waren. Anschließend wird das fertige Datenmodell präsentiert.
5.1.1
Konventionen
Bei der Entwicklung von größeren Systemen ist die Nutzung von Namenskonventionen
ein weit verbreitetes Hilfsmittel, um bereits am Namen eines Objektes seine Funktion oder Zugehörigkeit erkennen zu können. Beim MHR werden Namenskonventio-
61
5.1. AUFBAU DER TABELLENSTRUKTUR
nen insbesondere mit Hilfe von Prä- und Suffixen realisiert. Diese werden für Datei-,
Tabellen- und Spaltennamen verwendet.
Zusammengehörige Objekte besitzen das gleichen Präfix. So beginnen z. B. alle Tabellennamen, die zur RPE gehören, mit der Vorsilbe “RPE_“. Tabellen, die lediglich
der Abbildung von m-zu-n-Beziehungen dienen, werden zusätzlich mit dem Buchstaben “x“ vor dem Präfix gekennzeichnet. Spalten einer Tabelle tragen zusätzlich zum
Modul- ein Tabellenpräfix.
Objekte mit gleichen Funktionen besitzen gleiche Suffixe. Der in Abschnitt 4.3.4 angesprochene Primärschlüssel einer Tabelle wird beim MHR beispielsweise immer mit
der Nachsilbe “_idx“ versehen. Auch ein Fremdschlüssel trägt das Suffix _idx, jedoch
steht diesem das Tabellenpräfix der Referenztabelle voran.
Um der Vorgabe der HVB, dass zu jedem Datensatz Zeit, Ort und Person der Anlage
oder Löschung ermittelbar sein muss, nachzukommen, enthält jede Tabelle der KDB
vier Pflichtspalten, die diese Informationen aufnehmen. Tabelle 5.1 zeigt Suffixe und
ihre Bedeutung in der KDB.
_idx
Primärschlüssel einer Tabelle
_made
Datum der Erstellung des Datensatzes
_mody
Datum der letzten Änderung des Datensatzes
_op
Mitarbeiter, der die letzte Änderung vorgenommen hat
_ip
IP-Adresse von der aus die letzte Änderung vorgenommen wurde
_del
Löschkennzeichen
_stat
Statusfeld für die temporäre Nutzung
Tabelle 5.1: Suffixe in der KDB
Die gezeigten Namenskonventionen dienen hauptsächlich der Übersichtlichkeit und
erleichtern das Lesen von Programmcodes erheblich. Als Nebeneffekt kann bei Verbundoperationen in vielen Fällen auf Aliasnamen der Tabellen verzichtet werden.
5.1.2
Besonderheiten der Laufzeitumgebung
Gerade bei Datenmodellen spielen Datentypen und ihre Eigenschaften eine wichtige
Rolle. Diese wiederum sind abhängig von der jeweiligen Laufzeitumgebung, welche
im Falle des Datenmodells der RPE der MSSQL2000 ist.
Im Regelfall besitzt eine Spalte einer Tabelle genau einen Datentyp. Alle Werte der
Spalte müssen diesem Datentypen entsprechen. Die Speicherung von Werten mit ver62
5.2. IMPLEMENTIERUNG DES PROJEKTIONS-MODULS
schiedenen Datentypen ist demnach grundsätzlich nicht möglich, obwohl der MSSQL2000 mit dem Datentyp Sql_Variant diesbezüglich eine Ausnahme bietet.
Der Datentyp Sql_Variant erlaubt die Speicherung verschiedenartiger Daten in einer
Spalte, ohne dabei typspezifische Informationen zu verlieren. Aus diesem Grund schien dieser Datentyp bis zur Implementierung als am besten geeignet, um die unterschiedlichen Daten der Auswertung aufzunehmen. Erst bei der Implementierung wurde deutlich, dass dies ein Trugschluss war, da der Datenbankzugriff über ODBC und
OLE diesen Datentyp nicht unterstützt.
Um die Daten trotzdem in einer Spalte speichern zu können, werden alle Daten explizit
in Text umgewandelt und der Ausgangsdatentyp mittels Datenschlüssel gespeichert.
5.1.3
Das RPE-Datenmodell
Abbildung 5.1 zeigt das implementierte Datenmodell der RPE, in dem die zuvor erläuterten Sachverhalte ihre Anwendung finden.
Zusätzlich zum konzeptionellen Datenmodell wurde eine direkte Beziehung zwischen
den Tabellen RPE_queryBlock und RPE_Profile_Selection geschaffen. Diese Beziehung existierte zwar bereits implizit, jedoch werden zur Realisierung drei Verbundoperationen benötigt. Die zusätzliche redundante Beziehung ermöglicht die Einsparung von zwei Verbundoperationen und spart somit Zeit.
Eine detaillierte Beschreibung der Spalten findet sich in Anhang C. Darüber hinaus
enthält die Begleit-CD1 den Quelltext für die Erstellung der Datenstruktur.
5.2
Implementierung des Projektions-Moduls
Im Folgenden wird die Umsetzung des Projektions-Moduls erläutert.
Das resultierende Programm2 unterscheidet sich lediglich in zwei Punkten von dem
in Abschnitt 4.3.4 entwickelten Ablaufplan. Einerseits wurden im Ablaufplan aus
Gründen der Abstraktion sowohl auf die Darstellung der nötigen Schritte für die IPCVerwaltung als auch für die Datenbankkommunation verzichtet. Da es sich bei beiden
um starre Strukturen handelt, waren sie für den Ablauf an sich uninteressant.
Der zweite Punkt, der im konzeptionellen Ablauf vernachlässigt wurde, war die Par1
2
Siehe Anhang D.
Der Quellcode befindet sich auf der Begleit-CD siehe Anhang D.
63
5.2. IMPLEMENTIERUNG DES PROJEKTIONS-MODULS
Reporting-Engine
------------------------------------------------------------- administrative Daten
--------------------------------------------------------------
RPE_ParaValue
RPE_Connection
RPE_showBlock
rpe_pv_idx
rpe_pv_made
rpe_pv_mody
rpe_pv_ip
rpe_pv_op
rpe_pv_del
rpe_pv_stat
rpe_pv_fp_idx
rpe_pv_pos
rpe_pv_name
rpe_pv_value
rpe_pv_type
rpe_ct_idx
rpe_ct_made
rpe_ct_mody
rpe_ct_ip
rpe_ct_op
rpe_ct_del
rpe_ct_stat
rpe_ct_Name
rpe_ct_des
rpe_ct_left_qb_idx
rpe_ct_right_qb_idx
rpe_ct_JoinType
rpe_ct_Condition
rpe_sb_idx
rpe_sb_made
rpe_sb_mody
rpe_sb_ip
rpe_sb_op
rpe_sb_del
rpe_sb_stat
rpe_sb_name
rpe_sb_des
RPE_Line
RPE_FilterPara
RPE_queryBlock
rpe_li_idx
rpe_li_made
rpe_li_mody
rpe_li_ip
rpe_li_op
rpe_li_del
rpe_li_stat
rpe_li_qb_idx
rpe_li_sb_idx
rpe_li_name
rpe_li_des
rpe_li_query
rpe_fp_idx
rpe_fp_made
rpe_fp_mody
rpe_fp_ip
rpe_fp_op
rpe_fp_del
rpe_fp_stat
rpe_fp_qb_idx
rpe_fp_pos
rpe_fp_name
rpe_fp_default
rpe_qb_idx
rpe_qb_made
rpe_qb_mody
rpe_qb_ip
rpe_qb_op
rpe_qb_del
rpe_qb_stat
rpe_qb_TabName
rpe_qb_pk
rpe_qb_FName
rpe_qb_FFunction
rpe_qb_FSelect
------------------------------------------------------------------- Nutzerdaten
RPE_Profile_Projection
-------------------------------------------------------------------
RPE_Profile_Selection
RPE_Profile
rpe_ps_idx
rpe_ps_made
rpe_ps_mody
rpe_ps_ip
rpe_ps_op
rpe_ps_del
rpe_ps_stat
rpe_ps_pf_idx
rpe_ps_qb_idx
rpe_ps_pars_idx
rpe_pf_idx
rpe_pf_made
rpe_pf_mody
rpe_pf_ip
rpe_pf_op
rpe_pf_del
rpe_pf_stat
rpe_pf_ma_idx
rpe_pf_name
rpe_pf_archiv
rpe_pp_idx
rpe_pp_made
rpe_pp_mody
rpe_pp_ip
rpe_pp_op
rpe_pp_del
rpe_pp_stat
rpe_pp_li_idx
rpe_pp_pf_idx
rpe_pp_dim
rpe_pp_namesource
rpe_pp_optName
rpe_pp_sort
----------------------------------------------------------------- Ergebnisdaten -------------------------------------------------------------------
RPE_Job_Data
rpe_jd_idx
rpe_jd_made
rpe_jd_mody
rpe_jd_ip
rpe_jd_op
rpe_jd_del
rpe_jd_stat
rpe_jd_data
rpe_jd_type
rpe_jd_sort
rpe_jd_help_pk
xRPE_Job_LineData
RPE_Job_Lines
xrpe_jld_idx
xrpe_jld_made
xrpe_jld_mody
xrpe_jld_ip
xrpe_jld_op
xrpe_jld_del
xrpe_jld_stat
xrpe_jld_jl_idx
xrpe_jld_jd_idx
xrpe_jld_dim
RPE_Job
rpe_jl_idx
rpe_jl_made
rpe_jl_mody
rpe_jl_ip
rpe_jl_op
rpe_jl_del
rpe_jl_stat
rpe_jl_jb_idx
rpe_jl_pp_idx
Abbildung 5.1: ER-Modell der Reportingengine
64
rpe_jb_idx
rpe_jb_made
rpe_jb_mody
rpe_jb_ip
rpe_jb_op
rpe_jb_del
rpe_jb_stat
rpe_jb_pf_idx
rpe_jb_done
rpe_jb_results
rpe_jb_rc
rpe_jb_archiv
5.2. IMPLEMENTIERUNG DES PROJEKTIONS-MODULS
allelität. Durch den Einsatz des IPC-Moduls ist es möglich, das gleiche Programm
mehrfach auszuführen. Im Falle der RPE wäre es wünschenswert, wenn mehrere Auswertungen gleichzeitig berechnet werden könnten. Um dies zu gewährleisten muss
jedoch sichergestellt werden, dass jeder Prozess lediglich die ihm zugehörigen Daten
manipuliert.
Als Konsequenz wurde der Ablauf dahingehend verändert, dass auch die “Job_LineJob_Data“-Verknüpfung, die über den Primärschlüssel der Temporärtabelle erzeugt
wird, während der Behandlung der einzelnen Profil_Projection erfolgt. Als Bearbeitungsstatus wird jeweils der “rpe_jb_idx“ verwendet. Damit wird gewährleistet, das
jeweils nur die Daten einer Auswertung bearbeitet werden.
65
Kapitel 6
Schlussfolgerungen und Fazit
Wie sich im Laufe der Ausarbeitung gezeigt hat, war die Entwicklung der ReportingEngine aus zweierlei Gesichtspunkten unausweichlich. Erstens sollte ein System entstehen, das Daten jeglicher Art nutzergesteuert abfragen und darstellen kann und auf
dessen Grundlage Datenanalysen möglich sind. Ferner musste ein Ersatz für die durch
die Hardwareumstellung verloren gegangene Möglichkeit der Erstellung von manuellen Auswertungen gefunden werden.
Der Gang der Untersuchung hat deutlich gemacht, welche komplexen Vorgänge und
vielfältige Fehlerquellen im Zusammenhang mit der Datenextraktion stehen. Als
Hauptprobleme haben sich dabei die Eigenheiten der relationalen Datenspeicherung
sowie die unterschiedlich Verwendung und Interpretation von Begrifflichkeiten heraus
kristallisiert.
Diese Probleme ließen sich großteils durch den Einsatz von Metadaten lösen. Dadurch
ist entwickelte die Reporting-Engine einerseits in der Lage, die Zusammenhänge zwischen Daten transparenter darzustellen und ermöglicht es dem Nutzer darüber hinaus,
ohne SQL- und Datenbankkenntnisse Daten aus einer relationalen Datenbank zu extrahieren.
Allerdings wurde gleichzeitig deutlich, dass es angebracht wäre, einen unmissverständlichen Begriffskatalog zu entwickeln, um in Zukunft eine effektivere Kommunikation zwischen Anwendern und Administratoren zu ermöglichen und damit einhergehend das Verständnis beider Seiten für einander zu verbessern.
Das angestrebte Projekt konnte im Rahmen dieser Ausarbeitung nur teilweise fertig
gestellt werden. Neben dem Abschluss der Arbeiten am UI und der OE ist die Implementierung des Selektionsmoduls von ausschlaggebender Bedeutung für den Projekterfolg. In weiteren Schritten werden Analysemodule und erweiterte Möglichkeiten
66
zur Ausgabeformatierung zu ergänzen sein, um denen in Abschnitt 4.1.1 definierten
Anforderungen endgültig gerecht werden zu können.
Mit der Erarbeitung des konzeptionellen Modells und der Implementierung der Datenstruktur der Reporting-Engine wurde der Grundstein für den Projekterfolg gelegt.
Mit Hilfe des Projektionsmoduls wird es bereits vor Fertigstellung des UI einen Ersatz
für die manuellen Auswertungen geben. Damit ist das Ziel der Ausarbeitung, durch
die Schaffung eines nutzergesteuerten Abfragesystems den Grundstein für umfassende
Datenanalysen zu legen, durchaus als erreicht zu betrachten.
67
Teil IV
Anhang
VI
Ehrenwörtliche Erklärung
Ich erkläre hiermit ehrenwörtlich, dass ich die vorliegende Arbeit selbständig angefertigt habe, die aus fremden Quellen direkt oder indirekt übernommenen Gedanken sind
als solche kenntlich gemacht. Es wurden keine anderen als die angegebenen Quellen und Hinweise verwandt. Die vorliegende Arbeit wurde bisher noch keiner anderen
Prüfungsbehörde vorgelegt und auch noch nicht veröffentlicht.
Wismar, 28. Mai 2006
.........................................
VII
Abkürzungsverzeichnis
ASP
Active Server Pages
DBMS
Datenbank-Management-System
DBS
Datenbanksystem
DSS
Decision Support Systems
DWH
Data Warehouse
EDP
Elementary Data Processing
EIS
Executive Information System
ER
Entity-Relationship
ERD
Entity-Relationship-Diagramm
ERM
Entity-Relationship-Modell
ESS
Executive Support Systems
EUS
Entscheidungssünterstützende Systeme
FASMI
Fast Analysis of Shared Multidimensional Information
HTML
HyperText Markup Language
HTTP
HyperText Transfer Protocol
HVB
HypoVereinsbank
IIS
Internet Information Services
IPC
Inter Process Communication
IS
Informationssystem
KDB
Kundendatenbank
Man.Inf.Sys
Management Information Systems
MDBS
multidimensionales Datenbank-System
MHR
MedienHaus Rostock GmbH
MIS
Managementinformationssystem
MS
Microsoft
MSSQL2000
Microsoft SQL Server 2000
OLAP
Online Analytical Processing
OLTP
Online Transaction Processing
PDF
Portable Document Format
PHP
Hypertext Preprocessor
VIII
ABKÜRZUNGSVERZEICHNIS
RDBMS
relationales Datenbank-Management-System
RDBS
relationales Datenbank-System
SQL
Structured Query Language
VB-Script
Visual Basic Script
VuW
Vereins- und Westbank
IX
Literaturverzeichnis
[CLAU98] Clausen, N.: OLAP
Multidimensionale Datenbanken
Bonn: Addison Wesley Longman, 1998
[FROS03] Frosch-Wilke, D.: Data Warehouse, OLAP und Data Mining
Datenschutz und Datensicherheit Nr.27 2003 - S.597ff
[HOLT99] Holten ,R.: Entwicklung von Führungsinformationssystemen
Ein methodenorientierter Ansatz
Wiesbaden: Deutscher Universitäts-Verlag, 1999
[KREM01] Kremer, H. W.: Select * From SQL Server 2000
Bonn: Galileo Press, 2001
[LEHN99] Lehner, W.: Multidimensionale Datenbanksysteme
Stuttgart, Leipzig: B.G.Teuber, 1999
[LEHN03] Lehner, W.: Datenbanktechnologie für Data-Warehouse-Systeme
Konzepte und Methoden
Heidelberg: dpunkt-Verlag, 2003
[MEIE04] Meier, A.: Relationale Datenbanken
Leitfaden für die Praxis
Berlin, Heidelberg: Springer, 2004
[OEHL00] Oehler, K.: OLAP
Grundlagen, Modellierung und betriebswirtschaftliche Lösungen
München: Carl Hanser Verlag, 2000
[SCHI99]
Schinzer, H.; Bange, C.;Mertens, H.: Data Warehouse und Data Mining
Marktführende Produkte im Vergleich
München: Vahlen Verlag, 1999
X
LITERATURVERZEICHNIS
[SCHU01] Schuler, A. H.; Pfeifer, A.: Effizientes eReporting
Zukunft des Corporate Reporting
München: Addison Wesley Verlag, 2001
[SCHW95] Schwarze, J.: Systementwicklung
Planung, Entwicklung und Einfuehrung von Informationssystemen
Herne: Verl. Neue Wirtschafts-Briefe, 1995
[STEI05]
Steinweg, C.: Management der Software-Entwickling
Projektkompass für die Erstellung von leistungsfähigen IT-Systemen
Wiesbaden: Vieweg Verlag, 2005
[MHHRO] Homepage: MedienHaus Rostock
http://www.mhr.de/home.htm
[OLAP]
Website: The OLAP Report
http://www.olapreport.com
[WEREP] Wikipedia Enzyklopädie: Berichtswesen
http://de.wikipedia.org/wiki/Berichtswesen
XI
Stichwortverzeichnis
Data Mart, 23
Data Warehouse, 19
Architektur, 22
virtuell, 23
Datenbank, 6
Datenbanksystem, 6
Decision Support Systems, 17
Endscheidungsunterstützende Systeme, siehe
Decision Support System
Executive Information Systems, 18
Führungsinformationssysteme, siehe
Executive Information Systems
Informationsbedarfsanalyse, 14
Informationssystem, 13
Kundendatenbank, 30
Management Information Systeme, 16
Management Reporting Systems, 17
Metddaten, 24
Normalisierung, 8
Nutzdaten, 48
Online Analytical Processing, 24
Relationenmodell, 7
Roteiro, 30
XII
Anhang A
SQL_Analyser.pl
#!perl
# Author: Martin Behrndt
# Skript zum:
#
-Entfernen
#
+ Kommentare
#
+ überflüssigen Whitespaces
#
-Zählen
#
+ der Zeichen
#
+ der Zeilen
#
+ der Tabellen
#
+ der Spalten
#
+ von Befehlen
#
* SELECT
#
* INSERT
#
* UPDATE
#
* ORDER BY
#
* GROUP BY
#
...in einer manuellen Auswertung(SQL-Datei)
#
# Vorausetzung ist das Markieren von Tabellen,Spalten, mit { bzw. [
###############################################################################
use strict;
use warnings;
## Dateinamen holen ##
my @file = ();
if (scalar(@ARGV) != 0){
@file = split(/\./,join(’’,@ARGV));
}else{
print "\nDateiname:\t"; chomp(@file = split(/\./,<STDIN>));
XIII
ANHANG A. SQL_ANALYSER.PL
}
## Dateinamen in Namen und Endung zerlegen ##
my ($filename,$suffix) = @file;
## Datei öffnen ##
open(INFILE, "<".$filename.".".$suffix)
or die "ERROR: Cannot read $filename.$suffix!\n";
seek(INFILE, 0, 0);
# an den Dateianfang springen #
my @infile = <INFILE>; # Datei einlesen #
close INFILE;
# Datei schließen #
## Textbereinigung und Zählen ##
my $bk_tag = 0;
my (@output, @columns, @tables, @orders, @groups);
## count(Zeilen, Zeichen, SELECTs, INSERTs, UPDATEs, ORDER BYs, GROUP BYs) ##
my @count = (0,0,0,0,0,0,0);
foreach my $line (@infile){
## entfernen ##
$line =~ s/\/\*.*\*\///g; # einzeiliger Blockommentar
if($line =~ /\/\*/){
$line =~ s/\/\*.*//g; # Anfang Blockommentar
$bk_tag = 1;
}elsif($line =~ /\*\//){
$line =~ s/.*\*\///g; # Ende Blockommentar
$bk_tag = 0;
}elsif($bk_tag == 1){
$line =~ s/.*//g;
# Innerer Blockommentar
}
$line =~ s/--.*\n?//g;
# ZeilenKommentare
$line =~ s/\s+/\ /g;
# Mehrfachleerzeichen
$line =~ s/^\s*\n//g;
# Leerzeilen mit Leerzeichen
$line =~ s/\n//g;
# Leerzeilen ohne Leerzeichen
## Zeilen für Output auswählen
if($line ne ’’ && $line ne ’ ’){
while($line =~ /\bSELECT\b/gi){$count[2]++;}
while($line =~ /\bINSERT\b/gi){$count[3]++;}
while($line =~ /\bUPDATE\b/gi){$count[4]++;}
while($line =~ /\bORDER\b\s+\bBY\b/gi){$count[5]++;}
while($line =~ /\bGROUP\b\s+\bBY\b/gi){$count[6]++;}
while($line =~ /\[(.*?)\[/g){push(@tables,$1);}
while($line =~ /\{(.*?)\{/g){push(@columns,$1);}
while($line =~ /\^(.*?)\^/g){push(@orders,$1);}
while($line =~ /\§(.*?)\§/g){push(@groups,$1);}
$line =~ s/\[|\{|\^|§//g; # Markierungen entfernen
$count[0] += length($line);
XIV
ANHANG A. SQL_ANALYSER.PL
push(@output,$line);
}
}
## Bereinigten Auswertungstext in Ausgabedatei schreiben ##
my $Outfile = $filename."_AsW.txt";
# Namen für Ausgabedatei erstellen #
&write_ascii(join("\n",@output),$Outfile); # eigentliches Schreiben
## Anzahlen bestimmen und ausgeben ##
$count[1] = scalar(@output);
my %tables = &make_hash(@tables);
my %columns = &make_hash(@columns);
my %orders = &make_hash(@orders);
my %groups = &make_hash(@groups);
my $output = "";
$output .= "\nDie Datei ’$Outfile’ enthaelt :\n";
$output .= "#Tabellen\t#Spalten\t#SELECTs\t#INSERTs";
$output .= "\t#UPDATEs\t#ORDER\t#GROUP\t#Zeile\t#Zeichen\n";
$output .= "".scalar(keys %tables)."\t".scalar(keys %columns)."\t$count[2]";
$output .= "\t$count[3]\t$count[4]\t$count[5]\t"
$output .= "$count[6]\t$count[1]\t$count[0]\n";
$output .= "\nTabelle :\n";
$output .= &print_hash(\%tables);
$output .= "\nSpalten :\n";
$output .= &print_hash(\%columns);
if($count[5] > 0 || scalar(keys %orders) > 0){
$output .= "\nSortierungen :\n";
$output .= &print_hash(\%orders);
}
if($count[6] > 0 || scalar(keys %groups) > 0){
$output .= "\nGruppierungen :\n";
$output .= &print_hash(\%groups);
}
&write_ascii($output,$filename."_Result.txt");
print $output;
## Fenster offen halten ##
system(’Pause’);
#####################################################################
############################# SUBS ##################################
#####################################################################
sub print_hash{
my $text = "";
my %hash = %{$_[0]};
foreach my $key (sort keys %hash){
XV
ANHANG A. SQL_ANALYSER.PL
$text .= "$key\t$hash{$key}\n";
}
return $text;
}
sub make_hash{
my %hash = ();
foreach my $item (@_){
if($item ne ’’ && $item ne ’ ’){
if(defined $hash{$item}){
$hash{$item}++;
}else{
$hash{$item} = 1,
}
}
}
return %hash;
}
sub write_ascii{
my $content = shift(@_);
my $file = shift(@_);
open(OUTFILE, ">".$file) or die "ERROR: Fehler beim oeffnen von $file!\n$!\n";
print OUTFILE $content;
close(OUTFILE) or die "ERROR: Fehler beim schliessen von $file!\n$!\n";
}
Die Nutzung diese Quellcodes erfolgt auf eigene Gefahr. Es wird keine Haftung für möglicherc
weise auftretenden Schäden oder Datenverluste übernommen. 2006
by Martin Behrndt.
XVI
Anhang B
Datenblätter Berichtswerkzeuge
B.1
Business Objects Crystal Reports
B.2
Cognos ReportNet
B.3
Microsoft Reporting Services
XVII
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
Crystal Reports XI
Die bewährte, weltweite Standardlösung für Reporting
Crystal Reports® XI, der bewährte De-facto-Standard für Reporting, hilft Ihnen bei der Erstellung, Organisation und Verteilung von Berichten über das Web oder integriert in Unternehmensanwendungen. Ein zuverlässiges Berichtswesen ist die unabdingbare Basis jeder
Business Intelligence (BI)-Strategie. In Form von aussagekräftigen Berichten sorgt Crystal
Reports für die sichere Verbreitung erfolgskritischer Informationen an Anwender innerhalb
und außerhalb Ihres Unternehmens.
Als leistungsfähiger Reporting-Standard unterstützt Crystal Reports jede Stufe des Berichtsprozesses:
den Zugriff auf alle relevanten Daten und die Präsentation in jedem gewünschten Format
die zeitnahe Versorgung aller Anwender mit den richtigen Berichten
die Integration der Reporting-Funktionalitäten in Anwendungen und Portale
XVIII
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
Crystal Reports XI
Der bewährte, weltweite Reporting-Standard
Gute Gründe für ein Upgrade auf Crystal Reports XI
ken in Berichten. Dadurch können Sie
Bilder außerhalb Ihrer Datenbank ablegen und wertvollen Speicherplatz sparen.
Crystal Reports Server
Crystal Reports Server XI ist das neueste
Mitglied der Crystal Reports-Produktfamilie. Die umfassende ReportingLösung hilft kleineren und mittelständischen Unternehmen, Berichte über
das Web oder integriert in Anwendungen zu erstellen, zu organisieren und zu
verteilen.
Editierbares RTF-Format
Stellen Sie Ihren Anwendern Berichte in
einem neuen RTF-Format zur Verfügung, damit sie selbst Änderungen am
Dokument vornehmen können
Kostenneutrale Laufzeitlizenzen
Die Crystal Reports Developer Edition
beinhaltet eine kostenneutrale Laufzeitlizenz für den unbegrenzten, unternehmensinternen Einsatz der Crystal
Reports .NET-, Java™- und COM(RDC) Report Engine-Komponenten.
Zusätzliche Lizenzgebühren fallen nicht
an.
„Intelligente“ Grafikerstellung
Erstellen Sie eine Grafik oder lassen Sie
sich den besten Grafikstil automatisch
anzeigen. Diese Funktion aktualisiert Ihr
Diagramm sofort, wenn neue Variablen
hinzugefügt werden.
Dynamische, kaskadierende Prompts
Erfüllen Sie die Anforderungen unterschiedlichster Anwender mit nur einem
Report, indem Sie dynamische Werte für
die Eingabeaufforderungen in Berichten
festlegen. Eine Pflege der Listen mit
statischen Prompt-Werten für die einzelnen Berichte entfällt, denn Sie können die bereits vorhandenen und im
Repository abgelegten Prompts wieder
verwenden.
HTML-Vorschau
Sorgen Sie für perfekte Berichte. Prüfen
Sie das Design Ihrer Reports mit Hilfe
der HTML-Vorschau vor der Veröffentlichung im Web.
Dynamische Bildpositionierung
Nutzen Sie eine Datenbankverbindung
zur Platzierung von Bildern und Grafi-
Hierarchisches Gruppieren
Verbessern Sie das Layout Ihres Berichts
und stellen Sie Daten in hierarchischer
anstatt in relationaler Form dar. Diese
Funktion eignet sich ideal für Organigramme und aggregierte Berichte.
Workbench
Mit der Workbench organisieren Sie Ihre
Projekte und gruppieren die Berichte
nach Ihren persönlichen Vorgaben.
Dependency Checker
Stellen Sie sicher, dass Ihr Bericht perfekt funktioniert - bevor Sie ihn verteilen. Der Dependency Checker findet
schnell unterbrochene Links, Formelfehler und ähnliche Probleme.
Aktualisierte Datentreiber
Die neuen Treiber für XML, JDBC, IBM
DB2 und Exchange erleichtern Ihnen
den Zugriff auf die benötigten Daten.
XIX
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
Der neue Field Explorer erleichtert
die Navigation innerhalb des
BusinessObjects EnterpriseSystems. Im Crystal Reports
Designer können Sie ReportingKomponenten gemeinsam mit
anderen Anwendern nutzen.
Besuchen Sie die Crystal
Reports-Seite für Einsteiger.
Hier finden Sie alle Informationen für einen schnellen Start
mit Crystal Reports.
Exportieren Sie Berichte in
bekannte Formate wie XML,
PDF, Excel und HTML.
Es war noch nie so einfach, den
idealen Grafiktyp für Ihre Daten zu
finden.
Wählen Sie zwischen nativer,
ODBC-, OLE DB- und JDBCVerbindung zu Datenbanken,
Dateien, Protokollen, Unternehmensanwendungen oder Programmelementen.
Mit dem Dependency Checker
identifizieren Sie automatisch
unterbrochene Links, Formelfehler
und andere Abhängigkeitsprobleme.
Automatisch aktualisierte Auswahllisten und kaskadierende
Prompts sorgen für weniger
Wartungsaufwand.
Datenzugriff und -präsentation
nach Wunsch
Der Zugriff auf und die Kombination von Daten aus
unterschiedlichen Quellen ist oft komplex und erfordert
verschiedene Werkzeuge. Die Umwandlung dieser
Daten in verwertbare Informationen stellt eine weitere
Herausforderung dar. Crystal Reports bietet Ihnen
einen durchgängigen Standard für einfache Datenintegration, flexible Berichtserstellung und zeitsparende
Report-Pflege. So wird die IT-Abteilung entlastet und
die Anwender können fundiert Entscheidungen treffen.
Einfacher Zugriff auf alle Daten
Crystal Reports gibt Ihnen die vollständige Kontrolle
über die Datenanbindung und unterstützt Sie so bei der
problemlosen Erfüllung der sich ständig ändernden Anwenderanforderungen. Leistungsstarke Datentreiber
und flexible Zugriffsmöglichkeiten stellen die Verbindung zu allen benötigten Daten her. Alternativ können
Sie Business Views als Datenabstraktionsschicht einrichten und so den Verbindungsprozess zu verschiedenen Datenquellen vereinfachen und den Aufwand
bei der Migration von Berichten von der Entwicklungsumgebung in den produktiven Betrieb verringern.
Berichte, die ankommen
Die offene Design-Umgebung von Crystal Reports
ermöglicht Ihnen das Erstellen von anspruchsvollen,
aussagekräftigen Berichten. Sie können praktisch jeden
Report erzeugen, von Steuerformularen und Top NVertriebsberichten bis zu Adressaufklebern. Dank der
umfangreichen Layout- und Formatierungsoptionen
wie Grafiken, Landkarten, Gruppierungen und Sortierungen erstellen Sie mühelos professionelle, pixelgenaue Berichte ohne aufwändige Programmierung.
Berichte schnell erstellen und einfach
pflegen
Mit Crystal Reports beschleunigen Sie die Erstellung
und Pflege Ihrer Berichte und haben Zeit, sich auf
wichtigere Aufgaben zu konzentrieren. Anpassbare
Vorlagen weisen Berichten automatisch Formate und
Layouts zu. Custom Functions extrahieren die betriebswirtschaftliche Logik aus Formeln und stellen sie ohne
weiteren Programmieraufwand zur Nutzung in anderen
Berichten zur Verfügung. Außerdem können Sie häufig
gebrauchte Berichtselemente (Textobjekte, Custom
Functions, SQL-Befehle und Bilder) zur Weiterverwendung und zentralen Aktualisierung in einer Bibliothek,
dem Repository, ablegen.
XX
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
Planen Sie die Berichtsverarbeitung zu
bestimmten Zeiten, Terminen und in
vordefinierten Formaten.
Mit dem neuem Crystal Reports
Server verteilen Sie Crystal ReportsBerichte über das Web.
Steuern Sie den Informationszugriff der
Anwender über die detaillierten
Sicherheitseinstellungen auf Objekt-,
Nutzer- und Datenebene.
Der richtige Bericht zur richtigen
Zeit an den richtigen Empfänger
Interaktive und individuelle Auswertungsumgebung
Die zeitgerechte Berichtsverteilung an Anwender innerhalb und außerhalb des Unternehmens kann teuer,
zeitaufwändig und auch riskant sein, denn Ihre vertraulichen Berichte könnten in falsche Hände geraten. Mit
Crystal Reports verfügen Sie über eine sichere, steuerbare Umgebung zur flexiblen Berichtsauswertung und
-bearbeitung, die Ihnen hilft, die Kosten für die Informationsverteilung zu reduzieren.
Mit Crystal Reports machen Sie die Anwender unabhängig von IT-Unterstützung und sorgen für einen
besseren Entscheidungsprozess. Ihre Anwender können
die Daten in gewohnten Formaten und Umgebungen
betrachten und auswerten. Dazu können Sie einen der
vordefinierten Thin- oder Zero-Client-Viewer von
Crystal Reports einsetzen. Selbstverständlich können
Sie diese Viewer auch Ihren Anforderungen anpassen
und Ihren Anwendern maßgeschneiderte Möglichkeiten zum Ausdrucken, Aktualisieren und Durchsuchen
der Berichten bieten. Auch für Funktionalitäten wie der
Drill-down auf Grafiken und zwischen Gruppen von
Berichtsdaten ist keine zusätzliche Programmierung
nötig.
Berichtsveröffentlichung im Web - für
sichere Auswertungen mit SchedulingFunktionalität
Crystal Reports Server bietet Ihnen eine skalierbare
Web-Reportinglösung, mit der sich Berichte einfach
und effizient an Anwender verteilen lassen. Sie sind in
der Lage, jeden bestehenden Crystal Reports-Bericht im
Web zu veröffentlichen und dabei gleichzeitig die Berichtsausführung zu planen sowie die Sicherheitseinstellungen festzulegen. Ihre Anwender können dann die
Berichte sofort in der sicheren Umgebung eines anpassbaren Portals aufrufen und auswerten - alles was sie
dazu benötigen ist eine einzige URL. Zusätzlich stehen
Ihnen vordefinierte Integrationspakete zur Verfügung,
die die Anpassung an Ihre vorhandene Portaloberfläche
beschleunigen.
XXI
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
In den führenden IDEs ist die Crystal
Reports-Technologie bereits enthalten.
Integrieren Sie pixel-genaue Berichte in Ihre
Java-, .NET- oder COM-Anwendungen zum
Einsatz im Web oder unter Windows.
Umfassende SDKs sorgen für maximale Flexibilität bei der Anwendungsentwicklung.
Integrieren Sie ReportingFunktionalitäten in Anwendungen
und Portale
Implementierungsoptionen
Eine wichtige Voraussetzung für jede Reporting-Lösung
ist die einfache Integration in bestehende Systeme,
Applikationen und Infrastrukturen. Crystal Reports lässt
sich in praktisch jede Umgebung integrieren und bietet
Ihnen einen durchgängigen Reporting-Standard für die
unterschiedlichsten Implementierungsanforderungen,
mit dem Sie die langfristige Attraktivität Ihrer Anwendungen sicherstellen können.
Erstellen Sie interaktive Berichte in Ihren
Anwendungen
Crystal Reports hält für Anwendungsentwickler
umfangreiche Software Development Kits (SDKs)
bereit, mit denen sich das Sichten, Drucken und
Exportieren von Berichten einfach in Java-, .NET- und
COM-Anwendungen integrieren lässt. Crystal Reports
Server verfügt über zusätzliche interaktive APIs für die
Berichtsänderung und -erstellung durch die Anwender
zur Ausführungszeit. Vordefinierte Integrationspakete
beschleunigen den Einsatz von Portalen.
Integrieren Sie individuelle Java-, .NET- und COMBerichtskomponenten direkt in Ihre Anwendungen und
genießen Sie unternehmensweit die Vorteile einer
internen, unbegrenzten Nutzungslizenz ohne CPUBegrenzung. Alternativ können Sie die Berichtsverarbeitung auch auf den Crystal Reports Server übertragen.
Auf diese Weise zentralisieren Sie das Reporting unterschiedlicher Anwendungen und bieten Ihren Anwendern mehr interaktive Berichtsfunktionalitäten. Für was
Sie sich auch entscheiden, Crystal Reports nutzt ein
konsistentes Objektmodell, das sicherstellt, dass die
Migration von einer Lösung zur anderen nahtlos und
direkt erfolgt.
Integration in alle marktgängigen Web
Application Server und Plattformen
Mit Crystal Reports schreiben Sie Ihre Anwendung in
Java, .NET oder COM und setzen sie unter Windows,
LINUX und UNIX ein. Mit Crystal Reports Server entwickeln Sie außerdem unterschiedliche Applikationen,
die mit einem zentralen Report Repository verbunden
sind. Die Pflege von separaten Repositories für individuelle Anwendungen wird damit überflüssig.
XXII
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
Crystal Reports XI
Der weltweit bewährte Standard für Reporting
Die passende Crystal Reports-Edition für Ihre Anforderungen
Ob IT-Profi, Anwendungsentwickler oder Fachanwender, für jede Anforderung gibt es die
passende Crystal Reports-Version:
Crystal Reports Server: vollständige Reporting-Lösung für kleinere und mittelständische Unternehmen zur Erstellung, Organisation und Verteilung von Berichten über das Web (oder integriert in Anwendungen).
Crystal Reports Developer Edition: für die Entwicklung und Integration von Berichten in
Web- und serverbasierten Anwendungen.
Crystal Reports Professional Edition: zum Erstellen von Berichten auf Basis einer Vielzahl
von PC- und Unternehmensdatenquellen.
Die folgende Tabelle vergleicht die wichtigsten Funktionen von Crystal Reports XI nach Edition:
Crystal Reports Server
Crystal Reports Developer
Crystal Reports Professional
Crystal Reports XI - Funktionsvergleich nach Edition
Native, ODBC-, OLE DB- und JDBC-Verbindung zu relationalen, OLAP-, XML-,
Altsystem- und Unternehmensdatenquellen
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Zugriff auf eigene, benutzerdefinierte Daten über JavaBeans, ADO, .NET und COM
Grafischer Report Designer für schnellen Datenzugriff und aussagekräftige Formatierung
Berichtsintegration
SDKs zum Sichten, Drucken und Exportieren von Berichten in Anwendungen
Die Berichtsverarbeitung findet in einer selbst entwickelten Anwendung statt
Die Berichtsverarbeitung wird auf einen separaten Berichtsserver ausgelagert
✔1
✔
APIs für das Erstellen und Anpassen von Berichten durch den Anwender
Anpassbare Report Viewer
Verteilung und Steuerung2
Schnelle Berichtsveröffentlichung im Web für Workgroups und Abteilungen
Planung (Scheduling) der Berichtsausführung zu bestimmten Zeiten, Terminen
Sicherheit auf Benutzer-, Gruppen-, Objekt- und Ordner-Ebene
Leistungsfähige semantische Schicht (Business Views) zur Datenbankbetrachtung durch
den Anwender
✔
Bibliothek (Repository) zur berichtsübergreifenden Wiederverwendung von Objekten
✔
1. Für Nutzer der Report Designer-Komponente (RDC): diese APIs sind in der Developer Edition verfügbar.
2. Die Professional and Developer Editions enthalten als Einführungsangebot fünf Nutzungslizenzen (5 Named Users) von Crystal Reports Server.
✔
✔
✔
www.businessobjects.com
www.businessobjects.de
www.businessobjects.ch
Europa
Tel: +33 1 41 25 21 21
Deutschland
Tel: +49 (0)700 26 25 32 87
Schweiz
Tel: +41 (0)56 483 40 50
Business Objects hält folgende US-Patente, die Produkte betreffen können, die Business Objects anbietet und verkauft: 5,555,403; 6,247,008 B1; 6,578,027 B2;
490,593 und 6,289,352. Business Objects, das Business Objects-Logo, BusinessObjects, Crystal Reports, Crystal Enterprise, Crystal Analysis, WebIntelligence,
RapidMarts und BusinessQuery sind Warenzeichen oder eingetragene Warenzeichen von Business Objects SA in den USA und/oder anderen Ländern. Alle
anderen hier erwähnten Namen können Warenzeichen der jeweiligen Besitzer sein. Copyright © 2004 Business Objects. Alle Rechte vorbehalten.
PT#DS731-A
XXIII
Printed in Germany - März 2005 (Autor: C. Factor; unter mitwirkung von: D. Dicochea, S. Jaganathan, M. Meckler, J. Meegan, Pam Seale)
Datenzugriff und Berichtsdesign
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
Business intelligence software for reporting and OLAP analysis of Cor...
http://www.cognos.com/products/business_intelligence/reporting/featur...
Manage My Profile | Contact Us | Careers | Investor Relations
Worldwide Sites
Evaluate
Overview
Features and Benefits
MS Office Integration
White Papers
Fact Sheet
Online Demo
System Requirements
Validate
Certified for SAP® BW
Red Hat Ready
Analyst / Press Views
Customer Successes
Choose
Cognos Leadership
Support & Services
Contact Us Now
Extend
With Cognos
PowerPlay®
Corporate
Performance
Management
BI Standardization
Scorecarding &
Dashboard Software
Search:
Cognos Home > Products > Cognos ReportNet > Features and Benefits
Cognos ReportNet
Focus on Performance
Features and Benefits
Online Demo
See the new standard for
enterprise reporting in action.
Advanced authoring capabilities
One authoring environment for creating all report types, including
dashboards.
Federated queries—one query drawing on multivendor data
sources—even within a single reporting object.
Adaptive authoring automatically adjusts report layout when
objects are added, moved or removed.
Embed live applications, Web sites and non-BI content within a
report.
Drag-and-drop authoring incorporates data, text, charts, graphs,
and images.
Edit reports with prompts and toolbar commands.
Advanced visualisations and charting abilities through Cognos
Visualizer.
Work with data using familiar business terms.
Use a variety of charts: crosstabs, bar/3D bar, pie/doughnut,
line, gauge, funnel, scatter, dot density, waterfall, and more.
Create complex, multi-page layouts using different data sources
without programming or workarounds.
Conditional suppression and automatic calculations.
Data access
High performance federated data access across all sources.
Complete connectivity regardless of environment - relational
databases, SAP® BW, Excel, XML, JDBC, LDAP and Web Services.
Support for Windows, UNIX, and Linux operating systems,
including mixed platform deployments.
SAP-certified BAPI® and iViews, Certified Powered by SAP
NetWeaver™.
Load balancing across Windows and Unix platforms.
Single portal, metadata layer, and point of administration.
Open architecture
On-demand Web seminar
Learn how First Citizens Bank
uses Cognos ReportNet to
increase customer
profitability.
Key features up close
Cognos TechTalk
Cognos TechTalk
Get answers to your technical
questions with on-demand
Web seminars, white papers,
analyst reports, demos and
more.
Questions?
Cognos worldwide
locations
Have Cognos contact
you
Open architecture leverages XML, SOAP and WSDL.
Fully published SDK.
Foundation for the entire Cognos Enterprise BI suite
Leverages existing security models and supports multiple security
authentication providers.
Powerful distribution
Proven scalability to 190,000 named users. Reporting times of
2.5 seconds.
Out-of-the-box integration with SAP and IBM Websphere portals.
Burst personalized reports to multiple locations and in multiple
formats.
User interface supports 10+ languages; reports delivered in 25+
languages.
Multiple export formats: Excel, PDF, XML, HTML, and CSV.
Multilingual capabilities automatically deliver reports in users'
working language.
Stateless connections use pooled connections to service report
requests.
Import and manipulate BI content in MS Office.
Home | Legal Notices | Privacy Statement | Site Map
Copyright © 2006 Cognos Incorporated
corporate performance management — business intelligence, enterprise planning
and balanced scorecard
1 von 1
30.03.2006 14:53
XXIV
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
Reporting Services
Für viele Unternehmen besteht die
Herausforderung darin, den richtigen
Mitarbeitern nützliche Informationen
zur rechten Zeit zur Verfügung zu
stellen. Solche Mitarbeiter benötigen
den Zugriff auf geschäftliche Daten,
die möglicherweise über die gesamte
Organisation verteilt sind.
SQL Server 2005 Reporting Services erweitert die Microsoft® Business IntelligencePlattform, um solche Anforderungen zu
unterstützen. Reporting Services ist eine
serverbasierte Reporting-Umgebung, die
über Webdienste verwaltet wird. Berichte
können in einer Vielzahl von Formaten,
mit umfangreichen Interaktivitätsmöglichkeiten und vielen Druckoptionen erstellt
werden. Als integrierte Komponente von
SQL Server 2005 stellen die Reporting
Services Folgendes zur Verfügung:
• eine leistungsstarke Engine zur Verarbeitung und Darstellung von Berichten
• einen vollständigen Satz an Tools zum
Erstellen, Verwalten und Anzeigen von
Berichten
• eine erweiterbare Architektur und eine
offene Schnittstelle für die Integration
von Reporting-Lösungen in unterschiedliche IT-Umgebungen
Reporting-Szenarien
Die Reporting Services bieten die Kombination aus einer umfassenden Plattform
mit einer skalierbaren und erweiterbaren
Architektur. Sie decken so eine große
Menge der Anforderungen im Bereich
Reporting ab:
• Enterprise Reporting
Unternehmen können die Reporting
Services für ihre operativen Berichte
oder für Business Intelligence-Anwendungen nutzen. Mit den Reporting
Services können die IT-Mitarbeiter eine
Vielzahl an Berichten erstellen und diese
verschiedenen Personen im Unternehmen
zur Verfügung stellen – zum Beispiel
über E-Mails, über ein Portal oder über
beide Wege.
• Ad-hoc-Reporting
SQL Server 2005 Reporting Services
stellen den Report Builder zur Verfügung. Report Builder ist ein neues Adhoc Reporting-Tool, das Mitarbeitern
das Erstellen eigener Berichte und die
Abfrage von Unternehmensdaten
ermöglicht. Report Builder bietet ein
benutzerfreundliches Abfragemodell,
über das die Benutzer ohne tief
greifendes technisches Verständnis
der darunter liegenden Datenquellen
Berichte erstellen können.
• Embedded Reporting
Independent Software Vendoren (ISVs)
können die Reporting Services nutzen,
um vordefinierte Berichte oder Ad-hoc
Berichte als Teil einer Anwendung zur
Verfügung zu stellen. Die IT-Organisationen des Kunden können auf diese
Berichte zugreifen, sie anpassen oder
neue erstellen, die ihren geschäftlichen
Anforderungen entsprechen.
• Webbasiertes Reporting für
Partner/Kunden
Unternehmen können interaktive,
webbasierte Berichte erstellen und
Kunden oder Partnern Informationen
über Extranets oder über das Internet
zur Verfügung stellen. Reporting
Services isolieren die Leser der Berichte
von der Komplexität der zugrunde
liegenden Datenquellen – gleichzeitig ist
die Personalisierung und Interaktivität
gewährleistet.
Offene und erweiterbare ReportingPlattform
Reporting Services stellen eine vollständige
und serverbasierte Plattform zur Erstellung,
Verwaltung und Bereitstellung von traditionellen und interaktiven Berichten zur
XXV
Verfügung. Gleichzeitig stellen umfassende
APIs und das modulare Design eine Möglichkeit für Softwareentwickler, Datenanbieter und Unternehmen dar, das Reporting
in ältere Systeme oder Drittanbieteranwendungen zu integrieren. Die Reporting
Services bieten eine einzigartige Kombination von Eigenschaften:
• Eine komplette, serverbasierte
Reporting-Plattform
Die Reporting Services unterstützen
den gesamten Lebenszyklus – von der
Erstellung über die Bereitstellung bis
zur Verwaltung von Berichten.
• Flexibles und erweiterbares
Reporting
Die Reporting Services unterstützen
sowohl traditionelle als auch interaktive
Berichte in unzähligen Formaten und
mit umfassenden Bereitstellungsoptionen.
Sie können mit offenen APIs und
Schnittstellen sehr einfach in jede Umgebung oder Lösung integriert werden.
• Skalierbarkeit
Das modulare, webbasierte Design des
Produktes unterstützt auch Umgebungen mit hohen Volumina. Es kann eine
Reporting-Serverfarm mit mehreren
Reporting-Servern eingerichtet werden,
die Tausende von webbasierten Clients
gleichzeitig bedienen kann.
• Integration mit Microsoft-Produkten
und -Tools
Die Reporting Services integrieren sich
sehr leicht in bekannte Microsoft-Tools
wie Visual Studio® und Anwendungen
wie Office® und SharePoint® Portal
Server – und zwar, ohne dass Programmieraufwand oder Anpassungen
notwendig wären.
Erstellung, Verwaltung und Bereitstellung von Berichten
Die Reporting Services kombinieren die
Vorteile von zentral verwalteten Reporting-Systemen mit der Flexibilität und den
On-Demand-Möglichkeiten von Desktopanwendungen und webbasierten Anwendungen. Als vollständige Reporting-Plattform unterstützen die Reporting Services
den gesamten Reporting-Lebenszyklus –
von der Erstellung bis zur Bereitstellung.
ANHANG B. DATENBLÄTTER BERICHTSWERKZEUGE
• Erstellen von Berichten
Die Reporting Services enthalten alles,
was Sie zur Erstellung von traditionellen
oder interaktiven Berichten benötigen –
inklusive eines grafischen Design-Tools
mit den entsprechenden Assistenten.
• Verwalten von Berichten
Die Reporting Services enthalten ein
webbasiertes Tool zur Verwaltung von
Berichten und zur Integration mit dem
neuen SQL Server Management Studio.
Administratoren können diese Schnittstelle zur Organisation von Berichten
und Datenquellen, zur Planung der
Berichtsausführung und -bereitstellung
und zur Verfolgung von Berichtshistorien nutzen. Alternativ können die
Reporting Services Web Services APIs
von Unternehmen oder ISVs zum
Erstellen von angepassten Verwaltungstools verwendet werden.
• Absichern von Berichten
Die Reporting Services implementieren
ein flexibles, rollenbasiertes Sicherheitsmodell zum Schutz der Berichte und
Reporting-Ressourcen. Das Produkt
stellt umfangreiche Schnittstellen zur
Integration anderer Sicherheitsmodelle
zur Verfügung.
• Bereitstellen von Berichten
Sie können Berichte über Portale,
E-Mails oder webbasierte ReportingServer zur Verfügung stellen. Die
Navigations-, Such- und AbonnementFeatures helfen den Benutzern dabei,
die benötigten Berichte zu finden.
Personalisierte Abos sorgen dafür, dass
den Benutzern die von ihnen bevorzugten Berichte angezeigt werden.
Integration mit Microsoft Business
Intelligence-Produkten
Die Reporting Services arbeiten sehr
einfach mit anderen Microsoft Business
Intelligence-Produkten zusammen. Sie
nutzen SQL Server Integration Services
als Datenquelle für Berichte. Dies ist
einzigartig, denn so wird es ermöglicht,
nicht persistente Datenquellen für
Berichte zu verwenden. Mit den SQL
Server Analysis Services stehen umfangreiche, multidimensionale Analysemöglichkeiten zur Verfügung. Die Reporting
Services können nicht nur OLAP-Daten,
sondern auch relationale Daten darstellen.
Die Reporting Services stellen eine vielseitige Benutzerschnittstelle zur Erstellung
von Analyseberichten zur Verfügung. Egal,
ob es um hohe Anforderungen, Ad-hocBerichte für Endbenutzer oder Embedded
Reporting-Funktionen geht – die Reporting Services sind die geeignete Plattform.
SQL Server ist Teil des Windows Server Systems – einer umfassenden und integrierten Serverinfrastruktur, die die Entwicklung, Bereitstellung und den Betrieb einer flexiblen Unternehmenslösung vereinfacht. Weitere Informationen zu SQL Server 2005 und der Analysis
Services Data Mining-Funktionen finden Sie unter http://www.microsoft.com/sql/2005 (englischsprachig).
Die Informationen in diesem Dokument beziehen sich auf eine vorläufige Version eines Softwareprodukts, das bis zur endgültigen Version wesentlichen Änderungen unterliegen kann. Dieses Dokument
wurde vor der Veröffentlichung der Verkaufsversion des besprochenen Produktes erstellt. Daher können wir nicht garantieren, dass alle im Dokument enthaltenen Details in der Verkaufsversion des Produktes
enthalten sind. Die in diesem Dokument enthaltenen Informationen spiegeln die aktuelle Sicht auf das Programm zum Zeitpunkt der Veröffentlichung durch das Unternehmen Microsoft wider. Da Microsoft
auf sich ändernde Marktanforderungen reagieren muss, stellt dies keine Verpflichtung seitens Microsoft dar, und Microsoft kann die Richtigkeit der hier dargelegten Informationen nach dem Zeitpunkt der
Veröffentlichung und die zukünftige Verfügbarkeit des besprochenen Programms nicht garantieren. Dieses Dokument dient nur zu Planungs- und Informationszwecken. Die enthaltenen Informationen
können sich jederzeit und ohne vorherige Ankündigung ändern. MICROSOFT SCHLIESST FÜR DIE INFORMATIONEN IN DIESEM DOKUMENT JEDE GEWÄHRLEISTUNG AUS, SEI SIE AUSDRÜCKLICH ODER
KONKLUDENT.
102347 FD 06/05
XXVI
Anhang C
Detailbeschreibung des Datenmodells
XXVII
ANHANG C. DETAILBESCHREIBUNG DES DATENMODELLS
RPE_Connection
Spaltenname
rpe_ct_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
PK Beschreibung
1 PK
rpe_ct_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_ct_mody
datetime
23
3 No
(getdate())
rpe_ct_ip
varchar
35
YES
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
rpe_ct_op
int
10
0 YES
rpe_ct_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
(0)
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
rpe_ct_stat
int
10
0 No
rpe_ct_Name
varchar
255
No
0 Name der Verknüpfung für UI
rpe_ct_des
varchar
1000
YES
0 Beschreibung der Verknüpfung für UI
rpe_ct_left_qb_idx
int
10
0 YES
0 FK auf linken QueryBlock
rpe_ct_right_qb_idx int
10
0 YES
0 FK auf rechten QueryBlock
rpe_ct_JoinType
tinyint
rpe_ct_Condition
varchar
3
0 No
6000
No
0 Statusfeld für temp. Benutzung
Art der Verknüpfung 0=Inner Join, 1=Letf Join, 2=Right
Join, 3=Full Join
0 Auswahlbedingung
(0)
0
RPE_FilterPara
Spaltenname
rpe_fp_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
PK Beschreibung
1 PK
rpe_fp_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_fp_mody
datetime
23
3 No
(getdate())
rpe_fp_ip
varchar
35
YES
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
rpe_fp_op
int
10
0 YES
rpe_fp_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
(0)
0 Statusfeld für temp. Benutzung
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
rpe_fp_stat
int
10
0 No
rpe_fp_qb_idx
int
10
0 YES
0 FK: Tabelle "queryBlock"
rpe_fp_pos
int
10
0 No
0 Position im Parameterstring
rpe_fp_name
varchar
255
No
rpe_fp_default
varchar
255
No
0 Name des Parameters
('NULL')
0 Standartwert des Parameters
RPE_Job
Spaltenname
rpe_jb_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
PK Beschreibung
1 PK
rpe_jb_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_jb_mody
datetime
23
3 No
(getdate())
rpe_jb_ip
varchar
35
YES
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
rpe_jb_op
int
10
0 YES
rpe_jb_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
(0)
0 Statusfeld für temp. Benutzung
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
rpe_jb_stat
int
10
0 No
rpe_jb_pf_idx
int
10
0 YES
0 FK: Tabelle "Profile"
rpe_jb_done
datetime
23
3 YES
0 Zeitstempel der Fertigstellung des Jobs
rpe_jb_results
int
10
0 YES
0 Anzahl der Ergebnisse
rpe_jb_rc
int
10
0 YES
rpe_jb_archiv
int
10
0 No
KDB- Doku Anhang 2: Datentabellen/Spalten
0 ReturnCode des IPC-Jobs
(90)
0 Anzahl der Tage, die der Job archiviert werden soll
Stand '22.05.2006'
XXVIII
Seite: 1 von 4
ANHANG C. DETAILBESCHREIBUNG DES DATENMODELLS
RPE_Job_Data
Spaltenname
rpe_jd_idx
Datentyp
int
rpe_jd_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_jd_mody
datetime
23
3 No
(getdate())
rpe_jd_ip
varchar
35
YES
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
rpe_jd_op
int
10
0 YES
rpe_jd_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
10
0 No
(0)
rpe_jd_stat
int
rpe_jd_data
varchar
Prec Scale Nullable default
10
0 No
7958
PK Beschreibung
1 PK
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
0 Statusfeld für temp. Benutzung
YES
0 Daten eines Datenfeldes
rpe_jd_type
tinyint
3
0 YES
rpe_jd_sort
int
10
0 YES
(0)
0
0
rpe_jd_help_pk
int
10
0 YES
0
Postion des Datenfeldes, gemäß Sortiervorgabe, in der
Liste der LineDaten
RPE_Job_Lines
Spaltenname
rpe_jl_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
rpe_jl_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_jl_mody
datetime
23
3 No
(getdate())
rpe_jl_ip
varchar
35
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
YES
PK Beschreibung
1 PK
rpe_jl_op
int
10
0 YES
rpe_jl_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
(0)
0 Statusfeld für temp. Benutzung
rpe_jl_stat
int
10
0 No
rpe_jl_jb_idx
int
10
0 YES
0 FK: Tabelle "Job"
rpe_jl_pp_idx
int
10
0 YES
0 FK: Tabelle "ProfileLines"
RPE_Line
Spaltenname
rpe_li_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
PK Beschreibung
1 PK
rpe_li_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_li_mody
datetime
23
3 No
(getdate())
rpe_li_ip
varchar
35
YES
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
rpe_li_op
int
10
0 YES
rpe_li_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
rpe_li_stat
int
10
0 No
(0)
0 Statusfeld für temp. Benutzung
rpe_li_qb_idx
int
10
0 YES
0 FK: Tabelle "queryBlock"
rpe_li_sb_idx
int
10
0 YES
0 FK: Tabelle "showBlock"
rpe_li_name
varchar
255
No
rpe_li_des
varchar
1000
YES
0 Beschreibung des Lineinhaltes
rpe_li_query
varchar
6000
No
0 SQLtext der Spaltenabfrage
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
0 Name der Line
RPE_ParaValue
Spaltenname
rpe_pv_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
rpe_pv_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_pv_mody
datetime
23
3 No
(getdate())
0 Zeitstempel letzte Änderung des Records
KDB- Doku Anhang 2: Datentabellen/Spalten
PK Beschreibung
1 PK
Stand '22.05.2006'
XXIX
Seite: 2 von 4
ANHANG C. DETAILBESCHREIBUNG DES DATENMODELLS
rpe_pv_ip
varchar
35
YES
rpe_pv_op
int
10
0 YES
0
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
Änderung
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
rpe_pv_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
rpe_pv_stat
int
10
0 No
(0)
0 Statusfeld für temp. Benutzung
rpe_pv_fp_idx
int
10
0 YES
0 FK: Tabelle "FilterPara"
rpe_pv_pos
int
10
0 No
0 Position für Liste in UI
rpe_pv_name
varchar
255
No
0 Textliche Bedeutung des Values für UI
rpe_pv_value
varchar
7000
No
0 Wert des Parameters
rpe_pv_type
int
10
0 No
0 Datentyp des Parameters
RPE_Profile
Spaltenname
rpe_pf_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
PK Beschreibung
1 PK
rpe_pf_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_pf_mody
datetime
23
3 No
(getdate())
rpe_pf_ip
varchar
35
YES
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
rpe_pf_op
int
10
0 YES
rpe_pf_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
rpe_pf_stat
int
10
0 No
(0)
0 Statusfeld für temp. Benutzung
rpe_pf_ma_idx
int
10
0 YES
0 FK: Tabelle "Mitarbeiter", Besitzer des Profils
rpe_pf_name
int
10
0 No
0 Name des Profils
rpe_pf_archiv
int
10
0 No
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
(90)
0 Zeit der Archivierung in Tagen
RPE_Profile_Projection
Spaltenname
rpe_pp_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
rpe_pp_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_pp_mody
datetime
23
3 No
(getdate())
rpe_pp_ip
varchar
35
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
YES
PK Beschreibung
1 PK
rpe_pp_op
int
10
0 YES
rpe_pp_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
rpe_pp_stat
int
10
0 No
(0)
0 Statusfeld für temp. Benutzung
rpe_pp_li_idx
int
10
0 YES
0 FK: Tabelle "Line"
rpe_pp_pf_idx
int
10
0 YES
0 FK: Tabelle "Profile"
10
0 No
(0)
0 Dimension der Line
10
0 No
(0)
0 Datenschlüssel zur Art des LineNamen
(0)
0 Datenschlüssel: Sortierreihenfolge für die Daten der Line
rpe_pp_dim
int
rpe_pp_namesourc
int
e
rpe_pp_optName
varchar
rpe_pp_sort
int
255
10
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
YES
0 No
0 (optionaler) benutzerdefinierter Name der Line
RPE_Profile_Selection
Spaltenname
rpe_ps_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
rpe_ps_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_ps_mody
datetime
23
3 No
(getdate())
rpe_ps_ip
varchar
35
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
YES
KDB- Doku Anhang 2: Datentabellen/Spalten
PK Beschreibung
1 PK
Stand '22.05.2006'
XXX
Seite: 3 von 4
ANHANG C. DETAILBESCHREIBUNG DES DATENMODELLS
rpe_ps_op
int
10
0 YES
rpe_ps_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
rpe_ps_stat
int
10
0 No
(0)
0 Statusfeld für temp. Benutzung
rpe_ps_pf_idx
int
10
0 YES
0 FK: Tabelle "Profile"
rpe_ps_qb_idx
int
10
0 YES
0 FK: Tabelle "queryBlock"
rpe_ps_pars_idx
int
10
0 YES
0 FK: Tabelle "ParameterSet"
RPE_queryBlock
Spaltenname
rpe_qb_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
rpe_qb_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_qb_mody
datetime
23
3 No
(getdate())
rpe_qb_ip
varchar
35
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
0 Statusfeld für Löschkennzeichen
YES
rpe_qb_op
int
10
0 YES
rpe_qb_del
int
10
0 No
(0)
10
0 No
(0)
255
No
rpe_qb_stat
int
rpe_qb_TabName
varchar
PK Beschreibung
1 PK
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
0 Statusfeld für temp. Benutzung
0 Name der BlockTabelle
rpe_qb_pk
varchar
255
No
0 PK der BlockTabelle
rpe_qb_FName
varchar
255
No
0 Name des Filter
rpe_qb_FFunction
varchar
255
No
rpe_qb_FSelect
varchar
6000
No
0 Filterfuntionsname für den Aufruf
('SELECT *
FROM')
0 Aufruftext der Filterfunktion
RPE_showBlock
Spaltenname
rpe_sb_idx
Datentyp
int
Prec Scale Nullable default
10
0 No
PK Beschreibung
1 PK
rpe_sb_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
rpe_sb_mody
datetime
23
3 No
(getdate())
rpe_sb_ip
varchar
35
YES
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
rpe_sb_op
int
10
0 YES
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
rpe_sb_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
rpe_sb_stat
int
10
0 No
(0)
0 Statusfeld für temp. Benutzung
rpe_sb_name
varchar
255
No
0 Name des log. Anzeigeblockes
rpe_sb_des
varchar
1000
YES
0 Beschreibung
Prec Scale Nullable default
10
0 No
PK Beschreibung
1 PK
xRPE_Job_LineData
Spaltenname
xrpe_jld_idx
Datentyp
int
xrpe_jld_made
datetime
23
3 No
(getdate())
0 Zeitstempel Erzeugung des Records
xrpe_jld_mody
datetime
23
3 No
(getdate())
xrpe_jld_ip
varchar
35
YES
0 Zeitstempel letzte Änderung des Records
IP-Adresse des Mitarbeiters bei Erzeugung / letzter
0
Änderung
xrpe_jld_op
int
10
0 YES
xrpe_jld_del
int
10
0 No
(0)
0 Statusfeld für Löschkennzeichen
(0)
0 Statusfeld für temp. Benutzung
0 FK: Tabelle "Mitarbeiter", Erzeugung / letzte Änderung
xrpe_jld_stat
int
10
0 No
xrpe_jld_jl_idx
int
10
0 YES
0 FK: Tabelle "JobLines"
xrpe_jld_jd_idx
int
10
0 YES
0 FK: Tabelle "JobData"
xrpe_jld_dim
int
10
0 No
KDB- Doku Anhang 2: Datentabellen/Spalten
(0)
0 Dimension
Stand '22.05.2006'
XXXI
Seite: 4 von 4
Anhang D
Inhalt der Begleit-CD
LaTeX
d
LaTeX-Quellcode
Abschnitt
d
Kapitel
Pics
d
Abbildungen
Auswertungen
d
Auswerungsanalyse
HVB
d
manuelle Auswertungen der HVB
VUW
d
manuelle Auswertungen der VUW
Analyse.xls
f
Analyseergebnisse
Analyser.pl
f
Analyseskript
Umsetzung
d
RPE.pdf
f
Datenbankdiagramm der RPE
RPE_Projection.pl
f
Projektions-Modul
RPE_Tablestructure.sql
f
SQL-Quellcode zum Anlegen
der Tabellenstruktur
RPE_TD.pdf
f
Detailbeschreibung des Datenmodells
XXXII
Herunterladen