Seminar XML und Datenbanken Sven Wiegelmann SS 2002 Inhalt Überblick XML: – Entstehung, Geschichte – Ziele – XML Dokumente – XML Dokumentarten XML und Datenbanken – Ist XML eine Datenbank? – XML = DBMS? – Fazit – Speicherung von XML Dokumenten in DB Entstehung,Geschichte XML = eXtensible Markup Language Vorgeschlagen 1996 vom W3C 1998 Als Standard verabschiedet Vor XML: – SGML – HTML Beschreibungssprache für strukturierte Dokumente mit recht komplexen Umfang. XML stellt Untermenge von SGML dar SGML 1986 Teilmenge XML 1998 Ist eine Instanz von SGML Konzipiert als Präsentationssprache Elemente (Tags) fest vorgeschrieben im Gegensatz zu SGML oder XML XML vom Niveau zwischen SGML und HTML einzuordnen Instanz Instanz HTML 1991 Ziele XML ist eine Strukturbeschreibungssprache Zweck: Informationen in hierarchischer Struktur abzubilden 10 Ziele des W3C für das Design von XML: 1. XML soll sich über das Internet leicht benutzen lassen 2. Plattformunabhängiges Format zum Austausch 3. Kompatibilität mit SGML 4. Einfache Programmierung von Applikationen die XML benutzen 5. Keine zusätzlichen Features 6. XML Dokumente sollten leicht lesbar und verständlich sein 7. Das Design (von XML) sollte leicht zu erstellen sein 8. Das Design sollte formal und prägnant sein 9. XML Dokumente sollten leicht zu erstellen sein 10. Lesbarkeit geht vor kurze Notation XML Dokumente Bausteine Deklaration – – Steht am Anfang eines XML Dokuments Beinhaltet – XML Versionsnummer Evtl. den verwendeten Zeichensatz nach ISO Norm Evtl. ob das XML Dokument in einer einzelnen Datei gespeichert ist Evtl. ob eine externe DTD benutzt wird Beispiel: <?xml version="1.0" encoding="ISO-8859-1"?> XML Dokumente Bausteine Tags: – Syntax identisch mit HTML – Bestehen immer aus Start- und Ende-Tag. Ausnahme: Leere Tags – Syntax: <br></br> oder <br /> – Start-/Ende-Tag bilden ein Element – Groß-/Kleinschreibung wird beachtet – Alle Elemente werden von einem Wurzelelement umschlossen – Können Attribute (Parameter) enthalten XML Dokumente Bausteine Kommentare – Syntax: <!-- ...... --> Entity-Referenzen – – – Verhindern Falschinterpretation von Zeichen 5 vordefinierte Referenzen z.B. &gt entspricht Erstellung eigener Referenzen möglich z.B. > <!ENTITIY Bild1 SYSTEM “Bild1.jpg“ NDATA JPEG> wird aufgerufen mit &Bild1 CDATA-Abschnitte – Zeichen innerhalb dieser Abschnitte werden nicht ausgewertet und blind übernommen – Bsp:<![CDATA[Ich schreibe < und & wie ich will]]> Stylesheets – – Möglichkeit zur Formatierung eines XML Dokuments CSS- oder XSL-Stylesheet XML Dokumente DTD DTD =Document Type Definition – – – – Optional Bestimmt Struktur eines XML Dokuments Vergleichbar mit der Grammatik einer Sprache Definiert alle verwendeten Elemente, Attribute etc. und deren Beziehungen Dokumenttypdeklaration – Spezifiziert die innerhalb eines XML Dokuments verwendete DTD – Enthält die verwendete DTD direkt (intern) oder einen verweis darauf (extern) – Bsp: <!DOCTYPE Bibliothek [...]> <!DOCTYPE wurzelelement SYSTEM “Bibliothek.dtd“> Intern Extern XML Dokumente Beispiel <xml version=“1.0“ encoding=“ISO-8859-1“> <!DOCTYPE Lager [ <!ELEMENT <!ELEMENT hersteller,)> <!ATTLIST Lager reifen (reifen*)> (modell, groesse+, gmischung*, reifen spezifikation ( v | h )> <!ELEMENT modell <!ELEMENT groesse <!ELEMENT gmischung <!ELEMENT hersteller ]> (#PCDATA)> (#PCDATA)> (w|m|h)> (#PCDATA)> XML Dokumente Beispiel <Lager> <reifen spezifikation=’h’> <modell> D208 </modell> <groesse> 180/50-17 </groesse> <groesse> 190/50-17 </groesse> <gmischung> w </gmischung> <gmischung> m </gmischung> <gmischung> h </gmischung> <hersteller> Dunlop </hersteller> </reifen> <reifen spezifikation=’v’> <modell> MX50e </modell> <groesse> 110/70-17 </groesse> <hersteller> Michelin </hersteller> </reifen> ... ... </Lager> </xml> XML Dokumentarten Wohlgeformte und Gültige Dokumente Wohlgeformte Dokumente (Well Formed Dokuments) – Wohlgeformte Dokumente müssen keine DTD enthalten, jedoch neben korrekter Syntax einige Regeln erfüllen XML Deklaration am Anfang des Dokuments Ein Wurzelelement muss alle anderen umfassen Alle Elemente besitzen Start- und Ende-Tags (Ausnahme Leere Tags) und korrekt geschachtelt sein Attributwerte müssen in Anführungszeichen gesetzt sein Gültige Dokumente (Valid Documents) – Alle verwendeten Elemente müssen in der DTD definiert sein – Die Verwendung der der Elemente muss mit der DTD übereinstimmen XML und Datenbanken Ist XML eine Datenbank? Ein XML Dokument ist eine DB im engsten Sinn Sammlung von Daten XML als DB-Format – Vorteile: Selbstbeschreibend Portabel Beschreibt Daten in Baumstruktur – Nachteile Sehr wortreich Langsame Zugriffe durch Parsen und Text Umsetzung XML und Datenbanken XML = DBMS? Ist es möglich mit XML und zugehörigen Technologien eine Datenbank im weiteren Sinne (DBMS) zu verwirklichen? Plus: – XML stellt viele Funktionen eines DBMS zur Verfügung: Speicherung XML Dokument DB Schema DTD Tabellenbeschreibung Abfrage Sprachen Xquery SQL Programmierbare Schnittstellen DOM Embedded SQL Minus bzw. fehlende Funktionen: Effiziente Speicherung Sicherheitsmechanismen Transaktions- und Datenintegrität XML und Datenbanken Fazit XML und seine Techniken eignen sich nur bedingt als DB bzw. DBMS Sinnvoll nur für Anwendungen mit: – Wenig Daten – Wenigen Benutzern – Nicht zu hohen Performance Ansprüchen typischerweise für Persönliche Adresslisten, Mp3 Beschreibungen. Durch Verfügbarkeit von Datenbanken wie Access nicht besonders sinnvoll Besser: Speicherung von XML Dokumenten in “wirklichen“ Datenbanken XML und Datenbanken Daten- und Dokumentzentrierte Dokumente Datenzentrierte Dokumente: – XML Dokumente dienen als Datentransport – Physikalische Struktur meistens nebensächlich – Typisch für: Bestellungen Krankenakten Wissenschaftliche Daten Etc. Dokumentzentrierte Dokumente: – Zumeist für “menschliche Konsumenten“ gedachte Dokumente – Physikalische Struktur wichtig – Charakteristische Eigenschaften: Unregelmäßige Struktur Gemischter Inhalt – Bespiele: Bücher, e-mails, statische Webpages XML und Datenbanken Strategien Ziel: Vorteile beider Technologien zu nutzen. Strategien: – XML Erweiterte Datenbanken (XED): z.B. XSU (Oracle), XML-DBMS (Robert Bourret) – XML Native Datenbanken (XND) z.B. Tamio (Software AG), X-Hive – Hybride XML Datenbanken (HXD) z.B. Excelon (ExcelonCorp) XML und Datenbanken Probleme Problem: Unterschiede der beiden Konzepte XML und rDBMS XML rDBMS Daten in einzelner hierarchischer Datei Daten in verschiedenen Tabellen Knoten besitzen Elemente und/oder Attributwerte Zellen/Felder haben nur einen Wert Elemente können verschachtelt sein Jedes Feld hat einen atomaren Wert Elemente sind geordnet Zeilen7Spalten unterliegen keiner definierten Ordnung Schema optional Schema notwendig Direkte Speicherung/Erzeugung einfacher Dokumente Joins notwendig Anfragen durch XML Standards Anfragen durch SQL für XML erweitert XML und Datenbanken Vorgehensweisen 2 Ansätze zur Speicherung von XML Dokumenten in relationalen DB: Zuordnung durch Vorlagen – Problem: Struktur der Datenbank – Wird bei XSQL von Oracle verwendet Zuordnung durch Datenmodell – 2 Beispiele: XML Dokument entspricht einem Feld einer Tabelle z.B. vom Typ CLOB Ein Element entspricht einem Feld einer Tabelle. Zusätzlich wird dessen Position abgespeichert XML und Datenbanken Object-Relational Mapping Vorgehensweise wird von allen XED benutzt Technik: – Daten werden als Baum von Objekten abgebildet – Komplexe Elemente – Simple Elemente – Klassen – Eigenschaften Klassen scalare Eigenschaften Tabellen Spalten