Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer...

73
Speicherung von XML Speicherung von XML in (objekt-)relationalen in (objekt-)relationalen Datenbanken Datenbanken Burkhard Schäfer Burkhard Schäfer

Transcript of Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer...

Page 1: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Speicherung von XMLSpeicherung von XMLin (objekt-)relationalenin (objekt-)relationalen

DatenbankenDatenbanken

Burkhard SchäferBurkhard Schäfer

Page 2: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

ÜbersichtÜbersicht

•• MotivationMotivation•• AnforderungenAnforderungen•• AnsätzeAnsätze

–– modellorientiertmodellorientiert–– strukturorientiertstrukturorientiert

•• ZusammenfassungZusammenfassung

Page 3: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

MotivationMotivation

Warum XML in Datenbanken speichern?Warum XML in Datenbanken speichern?

Einsatz bewährter Datenbanktechnologie:Einsatz bewährter Datenbanktechnologie:•• TransaktionsmanagementTransaktionsmanagement•• Logging und RecoveryLogging und Recovery•• SynchronisationSynchronisation•• IntegritätsregelnIntegritätsregeln (O)RDBSXMLXMLXML

Page 4: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Anforderungen (1)Anforderungen (1)

•• Definition einer Abbildung von XML-Definition einer Abbildung von XML-Strukturen in ein DatenbankschemaStrukturen in ein Datenbankschema

•• Transformation von DokumentenTransformation von Dokumenten•• Transformation von AnfragenTransformation von Anfragen

Page 5: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Anforderungen (2)Anforderungen (2)

Definition eines AbbildungsschemasDefinition eines Abbildungsschemas•• Rückgewinnung des OriginaldokumentsRückgewinnung des Originaldokuments

möglichmöglich•• Unterstützung von AnfragenUnterstützung von Anfragen•• Erhaltung der ReihenfolgeErhaltung der Reihenfolge•• Formale Beschreibung der AbbildungFormale Beschreibung der Abbildung

•• Generisch oder Schema-spezifischGenerisch oder Schema-spezifisch

Page 6: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Anforderungen (3)Anforderungen (3)

Transformation von DokumentenTransformation von Dokumenten•• Zerlegung in Fragmente (“shredding”)Zerlegung in Fragmente (“shredding”)•• Ablage der Fragmente inAblage der Fragmente in

–– mehreren Tupeln (RDBS)mehreren Tupeln (RDBS)–– geschachteltem Tupel (ORDBS)geschachteltem Tupel (ORDBS)

Page 7: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Anforderungen (4)Anforderungen (4)

Transformation von AnfragenTransformation von Anfragen•• Formulierung in XML-typischenFormulierung in XML-typischen

Sprachen (XQuery, XPath, XML-QL)Sprachen (XQuery, XPath, XML-QL)•• Umsetzung in SQLUmsetzung in SQL•• Transformation der ErgebnismengeTransformation der Ergebnismenge

nach XMLnach XML

Page 8: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Naiver AnsatzNaiver Ansatz

•• Speichern des XML-Dokuments in einemSpeichern des XML-Dokuments in einemBLOB-FeldBLOB-FeldDocuments (Documents (docIDdocID, docContent), docContent)

Page 9: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Naiver AnsatzNaiver Ansatz

•• Speichern des XML-Dokuments in einemSpeichern des XML-Dokuments in einemBLOB-FeldBLOB-FeldDocuments (Documents (docIDdocID, docContent), docContent)

docIDdocID docContentdocContent47114711 <buch>

<titel>Professional XML</titel>...</buch>

<buch><titel>Professional XML</titel>...</buch>

Page 10: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Naiver AnsatzNaiver Ansatz

•• Speichern des XML-Dokuments in einemSpeichern des XML-Dokuments in einemBLOB-FeldBLOB-FeldDocuments (Documents (docIDdocID, docContent), docContent)

docIDdocID docContentdocContent47114711 <buch>

<titel>Professional XML</titel>...</buch>

<buch><titel>Professional XML</titel>...</buch>

•• niedriger Verwaltungsaufwandniedriger Verwaltungsaufwand•• schwierige Anfrageverarbeitungschwierige Anfrageverarbeitung

Page 11: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

