40
Efficiently Publishing Relational Data as XML Documents uptseminar: Datenbanksysteme und X Dennis Säring

Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Embed Size (px)

Citation preview

Page 1: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Efficiently Publishing Relational Data as XML Documents

Hauptseminar: Datenbanksysteme und XML

Dennis Säring

Page 2: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Inhaltsverzeichnis

1.      Motivation

2.      kurze Wiederholung von XML

3.      Ein Beispiel kurz erläutert mit Quellcode belegt

4.      Ausführliche Vorstellung der Alternativen

5.      Beurteilung der Effizienz aller Alternativen

6.      Abschließender Kommentar und Ansätze für die

Zukunft

7.      Referenzen

8.      Diskussion

Page 3: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

1. Motivation & Einführung

XML als kommender Standard, Daten im WWW zu veröffentlichen

Relationale Datenbanken als Industriestandard

Suche nach einer Lösung relationale Daten

in XML – Form zu konvertieren

Page 4: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Was wird dazu benötigt ?

I. SpracheSprache für die Spezifizierung der Konvertierung von rel. Daten in XML

II. Eine effiziente ImplementationImplementation dieser Konvertierung

Page 5: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

2. Wiederholung XML Semistrukturiert

Tags kennzeichnen Elemente

Elemente sind geschachtelt angeordnet

Page 6: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

<customer id=“C1“> <name> John Doe </name>

<accounts>

<account id=”A1”> 1894654 </account> <account id=”A2”> 3849342 </account> </accounts>

<porders> <porder id=”P01” acct=”A2”> // first purchase order <date> 1 Jan 2000 </date>

<items> <item id=”I1”> shoes </item> <item id=”I2”> bungee ropes </items> </items>

<payments> <payment id=”P1” due Jan 15 </payment> <payment id=”P2” due Jan 20 </payment> <payment id=”P3” due Feb 15 </payment> </payments>

</porders> <porder id=”P02” acct=”A1”> // second purchase order … </porder></customer>

Beispiel

Customer ( id integer, name varchar(20) )

Account ( id varchar(20), custId integer, acctnum integer )

PurchOrder ( id integer, custId integer, acctId varchar(20), date varchar(10) )

Item ( id integer, poId integer, desc varchar(10) )

Payment ( id integer, poId integer, desc varchar(10) )

Page 7: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

3. Einstieg

Verwendung der bestehenden SQLanguage

Verschachtelung durch SQL-Struktur

Konstruktion von Tags durch SQL-Funktionen

Page 8: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Verschachtelte Struktur

XMLAGG konkateniert XML Elemente

Verwendung von XML Konstruktoren

Page 9: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

XML-Konstruktor

Parameter werden in festgelegte Tags eingebunden

Page 10: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

4. Alternativen der KonvertierungKlassifizierung der Alternativen

Ort der Berechnung ( inside / outside )

Geschachtelte Struktur erstellen ( structuring )

Tags müssen erstellt werden ( tagging )

Page 11: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Early Tagging, Early Structuring

Stored Procedure (outside engine)

Feste Ordnung beim join ( schlecht )

Zu viele SQL-queries nötig ( overhead )

Iterative Schachtelung aller in Relation stehenden Elemente

Startpunkt: root-Element

Page 12: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Verwendung vieler queries umgehen, indem nur noch eine große query erstellt wird ( siehe Bsp. )

Correlated CLOB ( inside )

Feste Zuordnung ( correlated ) erfordert Schleifen

zur Schachtelung

XML Fragmente werden als CLOBs

( Character Large Objects ) gespeichert ( teuer )

Page 13: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Grafik: correlated CLOB

Page 14: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

keine feste Zuordnung

De-Correlated CLOB ( inside)

auch Speicherung in CLOBs

Verwendung von outer joins

Page 15: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Outer Join 2 od. Mehrere Tabellen werden durch einen Join

zusammengefaßt

Elemente die nicht der join-condition nicht entsprechen

werden:

Inner Join

left / right Outer Join

full Outer Join ( Outer Join )

Page 16: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Grafik: de-correlated CLOB

Page 17: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Late Tagging, Late Structuring

Erstellen der relationalen Daten ( content creation )

Strukturieren und Tags schreiben

( structuring / tagging )

Unterteilung in 2 wesentliche Prozesse

Page 18: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Zusammenfügen aller tables ( join all )

Content Creation: Redundant RelationRedundant Relation

Multiplikative Vergößerung ( schlecht )

Man erhält redundante Daten

Verwendung redundanter Prozesse

Page 19: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Ast wird separat geführt, keine Daten vom Nachbarn

