13.07.2012 Aufrufe

Xml-Speicherung in Datenbanksystemen

Xml-Speicherung in Datenbanksystemen

Xml-Speicherung in Datenbanksystemen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Überblick<br />

XML-<strong>Speicherung</strong> <strong>in</strong><br />

<strong>Datenbanksystemen</strong><br />

Dr. Harald Schön<strong>in</strong>g<br />

„ Motivation: XML und e-Commerce<br />

„ XML <strong>in</strong> relationalen Datenbanken<br />

„ Das XML-Datenbanksystem Tam<strong>in</strong>o<br />

1<br />

2<br />

1


XML<br />

„ Ist e<strong>in</strong>e Metasprache<br />

„ entstanden aus SGML<br />

„ die neue Sprache für das Web<br />

„ ist recht e<strong>in</strong>fach aufgebaut<br />

„ <br />

<br />

XML-<strong>Speicherung</strong> <strong>in</strong> Datenbanken<br />

Dr. Harald Schön<strong>in</strong>g<br />

Software AG<br />

<br />

Wichtige Eigenschaften von XML<br />

„ Dokumente haben e<strong>in</strong>e Baumstruktur, e<strong>in</strong>en optionalen<br />

Prolog und ggf. e<strong>in</strong>e DTD<br />

„ Die wichtigsten Bauste<strong>in</strong>e s<strong>in</strong>d Elemente und Attribute<br />

„ Dokumente s<strong>in</strong>d wohlgeformt (well-formed), wenn sie<br />

den Syntaxregeln genügen (im wesentlichen, wenn sie<br />

die geforderte Baumstruktur haben)<br />

„ Dokumente können e<strong>in</strong> Schema haben. Wenn sie<br />

wohlgeformt s<strong>in</strong>d und dem Schema entsprechen, nennt<br />

man sie gültig (valid)<br />

„ Kommentare und process<strong>in</strong>g <strong>in</strong>structions s<strong>in</strong>d an jeder<br />

Stelle erlaubt<br />

3<br />

4<br />

2


Wichtige Eigenschaften von XML - 2<br />

„ Elemente können auch rekursiv geschachtelt se<strong>in</strong><br />

„ Elemente gleichen Namens dürfen mehrfach<br />

vorkommen<br />

„ Reihenfolge und Position s<strong>in</strong>d wichtig<br />

„ Mixed content ist möglich <br />

„ Elemente können leer se<strong>in</strong><br />

„ Attribute können optional se<strong>in</strong><br />

„ Bei Attributen ist Reihenfolge unwichtig<br />

„ Es gibt spezielle Attribute zur Referenzierung (ID und<br />

IDREF)<br />

Datenaustausch - Schlüssel zum e-<br />

Commerce<br />

„ Company to company (supply cha<strong>in</strong>)<br />

„ EDI<br />

„ Punkt-zu-Punkt Lösung<br />

„ hoher Investitionsaufwand<br />

„ für Mittelstand ungeeignet<br />

„ Ablösung durch XML<br />

„ Standardisierte DTDs (OASIS)<br />

„ Können auch unilateral erweitert werden<br />

„ Standardwerkzeuge<br />

5<br />

6<br />

3


Supply cha<strong>in</strong><br />

Flexible Formatierung<br />

„ XML impliziert ke<strong>in</strong>e bestimmte Präsentationsform<br />

„ Unterschiedliche Präsentationen von XML-<br />

Dokumenten wird durch Style-Sheets möglich<br />

„ Hohe Flexibilität<br />

„ Generischer Ansatz<br />

7<br />

8<br />

4


… und <strong>in</strong>tegriertes Content Management<br />

Andere Anwendungen<br />

„ Dokumentenverwaltung / content management<br />

„ Website-Management<br />

„ electronic mall<br />

„ <strong>in</strong>telligente Suchmasch<strong>in</strong>en<br />

„ Katalogverwaltung<br />

„ Knowledge management<br />

„ e-government<br />

