Zaawansowane systemy baz danych/Laboratorium 13

From Studia Informatyczne

XML-owe bazy danych – ćwiczenia 3

Trzecią część ćwiczeń poświęcimy językowi przeznaczonemu do modyfikacji dokumentów XML - XUpdate.


Modyfikacje dokumentów umieszczonych w bazie danych dokumentów XML za pomocą poleceń XUpdate

1. Uruchom bazę danych dbXML zainstalowaną w pierwszej części ćwiczeń poświęconej bazom danych dokumentów XML


2. Pobierz plik http://www.cs.put.poznan.pl/kjankiewicz/e-learning/zsbd/dbxml/bib.xml i umieść go w ramach kolekcji scott utworzonej w pierwszej części ćwiczeń poświęconej bazom danych dokumentów XML


Dokument bib.xml powinien mieć postać:

 <bib>
  <book year="1994">
      <title>TCP/IP Illustrated</title>
      <author><last>Stevens</last><first>W.</first></author>
      <publisher>Addison-Wesley</publisher>
      <price> 65.95</price>
  </book>
 
  <book year="1992">
      <title>Advanced Programming in the Unix environment</title>
      <author><last>Stevens</last><first>W.</first></author>
      <publisher>Addison-Wesley</publisher>
      <price>65.95</price>
  </book>
 
  <book year="2000">
      <title>Data on the Web</title>
      <author><last>Abiteboul</last><first>Serge</first></author>
      <author><last>Buneman</last><first>Peter</first></author>
      <author><last>Suciu</last><first>Dan</first></author>
      <publisher>Morgan Kaufmann Publishers</publisher>
      <price>39.95</price>
  </book>
 
  <book year="1999">
      <title>The Economics of Technology and Content for Digital TV</title>
      <editor>
             <last>Gerbarg</last><first>Darcy</first>
             <affiliation>CITI</affiliation>
      </editor>
          <publisher>Kluwer Academic Publishers</publisher>
      <price>129.95</price>
  </book>
 </bib>


3. Zaznacz dokument bib.xml tak aby stał się aktywny. A jako szablon polecenia wybierz XUpdate (Insert Before)

Grafika:ZSBD-2st-1.2-lab13.tresc-1.1-Slajd1.png

Wykonaj kolejno polecenia XUpdate, których efektem będą poniższe zmiany dokumentu bib.xml. Jeśli będzie to ułatwieniem wybieraj odpowiednie szablony poleceń, lub po prostu wprowadzaj własne polecenia XUpdate nie bacząc na ustawiony szablon. Pamiętaj o odpowiednim prefiksie przestrzeni nazw.


4. Zmień imię autora książki o tytule „TCP/IP Illustrated” z „W.” na „W. Richard”.

Element dotyczący powinien mieć postać:

   <book year="1994">
       <title>TCP/IP Illustrated</title>
       <author><last>Stevens</last><first>W. Richard</first></author>
       <publisher>Addison-Wesley</publisher>
       <price> 65.95</price>
   </book>

Jeżeli po modyfikacji postać dokumentu nie zostanie sformatowana właściwie, wybierz z menu Edit-->Beatify


5. Do książki o tytule „Data on the Web” dodaj atrybut ISBN o wartości „1-55860-622-X”


6. Do książki o tytule „Data on the Web” dodaj poniżej elementu „price” nowy element „weight” o zawartości „1.50 lbs”.


7. Poniżej książki napisanej w 1992 roku dodaj nową książkę (book) składającą się, z co najmniej czterech elementów w zadanej kolejności (title, author, cena, publisher) i atrybutu rok. Wszystkie elementy nowododanej książki utwórz przy wykorzystaniu konstruktorów XUpdate.

   <book rok="1983">
       <title>Smalltalk-80</title>
       <author><last>Goldberg</last><first>Adele</first></author>
       <cena>100</cena>
       <publisher>Addison-Wesley</publisher>
   </book>

Postać dokumentu po powyższych zmianach:


 <?xml version="1.0" encoding="UTF-8"?>
 <bib>
   <book year="1994">
       <title>TCP/IP Illustrated</title>
       <author>
           <last>Stevens</last>
           <first>W. Richard</first>
       </author>
       <publisher>Addison-Wesley</publisher>
       <price>65.95</price>
   </book>
   <book year="1992">
       <title>Advanced Programming in the Unix environment</title>
       <author>
           <last>Stevens</last>
           <first>W.</first>
       </author>
       <publisher>Addison-Wesley</publisher>
       <price>65.95</price>
   </book>
   <book rok="1983">
       <title>Smalltalk-80</title>
       <author>
           <last>Goldberg</last>
           <first>Adele</first>
       </author>
       <cena>100</cena>
       <publisher>Addison-Wesley</publisher>
   </book>
   <book ISBN="1-55860-622-X" year="2000">
       <title>Data on the Web</title>
       <author>
           <last>Abiteboul</last>
           <first>Serge</first>
       </author>
       <author>
           <last>Buneman</last>
           <first>Peter</first>
       </author>
       <author>
           <last>Suciu</last>
           <first>Dan</first>
       </author>
       <publisher>Morgan Kaufmann Publishers</publisher>
       <price>39.95</price>
       <weight>1.50 lbs</weight>
   </book>
   <book year="1999">
       <title>The Economics of Technology and Content for Digital TV</title>
       <editor>
           <last>Gerbarg</last>
           <first>Darcy</first>
           <affiliation>CITI</affiliation>
       </editor>
       <publisher>Kluwer Academic Publishers</publisher>
       <price>129.95</price>
   </book>
 </bib>


Wykonaj kolejne zadania za pomocą poleceń XUpdate


8. W nowoutworzonej książce zamień kolejność elementów cena i publisher. Wykorzystaj w tym celu zmienne.


9. Dodaj do nowoutworzonej książki komentarz na poziomie zawartości elementu book przed wszystkimi innymi elementami. Treść komentarza to „Zaawansowane Systemy Baz Danych – laboratorium 13”.


10. Jako drugi węzeł w nowoutworzonej książce wstaw instrukcję przetwarzania o nazwie „fordbxml” i wartości to_remove=”yes”.


11. Zmień w jednym poleceniu nazwy wszystkich elementów cena na price oraz nazwy wszystkich atrybutów rok na year. Wskazówka: polecenie XUpdate modifications może zawierać wiele członów.

Postać elementu book dotyczącego nowowstawionej książki po powyższych zmianach powinna być następująca:

Grafika:ZSBD-2st-1.2-lab13.tresc-1.1-Slajd3.png


12. Usuń wstawiony przez Ciebie komentarz.


13. Usuń wszystkie książki (book), które zostały napisane przez autorów o nazwiskach innych niż „Goldberg”.

Modyfikacje dokumentów XML za pomocą poleceń XQuery

Baza danych dbXML niestety nie obsługuje ani poleceń XQuery ani rozszerzeń XQuery umożliwiających modyfikację dokumentów XML. Dlatego tylko zaproponuj rozwiązania poniższych zadań.


14. Napisz polecenie, które każdej z książek w dokumencie bib.xml podniesie zawartość elementu price o 20. Wykorzystaj w tym celu rozszerzenia XQuery umożliwiające modyfikację dokumentów XML.


15. Napisz polecenie, które w książce o tytule „Smalltalk-80” usunie wszelkie znaczniki wewnętrzne elementu author pozostawiając jedynie ich wartość tekstową. Wykorzystaj w tym celu rozszerzenia XQuery.