XPath

Transkrypt

XPath
Sorki ze czasami wklejałem wyklad ;/
27. Opisz techniki wyszukiwania informacji w bazach danych (XQuery, XPath).
XPath:
- był jednym z pierwszych standardów do przeszukiwania baz zawierających dokumenty
XML
- XPath nie został jednak zaprojektowany jako typowy język zapytań do baz tylko raczej do
przeszukiwania pojedynczych dokumentów. Przez to bardzo szybko okazał się
niewystarczający – brakowało w nim podstawowych funkcji: grupowania, sortowania itp.
- zastepowany przez XQuery.
XPath – sciezka lokalizacji:
Sciezka lokalizacji to łańcuch kroków lokalizacji, który pozwala dotrzeć z jednego punktu
dokumentu do drugiego. KaŜdy krok jest rozdzielony znakiem ukośnika „/”.
Mamy 2 sciezki:
- sciezke bezwzgledna: rozpoczyna się od pozycji bezwzględnej
- scieŜkę względną: rozpoczyna się z nieokreślonego z góry miejsca
Krok lokalizacji posiada 3 części:
- oś: opisuje kierunek przemieszczania
- test wierzchołka: określa jakiego rodzaju wierzchołki są istotne
- predykaty: dodatkowe testy logiczne badające wierzchołki kandydujące (opcjonalne)
Przykłady:
XQuery:
• Język funkcyjny, określany jako rozszerzenie języka XPath 2.0 (podstawowym
elementem zapytania jest wyraŜenie ścieŜkowe określające dane źródłowe).
•
•
•
•
•
Funkcyjność ta oznacza, Ŝe jest zbudowany z wyraŜeń, które zwracają rezultat oraz
nie posiadają efektów ubocznych.
Spośród postulowanych pierwotnie w W3C własności: czytelność dla człowieka oraz
oparcia składni na XML, w XQuery zrealizowano ten pierwszy wymóg.
Przedstawianiem zapytań w postaci XML zajmuje się odrębna specyfikacja:
XQueryX. Efektem mapowania jest bardzo drobnoziarnista struktura, wykluczająca
raczej jej przetwarzanie przez człowieka (przykładowe rozwinięcie prostego zapytania
do struktury XQueryX liczy sobie ok. 70 wierszy…)
W aktualnej wersji nie posiada funkcjonalności dla modyfikacji danych.
Zapewnia silną kontrolę typów. System typów oparty jest na XML Schema.
Budowa języka XQuery:
• Budulcem zapytań XML Query są wyraŜenia (expressions), które mogą być
zagnieŜdŜane i komponowane (język jest reklamowany jako w pełni kompozycyjny).
• KaŜde wyraŜenie zwraca sekwencję, tj. uporządkowaną kolekcję zero lub większej
liczby przedmiotów (items). Jednoelementowa sekwencja zawierająca przedmiot jest
identyczna z tym przedmiotem.
• Przedmioty te mogą być wartościami atomicznymi (prostymi, w rozumieniu XML
Schema) lub węzłami. Mogą mieć określone precyzyjnie typy.
• Najprostszym wyraŜeniem jest literal, będący wartością typu prostego, np.”jakiś
tekst”, 23, 10.9, date(”2000-12-31”)
• Nawiasy okrągłe pozwalają modyfikować kolejność ewaluacji zapytania, zaś symbol
przecinka słuŜy łączeniu sekwencji.
• Istnieje teŜ moŜliwość wołania funkcji – składnia tradycyjna z nawiasami okrągłymi i
argumentami.
• WyraŜenia ścieŜkowe: zasada działania przedstawiona przy okazji XPath. KaŜdy
kolejny krok jest realizowany w oparciu o zaleŜny od tego kroku bieŜący kontekst.
• Kontekst wyraŜenia zawiera wszelkie informacje, które mogą wpłynąć na rezultat
wyraŜenia.
• Rezultat zapytania jest zgodny z modelem danych języka, jednakŜe nie musi być
dobrze uformowanym XML.
• WyraŜenia są czułe na wielkość liter.
• WyraŜenia iteracyjne – w najprostszej postaci obejmują deklarację zmiennej
iterującej oraz sekcję zwracającą rezultat – np.:
for $n in (1, 2, 3) return $n + 1
• Umieszczenie kilku zmiennych w sekcji for utworzy zagnieŜdŜone pętle iteracyjne.
XQuery – dostęp do dokumentu
WyraŜenie XQuery – wyraŜenia XPath i FLOWR:
WyraŜenia FLWOR:
• Wzorzec kompletnego zapytania:
– for -> dowolna liczba zmiennych iterujących;
– let -> dowolna liczba deklaracji zmiennych pomocniczych;
– where -> selekcja. Filtruje krotki utworzone przez klauzule for oraz let;
– order by -> kryterium sortowania;
– return -> zwracany wynik; wyraŜenie liczone kolejno dla kaŜdej przekazanej
doń krotki.
• „For” wiąŜe ze zmienną kolejno wartości przypisanej mu sekwencji, zaś „let” wiąŜe ze
zmienną całą sekwencję dostępną w danym kontekście.
XQuery – zalety i wady:
• Niektóre cechy wynikają z własności samego XML:
– MoŜliwość tworzenia kompozycji poprzez zagnieŜdŜanie elementów.
– Skuteczne podejście do problemu kolekcji (wiele wystąpień podelementu o tej
samej nazwie) oraz wartości pustych – NULL (pomijanie elementu).
– System identyfikatorów elementów (ID) oraz odnośników (XLink) nie jest
obecnie adekwatny dla modelowania asocjacji pomiędzy obiektami.
• Niewątpliwie słusznym krokiem jest porządkowanie systemu specyfikacji:
ujednolicenie deklaratywnych środków dostępu do XML i odniesienie ich do
ustandaryzowanej terminologii (XML Information Set).
• Kolejnym niezwykle waŜnym załoŜeniem jest zapewnienie kompozycyjności
operatorów (jako przeciwieństwo związania ich w duŜe związki składniowe np. selectfrom-where).
• Dostępność instrukcji warunkowych oraz moŜliwość zastosowania funkcji
uŜytkownika istotnie poszerza funkcjonalność języka.
• Nie jest jednak jasne, jak przyszła rozbudowa o moŜliwości aktualizacyjne wpłynie na
ogólną złoŜoność języka.
• Stanowiące fundament XQuery wyraŜenia ścieŜkowe XPath bywają równieŜ
krytykowane za mało czytelną składnię.
• Problem wprowadzenia skutecznego mechanizmu identyfikatorów i odnośników oraz
ich wykorzystania w języku pozostaje otwarty.
28. Opisz standard SQL/XML.
- SQL/XML jezyk zapytan przygotowany przez SQLX i standaryzowany przez InterNational
Committee for Information Technology Standards.
- ten standard wykorzystywany jest w Oracle XML DB – baza ta wspiera zapytania w stylu
SQL przy których uŜytkownik moŜe uŜywać notacji XPath do przeglądania dokumentów
XML
- SQL/XML – jest rozszerzeniem do SQL – za pomocą funkcji i operatorów pozwala na
przetwarzanie XML’a w bazach relacyjnych
-SQL/XML moŜe być przydatny dla firm opierających się na danych strukturalnych, oraz
wymagających współpracy z narzędziami opartymi o SQL, bazy relacyjne itp.
SQL/XML opiera się na trzech rozszerzeniach zaimplementowanych w SQL 2003:
- publikacje funkcje XML
- specyfikacje opisujące typy XML
- reguły mapowania
Podstawowe funkcje:

Podobne dokumenty