Universität Hannover Institut für Informatik Datenbanken und Informationssysteme Prof. Dr. U. Lipeck Diplomarbeit Integration verteilter, heterogener Informationsquellen zur Realisierung eines föderierten Zeitschriften-Informationssystems Verfasser Betreuer Prüfer Zweitprüfer : Christian Borgmann : Prof. Dr. U. Lipeck : Prof. Dr. U. Lipeck : Dr. Brüggemann Datum : 11. Juli 2002 Aufgabenstellung Institut für Informatik Abteilung Datenbanken und Informationssysteme Prof. Dr. U. Lipeck Lange Laube 22 30159 Hannover Tel.: +49 511 762 4950 Diplomarbeit von Herrn cand. mat. Christian Borgmann Matrikel-Nr. : 1572883 Integration verteilter, heterogener Informationsquellen zur Realisierung eines föderierten Zeitschriften-Informationssystems Im Rahmen dieser Arbeit soll ein auf den Konzepten föderierter Datenbanken basierendes Informationssystem entwickelt werden, das Fachinformationen zu Zeitschriftenartikeln ausgewählter Publikationsorgane bereitstellt. Ziel ist es, eine Schnittstelle zu schaffen, die eine einheitliche und transparente Suche nach diesen Informationen in unterschiedlichen Quellen ermöglicht. Eine weitere Anforderung an das System besteht darin, zu jeder Fachinformation eine Zugriffsmöglichkeit auf den referenzierten Artikel, soweit bekannt, anzugeben. Das Informationssystem soll verschiedene Datenquellen, wie beispielsweise relationale Datenbanken oder auch Web-Sites, integrieren. Hierfür sind unterschiedliche Transformations- und Integrationsprozesse erforderlich. Diese sollen ausführlich erläutert und Lösungsansätze für die in diesem Zusammenhang auftretenden Probleme präsentiert werden. Bestätigung Hiermit versichere ich, daß ich diese Arbeit selbständig verfaßt und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. Christian Borgmann (Hannover, d. 11. Juli 2002) Zusammenfassung Mit der zunehmenden Bedeutung der Informationstechnologie ist die Zahl der Publikationen in diesem Bereich stark gestiegen. Zu den bereits existierenden Arbeiten kommen täglich neue Bücher, Fachzeitschriften, Tagungsberichte und andere Dokumente hinzu. Die Informationen zu all diesen Veröffentlichungen werden jedoch nicht zentral verwaltet, sondern sind in vielen unterschiedlichen Quellen gespeichert. Dies können Verlagsdatenbanken, Bibliothekskataloge, aber auch interne Datenbestände institutioneller bzw. privater Einrichtungen sein. Die Suche nach Informationen zu bestimmten Publikationen kann deshalb viel Arbeit und Zeit erfordern, da oft mehrere Informationsquellen genutzt werden müssen, um die gewünschten Daten zu erhalten. Die Distribution der Datenbestände beinhaltet aber noch weitere Probleme. So liegen die Daten nicht nur verteilt, sondern auch in heterogener Form vor, d.h. ihre Darstellung variiert in Abhängigkeit der jeweiligen Informationsquelle. Zusätzlich treten bei der Betrachtung verschiedener Datenbestände vielfach Redundanzen auf, die zu einer Unübersichtlichkeit der gewonnenen Informationsmenge führen können. Im Rahmen dieser Arbeit wird ein Ansatz zur Integration verteilter, heterogener Informationsquellen unter dem Gesichtspunkt der Realisierung eines föderierten Zeitschriften-Informationssystems vorgestellt. Die Integration erfolgt dabei in Anlehnung an die theoretischen Konzepte föderierter Datenbanksysteme und soll dem Benutzer eine einheitliche Schnittstelle auf die gewünschten Daten zur Verfügung stellen. Hierfür sind verschiedene Arbeitsschritte, basierend auf der 5-Ebenen-Schema-Architektur für föderierte Datenbanksysteme, erforderlich. Da man in der Regel keine Zugriffsberechtigung für fremde Datenbanken besitzt, müssen die benötigten Informationen zum Teil aus relevanten Web-Sites gewonnen werden. Diese Sites werden von den Verlagen bzw. verschiedenen BibliotheksServern zur Verfügung gestellt. Da diese Daten meistens nur in semi-strukturierter Form vorliegen, müssen spezielle, möglichst adaptive Transformationsprozesse in die bestehende Architektur integriert werden. Innerhalb des Zeitschriften-Informationssystems wurde für diese Aufgabe ein Web-Site Datenbanksystem entwickelt, das auf den Konzepten hierarchischer Datenbanken basiert. Für die Extraktion von Informationen aus den jeweiligen Web-Sites wird ein zu diesem Zweck entworfenes Data Retrieval System genutzt, das mit Hilfe einfach zu generierender Regeln Web-Dokumente nach relevanten Informationen durchsucht. Um die unterschiedlichen Datenquellen in eine einheitliche Darstellung zu transformieren, kommen sogenannte Wrapper zum Einsatz, während die eigentliche Integration durch ein als Mediator bezeichnetes Software-Modul realisiert wird. Insgesamt ensteht somit ein Integrationsmodell, das sowohl traditionelle Datenbanksysteme, als auch Inhalte semi-strukturierter Web-Sites zusammenfaßt. Die praktische Umsetzung der vorgestellten theoretischen Aspekte erfolgt in der Implementierung einer virtuellen Zeitschriftendatenbank (d.h., die Datenbank liegt nicht permanent vor, sondern wird temporär generiert). Dabei wird die Menge der verschiedenen Publikationen auf ausgewählte Fachzeitschriften eingeschränkt. Die Implementierung erfolgt in der Programmiersprache JAVA, wobei der Zugriff auf die Datenbanken mit Hilfe der JDBC-API realisiert wird. Inhaltsverzeichnis 1 Einleitung 7 2 Grundlagen 10 2.1 Datenbanksysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.1 Datenmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.2 Datenunabhängigkeit und 3-Ebenen-Architektur . . . . . . . 12 2.1.3 Datenbank-Managementsysteme . . . . . . . . . . . . . . . . 13 2.1.4 Implementierung von Datenbanksystemen . . . . . . . . . . . 14 2.2 Das hierarchische Datenmodell . . . . . . . . . . . . . . . . . . . . . 15 2.2.1 Strukturierungskonzepte und Datenbank-Schema . . . . . . . 16 2.2.2 Schema-Diagramm und Datenbank-Zustand . . . . . . . . . . 17 2.2.3 Hierarchische Sequenz . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Wrapper und Mediatoren . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.1 Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.2 Mediatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Standard Generalized Markup Language . . . . . . . . . . . . . . . . 21 2.4.1 Markup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.2 Aufbau von SGML-Dokumenten . . . . . . . . . . . . . . . . 23 2.4.2.1 SGML-Deklaration . . . . . . . . . . . . . . . . . . . 24 2.4.2.2 Dokument Type Definition (DTD) . . . . . . . . . . 24 2.4.2.3 Dokumentinstanz . . . . . . . . . . . . . . . . . . . 25 3 Föderierte Datenbanksysteme 26 3.1 Klassifizierung von Datenbanksystemen . . . . . . . . . . . . . . . . 26 3.1.1 Unitäre Datenbanksysteme . . . . . . . . . . . . . . . . . . . 27 3.1.2 Multidatenbanksysteme . . . . . . . . . . . . . . . . . . . . . 28 3.2 Die 5-Ebenen-Schema-Architektur . . . . . . . . . . . . . . . . . . . 30 4 INHALTSVERZEICHNIS 4 Web-Sites als Datenbanken 4.1 Datenbankentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 5 32 33 Informationsstrukturanalyse . . . . . . . . . . . . . . . . . . . 33 4.1.1.1 Allgemeine Struktur von Web-Sites . . . . . . . . . 33 4.1.1.2 Spezifische Strukturen von Web-Sites . . . . . . . . 35 4.1.2 Web-Site Schema . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.3 Entwicklung des konzeptionellen Schemas . . . . . . . . . . . 39 4.1.4 Aufgaben des Web-Site Managementsystems . . . . . . . . . 40 4.2 Data Retrieval System . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2.1 Filtersystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.1.1 Reduktion des Dokuments . . . . . . . . . . . . . . 42 4.2.1.2 Gruppierung der Elemente . . . . . . . . . . . . . . 43 Extraktionssystem . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2.2.1 Extraktion relevanter Informationen . . . . . . . . . 48 4.2.2.2 Generierung einer XML-Datei . . . . . . . . . . . . 49 4.3 Implementierung des Web-Site DBS . . . . . . . . . . . . . . . . . . 52 4.2.2 4.3.1 Beispieldatenbank . . . . . . . . . . . . . . . . . . . . . . . . 52 4.3.2 Die 3-Schichten-Architektur des Web-Site DBS . . . . . . . . 53 4.3.3 Die Anfragesprache WS/QL . . . . . . . . . . . . . . . . . . . 54 4.3.3.1 Arbeitsumgebung . . . . . . . . . . . . . . . . . . . 54 4.3.3.2 Die GET Operationen . . . . . . . . . . . . . . . . . 55 4.3.3.3 Das Kommando GET PATH . . . . . . . . . . . . . . 56 4.3.3.4 Das Kommando GET NEXT WITHIN PARENT . . . . 57 4.3.4 XML-orientierte Schnittstelle . . . . . . . . . . . . . . . . . . 57 4.3.5 Pufferschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . 58 4.3.6 Interne Satzschnittstelle . . . . . . . . . . . . . . . . . . . . . 59 4.3.7 Satzorientierte Schnittstelle . . . . . . . . . . . . . . . . . . . 60 5 Entwicklung des ZIS 5.1 Beschreibung der Komponentensysteme . . . . . . . . . . . . . . . . 62 63 5.1.1 ACM Digital Library . . . . . . . . . . . . . . . . . . . . . . . 63 5.1.2 DBLP Bibliographie-Server . . . . . . . . . . . . . . . . . . . 64 5.1.3 DBIS Literaturdatenbank . . . . . . . . . . . . . . . . . . . . 65 5.2 Entwicklung des Architekturmodells . . . . . . . . . . . . . . . . . . 68 5.2.1 Allgemeines Modell föderierter DBSe . . . . . . . . . . . . . . 68 5.2.2 Architekturmodell des ZIS . . . . . . . . . . . . . . . . . . . . 69 6 INHALTSVERZEICHNIS 5.3 Datenbank-Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Integrationsansatz . . . . . . . . . . . . . . . . . . . . . . . . 70 71 5.3.1.1 Identifikation durch den Dokumenttitel . . . . . . . 72 5.3.1.2 Identifikation durch den Publikationskontext . . . . 72 5.3.1.3 Identifikation durch das Tupel (Titel, Autoren) . . . 72 5.3.1.4 Identifikation durch den Benutzer . . . . . . . . . . 73 5.3.1.5 Identifikation von Artikeln innerhalb des ZIS . . . . 73 5.3.1.6 Integrationsansatz des ZIS . . . . . . . . . . . . . . 74 Entwicklung der Komponenten-/Exportschemata . . . . . . . 74 5.3.2.1 ACM Digital Library . . . . . . . . . . . . . . . . . 75 5.3.2.2 DBIS Literaturdatenbank . . . . . . . . . . . . . . . 76 5.3.2.3 DBLP Bibliographie-Server . . . . . . . . . . . . . . 78 Entwicklung des föderierten Schemas . . . . . . . . . . . . . 79 5.4 Anfragebearbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3.2 5.3.3 5.4.1 Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . . . . 81 5.4.2 Dynamische Modellerweiterung . . . . . . . . . . . . . . . . . 82 5.4.3 Aufbau und Funktionsweise der ZIS-Wrapper . . . . . . . . . 83 5.4.3.1 Wrapper für relationale Komponenten . . . . . . . . 84 5.4.3.2 Wrapper für Web-Site Datenbanksysteme . . . . . . 84 Aufbau und Funktionsweise des ZIS-Mediators . . . . . . . . 88 5.4.4.1 Anfrageübersetzer . . . . . . . . . . . . . . . . . . . 88 5.4.4.2 Ergebniskonverter . . . . . . . . . . . . . . . . . . . 90 5.4.4 5.4.5 Arbeitsdatenbank . . . . . . . . . . . . . . . . . . . . . . . . 90 5.5 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6 Zusammenfassung und Ausblick 93 Web-Site Schemata digitaler Bibliotheken 95 Abbildungsverzeichnis 100 Literaturverzeichnis 101 Kapitel 1 Einleitung In der heutigen Zeit werden immer mehr Informationen jeglicher Art in elektronischer Form gespeichert und zur Verfügung gestellt. Dieser Trend basiert einerseits auf der kontinuierlichen Weiterentwicklung physikalischer Speichermedien, die trotz steigender Kapazität und verbesserter Performance zu ständig niedrigeren Preisen erhältlich sind. Andererseits stellt die Informatik immer ausgefeiltere Konzepte zur logischen Strukturierung von Informationen zur Verfügung. In erster Linie ist hierbei die Entwicklung von Datenbanksystemen mit den vielfältigen Möglichkeiten zur Datenmanipulation bzw. -definition zu erwähnen. Neue Technologien, wie beispielsweise Multimedia-Datenbanken oder auch geographische Informationssysteme (GIS), ergänzen dabei den Bereich der traditionellen Datenbanksysteme, die in den meisten Fällen eine relationale oder hierarchische Struktur aufweisen und auch heute noch den überwiegenden Anteil der im Einsatz befindlichen Systeme darstellen. Neben der ständig wachsenden Informationsmenge hat sich auch die Verfügbarkeit der Daten verändert. War vor einigen Jahren ausschließlich der lokale Zugriff auf die Informationsbestände möglich, können heutzutage die an einem beliebigen Ort gespeicherten Daten weltweit genutzt werden. Verantwortlich hierfür sind die Entwicklungen in den Bereichen Telekommunikation und Netzwerk-Technologie. In diesem Zusammenhang ist an erster Stelle die wachsende Popularität des Internet und insbesondere des World Wide Web zu nennen. Diese Technologien ermöglichen den weltweiten Austausch von Informationen auf eine relativ einfache Art und Weise. Einhergehend mit dem stetigen Wachstum und der globalen Verfügbarkeit von Informationen ist allerdings auch der Aufwand der Informationsbeschaffung erheblich größer geworden (Information Overflow ). Dies läßt sich sowohl durch die Distribution als auch durch die Heterogenität der zur Verfügung stehenden Informationen begründen. Der Begriff der Distribution verweist dabei auf die Tatsache, daß die benötigten Informationen nicht zentral gespeichert, sondern in unterschiedlichen Datenquellen vorliegen. Bei der Informationsbeschaffung müssen diese Datenquellen also zuerst einmal lokalisiert und daraufhin separat in den Beschaffungsvorgang mit einbezogen werden. Die Heterogenität bezieht sich einerseits auf die unterschiedliche Gestalt der Datenquellen, bei denen es sich um verschiedene Datenbanksysteme, Web-Sites, ftp-Server oder ähnliches handeln kann. Andererseits können auch die Informationen selbst in heterogener Form vorliegen. So kann die Darstellung von Daten beispielsweise zwischen verschiedenen Kulturräumen variieren. Dabei können sowohl linguistische Unterschiede als auch Differenzen bei der Formatierung von Datums- und Zeitangaben bis hin zu den verschiedenen Währungseinheiten auftreten. 7 8 KAPITEL 1. EINLEITUNG Daneben existieren noch weitere Schwierigkeiten bei der Informationsbeschaffung. Zum einen kann es bei der Einbeziehung verschiedener Datenquellen, die ähnliche Informationen anbieten, zu redundanten Ergebnissen kommen, die bei der Auswertung entsprechend zu berücksichtigen sind. Zum anderen wird die Bewertung der Qualität einer Datenquelle hinsichtlich der benötigten Informationen in dem immer undurchdringlicher werdenden Geflecht von Informationsquellen zunehmend schwieriger. Logische Informationsstrukturierung Globale Vernetzung Internet, WAN, etc. Datenbanksysteme, Informationssysteme, XML, etc. Physikalische Informationsspeicherung Lokale Vernetzung LAN, Intranet, etc. Massenspeicher (Magnetplatten, CD−ROM, etc.) Stetig wachsende Informationsmenge Bessere Verfügbarkeit der Informationen Wachsender Aufwand der Informationsgewinnung Distribution der Informationen WWW, Datebanksysteme, etc. Heterogenität Sprache, Formatierung, etc. Redundanzen Qualität Informationsgehalt der Daten Aktualität Suchmaschinen Internetportale Föderierte DBSe Data Warehouses Abbildung 1.1: Allgemeine Problematik der Informationsbeschaffung Zur Lösung der dargestellten Probleme bei der Informationsbeschaffung sind in den letzten Jahren viele Verfahren und Konzepte entwickelt worden. Im Bereich des World Wide Web sind in diesem Zusammenhang beispielsweise lokale Suchdienste, Meta-Suchmaschinen oder Internetportale zu erwähnen, die die Informationsbeschaffung bzw. Navigation innerhalb des Web erleichtern sollen. Daneben existieren verschiedene Ansätze zur Integration verteilter, heterogener Datenbestände, mit dem Ziel, eine transparente Sicht auf die zusammengefaßten Informationsquellen zu schaffen. Beispielhaft sind in diesem Zusammenhang Data Warehouses und insbesondere föderierte Datenbanksysteme zu nennen. In Abb. 1.1 sind die dargestellten Probleme und Lösungsansätze zusammengefaßt. Im Rahmen dieser Arbeit soll nun basierend auf den Konzepten föderierter Datenbanksysteme gezeigt werden, wie die Integration unterschiedlicher Datenquellen realisiert werden kann. Zu diesem Zweck erfolgt die Entwicklung eines ZeitschriftenInformationssystems, das dem Benutzer Informationen zu Fachzeitschriften aus dem KAPITEL 1. EINLEITUNG 9 Bereich der Informatik zur Verfügung stellt. Das System umfaßt dabei verschiedene Datenquellen, wie z.B. traditionelle Datenbanksysteme oder auch Web-Sites. In diesem Zusammenhang werden die bei der Integration auftretenden Probleme ausführlich erläutert und geeignete Lösungsansätze vorgestellt. Im Anschluß an die Einleitung erfolgt im zweiten Kapitel zunächst eine kurze Einführung in die Themengebiete Datenbanksysteme, SGML sowie Wrapper und Mediatoren. Dadurch soll das Verständnis der im weiteren Verlauf der Arbeit vorgestellten Konzepte insofern erleichtert werden, als daß sich auch der mit den jeweiligen Thematiken nur wenig vertraute Leser mit der Materie auseinandersetzen kann. Das dritte Kapitel befaßt sich mit den theoretischen Konzepten föderierter Datenbanksysteme. Neben einer allgemeinen Klassifizierung existierender Datenbanksysteme werden die in diesem Zusammenhang grundlegenden Begriffe erläutert und ein Architekturmodell für die Föderation vorgestellt. Auf die Aspekte des föderierten Datenbankentwurfs wird hierbei nicht näher eingegangen. Diese werden, soweit benötigt, ausführlich bei der Entwicklung des Zeitschriften-Informationssystems erläutert. Anschließend wird im vierten Kapitel eine Möglichkeit vorgestellt, WebSites in ein föderiertes Datenbanksystem zu integrieren. Dabei richtet sich das Hauptaugenmerk zum einen auf die Gewinnung relevanter Daten aus einzelnen Web-Pages und zum anderen auf die Verwaltung der dabei extrahierten Daten, d.h. insbesondere die Möglichkeiten der Anfragebearbeitung. Die Entwicklung des Zeitschriften-Informationssystems wird dann im fünften Kapitel ausführlich beschrieben. Dabei werden zunächst die beteiligten Datenquellen vorgestellt und ein geeignetes Architekturmodell entworfen. Basierend auf diesem Modell erfolgt der Datenbankentwurf, wobei Lösungsansätze für in diesem Zusammenhang auftretende Probleme und ein als Integrationsansatz bezeichnetes Konzept vorgestellt werden. Schließlich wird die Anfragebearbeitung innerhalb des Systems beschrieben. Das letzte Kapitel faßt die in der Arbeit vorgestellten Konzepte kurz zusammen und stellt mögliche Weiterentwicklungen des Systems vor. Kapitel 2 Grundlagen Bei der Beschreibung der im Rahmen dieser Arbeit entwickelten Systeme wird auf verschiedene Themengebiete der Informatik Bezug genommen. In diesem Kapitel werden daher grundlegende Konzepte und Begriffe aus den einzelnen Themengebieten kurz vorgestellt. Abschnitt 2.1 befaßt sich mit der Thematik allgemeiner Datenbanksysteme, wobei insbesondere auf die Begriffe Datenmodell und Datenschema eingegangen wird. Im Anschluß daran erfolgt die Beschreibung des hierarchischen Datenmodells, dessen Konzepte die Grundlage bei der Entwicklung des Web-Site Datenbanksystems darstellen. Eine Einführung in die theoretischen Aspekte von Wrappern und Mediatoren, die die funktionalen Komponenten des Zeitschriften-Informationssystems realisieren, wird in Abschnitt 2.3 gegeben. Abschließend wird unter Punkt 2.4. auf die Konzepte der Dokumentbeschreibungssprache SGML eingegangen. SGML kann als Obermenge der im Bereich des World Wide Web hauptsächlich verwendeten Sprachen XML und HTML betrachtet werden. Die Konzepte von Dokumentbeschreibungssprachen und insbesondere von XML bzw. HTML werden bei der Extraktion von Informationen aus Web-basierten Dokumenten benötigt. 2.1 Datenbanksysteme Eine Datenbank (database) stellt einen, abhängig von einem gegebenen Datenmodell (data model ), einheitlich strukturierten Datenbestand dar. Zusammen mit einem Datenbank-Managementsystem (database management system, DBMS) wird ein sogenanntes Datenbanksystem (database system, DBS) gebildet. Ausgehend von dieser Definition werden im Anschluß die Termini Datenmodell und DBMS näher erläutert sowie die 3-Ebenen-Architektur für DBSe vorgestellt. Die Erläuterungen basieren dabei im wesentlichen auf den Darstellungen in [EN00, Dat00, Lip95, Vos00]. 2.1.1 Datenmodelle Ein Datenmodell besteht im allgemeinen aus einer Menge von Konzepten, mit denen sich die Struktur einer Datenbank beschreiben läßt. Mit Hilfe dieser Konzepte läßt sich der für eine konkrete Anwendung benötigte Ausschnitt der realen Welt (Mini-Welt) abstrakt modellieren. Gleichzeitig bleiben dem Benutzer die Details der physischen Datenspeicherung verborgen (information hiding). Somit wird eine systemunabhängige, intuitive Beschreibung der Datenbank ermöglicht. 10 KAPITEL 2. GRUNDLAGEN 11 Die Struktur einer Datenbank ist durch entsprechende Datentypen, den Beziehungen der Daten zueinander sowie spezielle Integritätsbedingungen festgelegt. Viele Datenmodelle beinhalten außerdem eine Menge von Operationen zur Beschreibung von Anfragen und Manipulationen der Datenbank. Beispielhaft seien hier Algebra und Kalkül relationaler Datenbanken erwähnt. Anhand des jeweiligen Abstraktionsgrads, d.h. in welchem Maße von der physischen Speicherung der Daten abstrahiert wird, lassen sich Datenmodelle klassifizieren. Dabei erfolgt eine Einteilung in konzeptionelle (conceptual ), logische (representational ) und physische (physical ) Datenmodelle (vgl. Abbildung 2.1). High Level Conceptual Data Models ER−Modell, EER−Modell, ... Abstraktionsniveau Representational Data Models Relationen−Modell, Netzwerk−Modell, hierarchisches Modell, ... Physical Data Models Low Level Abbildung 2.1: Klassifizierung von Datenmodellen Den höchsten Abstraktionsgrad besitzen die konzeptionellen Datenmodelle. Diese beschreiben die Struktur der Datenbank völlig unabhängig von der physischen Datenspeicherung. Verbreitete Modellierungskonzepte sind Entitäten (entities), Beziehungen (relationships) und Attribute (attributes). Entitäten repräsentieren Objekte der realen Welt, die durch eine Menge von Attributen charakterisiert sind und in Beziehung zu anderen Objekten stehen. Bekannteste Vertreter dieser Klasse sind das ER- bzw. EER-Modell, die auch als semantische Datenmodelle bezeichnet werden. Logische Datenmodelle ermöglichen einerseits eine abstrakte Beschreibung der Datenbankstruktur, andererseits basieren sie auf den logischen Datenstrukturen spezifischer Datenbanken. Dadurch wird eine direkte Implementierung gewährleistet. Im Gegensatz zu den konzeptionellen Datenmodellen lassen sich komplexe Anwendungsstrukturen allerdings nur schwer modellieren. Die klassischen Datenmodelle, also Relationen-Modell, Netzwerkmodell und hierarchisches Modell, sind die bekanntesten Vertreter der logischen Ebene. Physische Datenmodelle beschreiben die interne Struktur einer Datenbank. Modellierungskonzepte wie Indexe, Suchbäume, Zugriffspfade etc. setzen direkt auf den physischen Strukturen der Datenbank auf. Somit entsteht eine systemnahe Abstraktion der Datenbank. Innerhalb des Datenmodells wird zwischen dem Datenbank-Schema (database schema) und dem Datenbank-Zustand (database state) unterschieden. Das Schema bildet das Informationsgerüst der Datenbank (Datenbeschreibung), während der Zustand den aktuellen Inhalt der Datenbank repräsentiert. In diesem Zusammenhang 12 KAPITEL 2. GRUNDLAGEN wird auch von der Trennung zwischen Daten und Meta-Daten gesprochen. Viele Datenmodelle beinhalten weiterhin bestimmte Konventionen zur graphischen Darstellung des Datenbank-Schemas (Schema-Diagramm). Die Objekte innerhalb eines Schema-Diagramms werden als Schema-Konstrukte bezeichnet. 2.1.2 Datenunabhängigkeit und 3-Ebenen-Architektur Eine wesentliche Charakteristik von DBSen ist die Forderung nach Datenunabhängigkeit (data independence). Dabei wird zwischen logischer und physischer Datenunabhängigkeit unterschieden: Physische Datenunabhängigkeit Dem Benutzer und den jeweiligen Anwendungsprogrammen soll eine transparente Sicht auf die Datenbank zur Verfügung gestellt werden. Dadurch wird eine Stabilität der Benutzerschnittstelle gegen Änderungen der physischen Datenorganisation gewährleistet. So sollte es möglich sein, die interne Speicherung der Daten zu verändern, ohne daß dies Konsequenzen für den Einsatz der mit dem DBS agierenden Anwendungsprogramme hat. Dies impliziert gleichzeitig, daß die Entwicklung neuer Anwendungen unabhängig von konkreten Datenstrukturen, Zugriffspfaden etc. realisiert werden kann. Logische Datenunabhängigkeit Ziel der logischen Datenunabhängigkeit ist es, den Benutzer und die Anwendungsprogramme von Erweiterungen bzw. Änderungen des Datenbank-Schemas abzuschirmen. So sollte die Integration neuer Objekttypen bzw. die Expansion bestehender Objekte durch Hinzufügen neuer Attribute ebenso keinen Einfluß auf existierende Anwendungsprogramme haben, wie auch die Umbenennung von Objekten oder Attributen. In der Praxis ist eine vollständige logische Datenunabhängigkeit im Bereich der Schema-Änderungen allerdings nur schwer zu realisieren. External Schema 1 .... External Schema n External Level external/conceptual mapping Conceptual Schema Conceptual Level conceptual/internal mapping Internal Schema Internal Level internal/Storage mapping Stored Database DBMS Abbildung 2.2: 3-Ebenen-Architektur nach ANSI/SPARC Ausgehend von der Forderung nach physischer und logischer Datenunabhängigkeit wurde die von ANSI/X3/SPARC standardisierte 3-Ebenen-Architektur für DBSe entwickelt. Diese Architektur beinhaltet sowohl eine mehrstufige DatenbankDefinition, als auch eine hierarchische Strukturierung von DBMSen (vgl. Abbildung 2.2). Ausgehend von dem klassischen Datenbankentwurf werden die einzelnen Ebenen des Architekturmodells im folgenden näher beschrieben. KAPITEL 2. GRUNDLAGEN 13 Durch die sogenannte Informationsbedarfsanalyse wird festgelegt, welche Anforderungen das DBS erfüllen soll und welche Daten dafür benötigt werden. Basierend auf einem konzeptionellen und/oder repräsentativen Datenmodell wird daraufhin das konzeptionelle Schema der Datenbank entwickelt. Dieses Schema bildet die konzeptionelle Ebene (conceptual level ) der ANSI/SPARC-Architektur. Somit beschreibt das konzeptionelle Schema den gesamten Informationsgehalt der Datenbank und die Details der physischen Speicherung der Daten bleiben aufgrund des verwendeten Datenmodells unberücksichtigt. Im Anschluß an den konzeptionellen Entwurf erfolgt mit Hilfe eines physischen Datenmodells die Definition des internen Schemas. Dieses stellt die unterste Ebene der ANSI/SPARC-Architektur dar, die als interne oder auch physische Ebene (internal/physical level ) bezeichnet wird. Das Schema beinhaltet die detaillierte Beschreibung der physischen Speicherstrukturen der Datenbank und bildet die Grundlage bei der Implementierung des Datenbanksystems. Ausgehend von dem konzeptionellen Schema werden den Benutzern bzw. den Anwendungsprogrammen unterschiedliche Sichten auf die Datenbank zur Verfügung gestellt und somit die Gesamtstruktur der Datenbank verborgen. Hierfür werden individuelle Schemata angelegt, die einen Teilausschnitt des konzeptionellen Schemas repräsentieren und/oder eine Umstrukturierung der Informationsdarstellung beschreiben. Diese, als extern bezeichneten Schemata, bilden die externe Ebene (external level ) der 3-Ebenen-Architektur. Obwohl das hierbei zugrunde liegende Datenmodell unabhängig von dem des konzeptionellen Schemas gewählt werden kann, wird hiervon bei existierenden DBSen selten Gebrauch gemacht. 2.1.3 Datenbank-Managementsysteme Für die Verwaltung von Datenbanken ist das DBMS zuständig. Zu diesem Zweck stellt das DBMS ein Softwaresystem zur Verfügung, das die Implementierung und Verwaltung von Datenbanken gemäß einem gegebenen Datenmodell ermöglicht. Das DBMS bildet außerdem die Schnittstelle zwischen Benutzer und Datenbank. Im Verlauf der Entwicklung von DBSen hat sich ein spezielles Anforderungsprofil für DBMS ergeben. Die grundlegeden Aufgaben existierender DBMS werden in [Cod82] wie folgt beschrieben. Integration Das DBMS soll die einheitliche Verwaltung der Datenbank gewährleisten. Dies erfordert eine kontrollierte, nicht-redundante Datenhaltung des gesamten Datenbestands. Operationen Die Datenbankbenutzer müssen die Möglichkeit haben, den Datenbestand zu manipulieren, womit das Speichern, Suchen und Ändern von Daten gemeint ist. Zu diesem Zweck muß das DBMS eine Menge von Operationen zur Verfügung stellen, mit denen die Datenmanipulationen ausgeführt werden können. Katalog Das DBMS soll alle Informationen über die verwendeten Datenbank-Schemata bereitstellen. Dies geschieht mit Hilfe des Katalogs (data dictionary), in dem darüberhinaus noch weitere Verwaltungsinformationen, wie beispielsweise Zugriffsrechte, Gruppenzugehörigkeiten oder ähnliches abgelegt werden. Benutzersichten Wie bereits bei der Beschreibung der 3-Ebenen-Architektur erwähnt, werden Benutzern unterschiedliche Sichten auf die Datenbank zur Verfügung gestellt. Das DBMS ist für die korrekte Abbildung dieser externen Schemata auf das konzeptionelle Schema, d.h den Gesamtdatenbestand, verantwortlich. KAPITEL 2. GRUNDLAGEN 14 Konsistenzüberwachung Das DBMS ist dafür zuständig, daß Änderungen des Datenbestands die Integrität der Datenbank nicht verletzen. Datenschutz Unautorisierte Zugriffe auf die Datenbank müssen vom DBMS ausgeschlossen werden. Dies umfaßt sowohl datenschutzrechtliche Aspekte personenbezogener Informationen (Datenschutzgesetz), als auch den Schutz unternehmensrelevanter Datenbestände (Werksspionage). Transaktionen Folgen von (zusammengehörigen) Datenbankänderungen werden zu logischen Funktionseinheiten (Transaktionen) zusammengefaßt. Das DBMS ist dafür verantwortlich, daß diese Transaktionen als Ganzes ausgeführt werden. Wurde eine Transaktion erfolgreich abgeschlossen, so sind die Effekte der Datenmanipulationen permanent in der Datenbank zu speichern. Tritt bei der Bearbeitung einer Transaktionen allerdings ein Fehler auf, müssen alle innerhalb der Transaktion zwischenzeitlich erfolgten Änderungen rückggängig gemacht werden. Dadurch wird die Integrität des Datenbestands, ähnlich wie bei der Konsistenzüberwachung, gewährleistet. Synchronisation Konkurrierende Transaktionen verschiedener Benutzer müssen vom DBMS in geeigneter Weise synchronisiert werden, um Schreibkonflikte auf gemeinsam benutzten Daten auszuschließen. Datensicherung Aufgabe der Datensicherung ist es, eine konsistente Rekonstruktion der Datenbank nach Auftreten von Systemfehlern (z.B. Stromausfall) zu ermöglichen. 2.1.4 Implementierung von Datenbanksystemen Heutzutage basiert die Implementierung der meisten DBSe auf einer Fünf-Schichten-Architektur [HR99], die in Abbildung 2.3 dargestellt ist. Jede Schicht stellt eine Abstraktion der direkt unter ihr liegenden dar. Somit können die Details der physischen Datenspeicherung sukzessive verborgen werden, um schließlich eine intuitive Sicht auf die zur Verfügung stehenden Daten zu ermöglichen. Jede Schicht stellt eine Schnittstelle zur Verfügung, durch die die direkt darüberliegende Schicht auf die zur Verfügung stehenden Prozeduren zugreifen kann. Jedes externe Speichermedium besitzt eine Geräteschnittstelle zur Kommunikation mit der Außenwelt. Das Betriebssystem abstrahiert von den geräteabhängigen Charakteristiken (Zylinder, Spuren, Sektoren, etc.) und stellt der übergeordneten Schicht den Zugriff auf logische Speicherstrukturen (Dateien) zur Verfügung. Eine Datei besteht ihrerseits aus einer Menge von adressierbaren Blöcken fester Länge, die jeweils direkt, d.h als atomare Einheiten auf das externe Speichermedium abgebildet werden. Um eine effiziente sowie flexible Speicherverwaltung zu ermöglichen, werden die Objekte einer Datenbank (z.B. Relationen) nicht separat, sondern dateiübergreifend in sogenannten Segmenten gespeichert. Segmente bestehen aus einer Menge von Seiten, die äquivalent zu den bereits erwähnten Blöcken einer Datei sind. Die Zuordnung der Seiten zu den jeweiligen Blöcken ist Aufgabe der Pufferverwaltung, die gleichzeitig für die Seitenersetzungsstrategie, d.h. das Ein- und Auslagern von Seiten in den internen DB-Puffer, verantwortlich ist. An der Pufferschnittstelle stellt sich die Datenbank demzufolge als Menge von direkt zugreifbaren Segmenten dar. Das Speichersystem ist für die Abbildung interner Datensätze auf Seiten und Segmente verantwortlich. Dabei können unterschiedliche Techniken der Speicherstruk- 15 KAPITEL 2. GRUNDLAGEN Benutzer Anwendungsprogramme Mengenorientierte DB−Schnittstelle Datensystem Logische Datenstrukturen Satzorientierte DB−Schnittstelle Zugriffssystem Logische Zugriffspfad− strukturen Speichersystem Speicherungs− strukturen Interne Satzschnittstelle DB−Pufferschnittstelle Pufferverwaltung Seitenzuordnungs− strukturen Dateischnittstelle Betriebssystem Speicherzuordnungs− strukturen Geräteschnittstelle Externe Speichermedien Abbildung 2.3: Fünf-Schichten-Modell turierung zum Einsatz kommen. Die Speicherung erfolgt beispielsweise durch Indizierung und Implementierung von B*-Bäumen oder mit Hilfe von Hash-Funktionen. Ziel dabei ist das schnelle Auffinden und Einfügen von Datensätzen, um eine möglichst hohe System-Performance zu garantieren. Basierend auf den Strukturen des Speichersystems stellt das Zugriffssystem unterschiedliche Zugriffspfade zur Verfügung, die an der übergeordneten Schnittstelle operativ genutzt werden können. Es wird im wesentlichen zwischen sequentiellen, direkten und navigierenden Zugriffspfaden unterschieden. Die satzorientierte DBSchnittstelle abstrahiert somit von den Details der internen Speicherstrukturen und realisiert einen prozeduralen Zugriff auf die Daten. Das Datensystem schließlich verbirgt die satzorientierte Struktur der Daten, um dem Benutzer eine intuitive Sicht auf den Datenbestand zu vermitteln. So kann mit Hilfe von deklarativen Datenmanipulationssprachen, wie z.B. SQL, die Kommunikation zwischen Benutzer und DBS erfolgen. Darüberhinaus erfüllt das Datensystem verschiedene Aufgaben bei der Bearbeitung von Anfragen und Änderungen der Datenbank. Dies sind u.a. Syntaxanalyse, Anfrageübersetzung und -optimierung, Synchronisation und Datensicherung. Auf spezielle Aspekte der jeweiligen Schichten wird bei der Entwicklung eines DBMS für HTML-basierte Web-Sites näher eingegangen. Einen vertiefenden Einblick in die Konzepte und die Möglichkeiten der Realisierung einer 5-Schichten-Architektur bieten [HR99] und [SH99]. 2.2 Das hierarchische Datenmodell Die Integration von Web-Sites in das ZIS erfolgt über ein hierarchisches Datenbanksystem. Daher soll im folgenden ein kurzer Überblick über die Konzepte des hierarchischen Datenmodells gegeben werden. Zu der Klasse der logischen Datenmodelle gehörend, stellt das hierarchische Modell vereinfacht ausgedrückt ein reduziertes Netzwerkmodell dar. Im Gegensatz zu dem relationalen oder auch dem ER-Modell KAPITEL 2. GRUNDLAGEN 16 ist das hierarchische Datenmodell aus der Praxis heraus entstanden, so daß keine Referenzliteraur zu dieser Thematik existiert. Daher erfolgt die Darstellung der grundlegenden Aspekte des hierarchischen Modells in Anlehnung an das von IBM 1968 entwickelte IMS-System [EN94, Ull82]. 2.2.1 Strukturierungskonzepte und Datenbank-Schema Das hierarchische Datenmodell bedient sich im wesentlichen zweier Konzepte zur Strukturierung des Datenbestands: Record- und Parent-Child-Relationship-Typen. Ein Record-Typ besitzt eine eindeutige Bezeichnung und definiert verschiedene Eigenschaften eines Objekts des zu abstrahierenden Weltausschnitts. So stellt zum Beispiel PERSON (NAME:string, ALTER:integer, GESCHLECHT:char ) einen Record-Typ mit der Bezeichnung PERSON und den zugehörigen Attributen (data items) NAME, ALTER und GESCHLECHT dar. Jedem Attribut wird ein bestimmter Datentyp, wie z.B. string, integer, char etc. zugeordnet. Die Deklaration von Record- und Attributnamen sowie die Definition entsprechender Datentypen stellen inhärente Integritätsbedingungen des hierarchischen Datenmodells dar. Ein Parent-Child-Relationship-Typ (PCR-Typ) repräsentiert eine 1:n-Beziehung zwischen verschiedenen Record-Typen. Dabei besteht die 1-wertige Seite aus dem sogenannten Parent-Record-Typ, und die n-wertige aus einem Child-Record-Typen. PCR-Typen besitzen keine direkte Bezeichnung. Der Bezug erfolgt durch die binäre Notation des Paares Parent-Record- und Child-Record-Typ. Besitzt der Record-Typ ARTIKEL beispielsweise AUTHOR und KEYWORDS als Child-Record-Typen, so erfolgt die Definition der entsprechenden PCR-Typen durch (ARTIKEL, AUTHOR) und (ARTIKEL, KEYWORDS ). Die Ausprägung eines PCR-Typs besteht aus einem Record des Parent-Record-Typs und einer gewissen Anzahl (0..n) von Records des Child-Record-Typs. Ein weiteres Strukturierungskonzept des hierarchischen Modells stellen die sogenannten virtuellen PCR-Typen dar, mit denen sich n:m-Beziehungen zwischen verschiedenen Record-Typen repräsentieren lassen. Auf dieses Konzept wird in diesem Zusammenhang nicht näher eingegangen. Eine detaillierte Beschreibung dieser Methode ist unter anderem in [Ull82] oder [EN94] zu finden. Ein hierarchisches Datenbank-Schema besteht aus einem oder mehreren hierarchischen Schemata, die ihrerseits wiederum aus einer Menge von Record- und PCRTypen gebildet werden. Bei der Modellierung der hierarchischen Schemata sind folgende Konventionen einzuhalten: 1. 2. 3. 4. 5. Genau ein Record-Typ fungiert nicht als Child eines PCR-Typs. Dieser ausgezeichnete Typ wird als Wurzel (root) bezeichnet. Jeder Record-Typ, mit Ausnahme der Wurzel, ist als Child an genau einem PCR-Typ beteiligt. Jeder Record-Typ kann in mehreren PCR-Typen als Parent fungieren. Record-Typen, die in keinem PCR-Typ als Parent vorkommen, werden als Blatt (leaf ) bezeichnet. Besitzt ein Record-Typ mehr als ein Child, so sind diese, entsprechend der Reihenfolge in der sie definiert wurden, geordnet. Hierarchische Datenbank-Schemata sind äquivalent zu den von der Graphentheorie her bekannten Wäldern, die aus einem oder mehreren Bäumen bestehen. Dabei symbolisieren die Record-Typen die Knoten und die PCR-Typen die Kanten eines Baums. 17 KAPITEL 2. GRUNDLAGEN 2.2.2 Schema-Diagramm und Datenbank-Zustand Das Schema-Diagramm des hierarchischen Modells weist eine baumartige Struktur auf. Record-Typen werden dabei als Rechtecke dargestellt, in deren oberen Bereich die Bezeichnung des Record-Typs und in dessen unterem Bereich die zugehörigen Attribute angeordnet sind. Die Datentypen werden im Schema-Diagramm nicht explizit erwähnt. PCR-Typen werden durch eine Verbindungslinie zwischen ParentRecord- und Child-Record-Typen symbolisiert. In Abbildung 2.4 ist das Diagramm eines bestimmten Datenbank-Schemas beispielhaft dargestellt. Dabei besitzt jeder Record-Typ einen sogenannten Typ-Indikator (z.B. ’AR’), dessen Funktion bei der Beschreibung von hierarchischen Zustandsbäumen erläutert wird. (a) Record−Typen : JOURNAL(NAME:string) ARTICLE(TITLE:string, PAGE:integer, URL:string) AUTHOR(NAME:string) KEYWORDS(WORD:string) PCR−Typen: (JOURNAL, RECORD) (ARTICLE, AUTHOR) (ARTICLE, KEYWORDS) (b) J AR A TITLE AUTHOR NAME JOURNAL NAME ARTICLE PAGE URL K KEYWORDS WORD Abbildung 2.4: Hierarchisches Datenbank-Schema (a) und Schema-Diagramm (b) Bei der Ausprägung eines hierarchischen Schemas entsteht eine Menge von sogenannten Zustandsbäumen. Die Wurzel jedes Zustandsbaums wird dabei von einem Record des Root-Record-Typs gebildet. Von ihr zweigen alle Records der zu der Wurzel gehörenden Child-Record-Typen ab. Jeder dieser Records kann wiederum als Parent in einem oder mehreren PCR-Typen fungieren. Erneut zweigen alle ChildRecords der jeweiligen PCR-Typen von diesen Parent-Records ab. Der Vorgang wiederholt sich solange, bis alle als Blätter definierten Record-Typen erreicht sind. J ComputerWorld AR XML A Smith K Markup AR Databases K SGML A Dillon K Schema K SQL AR JAVA K JDBC A Gape K class Abbildung 2.5: Zustandsbaum einer hierarchischen Ausprägung K method 18 KAPITEL 2. GRUNDLAGEN In Abb. 2.5 ist ein Zustandsbaum des in Abbildung 2.4 dargestellten DatenbankSchemas zu sehen. In diesem Zusammenhang wird auch die Funktion der bereits angesprochenen Typ-Indikatoren deutlich. Besitzt ein Record-Typ nämlich mehrere Child-Record-Typen, so können innerhalb des Zustandsbaums die Typen der jeweiligen Child-Records anhand dieser Indikatoren identifiziert werden. 2.2.3 Hierarchische Sequenz Im vorausgegangenen Abschnitt wurde die Ausprägung einer hierarchischen Datenbank in Form von Zustandsbäumen beschrieben. Die Frage ist nun, wie solche Zustandsbäume gespeichert werden können. Eine einfache Methode ist durch die sogenannte hierarchische Sequenz gegeben. Dabei werden alle Datensätze des Zustandsbaums entsprechend ihrer Reihenfolge in einem Preorder -Durchlauf linear gespeichert. In Abb. 2.6 ist die hierarchische Sequenz des im vorherigen Abschnitt gezeigten Zustandsbaums dargestellt. J AR A K K AR A K K K AR A K K ComputerWorld XML Smith Markup SGML Databases Dillon Schema SQL JDBC JAVA Gape class method Abbildung 2.6: Hierarchische Sequenz eines Zustandsbaums Die Funktion der Typ-Indikatoren bezieht sich hierbei nicht mehr ausschließlich auf die Identifizierung von Child-Records unterschiedlicher Typen, sondern schließt die Erkennung sämtlicher Datensätze mit ein. 2.3 Wrapper und Mediatoren Die funktionalen Transformationskomponenten des ZIS werden durch Wrapper realisiert, während die Aufgaben der Integration von einen Mediator übernommen werden. In diesem Abschnitt werden die Eigenschaften von Wrappern und Mediatoren erläutert und die bei der Transformation bzw. Integration enstehenden Aufgaben beschrieben. 2.3.1 Wrapper Als Wrapper werden Software-Module bezeichnet, die einzelne Datenquellen ein” kapseln“ und dadurch deren Erscheinungsbild anderen Software-Komponenten gegenüber verändern [TRS97]. Der Einsatz von Wrappern kann aus unterschiedlichen 19 KAPITEL 2. GRUNDLAGEN Gründen erfolgen. Einerseits, um die Handhabung“ der Datenquellen zu vereinfa” chen bzw. ihre Funktionalität zu erweitern. Andererseits können verschiedene Datenquellen durch entsprechende Wrapper jeweils so eingekapselt“ werden, daß alle ” ein einheitliches Erscheinungsbild aufweisen. Daraus folgt, daß beispielsweise ein Anwendungsprogramm auf alle benötigten Quellen in der gleichen Form zugreifen kann. Die Aufgabe von Wrappern besteht somit darin, das simulierte Erscheinungsbild auf die reellen Gegebenheiten der jeweiligen Datenquelle zu transformieren. In Anlehnung an [TRS97] erfolgt im Anschluß eine kurze Beschreibung des Aufbaus beliebiger Datenquellen. Eine Datenquelle Q basiert auf einem Datenmodell M(Q). Ausgehend von diesem Modell existiert ein Schema S(M), das die Struktur des Datenbestands beschreibt. An der Schnittstelle stellt die Datenquelle eine Menge von Operationen zur Verfügung, mit denen der Zugriff auf den Datenbestand erfolgt. In Abhängigkeit von dem zugrunde liegenden Datenmodell kann es sich dabei entweder um einfache Lese- und Schreiboperationen oder aber auch um eine deskriptive Anfragesprache, wie z.B. SQL, handeln. Im folgenden wird die Menge der jeweiligen Operationen als die Sprache L(M) der Datenquelle bezeichnet. Datenquelle E(L,S) Sprache L(M) A(E,S) Schema S(M) Datenmodell M(Q) Abbildung 2.7: Logische Struktur von Datenquellen In dem gegebenen Zusammenhang läßt sich der Ablauf eines Zugriffs auf eine beliebige Datenquelle, wie in Abb. 2.7 dargestellt, beschreiben. Eine Software-Komponente, z.B. ein Anwendungsprogramm, generiert in Abhängigkeit von L(M) und unter Berücksichtigung des Schemas S(M) eine Eingabe E(L,S) und übergibt diese an der entsprechenden Schnittstelle an die Datenquelle weiter. Die Struktur der daraus entstehenden Ausgabe A(E,S) hängt dabei wiederum von dem der Datenquelle zugrunde liegenden Schema ab. Ein Wrapper kann eine Datenquelle nun dahingehend einkapseln“, daß sich de” ren grundlegenden Eigenschaften (Datenmodell, Schema, Sprache) aus Sicht der anderen Software-Komponenten in einer modifizierten Form darstellen. Dabei werden Anfragen nicht mehr direkt an die reell existierende Datenquelle, sondern an die durch den Wrapper simulierte Datenstruktur gerichtet, die ebenso die Formatierung der Ausgabe bestimmt. Die Einkapselung“ einer Datenquelle wird durch ” verschiedene Ein- und Ausgabetransformationen innerhalb des Wrappers realisiert. Im wesentlichen können zwei Arten von Transformationen unterschieden werden [Wel96]. Zum einen die generischen Transformationen, bei denen der Funktionsumfang der Sprache L(M) modifiziert bzw. erweitert wird. Zum anderen die Quellenspezifischen Transformationen, die sich ihrerseits wiederum in Schema- bzw. Datenmodell-Transformationen unterteilen lassen. In Abb. 2.8 ist der Ablauf einer generische Transformation dargestellt. Eine Anfrage E(L*,S) in der durch den Wrapper zur Verfügung gestellten Sprache L*(M) wird 20 KAPITEL 2. GRUNDLAGEN Wrapper E(L*,S) E(L,S) Datenquelle A(E,S) A(E,S) Abbildung 2.8: Generische Transformation in eine Eingabe E(L,S) transformiert, die von der zugehörigen Quelle interpretiert und verarbeitet werden kann. Der Wrapper basiert hierbei auf dem gleichen Schema S(M) wie die Datenquelle Q, wodurch keine Transformation der Ergebnismenge A(E,S) erforderlich wird. Beispielhaft sei in diesem Zusammenhang die Transformation von Anfragen in SQL3 auf SQL-Anfragen an ein Oracle DBS erwähnt. Wrapper E(L,S*) E(L,S) Datenquelle A(E,S*) A(E,S) Abbildung 2.9: Schema-Transformation Bei der Schema-Transformation wird eine Anfrage E(L,S*), die für das durch den Wrapper simulierte Schema S* generiert wurde, auf eine Anfrage E(L,S) abgebildet, die auf dem Schema S der originären Datenquelle basiert. Das Anfrageergebnis A(E,S) muß dann wiederum in eine Ausgabe A(E,S*) umgewandelt werden. Der Ablauf einer Schema-Transformation wird in Abb. 2.9 gezeigt. Es sei darauf hingewiesen, daß ein Wrapper selbstverständlich auch generische und SchemaTransformation gleichzeitig ausführen kann. Wrapper E(L*(M*), S*(M*)) E(L(M),S(M)) Datenquelle A(E,S*(M*)) A(E,S(M)) Abbildung 2.10: Datenmodell-Transformation Soll durch den Wrapper ein anderes Datenmodell simuliert werden, ändern sich automatisch die anderen Eigenschaften der Datenquelle, da diese von dem gegebenen Modell abhängig sind. Bei einer Datenmodell-Transformation müssen daher sowohl die Sprache L*(M*) auf L(M), als auch das Schema S*(M*) auf S(M) bezüglich der Datenmodelle M* und M abgebildet werden. Abbildung 2.10 beschreibt die dabei durchzuführenden Transformationsschritte. 21 KAPITEL 2. GRUNDLAGEN 2.3.2 Mediatoren A mediator is a software module that exploits encoded knowledge about certain sets or ” subsets of data to create information for a higher layer of application“ Gio Wiederhold, 1992 Ein Mediator vereint heterogene Datenquellen und stellt den jeweiligen Anwendungsprogrammen eine einheitliche Schnittstelle auf den Datenbestand zur Verfügung. Im Rahmen dieser Arbeit bezieht sich Heterogenität dabei nicht auf Unterschiede in den Datenmodellen, da davon ausgegangen wird, daß die Homogenisierung der jeweiligen Modelle durch den Einsatz von Wrappern erreicht wird und somit keine Aufgabe des Mediators darstellt. Ausgehend von dieser Charakterisierung können Mediatoren, wie in Abb. 2.11 ersichtlich, als eine Vermittlungsschicht (mediation layer ) zwischen den Anwendungen und den unterschiedlichen Datenbeständen betrachtet werden [Wie92]. Abbildung 2.11 beinhaltet bereits die den Datenquellen übergeordneten Wrapper. Application 0 .... Application M Application Layer Mediator Mediation Layer Wrapper 0 Wrapper 1 .... .... Source 0 Source 1 Wrapper N Data Source Layer Source N Abbildung 2.11: Allgemeine Mediator-Architektur Durch den Einsatz eines Mediators wird die Unabhängigkeit der Applikationen von den zugrunde liegenden Datenquellen gewährleistet. Damit die Anwendungsprogramme die benötigten Daten in einer geeigneten Form (syntaktisch und semantisch) erhalten, muß der Mediator eine Vielzahl von Funktionen bereit stellen. Dies sind unter anderem die Lokalisierung von und der Zugriff auf Daten der verschiedenen Quellen sowie die Konvertierung der Daten in ein einheitliches Format. Beispielhaft sei hierbei die Umwandlung von Preisangaben in eine gemeinsame Währung erwähnt. Weiterhin müssen die Schema-Konstrukte der unterschiedlichen Datenquellen insofern angeglichen werden, als daß Objekte, die den gleichen Sachverhalt darstellen, auch als solche interpretiert werden. Aufgabe des Mediators ist es also, die Abstraktionsebenen der verschiedenen Datenquellen dahingehend anzugleichen, daß eine Datenintegration ermöglicht wird. 2.4 Standard Generalized Markup Language Neben verschiedenen Datenbanken werden auch Web-Sites als Medium digitaler Bibliotheken in das ZIS integriert. Diese Web-Sites basieren auf der Dokumentbeschreibungssprache HTML, die eine SGML-Anwendung darstellt. Daneben werden 22 KAPITEL 2. GRUNDLAGEN bei der Entwicklung eines Web-Site DBS verschiedene Konzepte der Sprache XML verwendet. Vereinfacht ausgedrückt läßt sich sagen, daß XML nichts anderes als eine reduzierte Version von SGML darstellt [Lob98]. Aufgrund der engen Beziehung von HTML und XML zu SGML werden im folgenden die wesentlichen Konzepte von SGML vorgestellt, die allerdings ebenso für XML gelten. Um die Verständlichkeit dieser Konzepte zu erleichtern, wird zu Beginn die Funktionsweise von Markup, einem grundlegenden Bestandteil von SGML, erläutert. Die folgenden Ausführungen basieren im wesentlichen auf den Darstellungen in [Gol90, Bry88, Wil99]. 2.4.1 Markup Dokumente bestehen aus verschiedenen Elementen, auch Informationseinheiten genannt, die in ihrer Gesamtheit einen Text logisch strukturieren. Ein einfaches Beispiel soll diesen Zusammenhang verdeutlichen. Ein Buch wird durch die Elemente Titel, Verfasser, Überschrift, Kapitel, Abschnitt und Paragraph in dem Sinne strukturiert, daß ein Kapitel durch eine Überschrift eingeleitet wird und mehrere Abschnitte enthält, die wiederum aus mehreren Paragraphen bestehen. Dadurch entsteht eine hierarchische Dokumentstruktur, wie in Abb. 2.12 zu erkennen. Buch Titel Verfasser Überschrift Überschrift Kapitel 1 Abschnitt 1 Paragraph 1 ... Kapitel 2 Abschnitt 2 ... Paragraph 2 Kapitel n Abschnitt n ... Paragraph n Abbildung 2.12: Dokumentstruktur eines Buches Im allgemeinen werden die Informationseinheiten eines Dokuments implizit durch Unterschiede in der Darstellung oder Positionierung der entsprechenden Textsegmente kenntlich gemacht. So kann eine Überschrift beispielsweise fettgedruckt sowie durch eine Leerzeile vom nachfolgenden Text getrennt ausgegeben, und dadurch als Überschrift-Element identifiziert werden. Für den weltweiten Austausch von Dokumenten in elektronischer Form besitzt diese Art der Kennzeichnung von Informationseinheiten jedoch zu wenig Aussagekraft, um eine eindeutige Identifizierung der jeweiligen Textelemente zu gewährleisten. Deshalb werden zusätzlich zu dem eigentlichen Text explizit Anweisungen in das Dokument integriert, die bei der Interpretation zur Strukturierung und Formatierung des Textes genutzt werden können. Diese Anweisungen werden, in Anlehnung an die Tätigkeit eines Editors, als Markup bezeichnet. Für die korrekte Interpretation eines mit Anweisungen versehenen Dokuments muß die Unterscheidung zwischen originärem Text und Markup möglich sein. Aus diesem Grund werden bestimmte Zeichen oder Zeichenketten definiert, um Anfang und Ende eines Markup eindeutig identifizieren zu können. Diese Begrenzungszeichen KAPITEL 2. GRUNDLAGEN 23 (delimiter ) dürfen natürlich im eigentlichen Text nicht vorhanden sein, bzw. müssen mit Hilfe von Sonderzeichen verschlüsselt werden. Ein Markup bildet zusammen mit den dazugehörigen Begrenzungszeichen ein Tag. Um ein Element eines Dokuments auszuzeichnen wird ein Tag-Paar benötigt. Ein StartTag, das den Anfang des Elements definiert, und ein EndTag. Soll beispielsweise ein Textsegment einem Überschrift-Element zugeordnet werden, so kann dies folgendermaßen geschehen: [HEADLINE] Dies ist eine Überschrift [/HEADLINE] Das StartTag besteht hierbei aus dem Elementnamen HEADLINE sowie den Begrenzungszeichen [ und ]. Im Vergleich dazu unterscheidet sich das EndTag nur durch das öffnende Begrenzungszeichen [/. Bei der Formatierung des Dokuments wird, sofern die Semantik des Elements bekannt ist, das markierte Textsegment als Überschrift interpretiert und den stylistischen Einstellungen entsprechend dargestellt. Der Begriff der Semantik von Elementen wird im weiteren Verlauf der Ausführungen noch näher erläutert. In einigen Fällen wird das Ende eines Elements implizit durch den Beginn eines nachfolgenden ausgezeichnet. So endet beispielsweise das Überschrift-Element automatisch mit dem Beginn des folgenden Textes. In diesem Fall kann eine Vereinbarung getroffen werden, die es erlaubt, solche Elemente nicht explizit durch ein EndTag schließen zu müssen. Diese optionale Begrenzung einer Informationseinheit wird als minimalisiertes Markup bezeichnet. Durch die explizite Auszeichnung der unterschiedlichen Elemente erfolgt die Abtrennung des Inhalts eines Dokuments von seiner Layout-spezifischen Darstellung. Hieraus ergibt sich ein wesentlicher Vorteil gegenüber der herkömmlichen impliziten Auszeichnung von Textsegmenten. Zum einen wird der Verfasser eines Dokuments von zeitintensiven Formatierungsaufgaben entbunden und kann sich vollständig auf die inhaltliche Gestaltung des Textes konzentrieren. Zum anderen kann der Leser das Dokument seinen individuellen Wünschen entsprechend formatieren. In anderen Bereichen wiederum wird eine unveränderliche Darstellung spezieller Textelemente angestrebt, wie dies z.B. im Bereich der Corporate Identity der Fall ist. Auch dafür kann Markup genutzt werden. Eine entsprechende Anweisung könnte wie folgt aussehen: [ITALIC] Dieser Text wird kursiv dargestellt [/ITALIC] Dadurch wird der Interpreter ausdrücklich dazu aufgefordert, das Textsegment in Kursiv-Schrift zu formatieren. Weiterhin ist zu erwähnen, daß Elementen auch Attribute zugeordnet werden können, die im StartTag des Elements definiert werden. [HEADLINE font=arial] Text in Arial-Schrift [/HEADLINE] In diesem Beispiel ist font ein Attribut von HEADLINE mit dem Wert arial. Aufgrund dieser Angabe wird das Überschrift-Element in der Schriftart Arial dargestellt. Damit sind die zur Zeit am häufigsten benutzten Arten von Markup vorgestellt worden. Dies sind zum einen Generalized Markup Instruktionen, wie beispielsweise HEADLINE, die die Elemente eines Dokuments auszeichnen, und zum anderen Specific Markup Instruktionen (z.B. ITALIC), durch die explizit Einfluß auf die Formatierung des Textes genommen werden kann. 2.4.2 Aufbau von SGML-Dokumenten Im Jahre 1986 wurde die Standard Generalized Markup Language (SGML), ein System zur Definition von Markup-Sprachen, als internationaler Standard ISO 8879 KAPITEL 2. GRUNDLAGEN 24 verabschiedet. SGML ist demzufolge keine in allen Einzelheiten festgelegte Sprache, sondern stellt ein abstraktes, formales Regelwerk zur Verfügung, welches erst von einer auf SGML basierenden Anwendung konkretisiert wird [Lob98]. Hauptziel bei der Entwicklung von SGML war die Aufteilung von Informationen in logisch strukturierten Inhalt auf der einen und Layout-spezifische Aspekte auf der anderen Seite. Dieses Ziel ist durch den Einsatz von Markup realisiert worden. Innerhalb des SGML-Standards existieren allerdings keine Regeln für die Präsentation eines Dokuments. Jede auf SGML basierende Sprache wird als eine SGML-Anwendung bezeichnet. Die bekannteste SGML-Anwendung ist zweifellos HTML. Jedes Dokument einer SGMLAnwendung besteht im wesentlichen aus drei Teilen: der Deklaration, der Definition des Dokumenttyps (document type definition, DTD) und der Dokumentinstanz. Die im folgenden vorgestellten Beispiele und Erläuterungen können keinen vollständigen Einblick in die vielfältigen und häufig komplexen Möglichkeiten, die der SGMLStandard offeriert, gewähren. Ziel ist es vielmehr, ein gewisses Verständnis für die Konzepte, auf denen SGML basiert, zu vermitteln. 2.4.2.1 SGML-Deklaration Die SGML-Deklaration stellt den wichtigsten Bestandteil eines SGML-Dokuments dar. Neben der Angabe bestimmter Parameter, beispielsweise ob die Anwendung minimalisiertes Markup unterstützen soll, wird durch die Deklaration die Syntax sowohl der DTD, als auch der Dokumentinstanzen definiert. Die Syntax bestimmt den zu verwendenden Zeichensatz, die Form der Begrenzungszeichen und vieles mehr. Ohne diese Angaben wäre die korrekte Interpretation eines Dokuments nicht möglich. Zusammen mit SGML wurde eine Standard-Syntax, die sogenannte Reference Concrete Syntax, zur Verfügung gestellt. Diese wird automatisch genutzt, falls innerhalb der SGML-Deklaration keine andere Syntax spezifiziert ist. 2.4.2.2 Dokument Type Definition (DTD) Durch die DTD wird die Struktur eines SGML-Dokuments bestimmt. Zusätzlich zu den Element-Definitionen werden abstrakte Regeln formuliert, die angeben, auf welche Weise die Elemente miteinander kombiniert werden dürfen. In diesem Zusammenhang wird zwischen Daten-, Container- sowie leeren Elementen unterschieden. Ein einfaches Beispiel einer DTD, basierend auf der SGML Standard-Syntax, soll die Eigenschaften der verschiedenen Element-Typen verdeutlichen. Dabei werden alle Element-Definitionen durch das Begrenzungszeichen <! gefolgt von dem Schlüsselwort ELEMENT geöffnet und mit > geschlossen. !ELEMENT !ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT < < Buch Kapitel Abschnitt Verfasser Paragraph Überschrift Titel Vorname Nachname Unbekannt (Titel?, Verfasser, Kapitel+) > (Überschrift, Abschnitt+)> (Überschrift, Paragraph+)> ((Vorname*, Nachname) | Unbekannt) > (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> KAPITEL 2. GRUNDLAGEN 25 Daten-Elemente, die durch die Zuweisung des Schlüsselworts #PCDATA innerhalb der Element-Definition gekennzeichnet werden, enthalten unmittelbar die konkreten Textinformationen. So stellen Paragraph, Überschrift, Titel, Vorname und Nachname im gezeigten Beispiel die Daten-Elemente des Dokuments dar. Durch das Schlüsselwort EMPTY werden leere Elemente identifiziert. Sie zeichnen sich dadurch aus, daß sie kein EndTag besitzen und werden hauptsächlich zur Strukturierung eines Dokuments verwendet. So fungiert Unbekannt in der oben beschriebenen DTD alternativ zum Namen des Verfassers als nicht triviale Informationseinheit, da durch die Existenz dieses Elements die logische Struktur des Textes aufrecht erhalten werden kann. Außerdem können leere Elemente als Anweisungen zum Einfügen verschiedener Objekte, wie z.B. Abbildungen, benutzt werden. Container-Elemente schließlich bestehen entweder aus Daten- bzw. leeren Elementen und/oder weiteren Container-Elementen. Informationseinheiten dieses Typs, werden durch die Zuweisung eines Inhaltmodells (content model ), das eine spezielle Syntax besitzt, beschrieben. Das Element Buch beispielsweise beginnt optional (Fragezeichen ?) mit dem Titel, gefolgt von dem Verfasser und einem oder mehreren Kapiteln (Additionszeichen +). Die genaue Syntax des Inhaltmodells, das auch noch Möglichkeiten zur Inklusion und Exklusion bestimmter Element-Typen bereitstellt, wird in [Gol90] ausführlich beschrieben. Wie bereits erwähnt, können Elementen auch verschiedene Attribute zugeordnet werden. Dies geschieht ebenfalls innerhalb der DTD. Eine Attribut-Definition wird mit dem Begrenzungszeichen <! und dem Schlüsselwort ATTLIST eingeleitet. Danach werden die Namen der Elemente, denen dieses Attribut zugeordnet werden soll, angegeben. Schließlich folgen Attributname, -Typ und -Status. < !ATTLIST Person geschlecht (m|f) #REQUIRED > In diesem Fall wird geschlecht als Attribut des Elements Person definiert. Dabei kann der Wert von geschlecht entweder m (male) oder f (female) sein. Durch das Schlüsselwort #REQUIRED erhält das Attribut den Status erforderlich“, was ” bedeutet, daß dieses Attribut beim Element person immer mit einem Wert versehen sein muß. Weitere Möglichkeiten für den Attributstatus sind #IMPLIED oder #FIXED. 2.4.2.3 Dokumentinstanz Dokumente, die die gleiche DTD besitzen, also auf der gleichen Struktur basieren, bilden eine Dokumentklasse. Jedes Dokument einer speziellen Dokumentklasse wird als Instanz dieser Klasse bezeichnet. Wichtig ist die Unterscheidung zwischen den Begriffen SGML-Anwendung, Dokumentklasse und Dokumentinstanz. Eine SGML-Anwendung stellt die Konkretisierung des SGML-Regelwerks dar. Dieses wird durch die SGML-Deklaration erreicht. Jede Anwendung wiederum definiert verschiedene Dokumentklassen, d.h. stellt bestimmte Strukturen zur Verfügung, auf denen die jeweiligen Dokumente der Anwendung basieren. Diese Strukturen werden in der Dokument Type Definition festgelegt. Das eigentliche Dokument wird dann als Instanz einer Dokumentklasse bezeichnet. Folgende Problematik beinhaltet SGML: Auch wenn die Syntax eines Dokuments bekannt ist, so bleibt die Semantik der Elemente unbekannt. Existiert zum Beispiel ein Element mit dem Namen H1, so weiß der Leser noch nicht, wie er H1 zu interpretieren hat. Erst wenn global festgelegt ist, daß H1 eine Überschrift darstellen soll, kann das Element korrekt interpretiert werden. Es ist also für die korrekte Darstellung mit Markup versehener Dokumente von allergrößter Bedeutung, daß der Interpreter die Semantik der entsprechenden Elemente kennt. Kapitel 3 Föderierte Datenbanksysteme In der bisherigen Arbeit wurde ein DBS als ein System einer oder mehrerer Datenbanken und einem dazugehörigen DBMS betrachtet. Diese Definition wird nun dahingehend erweitert, daß der Zusammenschluß verschiedener DBSe wiederum ein logisches System, ein sogenanntes Multidatenbanksystem (multidatabase system) darstellt. Im Gegensatz dazu werden DBSe, bei denen die Verwaltung des Datenbestands auf ein dediziertes DBMS ausgerichtet ist, in dieser Arbeit als unitäre DBSe bezeichnet. Dabei kann es sich sowohl um zentrale, als auch auch verteilte DBSe handeln. Bei verteilten DBSen kommen zwar mehrere DBMSe zum Einsatz, diese sind jedoch alle einem ausgezeichneten DBMS untergeordnet. Es bleibt anzumerken, daß die in Abschnitt 2.1.3 beschriebenen Anforderungen an DBMSe für alle Arten von DBSen gelten. Ein Föderiertes Datenbanksystem (fedrated database system) ist ein spezielles MultiDBS und stellt Konzepte für die Integration verteilter, heterogener DBSe zur Verfügung. Ziel ist es, einen einheitlichen sowie für den Benutzer transparenten Zugriff auf die unterschiedlichen Datenbestände (Komponentensysteme) zu ermöglichen. Dabei bleibt im Gegensatz zu anderen Multi-DBS-Architekturen die Autonomie der an der Föderation beteiligten Komponentensysteme erhalten. Im folgenden wird zunächst eine Klassifizierung von DBSen im allgemeinen sowie von Multi-DBSen im besonderen vorgestellt. Es sei darauf hingewiesen, daß in der fachspezifischen Literatur unterschiedliche Vorstellungen darüber existieren, wie die Termini verteilte DBSe, Multi-DBSe und föderierte DBSe zu definieren bzw. anderen DBSen gegenüber abzugrenzen sind. Diese Arbeit folgt im wesentlichen der in [Con97] dargestellten Terminologie. Schließlich wird eine Referenzarchitektur für föderierte DBSe, die sogenannte 5-Ebenen-Schema-Architektur, vorgestellt. Auf Aspekte des föderierten Datenbankentwurfs wird in diesem Zusammenhang nicht eingegangen. Bestimmte Konzepte werden bei der Entwicklung des ZeitschriftenInformationssystems vorgestellt, ansonsten wird auf die entsprechende Fachliteratur, wie z.B. [Con97], verwiesen. 3.1 Klassifizierung von Datenbanksystemen Bei der Klassifizierung verschiedener Arten von DBSen erfolgt, wie eingehend erwähnt, zunächst eine Unterteilung in unitäre und Multi-DBSe. Je nachdem, ob der 26 27 KAPITEL 3. FÖDERIERTE DATENBANKSYSTEME Datenbestand auf einem lokalen Rechner oder auf mehreren miteinander vernetzten Rechnern gespeichert ist, werden unitäre DBSe in zentrale bzw. verteilte Systeme gegliedert. Multi-DBSe werden anhand ihrer Charakteristik in Bezug auf Distribution, Heterogenität und Autonomie klassifiziert. In Abbildung 3.1 wird nur zwischen föderierten und nicht-föderierten Multi-DBSen unterschieden, eine genauere Klassifizierung erfolgt bei der Beschreibung von Multi-DBSen. Datenbanksysteme unitäre DBSe verteilteDBSe Multidatenbanksysteme zentrale DBSe nicht−föderierte MultiDBSe föderierte MultiDBSe parallele DBSe lose gekoppelt eng gekoppelt einfache Föderation mehrfache Föderation Abbildung 3.1: Klassifikation von Datenbanksystemen 3.1.1 Unitäre Datenbanksysteme Nachdem im zweiten Kapitel bereits die Konzepte zentraler DBSe eingehend erläutert und die Drei-Ebenen-Archiktektur als Grundlage solcher Systeme vorgestellt wurde, soll in diesem Abschnitt ein Einblick in den Aufbau verteilter DBSe geschaffen werden. Durch die Entwicklungen im Bereich der Netzwerktechnologie wurde die Möglichkeit geschaffen, auf unterschiedlichen Rechnern Anwendungen auszuführen, die auf einen gemeinsamen Datenbestand zugreifen. Werden diese Daten zentral gespeichert, kann es bei größeren Systemen aufgrund der Prozeßsynchronisation zu Engpässen bei der Anfrage- und Transaktionsbearbeitung kommen. Um die dabei auftretenden Performanceverluste zu umgehen, wird der Datenbestand auf mehreren Rechnern verteilt und eventuell repliziert gespeichert, so daß nun nicht mehr nur ein einzelnes Rechnersystem mit der Prozeßbearbeitung belastet wird. Die Verteilung bezieht sich dabei sowohl auf die Partionierung des Datenbestandes in mehrere logisch zusammenhängende Datenbanken, als auch auf die verteilte Speicherung eines einzelnen Gesamtschemas. Verteilte Datenbanksysteme werden wie bereits erwähnt von mehreren DBMSen verwaltet, die einem dedizierten DBMS untergeordnet sind. Die DBMSe stellen somit ihrerseits ein verteiltes System dar [CP84]. Kernforderung bei der Implementierung eines verteilten Systems ist es, eine transparente Sicht auf den Datenbestand zu gewährleisten. Das bedeutet, daß es für den Benutzer keinen Unterschied macht, ob er mit einem zentralen oder einem verteilten DBS arbeitet und somit auch keine Kenntnisse darüber benötigt, wo die für ihn relevanten Daten gespeichert sind. 28 KAPITEL 3. FÖDERIERTE DATENBANKSYSTEME Grundlage verteilter DBSe bildet die 4-Ebenen-Architektur (vgl. Abbildung 3.2), die eine Weiterentwicklung der ANSI/SPARC-Architektur zentraler DBSe darstellt. Jeder der an dem verteilten System beteiligten DB-Knoten besitzt auf lokaler Ebene sowohl ein internes, als auch ein konzeptionelles Schema. Diese Schemata sind dabei von dem globalen konzeptionellen Schema abgeleitet worden, so daß dem Benutzer eine transparente Sicht auf das verteilte DBS zur Verfügung steht. In diesem Zusammenhang wird der wesentliche Unterschied zwischen verteilten und Multi-DBSen deutlich. Während bei Multi-DBSen die lokalen Schemata zu einem globalen Schema zusammengefaßt werden (bottom-up Strategie), wird im Bereich verteilter DBSe ein globales Schema auf mehrere lokale Schemata verteilt (top-down Strategie). External Schema 1 .... External Schema n Conceptual Schema Local Conceptual Schema Local Conceptual Schema .... Local Conceptual Schema Local Internal Schema Local Internal Schema .... Local Internal Schema Abbildung 3.2: Referenzarchitektur für verteilte Datenbanksysteme Parallele DBSe stellen eine Spezialisierung verteilter DBSe dar [Con97]. Durch die Anwendung von Konzepten der Parallelrechner-Technologie soll eine PerformanceSteigerung im Bereich der Anfrage- und Transaktionsberarbeitung erreicht werden. Nähere Informationen zu parallelen DBSen lassen sich in [Vos00] finden. 3.1.2 Multidatenbanksysteme Multi-DBSe bilden einen Zusammenschluß verschiedener DBSe, die innnerhalb der Vereinigung als Komponentendatenbanksysteme (KDBSe) bezeichnet werden. Anhand der Verteilung, der Heterogenität und der Autonomie der KDBSe läßt sich eine Klassifizierung von Multi-DBSen, wie in Abbildung 3.3 dargestellt, vornehmen [ÖV91]. Distribution Der Grad der Distribution eines Datenbanksystems richtet sich nach der physischen und funktionalen Verteilung der KDBSe. So können die Datenbestände nur auf einem einzigen Rechner, d.h zentral, oder aber auf mehreren Rechnern verteilt gespeichert sein bzw. verwaltet werden. Heterogenität Bei dem Zusammenschluß verschiedener DBSe können unterschiedliche Heterogenitäten auftreten. Zum einen besteht die Möglichkeit, daß den jeweiligen Datenbanken verschiedene Datenmodelle zugrunde liegen, andererseits können gleiche Schema-Konstrukte unterschiedlich interpretiert werden (semantische Heterogenität). 29 KAPITEL 3. FÖDERIERTE DATENBANKSYSTEME Autonomie Bei der Autonomie eines Datenbanksystems wird zwischen Entwurfs-, Kommunikations- und Ausführungsautonomie unterschieden. Die am Zusammenschluß beteiligten DBSe können zum einen unabhängig voneinander entworfen worden sein (Entwurfsautonomie). Weiterhin ist entscheidend, inwieweit ein System eigenständig über die Teilnahme am Zusammenschluß bestimmen kann (Kommunikationsautonomie). Schließlich wird unterschieden, in welchem Maße ein System selbst über die Ausführung von Anwendungsprogrammen entscheiden darf (Ausführungsautonomie). Distribution verteilte homogene MDBS verteilte heterogene MDBS logisch integrierte homogene MDBS verteilte föderierte MDBS verteilte heterogene föderierte MDBS homogene föderierte MDBS Autonomie heterogene integrierte MDBS heterogene föderierte MDBS Heterogenität Abbildung 3.3: Klassifizierung von Multidatenbanksystemen Föderierte DBSe sind Multi-DBSe, deren KDBSe einen hohen Grad an Autonomie besitzen. Aufgrund weiterer charakteristischer Merkmale lassen sich föderierte DBSe weiter unterteilen. Zuerst wird zwischen lose und eng gekoppelten Systemen unterschieden. Bei lose gekoppelten föderierten DBSen erfolgt die Zusammenstellung der an der Föderation teilnehmenden KDBSe durch den Benutzer. Dabei muß er wissen, wie er auf die Datenbestände der einzelnen Systeme zugreifen kann und inwiefern die Daten verschiedener KDBSe zueinander kompatibel sind. Dadurch wird ein hohes Maß an Flexibilität erreicht. Ein eng gekoppeltes föderiertes DBS wird im Gegensatz dazu durch einen Administrator zusammengestellt und verwaltet. Dazu muß er die lokalen DatenbankSchemata in ein globales Schema integrieren, um dem Benutzer eine transparente Sicht auf die Föderation zu ermöglichen. In einem eng gekoppelten System besitzt der Benutzer keine Möglichkeit selber zu bestimmen, auf welche Daten er zugreifen kann. Allerdings werden ihm dafür sämtliche Verwaltungaufgaben vom Administrator abgenommen. Bei eng gekoppelten Systemen wird weiterhin unterschieden, ob nur eines oder gegebenenfalls mehrere föderierte Schemata entwickelt und bereit gestellt werden. Analog dazu wird von einfacher bzw. mehrfacher Föderation gesprochen. An dieser Stelle sei vorab erwähnt, daß es sich bei der Implementierung des ZIS um ein eng gekoppeltes, einfach föderiertes DBS handelt. 30 KAPITEL 3. FÖDERIERTE DATENBANKSYSTEME 3.2 Die 5-Ebenen-Schema-Architektur In der Literatur werden drei Referenzarchitekturen für föderierte DBSe vorgestellt. Neben der Import-/Exportschema-Architektur sowie der Multidatenbank-Architektur wird ebenso die 5-Ebenen-Schema-Architektur in diesem Zusammenhang erwähnt, auf der das Zeitschriften-Informationssystem basiert. Aus diesem Grund folgt im Anschluß eine genaue Beschreibung der in der 5-Ebenen-Schema-Architektur enthaltenen Konzepte. Wie bereits erwähnt, besteht ein föderiertes DBS aus verschiedenen, heterogenen Komponentensystemen. Charakteristisch für die 5-Ebenen-Schema-Architektur im Vergleich zu den zwei anderen Referenzarchitekturen ist die Existenz eines globalen Schemas, wie in Abb. 3.4 zu erkennen. Die Komponentensysteme werden innerhalb der Architektur durch die lokalen Schemata beschrieben. Hierbei sind die lokalen Schemata genau die konzeptionellen, also implementierungsunabhängigen Schemata der Komponentensysteme. Aufgrund der Heterogenität der an der Föderation beteiligten Systeme können diese Schemata durchaus auf unterschiedlichen Datenmodellen beruhen. Externes Schema .... Externes Schema Föderiertes Schema Export−Schema Export−Schema .... Export−Schema Komponenten− Schema Komponenten− Schema .... Komponenten− Schema Lokales Schema Lokales Schema .... Lokales Schema Abbildung 3.4: 5-Ebenen-Schema-Architektur Um die Heterogenität der Datenmodelle zu eliminieren, erfolgt eine DatenmodellTransformation von den lokalen hin zu den Komponenten-Schemata. Das bedeutet, daß jedes Komponenten-Schema die gleichen Informationen wie das zugrunde liegende lokale Schema enthält, jedoch in einem für alle Komponenten-Schemata homogenen Datenmodell. Das hierbei verwendete Modell ist gleichzeitig Grundlage für das föderierte Schema, so daß weitere Transformationen vermieden werden können. Die nächste Ebene der Architektur bilden die Export-Schemata. Jedes ExportSchema beschreibt den der Föderation zur Verfügung stehenden Ausschnitt der jeweiligen Komponentensysteme. Auf Daten, die im Export-Schema nicht definiert sind, kann das föderierte DBS also nicht zugreifen. Die Export-Schemata basieren auf dem gleichen Datenmodell wie die Komponenten-Schemata. KAPITEL 3. FÖDERIERTE DATENBANKSYSTEME 31 Das auch als global bezeichnete, föderierte Schema stellt den Zusammenschluß aller von den an der Föderation beteiligten Komponentensystemen zur Verfügung gestellten Export-Schemata dar. Bei diesem Zusammenschluß können unterschiedliche Integrationsprobleme auftauchen, die durch geeignete Verfahren gelöst werden müssen. Beim Entwurf des ZIS wird auf einige dieser Probleme und ihre Lösungsmöglichkeiten näher eingegangen. Wie bereits erwähnt, basiert das globale Schema auf dem homogenen Datenmodell der Komponenten-Schemata. Für Anwendungen, die global auf das föderierte DBS zugreifen, können von der Föderation externe Schemata zur Verfügung gestellt werden. Diese besitzen die gleiche Funktion wie die in der ANSI/SPARC-Architektur vorhandenen externen Schemata. Das heißt, jedes externe Schema bildet eine für eine bestimmte Anwendung definierte Schnittstelle, die die Daten des föderierten Schemas in einer für die Anwendung geeigneten Form bereitstellt. Dabei können unterschiedliche Datenmodelle zum Einsatz kommen. Abschließend bleibt vor allem in Hinblick auf die Implementierung des ZIS zu erwähnen daß die Abbildungen vom lokalen zum Komponenten-Schema und davon weiter zum Export-Schema zu einer Abbildung zusammengefaßt werden können, da die Unterscheidung zwischen Komponenten- und Export-Schema lediglich formalen Charakter besitzt. Durch diese Unterscheidung kann nämlich eine strikte Trennung der architekturbedingten Transformationsprozesse erreicht werden. So erfolgt zwischen lokalem und Komponenten-Schema die Datenmodelltransformation, während zwischen Komponenten- und Export-Schema eine Filteroperation innerhalb des gleichen Datenmodells erfolgt. Kapitel 4 Web-Sites als Datenbanken Um Web-Sites in föderierte DBSe zu integrieren, muß eine Möglichkeit geschaffen werden, Anfragen an diese Sites zu generieren und die Ergebnismenge in das Datenschema des föderierten DBS zu transformieren. Die Aufgabe der Anfragebearbeitung kann dabei durch den Einsatz von einem zu diesem Zweck entwickelten Wrapper gelöst werden. Wrapper weisen allerdings eine meist monolithische Struktur auf und können somit nur schwer modifiziert bzw. erweitert werden. Daher wird im Rahmen dieser Arbeit ein anderer Ansatz verfolgt und statt eines Wrapper ein Web-Site Datenbanksystem (WSDBS) entwickelt, das mit Hilfe eines Web-Site ManagementSystems (WSMS) die Integration der entsprechenden Datensätze ermöglicht. Im Zusammenhang mit dem Zeitschrifteninformations-System wird somit jeder WebSite als eine hierarchische Datenbank aufgefaßt. Prinzipiell stellt dieser Ansatz kein Problem dar, da Web-Sites analog zu Datenbanken eine große Menge von Daten beinhalten und zur Verfügung stellen. Unterschiede bestehen jedoch in der Bereitstellung und Verwaltung der jeweiligen Informationen. Während in einem DBS die Daten strukturiert gespeichert und von einem DBMS verwaltet werden, liegen die Daten HMTL-basierter Web-Sites nur in semi-strukturierter Form vor, so daß ein einheitlicher Zugriff auf die jeweiligen Datenbestände erheblich schwieriger als bei regulären DBSen zu realisieren ist. Durch die Entwicklung eines WSDBS wird die einheitliche Betrachtung der vorgestellten Konzepte und des Entwurfs föderierter DBSe ermöglicht und eine transparente sowie strukturierte Sicht auf die Datenquelle geschaffen. Ein weiterer Vorteil liegt darin, daß das WSDBS sehr leicht modifiziert werden kann. Im folgenden werden nun die der Entwicklung eines WSDBS zugrunde liegenden Konzepte vorgestellt. Abschnitt 4.1 befaßt sich mit dem konzeptionellen Entwurf eines WSDBS. In diesem Zusammenhang wird insbesondere auf die charakteristischen Strukturen von Web-Sites eingegangen und der Datenbankentwurf am Beispiel der ACM Digital Library vorgestellt. Anschließend erfolgt die Beschreibung des Data Retrieval Systems (DRS), das für die Extraktion relevanter Informationen HTML-basierter Dokumente verantwortlich ist (4.2). Dabei werden die extrahierten Daten an der Schnittstelle des DRS in Form einer XML-Datei zur Verfügung gestellt. Zum Abschluß des Kapitels erfolgt dann unter Punkt 4.3 eine ausführliche Darstellung der der Implementierung des WSDBS zugrunde liegenden Konzepte. Unter anderem wird in diesem Zusammenhang auch die Anfragesprache WS/QL vorgestellt. 32 KAPITEL 4. WEB-SITES ALS DATENBANKEN 4.1 33 Datenbankentwurf Beim klassischen Datenbankentwurf wird durch die Informationsbedarfsanalyse festgelegt, welche Daten in der zu implementierenden Datenbank gespeichert werden sollen und wie diese untereinander in Beziehung stehen. Ein WSDBS basiert im Gegensatz dazu auf einer vorgegebenen, unveränderlichen Menge von Informationen. Das bedeutet, daß die Datenbankinhalte bereits vor der Implementierung des WSDBS durch den Web-Site definiert wurden und vom WSMS nicht mehr erweitert oder geändert werden können. Statt der Informationsbedarfsanalyse erfolgt daher eine in dieser Arbeit als Informationsstrukturanalyse bezeichnete Untersuchung des dem WSDBS zugrunde liegenden Web-Site. Hierauf basierend wird anschließend das Web-Site-Schema erstellt, welches als Grundlage für die Entwicklung des konzeptionellen Datenbank-Schemas dient. Beide Schemata werden bei der Implementierung des WSDBS benötigt, so daß die korrekte Unterscheidung zwischen Web-Site- und Datenbank-Schema für das Verständnis der in diesem Zusammenhang vorgestellten Konzepte signifikant ist. Im folgenden werden die grundlegenden Aspekte der Informationsstrukturanalyse sowie die Eigenschaften eines sich daraus ergebenen Web-Site-Schemas beschrieben. Im Anschluß daran wird gezeigt, wie das Datenbank-Schema unter Berücksichtigung des zugrunde liegenden Web-Site-Schemas entwickelt werden kann. Die Aufgaben des WSMS in Anlehnung an die von Codd definierten Funktionen allgemeiner DBMS, wie in 2.3 beschrieben, werden am Ende des Abschnitts vorgestellt. 4.1.1 Informationsstrukturanalyse Die Informationsstrukturanalyse beschreibt die strukturellen Eigenschaften sowie die zur Verfügung stehenden Informationen des zu integrierenden Web-Site. Dabei erfolgt die Analyse des Datenbestands ’per Hand’, durch die stichprobenartige Navigation innerhalb des Web-Site. In diesem Zusammenhang müssen vor allem zwei wesentliche Aspekte der strukturellen Beschaffenheit von Web-Sites beachtet werden. Hierbei handelt es sich einerseits um die allgemeine sowie andererseits um die spezielle Struktur von Web-Sites. 4.1.1.1 Allgemeine Struktur von Web-Sites Ein Web-Site besteht im wesentlichen aus einer Menge von Hypermedia-Dokumenten zusätzlich optionaler Objekte, wie z.B. Bild-, Ton- oder Videodateien. Charakteristisch für Hypermedia-Dokumente, die in der heutigen Zeit vorwiegend auf der Beschreibungssprache HTML basieren, ist der Einsatz sogenannter Verweise (hyperlinks), die einen bequemen Zugriff auf andere Objekte ermöglichen. Objekt extern Web−Site extern global aktuell lokal extern aktuell _ lokal intern Abbildung 4.1: Klassifikation von Hyperlinks KAPITEL 4. WEB-SITES ALS DATENBANKEN 34 DokumentTypeDefinition : "ACM Digital Library"" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Digital Library PublicationType Publication PubDetails Volume Issue Article Details Type Name PubName ISSN Description NumberOfVolume NumberOfIssue Year Month Title Author Pages Abstract Keyword URLFullText (PublicationType+)> (TypeName, Publication+)> (PubName, PubDetails)> (ISSN, Description?, Volume+)> (NumberOfVolume, Issue+)> (NumberOfIssue, (Year,Month)?, Article+)> (Title, Author+, Pages, Details)> (Abstract?, Keyword*, URLFullText)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> Abbildung 4.2: Struktur des ACM Digital Library Web-Site Ausgehend von dieser Charakterisierung wird, wie in Abb. 4.1 dargestellt, zwischen lokalen und globalen auf der einen sowie internen und externen Verweisen auf der anderen Seite unterschieden. Lokale Verweise beziehen sich auf Dokumente bzw. Multimedia-Dateien des aktuellen Web-Site, während Referenzen auf Objekte anderer Web-Sites als global bezeichnet werden. Wird auf eine Textstelle innerhalb des gleichen Dokuments Bezug genommen, so wird von einem internen Verweis gesprochen, wohingegen der externe ein anderes Objekt des aktuellen Web-Site referenziert. Für die Informationsstrukturanalyse sind lediglich die lokalen externen Verweise von Interesse, die im weiteren Verauf vereinfacht als Querverweise bezeichnet werden. Mit Hilfe von Querverweisen wird ein navigierender Zugriff auf die Objekte eines Web-Site ermöglicht. Ein speziell ausgezeichnetes Dokument, die sogenannte Homepage, ist dabei von besonderer Bedeutung, da es den Startpunkt für die Navigation darstellt. Alle anderen Objekte des Web-Site sind von der Homepage aus durch einen oder sukzessiven Einsatz mehrerer Querverweise zu erreichen. Aus mathematischer Sicht stellt ein Web-Site somit einen endlichen, gerichteten Multigraphen dar, wobei die Dokumente die Knoten- und die Querverweise die Kantenmenge des Graphen bilden. Werden Mehrfachkanten zu einer einzelnen zusammengefaßt, entsteht ein endlicher Digraph, der aufgrund der Eigenschaft der Homepage sogar ein Wurzelgraph ist. Somit besitzt jeder Web-Site wenigstens zwei aufspannende Bäume, was sich durch den Einsatz der als Breiten- bzw. Tiefensuche bezeichneten Algorithmen beweisen läßt (vgl. [Güt92]). Durch die graphentheoretischen Überlegungen wurde gezeigt, daß jeder Web-Site unterschiedliche hierarchische Strukturen enthält. Aufgabe der Informationsstrukturanalyse ist nun, eine für die Anwendung geeignete hierarchische Darstellung des Web-Site zu erkennen und für die nachfolgenden Entwurfsphasen zu dokumentieren. Die hierarchische Beschreibung des Web-Site kann dabei anhand einer Document Type Definition (DTD) basierend auf der SGML Standard-Syntax erfolgen. Die KAPITEL 4. WEB-SITES ALS DATENBANKEN 35 Struktur einer solchen DTD wurde unter Punkt 2.4.2 detailliert dargestellt. Abbildung 4.2 beschreibt die DTD der ACM Digital Library 1 . 4.1.1.2 Spezifische Strukturen von Web-Sites In vielen Fällen werden Dokumente insofern zusammengefaßt, daß sie die gleichen Inhalt- und Layout-spezifischen Strukturen besitzen. Das bedeutet, daß Informationen in eine für diese Dokumente charakteristische Schablone (Template) integriert werden. Überwiegend kommen Schablonen bei dynamisch erzeugten Dokumenten zum Einsatz. Hierbei wird, ausgehend von einer bestimmten Anfrage, ein auf der Schablone basierendes Dokument generiert, das die zu dieser Anfrage passenden Informationen enthält. Natürlich können Schablonen auch in statisch erzeugten Dokumenten zum Einsatz kommen, um beispielsweise ein einheitliches und leicht zu modifizierendes Layout zu realisieren. Ein einfaches Beispiel soll die Konzepte der Dokument-Generierung und insbesondere die Funktionalität von Schablonen verdeutlichen. Ein Web-Client (i.a. ein Browser) sendet zusammen mit dem URL eine Anfrage an den Web-Server. Dieser leitet die Anfrage über eine Schnittstelle an die ausgewählte Anwendung (z.B. eine Datenbank) weiter. Der die Schnittstelle realisierende Prozess integriert das Anfrageergebnis in die dafür vorgesehene Schablone und stellt das so generierte Dokument dem Web-Server zur Verfügung. Die Struktur des Dokuments bleibt dabei unabhängig vom Umfang des Anfrageergebnisses erhalten. Template−Klasse enthaltene Elemente DigitalLibrary PublicationType, TypeName Publications Publication, PubName PublicationDetails PubDetails, ISSN, Description PublicationReleases Volume, NumberOfVolume, Issue, NumberOfIssue, Year, Month TableOfContents Article, Title, Author, Pages DetailsOfArticle Details, Abstract, Keyword, URLFullText Abbildung 4.3: Template-Klassen des ACM Digital Library Web-Site Aufgabe der Informationsstrukturanalyse ist es, die auf der gleichen Schablone basierenden Dokumente zu erkennen und zu einer Template-Klasse zusammenzufassen. Jedes dieser Dokumente stellt dann eine Instanz der entsprechenden TemplateKlasse dar. Die Template-Klassen der ACMDigital Library, zusammen mit den jeweils darin enthaltenen Elementen, sind in Abb. 4.3 aufgeführt. 4.1.2 Web-Site Schema Nachdem die Informationsstrukturanalyse durchgeführt wurde, kann anhand der dabei ermittelten strukturellen Informationen ein Web-Site-Schema erstellt werden. Dieses besteht aus den unterschiedlichen Template-Klassen, die entsprechend 1 http://portal.acm.org/dl.cfm KAPITEL 4. WEB-SITES ALS DATENBANKEN 36 der durch die Strukturanalyse definierten Hierarchie angeordnet sind. Es sei darauf hingewiesen, daß auch noch andere Schemata existieren können, was allerdings für die weiteren Überlegungen nicht von Bedeutung ist. Jede Template-Klasse besitzt einen eindeutigen Namen sowie eine DTD, die die Struktur dieser Klasse beschreibt. Für die Entwicklung des Web-Site-Schemas müssen nun noch gewisse Modifikationen erfolgen, um den Übergang von einer Template-Klasse in eine andere zu modellieren. Template−Klasse : "PublicationReleases" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Volume NumberOfVolume Issue NumberOfIssue Year Month (NumberOfVolume, Issue+)> (#PCDATA)> (NumberOfIssue, (Year,Month)?, Article+)> (#PCDATA)> (#PCDATA)> (#PCDATA)> Template−Klasse : "TableOfContents" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Article Title Author Pages (Title, Author+, Pages, Details)> (#PCDATA)> (#PCDATA)> (#PCDATA)> Abbildung 4.4: Zwei Template-Klassen der ACM Digital Library Abb. 4.4 zeigt zwei Template-Klassen der ACM Digital Library zusammen mit den in diesen Klassen enthaltenen Element-Deklarationen. Die Template-Klasse ’PublicationReleases’ beispielsweise beinhaltet ein Container-Element ISSUE, das wiederum aus den Daten-Elementen NUMBEROFISSUE sowie optional YEAR und MONTH besteht. Wie zu erkennen ist, existiert jedoch noch ein weiteres Element in dem Inhaltmodell von ISSUE, nämlich ARTICLE. Dieses wird erst in der Klasse ’TableOfContents’ deklariert. Somit erfolgt explizit ein Querverweis von ’PublicationReleases’ nach ’TableOfContents’. Diese Querverweise sind für die Struktur des Web-Site von großer Bedeutung und müssen dementsprechend in das Schema integriert werden. Dies kann auf folgende Weise geschehen: 1. Ein neues Element mit dem Namen HYPERLINK und den Attributen URL und TEMPLATE-KLASSE wird innerhalb der Template-Klasse neu deklariert. 2. Die enthaltenen expliziten Querverweise werden innerhalb des Inhaltmodells durch das Element HYPERLINK ersetzt. 3. Die Kardinalitäten der jeweiligen Referenzobjekte werden explizit im Schema angegeben (s. hierarchisches Datenmodell). Nach Durchführung dieser Modifikationen kann das Web-Site-Schema erstellt werden. Das Schema für die ACM Digital Library ist in Abb. 4.5 dargestellt. Hierbei sind die eingefügten HYPERLINK Elemente deutlich zu erkennen. Abschließend sei noch erwähnt, daß anders als in diesem Beispiel auch mehrere Klassen auf einer Hierarchie-Ebene existieren können. 37 KAPITEL 4. WEB-SITES ALS DATENBANKEN Template−Klasse : "DigitalLibrary" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Digital Library PublicationType Type Name HyperLink HyperLink (PublicationType+)> (TypeName, HyperLink)> (#PCDATA)> EMPTY> Template−Klasse CDATA URL CDATA #REQUIRED #REQUIRED> Template−Klasse : "Publications" <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Publication PubName HyperLink HyperLink (PubName, HyperLink)> (#PCDATA)> EMPTY> Template−Klasse CDATA URL CDATA #REQUIRED #REQUIRED> 1 Template−Klasse : "PublicationDetails" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST PubDetails ISSN Description HyperLink HyperLink (ISSN, Description?, HyperLink)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "PublicationReleases" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Volume NumberOfVolume Issue NumberOfIssue Year Month HyperLink HyperLink (NumberOfVolume, Issue+)> (#PCDATA)> (NumberOfIssue, (Year,Month)?, HyperLink)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "TableOfContents" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Article Title Author Pages HyperLink HyperLink (Title, Author+, Pages, HyperLink)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> 1 Template−Klasse : "DetailsOfArticle" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Details Abstract Keyword URLFullText (Abstract?, Keyword*, URLFullText)> (#PCDATA)> (#PCDATA)> (#PCDATA)> Abbildung 4.5: Web-Site-Schema der ACM Digital Library KAPITEL 4. WEB-SITES ALS DATENBANKEN Abbildung 4.6: Browser-Darstellung einer Instanz von ’Publications’ Abbildung 4.7: Browser-Darstellung einer Instanz von ’PublicationDetails’ 38 KAPITEL 4. WEB-SITES ALS DATENBANKEN 4.1.3 39 Entwicklung des konzeptionellen Schemas Im Anschluß an die Definition des Web-Site-Schemas erfolgt die Erstellung des konzeptionellen Schemas des WSDBS, basierend auf dem hierarchischen Datenmodell. Dabei werden Container-Elemente als Record-Typen definiert, sowie die DatenElemente innerhalb eines Containers als entsprechende Attribute dieses RecordTyps. Die Elemente HYPERLINK werden als Referenzen auf die entsprechenden Child-Record-Typen interpretiert und stellen somit keine Attribute der jeweiligen Record-Typen dar. Ein anderer Fall ergibt sich, wenn innerhalb von Container-Elementen das mehrfache Auftreten von Daten-Elementen erlaubt wird. So kann das in der TemplateKlasse ’TableOfContents’ deklarierte Element ARTICLE mehrere Daten-Elemente des in derselben Klasse liegenden Typs AUTHOR enthalten. In dem hierarchischen Datenmodell ist die Existenz mehrwertiger Attribute jedoch nicht erlaubt. Aus diesem Grund müssen Klassen, in denen solche Konstruktionen auftreten, durch mehrere Record-Typen definiert werden. Im folgenden wird der Aufbau des konzeptionellen Schemas des WSDBS für die ACM Digital Library, basierend auf dem im vorhergehenden Abschnitt definierten Web-Site-Schema, detailliert erläutert. Die Elemente PUBLICATIONTYPE, PUBLICATION, PUBDETAILS, VOLUME und ISSUE werden direkt auf die entsprechenden Record-Typen abgebildet, da kein mehrfaches Auftreten von Daten-Elementen innerhalb dieser Container definiert ist. Bei der Abbildung von Elementen auf einen Record-Typ erfolgen gewisse Modifikationen. Zum einen werden die Record-Typen mit kompakteren Namen bezeichnet, um die spätere Handhabung der Datenbank zu erleichtern. Zum anderen werden den DatenElementen konkrete Daten-Typen wie z.B String, Integer etc. zugeordnet. Mit diesen Überlegungen lassen sich die erwähnten Elemente wie folgt als Record-Typen gemäß dem hierarchischen Modell definieren: PubType(TypeName:String) Publication(PubName:String) PubDetails(ISSN:Integer, Description:String, CurIssue:String) PubVolume(Volume:Integer) PubIssue(Issue:Integer) Einen besonderen Fall stellt das Element DIGITALLIBRARY dar, da es keine DatenElemente definiert. Es bildet die oberste Hierarchieebene und wird im konzeptionellen Schema als Root-Record der Datenbank verwendet. DigitalLibrary() Die Container-Elemente ARTICLE und DETAILS müssen aufgrund der im Vorfeld getätigten Überlegungen durch mehrere Record-Typen modelliert werden. In der Klasse ’TableOfContents’ beispielsweise kann das Container-Element ARTICLE mehrere Elemente des Typs AUTHOR enthalten. Es bietet sich demnach an, jeweils einen eigenen Record-Typ für ARTICLE bzw. AUTHOR zu definieren. Die restlichen Elemente lassen sich auf die gleiche Weise durch unterschiedliche Record-Typen modellieren. Daraus ergibt sich: Article(Title:String, Pages:String) Author(Name:String) Details(Abstract:String, URLFullText:URL) Keywords(Word:String) In Abbildung 4.8 ist das Schema-Diagramm des oben angegebenen konzeptionellen Schemas der ACM Digital Library zu sehen. Dabei sind die zu einer TemplateKlasse gehörenden Record-Typen durch einen gemeinsamen grauen Hintergrund zusammengefaßt. 40 KAPITEL 4. WEB-SITES ALS DATENBANKEN DigitalLibrary PubType TypeName Publication PubName 1 PubDetails Description ISSN CurIssue PubVolume Volume PubIssue Year Issue Month Article Title 1 Details Abstract URLFullText Pages Author Name Keyword Word Abbildung 4.8: Konzeptionelles Schema des ACM Digital Library Web-Site 4.1.4 Aufgaben des Web-Site Managementsystems In Abschnitt 2.1.3 wurden die Aufgaben bestehender DBMSe beschrieben. Nicht alle diese Anforderungen müssen bei der Entwicklung des WSMS berücksichtigt werden, da einerseits nur der lesende Zugriff auf einen Web-Site möglich ist, andererseits bestimmte Aufgaben dem jeweiligen Betreiber des Site obliegen. Unter Berücksichtigung dieser Einschränkungen müssen folgende Funktionen vom WSMS zur Verfügung gestellt werden. Integration Um dem Benutzer eine transparente Sicht auf den Datenbestand zu ermöglichen, müssen die für die Anwendung relevanten Daten des Web-Site in einer einheitlichen Form dargestellt werden. Dies geschieht durch die Transformation der HTMLbasierten Dokumente in Segmente, die die dem konzeptionellen Schema entsprechenden Datensätze enthalten. Operationen Der Benutzer muß die Möglichkeit besitzen, strukturiert nach Informationen innerhalb des Web-Site zu suchen. D.h., daß das WSMS bestimmte Operationen bereitstellen muß, mit deren Hilfe verschiedene Anfragen an die Datenbank“ gerichtet ” werden können. In Abhängigkeit spezieller Suchkriterien werden dann die entsprechenen Daten als Anfrageergebnis ausgegeben. Zu diesem Zweck wird die Web-Site Query Language (WS/QL) vom WSMS zur Verfügung gestellt, auf die innerhalb des Abschnitts über die Implementierung eines WSDBS näher eingegangen wird. 41 KAPITEL 4. WEB-SITES ALS DATENBANKEN Obwohl auch eine Implementierung von Benutzersichten und die Bereitstellung eines Katalogs durch das WSMS ermöglicht werden könnte, wird aufgrund der Tatsache, daß nur der Föderierungsdienst auf die Daten zugreift und i.a. nicht einzelne Benutzer, in diesem Zusammenhang darauf verzichtet. 4.2 Data Retrieval System Die Struktur der im Rahmen dieser Arbeit betrachteten Web-Sites läßt sich, wie im vorhergehenden Abschnitt gezeigt, durch eine Menge von hierarchisch angeordneten Template-Klassen beschreiben. Dabei werden alle Instanzen einer Klasse mit Hilfe einer vordefinierten HTML-Schablone generiert. Das heißt, daß Datenbankinhalte entsprechend einer Benutzeranforderung in die jeweils zugrunde liegende Schablone integriert werden, und dadurch das gewünschte HTML-Dokument erzeugt wird. Ist der HTML-Code der Schablone bekannt, lassen sich einfache Regeln in Form von regulären Ausdrücken definieren, um die integrierten Daten zu extrahieren. Im allgemeinen steht der Code der verwendeten Schablone jedoch nicht explizit zur Verfügung, sondern muß anhand des Quelltextes einer Dokumentinstanz ermittelt werden. Dies kann besonders bei umfangreichen Dokumenten eine aufwendige und zudem fehleranfällige Aufgabe darstellen. Aus diesem Grund ist im Rahmen dieser Arbeit ein Datengewinnungssystem (Data Retrieval System, DRS) entwickelt worden, das mit Hilfe von strukturerhaltenen Quelltext-Transformationen und einfach zu definierenden Regeln die Extraktion relevanter Informationen aus den entsprechenden HTML-Dokumenten ermöglicht. XML Datei Template−Klasse Crib−Datei XML Generator Extraktionssystem Extractor Gruppierung Filtersystem Konfigurationsdatei Reduktion HTML−Dokument Abbildung 4.9: Data Retrieval System Der prinzipielle Aufbau des DRS ist in Abb. 4.9 dargestellt. Wie zu erkennen, besteht das System aus zwei Software-Modulen. Das erste Modul (Filtersystem) transformiert eine Dokumentinstanz durch eine Reihe von Reduktions- und Simplifikationsschritten in eine vereinfachte Darstellung, die im weiteren Verlauf als Dokumentgerüst bezeichnet wird. Zu erwähnen ist in diesem Zusammenhang die Tatsache, daß bei der Umformung sämtliche relevanten Informationen unverändert erhalten bleiben. Welche Reduktionen bzw. Simplifikationen zum Einsatz kommen, KAPITEL 4. WEB-SITES ALS DATENBANKEN 42 wird in einer speziellen Konfigurationsdatei festgelegt. Es sei darauf hingewiesen, daß hierbei jede Template-Klasse eine individuelle Konfigurationsdatei nutzen kann. Das zweite Modul (Extraktionssystem) ist für die Datengewinnung verantwortlich. Dazu werden verschiedene Regeln definiert, die auf dem Dokumentgerüst basieren und somit relativ leicht zu formulieren sind. Die Regeln orientieren sich an der Struktur der entsprechenden Template-Klasse und werden in einer Crib-Datei zusammengefaßt. Die gewonnenen Daten werden an der Schnittstelle des DRS in Form einer XML-Datei zur Verfügung gestellt. Die Struktur dieser Datei wird durch die jeweilige Template-Klasse bestimmt. 4.2.1 Filtersystem Das Filtersystem des DRS besteht konzeptionell aus zwei verschiedenen Stufen, die bei der Implementierung unter dem Gesichtspunkt der Leistungssteigerung in einem einzelnen Filter integriert sind. Die weiteren Ausführungen basieren auf dem konzeptionellen Modell, um ein besseres Verständnis der jeweiligen Aufgaben und Möglichkeiten zu vermitteln. Die erste Stufe ist für die Reduktion des HTML-Codes des Dokuments verantwortlich, während die zweite Stufe die Elemente des reduzierten Dokuments in bestimmten Gruppen zusammenfaßt und dadurch eine vereinfachte Darstellung des Dokuments ermöglicht. Während das Dokument nach der Reduktion noch in jedem Browser darstellbar ist, kann das Dokument nach den Simplifikationen nicht mehr dargestellt werden. Dies ist jedoch nicht von Bedeutung, da einzig und allein wichtig ist, daß das Dokument vom Extraktionssystem korrekt interpretiert werden kann. 4.2.1.1 Reduktion des Dokuments Aufgabe der ersten Filterstufe ist die Reduktion der HTML-Dokumente, die im professionellen Bereich häufig sehr umfangreich gestaltet sind und nicht selten aus mehr als 5000 Zeilen HTML-Code bestehen. Diese Reduktion erfolgt durch die Elimination unterschiedlicher Objekte, die für die Extraktion der benötigten Informationen nicht benötigt werden. In der Terminologie des DRS werden mit dem Begriff Objekt unterschiedliche Konstrukte eines auf HTML basierenden Dokuments bezeichnet. Dies sind Elemente, Attribute, Kommentare, Sonderzeichen sowie EndTags. Welche Objekte vom System gelöscht werden sollen, wird durch eine Konfigurationsdatei, die dem Filter bei Ausführung übergeben wird, spezifiziert. Das DRS stellt verschiedene vordefinierte Konfigurationsdateien zur Verfügung, um eine gewisse Flexibilität bei der Bearbeitung von Dokumenten unterschiedlicher Template-Klassen zu gewährleisten und den Benutzer von aufwendigen administrativen Aufgaben zu entbinden. Gleichzeitig besteht selbstverständlich auch die Möglichkeit, individuelle Konfigurationen zu erstellen. Im folgenden werden die verschiedenen Objekte mit ihrem jeweiligen Eliminationspotential beschrieben. Elemente Innerhalb der Reduktionsphase ist es möglich, betimmte Elemente vollständig aus einem HTML-Dokument zu entfernen. Das bedeutet, daß der gesamte Code zwischen StartTag und EndTag eines Elements gelöscht wird. Die entsprechenden Tags werden in diesem Zusammenhang ebenfalls entfernt. Da HTML minimalisiertes Markup unterstützt, ist es nur erschwert möglich, Elemente zu eliminieren, die ein optionales EndTag besitzen. Im Gegensatz dazu können leere Elemente, die überhaupt kein abschliessendes Tag besitzen, ohne Einschränkungen entfernt werden. Elemente, die für die Strukturierung von Informationen in HTML-Dokumenten digitaler Bibliotheken nicht zwingend benötigt werden, sind beispielsweise Applets, KAPITEL 4. WEB-SITES ALS DATENBANKEN 43 Formulare, Skripte, Images oder ähnliche Objekte. Kommentare Ist die eindeutige Identifikation benötigter Informationen eines HTML-Dokuments nicht bzw. nur erschwert möglich, können die im entsprechenden Dokument existierenden Kommentare zur Extraktion herangezogen werden. Aus Gründen der Stabilität des DRS gegenüber textuellen Änderungen sollte von dieser Möglichkeit allerdings nur in Ausnahmefällen Gebrauch gemacht werden. In der Regel wird die Elimination dieser Objekte empfohlen, da sie für die Datengewinnung im Normalfall keine Rolle spielen. Sonderzeichen Designer von HTML-Dokumenten benutzen häufig Sonderzeichen, um das Layout einer Web-Page zu verbessern. Diese Zeichen haben in den meisten Fällen keinen informativen Charakter und sollten somit aus dem Dokument entfernt werden. Wird das Entfernen von diesen Objekten durch die Konfigurationsdatei gestattet, werden alle Textsegmente, die ausschließlich aus Sonderzeichen bestehen, aus dem Dokument gelöscht. Attribute Die meisten Attribute von HTML-Elementen werden bei der Informationsgewinnung nicht benötigt, da sie häufig zu Präsentationszwecken verwendet werden oder die Interaktion mit dem Web-Site unterstützen. Zwingend erforderlich ist in den meisten Fällen nur das Attribut HREF des ’Anchor’-Elements, das die URL eines Verweises enthält. Andere Attribute, wie z.B. CLASS, NAME oder ID, können ähnlich wie Kommentare zur eindeutigen Identifikation von Informationen herangezogen werden. In der Konfigurationsdatei des DRS werden alle Attribute, die nicht gelöscht werden sollen, aufgeführt. Die restlichen werden aus dem HTML-Code entfernt. End-Tags Wie schon mehrfach erwähnt, unterstützt HTML minimalisiertes Markup. D.h., die Angabe des EndTag ist bei einigen Elementen optional. Bei der maschinellen Erstellung von HTML-Dokumenten werden in der Regel auch optionale EndTags in den HTML-Code integriert. In diesem Fall sollten die entsprechenden Tags in Hinblick auf die Erkennung von Informationsstrukturen im Dokument erhalten bleiben. Manchmal wird allerdings minimalisiertes Markup genutzt, beispielsweise bei vielen handgeschriebenen HTML-Dokumenten. In solchen Fällen sollten optionale EndTags gelöscht werden, um Probleme bei der Identifizierung von Informationen zu vermeiden. Abschließend sei noch einmal darauf hingewiesen, daß sämtliche zu löschenden Objekte in einer Konfigurationsdatei spezifiziert werden. Die obigen Ausführungen stellen lediglich Empfehlungen dar und können jederzeit den individuellen Bedürfnissen angepaßt werden. Ziel der ersten Filterstufe ist einzig und allein eine Reduktion von HTML-Code, um die Struktur von inhärenten Informationen besser erkennen und diese somit leichter extrahieren zu können. 4.2.1.2 Gruppierung der Elemente Während der zweiten Phase des Filtersystems erfolgt eine Gruppierung von HTMLElementen. Auch diese Einteilung von Elementen in unterschiedliche und disjunkte Gruppen erfolgt in der Konfigurationsdatei des Filtersystems. Neben den bereits erwähnten vorgefertigten Dateien des DRS, können wiederum individuelle Konfigurationen erstellt werden. Dabei erfolgt zuerst die Definition der verschiedenen Gruppen und im Anschluß daran die Zuordnung der Elemente zu genau einer dieser Gruppen. Die Konfigurationsdateien des DRS basieren alle auf der durch die 44 KAPITEL 4. WEB-SITES ALS DATENBANKEN HTML−Document TopLevelElements HeadElements BodyElements FrameElements StandardElements BlockLevelElements GenericBlockElem. TableElements FormElements ListElements HeadingsEtc InlineElements PhraseElements FontStyleElements SpecialInlineElem. Abbildung 4.10: HTML-Element-Klassifikation KAPITEL 4. WEB-SITES ALS DATENBANKEN 45 Abbildung 4.11: Dokumentinstanz der ACM Digital Library HTML-Spezifikation implizit gegebenen Gruppierung von Elementen, die in Abb. 4.10 dargestellt ist. Ziel der Gruppierung ist einerseits wiederum das Erkennen der Dokumentstruktur, um die Definition von Regeln zur Informationsgewinnung zu erleichtern. Andererseits soll dadurch die Stabilität des Extraktionsprozesses erhöht werden. Wird ein Element innerhalb der HTML-Schablone durch ein anderes der gleichen Gruppe ersetzt, wird die Funktionalität des DRS in keiner Weise eingeschränkt. Schließlich werden noch redundante StartTags gleicher Gruppen sowie Elemente, die aufgrund vorausgegangener Eliminationen keinen Inhalt mehr besitzen, gelöscht. Zusammenfassend läßt sich sagen, daß durch die Reduktion eines HTML-Dokuments mit Hilfe des Filtersystems eine surjektive, strukturerhaltene Abbildung realisiert wird. Auf der Basis dieser Struktur können Regeln gebildet werden, mit denen das Extraktionssystem die benötigten Informationen in einem HTML-Dokument identifizieren kann. In der aktuellen Version des DRS erfolgt die Erstellung dieser Regeln ’per Hand’. Es besteht jedoch die Möglichkeit, diese Regeln automatisch zu generieren. In Abb. 4.11 ist eine, von einem Browser interpretierte, Dokumentinstanz der Template-Klasse ’TableOfContents’ des Web-Site der ACM Digital Library dargestellt. Der Quelltext dieses Dokuments besteht aus etwa 1000 Zeilen HTML-Code und hat einen Umfang von knapp 20 kB. Nach der Überschrift ’Table of Contents’ sind die für das ZIS relevanten Daten zu finden, die entsprechend der Template- 46 KAPITEL 4. WEB-SITES ALS DATENBANKEN Name of the Group Signature Elements AnchorElements ACE A TopLevelElements TLE BODY HEAD HeadElements HEL BASE META ISINDEX STYLE GenericBlockLevelElements GBE ADDRESS BLOCKQUOTE H1 H2 H3 H4 H5 NOSCRIPT P PRE ListElements LST DD OL TableElements TAB CAPTION COL COLGROUP TABLE TBODY TD TFOOT TH THEAD TR FormElements FRM BUTTON FIELDSET FORM INPUT LABEL LEGEND OPTGROUP OPTION TEXTAREA SELECT SpecialInlineElements SIE APPLET AREA BASEFONT BDO BR FONT IFRAME IMG PARAM MAP OBJECT Q SCRIPT SPAN SUB SUP FontStyleElements FSE B PhraseElements PHE ABBR ACRONYM CITE CODE DFN EM INS KBD SAMP STRONG VAR FrameElements FRA FRAME DIR UL BIG DL I S HTML LINK TITLE DT LI SMALL FRAMESET DIV CENTER H6 HR MENU STRIKE TT U DEL NOFRAMES Abbildung 4.12: Gruppierung der HTML-Elemente Klasse ’TableOfContents’ strukturiert sind. Alle davor angeordneten Informationen werden vom ZIS nicht benötigt. Um die Wirkungsweise und Fähigkeiten des Filtersystems zu verdeutlichen, soll die Transformation des vorgestellten Dokuments beispielhaft aufgezeigt werden. Die Gruppierung der Elemente ist in Abb. 4.12 zu erkennen. Zu löschende Elemente sind dabei durchgestrichen dargestellt. Kommentare sowie Sonderzeichen sollen gelöscht werden. Von den Attributen werden nur NAME, HREF und ID in das Dokumentgerüst übernommen. Basierend auf dieser Konfiguration, ergibt sich die in Abb. 4.13 dargestellte Datei. Die Elemente sind dabei durch entsprechende StartTags [++...] und EndTags [—...] gekennzeichnet, wobei in diesem Zusammenhang minimalisiertes Markup genutzt wird. In der Abbildung läßt sich die Struktur des Dokuments deutlich erkennen. Aus Gründen der Übersichtlichkeit wurden die originären Daten entweder durch ihre Elementnamen (TITLE, AUTHOR+, ...) dargestellt, sofern es sich um für das ZIS relevante Informationen handelt, sonst einfach durch #PCDATA bzw. #DATA bei Attributen. Es sei darauf hingewiesen, daß die Zeilennummern nicht Bestandteil des originären Dokuments sind. Die gestrichelten bzw. gepunkteten Linien sind lediglich zur besseren Überschaubarkeit in das Dokument eingefügt worden und müssen bei der Definition von Extraktionsregeln nicht beachtet werden. KAPITEL 4. WEB-SITES ALS DATENBANKEN 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [++TLE] [++HEL] [++TLE] [++GBE] [++ACE] [++TAB] [++ACE] [++TAB] [++ACE] [++TAB] [++ACE] [++TAB] [++ACE] [++TAB] [++ACE] [++TAB] [++SIE] [++TAB] [++SIE] [++TAB] [++GBE] [++TAB] [++SIE] [++ACE] [++SIE] [++SIE] [++TAB] [++SIE] [++TAB] [++GBE] [++TAB] [++ACE] [++SIE] [++SIE] [++FSE] [++ACE] [++TAB] [++ACE] [++SIE] [++SIE] [++FSE] [++ACE] [++TAB] [++ACE] [++SIE] [++SIE] [++FSE] [++ACE] [++TAB] [++ACE] [++GBE] [++SIE] 47 ....................................................... #PCDATA [--HEL] ....................................................... ======================================================= ($name #data) [--ACE] ....................................................... ($href #data) [--ACE] ....................................................... ($href #data) [++SIE] #PCDATA [--ACE] ....................................................... ($href #data) [++SIE] #PCDATA [--ACE] ....................................................... ($href #data) [++SIE] #PCDATA [--ACE] ....................................................... ($href #data) [++SIE] #PCDATA [--ACE] ....................................................... #PCDATA [--SIE] ....................................................... #PCDATA [--SIE] ....................................................... ======================================================= ....................................................... [++ACE] ($href #data) #PCDATA [--ACE] [--SIE] ($href #data) [++SIE] #PCDATA [--ACE] #PCDATA ....................................................... #PCDATA [--SIE] ....................................................... ======================================================= ....................................................... ($href #HYPERLINK) [++PHE] #TITLE [--PHE] [--ACE] #AUTHOR+ #PAGES [--FSE] ($href #data) [++SIE] #PCDATA [--ACE] ....................................................... ($href #HYPERLINK) [++PHE] #TITLE [--PHE] [--ACE] #AUTHOR+ #PAGES [--FSE] ($href #data) [++SIE] #PCDATA [--ACE] ....................................................... ($href #HYPERLINK) [++PHE] #TITLE [--PHE] [--ACE] #AUTHOR+ #PAGES [--FSE] ($href #data) [++SIE] #PCDATA [--ACE] ....................................................... ($href #data) [--ACE] ======================================================= Abbildung 4.13: Dokumentgerüst KAPITEL 4. WEB-SITES ALS DATENBANKEN 4.2.2 48 Extraktionssystem Ähnlich wie das Filtersystem besteht das Extraktionssystem aus zwei logischen Stufen, die allerdings bei der Implementierung zusammengefaßt worden sind. Die erste Stufe ist für die Extraktion der durch die Template-Klasse definierten Daten zuständig, während die zweite Stufe aus diesen Daten entsprechend der Struktur der Template-Klasse eine XML-Datei generiert. Im folgenden sollen die Funktionen der einzelnen Stufen näher beschrieben werden. Alle in diesem Zusammenhang verwendeten Beispiele beziehen sich auf das im vorhergehenden Abschnitt gezeigte Dokumentgerüst der Instanz einer Template-Klasse der ACM Digital Library. 4.2.2.1 Extraktion relevanter Informationen Die Extraktion der relevanten Daten des Dokumentgerüsts verläuft in Anlehnung an die in [MMK99] vorgestellten Konzepte zur Informationsgewinnung aus allgemeinen HTML-Dokumenten. Dabei beziehen sich die entsprechenden Funktionen in [MMK99] auf originäre HTML-Texte und nicht auf die durch das Filtersystem erzeugten Gerüste. Trotzdem lassen sich die Konzepte auf die im Rahmen dieser Arbeit verwendeten Dokumentgerüste transformieren, da es sich bei diesen ebenfalls, ähnlich zu SGML, um mit Markup versehene Dokumente handelt. Jedes Dokumentgerüst besteht aus einer Menge von Token. Bei einem Token kann es sich in diesem Zusammenhang um ein Tag, eine Zeichenkette, um ein einzelnes Zeichen, einen numerischen Ausdruck oder ähnliches handeln. Eine Gruppe aufeinanderfolgender Token wird innerhalb des DRS als Crib, also eine Art Anhaltspunkt bezeichnet 2 . Um die zu extrahierenden Informationen innerhalb des Dokumentgerüsts zu identifizieren, wird nun jedem der in der Template-Klasse definierten Elemente ein StartCrib und ein EndCrib zugeordnet. Mit Hilfe dieser Cribs können dann die benötigten Daten aus dem Dokumentgerüst extrahiert werden. In dem in Abb. 4.13 dargestellten Gerüst könnten beipielsweise [++PHE] als StartCrib und [—PHE] als EndCrib des Elements TITLE definiert werden. Um die korrekte Extraktion der Daten zu ermöglichen, müssen bei der Definition von Cribs bestimmte Konventionen eingehalten werden. Zum einen ist es erforderlich, daß die StartCribs von Elementen, die in der gleichen Umgebung definiert sind, unterschieden werden können, d.h. sie müssen eindeutig sein. Die Umgebung bezieht sich hierbei auf die hierarchische Anordnung der in der DTD enthaltenen Elemente (Elemente, die einen gemeinsamen Parent besitzen, liegen in der gleichen Umgebung). Die Elemente TITLE und PAGES beispielsweise liegen in der durch ARTICLE definierten Umgebung. EndCribs dagegen müssen keine Eindeutigkeit aufweisen, da bei der Extraktion aus dem Kontext hervorgeht, welchen Elementen sie zugeordnet sind. Gleichzeitig kann jeder EndCrib wiederum als StartCrib eines anderen oder auch des gleichen Elements fungieren. In Abb. 4.14 sind Crib-Definitionen des im Vorfeld beschriebenen Dokumentgerüsts dargestellt. Dabei wurde die TemplateKlasse um das zusätzliche Element BLOCK ergänzt. Dieses, nur bei der Extraktion benötigte Element, dient als Container für alle ARTICLE Elemente. Dadurch kann der Extraktionsvorgang auf den Teil des Dokumentgerüsts eingeschränkt werden werden, in dem die relevanten Informationen enthalten sind. Sind die Cribs entsprechend den vorgestellten Konventionen definiert worden, können die relevanten Informationen mit Hilfe eines Scanners, der das Dokumentgerüst sequentiell durchläuft, extrahiert werden. In diesem Zusammenhang ist zu 2 Der Begriff Crib wurde bei der Enigma-Dechiffrierung von den englischen Kryptonanalytikern aus Bletchley Park, zu denen auch Alan Turing gehörte, verwendet. (vgl. Simon Singh, Geheime Botschaften, Carl Hanser Verlag 1999) 49 KAPITEL 4. WEB-SITES ALS DATENBANKEN Element StartCrib EndCrib Rule Block [++GBE] [++TAB] [++ACE] [++GBE] R1 R2 Article [++TAB] [++ACE] ($href #data) [++PHE] [++TAB] R3 R4 Title [++PHE] [−−PHE] R5 R6 Author+ [−−ACE] [++SIE] [++SIE] R7 R8 Pages [++FSE] [−−FSE] R9 R10 HyperLink [++TAB] [++ACE] ($href [++PHE] R11 R12 Abbildung 4.14: Crib-Definitionen für die Klasse ’TableOfContents’ erwähnen, daß bei der erfolgreichen Identifikation eines Crib der Scanvorgang an dessen Anfang fortgesetzt wird. Dieser Umstand scheint auf den ersten Blick ziemlich sinnlos, da der Scanner nach dem ersten gefundenen Crib in eine Endlosschleife zu geraten scheint. Dies ist jedoch nicht der Fall, da sich der Scanner zu jedem Zeitpunkt des Durchlaufs in einem eindeutigen Zustand befindet. Wird ein Crib erfolgreich identifiziert, ändert sich infolge dessen auch der Zustand des Scanners. Ein Beispiel soll diesen Zusammenhang verdeutlichen. Zu Beginn des Vorgangs sucht der Scanner nach dem StartCrib des obersten Elements der (durch die DTD der Template-Klasse definierten) Hierachiebene. Innnerhalb der betrachten TemplateKlasse handelt es sich dabei um das im nachhinein ergänzte Elemente BLOCK. Wird das StartCrib dieses Elements vom Extraktionssystem identifiziert, ändert sich der Zustand des Scanners dahingehend, daß sich das System nun in einer anderen Umgebung befindet und demzufolge die Tokenfolge des StartCrib von BLOCK anders interpretiert wird. Das Zustandsdiagramm des Scanners für das in diesem Zusammenhang verwendete Beispiel ist in Abb. 4.15 dargestellt. 4.2.2.2 Generierung einer XML-Datei Die extrahierten Informationen werden als XML-Datei an der Schnittstelle des DRS zur Verfügung gestellt. Die Struktur dieser Datei wird dabei durch die zugrunde liegende Template-Klasse bestimmt. Zusätzlich werden bei der Generierung mehrwertige Elemente, wie z.B. AUTHOR+, in atomare Einheiten zerlegt. In Abb. 4.16 ist die aus dem im Vorfeld beschriebenen Beispiel generierte XML-Datei dargestellt. Dabei wird allerdings nur die Dokumentinstanz berücksichtigt, und die zugehörige DTD nicht mit aufgeführt. 50 KAPITEL 4. WEB-SITES ALS DATENBANKEN other S3 other R5 other R1 S0 R6 other R8 R3 S1 R4 S2 R9 R10 R12 R2 S7 S4 R7 other S5 R11 S6 other S0 S1 S2 S3 Anfangszustand Block Article Title S4 S5 S6 S7 Author+ Pages HyperLink Endzustand Abbildung 4.15: Zustandsdiagramm des Scanners für die Klasse ’TableOfContents’ KAPITEL 4. WEB-SITES ALS DATENBANKEN <Article> <Title> Logical models of argument </Title> <Author> Carlos Ivan Chesnevar </Author> <Author> Ana Gabriela Maguitman </Author> <Author> Ronald Prescott Loui </Author> <Pages> 337-383 </Pages> <HyperLink Template-Klasse="DetailsOfArticle" URL="..."> </Article> <Article> <Title> Extracting usability information from user interface events </Title> <Author> David M. Hilbert </Author> <Author> David F. Redmiles </Author> <Pages> 384-421 </Pages> <HyperLink Template-Klasse="DetailsOfArticle" URL="..."> </Article> <Article> <Title> The state of the art in distributed query processing </Title> <Author> Donald Kossmann </Author> <HyperLink Template-Klasse="DetailsOfArticle" URL="..."> </Article> Abbildung 4.16: XML-Datei 51 KAPITEL 4. WEB-SITES ALS DATENBANKEN 4.3 52 Implementierung des Web-Site DBS Der folgende Abschnitt beschreibt die der Implementierung des WSDBS zugrunde liegenden Konzepte. Hierbei wird zunächst eine Beispieldatenbank vorgestellt, anhand derer die Konzepte im weiteren Verlauf verdeutlicht werden sollen. Darauf folgend wird die 3-Schichten-Architektur des WSDBS beschrieben und im Anschluß daran die Funktionsweise der Anfragesprache WS/QL erläutert. Schließlich werden die einzelnen Schnittstellen sowie die sie realisierenden Schichten besprochen. 4.3.1 Beispieldatenbank Anhand einfacher Beispiele sollen die bei der Implementierung des WSDBS verwendeten Konzepte verdeutlicht werden. Um eine einheitliche Betrachtungsweise zu ermöglichen, basieren diese Beispiele alle auf einem einfachen Web-Site, der die hierarchischen Strukturen der Bundesliga beschreibt und die imaginäre Adresse www.example.liga.de besitzt. Auf der Homepage (www.example.liga.de/index.html ) sind die der Liga angehörenden Vereine aufgeführt. Jeder dieser Vereine besteht aus einem oder mehreren Trainern, einer Menge von Spielern und spielt in einem(!) eigenen Stadion. Ein Spieler wiederum kann auf verschiedenen Positionen eingesetzt werden. Der Web-Site besitzt das in Abb. 4.17 dargestellte Schema. Template−Klasse : "Bundesliga" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Bundesliga (Verein+)> (VName, HyperLink, HyperLink, Stadion)> Verein (#PCDATA)> Vname (SName, Kapazität)> Stadion (#PCDATA)> SName (#PCDATA)> Kapzität HyperLink EMPTY> HyperLink Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "Trainer" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Trainer Vorname Name Alter (Vorname, Name, Alter?)> (#PCDATA)> (#PCDATA)> (#PCDATA)> Template−Klasse : "Mannschaft" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Spieler Vorname Name Alter Position (Vorname, Name, Alter, Position+)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> Abbildung 4.17: Schema des Bundesliga Web-Site 53 KAPITEL 4. WEB-SITES ALS DATENBANKEN Aus dem Web-Site-Schema kann nun das konzeptionelle Schema des WSDBS entwickelt werden. Dabei werden Container-Elemente durch entsprechende RecordTypen dargestellt, während die Daten-Elemente die Atrribute der jeweiligen Typen beschreiben. Besitzt jedoch ein Container-Element ein mehrfaches Daten-Element, wie in diesem Beispiel SPIELER das Element POSITION, so muß dieser Zusammenhang durch mehrere Record-Typen modelliert werden, da mehrwertige Attribute nicht Bestandteil des hierarchischen Datenmodells sind. Das konzeptionelle Schema des Bundesliga Web-Site wird in Abb. 4.18 gezeigt. Bundesliga Verein Name Vorname Trainer Name 1 Stadion Name Kapazität Alter Vorname Spieler Name Alter Position PosName Abbildung 4.18: Konzeptionelles Schema des Bundesliga Web-Site 4.3.2 Die 3-Schichten-Architektur des Web-Site DBS In Abschnitt 2.1.4 wurde die Fünf-Schichten-Architektur als allgemeine Grundlage für die Implementierung von DBSen vorgestellt. Auf dieser Architektur basierend erfolgt die Entwicklung des WSDBS. Dabei werden zum einen die Aufgaben des Betriebssystems mit der dazugehörigen Dateischnittstelle vom Data Retrieval System übernommen, das allerdings nicht zum WSDBS gehört, sondern nur eine XMLorientierte Schnittstelle für die Kommunikation mit dem WSDBS zur Verfügung stellt. WSDBS und DRS sind jedoch nicht vollständig voneinander unabhängig, da beide die gleiche Template-Tabelle beinhalten müssen, um eine fehlerfreie Kommunikation zu gewährleisten. Zum anderen dient die satzorientierte Schnittstelle in hierarchischen DBSen als Anwendungsprogrammierschnittstelle [HR99], so daß das Datensystem und die mengenorientierte Schnittstelle bei der Implementierung des WSDBS keine Berücksichtigung finden. Ausgehend von diesen Überlegungen liegt der Implementierung des WSDBS die in Abb. 4.19 dargestellte 3-SchichtenArchitektur zugrunde. Das Data Retrieval System extrahiert die relevanten Informationen der Dokumente eines Web-Site und generiert aus den jeweiligen Daten ein XML-Dokument, das an der XML-orientierten Schnittstelle für das WSDBS bereitgestellt wird. Das Puffersystem hat zwei Aufgaben zu erfüllen. Die erste besteht darin, die Daten eines XML-Dokuments in formatierte Datensätze zu überführen und diese auf ein oder mehrere Segmente abzubilden. An der Pufferschnittstelle stellt sich die Datenbank dann als Ganzes in Form einer Menge von Segementen dar. Aufgrund der Tatsache, daß jedoch nur ein Teil dieser Menge temporär im Puffersystem gehalten wird, 54 KAPITEL 4. WEB-SITES ALS DATENBANKEN Benutzer/ Anwendung Satzorientierte Schnittstelle Zugriffssystem Web−Site DBS Interne Satzschnittstelle Speichersystem Pufferschnittstelle Puffersystem XML−orientierte Schnittstelle DRS Web−Site Schnittstelle Web−Site Abbildung 4.19: 3-Schichten-Architektur des WSDBS müssen bei Bedarf neue Segemente generiert bzw. vorhandene gelöscht werden. Somit liegt die zweite Aufgabe des Puffersystems in der Bereitstellung angeforderter Segmente. Die interne Satzschnittstelle bietet eine monolithische Sicht auf den Datenbestand. Der übergeordneten Schicht wird somit ein einheitlicher Zugriff auf die Datenbank zur Verfügung gestellt, ohne daß Kenntnisse darüber existieren müssen, in welchen Segementen die entsprechenden Datensätze tatsächlich zu finden sind. Die korrekte Abbildung der Gesamtmenge von Datensätzen auf die jeweiligen Segmente wird dabei vom Speichersystem übernommen. Die Kommunikation mit der ’Außenwelt’ wird schließlich durch die satzorientierte Schnittstelle realisiert. Dabei wird mit WS/QL eine einfache Anfragesprache zur Verfügung gestellt, die es dem Benutzer bzw. einer Anwendung erlaubt, einzelne Datensätze aus der Datenbank zu extrahieren. 4.3.3 Die Anfragesprache WS/QL Der Zugriff auf die Datenbank erfolgt durch die Anfragesprache WS/QL (WebSite Query Language), die auf den Konzepten der für das IMS-System von IBM entwickelten Sprache DL/I basiert und die an der satzorientierten Schnittstelle zur Verfügung gestellten Datenstrukturen und Operationen vereint. Jede Operation in WS/QL liefert als Ergebnis maximal ein Record des entsprechenen Typs. Somit gehört WS/QL zu den sogenannten record-at-a-time Sprachen. Aus diesem Grund werden die Operationen in eine Wirtssprache (host language) eingebettet, so daß Anfragen, die als Ergebnis beliebig viele Records eines bestimmten Typs liefern, generiert werden können. In den folgenden Beispielen wird JAVA als Wirtssprache genutzt, da auch die Implementierung des WSDBS in dieser Sprache erfolgt. Die Ausführungen basieren auf den Darstellungen von [EN94] und [Ull82]. 4.3.3.1 Arbeitsumgebung Jede Anfrage in WS/QL liest ein Record und schreibt dieses in ein dafür vorgesehenes Feld innerhalb der Arbeitsumgebung (user work area, UWA). In der UWA KAPITEL 4. WEB-SITES ALS DATENBANKEN 55 besitzt jeder Record-Typ ein eigenes Feld. Abbildung 4.20 zeigt die in JAVA als Klassen realisierten UWA-Felder für die Bundesliga Datenbank. Daneben werden noch die Variablen CurrentRecord, CurrentParentRecord und CurrentRecordType innerhalb des UWA zur Verfügung gestellt, die einen Zeiger auf den jeweils aktuellen Record, ParentRecord bzw. RecordType darstellen. Dadurch wird ermöglicht, daß Teilanfragen nicht jedesmal von der Wurzel der Hierarchie aus starten müssen. class Verein { String Name ; } class Trainer { String String int Vorname ; Name ; Alter ; } class Spieler { String String int Vorname ; Name ; Alter ; } class Stadion { String int Name ; Kapazität ; } class Position { String PosName ; } Abbildung 4.20: Record-Typen als JAVA-Klassen innerhalb der UWA Die Programmierung komplexer Anfragen, die auf einer record-at-a-time Sprache basieren, erfordert die ständige Interaktion zwischen dem Programm und dem WebSite Managementsystem. Zu diesem Zweck wird nach jeder Ausführung eines Kommandos eine Statusinformation an das Programm übergeben. Dies wird durch eine Statusvariable, die als DB Status bezeichnet wird, realisiert. In den folgenden Beispielen soll DB Status=0 eine erfolgreiche Ausführung des Kommandos anzeigen. Die Struktur, auf denen die Operationen in diesem Zusammenhang agieren, stellt die hierarchische Sequenz der Ausprägungen der Datenbank dar. Die Operationen von WS/QL sollen im folgenden erläutert und exemplarisch vorgestellt werden. Obwohl bei der Implementierung des WSDBS als JAVA-Methoden realisiert, werden die Operationen in einer SQL ähnlichen Syntax dargestellt, um das Verständnis ihrer Funktionalität zu erleichtern. 4.3.3.2 Die GET Operationen Die grundlegende Operation von WS/QL ist das Kommando GET. Dabei werden von WS/QL zwei Variationen dieses Kommandos zur Verfügung gestellt. GET FIRST <record type name> [ WHERE <condition > ] GET NEXT <record type name> [ WHERE <condition > ] Der Unterschied dieser Kommandos besteht darin, daß GET FIRST jedesmal am Anfang der hierarchischen Sequenz die Suche startet, während GET NEXT von dem aktuellen Record, wie in der Variablen CurrentRecord spezifiziert, beginnt. Beide Kommandos durchlaufen die hierarchische Sequenz solange, bis sie ein Record des spezifizierten Record-Typs, der die angegebenen Bedingungen erfüllt, gefunden haben. War die Suche erfolgreich, wird dieses Record in das im UWA spezifizierte Feld geschrieben und die Statusinformation ’erfolgreich’ (DB Status=0) an das Programm weitergegeben. KAPITEL 4. WEB-SITES ALS DATENBANKEN 56 Folgendes Kommando sucht den ersten Spieler (innerhalb der hierarchischen Sequenz), der den Nachnamen Müller hat: GET FIRST Spieler WHERE Name == ’Müller’ ; Das Kommando durchläuft nun nacheinander die Datensätze der hierarchische Sequenz. Wird ein Record des Record-Typs ’Spieler’ gefunden, der die Bedingung Nachname = ’Müller’ erfüllt, wird der Record in das dafür vorgesehene Feld der UWA geschrieben und die Statusinformation ’Suche erfolgreich’ an das Wirtsprogramm zurückgegeben. Existiert kein solcher Spieler, wird die Statusinformation ’Suche erfolglos’ (z.B. DB Status=-1) ausgegeben. Sollen nun alle Records des Typs Spieler, die den Nachnamen ’Müller’ tragen, gefunden werden, so muß mit Hilfe der Wirtssprache eine Wiederholungsanweisung konstruiert werden, in die das Kommando GET NEXT eingebettet wird. Dies könnte wie folgt aussehen: GET FIRST Spieler WHERE Name == ’Müller’ ; while (DB STATUS == 0) { System.out.println(Spieler.Vorname, Spieler.Name) ; GET NEXT Spieler WHERE Name == ’Müller’ ; } Das Programm veranlaßt durch das Kommando GET FIRST die Suche nach dem ersten Spieler mit dem Nachnamen ’Müller’. Ist ein solcher Spieler gefunden worden, wird die Variable CurrentRecord auf den gefundenen Record gesetzt und GET NEXT sucht ab diesem Record in der hierarchischen Sequenz nach dem nächsten Spieler, der die Bedingung erfüllt. Wiederum wird CurrentRecord aktualisiert und der nächste Spieler gesucht, usw. 4.3.3.3 Das Kommando GET PATH Um Anfragen zu generieren, die Record-Typen unterschiedlicher Hierarchieebenen miteinbeziehen, stellt WS/QL das Kommando GET PATH zur Verfügung, das folgende Syntax besitzt: GET ( FIRST | NEXT ) PATH <HierarchicalPath> [ WHERE <condition> ] ’HierarchicalPath’ ist dabei eine Liste von Record-Typen, die von der Wurzel beginnend einen Pfad innerhalb des hierarchischen Schemas beschreiben. In dem BeispielSchema sind z.B. ’Bundesliga, Verein, Spieler’ oder ’Bundesliga, Verein, Stadion’ reguläre Pfade. In der Bedingungsliste können dabei Bedingungen an verschiedene Record-Typen geknüpft werden. Aus diesem Grund müssen vor den Attributen noch die Record-Typ-Namen angegeben werden. Werden z.B. alle Spieler des Hamburger SV gesucht, die den Vornamen ’Holger’ haben, könnte die Anfrage so aussehen: GET FIRST PATH Bundesliga, Verein, Spieler WHERE Verein.Name == ’Hamburger SV’ AND Spieler.Vorname == ’Holger’; while (DB STATUS == 0) { System.out.println(Spieler.Vorname, Spieler.Name) GET NEXT PATH Bundesliga, Verein, Spieler WHERE Verein.Name == ’Hamburger SV’ AND Spieler.Vorname == ’Holger’; } Eine Besonderheit des GET PATH Kommandos ist, daß alle Records entlang des Pfads in die entsprechenden Felder der UWA geschrieben werden. Dadurch ist die KAPITEL 4. WEB-SITES ALS DATENBANKEN 57 Ausgabe übergeordneter Records möglich. Eine Anfrage ’Finde den in der hierarchischen Sequenz zuerst vorkommenden Verein, der einen Trainer beschäftigt, der älter ist als 60 Jahre’ kann so aussehen: GET FIRST PATH Bundesliga, Verein, Trainer WHERE Trainer.Alter > 60 ; System.out.println(Verein.Name) ; 4.3.3.4 Das Kommando GET NEXT WITHIN PARENT Um alle Records eines bestimmten Typs zu suchen, die den gleichen Record als Vorgänger haben, wird das Kommando GET NEXT WITHIN PARENT benutzt, das folgende Syntax besitzt: GET NEXT <descendant record type name> WITHIN PARENT [ <parent record type name> ] [ WHERE <condition> ] Der ’descendant type’ muß kein Child-Record-Typ des CurrentParent Record-Typs sein, sondern kann einen beliebigen nachfolgenden Record-Typ darstellen. Handelt es sich jedoch um einen direkten Nachfolger, also einen Child-Record des CurrentRecord, so kann die Angabe des ’parent record type name’ weggelassen werden. Ein Beispiel soll die Wirkungsweise des Kommandos verdeutlichen. Hierbei werden alle Spieler von ’Schalke04’ ausgegeben. GET FIRST Verein WHERE Name == ’Schalke 04’; GET NEXT Spieler WITHIN PARENT; while (DB STATUS == 0) { System.out.println(Spieler.Vorname, Spieler.Name) GET NEXT Spieler WITHIN PARENT Verein ; } 4.3.4 XML-orientierte Schnittstelle Das WSDBS setzt direkt auf dem DRS, das für die Gewinnung der in dem Web-Site gespeicherten Daten verantwortlich ist, auf. Die Verbindung erfolgt an der durch das DRS zur Verfügung gestellten, XML-orientierten Schnittstelle. Die Kommunikation zwischen dem DRS und der untersten Schicht des WSDBS, in diesem Fall dem Puffersystem, verläuft dabei nach dem in Abb. 4.21 dargestellten Prinzip. Voraussetzung dafür ist, daß sowohl WSMS, als auch DRS mit derselben Template-Tabelle arbeiten, die die DTD jeder Klasse enthält. Wird ein neues XML-Dokument vom WSDBS benötigt, so übergibt das Puffersystem die URL und die dazugehörige Template-Klasse an das DRS. Dieses lädt das durch die URL spezifizierte Web-Site-Dokument und generiert in Abhängigkeit der jeweiligen Template-Klasse das entsprechende XML-Dokument. Alle für das WSDBS relevanten Informationen sind in diesem Dokument enthalten. Als relevant werden dabei sowohl die gemäß dem gegebenen Schema definierten Daten als auch strukturelle Informationen, wie z.B. im Dokument enthaltene Querverweise, betrachtet. Zunächst erscheint die Generierung und die darauf folgende Interpretation von XML-Dokumenten als überflüssig, da das DRS die gewonnenen Daten umgehend in formatierte Datensätze überführen und an das Puffersystem weiterleiten könnte. In diesem Fall wäre es jedoch angebracht, das DRS als Bestandteil des WSDBS zu 58 KAPITEL 4. WEB-SITES ALS DATENBANKEN Puffersystem URL Template−Klasse XML−orientierte Schnittstelle XML Datei DRS Web−Site Schnittstelle WWW Abbildung 4.21: Die XML-orientierte Schnittstelle betrachten. Im Rahmen dieser Arbeit soll allerdings kein unveränderliches Modell zur Anfragebearbeitung von Web-Site-Inhalten aufgestellt, sondern Möglichkeiten zur Lösung dieser Problematik gezeigt werden. Durch die Generierung von XMLDateien aus den jeweiligen Dokumenten des Web-Site erhält das WSDBS einen modularen Charakter und kann ohne Einfluß auf das DRS durch alternative Lösungen der Anfragebearbeitung, wie z.B. XQuery, ersetzt werden. In dieser Arbeit wird allerdings der Einsatz eines WSDBS aufgrund der im Vorfeld genannten Gründe vorgezogen. 4.3.5 Pufferschnittstelle Bevor auf die Konzepte und Eigenschaften der Pufferschnittstelle detailliert eingegangen wird, erfolgt vorab eine Beschreibung darüber, nach welchem Schema die einzelnen Datensätze in Segmente aufgeteilt werden. Ein Segment besteht aus allen Records eines bestimmten Record-Typs, die den gleichen Parent-Record besitzen. Um diesen Zusammenhang zu verdeutlichen, ist in Abb. 4.22 eine Ausprägung des Bundesliga Web-Site mit der Einteilung in entsprechende Segmente dargestellt. Bundesliga FC Bayern Hitzfeld Segment Elber Hamburger SV Kahn ... Scholl Segment .... Hannover 96 Segment OlympiaStadion Segment Torwart Segment Abbildung 4.22: Einteilung der Datensätze in Segmente Die Pufferschnittstelle stellt dem übergeordneten Speichersystem eine Sicht auf alle Segmente der Datenbank zur Verfügung. Daneben werden gewisse Operationen 59 KAPITEL 4. WEB-SITES ALS DATENBANKEN bereitgestellt, die dem Speichersystem ermöglichen, auf die gewünschten Segmente zugreifen zu können. Bei der Beschreibung des konzeptionellen Datenbank-Schemas wurde gezeigt, daß jede Template-Klasse durch ein oder mehrere Record-Typen modelliert wird. Die an der XML-orientierten Schnittstelle zur Verfügung gestellten Dokumente basieren aber gerade auf den Template-Klassen des Web-Site-Schemas. Demnach können diese Dokumente ebenfalls Daten unterschiedlicher Record-Typen enthalten. Jedes Segment wiederum besteht ausschließlich aus Records eines einzigen Record-Typs. Somit besteht eine Aufgabe des Puffersystems darin, die jeweiligen XML-Dokumente in ein bzw. mehrere Segmente zu transformieren. Für die Transformation der XML-Dokumente in verschiedene Segmente stellt das Puffersystem eine Methode zur Verfügung, die, ähnlich der Funktionsweise eines Scanners, ein Dokument sequentiell durchläuft und die Daten-Elemente den jeweils passenden Segmenten zuordnet. Wird an der internen Satzschnittstelle ein Segment angefordert, das gegenwärtig nicht im Puffer gespeichert ist, wird die URL des Dokuments, das dieses Segement enthält, aus der Segment-Tabelle ermittelt, und durch das DRS die entprechende XML-Datei generiert. Neben der Interpretation der jeweiligen XML-Dokumente besteht die Aufgabe des Puffersystems darin, eine bestimmte Menge von Segmenten in einem Puffer zu halten und bei Bedarf gegebenenfalls durch neue zu ersetzen. Der Puffer wird aus einer gewissen Anzahl von Blöcken gebildet. Dabei repräsentiert jeder Block eine Template-Klasse des Web-Site-Schemas. Der Puffer besteht also aus genausoviel Blöcken wie Template-Klassen im Web-Site-Schema existieren. Die in einem Block enthaltenen Segmente sind demzufolge genau die Segmente, die bei der Interpretation eines XML-Dokuments, das auf der gleichen Template-Klasse wie der Block beruht, generiert werden. Es befindet sich also entweder eine oder keine Instanz der jeweiligen Template-Klassen im Puffer. 4.3.6 Interne Satzschnittstelle Die interne Satzschnittelle stellt der über ihr liegenden Ebene eine Sicht auf den gesamten Datenbestand in Form einer Menge von Datensätzen zur Verfügung. Die einzelnen Sätze sind durch Zeiger so miteinander verbunden, daß eine PreorderDarstellung der hierarchischen Ausprägung der Datenbank generiert wird. Diese Form der Datenspeicherung wird als Zeigernetzwerk bezeichnet. Bundesliga FC Bayern Hitzfeld Elber Hamburger SV Kahn ... Scholl .... Hannover 96 OlympiaStadion Abbildung 4.23: Speicherung der Datensätze Es existieren zwei Methoden zur Implementierung von Zeigernetzwerken. Die erste wird durch als Preorder-Threads bezeichnete Zeiger realisiert, wobei jeder Datensatz genau einen Zeiger enthält. Im Rahmen dieser Arbeit wird jedoch die zweite KAPITEL 4. WEB-SITES ALS DATENBANKEN 60 Methode verwendet, bei der jedem Datensatz zwei Zeiger zugeordnet werden. Dies führt gegenüber den Preorder-Threads in Hinblick auf die Anfragebearbeitung zu einer Steigerung der Performance. Der erste, als leftmostchild bezeichnete Zeiger referenziert den in der hierarchischen Sequenz als erstes auftretenden Child-Record des aktuellen Datensatzes, wohingegen der rightsibling Zeiger auf den in der gleichen Hierarchie-Ebene liegenden Nachfolger des aktuellen Datensatzes verweist, sofern beide den selben Parent-Record besitzen. Diese Art der Datensatzspeicherung ist in Abb. 4.23 zu erkennen. Folgende Operationen werden vom Speichersystem an der internen Satzschnittstelle zur Verfügung gestellt: scanLmC() scanRsb() up() get(x ) test(cond) 4.3.7 Liefert einen Zeiger auf den leftmostchild des aktuellen Record Liefert einen Zeiger auf den rightsibling des aktuellen Record Liefert einen Zeiger auf den Parent des aktuellen Record schreibt den Record auf den x verweist in das entsprechende Feld der UWA. Testet den aktuellen Datensatz hinsichtlich einer Bedingung Satzorientierte Schnittstelle Die satzorientierte Schnittstelle stellt die in der Anfragesprache WS/QL vereinten Operationen und Datenstrukturen zur Verfügung. Realisiert wird sie durch das Zugriffssystem, das die Zugriffsstrukturen für das Speichersystem bereitstellt. Dabei wird für jedes Kommando von WS/QL ein auf den Operationen der internen Satzschnittstelle basierender Ausführungsalgorithmus implementiert. TotalScan() { CurrentRecord = root ; x = scanLmC() ; if (x != nil) { CurrentRecord = get(x) ; while (CurrentRecord != root) { x = scanLmC() ; if (x != nil) CurrentRecord = get(x) ; else { x = scanRsb() ; if (x!= nil) CurrentRecord = get(x) ; else { while ((x == nil) && (CurrentRecord != root)) { x = up() ; CurrentRecord = get(x) ; x = scanRsb() ; } if (x!= nil) CurrentRecord = get(x) ; } } } } } Abbildung 4.24: Vollständiger Durchlauf der gesamten Ausprägung KAPITEL 4. WEB-SITES ALS DATENBANKEN 61 In diesem Zusammenhang wird nun zunächst ein Algorithmus vorgestellt, der die gesamte Datenbank“ einmal vollständig durchläuft (Abb. 4.24). Auf diesem basie” ren alle weiteren, für die Implementierung von WS/QL benötigten, Algorithmen. Als Beispiel für einen Ausführungsalgorithmus des WSDBS ist in Abb. 4.25 die Implementierung des Kommandos GET FIRST dargestellt. Die Änderungen bzw. Ergänzungen gegenüber dem vollständigen Durchlauf sind dabei durch einen grauen Hintergrund kenntlich gemacht. Der Ausführungsalgorithmus des Kommandos GET NEXT ist dabei mit dem hier dargestellten fast identisch. Der wesentliche Unterschied besteht darin, daß die Variable CurrentRecord zu Beginn der Prozedur nicht auf ’root’ zurückgesetzt wird und somit jeweils vom aktuellen Record aus startet. GetFirst(<record type name>, <condition>) { CurrentRecord = root ; x = scanLmC() ; if (x != nil) { CurrentRecord = get(x) ; if (CurrentRecordType == <record type name>) success = test(<condition>) ; while ((CurrentRecord != root) && (success != true)) { x = scanLmC() ; if (x != nil) { CurrentRecord = get(x) ; if (CurrentRecordType == <record type name>) success = test(<condition>) ; } else { x = scanRsb() ; if (x!= nil) { CurrentRecord = get(x) ; if (CurrentRecordType == <record type name>) success = test(<condition>) ; } else { while ((x == nil) && (CurrentRecord != root)) { x = up() ; CurrentRecord = get(x) ; x = scanRsb() ; } if (x!= nil) { CurrentRecord = get(x) ; if (CurrentRecordType == <record type name>) success = test(<condition>) ; } } } } } } Abbildung 4.25: Implementierung des Kommandos GET FIRST Kapitel 5 Entwicklung des ZIS In Anlehnung an die theoretischen Konzepte föderierter DBSe sowie unter Einbeziehung von Web-Site DBSen wird in diesem Kapitel die Entwicklung eines Zeitschriften-Informationssystems (ZIS) ausführlich erläutert. Das ZIS integriert Datenbestände heterogener Quellen, wie beispielsweise relationale DBSe oder auch Web-Sites, die im Rahmen dieser Arbeit allerdings als hierarchische DBSe aufgefaßt werden. Besonders hervorzuheben hierbei ist die Tatsache, daß das ZIS nur lesenden Zugriff auf die jeweiligen Datenquellen besitzt und somit Aspekte der Transaktionsverarbeitung, Konsistenzüberwachung, etc. nicht beachtet werden müssen. Ziel bei der Entwicklung des ZIS ist es, dem Benutzer die Möglichkeit zu bieten, in unterschiedlichen Quellen nach Informationen über Zeitschriftenartikel zu suchen und somit die Literaturrecherche zu erleichtern. Dabei wird, sofern bekannt, zu jedem gefundenen Artikel angegeben, wo der vollständige Text zu finden ist. Diese Angabe kann entweder ein Hyperlink auf ein entsprechendes Web-Dokument oder auch der Standort der gedruckten Ausgabe innerhalb einer Bibliothek sein. Anfragen können mit Hilfe von SQL-ähnlichen SELECT-FROM-WHERE Operationen an das ZIS gerichtet werden. Der Funktionsumfang dieser Operationen ist allerdings im Vergleich zu SQL stark eingeschränkt, da die Bearbeitung komplexer Anfragen in Hinblick auf die Transaktionskosten bei der Integration von Web-Sites zu starken Performance-Einbußen führen würde. Um dem Benutzer dennoch die Möglichkeit einer differenzierten Recherche zu offerieren, können die Ergebnisse der jeweiligen Anfragen in einer Arbeitsdatenbank gespeichert werden, die abhängig von dem verwendeten DBMS vielfältige Bearbeitungsmöglichkeiten zur Verfügung stellt. Der konzeptionelle Ansatz zur Integration verteilter, heterogener Informationsquellen beinhaltet fünf verschiedene Entwurfsphasen, die jeweils aufeinander aufbauen. In der ersten Phase erfolgt die Informations-Selektion. Hierbei wird zunächst festgestellt, welche möglichen Quellen für die Föderation zur Verfügung stehen. Daran anschließend erfolgt die Auswahl der zu integrierenden Datenbestände. Zu jeder selektierten Quelle wird dabei eine Beschreibung angefertigt, in der festgehalten wird, wo die Quelle zu finden ist, wer deren Anbieter ist, um was für eine Art von Datenbestand es sich handelt (lokale Datenbank, Web-Site, etc. ), wie das konzeptionelle Schema aussieht und welche Besonderheiten beachtet werden müssen. Abschnitt 5.1 befaßt sich mit der Informations-Selektion für das ZIS. Die zweite Entwurfsphase stellt die Informations-Modellierung dar. Dabei erfolgt die Entwicklung eines für die Integration geeigneten Architekturmodells sowie eine detaillierte Beschreibung der innerhalb des Modells verwendeten Schemata. Das 62 KAPITEL 5. ENTWICKLUNG DES ZIS 63 dem ZIS zugrunde liegende Architekturmodell basiert auf der 5-Ebenen-SchemaArchitektur für föderierte DBSe und wird in Abschnitt 5.2 beschrieben. Ausgehend von diesem Modell erfolgt die Entwicklung eines föderierten Schemas. Dabei werden zunächst die lokalen Schemata der Komponentensysteme durch verschiedene Schema-Transformationen in für die Integration geeignete Export-Schemata überführt, aus denen das föderierte Schema entwickelt wird (Schema-Integration). Die jeweiligen Transformations- und Integrationsschritte sowie die daraus entstehenden Schemata sind Gegenstand von Abschnitt 5.3. Wurde bisher von einem statischen Modell ausgegangen, erfolgt nun durch den Einsatz funktionaler Komponenten eine dynamische Modellerweiterung. Die dritte Entwurfsphase beschreibt somit die für die Föderation notwendigen Transformationsprozesse, während die für die Integration verwendeten Funktionen innerhalb der darauf folgenden Phase festgelegt werden (Integrationsprozesse). Unter dem Aspekt der Anfragebearbeitung erfolgt in Abschnitt 5.4 die Beschreibung dieser beiden Entwurfsphasen, die beim ZIS durch verschiedene Wrapper, sowie einen Mediator realisiert werden. Weiterhin wird die durch das ZIS zur Verfügung gestellte Benutzerschnittstelle ausführlich erläutert. Die letzte Entwurfsphase behandelt die Aspekte der Administration. Darunter fallen Themen wie beispielsweise die Integration zusätzlicher Datenquellen (Extensibilität), Instandhaltung des bestehenden Systems, Modifizierung der verwendeten funktionalen Komponenten etc. Die Aspekte der Administration des ZIS werden in Abschnitt 5.5 vorgestellt. 5.1 Beschreibung der Komponentensysteme Im Rahmen dieser Arbeit wird ein Prototyp des ZIS vorgestellt, der drei unterschiedliche Komponentensysteme integriert. Dabei handelt es sich um ein relationales DBS und zwei Web-Sites. Anhand dieser Systeme sollen alle für das ZIS benötigten Konzepte beispielhaft dargestellt werden. Die Komponentensysteme wurden so ausgewählt, daß ein möglichst großer Bereich von Datenquellen, die für das ZIS in Betracht kommen können, abgedeckt wird. Online-Bibliotheken verschiedener Verlage werden durch die ACM Digital Library repräsentiert. Stellvertretend für das Angebot von Bibliographie-Servern, die Informationen über Artikel verschiedener Verlage beinhalten, steht der DBLP-Server der Universität Trier. Mit Hilfe der Bibliotheks-Datenbank der Abteilung Datenbanken und Informationssysteme (DBIS) der Universität Hannover, werden die bei der Integration relationaler DBSe verwendeten Konzepte vorgestellt. 5.1.1 ACM Digital Library Gegründet im Jahre 1947, stellt die Association for Computing Machinery (ACM ) heutzutage die größte Vereinigung im Bereich der Informationstechnologie dar. ACM ist verantwortlich für die Veröffentlichung einer Vielzahl von angesehenen Zeitschriften und Tagungsbänden aus dem Bereich der Informatik. Diese Veröffentlichungen wurden digitalisiert und in der ACM Digital Library zusammengefaßt. Zur Zeit umfaßt die ACM Digital Library mehr als 70000 Artikel aus Zeitschriften bzw. Tagungsbänden. Zu jedem Artikel stellt die Digital Library eine bestimmte Menge an Informationen zur Verfügung. Die bibliographische Referenz beinhaltet dabei den Titel, den oder KAPITEL 5. ENTWICKLUNG DES ZIS 64 die Autor(en), die jeweilige Publikation zusammen mit Band- und Heftnummer sowie die Seitenzahlen eines Artikels. Schlüsselwörter sowie die Eingliederung in das ACM Computing Classification System sind unter dem Begriff index terms zusammengefaßt. Dabei sei darauf hingewiesen, daß die Klassifizierung der Artikel nicht in das Web-Site-Schema übernommen wurde, da dies eine ACM -spezifische Besonderheit darstellt und von anderen Bibliotheken kaum verwendet wird, so daß diese Information in Hinblick auf das ZIS nicht von Bedeutung ist. Weiterhin wird für die meisten Artikel eine Zusammenfassung angegeben sowie ein Querverweis zu dem jeweiligen Volltext offeriert. Dieser kann aber nur betrachtet bzw. heruntergeladen werden, sofern man die entsprechenden Zugriffsrechte besitzt. Das Web-Site-Schema ebenso wie das konzeptionelle Schema der ACM Digital Library wurden in Abschnitt 4.1 ausführlich dargestellt, so daß in diesem Zusammenhang auf eine nochmalige Beschreibung der Schemata verzichtet wird. 5.1.2 DBLP Bibliographie-Server Seit 1994 wird an der Universität Trier der Web-Server Digital Bibliography & Library Project 1 (DBLP) betrieben. Der DBLP-Server bietet hauptsächlich bibliographische Informationen zu Zeitschriften und Tagungsbänden aus dem Bereich der Informatik an. Zum gegenwärtigen Zeitpunkt sind mehr als 250000 Artikel auf dem Bibliographie-Server erfaßt. Ziel bei der Entwicklung des DBLP-Server war es, einen leichten Zugang zu aktuellen und qualitativ hochwertigen Fachinformationen zu schaffen und somit die bestehenden Schwierigkeiten bei der Literaturrecherche zu beseitigen. Im Gegensatz zu Büchern werden Einzelarbeiten aus Zeitschriften oder Tagungsbänden nicht in den von den Bibliotheken zur Verfügung gestellten Katalogen aufgeführt. Somit muß in diesem Zusammenhang auf andere Informationsquellen zurückgegriffen werden. Aus unterschiedlichen Gründen werden diese Quellen jedoch relativ selten genutzt. Eine CD-ROM-Recherche beispielsweise erfordert einen hohen Arbeitsaufwand und kann in den meisten Fällen nicht vom Arbeitsplatz aus durchgeführt werden. Erschwerend kommt hinzu, daß neue Arbeiten erst nach einer gewissen Zeit in den Datenbestand aufgenommen werden und demzufolge die Aktualität der Informationsquellen nur bedingt gewährleistet werden kann. Im Gegensatz dazu kann der DBLP Bibliographie-Server von jedem mit dem Internet verbundenen Arbeitsplatz genutzt werden. Dabei werden Informationen zu Einzelarbeiten aus Zeitschriften oder Tagungsbänden verschiedener Verlage angeboten. Zu vielen Arbeiten existiert ein Verweis auf die entsprechende Online-Version, die somit bequem auf den eigenen Rechner geladen werden kann, vorausgesetzt, man besitzt die dazu notwendigen Zugriffsrechte des Anbieters. In Abb. 5.1 ist das Web-Site-Schema des DBLP Bibliographie-Server dargestellt. Die erste Template-Klasse ListOfAllJournals“ beinhaltet die erfaßten Zeitschrif” ten, die entsprechend ihrer Zugehörigkeit zu unterschiedlichen Verlagen zusammengefaßt sind. Zu jeder dieser Publikationen existiert ein Querverweis auf die Klasse PublicationStreams“, in der die verschiedenen Jahrgänge bzw. Volumes der ent” sprechenden Zeitschriften aufgeführt sind. Die jeweiligen Ausgaben eines Volumes, zusammen mit den in ihnen enthaltenen Artikeln, werden durch die Template-Klasse TableOfContents“ repräsentiert. Zu jedem Artikel ist dabei der Titel, der oder die ” Autor(en), die Angabe der Seitenzahlen und gegebenfalls ein Querverweis auf den Volltext angeführt. 1 http://www.informatik.uni-trier.de/ ley/db/journals/ 65 KAPITEL 5. ENTWICKLUNG DES ZIS Template−Klasse : "ListOfAllJournals" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Publisher Publication Name HyperLink HyperLink (Name, Publication+)> (Name, HyperLink)> (#PCDATA)> EMPTY> Template−Klasse CDATA URL CDATA #REQUIRED #REQUIRED> Template−Klasse : "PublicationStreams" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST PubRelYear PubRelVolume Year Volume HyperLink HyperLink (Year, PubRelVolume+)> (Volume, HyperLink)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA URL CDATA #REQUIRED #REQUIRED> Template−Klasse : "TableOfContents" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT PubRelIssue Article Author Title Pages URLFullText Name (Issue, Article+)> (Title, Author+, Pages, URLFullText)> (Name+)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> Abbildung 5.1: Web-Site-Schema des DBLP-Server Zusätzlich existiert zu jedem Autor ein Querverweis zu einer Seite, auf der alle Publikationen des jeweiligen Autors aufgeführt sind. Dieses Konzept wird im WebSite-Schema nicht modelliert, da diese Informationen mit Hilfe von WS/QL generiert werden können. Ein anderes Konzept der DBLP-Datenbank ist ebenfalls nicht im Web-Site-Schema enthalten, wobei in diesem Falle technische Gründe dafür verantwortlich sind. Einige Artikel besitzen einen globalen Verweis auf eine sogenannte Citation Page, auf der unter anderem eine Zusammenfassung, Schlüsselwörter, Referenzliteratur u.ä. angegeben sind. Diese Seiten befinden sich jedoch in den WebSites der entsprechenden Verlage. Zum einen müsste also für jeden Verlag eine eigene Template-Klasse in Bezug auf die Citation Page generiert werden, zum anderen sind globale Verweise bei der Modellierung von Web-Site-Schemata im Rahmen dieser Arbeit überhaupt nicht vorgesehen. Zusammenfassend läßt sich also sagen, daß es sich bei dem DBLP-Server aus Sicht des ZIS um ein System handelt, das nur das absolute Minimum an Informationen (Autoren, Titel, Publikationskontext) zu den jeweiligen Artikeln bereitstellt, aber aufgrund der Vielzahl der erfaßten Artikel als ein sinnvolles Komponentensystem für das ZIS betrachtet werden kann. Das konzeptionelle Schema dieser Komponente ist in Abb. 5.2 dargestellt. Hierbei werden Record-Typen, die die gleiche TemplateKlasse referenzieren, durch einen grauen Hintergrund zusammengefaßt. 5.1.3 DBIS Literaturdatenbank Die Abteilung Datenbanken und Informationssysteme (DBIS) der Universität Hannover betreibt eine Forschungsliteraturdatenbank FLIT, in der unterschiedliche Dokumentarten, wie z.B. Bücher, Diplomarbeiten, Handbücher oder Zeitschriftenarti- 66 KAPITEL 5. ENTWICKLUNG DES ZIS Publisher Name Publication Name PubRelYear Year PubRelVolume Volume PubRelIssue Issue Title Article Pages URLFullText Author Name Abbildung 5.2: Konzeptionelles Schema des DBLP-Server kel, erfaßt werden. Das Schema der FLIT ist in Abb. 5.3 dargestellt, wobei auf die Angabe der Datentypen verzichtet wurde, da diese aus dem jeweiligen Kontext zu erkennen sind. Im folgenden erfolgt nun eine kurze Beschreibung der verschiedenen Tabellen der FLIT-Datenbank. In der Relation L DOKTYP sind die von der Datenbank verwalteten Dokumenttypen in Form von Kurzbezeichnungen, wie beispielsweise ’book’, ’master’, ’article’ oder ’manual’, gespeichert. Eine genaue Beschreibung der jeweiligen Bezeichnungen erfolgt optional durch das Attribut EXPL. Analog dazu sind in der Tabelle L MONAT Kurzbezeichnungen der Monatsnamen zusammen mit den entsprechenden Monaten gespeichert. Die wichtigste Relation der FLIT-Datenbank wird durch die Tabelle DOKUMENT repräsentiert. Jedes in dieser Tabelle erfaßte Dokument besitzt eine eindeutige Dokumentnummer, dargestellt durch das Attribut DOKNR, das darüber hinaus als Primär-Schlüssel der Tabelle fungiert. Weitere nicht-optionale Attribute sind TITEL, DOKTYP und ERFDATUM. DOKTYP referenziert gleichzeitg die im Vorfeld beschriebene Relation L DOKTYP. Die Attribute DOKTYPERG, ANMERKUNG, VERWENDUNG und INTERNANMERKUNG bieten die Möglichkeit, jedes erfaßte Dokument mit zusätzlichen Angaben zu versehen. Zu jedem Dokument werden in Abhängigkeit des jeweiligen Typs bestimmte Eigenschaften gespeichert. Für einen Zeitschriftenartikel sind dabei z.B. die Attribute ZEITSCHRREIHE, BAND, NUMMER bzw. SEITE von Bedeutung, während bei Büchern Angaben zu VERLAG, ORT, AUFLAGE und ISBNNR signifikant sind. Weiterhin besitzen sowohl Bücher, als auch Zeitschriften ein Erscheinungsjahr (JAHR) sowie letztere zusätzlich einen Erscheinungsmonat (MONAT). Ein für alle Dokumente wichtiges Atrribut stellt AUTOREN dar. Der Datentyp dieses Attributs ist eine Zeichenkette, die die Namen der jeweiligen Autoren enthält. Existieren zu einem Dokument mehrere Autoren, so sind diese entweder durch ein ’,’ oder ein ’/’ voneinander getrennt. Wichtig hierbei ist, zu erkennen, daß es sich 67 KAPITEL 5. ENTWICKLUNG DES ZIS DOKUMENT DokNr Titel Jahr Monat DokTyp DokTypErg Kuerzel Herausgegeben ZeitschrReihe Band Nummer Seite Verlag Ort Auflage InDok InstOrg Anzahl Sprache Anmerkung Autoren Verwendung Standort Deskriptoren ErfDatum CR_Klassifikation Signatur InventarNr ISBNNr InternAnmerkung Vorversion SCHLAGWORT NOT NULL NOT NULL DokNr NamKuerz Schlagwort Gewicht NOT NULL NOT NULL NOT NULL L_MONAT Monat Expl NOT NULL L_DOKTYP DokTyp Expl NOT NULL NOT NULL Abbildung 5.3: Relationen-Schema der DBIS-Datenbank bei AUTOREN eigentlich um ein mehrwertiges Attribut handelt, das aber aufgrund der Tatsache, daß das relationale Datenmodell diese Art von Attributen nicht unterstützt, in der beschriebenen Form modelliert wird. Viele der in der FLIT gespeicherten Dokumente sind in gedruckter Form in der Abteilung DBIS vorhanden, manche davon sogar mehrfach. Wieviele Exemplare existieren, wird durch das Attribut ANZAHL ausgedrückt. Eine Null bedeutet dabei, daß ein Dokument nicht in gedruckter Form in der Abteilung vorhanden ist. Wo die vorhandenen Exemplare zu finden sind, wird durch das Attribut STANDORT festgelegt. Hierbei handelt es sich wieder um ein als atomar modelliertes mehrwertiges Attribut, analog zu AUTOREN. Für die in gedruckter Form vorliegenden Dokumente können weitere abteilungsinterne Angaben wie SIGNATUR oder INVENTARNR gespeichert werden. Das Attribut INDOK ist genauso wie VORVERSION eine Referenz auf DOKNR der gleichen Tabelle und verweist auf das Dokument, in dem der aktuelle Text enthalten ist (bzw. auf die vorhergehende Version). So sind Tagungberichte z.B. in einem Tagungsband enthalten. Bei Zeitschriftenartikeln wird diese Angabe jedoch nicht vorgenommen sondern die den Artikel enthaltene Zeitschrift direkt durch den Publikationskontext repräsentiert. In der Tabelle SCHLAGWORT schließlich sind zu jedem Dokument verschiedene Schlagwörter gespeichert, die den Inhalt der jeweiligen Texte grob kennzeichnen sollen. Der Primär-Schlüssel wird durch die Attribute SCHLAGWORT und DOKNR gebildet, wobei DOKNR gleichzeitig eine Referenz auf die Tabelle DOKUMENT darstellt. GEWICHT ordnet jedem Schlagwort eine bestimmte Gewichtung zu. KAPITEL 5. ENTWICKLUNG DES ZIS 5.2 68 Entwicklung des Architekturmodells Nachdem im vorhergehenden Abschnitt die Selektion verschiedener Komponentensysteme beschrieben wurde, wird nun ein allgemeines Architekturmodell für das ZIS entwickelt. Allgemein bedeutet in diesem Fall, daß es nicht auf die im Vorfeld selektierten Datenquellen beschränkt ist, sondern in Hinblick auf die Extensibilität des ZIS weitere Komponentensysteme mieinschließt. Die Entwicklung der ZIS-Architektur erfolgt dabei in Anlehnung an die 5-Ebenen-Schema-Architektur für föderierte DBSe und die ANSI/SPARC-Architektur, auf der die Komponentensysteme basieren. Zunächst wird nun ein allgemeines Architekturmodell für die Integration verteilter, heterogener Datenquellen vorgestellt. Darauf aufbauend erfolgt die Entwicklung der ZIS-Architektur. Die funktionalen Komponenten des ZIS sind nicht Bestandteil des Architekturmodells und werden in diesem Zusammenhang somit nicht behandelt. Eine Beschreibung der Aufgaben und Funktionsweise dieser Komponenten erfolgt in Abschnitt 5.4. 5.2.1 Allgemeines Modell föderierter DBSe Wie bereits erwähnt, basieren die Komponentensysteme auf der ANSI/SPARCArchitektur. Diese werden nun auf die Art und Weise in die 5-Ebenen-SchemaArchitektur für föderierte DBSe integriert, daß jeweils bestimmte Schemata der unterschiedlichen Modelle einander zugeordnet werden können. So entsprechen die konzeptionellen ANSI/SPARC-Schemata den lokalen Schemata des föderierten Modells. Im Gegensatz dazu lassen sich für die externen Schemata auf den ersten Blick keine entsprechenden Zuordnungen in der 5-Ebenen-Schema-Architektur erkennen. Jedoch können die Komponenten-Schemata lediglich als Zwischenschritt betrachtet werden, um eine Trennung der verschiedenen Transformationsprozesse, die die lokalen in die Export-Schemata überführen, zu erreichen. In der ANSI/SPARCArchitektur sind diese Prozesse in dem Übergang vom konzeptionellen zu einem externen Schema zusammengefaßt. Somit lassen sich die externen Schemata den Export-Schemata der 5-Ebenen-Schema-Architektur zuordnen. In Abbildung 5.4 ist die Integration der ANSI/SPARC-Architektur in das föderierte Modell dargestellt. In diesem Zusammenhang wird bereits auf die externen Schemata der 5-EbenenSchema-Architektur verzichtet, da diese vom ZIS nicht zur Verfügung gestellt werden. Wie in Abb. 5.4 zu erkennen, setzen die lokalen Schemata direkt auf den internen Schemata der jeweiligen Datenquellen auf. Es wird davon ausgegangen, daß diese auf unterschiedlichen Datenmodellen basieren und somit für die Integration homogenisiert werden müssen. Diese Homogenisierung erfolgt zwischen den lokalen und den Komponenten-Schemata. Innerhalb der dargestellten Architektur werden keine konkreten Datenmodelle angegeben. Diese Spezialisierung erfolgt erst bei der Entwicklung der ZIS-Architektur. Ebenso werden die Zugriffsmöglichkeiten auf die jeweiligen Datenbestände nicht näher erläutert, sondern lediglich davon ausgegangen, daß es sich dabei um separate Datenbanken handelt, wobei auch die zu integrierenden Web-Sites als Datenbanken aufgefaßt werden. Deutlich zu erkennen ist dagegen die Trennung zwischen Transformations- und Integrationsprozessen. 69 KAPITEL 5. ENTWICKLUNG DES ZIS Föderiertes Schema ExportSchema (extern) ExportSchema (extern) Integration .... ExportSchema (extern) Transformation Komponenten Schema Komponenten Schema .... Komponenten Schema homogene Datenmodelle Lokales Schema (konzeptionell) Lokales Schema (konzeptionell) .... Lokales Schema (konzeptionell) heterogene Datenmodelle Internes Schema Internes Schema .... Internes Schema DBMS KomponentenDB DBMS KomponentenDB HTML/XML KomponentenDB heterogene Datenquellen Abbildung 5.4: Allgemeines Modell föderierter DBSe 5.2.2 Architekturmodell des ZIS Ausgehend von dem zuvor beschriebenen Architekturmodell erfolgt nun die sukzessive Konkretisierung der dabei verwendeten Konzepte, mit dem Ziel der Entwicklung einer Architektur für das ZIS. Das daraus entstehende Modell ist in Abb. 5.5 dargestellt. Die in das ZIS zu intergrierenden Datenquellen können entweder strukturiert oder auch semi-strukturiert sein. Ein Datenbestand wird als semi-strukturiert bezeichnet, wenn die gewünschten Informationen mit Hilfe einer formalen Grammatik extrahiert werden können [MMK99]. DBSe repräsentieren dabei die strukturierten Datenquellen, während die der Föderation zugehörigen Web-Sites als semi-strukturiert betrachtet werden. DBSe beinhalten ein DBMS, das den Benutzern eine Datendefinitionssprache (data definition language, DDL) sowie eine Datenmanipulationssprache ( data manipulation language, DML) zur Verfügung stellt. Da das ZIS nur lesenden Zugriff auf die Komponentensysteme besitzt, ist in diesem Zusammenhang hauptsächlich die DML von Interesse, die die Möglichkeit bietet, Anfragen an die entsprechenden Datenbestände zu richten. Als DDL von Web-Sites können HTML bzw. XML aufgefaßt werden. Nicht vorhanden ist allerdings eine DML. Aus diesem Grund wurde im vorhergehenden Kapitel das WSMS entwickelt, das mit WS/QL als DML eine Möglichkeit bietet, Anfragen an die jeweiligen Web-Sites zu stellen. Somit können alle Komponentensysteme als reguläre DBSe aufgefaßt werden, die der Föderation in Form der DML eine Anfrageschnittstelle zur Verfügung stellen. Jeder Datenbestand basiert somit auf einem eigenen logischen Datenmodell. Dabei kann es sich, wie im Falle des WSDBS, um ein hierarchisches Modell handeln, wohingegen die von vornherein als DBSe implementierten Quellen relationalen oder auch objekt-orientierten Charakter besitzen können. Obwohl im Rahmen dieser Arbeit nicht näher auf die Integration objekt-orientierter DBSe eingegangen wird, sind sie in Hinblick auf die Erweiterbarkeit des ZIS dennoch Bestandteil der Architektur. Mit Hilfe von entsprechenden Datenmodell-Transformationen (DMT) werden alle Datenbestände auf ein einheitliches Datenmodell abgebildet, so daß die Ebene 70 KAPITEL 5. ENTWICKLUNG DES ZIS Föderiertes Schema ExportSchema (extern) relational Filter Komponenten Schema relational DMT Lokales Schema (konzeptionell) objekt−orient. DBMS ExportSchema (extern) relational Filter .... Komponenten Schema .... Lokales Schema (konzeptionell) DMT Lokales Schema (konzeptionell) hierarchisch DBMS strukturierte KomponentenDB strukturierte KomponentenDB Datenbank relational homogene Datenmodelle DMT relational Internes Schema ExportSchema (extern) relational Filter Komponenten Schema Internes Schema Datenbank .... relational heterogene Datenmodelle WSMS .... Internes Schema Web−Site semi−strukturierte KomponentenDB heterogene Datenquellen Abbildung 5.5: Architekturmodell des ZIS der Komponentenschemata einen in Bezug auf das jeweils zugrunde liegende Datenmodell homogenen Charakter aufweist. Als globales Modell für das ZIS wird das relationale Datenmodell verwendet. Der Grund hierfür liegt einerseits darin, daß hauptsächlich relationale und hierarchische DBSe in das ZIS integriert werden, andererseits existiert mit SQL eine weit verbreitete DML für das relationale Datenmodell. Obwohl das ZIS nur eine vereinfachte Form von SQL zur Verfügung stellt, wird dem SQL-erfahrenen Benutzer dadurch ein intuitiver Zugriff auf das System ermöglicht. Die auf dem globalen Datenmodell basierenden Schemata werden nun dahingehend modifiziert, daß nur noch der der Föderation zur Verfügung gestellte Ausschnitt zu sehen ist. Formal ausgedrückt heißt das, daß mit Hilfe von Filterungen und/oder Schema-Modifikationen die Komponentensysteme auf entsprechende Export-Schemata abgebildet werden, die dann in das föderierte System integriert werden können. Das föderierte Schema basiert auf dem durch die Komponenten-Schemata realisierten globalen Datenmodell und umfaßt alle in den Export-Schemata vorkommenden Konzepte. Der Zugriff auf die Föderation erfolgt durch SQL-ähnliche Anfragen. Die Anfragebearbeitung und die dabei verwendeten funktionalen Komponenten sind Bestandteil von Abschnitt 5.4. Im folgenden werden nun, ausgehend von den bereits vorgestellten Komponentensystemen, die für die Föderierung benötigten Schemata ausführlich beschrieben. 5.3 Datenbank-Entwurf In Anlehnung an den allgemeinen Entwurf föderierter Datenbanken [Con97] wird im folgenden der Entwurf des dem ZIS zugrunde liegenden DBS vorgestellt. Wesentlich hierbei ist die Integration der verschiedenen Komponenten-DBSe, die dadurch ermöglicht wird, daß zunächst deren lokalen Schemata mittels spezieller Transformationen in eine, bezogen auf das Datenmodell, homogene Form überführt werden (Datenmodell-Transformation). Die daraus entstehenden Komponenten-Schemata KAPITEL 5. ENTWICKLUNG DES ZIS 71 werden dann in die der Integration zur Verfügung gestellten Export-Schemata überführt. Im Gegensatz zu dem durch die 5-Ebenen-Schema-Architektur beschriebenen Ansatz, werden die dabei durchzuführenden Transformationen im Rahmen dieser Arbeit insofern erweitert, daß die Export-Schemata nicht nur den der Föderation zur Verfügung gestellten Ausschnitt der Komponenten-Schemata darstellen, sondern gleichzeitig eine Modifikation der Komponenten-Schemata gemäß eines vordefinierten Integrationsansatzes realisieren. Somit handelt es sich nicht mehr nur um eine reine Filterung, sondern um eine möglicherweise umfangreiche SchemaModifikation. Warum ein solcher Integrationsansatz bei der Entwicklung des ZIS sinnvoll ist und wie dieser im konkreten Fall aussieht, wird unter Punkt 5.3.1 beschrieben. Im Anschluß daran erfolgt die Entwicklung der Komponenten- und Export-Schemata der dem Prototyp des ZIS zugrunde liegenden Datenquellen. Punkt 5.3.3 behandelt dann den Entwurf des föderierten Datenbank-Schemas, basierend auf den ExportSchemata der jeweiligen Komponentensysteme. 5.3.1 Integrationsansatz Das ZIS stellt einen Spezialfall föderierter DBSe dar. Gemäß den in [BLN86] vorgestellten Integrationsanforderungen müssen alle Schema-Konstrukte der zu integrierenden Export-Schemata in dem daraus resultierenden föderierten Schema enthalten sein. Somit kann jedes Export-Schema als Subschema des föderierten Schemas aufgefaßt werden. Im Falle des ZIS ist nun der Durchschnitt aller dieser Subschemata nicht leer, sondern beinhaltet ein für das ZIS wesentliches Konzept. Bevor mit der Definition des Integrationansatzes fortgefahren wird, soll dieses Konzept kurz vorgestellt und der beschriebene Zusammenhang der Subschemata verdeutlicht werden. Jedes Textdokument besteht aus einem Titel, einer nicht-leeren Menge von Autoren und dem eigentlichen Text. Im folgenden werden Textdokumente in Hinblick auf das ZIS als Artikel bezeichnet. Diese sind in einem oder mehreren Publikationsorgan(en) (Zeitschrift, Tagungsband, o.ä.) veröffentlicht. Jedes dieser Publikationsorgane besteht aus einer Menge von Publikationsausgaben (issues), aufgeteilt in chronologisch aufeinanderfolgende Bände (volumes). Innerhalb eines Bandes besitzt jede Ausgabe eine eindeutige Nummer. Dieser Zusammenhang, möglicherweise jedesmal auf eine andere Art modelliert, ist Bestandteil jeder Datenquelle des ZIS und demzufolge auch im föderierten Schema enthalten. Um die spätere Integration so weit wie möglich zu erleichtern, wird nun ein als Integrationsansatz bezeichnetes Schema entwickelt, welches den beschriebenen Ausschnitt der realen Welt modelliert und als Grundlage für die Entwicklung der Export-Schemata der jeweiligen Komponentensysteme dient. Das bedeutet, daß im Idealfall jedes Export-Schema den Integrationsansatz als Teilschema beinhaltet. Das integrierte Schema umfaßt dann neben dem Integrationsansatz alle übrigen in wenigstens einem der Export-Schemata vorkommenden Konstrukte. Im folgenden wird die Entwicklung des Integrationsansatzes für das ZIS beschrieben und die dabei auftretenden Probleme erläutert. Hierbei wird ein weiterer Vorteil der Definition eines Integrationsansatzes ersichtlich. Die Probleme bei der Modellierung des oben dargestellten Ausschnitts der realen Welt können im Vorfeld der unterschiedlichen Schema-Transformationen global gelöst bzw. behandelt werden und müssen nicht bei jedem lokalen System erneut beachtet werden. Bei der Modellierung des Integrationsansatzes für das ZIS exisitiert die Problematik, daß die eindeutige Identifikation von Artikeln nicht explizit vorhanden ist, beispielsweise durch eine weltweit eindeutige Dokumentnummer. Es muß also eine KAPITEL 5. ENTWICKLUNG DES ZIS 72 Methode gefunden werden, die die Identifikation von Artikeln innerhalb des ZIS gewährleistet. Einige mögliche Identifikations-Methoden sowie ihre Verwendbarkeit in Hinblick auf das ZIS werden im folgenden kurz vorgestellt. 5.3.1.1 Identifikation durch den Dokumenttitel Eine Möglichkeit, Artikel innerhalb des ZIS als unterschiedlich bzw. identisch zu erkennen, besteht darin, den Dokumenttitel als Identifikationsgrundlage zu verwenden. Diese Methode ist allerdings wenig hilfreich, da einerseits unterschiedliche Artikel den gleichen Titel haben können (Homonyme), andererseits verschiedene Titel dasselbe Dokument referenzieren können (Synonyme). Synonyme entstehenden dabei vorwiegend durch inkorrekte Daten in den jeweiligen Datenbanken, die beispielsweise durch Rechtschreibfehler verursacht worden sind. 5.3.1.2 Identifikation durch den Publikationskontext Eine andere Möglichkeit, Artikel zu identifizieren, ist durch den Publikationskontext (Publikationsname, Band, Ausgabe, Seiten) gegeben. Hierbei können Artikel unabhängig vom Dokumenttitel unterschieden werden. Allerdings zieht diese Art der Identifizierung neue Probleme nach sich. Zum einen gilt für den Namen einer Zeitschrift das gleiche wie für den Dokumenttitel eines Artikels (Homonyme, Synonyme), zum anderen könnten schon minimale Abweichungen bei der Angabe der Seitenzahlen dazu führen, daß das System gleiche Artikel als unterschiedlich identifiziert. Zeitschriften besitzen zwar analog zu den ISBN-Nummern von Büchern eine ISSN-Nummer, die eine eindeutige Identifikation ermöglicht, allerdings wird diese nicht durchgängig verwendet bzw. angegeben und ist somit nicht als Identifikationsargument ausreichend. Synonyme Publikationsnamen können mit Hilfe einer Synonym-Tabelle homogenisiert werden, wobei aber beachtet werden muß, daß die Implementierung bzw. Erweiterung einer solchen Tabelle, gerade bei der Einbindung neuer Komponentensysteme, einen nicht unerheblichen Arbeitsaufwand darstellt. Der wesentlichste Nachteil dieser Methode besteht allerdings darin, daß gleiche Artikel, die in unterschiedlichen Publikationskontexten veröffentlicht sind, nicht als identisch identifiziert werden können. Neben diesen allgemeinen Hindernissen ensteht ein weiteres Problem in Hinblick auf das ZIS, das auf dem relationalen Datenmodell basiert. Der Publikationskontext würde in diesem Zusammenhang als Primär-Schlüssel einer Tabelle A fungieren. Eine Tabelle B, die einen A einschließenden Beziehungstyp repräsentiert, würde mittels eines Fremd-Schüssels den Primär-Schlüssel von A referenzieren. Da der Publikationskontext aus einer nicht geringen Menge von Attributen besteht, würden Anfragen, die B mit einbeziehen, recht umfangreich gestaltet werden müssen. 5.3.1.3 Identifikation durch das Tupel (Titel, Autoren) Zusätzlich zum Dokumenttitel die nicht-leere Menge der Autorennamen als Identifikationsgrundlage hinzuzuziehen, beschreibt eine weitere Möglichkeit, Artikel zu unterscheiden. Hierbei tritt in erster Linie das Problem auf, daß mehrwertige Attribute von vielen Datenmodellen (insbesondere vom relationalen Modell) nicht unterstützt werden, so daß die Bildung eines Schlüssels, der den Dokumenttitel und die Autorennamen umfaßt, nicht ohne weiteres möglich ist. Gelöst werden könnte dieses Problem dadurch, daß die Menge der Autorennamen zu einem String zusammengefaßt und dadurch ein einwertiges Attribut generiert werden würde. In KAPITEL 5. ENTWICKLUNG DES ZIS 73 der Forschungsliteratur-Datenbank der Abteilung DBIS wird die Menge der Autorennamen auf diese Weise als atomares Attribut gespeichert. Wiederum besteht allerdings das Problem, daß die Angabe der Autorennamen nicht immer eindeutig ist. So könnte beispielsweise der Name ’Ramez Elmasri’ als ’Elmasri, R.’, ’Elmasri’, ’R. Elmasri’, ’Elmasri, Ramez’ in den verschieden Datenquellen gespeichert sein. Andererseits ist es möglich, daß die Menge der Co-Autoren nicht vollständig erfaßt ist. Insgesamt stellt diese Möglichkeit also keine zufriedenstellende Alternative für die Identifikation von Zeitschriftenartikeln dar. 5.3.1.4 Identifikation durch den Benutzer Nachdem gezeigt wurde, daß die Identifikation von Zeitschriftenartikeln nicht eindeutig gewährleistet werden kann, bietet sich als letzte Möglichkeit an, diese Identifikation vollständig dem Benutzer zu überlassen. Hierbei besteht allerdings die Problematik, den gegebenen Sachverhalt korrekt zu modellieren, da viele Datenmodelle die Angabe eines eindeutigen Schlüssels fordern, um Objekte des gleichen Objekttyps zu unterscheiden und die Implementierung von Beziehungstypen ermöglichen zu können. Bei der Identifikation durch den Benutzer existiert jedoch gerade keine Identifikationsgrundlage, die als Schlüssel eines Objekttyps verwendet werden könnte. In Hinblick auf das relationale ZIS könnte das Problem dadurch gelöst werden, daß alle Attribute einer einzigen Tabelle zugeordnet werden und somit keine einen Beziehungstyp repräsentierenden Tabellen benötigt würden. In diesem Fall könnte der Schlüssel aus allen Attributen der singulären Tabelle zusammengesetzt sein. Da es sich beim ZIS im wesentlichen (mit Ausnahme der Arbeitsdatenbank) um eine logische Implementierung handelt, ist dieser Ansatz durchaus überlegenswert, aber zum einen nicht sehr elegant und zum andern in Hinblick auf die Formulierung von Anfragen nicht sehr benutzerfreundlich. Eine andere Möglichkeit besteht darin, daß jede Datenquelle für jeden gespeicherten Artikel eine innerhalb dieser Quelle eindeutige Dokumentnummer generiert. Um bei der Integration Überschneidungen zu verhindern und gleichzeitig die Verwendung dieser Dokumentnummern als globalen Schlüssel zu ermöglichen, müssen die Mengen, die jeweils alle Dokumentnummern einer Datenquelle enthalten, disjunkt sein. Mit Hilfe der Dokumentnummer als Schlüssel können dann Beziehungen zwischen Objekten modelliert werden. 5.3.1.5 Identifikation von Artikeln innerhalb des ZIS Die Identifikation von Zeitschriftennamen wird innerhalb des ZIS durch den Einsatz einer Synonym-Tabelle realisiert, wohingegen die Identifikation von Artikeln, wie beschrieben, dem Benutzer überlassen wird. Dabei wird zu jedem Artikel eine global eindeutige Nummer generiert, wobei jedem Komponentensystem eine bestimmte Menge möglicher Dokumentnummern zugeordnet wird, so daß keine Überschneidungen innerhalb des ZIS entstehen können. Sind solche Nummern innerhalb einer Datenquelle bereits integriert (z.B. bei der DBIS Forschungsliteratur-Datenbank), so muß die Menge dieser Nummern gegebenfalls auf die durch die Föderation zugewiesene Menge abgebildet werden. Mit der inversen Abbildung der globalen auf die lokalen Dokumentnummern lassen sich dann die entsprechenden Artikel aus dem Komponentensystem extrahieren. Sind hingegen keine Dokumentnummern innerhalb einer Datenquelle vorhanden, wie beispielsweise bei einem WSDBS, so werden diese bei jeder Anfrage durch das ZIS neu generiert. Eine eindeutige Abbildung der 74 KAPITEL 5. ENTWICKLUNG DES ZIS globalen auf die imaginären lokalen Dokumentnummern ist in diesem Fall natürlich nicht möglich. Zusammenfassend läßt sich also feststellen, daß gleiche Artikel aus unterschiedlichen Quellen bzw. unterschiedlichen Publikationen vom ZIS nicht als identisch identifiziert werden können und somit eine Duplikatbildung in den Anfrageergebnissen möglich ist. Der Benutzer kann aber mit Hilfe entsprechender Anfragen an die Arbeitsdatenbank solche Duplikate erkennen und gegebenenfalls eliminieren. 5.3.1.6 Integrationsansatz des ZIS Nachdem die Identifikation von Artikeln innerhalb des ZIS ausführlich dargestellt wurde, kann nun der am Anfang des Abschnitts beschriebene Ausschnitt der realen Welt modelliert und als Integrationsansatz bei der Entwicklung der Komponentenund Export-Schemata genutzt werden. Da das föderierte Schema des ZIS auf dem relationalen Datenmodell basiert, wird der Integrationsansatz auch durch dieses Modell beschrieben. ARTICLE DokNr Title PUBRELEASE NOT NULL NOT NULL AUTHOR DokNr Name DokNr PubName Volume Issue Pages Year Month NOT NULL NOT NULL PUBLICATION PubName NOT NULL NOT NULL NOT NULL Abbildung 5.6: Integrationsansatz des ZIS In Abb. 5.6 ist das Schema-Diagramm des Integrationsansatzes dargestellt. Die Tabelle ARTICLE besteht aus dem Attribut DOKNR, das die globale Dokumentnummer repräsentiert und somit als Primär-Schlüssel fungiert, sowie dem DokumenttitelAttribut TITLE. In der Tabelle PUBLICATION sind die Namen der verschiedenen Publikationen gespeichert, wohingegen AUTHOR zu jedem Dokument die entsprechenden Autoren enthält. Das Attribut DOKNR stellt hierbei eine Referenz auf die Tabelle ARTICLE dar. Schließlich modelliert die Tabelle PUBRELEASE eine Beziehung zwischen ARTICLE und PUBLICATION unter Hinzuziehung weiterer Attribute, wie z.B. VOLUME oder ISSUE. Dieses Schema wird im folgenden bei der Entwicklung der Export-Schemata als Modellierungsgrundlage verwendet und dabei versucht, den dargestellten Zusammenhang so gut wie möglich nachzubilden. 5.3.2 Entwicklung der Komponenten-/Exportschemata Die Entwicklung der Komponenten- bzw. Export-Schemata verläuft in Abhhängigkeit der zugrunde liegenden Datenquelle auf unterschiedliche Art und Weise. So entfällt bei den relationalen DBSen die Datenmodell-Transformation, die die lokalen Schemata in ein einheitliches Modell überführen soll, da das globale Datenmodell des ZIS ebenfalls relational ist. Auf der anderen Seite werden die hierarchischen WSDBSe unmittelbar in die der Integration zur Verfügung stehenden 75 KAPITEL 5. ENTWICKLUNG DES ZIS Export-Schemata transformiert. Diese Vorgehensweise entspricht dabei nicht der in dem ZIS-Architekturmodell enthaltenen strikten Trennung zwischen DatenmodellTransformation und Schema-Modifikation. Allerdings wurde diese Trennung bereits bei der Beschreibung der 5-Ebenen-Schema-Architektur als eine rein technische Konstruktion betrachtet, die lediglich die unterschiedlichen Transformationsverfahren verdeutlichen soll. Da keine eindeutige Abbildung vom hierachischen in das relationale Modell existiert, würde es einen unnötigen Arbeitsaufwand darstellen, die Schema-Modifikation nicht parallel zur Datenmodell-Transformation durchzuführen. Es sei jedoch darauf hingewiesen, daß diese Parallelisierung nicht für jede Datenquelle sinnvoll sein muß. Die Entwicklung der Export-Schemata im Falle der hierarchischen Datenbanken innerhalb des ZIS wird dabei wie folgt durchgeführt. Zuerst werden die einem lokalen Schema zugrunde liegenden Konzepte unter Berücksichtigung des Integrationsansatzes auf das ER-Modell abgebildet. Danach wird das dabei entstandene Schema gemäß den existierenden Überführungsregeln in ein relationales Schema transformiert, welches dann der Föderation als Export-Schema zur Verfügung gestellt wird. Abschließend bleibt festzuhalten, daß für die unterschiedlichen Schema-Transformationen keine allgemeingültigen Verfahrensweisen exisitieren und es dem jeweiligen Systemadministrator obliegt, korrekte Abbildungen zu entwickeln, ohne daß semantische Differenzen zu Tage treten. Im Anschluß wird nun die Entwicklung der Export-Schemata der in dem Prototyp des ZIS enthaltenen Komponentensysteme beschrieben. 5.3.2.1 ACM Digital Library Am Beispiel des WSDBS der ACM Digital Library sollen alle für die Entwicklung des Export-Schemas notwendigen Transformationsansätze ausführlich erläutert werden. Die hierbei angewendeten Verfahren können dann als Grundlage für andere in das ZIS zu integrierende WSDBSe dienen. Zunächst wird das auf dem hierarchischen Datenmodell basierende konzeptionelle Schema des WSDBS in das ER-Modell überführt. Dabei wird als erstes jeder Record-Typ in einen entspechenden Entity-Typen transformiert und jeder ParentChild-Relationship-Typ auf einen Relationship-Typ des ER-Modells abgebildet. Die an einer Beziehung beteiligten Objekte besitzen dabei die durch das hierarchische Schema implizit bzw. explizit definierten Kardinalitäten. Auf eine graphische Darstellung des Schemas wird aus Trivialitätsgründen verzichtet. Im Anschluß an diese als 1:1 zu betrachtende Transformation werden nun bestimmte, in Beziehung zueinander stehende Entity-Typen in Hinblick auf den durch den Integrationsansatz definierten Sachverhalt zusammengefaßt, wobei die Semantik des Schemas jedoch nicht verletzt werden darf. Im Falle des zuvor entworfenen ERSchemas können folgende Entity-Typen zusammengefaßt werden. PUBTYPE, PUBLICATION, PUBDETAILS PUBVOLUME, PUBISSUE ARTICLE, DETAILS 7−→ 7−→ 7−→ PUBLICATION PUBRELEASE ARTICLE Bei diesen Zusammenfassungen bleibt die Semantik erhalten, da es sich bei den jeweiligen Beziehungen ausschließlich um solche vom Typ 1:n oder 1:1 handelt. Das dadurch entstehende ER-Schema ist in Abb. 5.7 dargestellt, wobei in dieser Phase auf die korrekte Einhaltung der Regeln des ER-Modells insofern verzichtet wird, als daß nicht zwingend für jeden Entity-Typ ein Schlüssel definiert sein muß. 76 KAPITEL 5. ENTWICKLUNG DES ZIS URLFullText Abstract Name AUTHOR AA AK ARTICLE Title KEYWORDS Word Pages AP Month Volume PUBRELEASE Issue Year PP CurIssue DokType PUBLICATION ISSN Descr. PubName Abbildung 5.7: Modellierung des lokalen Schemas im ER-Modell (I) Wie in Abbildung 5.7 zu erkennen, besitzen die Relationship-Typen PP und AP keine Attribute. In diesem Fall kann die indirekte Beziehung zwischen PUBLICATION und ARTICLE auf die Art und Weise als eine direkte Beziehung modelliert werden, indem der Entity-Typ PUBRELEASE in einen Relationship-Typ transformiert wird und AP und PP aus dem Schema entfernt werden. Abschließend werden noch zwei Änderungen in Hinblick auf den Integrationsansatz durchgeführt. Zum einen wird, wie im Vorfeld ausführlich erläutert, das Attribut DOKNR als Schlüssel des Entity-Typs PUBLICATION in das Schema integriert und zum anderen wird das Attribut PAGES von ARTICLE dem zuvor modellierten Relationship-Typ PUBRELEASE zugeordnet. Wie die Dokumentnummer generiert wird und wie die Übersetzung einer relationalen Anfrage in eine WS/QL-Anfrage erfolgt, wird in Abschnitt 5.4 beschrieben. Zum jetzigen Zeitpunkt wird einfach davon ausgegangen, daß ein solches Attribut neu hinzugefügt werden kann, ohne daß Probleme jedweder Art auftreten. Das so entwickelte ER-Schema ist in Abb. 5.8 zu erkennen. Unter Berücksichtigung der, für die Transformation von ER- in relationale Schemata geltenden, allgemeinen Regeln erfolgt zum Abschluß die Transformation in das relationale Schema, das gleichzeitig das Export-Schema des Komponentensystems der ACM Digital Library darstellt und in Abb. 5.9 zu sehen ist. 5.3.2.2 DBIS Literaturdatenbank Wie bereits erwähnt, muß im Falle von relationalen Komponentensystemen innerhalb des ZIS keine Datenmodell-Transformation durchgeführt werden. Somit wird bei der DBIS-Datenbank ausschließlich eine Schema-Modifikation durchgeführt, die eine Filterung im Sinne der 5-Ebenen-Schema-Architektur miteinschließt. Zunächst wird der Bereich der Filterung betrachtet. Die Frage hierbei ist, welche Konzepte, d.h. in diesem Fall welche Relationen bzw. Attribute, sollen dem ZIS zur Verfügung gestellt werden, oder umgekehrt ausgedrückt, welche Informationen werden vom ZIS benötigt. In Hinblick auf den Integrationsansatz sind die darin enthaltenen Meta-Daten, sofern sie Bestandteil der FLIT sind, absolut notwendig. Demgegenüber kann auf die internen Informationen, wie diverse Anmerkungen oder 77 KAPITEL 5. ENTWICKLUNG DES ZIS Abstract Name AUTHOR AA URLFullText AK ARTICLE Title KEYWORDS Word DokNr Volume Month PUB RELEASE Issue Year Pages CurIssue DokType PUBLICATION ISSN PubName Descr. Abbildung 5.8: Modellierung des lokalen Schemas im ER-Modell (II) KEYWORDS ARTICLE AUTHOR DokNr Word DokNr NOT NULL Title NOT NULL Abstract URLFullText DokNr Name NOT NULL NOT NULL NOT NULL NOT NULL PUBRELEASE DokNr PubName Volume Issue Pages Year Month NOT NULL NOT NULL PUBLICATION PubName NOT NULL DokType CurIssue ISSN Description Abbildung 5.9: Export-Schema der ACM Digital Library Signaturen ebenso verzichtet werden, wie auf Angaben zur Auflage etc. Wichtig ist wiederum die Information über den Standort innerhalb der Abteilung. Grundsätzlich läßt sich sagen, daß prinzipiell alle Konzepte der FLIT in das ZIS einfließen können, dies würde aber zur Unübersichtlichkeit des Systems führen, vor allem unter dem Gesichtspunkt, daß die Möglichkeit besteht, weitere Quellen in das ZIS zu integrieren. Abschließend soll noch eine Eigenschaft der DBIS-Datenbank näher betrachtet werden. Zum einen die Beziehung zwischen dem Attribut MONAT und der Tabelle L MONAT. Wie bereits bei der Beschreibung des lokalen Schemas erwähnt, werden in der Tabelle DOKUMENT die Monatsnamen in Form von Abkürzungen, wie bspw. ’Dez’, ’Jan’ etc. gespeichert. In der Tabelle L MONAT ist jedoch für jede Abkürzung unter dem Attribut EXPL der vollständige Name des entsprechenden Monats gespeichert. In dem Export-Schema der Datenbank soll nun der volle Name repräsentiert werden, so daß alle Daten des Attributs MONAT durch die entsprechenden Einträge des Attributs EXPL der Tabelle L MONAT ersetzt werden müssen. 78 KAPITEL 5. ENTWICKLUNG DES ZIS KEYWORD DokNr Word ARTICLE NOT NULL NOT NULL DokNr NOT NULL NOT NULL Title Autoren Standort Language PUBRELEASE DokNr PubName Volume Issue Pages Year Month NOT NULL NOT NULL PUBLICATION PubName DokType Publisher NOT NULL Abbildung 5.10: Export-Schema der DBIS-Datenbank In der Abb. 5.10 ist das Export-Schema der DBIS-Datenbank dargestellt. Dabei sind die Attribut- bzw. Tabellennamen des lokalen Schemas durch die Bezeichnungen des Integrationsansatzes ersetzt worden. 5.3.2.3 DBLP Bibliographie-Server Die Entwicklung des Exportschemas des DBLP Bibliographie-Servers verläuft analog zu der der ACM Digital Library und soll in diesem Zusammenhang nicht mehr ausführlich besprochen werden. Abb. 5.11 zeigt das entwickelte Export-Schema. ARTICLE AUTHOR DokNr NOT NULL Title NOT NULL URLFullText DokNr Name NOT NULL NOT NULL PUBRELEASE DokNr PubName Volume Issue Pages Year NOT NULL NOT NULL PUBLICATION PubName NOT NULL Publisher Abbildung 5.11: Export-Schema des DBLP Bibliographie-Server KAPITEL 5. ENTWICKLUNG DES ZIS 5.3.3 79 Entwicklung des föderierten Schemas Nachdem die Export-Schemata der an dem Prototyp des ZIS beteiligten Komponentensysteme vorgestellt wurden, kann nun mit der Entwicklung des föderierten Schemas begonnen werden. In diesem Zusammenhang spielt der Integrationsansatz keine Rolle mehr. Durch den Integrationsansatz wurde allerdings erreicht, und zu diesem Zweck wurde er ja auch eingeführt, daß die jeweiligen Export-Schemata starke Ähnlichkeiten aufweisen und die Integration somit erleichtert werden kann. Zunächst werden nun im Rahmen einer Vorintegrationsphase die Unterschiede bzw. Gemeinsamkeiten der jeweiligen Export-Schemata bestimmt. Übereinstimmungen in den Schemata werden dabei durch sogenannte Inter-Schema-Korrespondenzen festgehalten. In [Con97] werden verschiedene Lösungsansätze zur Schema-Integration vorgestellt, unter anderem auch die zusicherungsbasierte Integration, bei der die Inter-Schema-Korrespondenzen durch sogenannte Zusicherungen formuliert werden. Für diese Formulierungen wird ein spezielles Modell, das sogenannte Generische Datenmodell (GDM) genutzt, das mit wenigen Modellierungskonzepten auskommt und die Aufgaben, die bei der Integration entstehen, erleichtern soll. Dieses Modell wird hauptsächlich zur Auflösung von strukturellen Konflikten benötigt. Wie bereits erwähnt, stellt das ZIS einen Sonderfall föderierter DBSe dar. Das bedeutet in erster Linie, daß keine Informationen aus den verschiedenen lokalen Schemata miteinander verknüpft werden, sondern die Informationen lediglich zusammengefaßt werden, um dem Benutzer eine einheitliche Sicht auf die verschiedenen Datenquellen zu offerieren, ohne daß diese Informationen untereinander in Beziehung stehen. Durch den Integrationsansatz wurde weiterhin gewährleistet, daß die Export-Schemata in ähnlicher Weise modelliert sind und somit keine umfangreichen Schema-Änderungen erfolgen müssen. Aus diesen Gründen wird im Rahmen dieser Arbeit auf den Einsatz von formalen Integrationsmethoden, wie bspw. der zusicherungsbasierten Integration verzichtet, da die Beschreibung und Aufbereitung des formellen Kontextes in keinem Verhältnis zur Lösung der vorhandenen Probleme stehen würde. Im folgenden soll nun die Integration der lokalen Schemata beschrieben werden. Dazu wird eine, wie in [Con97] erläutert, gewichtete Integrationsstrategie verwendet. Dies hat einerseits den Vorteil, daß im nachhinein zu integrierende Datenquellen in das System eingebunden werden können, ohne daß alle Komponentensysteme erneut in den Integrationsvorgang miteinbezogen werden müssen, wie es z.B. bei einer One-Shot-Integrationsstrategie der Fall wäre. Andererseits lassen sich die bei der Integration jeweils zu lösenden Probleme einfacher beschreiben. Zuerst werden nun die Export-Schemata der ACM Digital Library (Abb. 5.9) und des DBLP Bibliographie Server (Abb. 5.11) integriert. Man erkennt, daß die Tabellen AUTHOR sowie PUBRELEASE der jeweiligen Systeme einander genau entsprechen. Die Tabelle PUBLICATION enthält bei ACM neben den mit DBLP gemeinsamen Attributen PUBNAME und ISSN zusätzlich die Attribute CURISSUE, DOKTYPE und DESCRIPTION. Diese Attribute können ohne Probleme in die Tabelle aufgenommen werden, wobei sie als optionale Attribute zu betrachten sind, da DBLP diese Attribute nicht enthält und somit auch keine Daten bezüglich dieser Attribute liefern kann. Die Werte des Attributs PUBNAME müssen, wie im Vorfeld besprochen, gemäß einer Synonym-Tabelle angeglichen werden. Die Tabelle PUBLICATION der DBLP enthält das Attribut PUBLISHER, das bei ACM nicht zu finden ist. Dieses Attribut enthält den Namen des Verlags, in der die Publikation veröffentlicht wurde. Dabei handelt es sich im Falle der ACM um ein sogenanntes implizites Attribut, denn es ist insofern in der ACM Digital Library enthalten, als daß jede Publikation dieser Datenquelle von der ACM veröffentlicht wurde und es 80 KAPITEL 5. ENTWICKLUNG DES ZIS somit kein Problem darstellt, dieses Attribut bei der Anfragebearbeitung zu generieren. Im nächsten Abschnitt wird ausführlicher auf die Behandlung impliziter Attribute eingegangen. Primär-Schlüssel dieser Tabelle ist das Attribut PUBNAME, das aufgrund der Synonym-Tabelle die Eindeutigkeit garantiert. Die jeweiligen Tabellen ARTICLE sind bis auf das Attribut ABSTRACT, das in der ACM zusätzlich enthalten ist, äquivalent zueinander. Nun besitzt die Digital Library noch eine zusätzliche Tabelle, nämlich KEYWORDS. Diese Tabelle besitzt einen Fremd-Schlüssel, der das Attribut DOKNR der Tabelle ARTICLE referenziert. Die Aufnahme dieser Tabelle in das föderierte Schema verursacht somit keine syntaktischen oder semantischen Probleme. Das somit entstandene Schema wird im weiteren Verlauf als Teilintegration bezeichnet. KEYWORDS ARTICLE AUTHOR DokNr Word DokNr NOT NULL Title NOT NULL Abstract Source Language DokNr Name NOT NULL NOT NULL NOT NULL NOT NULL PUBRELEASE DokNr PubName Volume Issue Pages Year Month NOT NULL NOT NULL PUBLICATION PubName NOT NULL DokType CurIssue ISSN Description Publisher Abbildung 5.12: Föderiertes Schema des ZIS Die Teilintegration wird nun zusammen mit dem Export-Schema der DBIS-Datenbank in das Schema des Zeitschriften-Informationssystems integriert. Dabei muß, und das ist in diesem Zusammenhang wesentlich, das Attribut AUTOREN im föderierten Schema gemäß der Teilintegration als Tabelle modelliert werden, wobei das Attribut NAME jeweils nur einen Autorennamen enthält. Wie diese Aufgabe durch das ZIS gelöst wird, wird ebenfalls im nächsten Kapitel beschrieben. Im übrigen wird die Teilintegration nur um einige Attribute ergänzt, die als einzige Bedingung haben, daß sie optionalen Charakter besitzen, da diese Attribute nicht von den anderen Komponentensystemen unterstützt werden. Das vollständige föderierte Schema des ZIS ist in Abbildung 5.12 dargestellt. 5.4 Anfragebearbeitung Nachdem im vorhergehenden Abschnitt das föderierte Schema des ZIS entwickelt wurde, erfolgt nun unter dem Gesichtspunkt der Anfragebearbeitung die dynamische Modellerweiterung der unter Punkt 5.2.2 vorgestellten ZIS-Architektur. Das bedeutet, daß die für die Bearbeitung von Benutzeranfragen erforderlichen funktionalen Komponenten, die die verschiedenen Transformations- und Integrationsprozesse realisieren, in das System integriert werden. Bevor jedoch die Beschreibung der funktionalen Komponenten erfolgt, wird ein kurzer Überblick über die an der Benutzerschnittstelle durch das ZIS zur Verfügung 81 KAPITEL 5. ENTWICKLUNG DES ZIS gestellten Funktionen gegeben. Hierbei handelt es sich im wesentlichen um eine eingeschränkte Form der Anfragesprache SQL. Daran anschließend erfolgt die Einbindung der zur Anfragebearbeitung benötigten funktionalen Komponenten in die Architektur des ZIS. In diesem Zusammenhang werden zwei Gruppen von Komponenten unterschieden. Die Transformationsprozesse werden von Wrappern realisiert, die die Datenquellen einkapseln“ und deren Erscheinungsbild in Hinblick ” auf das jeweilige Export-Schema verändern. Die Aufgaben der Integration dagegen werden von einem Mediator übernommen, dessen Funktionsweise Gegenstand von Abschnitt 5.4.4 ist. Abschließend erfolgt die Beschreibung der mit dem ZIS verbundenen Arbeitsdatenbank. 5.4.1 Benutzerschnittstelle Durch die vom ZIS zur Verfügung gestellte Schnittstelle wird dem Benutzer die Möglichkeit geboten, Anfragen in einer SQL-ähnlichen Form an das föderierte DBS zu richten. Diese Anfragen werden dann jeweils in einer gemäß dem Export-Schema modifizierten Form durch das ZIS an die Komponentensysteme weitergeleitet. Die Ausgabe der Anfrageergebnisse kann dabei je nach Wunsch des Benutzers in eine Arbeitsdatenbank und/oder die jeweilige Standardausgabe geschrieben werden. Unter Punkt 5.4.5 werden die Möglichkeiten der Arbeitsdatenbank näher erläutert. Bei den von der Benutzerschnittstelle akzeptierten Anweisungen handelt es sich um einfache SQL-Anfragen der Art SELECT-FROM-WHERE, wobei die dabei zur Verfügung stehenden Argumente weiteren Restriktionen unterliegen. Im folgenden werden die durch das ZIS implementierten Anfragemöglichkeiten ausführlich beschrieben. Im wesentlichen läßt sich sagen, daß es sich bei den ZIS-Anfragen um sogenannte select-project-join queries handelt. Dabei besitzt jede Anfrage die folgende Form 2 (Optionale Komponenten sind in Klammern [ ] dargestellt). SELECT FROM [ WHERE [ STORE | ADD ] attribute list> table list > <condition > ] < < Die aus der Datenbank zu extrahierenden Attribute werden durch das Argument <attribute list> beschrieben, wohingegen die für die Ausführung der Anfrage benötigten Relationen durch das Argument <table list> bestimmt werden. Die optionalen Argumente STORE bzw. ADD beeinflussen den Ausgabeort der Ergebnisse. Nähere Informationen hierzu erfolgen bei der Beschreibung der Arbeitsdatenbank des ZIS. Optional ist ebenfalls die Angabe von Auswahlbedingungen durch das Schlüsselwort WHERE. In diesem Zusammenhang werden auch die Einschränkungen deutlich, denen die ZIS-Anfragen im Vergleich zu allgemeinen SELECT-FROM-WHERE Anweisungen unterliegen. Jede Auswahlbedingung muß innerhalb des ZIS folgender Grammatik genügen: condition > selection> <comp op> <join> < < ::= <condition> AND <condition> | <selection> | <join> ::= ATTRIBUTE NAME <comp op> CONSTANT VALUE ::= = | != | > | < | >= | <= | LIKE ::= PRIMARY KEY ATT = FOREIGN KEY ATT Die erste Restriktion im Bereich der Auswahlbedingung ist dadurch gegeben, daß die verschiedenen Bedingungen nur durch ein logisches AND verknüpft werden dürfen. 2 Beim Prototypen des ZIS sind die Anfragen als JAVA-Methoden realisiert, wobei die Argumente beim Programmaufruf übergeben werden. Damit entfallen Aufgaben wie lexikalische oder syntaktische Analyse, wie sie bei allgemeinen SQL-Anfragen benötigt werden. KAPITEL 5. ENTWICKLUNG DES ZIS 82 Es ist aber mit Hilfe der Arbeitsdatenbank möglich, beliebige OR-Verknüpfungen zu simulieren. Auf diese Möglichkeit wird bei der Beschreibung der Arbeitsdatenbank näher eingegangen. Wie zu erkennen, handelt es sich bei der Auswahlbedingung <join> im Sinne der relationalen Algebra um einen als Equijoin bezeichneten Verbund zweier Tabellen. Dabei dürfen an einem <join> lediglich ein Primär-Schlüssel sowie der diesen Schlüssel refenzierende Fremd-Schlüssel einer anderen Tabelle beteiligt sein. Somit läßt sich feststellen, daß ein <join> einzig und allein zu dem Zweck genutzt werden kann, unterschiedliche Tabellen vollständig miteinander zu verknüpfen. Als Vergleichsoperator läßt sich der für SQL typische LIKE-Operator einsetzen, der es gestattet, lediglich Teile einer Zeichenkette in eine Vergleichsoperation miteinzubeziehen. Im Gegensatz zu SQL darf allerdings nur das ’%’-Zeichen verwendet werden, das als Platzhalter für beliebig lange Zeichenketten steht. 5.4.2 Dynamische Modellerweiterung Unter Punkt 5.2.2 wurde das dem ZIS zugrunde liegende Architekturmodell beschrieben und im weiteren Verlauf die Schemata der verschiedenen Ebenen entwickelt. Dabei blieb unberücksichtigt, durch welche Funktionen die dabei entstandenen Transfomationen sowie die Integration der unterschiedlichen Schemata bei der Anfragebearbeitung realisiert werden. Aus diesem Grund wird nun die vorgestellte Architektur um die funktionalen Systemomponenten erweitert, wie in Abb. 5.13 dargestellt. Die bei der Integration der Komponentensysteme zu bewältigenden Aufgaben werden von einem Mediator übernommen. Im Bereich des ZIS liegt dessen Hauptaufgabe darin, eine globale Anfrage in verschiedene Teilanfragen gemäß den jeweiligen Export-Schemata zu transformieren. Dabei können aufgrund der speziellen Art der durch das ZIS implementierten Föderation viele bei allgemeinen föderierten DBSen erforderlichen Konzepte unberücksichtigt bleiben. Auf diesen Gesichtspunkt wird bei der Beschreibung des Mediator näher eingegangen. Um die durch den Mediator an die Export-Schemata gerichteten (modifizierten) Anfragen auf die lokalen Schemata der Komponentensysteme abzubilden und die dabei entstehenden Ergebnismengen wieder rückzutransformieren, erfolgt der Einsatz von Wrappern. Durch die Wrapper werden die Datenquellen insofern einge” kapselt“ als daß sich die Komponentensysteme der Föderation gegenüber nur noch in Form ihrer Export-Schemata darstellen. Jeder Wrapper führt dabei die anfallenden Transformationen als Einheit“ durch. Somit ist für jede Datenquelle nur ” ein Wrapper erforderlich, was bei der getrennten Ausführung der unterschiedlichen Transformationen nicht der Fall wäre. Schließlich ist in Abbildung 5.13 noch eine Arbeitsdatenbank in das System integriert. Diese Arbeitsdatenbank steht mit dem ZIS insofern in Verbindung, als daß Anfrageergebnisse zum Zweck der späteren Nachbearbeitung in dieser Datenbank gespeichert werden können. Die Arbeitsdatenbank wird dabei von einem dedizierten DBMS verwaltet und hat keinen Einfluß auf das ZIS. Das konzeptionelle Schema der Arbeitsdatenbank ist äquivalent zu dem föderierten Schema des ZIS. Anfragen an die Arbeitsdatenbank können nicht innerhalb des ZIS gestellt werden, sondern müssen direkt an das verwaltende DBMS gerichtet werden. In diesem Zusammenhang kann die Arbeitsdatenbank wiederum als ein spezielles Komponenten-DBS des ZIS betrachtet werden. 83 KAPITEL 5. ENTWICKLUNG DES ZIS Anwendung Benutzer Föderiertes Schema DBMS Arbeits−DB Mediator Föderiertes Schema Wrapper 1 Wrapper i Wrapper n ExportSchema (extern) ExportSchema (extern) .... ExportSchema (extern) Komponenten Schema Komponenten Schema .... Komponenten Schema Lokales Schema (konzeptionell) Lokales Schema (konzeptionell) .... Lokales Schema (konzeptionell) relational relational obj.−orient. DBMS relational relational relational Internes Schema strukturierte KomponentenDB strukturierte KomponentenDB Datenbank Datenbank relational hierarchisch DBMS Internes Schema relational WSMS .... Internes Schema Web−Site semi−strukturierte KomponentenDB Abbildung 5.13: Dynamische Modellerweiterung 5.4.3 Aufbau und Funktionsweise der ZIS-Wrapper Wie bereits im Vorfeld erwähnt, werden die bei der Anfragebearbeitung durchzuführenden Transformationsprozesse innerhalb der Komponentensysteme von als Wrappern bezeichneten Software-Komponenten des ZIS realisiert. Dabei muß jeder Wrapper im wesentlichen zwei Aufgaben erfüllen: Zum einen müssen die in Hinblick auf die Export-Schemata generierten Anfragen in für die lokalen Schemata verständliche Anfragen umgewandelt werden. Zum anderen müssen die von den lokalen Schemata ausgegebenen Ergebnisse in die Form der Export-Schemata transformiert werden. Unterschiedliche Transformationen, wie Schema-Modifikationen oder auch Datenmodell-Transformationen, werden dabei von den Wrappern als Ganzes durchgeführt. Innerhalb des ZIS können zwei Arten von Wrappern unterschieden werden. Einerseits die bei den relationalen Datenbanksystemen zum Einsatz kommenden Wrapper, sowie andererseits die für die WSDBSe zur Verfügung gestellten SoftwareKomponenten. Die der jeweiligen Gruppe angehörigen Wrapper weisen untereinander starke Gemeinsamkeiten in Bezug auf ihren Aufbau und ihre Funktionsweise auf. Für jede dieser Gruppen sollen daher im folgenden die wichtigsten Eigenschaften dargestellt werden. KAPITEL 5. ENTWICKLUNG DES ZIS 5.4.3.1 84 Wrapper für relationale Komponenten Bei der Integration relationaler Komponentensysteme können die für die Transformation in die Export-Schemata benötigten Wrapper durch Sicht-Definitionen implementiert werden, die von den meisten relationalen DBSen zur Verfügung gestellt werden. Sichten (views) entsprechen dabei den in der ANSI/SPARC-Architektur enthaltenen externen Schemata und stellen eine logische Modifikation der durch das konzeptionelle Schema definierten Datenbank dar. Die in diesem Zusammenhang benötigten Transformationsprozesse werden durch das zugrunde liegende DBMS realisiert, so daß das ZIS keine entsprechenden Software-Komponenten zur Verfügung stellen muß. Im Falle der DBIS Forschungsliteratur-Datenbank, die auf einem Oracle-System basiert, wird eine Sicht als eine virtuelle Tabelle betrachtet, die durch Attribute anderer Tabellen realisiert wird. Die Definition erfolgt dabei mit Hilfe von SQLAnfragen, die die für eine Sicht benötigten Attribute aus den anderen im System existierenden Tabellen bzw. im Vorfeld definierten Sichten herausfiltert. In diesem Zusammenhang wird also das externe Schema durch eine Menge unterschiedlicher Sichten gebildet. Diese Beschreibung weicht von der zu Beginn erfolgten Definition des Sicht-Begriffes als eine Menge von Relationen ab. Diese Unterscheidung ist jedoch für die weiteren Überlegungen bedeutungslos. Die Problematik bei den Sicht-Definitionen besteht darin, die in den Export-Schemata enthaltenen Integritäts-Bedingungen, wie z.B. Primär-Schlüssel, durch entsprechende SQL-Anfragen korrekt darzustellen. In den meisten Fällen können zu diesem Zweck bereits bestehende Sichten in die Anfrage mit eingebunden werden, um so eine logische Vernetzung der verschiedenen Sichten zu erreichen. Eine Fremd-Schlüssel-Bedingung könnte z.B. durch ein SELECT DISTINCT auf den Primär-Schlüssel der referenzierten Sicht realisiert werden. Dazu ist es erforderlich, daß die den Primär-Schlüssel enthaltene Sicht bereits existiert. Die Reihenfolge der Sicht-Definitionen kann also in Hinblick auf die korrekte Abbildung des ExportSchemas von Bedeutung sein. Es sei angemerkt, daß im Rahmen dieser Arbeit kein Beweis dafür erbracht wird, daß die Export-Schemata grundsätzlich mit Hilfe von Sichten implementiert werden können. Sollte eine entsprechende Implementierung nicht möglich sein oder das DBS keine Sicht-Definitionen zur Verfügung stellen, so müßte die Realisierung der funktionalen Transformations-Komponenten durch den Einsatz von Software-Modulen, ähnlich zu den bei den WSDBSen verwendeten Wrappern, vom ZIS gewährleistet werden. Abschließend stellt sich die Frage, ob die in einer Föderation vorausgesetzte Autonomie der Komponentensysteme durch die Definition von Sichten verletzt wird, da die Implementierung innerhalb der entsprechenden DBSe erfolgt und nicht durch den Föderierungsdienst realisiert wird. Da aber zum einen die Export-Schemata innerhalb der 5-Ebenen-Schema-Architektur als externe Schemata der Komponentensysteme betrachtet werden können und zum anderen Sicht-Definitionen keinen Einfluß auf die lokale Funktionalität der an der Föderation beteiligten Systeme haben, wird im Rahmen dieser Arbeit die Autonomie als gewährleistet angesehen. Im folgenden sollen nun die für das Export-Schema der DBIS-Datenbank verwendeten Sicht-Definitionen vorgestellt werden (Abb. 5.14). 5.4.3.2 Wrapper für Web-Site Datenbanksysteme Die Transformation des lokalen Schemas eines WSDBS in das für die Integration geeignete Export-Schema wird im Falle des ZIS durch den Einsatz eines sogenannten Translation-Wrapper realisiert. Jeder Translation-Wrapper vereint dabei KAPITEL 5. ENTWICKLUNG DES ZIS (1.) CREATE VIEW PUBLICATION (PubName, DokType, Publisher) AS SELECT DISTINCT ZeitschrReihe, DokTyp, Verlag FROM DOKUMENT WHERE ZeitschrReihe IS NOT NULL AND DokTyp = ’article’ ; (2.) CREATE VIEW ARTICLE (DokNr, Title, Source, Language) AS SELECT DISTINCT DokNr, Titel, Source, Sprache FROM DOKUMENT WHERE DokTyp = ’article’ AND ZeitschrReihe IN (SELECT PubName FROM PUBLICATION ) ; (3.) CREATE VIEW (4.) CREATE VIEW KEYWORDS (DokNr, Word) AS SELECT DISTINCT DokNr, Schlagwort FROM SCHLAGWORT WHERE DokNr IN (SELECT DokNr FROM ARTICLE ) ; 85 PUBRELEASE (DokNr, PubName, Volume, Issue, Pages, Year, Month) AS SELECT DISTINCT A.DokNr, P.PubName, Band, Nummer, Seite, Jahr, Expl FROM ARTICLE A, PUBLICATION P, DOKUMENT D, L_MONAT M A.DokNr = D.DokNr WHERE AND D.ZeitschrReihe = P.PubName AND D.Monat = M.Monat ; Abbildung 5.14: Sicht-Definitionen DBIS-Literatur-DB die bei Datenmodell-Transformation und Schema-Modifikation durchzuführenden Umwandlungen und übersetzt die in SQL formulierten Anfragen an das ExportSchema in entsprechende WS/QL-Anfragen, mit denen auf das jeweilige WSDBS zugegriffen werden kann. Um eine korrekte Anfrageübersetzung zu gewährleisten, enhält jeder Translation-Wrapper eine Translation-Table und eine gemäß dem lokalen Schema des zugrunde liegenden Web-Site zu konstruierende WS/QL-Schablone. In der Translation-Table sind sämtliche Attribute des Export-Schemas zusammen mit den jeweiligen Relationen sowie die dazu in Beziehung stehenden Objekte innerhalb des lokalen Schemas gespeichert. Mit Hilfe der von WS/QL zur Verfügung gestellten Kommandos kann für jeden Web-Site eine allgemeine Schablone konstruiert werden, die eine einfache Anfrageübersetzung ermöglicht. Bevor die Anfrageübersetzung am Beipiel des DBLP Bibliographie-Servers detailliert vorgestellt wird, muß noch eine für den weiteren Verlauf wichtige Vereinbarung getroffen werden. Unter Punkt 2.2.1 wurde ein hierarchisches DatenbankSchema als eine Menge hierarchischer Schemata beschrieben, ähnlich einem von der Graphentheorie her bekannten Wald, der aus mehreren Bäumen besteht. Jede Ausprägung eines hierarchischen Schemas besteht wiederum aus mehreren Zustandsbäumen. Um die Anfrageübersetzung zu erleichtern, soll nun jedes hierarchische Datenbank-Schema, als auch dessen Ausprägung, als ein einzelner Baum be- 86 KAPITEL 5. ENTWICKLUNG DES ZIS trachtet werden. Zu diesem Zweck erfolgt der Einsatz eines virtuellen Root-Records, dessen Child-Records von den Root-Records aller bei der Ausprägung des hierarchischen Datenbank-Schemas entstehenden Zustandsbäumen gebildet werden. Somit stellt sich jedes WSDBS als eine zusammenhängende Datenbank dar. Durch die getroffene Vereinbarung können nun die in den SQL-Anfragen vorkommenden join conditions bei der Anfragebearbeitung als überflüssig betrachtet werden. Da diese conditions innerhalb des ZIS lediglich zur Verknüpfung von Tabellen über Schlüssel-Attribute dienen, werden sie im Falle der hierarchischen Datenbanken, aufgrund der Tatsache, daß nun alle Records innerhalb eines Zustandsbaums zu lokalisieren sind, nicht benötigt. EXPORT−SCHEMA Table Attribut ARTICLE ARTICLE ARTICLE AUTHOR AUTHOR PUBLICATION PUBLICATION PUBRELEASE PUBRELEASE PUBRELEASE PUBRELEASE PUBRELEASE PUBRELEASE DokNr Title URLFullText DokNr Name PubName Publisher DokNr PubName Volume Issue Pages Year LOCAL−SCHEMA Attribute RecordType Level No. Title URLFullText ARTICLE ARTICLE 6 6 1 1 Name Name Name AUTHOR PUBLICATION PUBLISHER 7 2 1 1 1 1 Name Volume Issue Pages Year PUBLICATION PUBRELVOLUME PUBRELISSUE ARTICLE PUBRELYEAR 2 4 5 6 3 1 1 1 1 1 Abbildung 5.15: Translation-Table des DBIS-Wrapper Im folgenden wird nun am Beispiel des DBLP Bibliographie-Server die Entwicklung eines Translation-Wrapper vorgestellt. In Abb. 5.15 ist die Translation-Table von diesem Wrapper abgebildet. Als Grundlage hierbei wurden die im Vorfeld beschriebenen Schemata des DBLP-Server verwendet (Export-Schema: Abb. 5.10, lokales Schema: 5.3). Generierte Attribute, wie beispielsweise DokNr, besitzen kein entsprechendes Gegenstück innerhalb des lokalen Schemas. Solche Attribute können somit nicht ohne weiteres in den Übersetzungsvorgang miteingebunden werden. Da generierte Attribute innerhalb einer WHERE-Klausel nur in join conditions vorkommen und diese, wie oben beschrieben, bei der Anfrageübersetzung nicht beachtet werden, ist in diesem Zusammenhang lediglich das Auftreten solcher Attribute in einer SELECT-Klausel von Interesse. In einem solchen Fall kann ausgehend von einem dem Komponentensystem zugewiesenen Startwert durch sukzessive Inkrementierung die Generierung des Attributs erfolgen. Diese Vorgehensweise wird im weiteren Verlauf noch durch ein Beispiel verdeutlicht. Angaben zu der Hierachieebene (level ) oder dem Platz (No) werden für die Generierung korrekter WS/QL-Anfragen benötigt. So kann beispielsweise mit Hilfe der Hierarchieebene der Pfad eines GET PATHKommandos bestimmt werden. Eine mögliche WS/QL-Schablone des Translation-Wrapper der DBLP-Datenbank ist in Abb. 5.16 dargestellt. Dabei folgen die verwendeten Begriffe der Syntax allgemeiner ZIS-Anfragen. Es sei darauf hingewiesen, daß der Gesichtspunkt der Performance bei der Entwicklung der Schablone nur eine untergeordnete Rolle gespielt KAPITEL 5. ENTWICKLUNG DES ZIS 87 GET FIRST PATH DBLP, ..., [LNR] WHERE <condition*> ; while ( DB_STATUS== 0) { System.out.println( <attribute list> ) ; GET NEXT PATH DBLP, ..., [LNR] WHERE <condition*> ; } Abbildung 5.16: WS/QL-Schablone für den DBLP-Server hat und möglicherweise andere Schablone existieren die eine bessere Performance aufweisen. Aufgrund der besseren Verständlichkeit ist jedoch diese Schablone bevorzugt worden. Die Angabe des Pfades besteht dabei einerseits aus dem Root-Record, in diesem Falle der virtuellen Wurzel DBLP, und reicht bis zur tiefsten Hierarchieebene (Last Needed Record, LNR), die innerhalb der SQL-Anfrage benötigt wird. Der Ausdruck <condition*> bezieht sich auf die von der Syntax einer ZIS-Anfrage her bekannte <condition> bei der existierende join conditions allerdings eliminiert wurden. Abschließend soll nun beispielhaft die Übersetzung einer ZIS- in eine WS/QL-Anfrage dargestellt werden (Abb. 5.17). SELECT FROM WHERE AND AND AND DokNr, Title ARTICLE A, PUBRELEASE R A.DokNr = R.DokNr Volume = ’20’ Issue = ’4’ PubName = ’ACM Computing Surveys’ ; Int DokNr = 1000000 ; /* Initialisierung des zu generierenden Attributs GET FIRST PATH DBLP, PUBLISHER, PUBLICATION, PUBRELYEAR, PUBRELVOLUME, PUBRELISSUE, ARTICLE WHERE Volume = ’20’ AND Issue = ’4’ AND PubName = ’ACM Computing Surveys’ ; while ( DB_STATUS== 0) { System.out.println(DokNr++, ARTICLE.Title) ; GET NEXT PATH DBLP, PUBLISHER, PUBLICATION, PUBRELYEAR, PUBRELVOLUME, PUBRELISSUE, ARTICLE WHERE Volume = ’20’ AND Issue = ’4’ AND PubName = ’ACM Computing Surveys’ ; } Abbildung 5.17: Beispiel für eine Transformation 88 KAPITEL 5. ENTWICKLUNG DES ZIS 5.4.4 Aufbau und Funktionsweise des ZIS-Mediators Nachdem die Transformationsprozesse zwischen den lokalen sowie den Export-Schemata ausführlich erläutert wurden, erfolgt nun die Beschreibung des Integrationsprozesses. Die in diesem Zusammenhang zu bewältigenden Aufgaben werden wie bereits erwähnt von einem Mediator übernommen. Dabei muß der Mediator im wesentlichen zwei Funktionen erfüllen: Dies ist zum einen die Übersetzung einer globalen Anfrage in entsprechend den jeweiligen Export-Schemata geeignete Teilanfragen. Zum anderen müssen die von den Komponentensystemen zurückgegebenen Ergebnisse gemäß dem globalen Schema umgewandelt werden. In Hinblick auf das ZIS muß dabei eine wesentliche Eigenschaft beachtet werden. Teilanfragen stehen in keinerlei Beziehung zueinander, d.h., daß jede Teilanfrage autonom ausgeführt werden kann. Daraus folgt gleichzeitig, daß die jeweiligen Anfrageergebnisse nicht miteinander verknüpft werden müssen. Aufgrund dieser Tatsache kann auf die Generierung sogenannter Postprocessing-Anfragen, wie beispielsweise in [Con97] beschrieben, verzichtet werden. Der Mediator besitzt demnach den in Abb. 5.18 dargestellten Aufbau. GA GE = GE1 + GE2 + ... + GN n MEDIATOR GE 1 GA AÜ GE 2 GE 3 GA EK AÜ KON 1 ... EK Konnektor Anfrage−Übersetzer Ergebnis−Konverter EK KON n KSE 2 KSA 2 KON = AÜ = EK = AÜ KON 2 KSE 1 KSA 1 GA KSE n KSA n GA GE KSA KSE = = = = Globale Anfrage Globales Ergebnis Komponentensystem−Anfrage Komponentensystem−Ergebnis Abbildung 5.18: Aufbau des ZIS-Mediators Für jedes Komponentensystem existiert ein als Konnektor bezeichnetes SoftwareModul. Jeder Konnektor wiederum besteht aus zwei Komponenten: einem Übersetzer und einem Konverter. Dem Übersetzer obliegt dabei die Aufgabe, die globale Anfrage in eine in Hinblick auf das jeweilige Komponentensystem geeignete Teilanfrage zu übersetzen, während der Konverter jedes Anfrageergebnis in die globale Darstellung umwandelt. Im folgenden werden die dabei zu lösenden Probleme beschrieben und anhand eines Beispiels verdeutlicht. 5.4.4.1 Anfrageübersetzer Bei der Übersetzung einer globalen Anfrage in eine für die jeweiligen Komponentensysteme geeignete Form müssen unterschiedliche Probleme gelöst werden. Dazu KAPITEL 5. ENTWICKLUNG DES ZIS 89 gehört z.B. die Behandlung impliziter Attribute bzw. von in den jeweiligen Schemata unterschiedlich modellierten Objekten. Viele Konflikte, wie beispielsweise die unterschiedliche Benennung semantisch äquivalenter Konstrukte, konnten allerdings bereits im Vorfeld durch die Definition des Integrationsansatzes gelöst werden. Auf die Behandlung möglicher Konflikte im Rahmen des ZIS wird im Anschluß kurz eingegangen. Implizite Attribute Manche Relationen innerhalb des globalen Schemas können Attribute enthalten, die in bestimmten Komponentensystemen nur implizit vorhanden sind. Für das Komponentensystem der ACM Digital Library ist beispielsweise PUBLISHER aus der Relation PUBLICATION ein implizites Attribut, da jeder in der Datenbank enthaltene Artikel von der ACM veröffentlicht wurde. Bei der Anfrageübersetzung können sämtliche Verweise auf solche Attribute gelöscht werden, müssen aber bei der Umwandlung der Ergebnismenge durch den Konverter wieder integriert werden. Attribute in unterschiedlichen Relationen Ist ein Attribut des föderierten Schemas innerhalb eines Komponentensystems einer anderen Relation zugeordnet, so muß die globale Anfrage insofern modifiziert werden, als daß gegebenenfalls die entsprechende Relation durch ein join in die Anfrage miteingeliedert werden muß. Durch den Integrationsansatz sollten solche Konflikte in den meisten Fällen bereits im voraus gelöst worden sein, so daß in diesem Zusammenhang nicht näher auf die Konfliktbehebung eingegangen wird. Relationen als Attribute modelliert Ein anderer Konflikt entsteht dadurch, wenn eine Relation bzw. ein Teil einer Relation innerhalb bestimmter Komponentensysteme als mehrwertiges“ Attribut mo” delliert ist. Beispielhaft sei hierbei das Attribut AUTOREN der DBIS LiteraturDatenbank erwähnt. In diesem Fall müssen mehrere Modifikationen durchgeführt werden. Zum einen müssen Attribute bzw. Relationen in der Anfrage entsprechend angeglichen werden. Zum anderen müssen gegebenenfalls Vergleichsoperatoren innerhalb von Bedingungen geändert werden. Wird z.B. nach einem bestimmten Autor mittels des Gleichheitsoperators gesucht, so muß dieser bei der Anfrageübersetzung in einen LIKE-Operator umgewandelt werden, da das Attribut nun nicht mehr nur aus einem, sondern aus mehreren Autoren besteht und demzufolge eine Gleichheitsabfrage zu einem leeren Ergebnis führen würde. Fehlende Attribute Ist ein Attribut innerhalb eines Komponentensystems nicht vorhanden, so können innerhalb einer Anfrage jegliche Verweise auf dieses Attribut bei der Übersetzung einfach gelöscht werden. Dabei entsteht jedoch folgende Problematik: Werden z.B. Artikel in Hinblick auf ein bestimmtes Schlüsselwort gesucht, so führt die Eliminierung aller Verweise auf das entsprechende Attribut während der Übersetzung dazu, daß, da nun der Bedingungsteil der Anfrage leer ist, alle in dem Komponentensystem gespeicherten Datensätze ausgegeben werden. Die globale Ergebnismenge wäre dadurch in Bezug auf die Anfrage wenig aussagekräftig. In diesem Falle erscheint es sinnvoller, das entsprechende Komponentensystem bei der Anfrage nicht zu berücksichtigen. Andererseits kann eine globale Anfrage, bei der mehrere Bedingungen durch ein logisches AND verknüpft sind, auch nach der Eliminierung einer dieser Bedingungen noch brauchbare Ergebnisse liefern, obwohl auch in diesem Fall die globale Anfrage keine völlig korrekte Ergebnismenge liefern würde. Hierbei ist zu entscheiden, ob die Ungenauigkeit der Ergebnismenge in Hinblick auf die Trefferquote billigend in Kauf genommen wird oder ob das Komponentensystem bei der Anfragebearbeitung unberücksichtigt bleiben soll, um eine exakte Ergebnismenge KAPITEL 5. ENTWICKLUNG DES ZIS 90 zu gewährleisten. Eine allgemeine Lösungsmöglichkeit ist in diesem Zusammenhang nicht gegeben. Innerhalb des ZIS wird der Ansatz verfolgt, daß, falls eine Bedingung ein Attribut enthält, welches in dem Komponentensystem nicht existiert, und diese Bedingung die einzige innerhalb der Anfrage ist, das Komponentensystem nicht in die Anfragebearbeitung mit eingeschlossen wird. Existieren jedoch weitere Bedingungen, so wird das System in die Anfragebearbeitung integriert. 5.4.4.2 Ergebniskonverter Der Konverter bildet praktisch die Umkehrfunktion des Übersetzers. D.h., daß die von den Komponentensystemen zurückgegebenen Ergebnismengen wieder in eine Darstellung gemäß dem globalen Schema umgewandelt werden müssen. Dabei sind in diesem Zusammenhang nur noch die Inhalte der SELECT- und FROM-Klauseln von Bedeutung. Die Rückumwandlung der bei der Anfrageübersetzung gelösten Konflikte soll im Anschluß kurz erläutert werden. Der Konverter muß gewährleisten, daß implizite Attribute bei der Umwandlung der Ergebnismenge korrekt in diese integriert werden. Dazu muß jeder Datensatz durch die impliziten Attribute erweitert werden. Wurde eine Tabelle bzw. ein Teil einer Tabelle in dem Export-Schema eines Komponentensystems als Attribut modelliert, so muß der Konverter nun dafür sorgen, daß das Ergebnis wieder in die Darstellung des globalen Schemas überführt wird. Attribute, die in einem Komponentensystem nicht enthalten sind, werden innerhalb der Ergebnismenge mit dem Wert #UNKNOWN belegt, um dem Benutzer, der im Normalfall keine Kenntnisse über die Struktur der Komponentensysteme besitzt, die korrekte Interpretation der Ergebnisse zu ermöglichen. Schließlich muß der Konverter noch dafür sorgen, daß Attribute, für die das ZIS eine Synonym-Tabelle bereitstellt, entsprechend umgewandelt werden. Abbildung 5.19 zeigt ein Beispiel für eine Anfrageübersetzung. 5.4.5 Arbeitsdatenbank Wie bereits erwähnt, gestattet das ZIS bei der Anfrageformulierung nur einen eingeschränkten Funktionsumfang. Um aber dem Benutzer dennoch die Möglichkeit komplexer Anfragen zu offerieren, können die Anfrageergebnisse in einer relationalen Arbeitsdatenbank gespeichert werden. Auf diese Datenbank kann dann durch das zugrunde liegende DBMS zugegriffen werden. Das ZIS stellt dem Benutzer dabei verschiedene Optionen für die Integration der Arbeitsdatenbank zur Verfügung. Bei der Nutzung der Arbeitsdatenbank ist darauf zu achten, daß sämtliche PrimärSchlüssel des globalen Schemas in der SELECT-Anweisung der Anfrage vorhanden sind, um dem System die Einhaltung der Integrationsbedingungen zu ermöglichen. Im Unterschied zu gewöhnlichen SQL-Anfragen ist es beim ZIS durch Angabe eines optionalen Arguments möglich, die Ausgabe der Ergebnismenge umzuleiten. Ohne Angabe eines der Schlüsselwörter STORE bzw. ADD wird die Ergebnismenge lediglich in die Standardausgabe geschrieben. Bei Angabe von STORE dagegen wird die Ergebnismenge zusätzlich in der Arbeitsdatenbank gespeichert. Dabei wird bei jeder Anfrage die Arbeitsdatenbank neu initialisiert und somit deren aktueller Inhalt gelöscht. Durch die Angabe von ADD kann im Gegensatz zu STORE diese Initialisierung verhindert und somit die Ergebnismengen verschiedener Anfragen gemeinsam in der Arbeitsdatenbank gespeichert werden. Dadurch kann beispielsweise eine durch das ZIS nicht unterstützte OR-Anfrage auf die Art generiert werden, daß die Menge der Auswahlbedingungen geteilt und Anfragen mit jeweils einer dieser Teilbedingungen sukzessive ausgeführt werden. Mittels 91 KAPITEL 5. ENTWICKLUNG DES ZIS Title, Name, Abstract ARTICLE A, PUBRELEASE R, AUTHOR W A.DokNr = R.DokNr W.DokNr = A.DokNr Volume = ’20’ Issue = ’4’ PubName = ’ACM Computing Surveys’ ; SELECT FROM WHERE AND AND AND AND Anfrage an das ZIS, basierend auf dem globalen Schema. Die Anfrage muß nun zunächst so umge− formt werden, daß die als Attribut model− lierte Tabelle korrekt erfaßt wird. Title, Name, Abstract, Autoren ARTICLE A, PUBRELEASE R, AUTHOR W A.DokNr = R.DokNr W.DokNr = A.DokNr Volume = ’20’ Issue = ’4’ PubName = ’ACM Computing Surveys’ ; SELECT FROM WHERE AND AND AND AND Das Attribut AUTOREN steht für die Anfrage des Attributs NAME der Tabelle AUTHOR In der DBIS−Datenbank nicht existierende Objekte sind durchgestrichen dargestellt. Objekte, die in der DBIS−Datenbank nicht vorkommen, werden aus der Anfrage ge− löscht. Title, Autoren ARTICLE A, PUBRELEASE R A.DokNr = R.DokNr Volume = ’20’ Issue = ’4’ PubName = ’ACM Computing Surveys’ ; SELECT FROM WHERE AND AND AND Generierte Anfrage an die DBIS−Datenbank gemäß dem zugrunde liegenden Export− Schema. Anfragebearbeitung Title Autoren xyz abc uvw Schmidt Meyer/Müller Schulze, Brand Anfrageergebnis in Bezug auf das Export− Schema der DBIS−Datenbank Das Attribut AUTOREN muß wieder als Ta− belle modelliert werden. Das in der DBIS− Datenbank nicht enthaltene Attribut AB− STRACT muß in das Ergebnis integriert werden und mit dem Wert #UNKNOWN belegt werden. Title Name Abstract xyz abc abc uvw uvw Schmidt Meyer Müller Schulze Brand #UNKNOWN #UNKNOWN #UNKNOWN #UNKNOWN #UNKNOWN Anfrageergebnis der DBIS−Datenbank, ba− sierend auf dem globalen Schema. Abbildung 5.19: Beispiel Anfrageübersetzung (DBIS-Datenbank) KAPITEL 5. ENTWICKLUNG DES ZIS 92 ADD können die Anfrageergebnisse dann nacheinander in die Datenbank geschrieben werden. Dabei kann es aber zu folgendem Konflikt kommen. Da die WSDBSe bei jeder Anfrage die als Primär-Schlüssel fungierenden Dokumentnummern neu generieren, kann es in diesem Fall zu Duplikatbildungen kommen. Die Lösung eines solchen Konflikts muß der Benutzer bei der Arbeit mit der generierten Datenbank berücksichtigen. 5.5 Administration Im bisherigen Verlauf der Ausführungen wurde bereits mehrfach auf die administrativen Aufgaben und insbesondere die Möglichkeiten der Extensibilität eingegangen. Aus diesem Grund wird in diesem Abschnitt lediglich eine kurze Zusammenfassung der dargestellten Gesichtspunkte gegeben. Durch den Integrationsansatz sowie die verwendete Integrationsstrategie läßt sich das ZIS relativ einfach um weitere Komponentensysteme erweitern. Dies liegt zum einen daran, daß bei der Einbindung neuer Quellen keine Modifikation bestehender Komponentensysteme erfolgen muß, zum anderen können die existierenden funktionalen Komponenten als Grundlage bei der Entwicklung neuer Wrapper bzw. Konnektoren genutzt werden. Weiterhin besitzt das ZIS, wie im Vorfeld beschrieben, einen modularen Charakter, so daß Änderungen bestimmter Eigenschaften des Systems durch die Modifikation weniger Module realisiert werden können. Zur Instandhaltung des Systems läßt sich sagen, daß Modifikationen nur dann zwingend erforderlich sind, wenn die lokalen Schemata der Komponentensysteme verändert werden. Welche Module in diesem Fall den neuen Bedingungen angepaßt werden müßten, hängt von Art und Umfang der erfolgten Schema-Modifikationen ab. Bei geringfügigen Änderungen wäre die Anpassung der jeweiligen Wrapper Module ausreichend, wohingegen bei umfangreichen Schema-Modifikationen gleichzeitg ein erneuter Datenbank-Entwurf und damit einhergehend die Anpassung vieler Software-Module nötig sein könnte. Da der Integrationsansatz jedoch unabhängig von den Komponentensystemen entwickelt wurde, und das System indirekt auf diesem Ansatz basiert, ist es als wahrscheinlich zu bezeichnen, daß nur leichte Modifikationen in den Modulen erforderlich wären. Kapitel 6 Zusammenfassung und Ausblick Im Rahmen dieser Arbeit wurde ein Zeitschriften-Informationssystem entwickelt, das auf den Konzepten föderierter Datenbanksysteme basiert und dem Benutzer die Möglichkeit bietet, mit Hilfe von SQL-ähnlichen Anfragen Informationen über Zeitschriftenartikel zu erhalten. Bei der Anfragebearbeitung werden unterschiedliche Datenquellen berücksichtigt. Dabei handelt es sich einerseits um traditionelle Datenbanksysteme, wie beispielsweise die relationale Forschungsliteratur-Datenbank der Abteilung Datenbanken und Informationssysteme. Andererseits werden WebSites ausgewählter Verlage sowie ein Bibliographie-Server in das System integriert. Zur Integration der Web-Sites wurde ein spezielles Web-Site Datenbanksystem konzipiert, das eine hierarchische Struktur besitzt und für die Verwaltung von genau einem Web-Site verantwortlich ist. Das Datenbanksystem stellt eine Schnittstelle zur Verfügung, die es ermöglicht, Anfragen an den Web-Site zu richten, wobei keine Kenntnisse über den internen Aufbau des Site erforderlich sind. Für die Informationsgewinnung semi-strukturierter Daten wird das zu diesem Zweck entworfene Data Retrieval System eingesetzt. Die Extraktion erfolgt dabei mit Hilfe einfach zu formulierender Regeln, durch die die relevanten Daten innerhalb des Dokuments identifiziert werden können. Um die Extraktion der Daten effizient und vor allem stabil gegenüber Änderungen der Quelltexte zu machen sowie gleichzeitig die einfache Definition von Extraktionsregeln zu ermöglichen, wird innerhalb des Data Retrieval Systems ein spezieller Dokumentfilter verwendet. Dieser transformiert den HTMLCode der Web-Pages in eine vereinfachte Darstellung, ohne dabei die Struktur oder den für die Integration relevanten Informationsgehalt der Dokumente zu verändern. Somit kann das Data Retrieval System als Alternative im Bereich der Extraktion semi-strukturierter Daten betrachtet werden. Darüber hinaus wurde durch die Implementierung der Web-Site Datenbanksysteme die einheitliche Betrachtung der Konzepte föderierter Datenbanken ermöglicht, da diese die direkte Integration von Web-Sites nicht unterstützen. Die bei der Integration der Datenquellen in das Zeitschriften-Informationssystem zu bewältigenden Aufgaben wurden durch den Einsatz von Wrappern und einem Mediator realisiert. Die Wrapper sind dabei so konzipiert, daß sie innerhalb der unterschiedlichen Klassen von Datenbanksystemen (relational, hierarchisch, etc.) einen adaptiven Charakter aufweisen. Im Rahmen dieser Arbeit wurden Wrapper für relationale und hierarchische Datenbanken vorgestellt. Die Integration zusätzlicher Datenquellen, die einer dieser Klassen angehören, ist durch die einfache Adaption der bestehenden Konzepte möglich. Dies gilt in gleichem Maße für den Mediator, 93 KAPITEL 6. ZUSAMMENFASSUNG UND AUSBLICK 94 der für jede Datenquelle einen dedizierten Konnektor zur Verfügung stellt. Innerhalb der Arbeit wurde gezeigt, wie diese Konnektoren konstruiert werden können. Zwar lassen sich Konnektoren im Gegensatz zu den Wrappern nicht in verschiedene Klassen zusammenfassen, doch durch das zugrunde liegende Konzept wird eine einfache Integration zusätzlicher Datenquellen ermöglicht. Dies läßt sich dadurch erklären, daß aufgrund der Autonomie der Konnektoren bestehende Systemkomponenten bei einer Erweiterung nicht modifiziert werden müssen. Anhand der beschriebenen Erweiterungsmöglichkeiten ist zu erkennen, daß die Entwicklung des Zeitschriften-Informationssystems insbesondere unter dem Gesichtspunkt der Modularität erfolgt ist. Dadurch wird der einfache Austausch bzw. die Modifikation einzelner Module ohne eine Beeinträchtigung des Gesamtsystems gewährleistet. Somit läßt sich das System, aufbauend auf den in dieser Arbeit vorgestellten Konzepten, sukzessive verbesssern. Da das Hauptaugenmerk dieser Arbeit auf dem System in seiner Gesamtheit gelegen hat, sind Aspekte der Performance, Benutzerfreundlichkeit bzw. Komplexität in den Hintergrund gerückt worden. Dadurch ergeben sich für das ZeitschriftenInformationssystem eine Reihe möglicher Weiterentwicklungen. In erster Linie ist in diesem Zusammenhang der Gesichtspunkt der Anfragebearbeitung zu erwähnen. So wurden z.B. Aspekte der Anfrageoptimierung im Rahmen dieser Arbeit nicht beachtet. Weiterhin wurden die Möglichkeiten bei der Anfrageformulierung im Vergleich zu SQL stark eingeschränkt, so daß beispielsweise geschachtelte Anfragen nicht vom System untertützt werden. Allerdings muß gleichzeitig die Frage gestellt werden, inwieweit eine vollständige SQL-Funktionalität für das ZeitschriftenInformationssystem benötigt wird. Wie auch immer, Verbesserungen im Bereich der Anfragebearbeitung stellen eine sinnvolle Weiterentwicklung des Systems dar. Es muß allerdings darauf hingewiesen werden, daß eine Funktionserweiterung der Anfragesprache die Modifikation bestehender Konnektoren miteinschließt. Eine andere Möglichkeit der Weiterentwicklung des Systems stellt sich im Bereich des Data Retrieval Systems. So erfolgt die Definition von Extraktionsregeln im Rahmen dieser Arbeit auf manuelle Art und Weise. Es ist allerdings aufgrund der einfachen Struktur der durch den Filter erzeugten Dokumente möglich, diese Regeln halbautomatisch zu erzeugen. In diesem Zusammenhang wäre auch die Entwicklung einer graphischen Benutzeroberfläche vorteilhaft. Dabei könnte gleichzeitig eine menügesteuerte Konfiguration der Dokumentfilter realisiert werden. Zusammenfassend läßt sich feststellen, daß das Zeitschriften-Informationssystem einen logisch strukturierten Ansatz zur Integration verteilter, heterogener Datenquellen darstellt. Die in diesem Zusammenhang vorgestellten Konzepte lassen sich dabei ohne weiteres auf andere Anwendungsbereiche übertragen. Gleichzeitig können einige der in dieser Arbeit entwickelten Konzepte separat in anderen Projekten genutzt werden. An erster Stelle ist hierbei das Data Retrieval System zu erwähnen, aber auch das Konzept des Integrationsansatzes stellt eine sinnvolle Ergänzung im Bereich föderierter Datenbanksysteme dar. Web−Site Schemata digitaler Bibliotheken Kluwer IEEE Elsevier Springer 95 Kluwer Online http://www.wkap.nl/kluweronline/onlinejournals/ Dezember 2001 Template−Klasse : "KluwerOnline" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST KluwerOnline Publication PubName Publisher HyperLink HyperLink (Publication+)> (PubName, Publisher, HyperLink)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "PublicationReleases" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Volume NumberOfVolume Issue NumberOfIssue Year Month HyperLink HyperLink (NumberOfVolume, Issue+)> (#PCDATA)> (NumberOfIssue, (Year,Month)?, HyperLink)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "TableOfContents" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Article Title Author Pages HyperLink HyperLink (Title, Author+, Pages, HyperLink)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> 1 Template−Klasse : "DetailsOfArticle" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Details ISSN Abstract Keyword URLFullText (ISSN?, Abstract?, Keyword*, URLFullText)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> 96 Springer LINK Computer Science Online Library http://link/springer.de/ol/csol/index.html Dezember 2001 Template−Klasse : "OnlineLibrary" <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Online Library Publication HyperLink HyperLink (Publication+)> (PubName, HyperLink)> EMPTY> Template CDATA #REQUIRED URL CDATA #REQUIRED> 1 Template−Klasse : "ISSN" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST ISSN ISSN_Print ISSN_Electr HyperLink HyperLink (ISSN_Print, ISSN_Electr)> (#PCDATA)> (#PCDATA)> EMPTY> Template CDATA #REQUIRED CDATA #REQUIRED> URL 1 Template−Klasse : "PublicationDescription" <!ELEMENT <!ELEMENT PubDesc Description (Description)> (#PCDATA)> Template−Klasse : "PublicationReleases" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST R_Year Year Releases Volume Issue HyperLink HyperLink (Year, Releases+)> (#PCDATA)> (Volume, Issue)> (#PCDATA)> (#PCDATA)> EMPTY> Template CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "TableOfContents" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Article Title Author Pages HyperLink HyperLink (Title, Author+, Pages, HyperLink)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template CDATA #REQUIRED CDATA #REQUIRED> URL 1 Template−Klasse : "DetailsOfArticle" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Details Abstract Keyword URLFullText 97 (Abstract?, Keyword*, URLFullText)> (#PCDATA)> (#PCDATA)> (#PCDATA)> IEEE Digital Library http://computer.org/publications/dlib Februar 2002 Template−Klasse : "DigitalLibrary" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Digital Library PublicationType Type Name HyperLink HyperLink (PublicationType+)> (TypeName, HyperLink)> (#PCDATA)> EMPTY> Template−Klasse CDATA URL CDATA #REQUIRED #REQUIRED> Template−Klasse : "Publications" <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST (PubName, HyperLink)> (#PCDATA)> EMPTY> Template−Klasse CDATA URL CDATA Publication PubName HyperLink HyperLink #REQUIRED #REQUIRED> Template−Klasse : "PublicationReleases" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Volume NumberOfVolume Issue NumberOfIssue Year Month HyperLink HyperLink (NumberOfVolume, Issue+)> (#PCDATA)> (NumberOfIssue, (Year,Month)?, HyperLink)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "TableOfContents" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Article Title Author Pages URLhtml URLpdf HyperLink HyperLink (Title, Author+, Pages, URLhtml, URlpdf, HyperLink)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "Abstract" <!ELEMENT <!ELEMENT Abstract AbstrContent 98 (AbstrContent)> (#PCDATA)> Elsevier Science Online http://ww1.elsevier.nl/inca/tree/?prod=J&key=SSAC Dezember 2001 Template−Klasse : "ElsevierScienceOnline" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST OnlineLibrary Publication PubName HyperLink HyperLink (Publication+)> (PubName, HyperLink)> (#PCDATA)> EMPTY> Template−Klasse CDATA URL CDATA #REQUIRED #REQUIRED> 1 Template−Klasse : "PublicationDescription" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST PubDescription ISSN Description HyperLink HyperLink (ISSN, Description?, HyperLink)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "PublicationReleaseYear" <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST PubRelYear R_Year HyperLink HyperLink (R_Year)> (#PCDATA)> EMPTY> Template−Klasse CDATA URL CDATA #REQUIRED #REQUIRED> Template−Klasse : "PublicationReleases" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Release NrOfVolume NrOfIssue Month HyperLink HyperLink (NrOfVolume, NrOfIssue, Month?)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> Template−Klasse : "TableOfContents" <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST Article Title Author Pages URLText HyperLink HyperLink (Title, Author+, Pages, URLText, HyperLink)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> EMPTY> Template−Klasse CDATA #REQUIRED URL CDATA #REQUIRED> 1 Template−Klasse : "Abstract" <!ELEMENT <!ELEMENT Abstract AbstrContent 99 (AbstrContent)> (#PCDATA)> Abbildungsverzeichnis 1.1 Allgemeine Problematik der Informationsbeschaffung . . . . . . . . . 8 2.1 Klassifizierung von Datenmodellen . . . . . . . . . . . . . . . . . . . 11 2.2 3-Ebenen-Architektur nach ANSI/SPARC . . . . . . . . . . . . . . . 12 2.3 Fünf-Schichten-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4 Schema und Schema-Diagramm einer hierarchischen Datenbank . . . 17 2.5 Zustandsbaum einer hierarchischen Ausprägung . . . . . . . . . . . . 17 2.6 Hierarchische Sequenz eines Zustandsbaums . . . . . . . . . . . . . . 18 2.7 Logische Struktur von Datenquellen . . . . . . . . . . . . . . . . . . 19 2.8 Generische Transformation . . . . . . . . . . . . . . . . . . . . . . . 20 2.9 Schema-Transformation . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.10 Datenmodell-Transformation . . . . . . . . . . . . . . . . . . . . . . 20 2.11 Allgemeine Mediator-Architektur . . . . . . . . . . . . . . . . . . . . 21 2.12 Dokumentstruktur eines Buches . . . . . . . . . . . . . . . . . . . . . 22 3.1 Klassifikation von Datenbanksystemen . . . . . . . . . . . . . . . . . 27 3.2 Referenzarchitektur für verteilte Datenbanksysteme . . . . . . . . . . 28 3.3 Klassifizierung von Multidatenbanksystemen . . . . . . . . . . . . . . 29 3.4 5-Ebenen-Schema-Architektur . . . . . . . . . . . . . . . . . . . . . . 30 4.1 Klassifikation von Hyperlinks . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Struktur des ACM Digital Library Web-Site . . . . . . . . . . . . . . 34 4.3 Template-Klassen des ACM Digital Library Web-Site . . . . . . . . . 35 4.4 Zwei Template-Klassen der ACM Digital Library . . . . . . . . . . . 36 4.5 Web-Site-Schema der ACM Digital Library . . . . . . . . . . . . . . 37 4.6 Browser-Darstellung einer Instanz von ’Publications’ . . . . . . . . . 38 4.7 Browser-Darstellung einer Instanz von ’PublicationDetails’ . . . . . . 38 4.8 Konzeptionelles Schema des ACM Digital Library Web-Site . . . . . 40 4.9 Data Retrieval System . . . . . . . . . . . . . . . . . . . . . . . . . . 41 100 101 ABBILDUNGSVERZEICHNIS 4.10 HTML-Element-Klassifikation . . . . . . . . . . . . . . . . . . . . . . 44 4.11 Dokumentinstanz der ACM Digital Library . . . . . . . . . . . . . . 45 4.12 Gruppierung der HTML-Elemente . . . . . . . . . . . . . . . . . . . 46 4.13 Dokumentgerüst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.14 Crib-Definitionen für die Klasse ’TableOfContents’ . . . . . . . . . . 49 4.15 Zustandsdiagramm des Scanners für die Klasse ’TableOfContents’ . . 50 4.16 XML-Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.17 Schema des Bundesliga Web-Site . . . . . . . . . . . . . . . . . . . . 52 4.18 Konzeptionelles Schema des Bundesliga Web-Site . . . . . . . . . . . 53 4.19 3-Schichten-Architektur des WSDBS . . . . . . . . . . . . . . . . . . 54 4.20 Record-Typen als JAVA-Klassen innerhalb der UWA . . . . . . . . . 55 4.21 Die XML-orientierte Schnittstelle . . . . . . . . . . . . . . . . . . . . 58 4.22 Einteilung der Datensätze in Segmente . . . . . . . . . . . . . . . . . 58 4.23 Speicherung der Datensätze . . . . . . . . . . . . . . . . . . . . . . . 59 4.24 Vollständiger Durchlauf der gesamten Ausprägung . . . . . . . . . . 60 4.25 Implementierung des Kommandos GET FIRST . . . . . . . . . . . . . 61 5.1 Web-Site-Schema des DBLP-Server . . . . . . . . . . . . . . . . . . . 65 5.2 Konzeptionelles Schema des DBLP-Server . . . . . . . . . . . . . . . 66 5.3 Relationen-Schema der DBIS-Datenbank . . . . . . . . . . . . . . . . 67 5.4 Allgemeines Modell föderierter DBSe . . . . . . . . . . . . . . . . . . 69 5.5 Architekturmodell des ZIS . . . . . . . . . . . . . . . . . . . . . . . . 70 5.6 Integrationsansatz des ZIS . . . . . . . . . . . . . . . . . . . . . . . . 74 5.7 Modellierung des lokalen Schemas im ER-Modell (I) . . . . . . . . . 76 5.8 Modellierung des lokalen Schemas im ER-Modell (II) . . . . . . . . . 77 5.9 Export-Schema der ACM Digital Library . . . . . . . . . . . . . . . 77 5.10 Export-Schema der DBIS-Datenbank . . . . . . . . . . . . . . . . . . 78 5.11 Export-Schema des DBLP Bibliographie-Server . . . . . . . . . . . . 78 5.12 Föderiertes Schema des ZIS . . . . . . . . . . . . . . . . . . . . . . . 80 5.13 Dynamische Modellerweiterung . . . . . . . . . . . . . . . . . . . . . 83 5.14 Sicht-Definitionen DBIS-Literatur-DB . . . . . . . . . . . . . . . . . 85 5.15 Translation-Table des DBIS-Wrapper . . . . . . . . . . . . . . . . . . 86 5.16 WS/QL-Schablone für den DBLP-Server . . . . . . . . . . . . . . . . 87 5.17 Beispiel für eine Transformation . . . . . . . . . . . . . . . . . . . . 87 5.18 Aufbau des ZIS-Mediators . . . . . . . . . . . . . . . . . . . . . . . . 88 5.19 Beispiel Anfrageübersetzung (DBIS-Datenbank) . . . . . . . . . . . . 91 Literaturverzeichnis [BLN86] C. Batini, M. Lenzerini, S.B. Navathe. A Comparative Analysis of Methodologies for Database Schema Integration. ACM Computing Surveys, 18(4):323-364, 1986. [Bry88] M. Bryan. SGML: An Author’s Guide to the Standard Generalized Markup Language. Addison-Wesley, 1988. [Cod82] E.F. Codd. Relational Database: A Practical Foundation for Productivity. Communications of the ACM, 25(2):109-117, 1982. [Con97] S. Conrad. Föderierte Datenbanksysteme: Konzepte der Datenintegration. Springer-Verlag, Berlin, 1997. [CP84] S. Ceri, G. Pelagatti. Distributed Databases - Principles and Systems. McGraw-Hill, 1984. [Dat00] C.J. Date. An Introduction to Database Systems. Addison Wesley Longman, 7. Auflage, 2000. [EN94] R. Elmasri, S.B. Navathe. Fundamentals of Database Systems. Addison-Wesley, 2. Auflage, 1994. [EN00] R. Elmasri, S.B. Navathe. Fundamentals of Database Systems. Addison-Wesley, 3. Auflage, 2000. [Gol90] C.F. Goldfarb. The SGML Handbook. Oxford University Press, Oxford, 1990. [Güt92] R.H. Güting. Datenstrukturen und Algorithmen. B.G. Teubner, Stuttgart, 1992. [HR99] T. Härder, E. Rahm. Datenbanksysteme: Konzepte und Techniken der Implementierung. Springer-Verlag, 1999. [Lip95] U. Lipeck. Datenbanksysteme I - Vorlesung WS 1995/96. Institut für Informatik, Universität Hannover, 1995. [Lob98] H. Lobin. Informationsmodellierung in XML und SGML. SpringerVerlag, 1998. [MMK99] I. Muslea, S. Minton, C. Knoblock. A Hierarchical Approach to Wrapper Induction. Proceedings of the 3rd Annual Conference on Autonomous Agents, Seattle, Washington, United States, 190-197, 1999. [ÖV91] T.Özsu, P. Valduriez. Principles of Distributed Database Systems. Prentice-Hall, Eaglewood Cliffs, New Jersey, 1991. 102 LITERATURVERZEICHNIS 103 [SH99] G. Saake, A. Heuer. Datenbanken: Implementierungstechniken. MITP-Verlag, Bonn, 1999. [TRS97] M. Tork Roth, P.Schwarz. Don’t Scrap It, Wrap It! A Wrapper Architecture for Legacy Data Sources. Proceedings, 23rd International Conference, VLDB, Athens, Greece, 266-275, 1997. [Ull82] J.D. Ullmann. Principles of Database Systems. Computer Science Press, 1982. [Vos00] G. Vossen. Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme. Oldenbourg Verlag, München, 4.Auflage, 2000. [Wel96] D. Wells. Wrappers. Object Services and Consulting, Inc., http://www.objs.com/survey/wrap.htm, 1996. [Wie92] G. Wiederhold. Mediators in the Architecture of Future Information Systems. IEEE Computer, 25(3):38-49, 1992. [Wil99] E. Wilde. Wilde’s WWW - Technical Foundations on the World Wide Web. Springer-Verlag, Berlin, 1990.