Zaawansowane systemy baz danych/Laboratorium 11

From Studia Informatyczne

Spis treści

XML-owe bazy danych - ćwiczenia 1

Pierwsza część ćwiczeń będzie zapoznaniem się z przykładową bazą danych dokumentów XML - dbXML oraz bazą danych obiektowo-relacyjną Oracle, która pozwala na przechowywanie dokumentów XML.

Baza danych dbXML jest prostą bazą danych dokumentów XML. Udostępnia ona swój interfejs za pomocą programu Administrator oraz HTTP.

Instalacja dbXML

1. Wejdź na stronę http://www.dbxml.com/Web_Installers/index.html i uruchom instalację XML-owej bazy danych dbXML. Wybierz wersję zależną od Twojego systemu.


2. Musisz mieć zainstalowaną Java 1.1.8 lub nowszą.


3. Podczas instalacji:

  • w kroku trzecim wskaż właściwy katalog JavaHome
  • w kroku czwartym wskaż katalog docelowy np. C:\Program Files\dbXML (dalsza część tego opracowania będzie zakładała że instalacja odbyła się właśnie w tym katalogu.


4. Po instalacji uruchom konsolę i przejdź do katalogu C:\Program Files\dbXML, a następnie za pomocą programu startup.bat uruchom serwer bazy danych dbXML

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

Dostęp do bazy danych dbXML za pomocą programu Administrator

5. Uruchom program Administrator. Znajduje się on również w katalogu C:\Program Files\dbXML. W systemie Windows można go uruchomić poprzez grupę programów dbXML.

Ewentualne błędy, które pojawiają się podczas uruchomienia programu wynikają z niewłaściwego lub niepełnego katalogu Java_Home wskazanego w trakcie instalacji. Spróbuj zainstalować dbXML ponownie wskazując inny katalog Java_Home.


6. Program po uruchomieniu daje możliwość podłączenia się do lokalnej lub zdalnej bazy danych dbXML, modyfikację jej zawartości, wykonywania zapytań.

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

Po lewej stronie znajduj się nawigator baz danych i ich zawartości. Po prawej, na górze, okno do wprowadzania poleceń, na dole zaś okno wynikowe.


7. Rozwiń drzewo lokalnej bazy danych. Rozwiń drzewo kolekcji. Jakie kolekcje widzisz?


8. Zaznacz drzewo kolekcji. Za pomocą menu Collections wybierz opcję dodania nowej kolekcji.

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd5.png


9. Utwórz kolekcję o nazwie scott

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd7.png


10. Domyślnie do utworzonej kolekcji nie ma przyznanych żadnych uprawnień. Aby uprawnienia nadać, rozwiń drzewo kolekcji scott, zaznacz element Collection Roles i wybierz z menu Add Role. Dodawaną rolą niech będzie admin, z pełnymi uprawnieniami.

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd9.png


11. Teraz możemy rozpocząć umieszczanie we wnętrzu kolekcji nowych dokumentów.


12. Mając dokumenty w kolekcji możemy za pomocą interfejsu Administrator

  • przeglądać je, klikając dwukrotnie na odpowiednim dokumencie
  • modyfikować je zmieniając treść dokumentu w oknie wynikowym i zapisując dokonane zmiany
  • wykonywać polecenia i zapytania przy wykorzystaniu wyrażeń XPath oraz XUpdate


Wykonywanie zapytań XPath

13. Włącz podgląd linii statusu. Menu: View'Status Bar


14. Przy pomocy programu Administrator zadaj kilka zapytań względem dokumentów zawartych w kolekcji scott. W oknie do zadawania zapytań wprowadź następujące zapytanie //id_zesp. Za pomocą przycisku Query dokonaj jego ewaluacji

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd11.png


15. Zwróć uwagę, że wyniki pochodzą ze wszystkich dokumentów zawartych w bieżącej kolekcji scott.


16. Zadaj zapytanie o nazwiska pracowników z zespołu 10.

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd13.png


17. Zobacz jak te same wyniki są przedstawione na zakładce Grid

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd15.png


18. Ponownie wróć do przeglądania wyników na zakładce XML.


Dostęp do bazy danych dbXML za pomocą WWW

19. Uruchom przeglądarkę internetową i wprowadź adres http://localhost:7280/rest/

20. Zaloguj się do bazy danych dbXML jako użytkownik scott z hasłem tiger

21. Czy są to te same kolekcje, które widziałeś za pomocą programu Administrator? Przejdź do kolekcji scott.

22. Zobacz jaka jest zawartość dokumentów pracownicy.xml oraz zespoly.xml

23. Wróć na poziom kolekcji scott http://localhost:7280/rest/scott/

24. Korzystając z możliwości zadawania zapytań XPath przez WWW wykonaj zapytanie o element id_zesp znajdujący się gdziekolwiek w dokumentach kolekcji

 <query:results xmlns:query="http://www.dbxml.com/db/query" col="/scott">
 <query:result key="pracownicy.xml">
 <id_zesp>40</id_zesp> 
 </query:result>
 <query:result key="pracownicy.xml">
 <id_zesp>40</id_zesp> 
 </query:result>
 <query:result key="pracownicy.xml">
 <id_zesp>10</id_zesp> 
 </query:result>
 . . .

25. Zadaj także zapytanie o nazwy zespołów, które w adresie mają cyfrę 3

 <query:results xmlns:query="http://www.dbxml.com/db/query" col="/scott">
 <query:result key="zespoly.xml">
 <nazwa>administracja</nazwa> 
 </query:result>
 <query:result key="zespoly.xml">
 <nazwa>systemy rozproszone</nazwa> 
 </query:result>
 </query:results>


Duże kolekcje i indeksy

26. Zaloguj się ponownie do programu Administrator


27. Do katalogu c:\e-learning\zsbd\shake pobierz pliki znajdujące się pod adresem http://www.cs.put.poznan.pl/kjankiewicz/e-learning/zsbd/shake/


28. Utwórz kolekcję shake wewnątrz kolekcji scott. Nadaj jej odpowiednie uprawnienia

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd17.png


29. Spróbuj zaimportować pierwszy dokument z katalogu c:\e-learning\zsbd\shake. Co się stało? Włącz komunikaty (menu: View'Messages), odczytaj powód błędu. Skopiuj plik c:\e-learning\zsbd\shake\play.dtd do katalogu C:\Program Files\dbXML


30. Zaimportuj wszystkie pliki z katalogu c:\e-learning\zsbd\shake posiadające rozszerzenie xml do kolekcji shake. (Wskazówka: zaznacz wszystkie pliki na raz przytrzymując klawisz Shift)

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd19.png


31. Zadaj zapytanie odczytujące wszystkie osoby ze sztuk Szekspira.

 //PERSONA

Zanotuj czas wykonywania zapytania: (np. 2s 63ms)


32. Zadaj zapytanie odczytujące tytuły sztuk, w których osoba została wymieniona jako "JULIET, daughter to Capulet.".

  //PERSONA[.="JULIET, daughter to Capulet."]/../../TITLE

Zanotuj czas wykonywania zapytania: (np. 3s 98ms)


33. Utwórz indeks na wyrażeniu //PERSONA:

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd21.png


34. Ponownie wykonaj zapytanie odczytujące wszystkie osoby ze sztuk Szekspira.

  //PERSONA

Zanotuj czas wykonywania zapytania: (np. 2s 656ms)


35. Ponownie zadaj zapytanie odczytujące tytuły sztuk, w których osoba została wymieniona jako "JULIET, daughter to Capulet.".

  //PERSONA[.="JULIET, daughter to Capulet."]/../../TITLE

Zanotuj czas wykonywania zapytania: (np. 2s 375ms)


Baza danych umożliwiająca przechowywanie dokumentów XML

Relacyjne i obiektowe bazy danych coraz częściej udostępniają swoją zawartość za pomocą interfejsów opartych na XML-u. Przykładem takiej bazy danych jest baza danych ORACLE. Zawartość tabel znajdujących się w schematach poszczególnych użytkowników jest udostępniana za pomocą serwletów dbURI w postaci dokumentów XML.


36. Zaloguj się jako użytkownik scott z hasłem tiger na stronie http://devel.cs.put.poznan.pl:8081/oradb/SCOTT/ZESPOLY. Zawartość strony generowana jest automatycznie w oparciu o zawartość bazy danych

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd23.png


37. W związku z tym, że servlet dbURI potrafi obsłużyć żądania z wykorzystaniem wyrażeń ścieżkowych podobnych do wyrażeń XPath zadaj zapytanie dotyczące zespołu o identyfikatorze 10 z wykorzystaniem następującego adresu:

http://devel.cs.put.poznan.pl:8081/oradb/SCOTT/ZESPOLY/ROW[ID_ZESP=10]

Grafika:ZSBD-2st-1.2-lab11.tresc-1.1-Slajd25.png


38. Wynikiem zapytania może być także kilka wierszy. Za pomocą parametry rowsettag można utworzyć element zewnętrzny aby wynikem był poprawny dokument XML. Zadaj zatem zapytanie wyświetlające całą zawartość elementów ROW generowanych w oparciu o tabelę PRACOWNICY dotyczących pracowników z zespołu 10-tego

http://...:8081/oradb/SCOTT/PRACOWNICY/ROW[ID_ZESP=10]?rowsettag=PRACOWNICY


Pytania kontrolne

39. Bazy danych dokumentów XML udostępniają dwa typy kolekcji: podobne są do katalogów oraz podobne są do tabel. Na wykładzie były szczegółowo omówione ich własności. Jakiego typu kolekcje udostępnia baza danych dbXML?


40. Bazy danych dokumentów XML pozwalają na tworzenie trzech podstawowych typów indeksów: strukturalnych, opartych na wartościach, oraz pełnotekstowych. Jakie typy indeksów są dostępne w bazie danych dbXML?


41. Jedną z funkcjonalności baz danych dokumentów XML jest udostępnianie danych zewnętrznych. Czy i w jaki sposób realizowane jest to w ramach bazy danych dbXML?


Zadania uzupełniające

42. Baza danych dbXML udostępnia swoje możliwości za pomocą interfejsu XML:DB XAPI. Na stronach http://www.dbxmlgroup.com/docs/programmer.html oraz http://www.dbxmlgroup.com/docs/api/index.html możesz znaleźć dodatkowe informacje. Jeśli znasz język programowania Java postaraj się napisać program, który łączy się z bazą danych dbXML oraz przegląda nazwy dokumentów znajdujących się w kolekcji scott.