„ mobile Anwendungen<br />

„ Metadatenverwaltung<br />

9<br />

10<br />

5


Warum XML <strong>in</strong> Datenbanken?<br />

„ In diesen Anwendungen besteht der Bedarf der<br />

<strong>Speicherung</strong><br />

„ effizient<br />

„ sicher<br />

„ mit Abfragemöglichkeiten<br />

„ Mehrbenutzerbetrieb<br />

„ ...<br />

„ Aber auch Anb<strong>in</strong>dung an vorhandene DBS!<br />

Anfragetypen<br />

„ Werteorientiert:<br />

„ @attribute > 5<br />

„ <br />

„ element < 7.1<br />

„ 6.1<br />

„ element = "Hugo"<br />

„ Hugo<br />

„ Hugo<br />

„ Hugo<br />

„ element > "Otto"<br />

11<br />

16<br />

6


Anfragetypen (2)<br />

„ Textorientiert:<br />

„ documents conta<strong>in</strong><strong>in</strong>g „XML“<br />

„ documents conta<strong>in</strong><strong>in</strong>g "XML" OR "HTML but not<br />

"SGML"<br />

„ documents conta<strong>in</strong><strong>in</strong>g "XML" with<strong>in</strong> two words of<br />

"database"<br />

„ documents with words similar to "XML" (rank<strong>in</strong>g)<br />

Anfragetypen (3)<br />

„ Strukturorientiert:<br />

„ //Buch<br />

Dokumente, <strong>in</strong> denen e<strong>in</strong> Element "Buch" vorkommt<br />

„ //Buch/@ISBN<br />

Dokumente, <strong>in</strong> denen e<strong>in</strong> Element "Buch" e<strong>in</strong> Attribut<br />

"ISBN" hat<br />

„ /Buch/Titel<br />

„ /Buch/Autor[1]<br />

„ Titel AFTER /Buch/Autor<br />

17<br />

18<br />

7


Anfragetypen (4)<br />

„ L<strong>in</strong>korientiert<br />

„ Dokumente, die auf e<strong>in</strong>e bestimmte Stelle zeigen<br />

„ Dokumente, die aus e<strong>in</strong>em Dokument referenziert<br />

werden<br />

„ Komb<strong>in</strong>ationen aus<br />

„ wertorientiert<br />

„ textorientiert<br />

„ strukturorientiert<br />

„ l<strong>in</strong>korientiert<br />

„ //Buch[Preis < 50 AND Titel CONTAINS "XML"]<br />

XML <strong>in</strong> Datenbanken - Optionen zur<br />

Realisierung<br />

„ relational<br />

„ <strong>in</strong>haltsorientiert zerlegt<br />

„ generisch<br />

„ def<strong>in</strong>itorisch<br />

„ strukturorientiert zerlegt<br />

„ opak<br />

„ objektorientiert<br />

„ XML (Tam<strong>in</strong>o)<br />

19<br />

21<br />

8


Relational <strong>in</strong>haltsorientiert<br />

<br />

<br />

Harald Schön<strong>in</strong>g<br />

Dieburg<br />

<br />

<br />

<br />

Lieferung<br />

Nr Datum Kunde<br />

17 7.6.2001<br />

K19<br />

Lieferung Teilnr Menge<br />

17 4711 10<br />

17 4712 11<br />

Kunden<br />

Kundennr Name Ort<br />

K19 Harald Schön<strong>in</strong>g Dieburg<br />

Relational <strong>in</strong>haltsorientiert - generisch<br />

„ Darstellung von relationalen Tabellen als XML-<br />

Dokumente<br />

„ Columns als Elemente oder Attribute<br />

„ <br />

17<br />

Egon Maier <br />

18<br />

Hugo Maier <br />

<br />

„ <br />

<br />

<br />

<br />

22<br />

23<br />

9


Relational <strong>in</strong>haltsorientiert - generisch (2)<br />

