620 likes | 785 Views
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
E N D
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 • 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
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
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
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
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
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
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
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
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
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
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
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>
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>
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
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
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
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
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
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
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
Schemaevolution: insert-before 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung
Schemaevolution: delete 0. Motivation 1. Updates - Sprachen - Realisierung 2. Schemaevolution - Sprache - Realisierung 3. Verbindung: Schemaevolution und Updates 4. Verbindung: Updates und Schemaevolution Zusammenfassung
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
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
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
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
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
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
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
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
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>
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>
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>
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
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
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
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
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
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
Einordnung in den Softwarelebenszyklus Anforderungsanalyse Analyse Entwurf Redesign Implementierung Test Inbetriebnahme Redesign Wartung
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"]
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
Exkurs • Interessanterweise auch in anderen Bereichen: • Beispiel Datenbanken • Entwurf: • Evolution: • ALTER TABLE … ADD COLUMN … • ALTER TABLE … ALTER COLUMN … • Einzige Ausnahme: DBMAIN
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
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
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
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)
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)