XML in relationalen Datenbanken Tobias Webelsiep Seminarvortrag zum Seminar Allgemeine Informatik...
-
Upload
sonje-stroebel -
Category
Documents
-
view
102 -
download
0
Transcript of XML in relationalen Datenbanken Tobias Webelsiep Seminarvortrag zum Seminar Allgemeine Informatik...
XML in relationalen Datenbanken
XML in relationalen Datenbanken
Tobias WebelsiepTobias Webelsiep
Seminarvortrag zum Seminar Allgemeine InformatikSeminarvortrag zum Seminar Allgemeine Informatik
Sommersemester 2003
Betreuer: Prof. Dr. V. KlementSommersemester 2003
Betreuer: Prof. Dr. V. Klement
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Inhalt des VortragsInhalt des Vortrags
XML – eXtensible Markup Language XML Struktur, DTD, XML Schema, XSLT, XPath
Speicherverfahren von XML in RDBMS XSLT-Skript, CLOB, Relationenschema
Ausgabe relationaler Daten im XML-Format Darstellung von Tabellen, SQL-Erweiterung
XML-Schnittstellen der Datenbank-Hersteller Oracle 9i, MS SQL Server, IBM-DB2 XML Extender
Ausblick und Zukunftsperspektiven
Einführung in XML und RDBMS Verbreitung, Motivation
InhaltInhalt
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
EinführungEinführung
EinführungEinführung
Relationale Datenbanken
• Das Medium zur Speicherung von Daten• Einfacher Zugriff durch SQL
Informationen
• Starke Wandlung seit Benutzung des Internets• Flexibilität, Austauschbarkeit und Plattformunabhängigkeit sind wichtig
XML
• Ist eine Beschreibungssprache von Dokumenten wie HTML• Strukturiert Informationen zum Datenaustausch
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
VerbreitungsgradVerbreitungsgrad
EinführungEinführung
Verbreitung relationaler Datenbanken:
• Sind fast in jedem Anwendungsgebiet einsetzbar• Erweiterung durch das objekt-relationale Modell• Sehr große Anzahl von Internet-Datenbanken
Anwendungsgebiete von XML
• Ideal zur Transformation in Internet-Formate (HTML, PDF, …)• Spezielle Auszeichnungssprachen (Ausprägung von XML):
BSML (Bioinformatic Sequence Markup Language) MathML (Mathematical Markup Language) AIML (Astronomical Instrument Markup Language)
RDBMS und XML treffen in der Praxis häufig aufeinander
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
• XML wurde 1996 vom W3C (World Wide Web Consortium) vorgeschlagen
• 10.02.1998 als Version 1.0 standardisiert
• XML ist eine Ableitung von SGML (Standard Generalized ML)
• Einige Ziele des Designs:
Leichte Benutzung fürs Internet
Soll ein plattformunabhängiges Format sein
Design soll prägnant und leicht zu erlernen sein
Leichte Erstellung von Dokumenten
Dokumente solle leicht lesbar und verständlich sein
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Warum XML?Warum XML?
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
HTML (Hyper Text Markup Language)
• HTML ist eine Beschreibungssprache für Internetseiten
• Das Aussehen der Information wird definiert
• Festgelegte Tags, die viel Spielraum erlauben
Vorteile von XML
• Tags sind frei wählbar, je nach Anwendungsgebiet
• Die Struktur und die Semantik von Dokumenten wird hervorgehoben
• Dem Dokument werden Meta-Daten hinzugefügt
• Die Interpretation ist fest definiert
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Aufbau und StrukturAufbau und Struktur
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
Struktur
• Zentrale Struktur ist der Baum
• Gleichartige Informationen im Dokument werden zusammen- gefasst
• Jedes XML Dokument hat die gleiche interne Struktur
Aufbau
• Jedes XML Dokument muss mit der XML Deklaration beginnen
• Jedes Dokument besitzt genau eine Wurzel
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Syntax – Beispiel (1)Syntax – Beispiel (1)
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
• Stylesheet-Deklaration <?xml-stylesheet href="buchliste.xsl" type="text/xsl"?>
• Kommentar <!-- Ich bin ein Kommentar, den keiner sieht -->
• Tags Zu jedem Start-Tag muss ein Ende-Tag angegeben werden.
Es gibt das Leere Elemente: <LeerTag/>
• Attribute Können beliebig zu jedem Element angegeben werden
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Syntax – Beispiel (2)Syntax – Beispiel (2)
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
• Entity-Referenzen Stehen für spezielle Zeichen & -> & < -> < > -> > &qout; -> “ ' -> ‘
• CDATA Die Zeichen innerhalb von CDATA werden nicht unter- sucht (wie Kommentar), aber angezeigt.
<![CDATA[Ich schreibe < und & wie ich will]]>
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
DTD oder XML Schema?DTD oder XML Schema?
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
DTD (Document Type Definition)
• Legt den Aufbau eines XML Dokuments fest
• Bestimmt Abhängigkeiten und Reihenfolge
• Anzahl von Elementen: ?, +, * bzw. durch |
Vorteile von XML Schema
• Ist selbst wieder ein XML Dokument
• Angabe von Datentypen (Zahl, Datum usw.) möglich
• Die Definition vom XML Schema durch eine DTD oder XML Schema möglich
• Angabe von Namensräumen zur Vermeidung von Konflikten
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
DTD oder XML Schema - BeispielDTD oder XML Schema - Beispiel
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
DTD
<!ELEMENT buchliste (buch+)><!ELEMENT buch (isbn, autor, titel, verlag, erscheinungsjahr)><!ATTLIST buch ausgabe (t|g|r) ’g’><!ELEMENT autor (#PCDATA)><!ELEMENT titel (#PCDATA)>
XML Schema
<xsd:element name="buchliste" type="buch"/> <xsd:element name="buch> <xsd:complexType> <xsd:sequence> <xsd:element name="autor" type="xsd:string"/> <xsd:element name="titel" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="ausgabe" value="g" type="xsd:string"/>
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
XSL TransformationXSL Transformation
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
• Ist wiederum ein XML Dokument
• XSL ist eine Stylsheetsprache (eXtensible Stylesheet Language)
• Erlaubt die Umwandlung von XML Dokumenten in beliebige Formate
Elemente von XSLT
• XSLT Elemente - zu Definition <xsl:template>
• XPath – zur Navigation
• XSLT Muster <xsl-tamplate match=“buch“>
• XSLT Funktionen – zur Typumwandlung, Arthmetik
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
XSLT - BeispielXSLT - Beispiel
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
Umwandlung von XML in HTML
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:template match="/"> <html> <head> <title>Buchliste</title> </head> <body> <h1>Buchliste</h1> <table> <tr> <td><b>Buch<b></td> </tr> <xsl:apply-templates/> </table> </body> </html></xsl:template>
...<xsl:template match="buchliste"> <xsl:apply-templates/></xsl:template><xsl:template match="buch"> <tr> <td><xsl:value-of select="child::buch"/></td> </tr></xsl:template>
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
XPath – XML NavigatorXPath – XML Navigator
XML – eXtensible Markup LanguageXML – eXtensible Markup Language
• XPath wurde zusammen mit XSLT entwickelt
• Mit XPath-Ausdrücken können Teile des Baumes selektiert werden
• Beispiel:
<xsl:value-of select="autor"/> Direkte Angabe eines Elementnamens
• Erweiterungen von XPath:
XQuery: Für Zugriff auf Dokumentsammlungen
XPointer: Zur Verlinkung von Dokumenten
• Implementierungen in Java und RDBMS
• Ähnliche APIs: DOM und SAX
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Speicherverfahren von XML in RDBMSSpeicherverfahren von XML in RDBMS
Speicherverfahren von XML in RDBMSSpeicherverfahren von XML in RDBMS
Schwierigkeiten bei der Speicherung
• Die Baumstruktur ist nicht mit dem relationalen Modell vereinbar
• Komplexe Strukturen wie Abhängigkeiten, Rekursion und Mehrwertigkeit müssen abgebildet werden
• Gemischte Inhalte schwer abzuspeichern:
<Absatz> Normaler Text <fett> Fetter Text </fett> Text </Absatz>
• Für Reihenfolge von Elementen benötigt man Zusatzinformationen
• Die Unterscheidung von Subelement und Attribut ist schwierig
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Von XML zu SQLVon XML zu SQL
Speicherverfahren von XML in RDBMSSpeicherverfahren von XML in RDBMS
Transformation über XSLT-Skript
• Einfache Möglichkeit ohne spezielle DB-Unterstützung
• Vorgehen nach folgendem Schema:
Erstellen einer passenden Tabelle mittels CREATE-Statement
Umwandlung des XML Dokuments in ein INSERT-Statement
Speichern der Daten über SQL
Probleme bei diesem Ansatz
• Nur flache Hierarchien möglich
• Keine Unterscheidung von Attributen und Subelementen
• Bei Bedingungen und Rekursion nicht anwendbar
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Der CLOB – AnsatzDer CLOB – Ansatz
Speicherverfahren von XML in RDBMSSpeicherverfahren von XML in RDBMS
Vorteile von CLOB
• Speicherung eines XML Dokuments als Character Large Object
• Kein Verlust von Metainformationen
• Zugriff auf eine Tabellenspalte zum Auslesen des gesamten Dokuments
Nachteile dieser Speichermethode
• Beschränkter Zugriff auf Teile des Dokuments
• Navigation durch Baumstruktur benötigt spezielle Funktionen
• Die Auswahl von Teilbäumen nur mit Volltextsuche oder speziellen XML Suchen der DB-Hersteller.
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Abbildung XML auf Relationenschema (1)Abbildung XML auf Relationenschema (1)
Speicherverfahren von XML in RDBMSSpeicherverfahren von XML in RDBMS
Orientierung von Dokumenten
• Dokument-Orientiert:
Ist auf die Einteilung und Strukturierung der Dokumente ausgerichtet Komplexe Hierarchie und Struktur
• Daten-Orientiert:
Spezialisiert auf den Datenaustausch Flache Hierarchie, einfache Struktur
Vorteile
• Zugriff auf Teile über normale SQL-Abfragen
• Alle Vorzüge der RDBMS (Views, Indices usw.) nutzbar
• Elemente eines Typ werden in einer Tabelle verwaltet
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Abbildung XML auf Relationenschema (2)Abbildung XML auf Relationenschema (2)
Speicherverfahren von XML in RDBMSSpeicherverfahren von XML in RDBMS
Vorschrift zur Speicherung
(1) Eine Tabelle für jeden Elementtyp mit Subelementen bzw. gemischtem Inhalt
(2) Eine separate Tabelle für jeden Elementtyp mit gemischtem Inhalt zur Speicherung des PCDATA-Anteils
(3) Für jedes einwertige Attribut und Subelement, das nur PCDATA enthält eine Spalte. Die Spalte muss NULL akzeptieren
(4) Für jedes mehrwertige Attriburte und Subelemente eine eigene Tabelle und verknüpfe sie mit Tabelle des Elementtyps.
(5) Verknüpfe für jedes Subelementtyp oder gemischten Inhalt die Tabelle des Elementtyps mit der Tabelle des Subelements.
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Ausgabe rel. Daten im XML-FormatAusgabe rel. Daten im XML-Format
Ausgabe relationaler Daten im XML-FormatAusgabe relationaler Daten im XML-Format
Ausgabe als Rowset
• Ausgabe der Ergebnistabelle einer SQL-Abfrage
• Vergleichbar mit HTML Tabelle
• Durch XSLT später in ein beliebiges Format trans- formierbar
Beispiel
<TABLE> <ROW> <COLUMN> ... </COLUMN> ... <COLUMN> ... </COLUMN> </ROW> ...</TABLE>
Nachteile
• Ausgabe strukturierter Daten über eine normale SQL-Abfrage nicht möglich
Erweiterung von SQL nötig
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Vorschlag des SQL-KomiteesVorschlag des SQL-Komitees
Ausgabe relationaler Daten im XML-FormatAusgabe relationaler Daten im XML-Format
• Erweiterung des SQL-Standards um XML Zugriffsfunktionen
• In einem Select-Statement können eigene XML Funktionen angegeben werden
SELECT autor.name, autorFkt(autor.ID, autor.name, buchLst(autor.ID)) FROM autor
• Erstellung der Funktion AutorFkt:
CREATE FUNCTION autorFkt (id INTEGER, name VARCHAR(50), buchLst CLOB(10000)) RETURNS CLOB(10000) LANDUAGE XML RETURN <autor id={id}> <name> {name} </name> <buchliste> {buchLst} </buchliste> </autor>
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Schnittstellen der DB-HerstellerSchnittstellen der DB-Hersteller
Schnittstellen der Datenbank-HerstellerSchnittstellen der Datenbank-Hersteller
• Die meisten Datenbank-Hersteller haben eigene XML- Schnittstellen
• Es werden immer hybride Ansätze gewählt
Oracle 9i
• Erweiterte Abfragesprache XSQL zur Generierung von XML Dokumenten aus relationalen Daten.
• Aufbau der Abfrage als XML mit integriertem SQL-Statement
<?xml version="1.0"?><xsql:query connection="oracle" xmlns:xsql="urn:oracle-xsql"> SELECT ’Hello, World!’ AS text FROM DUAL</xsql:query>
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Oracle 9iOracle 9i
Schnittstellen der Datenbank-HerstellerSchnittstellen der Datenbank-Hersteller
Übersicht
• XSLT Prozessor
• XML Parser
• XPath Engine
• Intermedia
• XMLType
• XSU
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Microsoft SQL Server 2000Microsoft SQL Server 2000
Schnittstellen der Datenbank-HerstellerSchnittstellen der Datenbank-Hersteller
Erweiterung zur Verwaltung von XML
• SQLXML als eigene Erweiterung von SQL
FOR XML: Erweitert den Select-Befehl zur direkten Ausgabe der Ergebnistabelle als XML Dokument mit verschieden Modi
o RAW: Erstelle eine flache Struktur (Rowset)
o AUTO: Je nach Komplexität (durch Joins)
o EXPLICIT: Angabe der Hierarchie bei der Ausgabespalte
OPENXML: Ist ein spezieller Befehl zum Manipulieren von XML innerhalb der Datenbank-Tabelle. (Insert, Update)
• XRD-Schema: Ermöglicht den Zugriff über XPath
• .NET Integration und Unterstützung
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
DB2 XML-Extender von IBMDB2 XML-Extender von IBM
Schnittstellen der Datenbank-HerstellerSchnittstellen der Datenbank-Hersteller
Speicherung als CLOB
• XMLVARCHAR: Speichert ein XML Dokument in Tabellenspalte
• XMLCLOB: Als spezielle DB-Datei. Einzelne Element können in einer Seitentabelle für schneller Zugriff gespeichert werden.
• XMLFile: externe Datei mit der DB verlinkt
• DAD: Speichert Zusatzinformationen aus XML Schema
Abbildung auf Relationenschema
• Zugriff über DB2 eigene stored procedures
• dxxGenXML(): Erzeugt XML aus relationalem Datenmodell
• dxxShredXML(): Speichert ein XML Dokument als Relationenschema
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Weitere HerstellerWeitere Hersteller
Schnittstellen der Datenbank-HerstellerSchnittstellen der Datenbank-Hersteller
MySQL
• Weit verbreitet Open Source Datenbank
• enthält keine Erweiterung für XML
• Speicherung als CLOB möglich, aber keine speziellen Such- und Zugriffsfunktionen vorhanden
Sybase Adaptive Server
• Möglichkeiten zur Ausgabe von rel. Daten als Rowset
• Speicherung von XML Dokumenten über spezielle JAVA-APIs
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
ZusammenfassungZusammenfassung
ZusammenfassungZusammenfassung
XML Dokumente
• Eigenen sich bestens zum Datenaustausch
• Strukturieren Informationen
• Können in ein beliebiges Format transformiert werden
RDBMS mit XML-Unterstützung
• SQL-Komitee um Standardisierung bemüht
• Direkte Speicherung als CLOB wird hinreichen unterstützt
• Einige Tools zur Abbildung in Relationenschema verfügbar
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
AusblickAusblick
ZusammenfassungZusammenfassung
RDBMS vs. XML Datenbanken vs. Content Management
• XML Datenbanken
speziell auf XML ausgerichtet
Speicherung "normaler" Daten nicht möglich
• RDBMS
Zusatz-Tool zur Verwaltung von XML
Abbildung von XML auf Relationenmodell möglich
• Content Management
Enthält zusätzliche Verwaltungsinformation
Verwaltung von Dokumentsammlungen
XML in relationalen DatenbankenXML in relationalen Datenbanken
Tobias Webelsiep © 2003Tobias Webelsiep © 2003
Danke für Ihre AufmerksamkeitDanke für Ihre Aufmerksamkeit
Danke für Ihre AufmerksamkeitDanke für Ihre Aufmerksamkeit