„ Konvertierung e<strong>in</strong>er Tabelle (d.h. jedes SQL-<br />

Anfrageergebnisses) nach XML ist e<strong>in</strong>fach<br />

„ kann außerhalb der Datenbank geschehen<br />

„ z.B. Bluestone’s XML Suite (generierte Java-Klassen)<br />

„ Umgekehrter Weg:<br />

„ Abspeichern von XML-Dokumenten <strong>in</strong> vorgegebene<br />

Tabellen<br />

„ Setzt e<strong>in</strong>e veränderbare Sicht oder Basistabelle voraus<br />

„ Die XML-Dokumente müssen <strong>in</strong> der Struktur der<br />

Tabelle entsprechen<br />

Relational <strong>in</strong>haltsorientiert - generisch (3)<br />

„ Dokumentstruktur starr,<br />

„ Rekursion, mixed content nicht def<strong>in</strong>ierbar<br />

„ Schema durch relationales Schema gegeben<br />

„ “ round trip” möglich?<br />

„ Kommentare, process<strong>in</strong>g <strong>in</strong>structions?<br />

„ XML-Prolog<br />

„ Reihenfolge der Elemente<br />

„ Element vs. Attribut<br />

„ offensichtlich ke<strong>in</strong>e beliebigen (nicht vordef<strong>in</strong>ierten)<br />

XML-Dokumente speicherbar<br />

24<br />

25<br />

10


Relational <strong>in</strong>haltsorientiert - def<strong>in</strong>itorisch<br />

„ Def<strong>in</strong>ition e<strong>in</strong>er Abbildungsvorschrift zwischen XML-<br />

Dokument und Datenbanktabellen<br />

„ Elemente und Attribute können auf Zeilen / Spalten<br />

verschiedener Tabellen abgebildet werden<br />

„ Abbildungsvorschrift wird vor dem ersten<br />

Abspeichern erstellt und <strong>in</strong> der Datenbank<br />

gespeichert<br />

Relational <strong>in</strong>haltsorientiert - def<strong>in</strong>itorisch (2)<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

26<br />

27<br />

11


Relational <strong>in</strong>haltsorientiert - def<strong>in</strong>itorisch (3)<br />

„ Nur Dokumente mit a priori bekanntem Schema<br />

„ Rekursion?<br />

„ Reihenfolgeerhaltung?<br />

„ Prolog, Kommentare, process<strong>in</strong>g <strong>in</strong>structions gehen<br />

verloren<br />

„ ke<strong>in</strong> mixed content<br />

„ Anfragesprache ist SQL<br />

„ wertebasierte Anfrage ist e<strong>in</strong>fach, textorientierte nur<br />

bed<strong>in</strong>gt, strukturorientierte schwierig<br />

„ Konvertierung SQL-Ergebnis o XML notwendig<br />

Relational <strong>in</strong>haltsorientiert - def<strong>in</strong>itorisch (4)<br />

„ Nur Dokumente mit a priori bekanntem Schema<br />

„ Unterschiedliche Schemamächtigkeit<br />

„ Rekursion?<br />

„ ke<strong>in</strong> mixed content<br />

„ Ke<strong>in</strong>e vollständige Abbildung von Dokumenten<br />

„ Reihenfolgeerhaltung?<br />

„ Prolog, Kommentare, process<strong>in</strong>g <strong>in</strong>structions gehen verloren<br />

„ Anfragesprache ist SQL<br />

„ Anfragen aus XML-Sicht müssen immer <strong>in</strong> SQL übersetzt werden<br />

„ Werkzeuge?<br />

28<br />

29<br />

12


Relational <strong>in</strong>haltsorientiert - def<strong>in</strong>itorisch (5)<br />

„ Anderes Datenmodell<br />

„ Konvertierung SQL-Ergebnis → XML notwendig<br />

„ Auflösen synonymer Darstellungen notwendig:<br />

&apos &#x0027 ´<br />

„ beim Speichern andere Validierungsanforderungen:<br />