BeispieldokumentBeispieldokument<buch><buch> <titel> <titel>Professional XMLProfessional XML</titel></titel> <isbn> <isbn>1-861005-05-91-861005-05-9</isbn></isbn> <preis waehrung=" <preis waehrung="EUREUR">">60,4460,44</preis></preis> <autoren> <autoren> <autor geschlecht=" <autor geschlecht="mm">"> <vorname> <vorname>MarkMark</vorname></vorname> <nachname> <nachname>BirbeckBirbeck</nachname></nachname> </autor> </autor> <autor geschlecht=" <autor geschlecht="mm">"> <vorname> <vorname>JonJon</vorname></vorname> <nachname> <nachname>DuckettDuckett</nachname></nachname> </autor> </autor> </autoren> </autoren></buch></buch>

Page 12: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

BaumdarstellungBaumdarstellung

“EUR”

“m”“m”

Page 13: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

BaumdarstellungBaumdarstellung

“EUR”

“m”“m”

WurzelknotenWurzelknoten

Page 14: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

BaumdarstellungBaumdarstellung

“EUR”

“m”“m”

ElementknotenElementknoten

Page 15: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

BaumdarstellungBaumdarstellung

“EUR”

“m”“m”

AttributknotenAttributknoten

Page 16: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

BaumdarstellungBaumdarstellung

“EUR”

“m”“m”

TextknotenTextknoten

Page 17: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Modellorientierte AnsätzeModellorientierte Ansätze

•• Ausnutzung der hierarchischen StrukturAusnutzung der hierarchischen Strukturvon Dokumentenvon Dokumenten

•• Adressierung von Werten über Pfad imAdressierung von Werten über Pfad imDokumentenbaumDokumentenbaum

•• Unabhängig von DTD oder SchemaUnabhängig von DTD oder Schema

Page 18: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: ÜberblickXRel: Überblick

•• Charakterisierung eines DokumentsCharakterisierung eines Dokumentsüber über KnotenKnoten des Baums des Baums

•• Ablage eines Pfadausdrucks zusammenAblage eines Pfadausdrucks zusammenmit dem Wert zur Beschreibung einesmit dem Wert zur Beschreibung einesKnotensKnotens

•• Unterstützung von XPath-AnfragenUnterstützung von XPath-Anfragen

Page 19: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

•• Beschreibung der Position einesBeschreibung der Position einesKnotens im DokumentbaumKnotens im Dokumentbaum

•• Syntax an XPath angelehntSyntax an XPath angelehnt

Page 20: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

•• Beschreibung der Position einesBeschreibung der Position einesKnotens im DokumentbaumKnotens im Dokumentbaum

•• Syntax an XPath angelehntSyntax an XPath angelehnt

PfadAusdruck ::= ‘#/’ SchrittPfadAusdruck ::= ‘#/’ Schritt | PfadAusdruck ‘#/’ Schritt | PfadAusdruck ‘#/’ Schritt

Schritt ::= NameSchritt ::= Name | ‘@’ Name | ‘@’ Name

Name ::= Name ::= XMLNameXMLName

Page 21: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

“EUR”

“m”“m”

Beispiel:Beispiel: #/#/buchbuch #/ #/autorenautoren #/ #/autorautor #/@ #/@geschlechtgeschlecht

PfadausdrückePfadausdrückenicht eindeutignicht eindeutig

Page 22: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

“EUR”

“m”“m”

Beispiel:Beispiel: #/#/buchbuch #/ #/autorenautoren #/ #/autorautor #/@ #/@geschlechtgeschlecht

PfadausdrückePfadausdrückenicht eindeutignicht eindeutig

Page 23: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

“EUR”

“m”“m”

Beispiel:Beispiel: #/#/buchbuch #/ #/autorenautoren #/ #/autorautor #/@ #/@geschlechtgeschlecht

PfadausdrückePfadausdrückenicht eindeutignicht eindeutig

Page 24: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

“EUR”

“m”“m”

Beispiel:Beispiel: #/#/buchbuch #/ #/autorenautoren #/ #/autorautor #/@ #/@geschlechtgeschlecht

PfadausdrückePfadausdrückenicht eindeutignicht eindeutig

Page 25: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

“EUR”

“m”“m”

Beispiel:Beispiel: #/#/buchbuch #/ #/autorenautoren #/ #/autorautor #/@ #/@geschlechtgeschlecht

PfadausdrückePfadausdrückenicht eindeutignicht eindeutig

Page 26: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

“EUR”

“m”“m”

Beispiel:Beispiel: #/#/buchbuch #/ #/autorenautoren #/ #/autorautor #/@ #/@geschlechtgeschlecht

PfadausdrückePfadausdrückenicht eindeutignicht eindeutig

