1 / 62

XML-Updates und Schemaevolution

XML-Updates und Schemaevolution. Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de. Gliederung der Vorlesung. Motivation / Software Aging XML-Updates Sprachen Realisierung von Updates auf den verschiedenen Speicherungsformen

barbara
Download Presentation

XML-Updates und Schemaevolution

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML-Updates und Schemaevolution Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de

  2. Gliederung der Vorlesung • Motivation / Software Aging • XML-Updates • Sprachen • Realisierung von Updates auf den verschiedenen Speicherungsformen • Schemaevolution • Sprache • Realisierung • Durchführung auf den verschiedenen Speicherungsformen • Verbindung: Schemaevolution und Updates • Verbindung: Updates und Schemaevolution • Weiterführende Literatur Schemaevolution 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung XML-Updates

  3. Einleitung “Software aging will occur in all successful products" (David Lorge Parnas, 1994) • Software hat keine Verschleißteile • Software zeigt keine Abnutzungserscheinungen • Dennoch muss Software gewartet werden • Gründe: • von innen: Fehler in der Software • von außen: veränderte Umgebung, veränderte Anforderungen • Software altert auch, wenn sie nicht benutzt wird 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  4. Einleitung /2 • Es ist illusorisch zu denken, dass XML ohne Updates auskommt • In einigen Szenarien ist Update zwar nicht erforderlich (Beispiel Content Management, digitale Bibliotheken, Archive: Versionsverwaltung) • In vielen anderen braucht man die Möglichkeit zum XML-Update • Update verändert XML-Dokumente, auch Schemata unterliegen Veränderungen • Schemaevolution ist also ebenfalls erforderlich 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  5. Einleitung /3 • Ist Softwareänderung einfach? 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung Abbildung aus: Johannes Weidl-Rektenwald, Vorlesung: Software Aging

  6. Einleitung /4 • XQuery: • Working Draft für Erweiterung um Updates • zusätzlich: Requirements für Updates • Updatesprache beim W3C: erster Vorschlag : Januar 2006 • Updates Requirements: Working Draft, Juni 2005 • Sprachvorschläge zur Erweiterung von XQuery um Updateoperationen außerhalb des W3C, • mehrere verfügbar • teilweise in Systemen eingesetzt • alle haben ähnliche Operationen 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  7. XML-Updates • Sprachvorschläge: • Patrick Lehti: Design and Implementation of a Data Manipulation Processor for an XML Query Language, DA, TU Darmstadt, 2001 • Igor Tatarinow, et al. (Erweiterungen von Birger Hänsel) • XUpdate xml:db-Initiative • Updatesprache von Tamino, vorgestellt von Michael Gesmann auf der BTW 2003 • Realisierung auch möglich mit: • DOM: Änderungsoperationen • XSLT: Erzeugen eines neuen XML-Dokumentes • XQuery (Erzeugen eines neuen XML-Dokumentes in der return-Klausel) 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung XML-Updates

  8. Sprachvorschlag für Updates Nach Tatarinov: • DELETE child • Löscht den angegebenen Nachfolgerknoten des Kontextknotens • INSERT content [(BEFORE|AFTER) ref] • Erlaubt das Einfügen eines neuen Inhaltes neben dem Kontextknoten BEFORE/AFTER spezifiziert die Position • Sonst ergänzt INSERT nach dem letzten child-Knoten. • RENAME child TO name • Ordnet dem childknoten einen neuen Namen zu • REPLACE child WITH content • Ersetzt den child-Knoten durch den angegebenen Inhalt • (Operation kann auch durch 2 Operationen: INSERT BEFORE und DELETE ausgeführt werden. 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  9. XML-Updates nach Tatarinov et al. • Updates können • die Werte und • die Strukturinformationen • eines XML-Dokumentes verändern • Werden in XQuery-Statements eingebunden Für beides folgt anschließend ein Beispiel. 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  10. Update von XML-Dokumenten,Veränderung von Inhalten (Daten) buecher • Anfragebeispiel (Tatarinov) FOR $x IN document("buecher.xml"), $titel IN $x/buch/titelWHERE $titel="XML und Datenbanken"UPDATE $x{ REPLACE $titel/text() WITH "XML und Datenbanken – Konzepte, Sprachen und Systeme"} • beachtet werden muss: • Realisierung in den unterschied- lichen Speicherungsverfahren • Wohlgeformtheit der XML-Dokumente • Konsistenzerhaltung von Indizes, • Transaktionsverwaltung • … • Gültigkeit der XML-Dokumente 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung buch isbn titel autor 3-89864-148-1 XML und Datenbanken XML und DB – Konzepte, Sprachen und Systeme Holger Meyer Elementknoten Textknoten Attributknoten

  11. Update von XML-Dokumenten,Veränderung von Strukturen • Anfragebeispiel (Tatarinov) FOR $x IN document("buecher.xml"), $autor IN $x/buch/autorWHERE $x/buch/@isbn=" 3-89864-189-9"UPDATE $x{ RENAME $autor TO "editor"} • beachtet werden muss: • Realisierung in den unterschied- lichen Speicherungsverfahren • Konsistenzerhaltung von Indizes • Transaktionsverwaltung, • Wohlgeformtheit der XML-Dokumente • … • Gültigkeit der XML-Dokumente! buecher 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung buch editor isbn titel autor 3-89864-189-9 Web und Datenbanken Erhard Rahm Elementknoten Textknoten Attributknoten

  12. XQuery Update • Erster Sprachvorschlag vom 26. Januar 2006 • Aktueller Working Draft vom 28. August 2007 • Syntaxbeispiele: • replace fn:doc("bib.xml")/books/book[1]/publisher with fn:doc("bib.xml")/books/book[2]/publisher • rename fn:doc("books.xml")/book/author as "editor“ • insert <year>2005</year> after fn:doc("bib.xml")/books/book[1]/publisher • alle Operationen: • insertBefore, insertAfter, insertInto, insertIntoAsFirst, insertIntoAsLast, insertAttributes, delete, replaceNode, replaceValue, replaceElementContent, rename

  13. Updates auf vollständigen gespeicherten XML-Dokumenten /1 • Speicherungsmethode: • Speicherung der vollständigen XML-Dokumente und Indizierung 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung <hotel> <hotelname>Hotel Hübner</hotelname> Begriff Verweis <adresse> <plz>18119</plz> hotel <ort>Warnemünde</ort> Warnemünde <strasse>Seestraße</strasse> Rostock <nummer>12</nummer> ort </adresse> <anreisebeschreibung> anreisebeschreibung Aus Richtung Rostock kommend ... </anreisebeschreibung> </hotel>

  14. Updates auf vollständigen gespeicherten XML-Dokumenten /2 • Updates von Werten • Austausch der XML-Dokumente oder • sofern intern eine Binärstruktur verwendet wird, kann diese adaptiert werden • Aktualisierung des Indexes 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung <hotel> <hotelname>Hotel Hübner</hotelname> Begriff Verweis <adresse> <plz>18119</plz> hotel <ort>Warnemünde</ort> Warnemünde <strasse>Seestraße</strasse> Seestraße <nummer>12</nummer> ort </adresse> <anreisebeschreibung> anreisebeschreibung Aus Richtung Rostock kommend ... … </anreisebeschreibung> </hotel>

  15. So weit – so gut • Jetzt die Spezialfälle • Updates • verändern nicht nur die Werte • auch die Strukturinformationen d.h. XML-Dokumente, die vor dem Update gültig waren, können danach ungültig sein • Wir kommen auf diesen Punkt zurück! 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  16. Zusammenfassung zu Updateoperationen • zahlreiche Sprachvorschläge • einige Umsetzungen (z.B. in Tamino, Galax, Oracle) • in einigen Speicherungsformen effizient umsetzbar (generische Speicherung) • Teilweise vollständiger Austausch der XML-Dokumente notwendig (bei Speicherung als CLOB) • Bei strukturierter Speicherung sind einige Updates schwer realisierbar • noch offener Punkt: Schemakonformität nach Updates, Teil 4 der VL 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  17. Literatur zu XML-Updates • Igor Tatarinov, Zachary G. Ives, Alon Y. Halevy, Daniel S. Weld,Updating XML,Proceedings of the ACM SIGMOD International Conference on Management of Data, 2001 (Syntax einer Updatesprache, basierend auf XQuery) • Patrick Lehti: Design and Implementation of a Data Manipulation Processor for an XML Query Language, DA, TU Darmstadt, 2001 • Birger Hänsel,Änderungsoperationen in XML-Anfragesprachen,Diplomarbeit, Universität Rostock, Fachbereich Informatik,2002 (Implementierung der Updatesprache von Tatarinov) • Björn Below, Effiziente XML-Speicherung und XQuery-Auswertung mit Oracle9i, Diplomarbeit, Universität Rostock, 2003 (Implementierung für Oracle) 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  18. Schemaevolution • Einordnung von Updates und Evolution in den Softwarelebenszyklus 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung XML-Schema- Evolution XML-Update

  19. XML-Schema-Evolution • Alles, was zum Software-Aging gesagt wurde, ist auch die Motivation, warum man Schemaevolution für XML-Anwendungen braucht • Und zusätzlich: Informationen im Web unterliegen besonders häufig und in kurzen Abständen Änderungen. • Was denkt man über Webseiten, die • älter als 1 Jahr • älter als 3 Jahre • älter als 5 Jahre • sind? Schemaevolution 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  20. Zum Vergleich – Update und Evolution in Datenbanken In Datenbanken: • Update: Veränderung der Daten update literaturdatenbank set lehrstuhl=„dbis“ where (lehrstuhl=“db“) OR (lehrstuhl=“Datenbanken“) • Evolution: Änderung des Schemas: Beispiel alter table literaturdatenbank add column institut VARCHAR(20) • beides ist im SQL-Standard enthalten • Update ist eine häufige Operation • Evolution sollte (im Idealfall) sehr selten ausgeführt werden 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  21. Evolution von DTDs und XML-Schema • Ziel: • Anpassung des Schemas an neue Bedingungen • Korrektur von Fehlern im Schema • Syntaktisch wird das realisiert: • DTDs: DTD-Prozessoren • XML-Schema: aufgrund der XML-Syntax mit XML-Updatemethoden (XML-Updatesprachen, DOM, XSLT) • Weiterhin möchte man aber die dem Schema zugeordneten XML-Dokumente anpassen 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  22. Schemaevolution: insert-before 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  23. Schemaevolution: delete 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  24. Verbindung zwischen Schemaevolution und Updates • Schemaänderung, • Überprüfung und Anpassung der zugehörigen XML-Dokumente 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung 1 Evolution Altes Schema Neues Schema 2 Update XML- Veränderte XML-Dokumente Dokumente

  25. Verbindung zwischen Schemaevolution und Updates • Schemaänderung, • Überprüfung und Anpassung der zugehörigen XML-Dokumente 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung Evolution Gültigkeit muss durch Updates wiederhergestellt werden Gültigkeit ist gegeben XML- Schema XML- Schema Updates XML-Dokumente XML-Dokumente

  26. Durchführung der Evolution • Vorüberlegung: welche Änderungen können auftreten • Sprache zur Beschreibung von Schemaänderungen • Realisierung der Schemaänderungen • Veränderung des Schemas • Überprüfen der Gültigkeit der XML-Dokumente • Ggf. Realisierung von Änderungen der XML-Dokumente, dafür lassen sich Updates einsetzen • Probleme dabei: • reihenfolgenabhängig • Jede Schemaevolution ist kapazitätserweiternd, -reduzierend, -erhaltend, oder –ändernd 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  27. kapazitätserweiternd informationserweiternd kapazitätserhaltend informationserhaltend kapazitätsreduzierend informationsreduzierend kapazitätsverändernd informationsverändernd Zusammenhang: Kapazität und Informationsgehalt /1 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  28. Zusammenhang: Kapazität und Informationsgehalt /2 <xs:element name="author“ maxOccurs= "unbounded"> <xs:element name="author“ maxOccurs= „1“> 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung Evolution Schema Schema <author> V. Meyer </author> Kein Update <author> V. Meyer </author> XML-Dokument 1 <author> A. Schulz </author> <author> B. Schmidt </author> XML-Dokument 1 <author> A. Schulz </author> Update XML-Dokument 2 XML-Dokument 2 • Kapazitätsreduktion kann im XML-Dokument eine • Informationsreduktion oder Informationserhaltung nach sich ziehen! • deshalb Überprüfung der XML-Dokumente notwendig

  29. Gültigkeit der XML-Dokumente nach Schemaevolution • „normale“ Validierung: Dokument nicht gültig, reicht nicht aus und ist außerdem ineffizient • Inkrementelle Validierung: • Voraussetzung: • XML-Dokumente waren bezüglich des alten Schemas gültig • Vorgehensweise: • Schema wird weiterentwickelt • Validierung der XML-Dokumente nur für die veränderten Anteile • Dazu: Liste von Constraints und Pfadinformationen werden erstellt • entsprechende Knoten in den XML-Dokumenten werden gesucht und mit den Eigenschaften der Constraints verglichen • Sind die Eigenschaften erfüllt, dann ist der Knoten im XML-Dokument gültig bezüglich des geänderten Schemas • andernfalls: Anpassung der XML-Dokumente 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  30. Constraints 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung Validierung erfolgt auf einem Pfad durch diese angegebenen Constraints

  31. Alternatives Herangehen • Nicht zweistufiges Verfahren • Test der Dokumente und ggf. • Update • Sondern • Updateoperation anreichern (Test verschiedener Bedingungen ist in Updates enthalten) • Updates werden immer ausgeführt • Updateoperation wird aber nur dann wirkungsvoll, wenn die Bedingungen erfüllt sind • ähnlich bei Elke Rundensteiner et al. für Updaterealisierung vorgeschlagen (safe updates), lässt sich hier auch anwenden • Methode ist eleganter und hat Vorteile, wenn Updates effizient umsetzbar sind • wenn Anfragen wesentlich besser realisierbar sind als Updates ist zweistufiges Vorgehen günstiger 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  32. Schemaevolution für gespeicherte XML-Dokumente /1 • Methode: Speicherung der XML-Dokumente als Ganzes und Indizierung (textbasierte native Speicherung) • Schemaevolution: • gespeichertes Schema wird ausgetauscht • inkrementelle Validierung ermittelt zu überprüfende Knoten (durch Anfragen an die gespeicherten XML-Dokumente) • muss ein XML-Dokument adaptiert werden, dann Austausch des gesamten XML-Dokumentes • Indizes werden aktualisiert 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung <hotel> <hotelname>Hotel Hübner</hotelname> Begriff Verweis <adresse> <plz>18119</plz> hotel <ort>Warnemünde</ort> Warnemünde <strasse>Seestraße</strasse> Rostock <nummer>12</nummer> ort </adresse> <anreisebeschreibung> anreisebeschreibung Aus Richtung Rostock kommend ... </anreisebeschreibung> </hotel>

  33. Updates auf vollständigen gespeicherten XML-Dokumenten /2 • Updates von Strukturen • Austausch der XML-Dokumente bzw. Anpassung der Binärstruktur • Aktualisierung des Indexes 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung <hotel> <hotelname>Hotel Hübner</hotelname> Begriff Verweis <url>www.hotel-huebner.de</url> <adresse> hotel <plz>18119</plz> Warnemünde <ort>Warnemünde</ort> Seestraße <strasse>Seestraße</strasse> ort <nummer>12</nummer> </adresse> anreisebeschreibung <anreisebeschreibung> url Aus Richtung Rostock kommend ... … </anreisebeschreibung> </hotel>

  34. Updates auf generisch gespeicherten XML-Dokumenten /1 • Speicherungsmethode: Generische Speicherung oder persistente DOM-Speicherung • Beispiel: 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung <hotel url="www.hotel-huebner.de"> <hotelname>Hotel Hübner </hotelname> <adresse> <plz>18119</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> ... </adresse> … </hotel>

  35. Updates auf generisch gespeicherten XML-Dokumenten /2 • Updates von Strukturen: • Beispiel (Einfügen eines Elementes: url) • lokal realisierbar (aufgrund der fragmentierten Speicherung) • effiziente Ausführung 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  36. Schemaevolution für gespeicherte XML-Dokumente /2 • Methode: Generische Speicherung • Schemaevolution: • sofern Schema gespeichert ist, Austausch notwendig • inkrementelle Validierung ermittelt die zu prüfenden Anteile der XML-Dokumente • Anfragen an gespeicherte XML-Dokumente werden gestellt, testen Constraints auf den XML-Dokumenten • Adaption eines XML-Dokumentes (sofern erforderlich ) erfolgt durch generierte Updateoperationen, sehr effizient umsetzbar Alternatives Herangehen: • Updates durch zu überprüfende Constraints erweitern und auf allen XML-Dokumenten ausführen 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  37. Updates auf strukturiert gespeicherten XML-Dokumenten /1 • Speicherungsmethode: • Strukturierte Speicherung der XML-Dokumente in Datenbanken 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  38. Updates auf strukturiert gespeicherten XML-Dokumenten /2 • Updates von Strukturen: • Teilweise auch durch Updateoperationen ausführbar (zum Beispiel: Knoten löschen, Nullwert in Relation einfügen) • Teilweise nicht ausführbar oder nur durch Änderung des Datenbankschemas 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  39. Schemaevolution für gespeicherte XML-Dokumente /3 • Methode: Strukturierte Speicherung in Datenbanken • Schemaevolution: • Schema der Datenbank muss verändert werden, • dazu Übersetzung von XML-Schemaevolutionsschritte in Datenbankevolutionsschritte (alter table add/modify/drop column ...) • Diese Datenbankevolutionsschritte fangen dann auch die Veränderungen der in den Relationen gespeicherten XML-Dokumente ab • es erfolgt also keine inkrementelle Validierung, das Update der gespeicherten XML-Dokumente wird über die Datenbankevolution realisiert 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  40. Versionierung statt Schemaevolution Schemaevolution: sehr komplexe Operation • Anpassungen der XML-Dokumente sind notwendig • Bei keiner Speicherungsvariante der XML-Dokumente einfach umsetzbar Versionierung erfordert keine Evolutionsschritte und keine Anpassungen der XML-Dokumente • bedeutet aber, dass man dauerhaft mehrere Versionen verarbeiten muss • Also: XML-Anfragen an verschiedene Versionen einer XML-Dokumentkollektion stellen und Ergebnisse zusammenführen • Anwendungen (Bsp. XSLT) müssen mehrere Versionen verarbeiten • Versionierung hat in einigen Fällen Vorteile, besonders wenn XML-Dokumente nicht verändert werden sollen • ersetzt aber nicht in allen Fällen die Schemaevolution 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  41. Einordnung in den Softwarelebenszyklus Anforderungsanalyse Analyse Entwurf Redesign Implementierung Test Inbetriebnahme Redesign Wartung

  42. ... besser repräsentiert im Spiralmodell

  43. Einsatz eines konzeptionellen Modells zur Evolution Evolution ist eine mindestens genauso schwere Aufgabe wie der Entwurf • Gleiche Unterstützung ist erwünscht, bisher: Entwurf Evolution change fn:doc("news.xsd")//xs:element [@name="autor"]/@name to "verfasser" insert <xs:element name="telefonnummer" type="xs:int"> after fn:doc("news.xsd") //xs:element[@name="agentur"]

  44. Schemaevolution auf einem konzeptionellem Modell • Ableitung Evolutionsschritte aus dem konzeptionellen Modell (= Entwurfsschritte des Anwenders) • Zusammenfassung der Entwurfsschritte • Übersetzung in XML-Schemaevolutionsschritte • dazu Entwicklung einer Schemaevolutionssprache • Generieren von XML-Updates dazu Entwurfs- schritte Konzeptionelles Modell Version i Minimalisierte Menge der Entwurfsschritte: add_element, delete_edge, move_module, .. Konzeptionelles Modell Version i+1 Schemaevolutions- schritte: add, delete, move, … XML-Schema Version i XML-Schema Version i+1 XML-Dokumente XML-Dokumente

  45. Exkurs • Interessanterweise auch in anderen Bereichen: • Beispiel Datenbanken • Entwurf: • Evolution: • ALTER TABLE … ADD COLUMN … • ALTER TABLE … ALTER COLUMN … • Einzige Ausnahme: DBMAIN

  46. Weiterführende Literatur zu XML-Schemaevolution • Béatrice Bouchou, Denio Duarte, Mírian Halfeld Ferrari Alves, Dominique Laurent and Martin Musicante: Schema Evolution for XML: A Consistency-preserving Approach. 29th International Symposium, Mathematical Foundations of Computer Science MFCS 2004 • Diane Kramer: XEM: XML Evolution Management, Masters Thesis, Worchester Polytechnic Institute, 2001 • Hong Su, Diane K. Kramer, Elke A. Rundensteiner, XEM: XML Evolution Management, Computer Science Technical Report Series, Worchester Polytechnic Institute, WPI-CS-TR-02-09 • Andre Zeitz,Evolution von XML-Dokumenten,Studienarbeit, Universität Rostock, Fachbereich Informatik,2001 (Evolution von DTDs, Betrachtung der auftretenden Fälle) • Rasmus Faust,Prolog-basierte Modellierung von Format-Evolution,Universität Rostock, Fachbereich Informatik,2001 (Sprache zur Beschreibung von Schemaänderungen, basierend auf Grammatiken, Implementierung mit Prolog) • Tobias Tiedt: Schemaevolution und Adaption von XML-Dokumenten und XQuery-Anfragen, Diplomarbeit, Fakultät für Informatik und Elektrotechnik, 2005 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  47. Umsetzung der Schemaevolution in Systemen Oracle: Schemaevolution seit Version 10g: • Speicherung der XML-Dokumente als CLOB: Schemaevolution hat keine Auswirkungen, neue und alte Dokumente werden in der gleichen Relation/ im gleichen Attribut gespeichert • Objektrelationale Speicherung: 2 Fälle: • Alte Struktur soll neben der neuen weiterexistieren = Versionierung • Anschließend existieren beide Speicherungsformen in der DB (zum Beispiel in 2 Relationen) • Neue Struktur soll alte ersetzen • Dokumente entladen, transformieren, neu laden • in Oracle 10 automatisiert, Eingabeparameter: neues Schema und XSL-Stylesheets MS SQL Server 2005 • Zuordnung von mehreren Schemata zu einem Datentyp XML • Dadurch ist eine Versionierung mögich • Anpassung der XML-Dokumente an das neue Schema erfolgt dabei nicht 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung

  48. Verbindung zwischen Updatesund Schemaevolution • Wir hatten noch einen offenen Punkt: • XML-Updates, die das Schema verändern! Verschiedene Realisierungen sind dazu vorstellbar; diese folgen anschließend • Dazu betrachtetes Beispiel: • Löschen eines Titels in einem Dokument FOR $x IN document("buecher.xml"), $titel IN $x/buch/titelWHERE $x/@isbn="i1234-4567"UPDATE $x{ DELETE $title} 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung Schemaevolution XML-Updates

  49. Updates von Struktur, Variante 1 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung 1. Variante: Abweisen von Updates, die die Gültigkeit verletzen Schema • Realisierung: • Validierung gegen das Schema vor Umsetzung des Updates • Beispieloperation (Löschen des Titels wird abgewiesen) • Vor- und Nachteile: • alle gespeicherten XML-Dokumente sind schemakonform • nicht alle Updates können umgesetzt werden • Einsatz: • Tamino, XOBEDBPL, Uni Kiel XML- Dokumente Abweisen der Operation Update (Strukturänderung)

  50. Updates von Struktur, Variante 2 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung 2. Variante: Durchführen von Updates, auch wenn sie die Gültigkeit verletzen Schema • Realisierung: • Einfach, keine Validierung gegen das Schema erforderlich • Beispieloperation (Löschen des Titels wird durchgeführt) • Vor- und Nachteile: • Alle Updates können umgesetzt werden • Nicht alle gespeicherten XML-Dokumente sind schemakonform • (anschließende Schemaableitung möglich) • Einsatz: • eXcelon Verletzung der Gültigkeit XML- Dokumente Update (Strukturänderung)

More Related