Seminar
description
Transcript of Seminar
SeminarSeminar
XML und Datenbanken
Sven Wiegelmann SS 2002
InhaltInhalt
Ü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,GeschichteEntstehung,Geschichte
XML = eXtensible Markup Language Vorgeschlagen 1996 vom W3C 1998 Als Standard verabschiedet
Vor XML:– SGML
Beschreibungssprache für strukturierte Dokumentemit recht komplexen Umfang.
XML stellt Untermenge von SGML dar
– HTML 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
SGMLSGML19861986
HTMLHTML19911991
XMLXML19981998 InstanzInstanz
TeilmengeTeilmenge InstanzInstanz
ZieleZiele 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 lassen2. Plattformunabhängiges Format zum Austausch3. Kompatibilität mit SGML4. Einfache Programmierung von Applikationen die XML benutzen5. Keine zusätzlichen Features6. XML Dokumente sollten leicht lesbar und verständlich sein7. Das Design (von XML) sollte leicht zu erstellen sein8. Das Design sollte formal und prägnant sein9. XML Dokumente sollten leicht zu erstellen sein10. Lesbarkeit geht vor kurze Notation
XML DokumenteXML DokumenteBausteineBausteine
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 DokumenteXML DokumenteBausteineBausteine
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 DokumenteXML DokumenteBausteineBausteine
Kommentare– Syntax: <!-- ...... -->
Entity-Referenzen– Verhindern Falschinterpretation von Zeichen– 5 vordefinierte Referenzen z.B. > 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 DokumenteXML DokumenteDTDDTD
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 [...]> Intern <!DOCTYPE wurzelelement SYSTEM “Bibliothek.dtd“> Extern
XML DokumenteXML DokumenteBeispielBeispiel
<xml version=“1.0“ encoding=“ISO-8859-1“> <!DOCTYPE Lager [ <!ELEMENT Lager (reifen*)> <!ELEMENT reifen (modell, groesse+, gmischung*,
hersteller,)> <!ATTLIST reifen spezifikation ( v | h )> <!ELEMENT modell (#PCDATA)> <!ELEMENT groesse (#PCDATA)> <!ELEMENT gmischung ( w | m | h ) > <!ELEMENT hersteller (#PCDATA)> ]>
XML DokumenteXML DokumenteBeispielBeispiel
<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 DokumentartenXML DokumentartenWohlgeformte und Gültige DokumenteWohlgeformte 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 DatenbankenXML und DatenbankenIst XML eine Datenbank?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 DatenbankenXML und DatenbankenXML = DBMS?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 DatenbankenXML und DatenbankenFazitFazit
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 DatenbankenXML und DatenbankenDaten- und Dokumentzentrierte DokumenteDaten- 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 DatenbankenXML und DatenbankenStrategienStrategien
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 DatenbankenXML und DatenbankenProblemeProbleme
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 DatenbankenXML und DatenbankenVorgehensweisenVorgehensweisen
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 DatenbankenXML und DatenbankenObject-Relational MappingObject-Relational Mapping
Vorgehensweise wird von allen XED benutzt Technik:
– Daten werden als Baum von Objekten abgebildet– Komplexe Elemente Klassen– Simple Elemente scalare Eigenschaften– Klassen Tabellen– Eigenschaften Spalten