Page 27: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

“EUR”

“m”“m”

Beispiel:Beispiel: #/#/buchbuch #/ #/autorenautoren #/ #/autorautor #/@ #/@geschlechtgeschlecht

PfadausdrückePfadausdrückenicht eindeutignicht eindeutig

Page 28: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: PfadausdrückeXRel: Pfadausdrücke

“EUR”

“m”“m”

Beispiel:Beispiel: #/#/buchbuch #/ #/autorenautoren #/ #/autorautor #/@ #/@geschlechtgeschlecht

PfadausdrückePfadausdrückenicht eindeutignicht eindeutig

Page 29: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Datenbankschema (1)XRel: Datenbankschema (1)

•• Eine relationale Tabelle pro KnotentypEine relationale Tabelle pro Knotentyp•• Ein Tupel pro KnotenEin Tupel pro Knoten

Page 30: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Datenbankschema (1)XRel: Datenbankschema (1)

•• Eine relationale Tabelle pro KnotentypEine relationale Tabelle pro Knotentyp•• Ein Tupel pro KnotenEin Tupel pro Knoten

Element (docID, path, start, end)Element (docID, path, start, end)

Attribute (docID, path, start, end, value)Attribute (docID, path, start, end, value)

Text (docID, path, start, end, value)Text (docID, path, start, end, value)

Page 31: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Datenbankschema (1)XRel: Datenbankschema (1)

•• Eine relationale Tabelle pro KnotentypEine relationale Tabelle pro Knotentyp•• Ein Tupel pro KnotenEin Tupel pro Knoten

Element (docID, path, start, end)Element (docID, path, start, end)

Attribute (docID, path, start, end, value)Attribute (docID, path, start, end, value)

Text (docID, path, start, end, value)Text (docID, path, start, end, value)

!! Pfadinformation redundant Pfadinformation redundant

Page 32: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Datenbankschema (2)XRel: Datenbankschema (2)

Element (docID, pathID, start, end,Element (docID, pathID, start, end,

index, reindex) index, reindex)

Attribute (docID, pathID, start, end, value)Attribute (docID, pathID, start, end, value)

Text (docID, pathID, start, end, value)Text (docID, pathID, start, end, value)

Path (pathID, pathexp)Path (pathID, pathexp)

•• Eine relationale Tabelle pro KnotentypEine relationale Tabelle pro Knotentyp•• Ein Tupel pro KnotenEin Tupel pro Knoten

Page 33: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (1)XRel: Verfahren (1)

1. Erzeugen der Pfadtabelle1. Erzeugen der Pfadtabelle

Page 34: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (1)XRel: Verfahren (1)

1. Erzeugen der Pfadtabelle1. Erzeugen der PfadtabellepathID pathexppathID pathexp

1 #/buch 2 #/buch#/titel 3 #/buch#/isbn 4 #/buch#/preis 5 #/buch#/preis#/@waehrung 6 #/buch#/autoren 7 #/buch#/autoren#/autor 8 #/buch#/autoren#/autor#/@geschlecht 9 #/buch#/autoren#/autor#/vorname10 #/buch#/autoren#/autor#/nachname

1 #/buch 2 #/buch#/titel 3 #/buch#/isbn 4 #/buch#/preis 5 #/buch#/preis#/@waehrung 6 #/buch#/autoren 7 #/buch#/autoren#/autor 8 #/buch#/autoren#/autor#/@geschlecht 9 #/buch#/autoren#/autor#/vorname10 #/buch#/autoren#/autor#/nachname

Page 35: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

Page 36: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

docID pathID start end index reindexdocID pathID start end index reindex

Page 37: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

Page 38: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

1 1 0 390 1 1 buch

Page 39: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

1 1 0 390 1 1 buch

#/buch#/buch

Page 40: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

1 1 0 390 1 1 buch

Page 41: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

1 1 0 390 1 1 buch1 2 11 41 1 1 titel

Page 42: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

1 1 0 390 1 1 buch1 2 11 41 1 1 titel

#/buch#/titel#/buch#/titel

Page 43: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

1 1 0 390 1 1 buch1 2 11 41 1 1 titel

Page 44: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

1 1 0 390 1 1 buch1 2 11 41 1 1 titel1 3 47 72 1 1 isbn

Page 45: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

docID pathID start end index reindexdocID pathID start end index reindex

<buch> <titel>Professional XML</titel> <isbn>1-861005-05-9</isbn> <preis waehrung="EUR">60,44</preis> ...</buch>

1 1 0 390 1 1 buch1 2 11 41 1 1 titel1 3 47 72 1 1 isbn

#/buch#/titel#/buch#/titel

Page 46: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

docID pathID start end index reindexdocID pathID start end index reindex

XRel: Verfahren (2)XRel: Verfahren (2)

2. Erzeugen der Element-Tabelle2. Erzeugen der Element-Tabelle

1 1 0 390 1 11 2 11 41 1 11 3 47 72 1 11 4 78 111 1 11 6 117 381 1 11 7 134 246 1 21 9 168 190 1 11 10 203 230 1 11 7 255 366 2 11 9 289 310 1 11 10 323 350 1 1

Page 47: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Verfahren (3)XRel: Verfahren (3)

3. Erzeugen der Attribut-Tabelle3. Erzeugen der Attribut-TabelledocID pathID start end valuedocID pathID start end value

1 5 79 79 EUR waehrung1 8 134 134 m geschlecht1 8 255 255 m geschlecht

4. Erzeugen der Text-Tabelle4. Erzeugen der Text-TabelledocID pathID start end valuedocID pathID start end value

1 2 18 33 Professional XML1 3 53 65 1-861005-05-91 4 99 103 60,44

Page 48: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Anfrageverarbeitung (1)XRel: Anfrageverarbeitung (1)

•• Transformation von XPath-AusdrückenTransformation von XPath-Ausdrückenin SQL-Anweisungenin SQL-Anweisungen–– Ersetzung von Zeichenketten:Ersetzung von Zeichenketten:

// durch durch #/#///// durch durch #%/#%/

•• Durchführung einer LIKE-SucheDurchführung einer LIKE-Suche

•• Darstellung des Ergebnisses in XMLDarstellung des Ergebnisses in XML

Page 49: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Anfrageverarbeitung (2)XRel: Anfrageverarbeitung (2)

Page 50: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Anfrageverarbeitung (2)XRel: Anfrageverarbeitung (2)

•• XPath-Ausdruck:XPath-Ausdruck://buchbuch/*//*/autorautor

Page 51: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Anfrageverarbeitung (2)XRel: Anfrageverarbeitung (2)

•• XPath-Ausdruck:XPath-Ausdruck://buchbuch/*//*/autorautor

•• Ersetzungsergebnis:Ersetzungsergebnis:#/#/buchbuch#%/#%/autorautor

Page 52: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: Anfrageverarbeitung (2)XRel: Anfrageverarbeitung (2)

•• XPath-Ausdruck:XPath-Ausdruck://buchbuch/*//*/autorautor

•• Ersetzungsergebnis:Ersetzungsergebnis:#/#/buchbuch#%/#%/autorautor

•• SQL-Anfrage:SQL-Anfrage:SELECT e.docID, e.start, e.endSELECT e.docID, e.start, e.endFROM Element e, Path pFROM Element e, Path pWHERE e.pathID = p.pathIDWHERE e.pathID = p.pathIDAND AND p.pathexp LIKE '#/buch#%/autor'p.pathexp LIKE '#/buch#%/autor'ORDER BY e.docID, e.start, e.endORDER BY e.docID, e.start, e.end

Page 53: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XRel: BewertungXRel: Bewertung

++ Speicherung unterschiedlichSpeicherung unterschiedlichstrukturierter Dokumentestrukturierter Dokumente

++ XPath-UnterstützungXPath-Unterstützung++ einfach ausführbareinfach ausführbar–– String-Vergleiche langsamString-Vergleiche langsam–– schlecht durch Indexstrukturen stützbarschlecht durch Indexstrukturen stützbar

–– Ineffizient bei gleichartigenIneffizient bei gleichartigenDokumentenDokumenten

Page 54: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Strukturorientierte AnsätzeStrukturorientierte Ansätze

•• Nachbildung der logischenNachbildung der logischenDokumentstrukturDokumentstruktur–– Baumstruktur nur implizit vorhandenBaumstruktur nur implizit vorhanden

•• Spezialisierung auf bestimmte KlasseSpezialisierung auf bestimmte Klassevon Dokumentenvon Dokumenten–– gestützt auf DTD oder XML Schemagestützt auf DTD oder XML Schema

Page 55: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XDatabase: ÜberblickXDatabase: Überblick

•• Analyse eines XML-SchemasAnalyse eines XML-Schemas•• Erzeugung eines relationalenErzeugung eines relationalen