„ was als DATE deklariert ist, muß dem auch syntaktisch<br />

entsprechen<br />

„ Konvertierung wegen Datentypen kann round-trip verh<strong>in</strong>dern<br />

„ DATE Format<br />

„ wertebasierte Anfrage ist e<strong>in</strong>fach, textorientierte nur<br />

bed<strong>in</strong>gt, strukturorientierte schwierig<br />

Beliebiges XML <strong>in</strong> (objekt-)relationalen DB<br />

„ Ziel: Abspeichern beliebig strukturierter XML-<br />

Dokumente <strong>in</strong> relationalen Datenbanken<br />

„ Elemente und Attribute<br />

„ multiple Elemente (z.B. mehrere Vornamen)<br />

„ rekursive Struktur<br />

„ reihenfolgeerhaltend<br />

„ mixed content<br />

„ Kommentare und process<strong>in</strong>g <strong>in</strong>structions<br />

„ XML Prolog<br />

30<br />

31<br />

13


Strukturorientiert zerlegt - Beispiel<br />

1<br />

2<br />

<br />

3 <br />

4 <br />

Harald Schön<strong>in</strong>g<br />

<br />

Quelle<br />

0<br />

1<br />

1<br />

Nr<br />

1<br />

0<br />

1<br />

Tag<br />

Lieferung<br />

@Datum<br />

Lieferadresse<br />

Ziel<br />

1<br />

0<br />

3<br />

Daten<br />

7.6.2001<br />

5 <br />

3 1 Name 4 Harald Schön<strong>in</strong>g<br />

Dieburg<br />

3 2 Stadt 5 Dieburg<br />

<br />

1 2 Teil 6<br />

6 <br />

9 <br />

<br />

6<br />

6<br />

1<br />

9<br />

9<br />

0<br />

0<br />

3<br />

0<br />

0<br />

@Nummer<br />

@Menge<br />

Teil<br />

@Nummer<br />

@Menge<br />

0<br />

0<br />

9<br />

0<br />

0<br />

4711<br />

10<br />

4712<br />

11<br />

Relational strukturorientiert zerlegt<br />

„ z.B. Xbase oder Florescu & Kossmann:<br />

„ <strong>Speicherung</strong> <strong>in</strong> generischen Tabellen<br />

„ Abspeichern der Kanten des zum XML-Dokument<br />

gehörigen Strukturbaumes<br />

„ Aus 1 XML-Dokument werden n Sätze<br />

„ Kommentare, mixed content?<br />

„ Verwendete relationale Strukturen für Benutzer<br />

unbrauchbar<br />

32<br />

33<br />

14


Relational strukturorientiert zerlegt (2)<br />

„ Anfragesprache: nur SQL<br />

„ ke<strong>in</strong>e adäquaten Anfragekonstrukte<br />

„ Schlechte Performance<br />

„ Anfragen be<strong>in</strong>halten komplexe Jo<strong>in</strong>s<br />

„ Anfragen enthalten Sortierung (wegen der<br />

Reihenfolgeerhaltung)<br />

„ Lock<strong>in</strong>g<br />

„ viele Tupel pro Dokument ⇒ viele Sperren pro Änderung<br />

Relational opak<br />

„ XML-Dokument als Inhalt e<strong>in</strong>er Spalte e<strong>in</strong>er Tabelle<br />

(BLOB, CLOB) oder als externe Datei<br />

CREATE TABLE xmlTable (<br />

xml BLOB)<br />

„ schematische Beschreibung des XML-Dokumentes nicht<br />

Voraussetzung<br />

„ Anfragen mittels Extenders/Data Blades<br />

„ Zugriffspfade / Indizes über Datenbankerweiterungen?<br />

„ Lock<strong>in</strong>g auf Dokumentebene<br />

„ fe<strong>in</strong>eres Lock<strong>in</strong>g unmöglich<br />

34<br />

35<br />

15


Anfragen über Extensions<br />

„ Anfragen über<br />

