XCube: Konzepte für eine XML-basierte Beschreibung von Datenwürfeln zur Realisierung eines föderativen Data-Warehouse-Netzwerkes Gunnar Harde Oldenburger Forschungs- und Entwicklungsinstitut für Informatik-Werkzeuge und Systeme (OFFIS), Escherweg 2, D-26121 Oldenburg, Germany, [email protected], WWW home page: http://www.OFFIS.DE Zusammenfassung Das World Wide Web wurde bisher kaum als Datenquelle für Data-WarehouseSysteme verwendet. In diesem Beitrag1 wird ein Konzept vorgestellt, das die Potentiale des WWW und des Data Warehouses durch die Einführung standardisierter, im Web abrufbarer Datenwürfel - sogenannte Web Cubes“ - zusammenführt. Die Einführung von Web Cubes ermöglicht den Aufbau eines föderativen ” Data-Warehouse-Netzwerkes. Ein solches Netzwerk erlaubt den Austausch von ausgewählten Daten zwischen Data-Warehouse-Systemen, die Online-Analyse von Webdaten mit Hilfe von OLAP-Technologie und die Integration von Webdaten in ein Data Warehouse. Die geschäftlichen Anforderungen werden durch Anwendungsfälle und diese unterstützende Konzepte beschrieben. Die technischen Anforderungen werden daraus abgeleitet und die Verwendung von XML als Metaformat zur Beschreibung von Web Cubes diskutiert. Schließlich wird der derzeitige Entwicklungsstand von XCube beschrieben. XCube stellt eine Sammlung von XML-basierten Formaten dar, die sowohl Web Cubes selbst als auch Dokumente zur Bearbeitung von Web Cubes spezifizieren. Als Basis für die Modellierung von XCube wurde die Multidimensional Modeling Language (MML) verwendet. 1 Einleitung und Motivation Data-Warehouse-Systeme haben in den letzten Jahren eine immer größere Verbreitung erlangt. In vielen Unternehmen und anderen Institutionen sind sie inzwischen zum zentralen Bestandteil der technologischen Unterstützung von Management-Entscheidungen geworden. Die Ursprungsdaten für ein Data Warehouse stammen in der Regel aus den operativen Systemen eines Unternehmens. Das World Wide Web (WWW) hingegen wurde bisher kaum als Datenquelle genutzt. Ein Grund dafür ist die unzureichende Struktur der im WWW abrufbaren Daten: Informationen liegen dort in Form von HTML-Dateien ohne semantische Beschreibung oder aber als XMLDateien basierend auf unterschiedlichen Schemata vor; Informationen können ebenso in Bildern unterschiedlicher Formate, Animationen oder sogar Geräuschen enthalten sein. Zudem unterscheidet sich die Semantik der Daten im WWW im allgemeinen von der Semantik, wie sie im Data Warehouse verwendet wird. Meint z. B. der Ausdruck Jahr“ Kalenderjahr“ oder Geschäftsjahr“? ” ” ” Wenn es sich um ein Geschäftsjahr handelt, welche Geschäftsjahresvariante ist damit gemeint? Solange es keine Referenz auf eine eindeutige Semantik gibt, ist das Laden der WWW-Daten in ein Date Warehouse äußerst problematisch. Aus diesen Gründen hätte eine Standardisierung des Datenformates von Daten, die von einem Webserver zur Integration in ein Data-Warehouse-System herunterladbar sind, mehrere Vorteile: • Der ETL-Prozess würde sich stark vereinfachen und entsprechende ETL-Werkzeuge wären leichter zu realisieren. Anwender könnten sich somit auf die geschäftlichen Anforderungen konzentrieren; technische Details zur Datenintegration würden in den Hintergrund treten. 1 Eingereicht und akzeptiert für den 5. Workshop Föderierte Datenbanken“ (FDBS 2001), Berlin, 11.-12.10.2001. ” XCube: Konzepte für ein Data-Warehouse-Netzwerk • Der Standard könnte an die Anforderungen an ein Data Warehouse angepasst werden. Der Parsing- und Transformationsaufwand würde sich verringern und somit die Performance verbessern. • Der Standard könnte sicher stellen, dass semantisch gleiche Daten aus unterschiedlichen Quellen vergleichbar sind. • Der Standard könnte andere Formate wie z. B. zur Zahlungsabwicklung oder zur redaktionellen Qualitätssicherung durch ein Zertifizierungssystem mit integrieren. • Der Standard könnte zur Vernetzung von unterschiedlichen Data-Warehouse-Sytemen verwendet werden. Durch die Verwendung eines solchen Standards für einen Data-Warehouse-optimierten Datenaustausch wären eine Reihe von Anwendungen denkbar: Beispiel 1. Der Betreiber eines elektronischen Marktplatzes bietet neben der Plattform für den Austausch von Wirtschaftsgütern und Dienstleistungen auch eine Plattform zur Analyse von unternehmensübergreifenden Daten an. Hierzu werden die Daten der einzelnen Data-Warehouse-Systeme der Marktteilnehmer auch den anderen Teilnehmern in aggregierter Form zur Verfügung gestellt. Einerseits wird dabei sichergestellt, dass die Unternehmen keine sensiblen Daten nach außen geben, andererseits so viel Informationen zur Verfügung stellen, dass eine Optimierung des Supply-ChainManagements ermöglicht wird. Beispiel 2. Nach der Fusion zweier Unternehmen soll das Topmanagement die Möglichkeit haben, auf die bereits existierenden Data-Warehouse-Systeme beider Unternehmen zuzugreifen und die dort abgelegten Daten zu analysieren. Dazu wird ein weiteres Data-Warehouse-System aufgebaut, das mit den beiden vorhandenen Systemen vernetzt ist. Beispiel 3. Ein Unternehmen beabsichtigt seine Produktpalette zu erweitern und möchte vorher das Potential des neuen Marktsegments näher untersuchen. Dazu werden im Internet Marktdaten sowohl zum bisherigen als auch zum neuen Markt eingekauft, die bisherigen Unternehmensdaten mit diesen Markteinschätzungen abgeglichen und schließlich eine Prognose für das neue Marktsegment erstellt. Beispiel 4. Eine medizinische Forschungseinrichtung möchte die Ausbreitung von Epedemien untersuchen und entschließt sich, ein Data-Warehouse-System als Basis für die Datenbestände zu verwenden. Bei der Analyse werden diese Daten durch Daten über Bevölkerungszahlen, Klimabedingungen, Einkommensverhältnisse, Statistiken über die ärztliche Versorgung in den einzelnen Regionen etc. ergänzt. Diese Daten werden über das Internet von öffentlichen Stellen und anderen Forschungseinrichtungen bereitgestellt. Im Abschnitt 2 werden verschiedene Anwendungsfälle und unterstützende Konzepte für ein föderatives Data-Warehouse-Netzwerk vorgestellt. Dieser Abschnitt spezifiziert die Anforderungen an ein föderatives Data-Warehouse-Netzwerk aus geschäftlicher Sicht. Im Abschnitt 3 werden die technischen Anforderungen aus den zuvor in Abschnitt 2 beschriebenen Anwendungsfällen hergeleitet. Insbesondere wird die Verwendung von XML als Metaformat zur Spezifizierung von Web Cubes diskutiert. Der derzeitige Entwicklungsstand von XCube, einer XML-Spezifikation von Web Cubes, wird in Abschnitt 4 vorgestellt. 2 Anwendungsfälle und unterstützende Konzepte In diesem Abschnitt werden mehrere Anwendungsfälle sowie Konzepte, die eine praktikable Nutzung dieser Anwendungsfälle unterstützen, vorgestellt. Diese Liste stellt eine Art Standbild der derzeitigen Arbeiten dar; Erweiterungen und Detaillierungen sind in Zukunft möglich. An dieser Stelle sei der Begriff Web Cube“ eingeführt: ” c Gunnar Harde 2001 ° 2 XCube: Konzepte für ein Data-Warehouse-Netzwerk Definition 1. Ein Web Cube ist ein multidimensionaler Datenwürfel, der in einem standardisierten Format vorliegt und über das WWW zugreifbar und herunterladbar ist. Ein Web Cube beinhaltet sowohl die Schemabeschreibung als auch die Stamm- und Bewegungsdaten des Datenwürfels. Stammdaten definieren die Klassifikationsknoten des Datenwürfels und die Einheiten der Kenngrößen, während Bewegungsdaten aus Kenngrößenwerte bestehen, die den Dimensionen zugewiesen sind. Die Schemabeschreibung stellt einen Teil der Metadaten des Data Warehouses dar (siehe auch [11]). 2.1 Anwendungsfall Download“: Laden und Integrieren von Web Cubes ” Ein Web Cube soll von einem Webserver geladen und in ein bestehendes Data Warehouse integriert werden (siehe Abb. 1). web server 1. schema 2. master data data warehouse initial regular 3. transaction data Abbildung 1. Anwendungsfall Download“. ” Zunächst werden Schemabschreibung und Stammdaten heruntergeladen und in das MetadatenRepository bzw. in Stammdatentabellen abgelegt. Danach werden die Bewegungsdaten heruntergeladen und in das Data Warehouse gespeichert. Dieses Vorgehen ist unproblematisch, solange der geladene Web Cube nicht mit bereits existierenden Datenwürfeln des Data Warehouses zusammengeführt oder verglichen werden soll. Andernfalls müssen die Entitäten des Web Cubes mit denen des vorhandenen Datenwürfels gematched werden oder die semantischen Beschreibungen der Entitäten beider Würfel können über einen eindeutigen Bezeichner wie in Abschnitt 2.5 beschrieben referenziert werden. Das Herunterladen und Integrieren des gesamten Web Cubes einschließlich der Bewegungsdaten gewährleistet eine gute Performance beim Analysieren der Daten. Nachteilig hingegen ist, dass die Daten des Web Cubes redundant vorliegen und somit bei der Datenanalyse nicht mehr aktuell sein müssen. Zudem kann beim initialen Herunterladen aller Daten die Netzauslastung für bestimmte Anwendungen unakzeptabel hoch sein. Um eine einfache Integration des Web Cubes in ein Data Warehouse zu unterstützen, sollte der Web Cube eine multidimensionale Datenstruktur aufweisen, da das Datenmodel des Data Warehouses zumindest aus konzeptueller Sicht2 ebenfalls multidimensional ist. Somit ist eine neuerliche Datenmodellierung nicht erforderlich. Von einem logischen bzw. physischen Betrachtungsstandpunkt aus gibt es ein breites Spektrum an Speichermöglichkeiten in einem Data-Warehouse-System: Logisch kann das Datenmodell z. B. relational (ROLAP3 ) oder multidimensional (MOLAP4 ) sein; für relationale Datenbanken kann z. B. ein Snowflake-, Stern- oder erweitertes Sternschema verwendet werden (siehe [12]). Physisch können verschiedenste DBMS-Technologien eingesetzt werden. 2 3 4 Die Unterscheidung zwischen konzeptueller, logischer und physischer Betrachtung von Datenmodellen im Data Warehouse ist u. a. beschrieben in [2]. ROLAP = Relational OnLine Analytical Processing. MOLAP = Multidimensional OnLine Analytical Processing. c Gunnar Harde 2001 ° 3 XCube: Konzepte für ein Data-Warehouse-Netzwerk 2.2 Anwendungsfall Query“: Online-Analyse von Web Cubes ” Anstatt den gesamten Web Cube einschließlich aller Bewegungsdaten herunterzuladen, sollte es auch möglich sein, Web Cubes online zu analysieren. In diesem Fall würden lediglich die Schemabeschreibung und die Stammdaten vom Webserver heruntergeladen werden, um so sicherzustellen, dass die gewünschten Datenanfragen an den Web Cube effektiv generiert werden können (siehe Abb. 2). web server 1. schema 2. master data data warehouse 3. query 4. transaction data Abbildung 2. Anwendungsfall Query“. ” Auch hier ist der kritische Punkt das Anpassen der Entitäten wie bereits in Abschnitt 2.1 beschrieben (siehe auch Abschnitt 2.5). Das Ergebnis einer erfolgreichen Anfrage ist eine Untermenge der Bewegungsdaten, die auf dem Webserver gespeichert sind; das Datenformat der Anfrage ist identisch mit dem der gespeicherten Bewegungsdaten. Haben sich die Stamm- und die entsprechenden Bewegungsdaten, die auf dem Webserver abgelegt sind, nach dem initialen Herunterladen der Schemabeschreibung geändert, so kann der Konflikt, der aus der Abfrage nicht mehr gültiger Daten resultiert, abgefangen und ein Update der clientseitig gespeicherten Stammdaten angestoßen werden. Durch die Generierung von Anfragen und dem Laden nur der gerade benötigten Daten wird sowohl die Netzlast als auch die Datenredundanz verringert und die Daten sind jederzeit aktuell. Demgegenüber kann eine Datenanalyse nur online erfolgen, womit sich die Performance verschlechtert. Insbesondere wenn komplexe Analyseverfahren wie Data Mining zum Einsatz kommen sollen, wäre die Download-Variante ggf. vorzuziehen. Die obige Beschreibung bezieht sich primär auf den Fall, bei dem die extrahierten Daten direkt von einem Analyse-Tool (z. B. Reporting-, OLAP- oder Data Mining-Tools) ausgewertet werden. Wenn das Anfrageergebnis in einem Data Warehouse gespeichert werden soll, so ist das Vorgehen äquivalent zu dem des Anwendungsfalls Download“, wobei jedoch nur die angefragten Bewe” gungsdaten heruntergeladen und integriert werden. Der Anwendungsfall Query“ kann somit als ” Verallgemeinerung der Download-Variante betrachtet werden, bei dem sich das Datenvolumen skalieren lässt. 2.3 Anwendungsfall Generation“: Konvertieren von Daten in einen formatierten Web ” Cube Der Anwendungsfall Generation“ konvertiert Daten, die in einem beliebigen Format und in einem ” beliebigen Speichermedium vorliegen, in einen Web Cube. Der generierte Web Cube kann dann auf einem Webserver abgelegt und von dort heruntergeladen (siehe Abschnitt 2.1) und/oder analysiert (siehe Abschnitt 2.2) werden. Die zu konvertierenden Daten können in jeder Art von Datenbank oder Datei gespeichert sein; ebenso kann ein beliebiges Datenschema zugrunde liegen. Eine Konvertierung solcher Daten in eine Repräsentation, die auf einem multidimensionalen Datenmodell beruht, erfordert dasselbe aufwendige Vorgehen für die Modellierung und Integration wie bei einer Datenmigration in ein konventionelles Data Warehouse. c Gunnar Harde 2001 ° 4 XCube: Konzepte für ein Data-Warehouse-Netzwerk Ein besonderer Fall ist die Konvertierung von Daten, die bereits in einem Data Warehouse gespeichert sind. Aus konzeptueller Sicht liegen die Daten bereits in einem multidimensionalen Datenschema vor; eine erneute Modellierung ist somit nicht erforderlich. Jedoch muss das Konvertierungs-Tool an das logische Datenschema und das DBMS des Data Warehouses angepasst werden. Oftmals dürfte es erforderlich sein, dass nicht alle Daten, die in einem Datenwürfel des DataWarehouse-Systems gespeichert sind, sondern nur eine Teilmenge von einem Webserver als Web Cube abrufbar sein sollen. Eine praktikable Lösung wäre die Erstellung eines Data Marts, der genau die selektierten Daten enthält (siehe Abb. 3). 2. schema 3. master data data mart 4. transaction data web server 1. selection data warehouse Abbildung 3. Beispiel des Anwendungsfalls Generation“. ” Eine Alternative zum Übertragen der Bewegungsdaten vom Data Warehouse zum Webserver wäre die Generierung von Anfragen (z. B. in SQL, falls die Daten in einer relationalen Datenbank gespeichert sind), die die angeforderten Bewegungsdaten direkt vom Date Warehouse oder Data Mart lesen. 2.4 Konzept Naming“: Identifizieren und Benennen von Web-Cube-Entitäten ” Jede Entität eines Web Cubes (wie Fakten, Dimensionen oder der Web Cube selbst) erfordert eine textuelle Beschreibung, damit sie von einem (menschlichen) Anwender interpretiert werden kann. Im allgemeinen unterscheiden sich diese Beschreibungen für dieselbe Entität in den verschiedenen Sprachen, Branchen und Institutionen (so könnten z. B. die Begriffe Einkommen“ und Einkünfte“ ” ” in unterschiedlichen Unternehmen dasselbe meinen); oder ein Begriff hat unterschiedliche Bedeutungen (z. B. kann Jahr“ Geschäftsjahr“ oder Kalenderjahr“ bedeuten). ” ” ” Für eine erfolgreiche Integration der Daten eines Web Cubes in ein existierendes Data Warehouse kann weder die textuelle Beschreibung noch der systemabhängige technische Name der WebCube-Entitäten verwendet werden. Statt dessen muss eine öffentliche Bezeichnung eingeführt werden. Dies würde ein aufwendiges Abgleichen der Entitäten bei der Integration überflüssig machen. Durch das Setzen von Attributen für jede textuelle Beschreibung, in denen Sprache, Branche und Institution definiert sind, lässt sich eine automatische Einspielung der clientseitig verwendeten Texte realisieren, falls eine Ressource5 für das Anpassen referenziert werden kann (siehe Abschnitt 2.5). Diese Attributierung und die Einführung eines öffentlichen Bezeichners erlauben zudem eine effektive Suche von Web-Cube-Entitäten. 2.5 Konzept Reference“: Referenzieren und Verknüpfen von Web-Cube-Entitäten ” Ein entwickeltes System von Bezeichnern für Web-Cube-Entitäten würde das Referenzieren und Verknüpfen dieser Entitäten ermöglichen. Der Datenaustausch zwischen einem Server und einem 5 Eine Ressource ist definiert als ein bestimmtes Informationsobjekt im Internet. c Gunnar Harde 2001 ° 5 XCube: Konzepte für ein Data-Warehouse-Netzwerk Client könnte somit zu einem föderativen System, bei dem die Entitäten eines Web Cubes auf mehreren Ressourcen verteilt sind, erweitert werden. Eine solche Föderation würde das essentielle Konzept für ein Data-Warehouse-Netzwerk bilden; die oben beschriebenen Anwendungsfälle könnten durch weitere Funktionen erweitert werden. Insbesondere eine Institution (wie z. B. eine Organisation für Standardisierung, die Holding mehrerer Tochterunternehmen oder der Anbieter von Data-Warehouse- oder ERP-Sytemen) könnte über eine URI vorkonfigurierte Web-Cube-Entitäten für Schemabeschreibung und/oder Stammdaten zur Verfügung stellen, die von anderen Web Cubes referenziert werden könnten. 2.6 Anwendungsfall Initiation“: Aufbau eines Web Warehouses ” Ein standardisiertes System für öffentliche Bezeichner von Web-Cube-Entitäten könnte auch für den Aufbau von konventionellen Data-Warehouse-Systemen verwendet werden. Die Schemabeschreibungen werden aus dem Internet heruntergeladen und in das Data Warehouse integriert. Ebenso könnten Stammdaten aus dem Internet bezogen und ggf. angepasst, oder aber aus dem eigenen operativen System geladen werden. Die dazugehörigen Bewegungsdaten werden schließlich aus operativen Systemen geladen (siehe Abb. 4). web server 1. schema 2. master data data warehouse 2. master data 3. transaction data operative system Abbildung 4. Anwendungsfall Initiation“. ” Ein solches Vorgehen beim Aufbau eines Data Warehouses hätte zwei wichtige Vorteile: 1. Entwickler könnten beim Aufbau eines Data Warehouses auf bereits existierendes Wissen im WWW zurückgreifen. So könnten z. B. gerade ERP-Anbieter Web-Cube-Schemata über das WWW anbieten, die den Geschäftsinhalten ihrer ERP-Systeme entsprechen würden. 2. Die Datenwürfel des Data Warehouses würden dem Web-Cube-Standard entsprechen. Später heruntergeladene Web Cubes könnten leicht in das Data Warehouse integriert werden. Ebenso leicht wäre die Generierung von Web Cubes aus dem Data Warehouse heraus. 2.7 Weitere Anwendungsfälle Weitere Anwendungsfälle könnten die oben beschriebenen Anwendungsfälle sinnvoll ergänzen. Denkbar wären Zahlungssysteme für das Herunterladen und/oder Abonnieren von Web Cubes; redaktionelle Zertifizierungssysteme, die die Richtigkeit der Daten bewerten; Zugriffsverwaltungssysteme; oder die Spezifikation der Policy eines Web-Cubes-Anbieters. 3 Technische Anforderungen an ein Web-Cube-Format und XML Im vorhergehenden Abschnitt 2 wurden die konzeptionellen Anforderungen an ein föderatives DataWarehouse-Netzwerk beschrieben. Die technischen Anforderungen an das Web-Cube-Format lassen sich daraus ableiten: 1. Das Format soll ein multidimensionales Datenschema unterstützen können. c Gunnar Harde 2001 ° 6 XCube: Konzepte für ein Data-Warehouse-Netzwerk 2. Die konzeptionelle Unterscheidung zwischen Schemabeschreibung, Stamm- und Bewegungsdaten soll technisch unterstützt werden. 3. Das Format für diese Entitäten soll via Internet übertragen werden können. 4. Das Format soll aufgrund des Referenz-Konzeptes Linking-Technologien unterstützen. 5. Das Format soll eine einfache Erweiterung um andere Konzepte, wie in Abschnitt 2.7 aufgelistet, ermöglichen. 6. Ein einfacher und flexibler Konvertierungsmechanismus zur Verarbeitung der Web-Cube-Daten durch einen Anwender und zur visuellen Darstellung dieser Daten soll bereitgestellt werden6 . 7. Das Format soll sich einfach aus bestehende Datenbanken extrahieren bzw. in eine Datenbank ablegen lassen. 8. Es soll eine Online-Analyse der Web Cubes möglich sein, d. h. OLAP-Funktionalität soll unterstützt werden. Aufgrund der Anforderungen eins bis sechs bietet sich die Extensible Markup Language (XML) als Metaformat an (siehe [5]): XML ist für das Internet entwickelt worden; die XLink- und XPointerKonzepte erlauben eine Verknüpfung von Ressourcen (siehe [8] und [7]); XML erlaubt die Kombination verschiedener Schemata; und in Kombination mit einer Stylesheet-Sprache wie XSL kann das Format in modernen Web-Browsern dargestellt bzw. einfach in HTML oder ein anderes Format konvertiert werden (siehe [1]). Um das Einbinden von Web Cubes in eine HTML-Seite zu ermöglichen ohne das HTML-Layout im Browser zu verändern, sollte jedoch sichergestellt werden, dass die Elemente keine Texte als Kindknoten besitzen. Die Erfüllung der ersten beiden Anforderungen ist durch XML ohnehin gewährleistet. Die Anbindungsmöglichkeit von XML an eine Datenbank hängt von dem Datenmodell der Datenbank ab. Verschiedene Ansätze dazu sind in [4] beschrieben. Da es sich bei einer XML-Repräsentation des Web Cubes um ein datenzentrisches (engl. data-centric) Dokument handelt7 und sowohl das Schema der Datenbank als auch das Schema des XML-Dokuments bekannt sind, wäre das Datenmapping modellgetrieben. Um die achte Anforderung - das Analysieren der Web Cubes online - zu erfüllen, sind mehrere Ansätze möglich: Erstens, für die Anfragen werden Queries in einem Format generiert, die keine OLAP-spezifischen Anfragekonstrukte erlauben. Dafür würden mehrere XML-Anfragesprachen wie z. B. XQuery (siehe [6]), die jedoch derzeit alle nicht den Status einer Recommendation haben, in Frage kommen. Zweitens, ein Format zur Definition von OLAP-spezifischen Queries auf Basis von XML wird definiert. Diese Query wird dann mit Hilfe von XSLT z. B. in XQuery konvertiert oder aber, drittens, direkt vom Webserver interpretiert und verarbeitet. Hierzu sind weitere Untersuchungen notwendig. 4 XCube 4.1 XCube-Konzeption XCube stellt eine Sammlung verschiedener XML-basierter Datenformate zur Umsetzung der in den Abschnitten 2 und 3 beschriebenen Anforderungen dar. Im vorliegenden Abschnitt wird der derzeitige Stand der Entwicklung von XCube erläutert; die Spezifizierung ist zum jetzigen Zeitpunkt noch nicht abgeschlossen. Die aktuelle Version ist 0.3. XCube umfasst die XML-Formate XCubeSchema zur Beschreibung des multidimensionalen Schemas, XCubeMaster zur Beschreibung der Stammdaten sowie XCubeData zur Beschreibung der Bewegungsdaten. 6 7 Diese Anforderung ist notwendig, wenn z. B. Informationen über einen Web Cube in einem Web-Browser angezeigt werden sollen. Die textuelle Beschreibungen der Web-Cube-Entitäten sind dokumentzentrisch (engl. document-centric) und können gemischten Inhalt (engl. mixed content) enthalten. Dennoch bleibt der generelle datenzentrische Charakter des gesamten XML-Dokumentes erhalten, da jeder Textbaustein opak (engl. opaquely) in die relationale Datenbank gespeichert werden kann. c Gunnar Harde 2001 ° 7 XCube: Konzepte für ein Data-Warehouse-Netzwerk Als Modell zur Beschreibung des multidimensionalen Schemas durch XCubeSchema liegt die Multidimensional Modeling Language (MML) zugrunde, die ausführlich in [10] beschrieben ist. Weiterhin gehört zu XCube das XML-Format XCubeText, das die textuellen Beschreibungen der Entitäten von XCubeSchema und XCubeMaster enthält. Durch die Auslagerung der Texte in XCubeText soll sichergestellt werden, dass die Daten der Web Cubes zwischen unterschiedlichen Sprachen, Branchen, Institutionen und einzelnen Anwendern ausgetauscht werden können, ohne dass die Anwender auf die Verwendung der eigenen Sprache und Sprachgewohnheiten verzichten müssen. Geplant ist die Entwicklung weiterer XCube-Formate wie XCubeQuery zur Generierung von XCubeData-Dateien, die die angefragten Daten als Teilmenge des Web Cubes enthalten, und XCubeAccess zur (client- und/oder serverseitigen) Beschreibung der Zugriffsrechte und des Monitorings des Web Cubes. 4.2 XCube-Basis Der Aufbau eines einfachen Web Cubes ist schematisch in Abb. 5 skizziert. (a) <multidimensionalSchema> (MML: MML-Diagramm) <cubeSchema> * (MML: Fact-Class) (MML: Fact-Attribute) <fact> (MML: Additivity) <defaultAdditivity> * * <aggregation> (MML: Dimension) <dimension> <classSchema> * (MML: Dimensional-Class) <classLevel> * <rollUp> (MML: Roll-Up) * <attribute> (MML: Dimensional-Attribute) (b) (c) <cubeData> <masterData> <cube> <units> * * <entry> <classification> * <level> * <cell> * <dimension> * <fact> <node> * <attribute> * <rollUp> Abbildung 5. XCube-Aufbau zur Beschreibung eines einfachen Web Cubes. Die Beschreibung erfolgt in den XMLFormaten XCubeSchema (a), XCubeMaster (b) und XCubeData (c). Attribute der XML-Elemente sind in dieser und den folgenden Abbildungen nicht enthalten. Die Sterne an den Kanten zur Darstellung einer Eltern-Kind-Beziehung zeigen eine 1:n-Kardinalität an. Neben der XCubeSchema-Struktur sind in Klammern die Namen der entsprechenden Schemaobjekte angegeben, wie sie in der MML verwendet werden. c Gunnar Harde 2001 ° 8 XCube: Konzepte für ein Data-Warehouse-Netzwerk Die Schemabeschreibung enthält das Würfelschema mit den dazugehörigen Kenngrößen sowie das Klassifikationsschema mit den Klassifikationsstufen und deren Roll-Up-Beziehungen und Attribute. Die Zuordnung des Würfelschemas zu den basisgranularen Klassifikationsstufen erfolgt über das 〈dimension〉-Tag. In XCubeMaster sind die verwendeten Einheiten und Währungen in den 〈entry〉-Tags definiert. Die Klassifikationsknoten und Instanzen der dimensionalen Attribute werden in 〈node〉 bzw. 〈attribute〉 festgelegt. Schließlich werden die Würfelzellen mit den Werten für die Kenngrößen und den basisgranularen Klassifikationsknoten der dazugehörigen Dimensionen in XCubeData definiert.8 4.3 XCube-Erweiterungen Multi-Cube In XCube können mehrere Datenwürfel und Beziehungen zwischen diesen Datenwürfeln spezifiziert werden (siehe Beispiel in Abb. 6). So kann ein Datenwürfel aus weiteren Datenwürfeln bestehen, ein Würfelschema kann Eigenschaften von einem anderen Würfelschema erben und ein Würfelschema kann abstrakt sein. (a) <multidimensionalSchema> <multiCubeSchema> <cubeSchema id=„sale“> <isComposedBy cubeSchema=„soldProduct“/> <cubeSchema id=„soldProduct“ inheritedFrom=„product“> <cubeSchema id=„product“ abstract=„true“> (b) <cubeData> <cube id=„sale“> * <cell> <cube id=„soldProduct“> * <cell> Abbildung 6. Beispiel für XCubeSchema (a) und XCubeData (b) mit einem Multi-Cube. Ein sale“-Würfel enthält als ” Unterwürfel den soldProduct“-Würfel, der wiederum aus dem abstrakten product“-Würfel ererbte Kenngrößen und ” ” Beziehungen besitzt. Vererbte und abstrakte Klassifikationsstufen Ebenso wie Würfelschemata können Klassifikationsstufen vererbt und/oder abstrakt sein. Dies ermöglicht z. B. das Hinzufügen von Attributen, die lediglich für eine Teilmenge der zur Klassifikationsstufe gehörigen Knoten relevant ist. 8 Die Zuordnung der Kenngrößen zu den Knoten ohne Angabe der Dimensionen wäre nicht immer eindeutig, da derselbe Knoten mehreren Dimensionen zugewiesen sein könnte. c Gunnar Harde 2001 ° 9 XCube: Konzepte für ein Data-Warehouse-Netzwerk Datentypen und Einheiten Zur Festlegung der Datentypen für die Kenngrößen, den Klassifikationsknoten und Attributen werden die Datentypen, wie sie in XML-Schema spezifiziert sind (siehe [3]), verwendet. Zudem können beliebige Datentypen in XCubeSchema durch die Verwendung von XML-Schema-〈simpleType〉 definiert werden (siehe Beispiel in Abb. 7). Die Definition der bzgl. eines Einheitentyps erlaubten Einheiten bzw. Währungen erfolgt ebenfalls mit Hilfe des 〈simpleType〉-Elements von XML-Schema. <multidimensionalSchema> <cubeSchema> <fact dataType=„decimalF2“ unitType=„currency“> <dataTypes> <dataType name=„decimalF2“ xmlns:xs=„http://www.w3.org/2001/XMLSchema“> <xs:restriction base=„xs:decimal“> <xs:fractionDigits value=„2“/> <unitTypes> <unitType name=„currency“ xmlns:xs=„http://www.w3.org/2001/XMLSchema“> <xs:restriction base=„xs:string“> <xs:enumeration value=„EUR“/> <xs:enumeration value=„USD“/> Abbildung 7. Beispiel einer XCubeSchema-Datei, in dem eine Währungskenngröße mit zwei Nachkommastellen deklariert wird. Additivität Für jede Kenngröße kann in XCubeSchema angegeben werden, welche Aggregationsoperatoren bzgl. jeder einzelnen Dimension und ggf. Komposition erlaubt sind. Da oftmals die Additivität für alle oder die meisten Dimensionen (und Kompositionen) identisch ist, wird eine dimensions- bzw. kompositionsunabhängige Additivität definiert, die dann von den Angaben in 〈dimAdditivity〉 bzw. 〈compAdditivity〉 überschrieben werden kann (siehe Abb. 8(a)). Abgeleitete Kenngrößen XCubeSchema erlaubt die Definition von Kenngrößen, deren Werte aus denen anderer Kenngrößen berechnet werden (siehe Abb. 8(b)). Die Werte solcher Kenngrößen sind in XCubeData nicht enthalten. Fehlende Datensätze In XCubeSchema kann festgelegt werden, wie fehlende Datensätze zu interpretieren sind, indem ein missingData-Attribute des 〈fact〉-Tags entsprechend gesetzt wird. Erlaubt sind die Werte nonEvent“ ” für nicht eingetretene Ereignisse (Default-Wert), eventNotApplicable“ für nicht mögliche Ereig” nisse und eventNotKnown“ für nicht erfasste Ereignisse. Die in XCubeSchema festgelegten Werte ” können in XCubeData überschrieben werden. c Gunnar Harde 2001 ° 10 XCube: Konzepte für ein Data-Warehouse-Netzwerk (a) (b) <fact> <fact> <defaultAdditivity> * <computation> * <parameter> <dimAdditivity> <defaultAdditivity> * <compAdditivity> Abbildung 8. (a) Die Default-Additivität einer Kenngröße kann für einzelne Dimensionen bzw. Kompositionen in XCubeSchema überschrieben werden. (b) Die Berechnungsvorschrift zur Ermittlung von Kenngrößenwerte kann in XCubeSchema definiert werden. Schlüsselvergabe Um die Eindeutigkeit von Klassifikationsknoten zu gewährleisten, müssen ggf. die Schlüssel von Knoten höherer Stufe mit berücksichtigt werden. So könnte z. B. die Artikelnummer nur eindeutig innerhalb einer Produktkategorie sein. Um die globale Eindeutigkeit zu gewährleisten, müssen die zusätzlich benötigten Schlüssel durch das 〈addKey〉-Tag angegeben werden (siehe Abb. 9). (a) (b) <classLevel> (c) <node> <dimension> * * * <addKey> * <rollUp> <addKey> <addKey> Abbildung 9. Weitere benötigte Schlüssel werden in XCubeSchema deklariert (a) und müssen dann in XCubeMaster (b) und XCubeData (c) entsprechend referenziert werden. Verteiltes Roll-Up Um Daten aufzuaggregieren, die mehr als einem Knoten der höheren Klassifikationsstufe zuzuordnen sind, gibt es neben dem 〈rollUp〉-Element das 〈sharedRollUp〉-Element (siehe Abb. 10). Die Gewichtungen werden für jeden Knoten im 〈to〉-Element durch das weight-Attribute festgelegt; bezogen auf die Klassifikationsstufe muss die Summe aller Gewichtungen 1.0 ergeben. (a) (b) <classLevel> * <sharedRollUp> <node> * <sharedRollUp> * <to node weigth> Abbildung 10. Verteilte Roll-Up-Beziehungen werden analog zu normalen Roll-Up-Beziehungen in XCubeSchema deklariert (a) und in XCubeMaster mit den entsprechenden Gewichtungen definiert (b). c Gunnar Harde 2001 ° 11 XCube: Konzepte für ein Data-Warehouse-Netzwerk Zeitdimension Die Zeitdimension erfordert eine gesonderte Betrachtung. Während Klassifikationsknoten anderer Dimensionen explizit definiert und mit Knoten der nächsthöheren Klassifikationsstufe explizit verknüpft sind, erfolgt dies für die Zeitdimension algorithmisch. Wird für die basisgranulare Klassifikationsstufe des 〈dimension〉-Elements in XCubeSchema z. B. der XML-Schema-Datentyp mit date“ deklariert, so sind die Klassifikationsstufen Monat“ ” ” und Jahr“ und deren Roll-Up-Beziehungen implizit mit deklariert; ein explizites Deklarieren und ” Definieren dieser Stufen in XCubeSchema bzw. XCubeMaster ist nicht erforderlich. Komplizierter ist die Definition von zeitlichen Klassifikationsstufen, deren Datentyp nicht in XML-Schema vorgegeben sind. Solche Stufen müssen explizit in XCubeSchema deklariert und deren Knoten und Roll-Up-Beziehungen mit Hilfe von Berechnungsvorschriften in XCubeMaster beschrieben werden (siehe Abb. 11). <classification> * <timeLevel> * <rollUp> * <nodeRange> <computation> Abbildung 11. Die Definition einer Roll-Up-Beziehung in XCubeMaster erfolgt bei zeitlichen Klassifikationsstufen im Gegensatz zu anderen Stufen über die Zuweisung von Knotenbereichen und der Angabe einer Berechnungsvorschrift. Klassifikationsänderungen Um das Hinzufügen, Umhängen und Löschen von Klassifikationsknoten zu ermöglichen, können für das 〈rollUp〉- und 〈sharedRollUp〉-Tag Werte der Attribute validSince und validUntil gesetzt werden. Weitere geplante Erweiterungen Neben den hier genannten Erweiterungen ist die Entwicklung eines Linking-Konzeptes von XCubeEntitäten zur Unterstützung einer föderativen Datenhaltung einzelner XCube-Dateien vorgesehen und geplant. Die Entwicklung von XCubeText und deren Verknüpfung zu XCubeSchema und XCubeMaster ist derzeit noch nicht abgeschlossen. 5 Verwandte Arbeiten Die Beschäftigung mit föderativen Data-Warehouse-Netzwerken und der dafür benötigten Beschreibung von Datenwürfel in XML, wie es in XCube geschieht, stellt nach dem Wissensstand des Autors einen bisher noch kaum untersuchten Forschungsgegenstand dar. Eine ähnliche Zielsetzung wie XCube hat lediglich das Format MetaCube-X (siehe [13]). MetaCube-X unterscheidet sich jedoch von der hier vorgestellten XCube-Formulierung durch folgende Punkte: • Bewegungsdaten werden nicht beschrieben; • es erfolgt keine Trennung zwischen Schemabeschreibung und Stammdaten; c Gunnar Harde 2001 ° 12 XCube: Konzepte für ein Data-Warehouse-Netzwerk • es erfolgt keine Trennung zwischen technischer und textueller Beschreibung; • es gibt Tags zur Spezifizierung von Klassifikationshierarchien, die Klassifikationsstufen enthalten, wodurch die Wiederverwertbarkeit dieser Stufen erschwert wird; • die in Abschnitt 4.3 vorgestellten Erweiterungen werden nicht unterstützt. Das Thema föderatives Data-Warehouse-Netzwerk steht zudem in Beziehung zu zwei aktuellen Forschungsgebieten im Data-Warehouse-Kontext: Um die Nutzung des Internets als Datenquelle für Data-Warehouse-Systeme geht es auch beim sogenannten Web Farming“, das ausführlich in [9] beschrieben ist. Im Gegensatz zum hier vor” gestellten Ansatz sollen beim Web Farming sämtliche Daten des WWW als Daten für ein Data Warehouse genutzt werden können, d. h. das Ziel ist die Integrationsmöglichkeit sämtlicher im WWW existierender Formate. Die Vorteile eines standardisierten Formates für WWW-Daten, die in ein Data Warehouse geladen werden sollen, gegenüber dem Web-Farming-Ansatz sind bereits in Abschnitt 1 dargelegt. Eine Standardisierung der Data-Warehouse-Daten ist auch Ziel des Common Warehouse Metamodel (CWM) der Object Management Group (OMG) (siehe [14]). Basierend auf der UMLNotation wird ein standardisiertes Modell zur Beschreibung von Data-Warehouse-Metadaten definiert. Stamm- und Bewegungsdaten werden nicht mit berücksichtigt. Hingegen gilt der CWMStandard für alle Metadaten, die für ein Data Warehouse relevant sein können, also z. B. auch für Metadaten zur Beschreibung der Hard- und Software, des relationalen Datenmodells, der Transformationsvorschriften und der Datenextraktion. Das CWM beschreibt das Metamodell auf logischer Ebene. Zudem lässt sich das CWM um systemspezifische Module aus physischer Modellsicht ergänzen. Der Fokus von CWM ist somit eine systemnahe Beschreibung des Metamodells; der standardisierte Austausch von Datenwürfel ist hingegen nicht Gegenstand des CWMs. 6 Zusammenfassung In diesem Beitrag wurden mehrere Anwendungsfälle zur Nutzung eines föderativen DataWarehouse-Netzwerkes sowie unterstützende Konzepte beschrieben. Dabei wurde der Begriff Web ” Cube“ eingeführt und definiert. Die geschäftlichen Anforderungen an ein föderatives Data-Warehouse-Netzwerk wurden erläutert und als Basis für die Herleitung der technischen Anforderungen herangezogen. Dabei zeigte sich, dass sich XML als Metaformat zur Spezifizierung von Web Cubes und weiteren Dokumenten zur Bearbeitung von Web Cubes sehr gut eignet. Schließlich wurde der derzeitige Entwicklungsstand von XCube, einer Realisierung der oben genannten Anforderungen in XML, vorgestellt. Literatur 1. Adler, S., Berglund, A., Caruso, J., Deach, S., Grosso, P., Gutentag, E., Milowski, A., Parnell, S., Richman, J., Zilles, S.: Extensible Stylesheet Language (XSL) Version 1.0. http://www.w3.org/TR/2000/CR-xsl-20001121/. Rev. 2000-11-21. 2. Bauer, A., Günzel, H. (Hrsg.): Data Warehouse Systeme: Architektur, Entwicklung, Anwendung. (2001) 3. Biron, P. V., Malhotra, A.: XML Schema Part 2: Datatypes. http://www.w3.org/xmlschema-2/. Rev. 2001-05-02. 4. Bourret, R.: XML Database Products. http://www.rpbourret.com/xml/XMLAndDatabases.htm. Rev. 2000-11-29. 5. Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E.: Extensible Markup Language (XML) 1.0 (Second Edition). http://www.w3.org/TR/2000/REC-xml-20001006. Rev. 2000-10-06. 6. Chamberlin, D., Florescu, D., Robie, J., Siméon, J., Stefanescu, M.: XQuery: A Query Language for XML. http://www.w3.org/TR/2001/WD-xquery-20010215. Rev. 2001-02-15. 7. DeRose, S., Maler, E., Daniel, R.: XML Pointer Language (XPointer) Version 1.0. http://www.w3.org/TR/2001/WD-xptr-20010108. Rev. 2001-01-08. c Gunnar Harde 2001 ° 13 XCube: Konzepte für ein Data-Warehouse-Netzwerk 8. DeRose, S., Maler, E., Orchard, D.: XML Linking Language (XLink) Version 1.0. http://www.w3.org/TR/2000/PR-xlink-20001220. Rev. 2000-12-20. 9. Hackathorn, R. D.: Web Farming for the Data Warehouse. Morgan Kaufmann Publishers (1999) 10. Harren, A.: Konzeptionelles Data Warehouse-Design. Diplomarbeit, Uni Oldenburg (Mai 1999). 11. Kimball, R., Reeves, L., Ross, M., Thornthwaite, W.: The Data Warehouse Lifecycle Toolkit: Expert Methods for Designing, Developing, and Deploying Data Warehouses. Wiley (1998) 12. Kurz, A.: Data Warehousing Enabling Technology. (1999) 13. Nguyen, T. B., Tjoa, A M., Mangisengi, O.: MetaCube-X: An XML Metadata Foundation for Interoperability Search among Web Warehouses. Proceedings of the International Workshop on Design and Management of Data Warehouses (DMDW’2001). 14. Object Management Group (OMG): Data Warehousing, CWM And MOF Resource Page. http://www.omg.org/technology/cwm/index.htm. Rev. 2001-07-10. 15. Scott, W. A.: Mapping objects to relational databases: What you need to know and why. http://www-106.ibm.com/developerworks/library/mapping-to-rdb/. Rev. 2000-08-01. c Gunnar Harde 2001 ° 14