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

Slides:



Advertisements
Ähnliche Präsentationen
Indizierung von Graphen durch häufige Subgraphen (2)
Advertisements

PlanetenWachHundNetz Instrumenting Infrastructure for PlanetLab.
Musterlösung IT-Struktur an Schulen © Zentrale Planungsgruppe Netze am Kultusministerium Baden-Württemberg Serverpflege Autor: Michael Stütz.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Sortieren mit Binären Bäumen
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
DOM (Document Object Model)
ATHOS Benutzertreffen 27.September Report of the Lab Glashütten, 27.September 2007 HighQSoft GmbH, Karst Schaap
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Einführung XML XML Einführung Andreas Leicht.
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Übung Datenbanksysteme SQL-Anfragen (2)
Geometrische Objekte in Datenbanken Martin Pfeifle Institut für Informatik, Universität München Lehr- und Forschungseinheit für Datenbanksysteme Prof.
Access 2000 Datenbanken.
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Arbeiten mit SQL in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow SQL.
Einführung und Überblick
objekt-relationale Datenbanken
- Schnittmengenbildung -
SEP Halgurt Mustafa Ali Can Önder Marius Morawski Matthias Seidl Themen: Integration von RDQL und OWQL innerhalb des Apache Cocoon Frameworks Semantische.
Quilt: Eine XML Anfragesprache für heterogene Datenquellen
Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.
XML-Archivierung betriebswirtschaftlicher Datenbank-Objekte*
EXPLAIN PLAN - Erste Schritte April 2004EXPLAIN PLAN2 Was fehlt noch? Konkretes Beispiel für einen Plan.
Einführung in die Programmierung
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #4 SQL (Teil 1).
CGI (Common Gateway Interface)
Allgemeines zu Datenbanken
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Datenbanksysteme für hörer anderer Fachrichtungen
Freiwillige Feuerwehr der Stadt Perg
Von Isabelle Spörl und Simon Schausberger
Relationales Datenmodell ist beherrschend: –Riesige Datenbestände und damit hohe Investitionen. –Die große Mehrzahl der Anwendungen arbeitet mit weitgehend.
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
Das relationale Modell
verstehen planen bearbeiten
Algorithmen und Datenstrukturen Übungsmodul 11
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Structured Query Language
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
Einführung Dateisystem <-> Datenbanksystem
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Datenbanken abfragen mit SQL
X. Übungsblatt – Aufgabe X a)Erstellen Sie den Huffman-Codierungsbaum für die folgende Zeichenkette: ABRAKADABRASIMSALABIM Vorgehensweise: 1.Tabelle mit.
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl
Arbeiten mit WordSmith 4. Inhalt 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus) 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus)
Anforderungen an die neue Datenstruktur
SQL Basics Schulung –
Das IT - Informationssystem
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Indexierung Oracle: indexes Indexierung.
Datenbanken Von Amed und Alicia.
 Präsentation transkript:

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

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

Was wird dazu benötigt ? Sprache I.Sprache für die Spezifizierung der Konvertierung von rel. Daten in XML Implementation II.Eine effiziente Implementation dieser Konvertierung

2. Wiederholung XML Semistrukturiert Tags kennzeichnen Elemente Elemente sind geschachtelt angeordnet

John Doe // first purchase order 1 Jan 2000 shoes bungee ropes // second purchase order … Beispiel Customer ( idinteger, namevarchar(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) )

3. Einstieg Verwendung der bestehenden SQLanguage Verschachtelung durch SQL-Struktur Konstruktion von Tags durch SQL-Funktionen

Verschachtelte Struktur XMLAGG konkateniert XML Elemente Verwendung von XML Konstruktoren

XML- Konstruktor Parameter werden in festgelegte Tags eingebunden

4. Alternativen der Konvertierung Klassifizierung der Alternativen Ort der Berechnung ( inside / outside ) Geschachtelte Struktur erstellen ( structuring ) Tags müssen erstellt werden ( tagging )

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

Verwendung vieler queries umgehen, indem nur noch eine große query erstellt wird ( siehe Bsp. )siehe Bsp. Correlated CLOB ( inside ) Feste Zuordnung ( correlated ) erfordert Schleifen zur Schachtelung XML Fragmente werden als CLOBs ( Character Large Objects ) gespeichert ( teuer )

Grafik: correlated CLOB

keine feste Zuordnung De-Correlated CLOB ( inside) auch Speicherung in CLOBs Verwendung von outer joins

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 )

Grafik: de-correlated CLOB

Late Tagging, Late Structuring Erstellen der relationalen Daten ( content creation ) Strukturieren und Tags schreiben ( structuring / tagging ) Unterteilung in 2 wesentliche Prozesse

Zusammenfügen aller tables ( join all ) Redundant Relation Content Creation: Redundant Relation Multiplikative Vergößerung ( schlecht ) Man erhält redundante Daten Verwendung redundanter Prozesse

Ast wird separat geführt, keine Daten vom Nachbarn Content creation: Outer Union ( unsorted ) Outer Union Nicht immer einheitliche Größe Immer noch Redundanz ( parent Daten ) Zusammenführung aller Daten am Ende

Path - outer - union Path Es wird am Pfad entlang entwickelt Wiederholung von parent - Daten ( s.o. ) PATH - NODE Node - outer - unionNode Parent Daten direkt ins outer union schreiben große Anzahl an Tupeln

Grafik: Path Outer Union

Grafik: Node Outer Union

hash-basierter Tagger Gruppierung der Elemente mittels Hash-Tabellen Effizient bei genügend Speicher Tupel lösen und Tags setzten Structuring/Tagging

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) hashing tagging Tupel lösen und Tags nach Typ setzten

Late Tagging, Early Structuring Late Tagging, Late Structuring benötigt viel Speicher um effizient zu sein Sortierung bereits im content creation

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 )

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 )

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

5. Beurteilung der Effizienz Verwendetes System DB2 Pentium 366 / 256 MB / Win NT 4.0 alle Funktionen innerhalb der Maschine

Verwendung ausgeglichener Strukturen Messvorbereitung Einführung von Parametern

Inside Engine (query fan out) Outside Engine Ergebnisse ( inside - outside ) Weitere Test inside the engine !

Was kostet Wieviel ? Execution Bind out Tagging XML File

Änderung am query fan out mehr joins corr CLOB am schlechtesten ( loop joins ) unsorted besser als sorted o-u-plan

Änderung an der query depth Fehler des rel. Optimierers Sortierung nach XMLAGG ( CLOB )

Änderung an der number of roots kaum Auswirkungen correlated CLOB

Änderung an der number of leaf tuples (+) Speicher: kaum Auswirkung (-) Speicher: unsort.o-u => kein Ergebnis

Vergleich path & node outer union (+) Speicher: path outer union weniger Tupel müssen gebildet werden (-) Speicher: node outer union mehr redundante Daten overhead beim Auslagern

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

Überblick: Alternativen Late TaggingEarly Tagging Late Structuring Early Structuring Inside Engine De-Correlated CLOB Outside Engine Stored Procedure Inside Engine Outside Engine Sorted Outer Union (Tagging inside) Sorted Outer Union (Tagging outside) Unsorted Outer Union (Tagging inside) Unsorted Outer Union (Tagging outside) Outside Engine Correlated CLOB

6. Kommentar und Zukunft Parallelmaschinen Laufzeitoperatoren innerhalb der engine Speicherverwaltung Tagger verbessern ( tiefe Strukturen )