„ UDF,die e<strong>in</strong>e eigene Anfragesprache verstehen können<br />

SELECT xml<br />

FROM xmlTable<br />

WHERE QUERY(xml, “/uni/fachbereich[@name=“Informatik]”)<br />

„ Optimierung von Anfragen über mehrere Dokumente?<br />

„ Sortierung des Ergebnisses?<br />

„ UPDATE xmlTable<br />

SET xml = Transform<strong>Xml</strong>(xml, “ replace by ” )<br />

„ ersetzt den kompletten Attributwert, d.h. das gesamte Dokument!<br />

Anfragen über Extensions<br />

„ Behandlung der Daten-Sicht<br />

„ Beispiel: …<br />

„ F<strong>in</strong>de alle Dokumente, deren Wichtigkeit m<strong>in</strong>destens 3 ist<br />

„ Text-Retrieval-Funktionen helfen nicht weiter<br />

„ Kann es Zugriffsstrukturen (Indizes) dafür geben?<br />

„ Voraussetzung wäre Erkennung als numerisches Feld<br />

„ DB2: side tables<br />

„ Konsistenz nicht garantiert!<br />

„ Auch syntaktisch getrennt<br />

„ ggf. nested tables (multiplicity > 1)<br />

36<br />

37<br />

16


Anfragen über Extensions<br />

„ Textsuche<br />

„ separate Software? (so bei DB2)<br />

„ <strong>Speicherung</strong> des XML-Dokumentes muss<br />

entsprechendes Format haben<br />

„ character entities<br />

„ encod<strong>in</strong>g<br />

„ Komb<strong>in</strong>ation aus struktureller Suche und Textsuche?<br />

„ Z.B. “Alle Dokumente, <strong>in</strong> denen e<strong>in</strong> Element Firma vorkommt,<br />

das die Zeichenfolge “AG” im Inhalt hat.<br />

XML-Unterstützung <strong>in</strong> relationalen DBMS<br />

„ Generelles Problem:<br />

„ Für e<strong>in</strong>e Anfrage muß bekannt se<strong>in</strong><br />

„ bei <strong>in</strong>haltsorientierter Zerlegung: Struktur des Dokumentes<br />

„ <strong>Speicherung</strong>smethode des Dokumentes<br />

„ Änderungen der <strong>Speicherung</strong>sform (zerlegt, opak)<br />

zw<strong>in</strong>gt zur Änderung aller Anwendungsprogramme<br />

„ Ergebnis ist immer e<strong>in</strong>e Tabelle, die nach XML<br />

konvertiert werden muß<br />

„ Anfrage muß <strong>in</strong> SQL übersetzt oder verpackt werden<br />

38<br />

39<br />

17


XML-Anfragen (opak): Kontrollfluß <strong>in</strong><br />

ORDBMS<br />

XML frontend<br />

SQL-Verpackung<br />

der XML query<br />

ORDBMS<br />

Tabelle →XML<br />

Variante 1: ke<strong>in</strong> XMLspezifischer<br />

Index<br />

Aufruf für jedes Dokument<br />

UDF: auswerten XML query<br />

XML-Anfragen (opak): Kontrollfluß <strong>in</strong><br />

ORDBMS (2)<br />

XML frontend<br />

SQL-Verpackung<br />

der XML query<br />

ORDBMS<br />

Tabelle →XML<br />

Variante 2: XMLspezifischer<br />

Index als<br />

Datenbankerweiterung<br />

UDF: auswerten XML query<br />

Daten- und Indexzugriffe<br />

40<br />

41<br />

18


XML-Anfragen (opak): Kontrollfluß <strong>in</strong><br />

ORDBMS (3)<br />

XML frontend<br />

SQL-Generierung<br />

aus XML query<br />

Indexzugriffe<br />

ORDBMS<br />

Tabelle →XML<br />

Wozu das ORDBMS?<br />

XML frontend<br />

SQL-Generierung<br />

aus XML query<br />

Tabelle →XML<br />

Variante 3: Index als<br />

SQL-Tabelle<br />

UDF: auswerten XML query<br />

UDF: auswerten XML query<br />

42<br />

43<br />

19


XML-Datenbanksystem<br />

„ Kann XML-spezifische Anfragesprache verarbeiten<br />

„ z.B. XML-QL, XQL, XPATH, XQuery<br />

„ kann XML-Dokumente als solche speichern<br />

„ liefert XML als Ergebnis<br />

„ unterstützt struktur-, text- und wertebasierte Anfragen<br />

effizient<br />

„ unterstützt Daten- und Dokumentsicht (mixed content,<br />

Kommentare etc.)<br />

„ erlaubt e<strong>in</strong>e schematische Beschreibung der<br />

Dokumente<br />

e<strong>in</strong> XML-<br />

Datenbanksystem<br />

„ Seit 1999 verfügbar<br />

„ Anfragesprache: Xpath-Erweiterung<br />

„ Integration heterogener Datenquellen<br />

„ Erweiterbar durch "Server extensions"<br />

„ speichert XML-Dokumente und "non-XML"<br />

„ schematische Beschreibung ist möglich, aber nicht<br />

zw<strong>in</strong>gend<br />

„ http ist primärer Zugang<br />

„ Indizierung gemäß XML-Struktur<br />

44<br />

45<br />

20


Anfragesprache<br />

„ Kompatibel zu XPATH<br />

„ /talk<br />

„ //speaker[company=“Software AG”]<br />

„ //@time<br />

„ /talk/*/company<br />

„ mengenorientiert<br />

„ Erweiterungen, z.B. für Textsuche<br />

„ /talk[title ~= “XML”]<br />

„ Ergebnis ist well-formed XML<br />

Architekturüberblick<br />

web server<br />

Tam<strong>in</strong>o server<br />

XML<br />

data<br />

Xmach<strong>in</strong>e<br />

web<br />

application<br />

X<br />

n<br />

o<br />

d<br />

e<br />

External<br />

database<br />

External<br />

application<br />

46<br />

48<br />

21


Integration anderer Datenquellen<br />

„ Warum: legacy Daten sollen per Web zugänglich<br />

gemacht werden<br />

„ Daten anderer Quellen sollen mit den <strong>in</strong> Tam<strong>in</strong>o<br />

gespeicherten Daten e<strong>in</strong> geme<strong>in</strong>sames Dokument<br />

ergeben<br />

„ Als XML gelieferte Daten sollen (teilweise) <strong>in</strong> operative<br />

Datenbanken fließen<br />

„ Zugang z.B. zu ERP-Systemen<br />

Erweiterbarkeit<br />

„ Integration benutzerdef<strong>in</strong>ierter Funktionen <strong>in</strong> die<br />

Anfragesprache<br />

„ server extensions<br />

„ Abbildungsfunktionen, die beliebige Abbildungen<br />

zulassen (z.B. auf Email oder e<strong>in</strong> ERP-System)<br />

„ lesend (d.h. bei Anfragen)<br />

„ schreibend (d.h. bei E<strong>in</strong>fügungen, Änderungen,<br />

Löschungen)<br />

„ Server extensions s<strong>in</strong>d COM oder Java-basiert<br />

49<br />

50<br />

22


Architektur der X-Masch<strong>in</strong>e<br />

X-Mach<strong>in</strong>e<br />

Index<br />

Processor<br />

<strong>in</strong>dex data<br />

Query<br />

Interpreter<br />

Document Post<br />

composer processor Document processor<br />

Schema<br />

<strong>in</strong>formation<br />

Interne <strong>Speicherung</strong><br />

XML data<br />

XML parser<br />

X node,<br />

server<br />

extensions<br />

„ Parsen des Dokumentes<br />

„ dabei Auflösen von Entity-Referenzen, Default-Werten<br />

für Attribute etc.<br />

„ Bilden von Indizes<br />

„ Werte<br />

„ Text<br />

„ Struktur<br />

„ Abspeichern des Dokumentes <strong>in</strong> <strong>in</strong>terner Form<br />

51<br />

53<br />

23


Externe <strong>Speicherung</strong><br />

„ “ middleware” - Ansatz<br />

„ Dokument wird geparst, entsprechende Informationen<br />

werden <strong>in</strong> externen Datenhaltungssystemen<br />

gespeichert<br />

„ bei Anfrage entsprechendes Lesen<br />

„ Kenntnis der Dokumentstruktur erforderlich<br />

„ verteilte Transaktionen<br />

„ Dokumentenänderung an Tam<strong>in</strong>o vorbei<br />

„ Indizierung im Fremdsystem<br />

„ Suchmöglichkeiten nicht durch Fremdsystem beschränkt<br />

Prozedurale <strong>Speicherung</strong><br />

„ Aufruf e<strong>in</strong>er Prozedur für (Teil-) Baum statt<br />

<strong>Speicherung</strong> / Lesen aus der Datenbank<br />

„ Verhalten der Prozedur offen<br />

„ Verschicken von Mail<br />

„ <strong>Speicherung</strong> <strong>in</strong> ERP-System<br />

„ …<br />

„ round trip<br />

„ vom Verhalten der Prozedur abhängig<br />

54<br />

55<br />

24


Komb<strong>in</strong>ation<br />

„ Die vorgestellten <strong>Speicherung</strong>svarianten lassen sich<br />

untere<strong>in</strong>ander und mit der <strong>in</strong>ternen <strong>Speicherung</strong> auf<br />

Dokumentebene komb<strong>in</strong>ieren<br />

„ Dokumentstruktur wird ohneh<strong>in</strong> abgebildet<br />

„ ermöglicht strukturbasierte Suche<br />

„ vollständige <strong>Speicherung</strong> für nicht weiter spezifizierte<br />

Teilbäume möglich<br />

„ Schema-Evolution wird unterstützt<br />

Indizierung<br />

„ klassische Indizes für Daten<br />

„ Zahlen<br />

„ Zeichenketten<br />

„ Datentypdef<strong>in</strong>ition erforderlich<br />

„ Text<strong>in</strong>dizes für dokumentartige Teile<br />

„ mit Wildcards<br />

„ Struktur<br />

„ Frei komb<strong>in</strong>ierbar<br />

„ <strong>in</strong>nerhalb e<strong>in</strong>es Dokumententyps<br />

56<br />

57<br />

25


Schema-Sprache<br />

„ Erste XML-Schemasprache: DTD<br />

„ Aus Datenbanksicht unzulänglich<br />

„ ke<strong>in</strong>e Datentypen<br />

„ ke<strong>in</strong>e Erweiterbarkeit (Indizierung)<br />

„ ke<strong>in</strong> XML!<br />

„ Seit Mai 2001 ist XML Schema e<strong>in</strong>e Recommendation<br />

des W3C<br />

„ Basis für neue Tam<strong>in</strong>o-Schemasprache<br />

Schema ist optional<br />

„ E<strong>in</strong> XML-Datenbanksystem darf ke<strong>in</strong> bekanntes<br />

Schema voraussetzen<br />

„ DTD-lose / schemalose Dokumente müssen verarbeitet werden<br />

„ Kommentare / process<strong>in</strong>g <strong>in</strong>structions müssen<br />

gespeichert werden<br />

„ obwohl nicht im Schema deklariert<br />

„ Offenheit des Schemas von Anwendungsszenarien<br />

gefordert<br />

„ das ist nicht das ANY aus DTDs<br />

„ Tam<strong>in</strong>o<br />

„ open content oder closed content<br />

58<br />

59<br />

26


Open content <strong>in</strong> Tam<strong>in</strong>o - Beispiel<br />

<br />

<br />

Darmstadt<br />

The city of art nouveau<br />

<br />

Langer Ludwig<br />

<br />

Luisenplatz<br />

M5<br />

<br />

<br />

Open content <strong>in</strong> Tam<strong>in</strong>o<br />

Name<br />

Name<br />

City<br />

Monument<br />

Location<br />

<br />

<br />

<br />

<br />

„ Strikte Schema-Validierung<br />

„ closed content def<strong>in</strong>ieren<br />

„ Ansonsten: Elemente und Attribute def<strong>in</strong>ieren, wenn<br />

„ sie <strong>in</strong>diziert werden sollen<br />

„ wenn sie auf externe Datenquellen oder server extensions<br />

abgebildet werden sollen<br />

„ Zugriffsrechte darauf def<strong>in</strong>iert werden sollen<br />

„ Eigenschaften (z.B. Multiplicity) erzwungen werden sollen<br />

„ e<strong>in</strong>er dieser Punkte für e<strong>in</strong> K<strong>in</strong>delement gilt<br />

+<br />

60<br />

61<br />

27


Tam<strong>in</strong>o Schemabehandlung<br />

„ Dokumente ohne bekanntes Schema können<br />

gespeichert werden<br />

„ ke<strong>in</strong>e schemabasierte Gruppierung<br />

„ Tam<strong>in</strong>o collections als benutzerdef<strong>in</strong>ierte Gruppierung<br />

„ Kommentare und process<strong>in</strong>g <strong>in</strong>structions werden<br />

gespeichert<br />

„ Unabhängig vom content Modell<br />

XML Datenorganisation<br />

XML<br />

data<br />

„ Collection<br />

„ Dokument-Typ<br />

„ dokumente<br />

„ eigene Collection für “ unbekannte<br />

Dokumenttypen” (well-formed XML)<br />

„ Auch nicht-XML-Objekte (*.gif etc)<br />

„ physische Organisation<br />

„ Dokumenten<strong>in</strong>halt<br />

„ Struktur<br />

„ Indizes<br />

62<br />

63<br />

28


http als primärer Zugang<br />

Anwendung<br />

http://myserver/tam<strong>in</strong>o/mydb?_xql=/Vortrag<br />

Inter-/Intranet<br />

„ Beschränkung der akzeptierten Web-Server<br />

„ Security-Check schon im Web-Server möglich<br />

„ wegen hierarchischer URL-Struktur<br />

Web server<br />

Tam<strong>in</strong>o server<br />

Tam<strong>in</strong>o plug<strong>in</strong><br />

Existierende Anwendungen<br />

„ Datenaustausch, z.B.<br />

„ mobile Anwendungen<br />

„ Gesundheitswesen<br />

„ Dokumentenverwaltung / content management<br />

„ Dokumentgenerierung aus Bauste<strong>in</strong>en<br />

„ B2C, webshops , B2B, bus<strong>in</strong>ess <strong>in</strong>tegration (electronic mall)<br />

„ <strong>in</strong>telligente Suchmasch<strong>in</strong>en<br />

„ Katalogverwaltung komplexer Teile (web2CAD)<br />

„ Knowledge management<br />

„ e-government (UK)<br />

„ persistente <strong>Speicherung</strong> von XML (Messag<strong>in</strong>g)<br />

„ Metadatenverwaltung / Servicebeschreibung<br />

64<br />

65<br />

29


Zusammenfassung<br />

„ XML-<strong>Speicherung</strong> ist e<strong>in</strong>e wichtige Anforderung an<br />

Datenbanksysteme im e-Commerce<br />

„ Zugriff auf vorhandene Daten (RDBMS) im XML-<br />

Format ist e<strong>in</strong>fach<br />

„ direkter Anschluss an das Web<br />

„ <strong>Speicherung</strong> von XML-Dokumenten <strong>in</strong> (objekt-)<br />

relationalen <strong>Datenbanksystemen</strong> ist e<strong>in</strong>e Notlösung<br />

„ Speziell auf XML zugeschnittene Datenbanksysteme<br />

bieten bessere Unterstützung<br />

66<br />

30

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!