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: