• Keine Ergebnisse gefunden

Speicherung von XML Speicherung von XML in (objekt-)relationalen in (objekt-)relationalen

N/A
N/A
Protected

Academic year: 2022

Aktie "Speicherung von XML Speicherung von XML in (objekt-)relationalen in (objekt-)relationalen"

Copied!
73
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Speicherung von XML Speicherung von XML in (objekt-)relationalen in (objekt-)relationalen

Datenbanken Datenbanken

Burkhard Schäfer Burkhard Schäfer

(2)

Übersicht Übersicht

•• MotivationMotivation

•• AnforderungenAnforderungen

•• AnsätzeAnsätze

modellorientiertmodellorientiert strukturorientiertstrukturorientiert

•• ZusammenfassungZusammenfassung

(3)

Motivation Motivation

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 XMLXMLXML (O)RDBS

(4)

Anforderungen (1) Anforderungen (1)

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

•• Transformation von DokumentenTransformation von Dokumenten

•• Transformation von AnfragenTransformation von Anfragen

(5)

Anforderungen (2) Anforderungen (2)

Definition eines Abbildungsschemas Definition eines Abbildungsschemas

•• Rückgewinnung des OriginaldokumentsRückgewinnung des Originaldokuments möglich

mö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

(6)

Anforderungen (3) Anforderungen (3)

Transformation von Dokumenten Transformation 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)

(7)

Anforderungen (4) Anforderungen (4)

Transformation von Anfragen Transformation 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 XML

nach XML

(8)

Naiver Ansatz Naiver Ansatz

•• Speichern des XML-Dokuments in einemSpeichern des XML-Dokuments in einem BLOB-Feld

BLOB-Feld

Documents (

Documents (docIDdocID, docContent), docContent)

(9)

Naiver Ansatz Naiver Ansatz

•• Speichern des XML-Dokuments in einemSpeichern des XML-Dokuments in einem BLOB-Feld

BLOB-Feld

Documents (

Documents (docIDdocID, docContent), docContent)

docID

docID docContentdocContent

47114711 <buch>

<titel>Professional XML</titel>

...

</buch>

<buch>

<titel>Professional XML</titel>

...

</buch>

(10)

Naiver Ansatz Naiver Ansatz

•• Speichern des XML-Dokuments in einemSpeichern des XML-Dokuments in einem BLOB-Feld

BLOB-Feld

Documents (

Documents (docIDdocID, docContent), docContent)

docID

docID docContentdocContent

47114711 <buch>

<titel>Professional XML</titel>

...

</buch>

<buch>

<titel>Professional XML</titel>

...

</buch>

•• niedriger Verwaltungsaufwandniedriger Verwaltungsaufwand

•• schwierige Anfrageverarbeitungschwierige Anfrageverarbeitung

(11)

Beispieldokument Beispieldokument

<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>

(12)

Baumdarstellung Baumdarstellung

“EUR”

“m”

“m”

(13)

Baumdarstellung Baumdarstellung

“EUR”

“m”

“m”

Wurzelknoten Wurzelknoten

(14)

Baumdarstellung Baumdarstellung

“EUR”

“m”

“m”

Elementknoten Elementknoten

(15)

Baumdarstellung Baumdarstellung

“EUR”

“m”

“m”

Attributknoten Attributknoten

(16)

Baumdarstellung Baumdarstellung

“EUR”

“m”

“m”

Textknoten Textknoten

(17)

Modellorientierte Ansätze Modellorientierte Ansätze

•• Ausnutzung der hierarchischen StrukturAusnutzung der hierarchischen Struktur von Dokumenten

von Dokumenten

•• Adressierung von Werten über Pfad imAdressierung von Werten über Pfad im Dokumentenbaum

Dokumentenbaum

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

(18)

XRel: Überblick XRel: Überblick

•• Charakterisierung eines DokumentsCharakterisierung eines Dokuments über

über KnotenKnoten des Baums des Baums

•• Ablage eines Pfadausdrucks zusammenAblage eines Pfadausdrucks zusammen mit dem Wert zur Beschreibung eines mit dem Wert zur Beschreibung eines

Knotens Knotens

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

(19)

XRel: Pfadausdrücke XRel: Pfadausdrücke

•• Beschreibung der Position einesBeschreibung der Position eines Knotens im Dokumentbaum

Knotens im Dokumentbaum

•• Syntax an XPath angelehntSyntax an XPath angelehnt

(20)

XRel: Pfadausdrücke XRel: Pfadausdrücke

•• Beschreibung der Position einesBeschreibung der Position eines Knotens im Dokumentbaum

Knotens im Dokumentbaum

•• Syntax an XPath angelehntSyntax an XPath angelehnt

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

| PfadAusdruck ‘#/’ Schritt | PfadAusdruck ‘#/’ Schritt

Schritt ::= Name Schritt ::= Name

| ‘@’ Name | ‘@’ Name

Name ::=

Name ::= XMLNameXMLName

(21)

XRel: Pfadausdrücke XRel: Pfadausdrücke

“EUR”

“m”

“m”

Beispiel:

Beispiel: #/ #/ #/ #/@#/ #/ #/ #/@buchbuch autorenautoren autorautor geschlechtgeschlecht Pfadausdrücke Pfadausdrücke nicht eindeutig nicht eindeutig

(22)

XRel: Pfadausdrücke XRel: Pfadausdrücke

“EUR”

“m”

“m”

Beispiel:

Beispiel: #/ #/ #/ #/@#/ #/ #/ #/@buchbuch autorenautoren autorautor geschlechtgeschlecht Pfadausdrücke Pfadausdrücke nicht eindeutig nicht eindeutig

(23)

XRel: Pfadausdrücke XRel: Pfadausdrücke

“EUR”

“m”

“m”

Beispiel:

Beispiel: #/ #/ #/ #/@#/ #/ #/ #/@buchbuch autorenautoren autorautor geschlechtgeschlecht Pfadausdrücke Pfadausdrücke nicht eindeutig nicht eindeutig

(24)

XRel: Pfadausdrücke XRel: Pfadausdrücke

“EUR”

“m”

“m”

Beispiel:

Beispiel: #/ #/ #/ #/@#/ #/ #/ #/@buchbuch autorenautoren autorautor geschlechtgeschlecht Pfadausdrücke Pfadausdrücke nicht eindeutig nicht eindeutig

(25)

XRel: Pfadausdrücke XRel: Pfadausdrücke

“EUR”

“m”

“m”

Beispiel:

Beispiel: #/ #/ #/ #/@#/ #/ #/ #/@buchbuch autorenautoren autorautor geschlechtgeschlecht Pfadausdrücke Pfadausdrücke nicht eindeutig nicht eindeutig

(26)

XRel: Pfadausdrücke XRel: Pfadausdrücke

“EUR”

“m”

“m”

Beispiel:

Beispiel: #/ #/ #/ #/@#/ #/ #/ #/@buchbuch autorenautoren autorautor geschlechtgeschlecht Pfadausdrücke Pfadausdrücke nicht eindeutig nicht eindeutig

(27)

XRel: Pfadausdrücke XRel: Pfadausdrücke

“EUR”

“m”

“m”

Beispiel:

Beispiel: #/ #/ #/ #/@#/ #/ #/ #/@buchbuch autorenautoren autorautor geschlechtgeschlecht Pfadausdrücke Pfadausdrücke nicht eindeutig nicht eindeutig

(28)

XRel: Pfadausdrücke XRel: Pfadausdrücke

“EUR”

“m”

“m”

Beispiel:

Beispiel: #/ #/ #/ #/@#/ #/ #/ #/@buchbuch autorenautoren autorautor geschlechtgeschlecht Pfadausdrücke Pfadausdrücke nicht eindeutig nicht eindeutig

(29)

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

•• Eine relationale Tabelle pro KnotentypEine relationale Tabelle pro Knotentyp

•• Ein Tupel pro KnotenEin Tupel pro Knoten

(30)

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)

(31)

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

(32)

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

(33)

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

1. Erzeugen der Pfadtabelle 1. Erzeugen der Pfadtabelle

(34)

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

1. Erzeugen der Pfadtabelle 1. Erzeugen der Pfadtabelle

pathID pathexp pathID 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#/vorname

10 #/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#/vorname

10 #/buch#/autoren#/autor#/nachname

(35)

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

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

<buch>

<titel>Professional XML</titel>

<isbn>1-861005-05-9</isbn>

<preis waehrung="EUR">60,44</preis>

...

</buch>

(36)

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

2. Erzeugen der Element-Tabelle 2. 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 reindex docID pathID start end index reindex

(37)

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

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

docID pathID start end index reindex docID pathID start end index reindex

<buch>

<titel>Professional XML</titel>

<isbn>1-861005-05-9</isbn>

<preis waehrung="EUR">60,44</preis>

...

</buch>

(38)

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

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

docID pathID start end index reindex docID 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

(39)

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

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

docID pathID start end index reindex docID 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

(40)

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

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

docID pathID start end index reindex docID 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

(41)

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

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

docID pathID start end index reindex docID 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

1 2 11 41 1 1 titel

(42)

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

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

docID pathID start end index reindex docID 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

1 2 11 41 1 1 titel

#/buch#/titel

#/buch#/titel

(43)

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

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

docID pathID start end index reindex docID 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

1 2 11 41 1 1 titel

(44)

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

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

docID pathID start end index reindex docID 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

1 2 11 41 1 1 titel

1 3 47 72 1 1 isbn

(45)

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

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

docID pathID start end index reindex docID 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

1 2 11 41 1 1 titel

1 3 47 72 1 1 isbn

#/buch#/titel

#/buch#/titel

(46)

docID pathID start end index reindex docID pathID start end index reindex

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

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

1 1 0 390 1 1

1 2 11 41 1 1

1 3 47 72 1 1

1 4 78 111 1 1

1 6 117 381 1 1

1 7 134 246 1 2

1 9 168 190 1 1

1 10 203 230 1 1

1 7 255 366 2 1

1 9 289 310 1 1

1 10 323 350 1 1

(47)

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

3. Erzeugen der Attribut-Tabelle 3. Erzeugen der Attribut-Tabelle

docID pathID start end value docID pathID start end value

1 5 79 79 EUR waehrung 1 8 134 134 m geschlecht 1 8 255 255 m geschlecht

4. Erzeugen der Text-Tabelle 4. Erzeugen der Text-Tabelle

docID pathID start end value docID pathID start end value

1 2 18 33 Professional XML 1 3 53 65 1-861005-05-9

1 4 99 103 60,44

(48)

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

•• Transformation von XPath-AusdrückenTransformation von XPath-Ausdrücken in SQL-Anweisungen

in 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

(49)

XRel: Anfrageverarbeitung (2)

XRel: Anfrageverarbeitung (2)

(50)

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

•• XPath-Ausdruck:XPath-Ausdruck:

//buchbuch/*//*/autorautor

(51)

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

•• XPath-Ausdruck:XPath-Ausdruck:

//buchbuch/*//*/autorautor

•• Ersetzungsergebnis:Ersetzungsergebnis:

#/#/buchbuch#%/#%/autorautor

(52)

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.end SELECT e.docID, e.start, e.end FROM Element e, Path p

FROM Element e, Path p WHERE e.pathID = p.pathID WHERE e.pathID = p.pathID AND

AND p.pathexp LIKE '#/buch#%/autor'p.pathexp LIKE '#/buch#%/autor' ORDER BY e.docID, e.start, e.end

ORDER BY e.docID, e.start, e.end

(53)

XRel: Bewertung XRel: Bewertung

++ Speicherung unterschiedlichSpeicherung unterschiedlich strukturierter Dokumente

strukturierter 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 gleichartigen Dokumenten

Dokumenten

(54)

Strukturorientierte Ansätze Strukturorientierte Ansätze

•• Nachbildung der logischenNachbildung der logischen Dokumentstruktur

Dokumentstruktur

Baumstruktur nur implizit vorhandenBaumstruktur nur implizit vorhanden

•• Spezialisierung auf bestimmte KlasseSpezialisierung auf bestimmte Klasse von Dokumenten

von Dokumenten

gestützt auf DTD oder XML Schemagestützt auf DTD oder XML Schema

(55)

XDatabase: Überblick XDatabase: Überblick

•• Analyse eines XML-SchemasAnalyse eines XML-Schemas

•• Erzeugung eines relationalenErzeugung eines relationalen Datenbankschemas

Datenbankschemas

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)

(56)

XDatabase: Typen XDatabase: Typen

•• Darstellung einfacher TypenDarstellung einfacher Typen

Verwendung von ConstraintsVerwendung von Constraints

CONSTRAINT CHECK (geschlecht IN CONSTRAINT 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

(57)

XDatabase: Beispiel XDatabase: 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)

(58)

XDatabase: Bewertung XDatabase: Bewertung

++ Abbildung von logischenAbbildung von logischen Zusammenhängen

Zusammenhängen

++ Robustheit durch starke TypisierungRobustheit durch starke Typisierung –– Anfrageverarbeitung sehr aufwändigAnfrageverarbeitung sehr aufwändig –– nur Dokumente einer Klasse ablegbarnur Dokumente einer Klasse ablegbar

(59)

LegoDB: Überblick LegoDB: Überblick

•• Ansatz zur automatischen BestimmungAnsatz zur automatischen Bestimmung optimierter Abbildungen

optimierter Abbildungen

•• Nutzung von Wissen über AnwendungNutzung von Wissen über Anwendung

DatenstrukturDatenstruktur

Typische BenutzerabläufeTypische Benutzerabläufe DatenverteilungDatenverteilung

(60)

LegoDB: Grundlagen LegoDB: Grundlagen

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

Zwei XML Schemata heißen genau dann äquivalent, wenn die Mengen gültiger Dokumente, die von

beiden 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 von

wenn die Mengen gültiger Dokumente, die von

beiden Schemata beschrieben werden, identisch sind.

beiden Schemata beschrieben werden, identisch sind.

(61)

LegoDB: Grundlagen LegoDB: Grundlagen

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

Zwei XML Schemata heißen genau dann äquivalent, wenn die Mengen gültiger Dokumente, die von

beiden 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 von

wenn die Mengen gültiger Dokumente, die von

beiden Schemata beschrieben werden, identisch sind.

beiden Schemata beschrieben werden, identisch sind.

•• ÄquivalenzumformungenÄquivalenzumformungen

Reguläre AusdrückeReguläre Ausdrücke TypdefinitionenTypdefinitionen

(62)

LegoDB: Eingabe LegoDB: Eingabe

•• Wissen über AnwendungWissen über Anwendung

XML SchemaXML Schema

XQuery LastprofilXQuery Lastprofil

Statistiken über DatenverteilungStatistiken über Datenverteilung

(63)

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

Schema

Äquivalenz-Äquivalenz-

umformungen auf umformungen auf XML Schemata

XML Schemata durchführen durchführen

SuchraumSuchraum aufspannen aufspannen

(64)

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

Schema

Äquivalenz-Äquivalenz-

umformungen auf umformungen auf XML Schemata

XML Schemata durchführen durchführen

SuchraumSuchraum aufspannen aufspannen

Schema Schema Schema

(65)

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

Schema

Äquivalenz-Äquivalenz-

umformungen auf umformungen auf XML Schemata

XML Schemata durchführen durchführen

SuchraumSuchraum aufspannen aufspannen

Schema Schema Schema

(66)

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

Für jeden Knoten:

Für jeden Knoten:

Relationales SchemaRelationales Schema erzeugen

erzeugen

Schema

Schema Schema Schema

SELECT SELECT SELECT

10s 35s 20s

(67)

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

Für jeden Knoten:

Für jeden Knoten:

Relationales SchemaRelationales Schema erzeugen

erzeugen

Schema

Schema Schema Schema CREATE

TABLE CREATE TABLE CREATE

TABLE

SELECT SELECT SELECT

10s 35s 20s

(68)

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

Für jeden Knoten:

Für jeden Knoten:

Relationales SchemaRelationales Schema erzeugen

erzeugen

Schema

Schema Schema Schema CREATE

TABLE CREATE TABLE CREATE

TABLE

XQuery-LastprofilXQuery-Lastprofil

nach SQL umsetzen nach SQL umsetzen

SELECT SELECT SELECT

10s 35s 20s

(69)

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

Für jeden Knoten:

Für jeden Knoten:

Relationales SchemaRelationales Schema erzeugen

erzeugen

Schema

Schema Schema Schema CREATE

TABLE CREATE TABLE CREATE

TABLE

XQuery-LastprofilXQuery-Lastprofil

nach SQL umsetzen nach SQL umsetzen

Abbildung mitAbbildung mit relationalem relationalem

Optimizer bewerten Optimizer bewerten

SELECT SELECT SELECT

10s 35s 20s

(70)

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

Für jeden Knoten:

Für jeden Knoten:

Relationales SchemaRelationales Schema erzeugen

erzeugen

Schema

Schema Schema Schema CREATE

TABLE CREATE TABLE CREATE

TABLE

XQuery-LastprofilXQuery-Lastprofil

nach SQL umsetzen nach SQL umsetzen

Abbildung mitAbbildung mit relationalem relationalem

Optimizer bewerten Optimizer bewerten

SELECT SELECT SELECT

10s 35s 20s

(71)

LegoDB: Bewertung LegoDB: Bewertung

++ Leistungsfähige Abbildungen erzeugbarLeistungsfähige Abbildungen erzeugbar –– Bindung an DokumentklasseBindung an Dokumentklasse

–– Aufwändige AnfrageverarbeitungAufwändige Anfrageverarbeitung

(72)

Zusammenfassung Zusammenfassung

•• Datenbanksysteme zur Speicherung vonDatenbanksysteme zur Speicherung von XML-Daten geeignet

XML-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 Anwendungsentwicklern

Anwendungsentwicklern

(73)

Speicherung von XML Speicherung von XML in (objekt-)relationalen in (objekt-)relationalen

Datenbanken Datenbanken

Burkhard Schäfer Burkhard Schäfer

Referenzen

ÄHNLICHE DOKUMENTE

&lt;!ELEMENT Book (Title, Author, Date, ISBN?, Publisher)&gt;.. &lt;!ELEMENT

Element Node: price NodeList Text Node: 11.95 NodeList. Element

• Tags haben logische oder visuelle Bedeutung.. AG Netzbasierte Informationssysteme http://www.ag-nbi.de

alle Zeichen erlaubt, die nicht ausdrücklich verboten.

&lt;!ELEMENT Book (Title, Author, Date, ISBN?, Publisher)&gt;. &lt;!ELEMENT

Wer hat Kontrolle über das Parsen: die Anwendung oder der

• Sobald der Parser eine syntaktische Einheit analysiert hat, benachrichtigt er die Anwendung und übergibt die entsprechende Analyse.. • Beachte: „Push” bezieht sich wiederum

&lt;!ELEMENT Book (Title, Author, Date, ISBN, Publisher)&gt;. &lt;!ELEMENT