DatenbankschemasDatenbankschemas–– Eine Relation pro ElementtypEine Relation pro Elementtyp–– Felder für Attribute und AttributgruppenFelder für Attribute und Attributgruppen–– Fremdschlüsselbeziehungen für HierarchieFremdschlüsselbeziehungen für Hierarchie

buch (id)buch (id)autoren (id, parentBuchId)autoren (id, parentBuchId)autor (id, parentAutorenId, geschlecht)autor (id, parentAutorenId, geschlecht)

Page 56: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XDatabase: TypenXDatabase: Typen

•• Darstellung einfacher TypenDarstellung einfacher Typen–– Verwendung von ConstraintsVerwendung von ConstraintsCONSTRAINT CHECK (geschlecht INCONSTRAINT CHECK (geschlecht IN (‘m’,‘w’)) (‘m’,‘w’))

•• Darstellung komplexer Typen:Darstellung komplexer Typen:–– Einführen separater TabellenEinführen separater Tabellen–– Referenz über FremdschlüsselReferenz über Fremdschlüssel

Page 57: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XDatabase: BeispielXDatabase: Beispiel

•• Erzeugte Tabellenstruktur:Erzeugte Tabellenstruktur:

buch (id)buch (id)isbn (id, parentBuchId, isbn)isbn (id, parentBuchId, isbn)preis (id, parentBuchId, waehrung, preis)preis (id, parentBuchId, waehrung, preis)autoren (id, parentBuchId)autoren (id, parentBuchId)autor (id, parentAutorenId, geschlecht)autor (id, parentAutorenId, geschlecht)vorname (id, parentAutorId, vorname)vorname (id, parentAutorId, vorname)nachname(id, parentAutorId, nachname)nachname(id, parentAutorId, nachname)

Page 58: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

XDatabase: BewertungXDatabase: Bewertung

++ Abbildung von logischenAbbildung von logischenZusammenhängenZusammenhängen

++ Robustheit durch starke TypisierungRobustheit durch starke Typisierung

–– Anfrageverarbeitung sehr aufwändigAnfrageverarbeitung sehr aufwändig–– nur Dokumente einer Klasse ablegbarnur Dokumente einer Klasse ablegbar

Page 59: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: ÜberblickLegoDB: Überblick

•• Ansatz zur automatischen BestimmungAnsatz zur automatischen Bestimmungoptimierter Abbildungenoptimierter Abbildungen

•• Nutzung von Wissen über AnwendungNutzung von Wissen über Anwendung–– DatenstrukturDatenstruktur–– Typische BenutzerabläufeTypische Benutzerabläufe–– DatenverteilungDatenverteilung

Page 60: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: GrundlagenLegoDB: Grundlagen

•• Äquivalenzbegriff über XML SchemaÄquivalenzbegriff über XML Schema

Zwei XML Schemata heißen genau dann äquivalent,wenn die Mengen gültiger Dokumente, die vonbeiden Schemata beschrieben werden, identisch sind.

Zwei XML Schemata heißen genau dann Zwei XML Schemata heißen genau dann äquivalentäquivalent,,wenn die Mengen gültiger Dokumente, die vonwenn die Mengen gültiger Dokumente, die vonbeiden Schemata beschrieben werden, identisch sind.beiden Schemata beschrieben werden, identisch sind.

Page 61: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: GrundlagenLegoDB: Grundlagen

•• Äquivalenzbegriff über XML SchemaÄquivalenzbegriff über XML Schema

Zwei XML Schemata heißen genau dann äquivalent,wenn die Mengen gültiger Dokumente, die vonbeiden Schemata beschrieben werden, identisch sind.

Zwei XML Schemata heißen genau dann Zwei XML Schemata heißen genau dann äquivalentäquivalent,,wenn die Mengen gültiger Dokumente, die vonwenn die Mengen gültiger Dokumente, die vonbeiden Schemata beschrieben werden, identisch sind.beiden Schemata beschrieben werden, identisch sind.

•• ÄquivalenzumformungenÄquivalenzumformungen–– Reguläre AusdrückeReguläre Ausdrücke–– TypdefinitionenTypdefinitionen

Page 62: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: EingabeLegoDB: Eingabe

•• Wissen über AnwendungWissen über Anwendung–– XML SchemaXML Schema–– XQuery LastprofilXQuery Lastprofil–– Statistiken über DatenverteilungStatistiken über Datenverteilung

Page 63: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: Verfahren (2)LegoDB: Verfahren (2)

