1 Einleitung.- 1.1 Warum dieses Buch?.- 1.2 Der rote Faden.- 1.3 Danksagung.- 1.4 URL zum Buch.- I Einführung.- 2 XML-Grundlagen.- 2.1 Einleitung.- 2.2 Was ist XML?.- 2.3 Dokumenttypen und Namensräume.- 2.4 Verknüpfungen mittels XLink.- 2.4.1 Einfache Verknüpfungen.- 2.4.2 Erweiterte Verknüpfungen.- 2.5 Adressierung mittels XPath.- 2.5.1 Pfadausdruck.- 2.5.2 Achsen.- 2.5.3 Kurzschreibweise.- 3 XML als Datenmodell.- 3.1 Über die Strukturiertheit von Daten.- 3.1.1 Einführung.- 3.1.2 Das Wesen von „Struktur“.- 3.2 Semistrukturiertes Datenmodell.- 3.2.1 Einführung.- 3.2.2 Was sind semistrukturierte Daten?.- 3.2.3 Datenmodell OEM.- 3.3 XML und Datenbanken.- 3.3.1 XML und die Strukturierung von Daten.- 3.3.2 Ein Datenmodell für XML.- 3.3.3 Exkurs: Vergleich mit anderen Datenmodellen.- 3.3.4 Datenbanktechniken für XML.- II Grundlegende Datenbanktechniken.- 4 Schema.- 4.1 Einführung.- 4.1.1 Warum Schema?.- 4.1.2 Schema und die drei Strömungen von XML.- 4.2 Überblick über XML Schema.- 4.2.1 Validierungskonzept.- 4.3 Datentypen.- 4.3.1 Einfache Typen.- 4.3.2 Definition neuer einfacher Typen.- 4.4 Struktur.- 4.4.1 Element- und Attributdeklarationen.- 4.4.2 Komplexe Typen.- 4.4.3 Ableitung komplexer Typen und Typhierarchie.- 4.5 Konsistenzregeln.- 4.5.1 Problem der Nullwerte.- 4.5.2 ID/IDREF in XML-DTDs.- 4.5.3 Schlüsselbedingungen.- 4.5.4 Fremdschlüsselbeziehungen.- 4.6 Wiederverwendung und Erweiterbarkeit.- 4.6.1 Modellgmppen und Attributgruppen.- 4.6.2 Einbinden von externen Schemata.- 4.6.3 Dokumentation des Schemas.- 4.6.4 Schemaannotationen.- 4.7 Weitere Schemaansätze.- 4.7.1 RELAX NG.- 4.7.2 Schematron.- 4.7.3 XML Data Reduced (XDR).- 4.8 Zukunft und Fazit.- 4.8.1 Offene Probleme.- 4.8.2 Fazit.- 5 Zugriff.- 5.1 XML-Anfragesprachen im überblick.- 5.1.1 Lesende und schreibende Zugriffe.- 5.1.2 Anfragesprachen und die drei Strömungen von XML.- 5.1.3 Selektions- und Transformationsaspekt.- 5.1.4 Ansätze für eine XML-Anfragesprache.- 5.2 XQuery.- 5.2.1 Überblick.- 5.2.2 Grundstruktur und Verarbeitungsmodell.- 5.2.3 Pfadausdrücke.- 5.2.4 Knotenlistenoperatoren und -funktionen.- 5.2.5 Operationen auf atomaren Werten.- 5.2.6 Logische Operatoren und Funktionen.- 5.2.7 Funktionen.- 5.2.8 Datentypen und XQuery.- 5.2.9 XML-Syntax von XQuery.- 5.3 Weitere Anfragesprachen.- 5.3.1 XQL.- 5.3.2 Erweiterung des SQL-Standards.- 5.4 Schreibzugriffe.- 5.4.1 Einführung.- 5.4.2 XUpdate.- 5.4.3 Erweiterungen von XQuery.- 5.5 Fazit.- 6 Weiterverarbeitung und Präsentation.- 6.1 Einleitung.- 6.2 XSLT.- 6.2.1 Templates.- 6.2.2 Stylesheets.- 6.3 XForms — Benutzerinteraktion über Web-Formulare.- 6.3.1 Anfrageschnittstellen.- 7 Anwendungsschnittstellen.- 7.1 Einleitung.- 7.2 DOM.- 7.2.1 Die Dokumentstruktur in DOM.- 7.2.2 DOM Level 1.- 7.2.3 DOM Level 2.- 7.2.4 DOM Level 3.- 7.2.5 DOM Implementierungen.- 7.3 SAX.- 7.3.1 Einleitung.- 7.3.2 Das Ereignismodell.- 7.4 XML:DB.- 7.5 Bewertung.- III Einbindung in den Datenbankentwurfsprozess.- 8 XML und der Entwurfsprozess.- 8.1 Einführung.- 8.2 Klassische Entwurfsmethodik.- 8.3 Abbildung existierender Datenbanken.- 9 Abbildung konzeptueller Modelle.- 9.1 Einführung.- 9.1.1 Ziel dieses Kapitels.- 9.2 Entwurfsaltemativen bei XML Schema149 und ihre Bewertung.- 9.2.1 Gütekriterien für Schemaentwürfe.- 9.2.2 Behälterelemente, Datenbasen und die Rolle des „Dokumentes“.- 9.2.3 Vergleich Typen, Elemente, Attribute.- 9.2.4 Beziehungen.- 9.3 Abbildung des Entity-Relationship-Modells.- 9.3.1 Ausdrucksmöglichkeiten im ER-Modell.- 9.3.2 Entitäten und Attribute.- 9.3.3 Beziehungen.- 9.3.4 Generalisierung.- 9.3.5 Fazit.- 9.4 Abbildung von UML.- 9.4.1 Ausdrucksmittel der UML-Klassendiagramme.- 9.4.2 Klassen und ihre Attribute.- 9.4.3 Generalisierung.- 9.4.4 Assoziationen.- 9.4.5 Ein XML Schema-Profil für UML.- 9.5 Fazit.- 10 Speicherung von XML.- 10.1 Einführung.- 10.2 Verwendete Beispiele.- 10.3 Systemanforderungen.- 10.3.1 Generelle Anforderungen an ein Datenbanksystem.- 10.3.2 Besonderheiten von XML.- 10.4 Daten- versus dokumentenorientierte Anwendungen.- 10.5 Architekturen.- 10.6 XML in objekt-orientierten Datenbanken.- 10.6.1 DTD-abhängige Verfahren.- 10.6.2 DTD-unabhängige Verfahren.- 10.7 XML in relationalen Datenbanken.- 10.7.1 Einfache DTD-abhängige Ansätze.- 10.7.2 Komplexe DTD-abhängige Ansätze.- 10.7.3 DTD-unabhängige Ansätze.- 10.8 XML-spezifische Speicherung.- 10.8.1 Anwendungsfälle für spezielle Speicherungstechniken.- 10.8.2 Formen XML-spezifischer Speicherung.- 11 XML im Kontext der Systemarchitektur.- ILl Einfflhrung.- 11.2 Architekturen ohne XML.- 11.3 Architekturen mit XML.- 11.3.1 Persistenzschicht.- 11.3.2 Interaktionsschicht.- 11.4 Schichten und Dokumente.- IV Datenbankprodukte.- 12 Relationale Datenbanken.- 12.1 Einleitung.- 12.2 Oracle.- 12.2.1 Lesender und schreibender Zugriff.- 12.2.2 Weitere Werkzeuge.- 12.3 Microsoft SQL Server.- 12.3.1 Von relationalen Daten nach XML mit FOR XML.- 12.3.2 Aufruf von FOR XML.- 12.3.3 XML Update Grams.- 12.3.4 XPath über Annotierte Schemata.- 12.3.5 OpenXML.- 12.3.6 XML Bulk Loads.- 12.4 DB2vonIBM.- 12.4.1 Dokumentzugriffsdefinition (Document Access Definiton, DAD).- 12.4.2 Zugriff auf relationale Strukturen.- 12.4.3 Zugriff über ganze Objekte.- 12.5 Fazit.- 13 Native XML-Datenbanken.- 13.1 Einleitung.- 13.2 Natix.- 13.2.1 Entstehungshintergrund.- 13.2.2 Natix-Systemüberblick.- 13.2.3 Speicherung.- 13.2.4 Isolation in Natix.- 13.2.5 Auswertung von XML-Anfragen.- 13.3 Birdstep Database Engine.- 13.3.1 Datenbankkem.- 13.3.2 BDBE als XML-Speicher.- 13.4 Tamino.- 13.4.1 übersicht.- 13.4.2 Schnittstellen.- 13.4.3 Kemkomponenten.- 13.4.4 Datenspeicher.- 13.4.5 Tamino-Manager.- 13.5 Abschließende Bemerkungen.- 14 Middleware für XML-Datenbankzugriffe.- 14.1 ADO.- 14.2 XML-DBMS.- 14.3 Fazit.- IV Buclibeispiel.- A Szenario.- A1 UML Diagramm.- B Doltumenttypdefinition (DTD).- C XML Schema-Definition (XSD).- Literatur.