Content creation: Outer Union ( unsorted )

Nicht immer einheitliche Größe

Immer noch Redundanz ( parent Daten )

Zusammenführung aller Daten am Ende

Page 20: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Path - outer - union Es wird am Pfad entlang entwickelt Wiederholung von parent - Daten ( s.o. )

PATH - NODE

Node - outer - union Parent Daten direkt ins outer union schreiben große Anzahl an Tupeln

Page 21: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Grafik: Path Outer Union

Page 22: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Grafik: Node Outer Union

Page 23: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

hash-basierter Tagger

Gruppierung der Elemente mittels Hash-Tabellen

Effizient bei genügend Speicher

Tupel lösen und Tags setzten

Structuring/Tagging

Page 24: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Grafik: Hash - Tables

Customer ( ID,Typ)PurchaseOrder ( custID,Typ)

Account ( custID,Typ)Item ( PoID,Typ)

Payment ( PoID,Typ)

HashTable (Customer)HashTable (PurchaseOrd)HashTable (root)

??? ( AcctID,Typ)

HashTable (Account)

??? ( AcctID,Typ)

??? ( AcctID,Typ)

hashing

tagging

Tupel lösen und Tags nach Typ setzten

Page 25: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Late Tagging, Early Structuring

Late Tagging, Late Structuring benötigt viel Speicher um effizient zu sein

Sortierung bereits im content creation

Page 26: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Folgende Dinge müssen beachtet werden

Structured content: Sorted Outer Union

Parent Informationen kommen vor den child Infos Alle Informationen eines Knotens gehören

zusammen

Sortierung des path-outer-union Ergebnis

( sortiert nach Ids )

Page 27: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Sorted Outer Union

Outer Union

Order by: custId, poDate, poId, acctId, payId, itemId

( type, custId, custName, acctId, acctNum, poId, poAcct, poDate, itemId, itemInfo, payId, payInfo )

( type, custId, custName, acctId, acctNum, poId, poAcct, poDate, itemId, itemInfo, payId, payInfo )

    

 

Page 28: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Tags werden sofort nach auslesen gesetzt

Tagging Sorted Data: Constant Space Tagger

Platz - konstant in Anzahl der Levels

Nur Parent Id merken um Tag zu schließen

Page 29: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

5. Beurteilung der Effizienz

Verwendetes System

DB2

Pentium 366 / 256 MB / Win NT 4.0

alle Funktionen innerhalb der Maschine

Page 30: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Verwendung ausgeglichener Strukturen

Messvorbereitung

Einführung von Parametern

Page 31: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Inside Engine (query fan out)

Outside Engine

Ergebnisse ( inside - outside )

Weitere Test inside the engine !

Page 32: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Was kostet Wieviel ?

Execution

Bind out

Tagging

XML File

Page 33: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Änderung am query fan out

mehr joins

corr CLOB am schlechtesten ( loop joins )

unsorted besser als sorted o-u-plan

Page 34: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Änderung an der query depth

Fehler des rel. Optimierers

Sortierung nach XMLAGG ( CLOB )

Page 35: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Änderung an der number of roots

kaum Auswirkungen

correlated CLOB

Page 36: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Änderung an der number of leaf tuples

(+) Speicher: kaum Auswirkung

(-) Speicher: unsort.o-u => kein Ergebnis

Page 37: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Vergleich path & nodeouter union

(+) Speicher: path outer union

weniger Tupel müssen gebildet werden

(-) Speicher: node outer union

mehr redundante Daten

overhead beim Auslagern

Page 38: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Zusammenfassung der Ergebnisse

Inside the engine ist effizienter Bei genügend Speicher liegen die

Unsorted Outer Union Ansätze vorn Zu wenig Speicher: Sorted Outer Union

Page 39: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

Überblick: AlternativenLate TaggingEarly Tagging

LateStructuring

EarlyStructuring

Inside Engine

Inside Engine

De-Correlated CLOB

Out

side

Eng

ine

Stored Procedure

Inside Engine

Out

side

Eng

ine

Sorted Outer Union(Tagging inside)

Sorted Outer Union(Tagging outside)

Unsorted Outer Union(Tagging inside)

Unsorted Outer Union(Tagging outside)

Out

side

Eng

ine

Correlated CLOB

Page 40: Efficiently Publishing Relational Data as XML Documents Hauptseminar: Datenbanksysteme und XML Dennis Säring

6. Kommentar und Zukunft

Parallelmaschinen Laufzeitoperatoren innerhalb der engine Speicherverwaltung Tagger verbessern ( tiefe Strukturen )