Schema•• Äquivalenz-Äquivalenz-umformungen aufumformungen aufXML SchemataXML Schematadurchführendurchführen

•• SuchraumSuchraumaufspannenaufspannen

Page 64: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: Verfahren (2)LegoDB: Verfahren (2)

Schema•• Äquivalenz-Äquivalenz-umformungen aufumformungen aufXML SchemataXML Schematadurchführendurchführen

•• SuchraumSuchraumaufspannenaufspannen

Schema Schema Schema

Page 65: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: Verfahren (2)LegoDB: Verfahren (2)

Schema•• Äquivalenz-Äquivalenz-umformungen aufumformungen aufXML SchemataXML Schematadurchführendurchführen

•• SuchraumSuchraumaufspannenaufspannen

Schema Schema Schema

Page 66: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: Verfahren (2)LegoDB: Verfahren (2)

Für jeden Knoten:Für jeden Knoten:•• Relationales SchemaRelationales Schema

erzeugenerzeugen

Schema

Schema Schema Schema

SELECT SELECT SELECT

10s 35s 20s

Page 67: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: Verfahren (2)LegoDB: Verfahren (2)

Für jeden Knoten:Für jeden Knoten:•• Relationales SchemaRelationales Schema

erzeugenerzeugen

Schema

Schema Schema Schema

CREATETABLE

CREATETABLE

CREATETABLE

SELECT SELECT SELECT

10s 35s 20s

Page 68: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: Verfahren (2)LegoDB: Verfahren (2)

Für jeden Knoten:Für jeden Knoten:•• Relationales SchemaRelationales Schema

erzeugenerzeugen

Schema

Schema Schema Schema

CREATETABLE

CREATETABLE

CREATETABLE

•• XQuery-LastprofilXQuery-Lastprofilnach SQL umsetzennach SQL umsetzen

SELECT SELECT SELECT

10s 35s 20s

Page 69: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: Verfahren (2)LegoDB: Verfahren (2)

Für jeden Knoten:Für jeden Knoten:•• Relationales SchemaRelationales Schema

erzeugenerzeugen

Schema

Schema Schema Schema

CREATETABLE

CREATETABLE

CREATETABLE

•• XQuery-LastprofilXQuery-Lastprofilnach SQL umsetzennach SQL umsetzen

•• Abbildung mitAbbildung mitrelationalemrelationalemOptimizer bewertenOptimizer bewerten

SELECT SELECT SELECT

10s 35s 20s

Page 70: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: Verfahren (2)LegoDB: Verfahren (2)

Für jeden Knoten:Für jeden Knoten:•• Relationales SchemaRelationales Schema

erzeugenerzeugen

Schema

Schema Schema Schema

CREATETABLE

CREATETABLE

CREATETABLE

•• XQuery-LastprofilXQuery-Lastprofilnach SQL umsetzennach SQL umsetzen

•• Abbildung mitAbbildung mitrelationalemrelationalemOptimizer bewertenOptimizer bewerten

SELECT SELECT SELECT

10s 35s 20s

Page 71: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

LegoDB: BewertungLegoDB: Bewertung

++ Leistungsfähige Abbildungen erzeugbarLeistungsfähige Abbildungen erzeugbar–– Bindung an DokumentklasseBindung an Dokumentklasse–– Aufwändige AnfrageverarbeitungAufwändige Anfrageverarbeitung

Page 72: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

ZusammenfassungZusammenfassung

•• Datenbanksysteme zur Speicherung vonDatenbanksysteme zur Speicherung vonXML-Daten geeignetXML-Daten geeignet

•• Verfügbarkeit unterschiedlicher AnsätzeVerfügbarkeit unterschiedlicher Ansätze–– modellorientiert, strukturorientiertmodellorientiert, strukturorientiert

•• Werkzeuge zum Vergleich von AnsätzenWerkzeuge zum Vergleich von Ansätzen•• Werkzeuge zur Unterstützung vonWerkzeuge zur Unterstützung von

AnwendungsentwicklernAnwendungsentwicklern

Page 73: Speicherung von XML in (objekt-)relationalen Datenbanken · Anforderungen (1) • Definition einer Abbildung von XML-Strukturen in ein Datenbankschema • Transformation von Dokumenten

Speicherung von XMLSpeicherung von XMLin (objekt-)relationalenin (objekt-)relationalen

DatenbankenDatenbanken

Burkhard SchäferBurkhard Schäfer