Ein generisches Data Warehouse im Kontext einer Anwendungsarchitektur Prof. Dr. Wolfgang Gerken Fachhochschule Hamburg FB Elektrotechnik/Informatik Berliner Tor 3 20099 Hamburg E-Mail: [email protected] Zusammenfassung Der Gesamtverband der Deutschen Versicherungswirtschaft e. V. hat eine Musterarchitektur für DVAnwendungssysteme im Versicherungswesen entwickelt, auf deren Basis Softwarehäuser Versicherungsunternehmen im Rahmen eines Komponentenmarktes modulare und adaptierbare und Anwendungen entwickeln bzw. einsetzen sollen. Diese begrüßenswerte Initiative basiert aber auf einem Modell, welches das Geheimnisprinzip objektorientierter Anwendungen verletzt [GeRa96]. In diesem Beitrag wird eine alternative Komponentenarchitektur vorgestellt. Weiterhin wird anhand der Komponente Data Warehouse exemplarisch gezeigt, wie sich generische Strukturen bei der Entwicklung anpaßbarer Komponenten einsetzen lassen. Die Untersuchungen werden im Rahmen des Projektes „Software-Engineering in der Versicherungswirtschaft“ (SEVERS) durchgeführt, das seit einigen Semestern im FB Elektrotechnik/Informatik der FH Hamburg läuft. 1 Das Projekt SEVERS Das Projekt „Software-Engineering in der Versicherungswirtschaft“ (SEVERS) dient dazu, die im Informatik-Studium vermittelten Methoden und Ansätze mit praktischen Anwendungen zu konfrontieren und ihre Bewährung nachzuweisen. Dies erfolgt in enger Zusammenarbeit mit Beratungs- und Versicherungsunternehmen im Hamburger Raum. Die Teilnahme an Projekten ist fester Bestandteil des Curriculums der letzten Studiensemester. Das SEVERS-Projekt (vgl. URL http://users.informatik.fh-hamburg.de/~raasch/severs.htm) geht davon aus, daß Versicherungsunternehmen, wie auch Unternehmen anderer Branchen, in den nächsten Jahren einen schwerwiegenden Technologiewandel in der informationstechnologischen Infrastruktur zu bewältigen haben. Dazu möchten wir Qualifikationsmöglichkeiten im Rahmen wechselnder Arbeitsvorhaben für unsere Studierenden anbieten: insbesondere gehören dazu die Bereiche Objektorientierung, Anwendungsarchitekturen und Data Warehouse, von denen hier die Rede sein soll. 2 Die Versicherungs-Anwendungs-Architektur Hoher Kostendruck, größere Kundenorientierung, kürzere geforderte Entwicklungszeiten bei der Produktentwicklung, eine effiziente Unterstützung des Außendienstes sowie die Forderung nach besseren Führungsinformationen führten zur Entwicklung der Versicherungs-AnwendungsArchitektur VAA [GDV96]. Sie stellt als übergreifendes Konstruktionsprinzip und Referenzarchitektur einen begrüßenswerten softwaretechnischen Rahmen für Versicherungsanwendungen der Zukunft dar. VAA unterscheidet zwischen einer fachlichen und einer technischen Architektur. Im fachlichen Teil werden die Versicherungsanwendungen durch ein Prozeßmodell beschrieben, das sich aus einem Funktionen- und einem Datenmodell zusammensetzt. Das Prozeßmodell beinhaltet die für Versicherungsunternehmen relevanten Geschäftsprozesse. Es operiert auf Geschäftsobjekten wie Versicherungsvertrag, Partner, Schaden/Leistung, Geschäftsprozeßdokumentation, Produkt, Konto, Versicherungsobjekt sowie Dokument, Schriftstück, Datenträger. Das Funktionenmodell basiert auf dem aus sechs Kernfunktionen bestehenden Modell von Farny [Farn95]. Das Grundkonzept der technischen Architektur ist dreischichtig. Die Versicherungsanwendungskomponenten der Bausteinschicht, die durch eine Entkopplungs- und Schnittstellenschicht unabhängig von den eingesetzten Systemplattformen sind, stellen dabei die technischen Realisierungen der fachlichen Prozesse dar. Die in Teil- und Elementarprozesse hierarchisch gegliederten Prozeßketten der fachlichen Sicht werden aus technischer Sicht von einem Workflowmanager gesteuert, der die globale Konsistenz der arbeitsplatzübergreifenden Geschäftsprozesse sicherstellt. Der Workflowmanager ruft seinerseits die Vorgangssteuerung auf, die die Arbeitsschritte am Arbeitsplatz eines Bearbeiters steuert. Daraus ergibt sich für ein nach VAA entwickeltes DV-Anwendungssystem folgendes Schichtenmodell. Für nähere Erläuterungen siehe [GDV96]. STEUERUNGSEBENE Dialogmanager Workflowmanager Parametersystem DV-Vorgangsmanager Datenmanager ARBEITSEBENE Deckungsprüfung Tarifierung Provisionsermittlung .... ANWENDUNGSBAUSTEINE DIENSTEBENE Präsentationsdienste Berechtigungssystem Textverarbeitung Fehlerbehandlung Entkopplungs- und Schnittstellenschicht Systemplattform Abb. 1: Schichtenmodell eines VAA-konformen Anwendungssystems (vgl. [GDV96]) .... Die Arbeitsebene realisiert die fachlichen Elementarprozesse. Die Steuerungsebene enthält die Komponenten zur arbeitsplatzübergreifenden Workflowsteuerung, zur arbeitsplatzbezogenen Vorgangssteuerung sowie den Dialogmanager. Anwendungsbausteine dürfen sich nicht gegenseitig aufrufen. Dies ist nur über die Workflow- bzw. Vorgangssteuerung möglich. Der Zugriff auf Datenbestände – insbesondere die anderer Anwendungsbausteine - wird von einem zentralen Datenmanager durchgeführt. Dadurch werden Datenbanken global, das Geheimnisprinzip wird unterlaufen. Es können Systeme entstehen, die genauso wartungs- und pflegeintensiv sind wie jene Altsysteme, die es mittelfristig abzulösen gilt. Die dringend erforderliche Flexibilisierung der Anwendungen wird nicht erreicht [Raas98]. Änderungen im Ablauf eines Teilprozesses haben immer Auswirkungen auf den steuernden Workflow- bzw. Vorgangsmanager und sind damit nicht mehr nur lokal durchführbar. Außerdem ist der gewünschte Komponentenmarkt unserer Meinung nach nur realisierbar, wenn die Datenbestände einer Komponente lokal verwaltet werden. Dies setzt allerdings voraus, daß eine Komponente Schnittstellen besitzt, über die andere Komponenten auf die Datenbestände zugreifen können, wie es in der folgenden Abbildung rechts gezeigt ist. Anwendung A Partner Anwendung B Versicherungsnehmer Vertrag Komponente A Partner Versicherungsnehmer Komponente B Vertrag Abb. 2: Integrierte Datenbestände vs. Komponentenarchitektur Allerdings gilt es in diesem Fall darauf zu achten, daß die Einhaltung von Geschäftsregeln [KnHe95] und die globale Konsistenz der Daten durch vertragliche Regelungen zwischen den einzelnen Komponenten sichergestellt ist. Dies erfolgt über Aufrufe der Komponentenschnittstelle (siehe dazu die Ausführungen im nächsten Abschnitt bzw. [Raas98]). Die Mechanismen werden denen bei einer verteilten Datenbank gleichen müssen. 3 Die Komponentenarchitektur Im Rahmen des SEVERS-Projekts wurde eine Komponentenarchitektur entwickelt, die im Gegensatz zur VAA von einem strengen Modul-Begriff ausgeht und das Geheimnisprinzip unterstützt. Die Komponenten orientieren sich an den Geschäftsobjekten eines Versicherungsunternehmens. So gibt es z. B. die Komponenten Partner, Produkt oder Schaden/Leistung. Die Architektur einer Komponente ist der folgenden Abbildung zu entnehmen; genauere Ausführungen finden sich in [Raas98]. Datenhaltung (KS) Datenhaltung (VgSt) Komponentenschnittstelle Vorgangssteuerung Interaktionssteuerung Fachmodell (Domain) Datenhaltung (Domain) Andere Anwendungskomponenten Dialogsteuerung Abb. 3: Architektur von Anwendungskomponenten Anwendungskomponenten besitzen eine innere Aufteilung in Subkomponenten, denen jeweils bestimmte Aufgaben zugewiesen sind: • Komponentenschnittstelle Die von anderen Anwendungskomponenten nutzbaren Dienste bzw. Leistungen einer Komponente werden über die Komponentenschnittstelle bereitgestellt; und nur über diese Schnittstelle kann die Komponente ihrerseits die Dienste anderer Komponenten aufrufen. • Datenhaltung (Komponentenschnittstelle) Die Komponentenschnittstelle besitzt eine eigene Datenhaltung für interne, persistente Daten. • Vorgangssteuerung Die Vorgangssteuerung überwacht und steuert die Abarbeitung eines Geschäftsvorfalls in einer Komponente aus fachlicher Sicht. Sie kann damit als Untereinheit des (globalen) WorkflowManagers betrachtet werden, der die komponentenübergreifende Steuerung eines Geschäftsvorfalls übernimmt. • Datenhaltung (Vorgangssteuerung) Hier werden die für die Vorgangssteuerung notwendigen Daten über legale Geschäftsvorfälle gespeichert. • Interaktionssteuerung Diese Subkomponente regelt und gewährleistet die korrekte Kommunikation zwischen der (nicht zur Komponente gehörenden) Benutzungsschnittstelle und dem Fachmodell. Sie sorgt dafür, daß Dialoge angezeigt und wieder entfernt werden, daß Fehler- und Statusmeldungen vom Fachmodell und der Vorgangssteuerung an die Benutzungsschnittstelle weitergegeben werden. • • • 4 Dialogsteuerung Die Dialogsteuerung übernimmt die externe Darstellung interner Formate und kommuniziert mit dem Benutzer. Da viele Unternehmen sich eine firmenspezifische Fassung der Bildschirmformate vorbehalten werden, ist dieser Anwendungsteil offen, d. h. anpaßbar. Fachmodell Das Fach- oder auch Domainmodell repräsentiert den eigentlichen Anwendungsbereich, die abstrakte fachliche Sicht der Anwendungswelt. Sie kapselt die Geschäftsobjekte einer Anwendungswelt (in diesem Fall einer Versicherung). Alle fachlichen Zusammenhänge spiegeln sich im Domainmodell wider, das für die eigene Konsistenz und für korrekte Beziehungen zu anderen Geschäftsobjekten sorgt. Datenhaltung (Fachmodell) Diese Subkomponente sorgt für eine eigene, lokale Speicherung der zu einem Geschäftsobjekt gehörenden Daten. Dadurch sind Anwendungskomponenten austauschbar, was einen Komponentenmarkt erst ermöglicht. Die Anwendungskomponente Data Warehouse Neben den operationalen Anwendungskomponenten wie Partner, Produkt usw. benötigt ein Versicherungsunternehmen noch ein Führungsinformationssystem (siehe dazu etwa [Vets95], BeSc93]). In diesem Zusammenhang wird oft der Begriff Data Warehouse genannt. Unter einem Data Warehouse wollen wir eine Datenbank verstehen, die in einem Unternehmen entscheidungsrelevante Daten, die aus unterschiedlichsten Quellen stammen können, für Management-Aufgaben bereitstellt. Damit gehört zum Begriff des Data Warehouse nicht nur die Definition und Speicherung der Daten, sondern die gesamte Thematik der Führungsinformationssysteme, also Datenübernahme, Aufbereitung und Auswertung (vgl. zu diesem Thema etwa [AnMu97], [ChGl98], [Gerk97], [MuBe96]. Wichtig dabei ist, daß die notwendigen Daten vorhanden und zugreifbar sind und Analyseprozesse zur Verfügung stehen, die die Daten in entscheidungsrelevante Informationen umwandeln und diese geeignet bereitstellen. Ein Data Warehouse läßt sich durch folgende Eigenschaften kennzeichnen [Inmo96]: • Subjektorientierung: Die (logische) Organisation und die Darstellung der Daten erfolgt aus der Sicht des Anwenders, d. h. seine Anforderungen bezüglich der Informationsinhalte bestimmen die Strukturen. • Verwaltung großer Datenmengen: Historische Daten werden zur Optimierung der Performance und zur Reduzierung des Speicherbedarfs bei operationalen Systemen entweder nicht vorgehalten oder ausgelagert. Ein erfolgreiches Data Warehouse muß solche Daten aber online verfügbar machen. Dabei stellt sich das Problem, daß eine Vorstrukturierung der Daten erforderlich ist, um bei Abfragen eine akzeptable Antwortzeit, die nicht im Stunden-Bereich liegt, gewährleisten zu können. Aus diesem Grund ist z. B. festzulegen, welche Daten redundant gespeichert werden sollen und welche jeweils bei Bedarf aus anderen berechnet werden können. • Summation und Aggregation: Um die operationalen Daten entscheidungsrelevant vorzuhalten, müssen diese bei ihrer Übernahme in ein Data Warehouse durch Summation und Aggregation verdichtet werden. So interessieren einen Manager sicherlich nicht die einzelnen Positionen jeder Bestellung eines Kunden; wohl aber die Quartals- und Jahressummen. Dadurch werden auch die Zugriffszeiten auf die gespeicherten Daten reduziert. • unterschiedliche Informationsquellen: Die Datenbasis für ein Data Warehouse kann aus verschiedenen Bereichen erstellt werden; so gehen in der Regel neben operationalen Produktionsdaten auch historische Daten und evtl. externe Daten (wie z. B. der DAX oder Daten aus Wirtschaftsdatenbanken) in die Datenbasis ein. In diesem Zusammenhang ist ein Abgleich der verschiedenen konzeptuellen Schemata erforderlich, um die Daten der Quellen-Systeme in die Strukturen des Data Warehouse überführen zu können. Die in einem Data Warehouse gespeicherten Daten kann man sich als mehrdimensionalen Würfel strukturiert denken. Die als Dimensionen bezeichneten Kanten des Würfels sind z. B. Zeit, Artikel, Kunden, Region. Eine Dimension kann in mehrere Dimensions- oder Aggregationsebenen aufgeteilt sein; bei Artikel sind das z. B. Artikel→Artikelgruppe→Sparte und bei der Dimension Zeit Tag→Woche→Monat→Jahr (die Aggregationsrichtung wird duch den Pfeil symbolisiert). Im allgemeinen ist davon auszugehen, daß Aggregation disjunkte Summation bedeutet. Der Wechsel von einer höheren zu einer niedrigeren Aggregationsebene einer Dimension (z. B. von Artikelgruppe zu Artikel) wird Drill-Down genannt; der umgekehrte Weg heißt Roll-up. Für jede Dimension und jede Aggregationsebene gibt es mehrere Ausprägungen. Das sind die einzelnen Zeitpunkte bzw. Zeiträume, die einzelnen Artikel, Artikelgruppen usw. Das Innere des mehrdimensionalen, von den Dimensionen aufgespannten Datenwürfels sind die zu den Dimensionsausprägungen gehörenden Fakten wie Umsatz, Absatz oder auch Return of Investment (= Gewinn / eingesetztes Kapital). Die Fakten sind also Funktionen der Dimensionen, wie z. B. 1.000.000 = Umsatz(XYZ GmbH, 1997). Jeder gespeicherte Wert ist von mehreren der Dimensionen abhängig; aber nicht notwendigerweise von allen. Im Rahmen der SEVERS-Komponentenarchitektur ist das Data Warehouse eine Anwendungskomponente unter anderen. Damit ist es optimal in das gesamte betriebliche Informationssystem eingebettet. Über die Komponentenschnittstelle erfolgt dann die Versorgung des Data Warehouse mit Daten der anderen (operationalen) Komponenten. Hierbei sind allerdings Transformationsprozesse in Form von Filterungen, Harmonisierungen, Verdichtungen und Anreicherungen notwendig [KeFi98]. Das Fachmodell realisiert den logischen Datenwürfel. Es abstrahiert dabei von der internen Speicherung der Daten, die in einer relationalen, objektrelationalen, objektorientierten oder in einer speziellen multidimensionalen Datenbank erfolgen kann. Anforderungen an ein RDBMS aus Sicht eines Data Warehouse beschreibt [Reut96]; Anmerkungen zur Eignung objektorientierter Datenbanksysteme für den Einsatz im DataWarehouse-Bereich finden sich in [Ohle96]; Architekturkonzepte multidimensionaler DataWarehouse-Lösungen sind bei [Gluc96] beschrieben. Fachmodell und Vorgangssteuerung zusammen stellen die Funktionalitäten für Auswertungen des Data Warehouse bereit, wie sie für Führungsinformationssysteme notwendig sind. Sie entsprechen damit der ROLAP-Engine von [Gluc96]. Für nähere Ausführungen zum Thema Online Analytical Processing bzw. Data Mining siehe z. B. [BeLi97], [Boll96], [HaBM97], [JaGK96], [Nakh98]. 5 Datenmodellierung bei einem Data Warehouse Wie jede Datenbank muß auch ein Data Warehouse semantisch und logisch modelliert werden. Zur semantischen Modellierung herkömmlicher OLTP-Anwendungen (Online-Transaction-Processing) und zum Einsatz von relationalen Datenbanksystemen, wodurch als logisches Datenmodell das Relationenmodell bestimmt ist, hat sich das Entity-Relationship-Modell durchgesetzt ([Hahn98], S. 105). Die Anforderungen an ein OLAP-System nach Codd et al. (vgl. dazu [JaGK96]) wie z. B. die multidimensionale konzeptionelle Sicht auf die Daten, Einheitlichkeit der einzelnen Dimensionen hinsichtlich Struktur und Funktionalität und intuitive Datenanalyse legen aber besondere Modellierungsmethoden wie das Star-Schema und das Snowflake-Schema nahe (vgl. dazu [Hahn98], S. 109 ff). Die grundlegende Idee des Star-Schemas ist es, die Daten eines Data Warehouse in die bereits erwähnten Kategorien Fakten und Dimensionen aufzuteilen und diese unterschiedlich zu modellieren und darzustellen. Die folgende Abbildung zeigt, wie ein Datenmodell nach dem Star-Schema aussehen könnte. Die Fakten-Tabelle wird als Kreis/Ellipse dargestellt, die Dimensionstabellen als Rechteck. Die Beziehungen zwischen Dimensionen und Fakten sind implizit immer vom Typ 1:N. Zeit Vertrieb Produktion Produkte Kunden Abb. 4: Beispiel für ein Star-Schema Bei der Umsetzung in eine relationale Datenbank beinhaltet die Fakten-Tabelle Produktion Fremdschlüssel für jede Dimension und die Zahlenwerte für z. B. Policenanzahl, Bewertungseinheit BWE, Provision. Zur Selektion von Daten aus der Faktentabelle muß ein Join über sämtliche beteiligten Dimensionstabellen gebildet und anschließend eine Restriktion auf die auszugebenden Attribute durchgeführt werden. Kunden KID Name ... 13 Otto 14 Eva ... Zeit ZID Monat ... 81 04/98 Produkte PID Name ... 5 HUK 6 LV Vertrieb VID Bdir ... 11 Hmb KID 13 14 14 ... ZID 81 81 81 PID 5 5 6 Produktion VID Policen 11 2 11 1 11 1 BWE 2.000 900 5.000 Provision 400 150 900 Abb. 5: Logisches Datenmodell eines Star-Schemas Mögliche verschiedene Aggregationsebenen einer Dimension, der sogenannte Drill-down-Baum, können durch eine 1:n-Beziehung einer Dimension auf sich selbst abgebildet werden, wie es z. B. von Stücklisten-Strukturen bekannt ist. Eine weitere, allerdings nicht-normalisierte Variante zur Realisierung von Dimensionshierarchien zeigt die folgende Abbildung. KID 13 14 15 16 17 18 ... Kunden Region PLZ 20 20099 20 20099 20 20098 20 20098 20 20099 20 - Name Otto Adam Eva - Abb. 6: Dimensionshierarchien 6 Generische Datenstrukturen bei einem Data Warehouse Die oben vorgestellte Umsetzung eines Star-Schemas in eine relationale Datenbank ist zwar intuitiv und kann auch durch geeignete Zugriffsverfahren wie z. B. Bitlisten oder die mehrdimensionale Indizes verwaltenden UB-Bäume [Baye96] unterstützt werden, ist aber schwerfällig bei Strukturänderungen beim zugrundeliegenden Datenwürfel. Das Hinzufügen neuer Dimensionen, neuer Aggregationsebenen innerhalb einer Dimension oder neuer Fakten ist immer mit Schemaänderungen verbunden. Der nachfolgend vorgeschlagene, generische Ansatz hat diese Nachteile nicht. Die Konzeption von generischen Strukturen, die mit den Anwendungsmodellen zu instantiieren sind, basiert auf dem Prinzip der Abstraktion [Loos96]. Das Domain-Modell „Produkt“ des SEVERS-Projekts erlaubt z. B. die Definition von Versicherungsprodukten durch Instanziierung von Objekten eines Metamodells statt Erzeugung von Datenbank-Tabellen. Hierauf wird im folgenden aber nicht weiter eingegangen. Statt dessen wird gezeigt, wie ein Data Warehouse in eine generische Struktur eingebettet werden kann. Eine erste Änderung besteht darin, die bei [Hahn98] als Kennzahlen bezeichneten Fakten anders zu betrachten. Es wird zwischen dem Kennzahlbegriff (Attribut) und dem Wert (Attributwert) unterschieden; z. B. Kennzahl: Umsatz, Wert: 1,2 Mio. DM). Die Kennzahlen stellen dann, auf einer höheren Abstraktionsebene, eine eigene Dimension dar. Die ursprünglichen Fakten sind nur noch die Kennzahlenwerte. Dadurch ergibt sich ein neues logisches Datenmodell für die Tabelle Produktion aus Abb. 5. KID 13 13 13 ... ZID 81 81 81 Produktion PID VID 5 11 5 11 5 11 Kennzahl Policen BWE Provision Wert 2 2.000 400 Abb. 7: Modifizierte Faktentabelle Bei dieser Lösung können ohne Datenstrukturänderungen neue Kennzahl(begriffe) hinzugefügt werden. Dimensionsänderungen haben aber immer noch Strukturänderungen zur Folge. Wenn auch dieses vermieden werden soll, kommt man zu noch einer anderen Lösung. Wenn man die ursprüngliche Faktentabelle „kippt“, erhält man je Dimensionswert ein eigenes Tupel. Die zu einem Fakt gehörenden Fremdschlüssel werden mit einem gemeinsamen künstlichen Schlüssel versehen. KEY 1 1 1 1 1 1 1 2 ... Produktion Dimension ID Kunden 13 Zeit 81 Produkte 5 Vertrieb 11 Kennzahl Policen Kennzahl BWE Kennzahl Provision ... ... ... Wert 2 2.000 400 Abb. 8: Gekippte Faktentabelle Eine weitere Änderung bei der generischen Umsetzung eines mehrdimensionalen Datenwürfels betrifft die Dimensionstabellen. Es gibt keine unabhängigen Dimensionstabellen mehr. Statt dessen existieren zwei Meta-Tabellen mit den Dimensionsbezeichnungen und mit den einzelnen Aggregationsebenen und eine Tabelle mit den Ausprägungen der einzelnen Dimensionen. Das Hinzufügen einer neuen Dimension oder einer neuen Ebene im Drill-down-Baum ist dann nicht mehr mit Schemaänderungen der Datenbank verbunden, sondern bewirkt nur das Einfügen neuer Tupel in die genannten Tabellen. Aggregationsebenen Dimensionen Dimensionswerte Faktenwerte Abb. 9: Generisches, semantisches Datenmodell eines mehrdimensionalen Datenwürfels Die Pfeile stellen jeweils 1:n-Beziehungen dar. Die 1:n-Beziehung von Dimensionsebenen auf sich selbst ermöglicht die Definition mehrerer Aggregationsebenen innerhalb einer Dimension, wie sie für das Roll-up bzw. Drill-down notwendig ist. Entsprechendes gilt für die Aggregation der Dimensionswerte. Die folgende Abbildung stellt die beispielhafte Umsetzung dieses Konzepts in eine relationale Datenbank dar. Dimension Dim-Id Name 1 Zeit 2 Produkt 3 Vertrieb 4 Kennzahl 5 Kunden Werte-Id 1 2 3 4 5 6 7 8 9 10 11 12 13 Ebene-Id 1 2 3 4 5 6 7 8 9 Aggregationsebene Name Dim-Id Jahr 1 Monat 1 Sparte 2 Produkt 2 Bdir 3 Agentur 3 Kennzahl 4 Region 5 PLZ 5 Dimensionswerte Ebene-Id OberWert-Id 2 5 3 5 2 5 1 3 7 7 7 6 3 8 9 11 ... ... Dim-Wert 04/98 HUK Hmb 05/98 1998 LV Policen BWE Provision Hmb-Mitte 20 20099 ... Ober-Id 1 3 5 8 Gruppe 1 1 1 1 1 1 1 2 2 2 3 ... Faktenwerte DimWerte-Id 1 2 3 12 7 8 9 5 6 9 ... Wert 3 2.900 550 200.000 - Abb. 10: Generisches, logisches Datenmodell eines mehrdimensionalen Datenwürfels Bedeutung und Inhalt der einzelnen Attribute können der folgenden Tabelle entnommen werden. Relation Dimension Aggregationsebene Attribut Dim-Id Name Ebene-Id Name Dim-Id Ober-Id Dimensionswerte Werte-Id Ebene-Id OberWert-Id Faktenwerte Dim-Wert Gruppe DimWerte-Id Wert Beschreibung Identifikationsschlüssel (Primary Key PK) Bezeichnung einer Dimension Identifikationsschlüssel (PK) Bezeichnung der Ebene Verweis auf die zugehörende Dimension (Foreign Key FK) Verweis auf die nächsthöhere Aggregationsebene (FK) Identifikationsschlüssel (PK) Verweis auf die zugehörende Aggregationsebene (FK) Verweis auf den nächsthöheren Dimensionswert, zu dem dieser Wert zu aggregieren ist Dimensionswert Künstlicher Schlüssel zum Zusammenfassen zusammengehörender Werte (PK) Verweis auf den zugehörenden Dimensionswert (PK) Faktenwert oder NULL Abb. 11: Erläuterung der Attribute des generischen Modells Vorteil dieses vorgeschlagenen Ansatzes ist, daß Strukturänderungen am mehrdimensionalen Datenwürfel – was nach [AnMu97] häufig vorkommen kann - nicht mit Strukturänderungen beim logischen Datenmodell des Data Warehouse verbunden sind. Allerdings bedingt dieser Ansatz eine größere Anzahl von Tupeln in der Faktentabelle und einen höheren Speicherplatzbedarf, was sich aber durch die hardware-technologische Entwicklung relativieren dürfte. Beispiel: Eine Faktentabelle nach Abb. 5 mit 10.000 Tupeln benötigt bei 2 Byte je Dimensions-Id und 4 Byte je Kennzahlenwert insges. 10.000*(4*2+3*4)=200.000 Byte. Eine entsprechende Tabelle nach Abb. 10 enthält 70.000 Tupel; 40.000 für die ursprünglichen Fremdschlüssel und 30.000 für die Faktenwerte. Unter der Annahme, daß eine Null-Eintrag 1 Byte benötigt, ergibt sich ein Speicherbedarf von 40.000*5+30.000*8=440.000 Byte. Systembedingte Verwaltungsinformationen wie z. B. Indizes wurden dabei nicht betrachtet. Die Offenheit des Ansatzes bedingt sicherlich eine höhere Komplexität. Genauere Aussagen darüber können allerdings zum jetzigen Projektstand noch nicht gemacht werden. Dazu sind umfangreiche Messungen mit größeren Datenbeständen im direkten Vergleich zur traditionellen Starschema-Implementierung notwendig. Die Tabelle „Aggregationsebene“ kann bei der Dimension Kennzahl benutzt werden, um eine Unterscheidung in Ist- bzw. Soll-Werte vorzunehmen. Problematisch ist die Behandlung verschiedener Datentypen bei den einzelnen Dimensionen bzw. Aggregationsebenen. Im ersten Ansatz kann bei der Umsetzung in ein RDBMS für das Attribut Dim-Wert als Typ CHAR() bzw. VARCHAR() gewählt werden. Bei einem rein numerischen Wertebereich der Dimensionswerte kann ein entsprechender Datentyp gewählt werden. 7 Aktueller Projektstand und Ausblick Im Wintersemester 1997/98 wurde für die Komponentenarchitektur ein experimenteller SmalltalkPrototyp realisiert, der die Anwendungskomponenten Partner, Vertrag, Wagnis und Produkt enthielt. Gleichzeitig wurde von einer anderen Studentengruppe ein Prototyp eines Data Warehouse entwickelt und mit ca. 25.000 Fakten gefüllt; allerdings ohne Berücksichtigung des generischen Ansatzes. Im Sommersemester wurde damit begonnen, ein generisches Data Warehouse zu implementieren, das sich an der vorgestellten Komponentenarchitektur orientiert. Die Entwicklung erfolgt mit Visual Age for Java, einer JDBC-Schnittstelle und dem RDBMS Sybase. Der vorliegende Artikel stellt einen Vorschlag und eine Diskussionsgrundlage für eine Komponentenarchitektur und ein generisches Data Warehouse als eine der Anwendungskomponenten dar. Die vorgestellten Konzepte für eine Data Warehouse gelten aber auch für andere Systemarchitekturen. Allerdings sind noch viele offene Fragen zu klären. So stehen z. B. Performance-Untersuchungen noch aus; auch die Frage eines automatischen Übergangs vom Star-Schema zum generischen Datenmodell ist noch zu untersuchen. Wünschenswert wäre letztendlich natürlich auch, die vorgeschlagenen Konzepte in einer praktischen, nicht-akademischen Systemumgebung und mit größeren Datenbeständen testen zu können. Danksagung An der Entwicklung der Anwendungsarchitektur und des generischen Data Warehouse haben im SEVERS-Projekt viele Studierende des Studiengangs Softwaretechnik an der FH Hamburg sehr engagiert mitgearbeitet. An dieser Stelle herzlichen Dank. Mein besonderer Dank gilt meinem Kollegen Herrn Prof. Dr. Jörg Raasch für seine Arbeiten zum Thema Komponentenarchitektur. Dank auch an die Gutachter für ihre hilfreichen Anmerkungen. Literaturverzeichnis [AnMu97] [Baye96] [BeLi97] [BeSc93] [Boll96] [ChGl98] [Farn95] [GDV96] [GeRa96] [Gerk97] [Gluc96] [HaBM97] [Hahn98] [Inmo96] [JaGK96] [KeFi98] [KnHe95] [Loos96] Anahory, Sam; Murray, Dennis: Data Warehouse, Bonn - Reading 1997 Bayer, Rudolf: The Universal B-Tree for multidimensional Indexing, TU München I9637, München 1996 Berry, Michael; Linoff, Gordon: Data Mining Techniques, New York 1997 Behme, Wolfgang; Schimmelpfeng, Katja (Hrsg.): Führungsinformationssysteme, Wiesbaden 1993 Bollinger, Toni: Assoziationsregeln, Analyse eines Data Mining Verfahrens, in: Informatik Spektrum 19 (1996) 5, S. 257 ff. Chamoni, Peter; Gluchowski, Peter (Hrsg.): Analytische Informationssysteme, Berlin - Heidelberg - New York 1998 Farny, Dieter: Versicherungsbetriebslehre, Karlsruhe 1995 Gesamtverband der Deutschen Versicherungswirtschaft (Hrsg.): VAA – Die Anwendungsarchitektur der Versicherungswirtschaft, 2. Auflage, Bonn 1996 Gerken, Wolfgang; Raasch, Jörg: Anwendungsarchitektur der Versicherungswirtschaft (VAA) im Lichte der Objektorientierung, in: Versicherungswirtschaft 51 (1996) 8, S. 492 ff. Gerken, Wolfgang: Data Warehouse – Datengrab oder Informationspool? in: Versicherungswirtschaft 52 (1997) 8, S. 506 ff. Gluchowski, Peter: Architekturkonzepte multidimensionaler Data-WarehouseLösungen, in: [MuBe96], S. 229 ff. Hagedorn, Jürgen; Bissantz, Nicolas; Mertens, Peter: Data Mining: Stand der Forschung und Entwicklung, in: Wirtschaftsinformatik 39 (1997) 6, S. 601 ff. Hahne, Michael: Logische Datenmodellierung für das Data Warehouse, in: [ChGl98], S. 103 ff. Inmon, William: Building the Data Warehouse, New York 1996 Jahnke, Bernd; Groffmann, Hans-Dieter; Kruppa, Stephan: On-Line Analytical Processing (OLAP), in: Wirtschaftsinformatik 38 (1996) 3, S. 321 ff. Kemper, Hans-Georg; Finger, Ralf: Datentransformation im Data Warehouse, in: [ChGl98], S. 61 ff. Knolmeyer, Gerhard; Herbst, Holger: Ansätze zur Klassifikation von Geschäftsregeln, in: Wirtschaftsinformatik 37 (1995) 2, S. 149 ff. Loos, Peter: Geschäftsprozeßadäquate Informationssystemadaption durch generische Strukturen, in: G. Vossen, J. Becker (Hrsg.), Geschäftsprozeßmodellierung und Workflow-Management, Bonn 1996, S. 162 ff. [MuBe96] [Nakh98] [Ohle96] [Raas98] [Reut96] [Vets95] Muksch, Harry; Behme, Wolfgang: Das Data-Warehouse-Konzept, Architektur – Datenmodelle – Anwendungen, Wiesbaden 1996 Nakhaeizadeh, Gholamreza (Hrsg.): Data Mining, Heidelberg 1998 Ohlendorf, Thomas: Objektorientierte Datenbanksysteme für den Einsatz im DataWarehouse-Konzept, in: [MuBe96], S. 205 ff. Raasch, Jörg: Eine Komponentenarchitektur für Versicherungsanwendungen, in: Versicherungswirtschaft 53 (1998) 8, S. 514 ff. Reuter, Andreas: Das müssen Datenbanken im Data Warehouse leisten, in: Datenbank Fokus (1996) 2, S. 28 ff. Vetschera, Ralf: Informationssysteme in der Unternehmensführung, Berlin Heidelberg - New York 1995