2 Natywne bazy XML 9 2.1 Języki zapytań... 9 2.2 XQuery... 11. 3 Źródła 14

Podobne dokumenty
2 Natywne bazy XML Języki zapytań XQuery Źródła 18

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Przetwarzanie dokumentów XML w Oracle10g: XML DB

Model semistrukturalny

Cechy języka XQUERY. o na wejściu dokument lub fragment względnie kolekcja dokumentów lub fragmentów o na wyjściu dokument lub fragment.

Bazy danych dokumentów XML wykład 1 wprowadzenie

Standard SQL/XML. Wprowadzenie do XQuery

Oracle11g: Wprowadzenie do SQL

Przestrzenne bazy danych Podstawy języka SQL

Spis treści. Przedmowa

Relacyjne bazy danych. Podstawy SQL

1 XML w bazach danych

XML w bazie danych IBM DB2

Relacyjne bazy danych. Podstawy SQL

Systemy GIS Tworzenie zapytań w bazach danych

XML extensible Markup Language 7

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Oracle PL/SQL. Paweł Rajba.

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Tworzenie raportów XML Publisher przy użyciu Data Templates

Wykorzystywanie parsera DOM w programach Java i PL/SQL

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

15. Funkcje i procedury składowane PL/SQL

DB2 XML w relacyjnych bazach danych wstęp do wprowadzenia. Kuba Pochrybniak

Pakiety podprogramów Dynamiczny SQL

Wykład 5. SQL praca z tabelami 2

P o d s t a w y j ę z y k a S Q L

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

XML w bazach danych i bezpieczeństwie

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Język SQL, zajęcia nr 1

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

Post-relacyjne bazy danych

PODSTAWY BAZ DANYCH 13. PL/SQL

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Język SQL. Rozdział 2. Proste zapytania

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Bloki anonimowe w PL/SQL

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

1 Model semistrukturalny 1 2 XML 3. 3 XPath 8. 4 Bazy danych a XML Bazy przechowywujące XML Natywne bazy XML

Wykład 8. SQL praca z tabelami 5

Bazy dokumentów XML. Język XML. extensible Markup Language

Rola języka XML narzędziem

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Bazy danych dokumentów XML wykład 3 modyfikacja dokumentów

Bazy danych - wykład wstępny

Przykładowa baza danych BIBLIOTEKA

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

XML extensible Markup Language 3

Microsoft SQL Server Podstawy T-SQL

XML w bazach danych i bezpieczeństwie

252 Bazy danych. Praca z językiem XML

Obiektowe bazy danych

Paweł Rajba

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

XQuery. sobota, 17 grudnia 11

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

Ref. 7 - Język SQL - polecenia DDL i DML

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Spis tre±ci. 1 Wst p Zawarto± rozdziaªów Projekt LoXiM... 2

Operacja PIVOT w języku SQL w środowisku Oracle

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Aplikacje internetowe laboratorium XML, DTD, XSL

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Zaawansowane bazy danych i hurtownie danych semestr I

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Obiektowe bazy danych

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Przykładowy dokument XML

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Bazy danych. Polecenia SQL

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Transkrypt:

Plan wykładu Spis treści 1 Bazy przechowujące XML 1 1.1 XMLType.................................... 2 1.2 Schematy XML................................. 3 1.3 Perspektywy XMLType............................. 5 1.4 Biblioteki PL/SQL............................... 6 1.5 SQL/XML.................................... 6 1.6 XML DB Repository.............................. 8 2 Natywne bazy XML 9 2.1 Języki zapytań................................. 9 2.2 XQuery..................................... 11 3 Źródła 14 Bazy danych a XML Bazy danych umożliwiające przechowanie danych w formacie XML (ang. XMLenabled database systems) - postrelacyjne, obiektowo-relacyjne systemy zarządzania bazą danych, które na wejściu i na wyjściu akceptują i generują dane w postaci XML. Bazy danych dokumentów XML - natywne bazy danych XML (ang. native XML database systems)- zorientowane na przetwarzanie dokumentów XML, używają dokumentów XML jako podstawowego typu przechowywania. 1 Bazy przechowujące XML Przechowywanie danych XML w systemie plików w atrybutach typu: CLOB, XMLType w bazach danych w postaci zdekomponowanej XML DB mapowanie schematów XML na schematy baz danych generowanie schematów XML ze schematów baz danych i odwrotnie XML DB rozszerzenie funkcjonalności SZBD Oracle, służące wygodnemu gromadzeniu, generowaniu, przeszukiwaniu i przetwarzaniu dokumentów XML. Składowe: typ XMLType, możliwość wykorzystywania schematów XML, biblioteki programisty PL/SQL służące do parsowania dokumentów XML,

rozszerzenia języka SQL umożliwiające generowanie dokumentów XML na podstawie treści relacyjnej, mechanizm XML DB Repository, umożliwiający wykorzystanie bazy danych jako łatwo dostępnej składnicy dokumentów XML. 1.1 XMLType XMLType XMLType typ danych służący do przechowywania i przetwarzania dokumentów XML w obiektoworelacyjnym SZBD Oracle. Każda wartość typu XMLType jest odrębnym, kompletnym dokumentem XML. Fizyczne składowanie dokumentów na dwa sposoby: każdy dokument staje się jednym dużym obiektem CLOB (domyślnie), każdy dokument jest dekomponowany na rekordy zapisywane w wielu tabelach relacyjnych (wymaga posiadania schematu XML). Obsługa XMLType CREATE TABLE produkty_xml ( kod NUMBER(11), opis XMLType ) INSERT INTO produkty_xml VALUES (67653829370, XMLType( <produkt> <nazwa>antena dachowa</nazwa> <symbol>1709765</symbol> <cena>85</cena> </produkt> ) ); select opis from produkty_xml; OPIS ------------------------------------ <produkt> <nazwa>antena dachowa</nazwa> <symbol>1709765</symbol> <cena>85</cena> </produkt> Funkcje do przetwarzania XMLType existsnode() - sprawdza, czy wartościowanie podanego wyrażenia XPath względem wartości XMLType zwraca co najmniej jeden element lub węzeł tekstowy. Wynikiem działania tej funkcji jest wartość 0 lub 1. 2

SELECT kod FROM produkty_xml WHERE existsnode(opis, /produkt[cena=85] ) = 1; extract() - zwraca fragment dokumentu XML wskazany wyrażeniem XPath. extractvalue() - zwraca wartość skalarną odpowiadającą wynikowi wartościowania wyrażenia XPath. updatexml() - modyfikuje wybrane węzły w obiekcie XMLType. Argumentami funkcji updatexml() są pary: wyrażenie XPath, wartość. UPDATE ksiazki_xml p SET VALUE(p) = updatexml(value(p), //cena/text(), 56, //rok/text(), 2003) WHERE extractvalue(value(p), /ksiazka/@isbn )= 83-7279-149-X ; XMLTransform() - dokonuje transformacji dokumentu XML w oparciu o dostarczony arkusz stylów XSL. Zarówno dokument źródłowy, jak i arkusz stylów są przekazywane funkcji jako argumenty typu XMLType. Wynikiem działania funkcji jest przekształcony dokument XML, reprezentowany przez wartość XMLType. 1.2 Schematy XML Schematy XML Schematy XML (ang. XML Schema) - służą do przechowywania w bazie danych opisu struktury dokumentów XML, a następnie ich wykorzystywania do: walidacji dokumentów, automatycznego odwzorowywania dokumentów XML w struktury relacyjne, tworzenia tabel lub kolumn XMLType opartych na schematach XML, poprawy efektywności operacji DML na danych XML. Rejestracja schematu Rejestracja schematu za pomocą funkcji dbms_xmlschema.registerschema() pociąga za sobą szereg niejawnych operacji, wykonywanych przez SZBD, mających na celu przygotowanie infrastruktury dla składowania i przetwarzania dokumentów XML zgodnych z danym schematem: utworzenie obiektowych typów danych SQL umożliwiających składowanie dokumentów XML w postaci strukturalnej, utworzenie domyślnych tabel dla głównych elementów schematu. 3

Przykład DBMS_XMLSCHEMA.registerSchema( ksiazka.xsd, <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" xmlns:xdb="http://xmlns.oracle.com/xdb"> <xs:element name="ksiazka" xdb:sqltype="ksiazka_t"> <xs:complextype> <xs:sequence> <xs:element name="tytul" type="xs:string"/> <xs:element name="cena" type="xs:float" xdb:sqlname="cena" xdb:sqltype="float"/> <xs:element name="autorzy" minoccurs="0" maxoccurs="1" xdb:sqltype="clob"> <xs:complextype> <xs:sequence> <xs:element name="autor" type="xs:string" minoccurs="1" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="wydawnictwo" type="xs:string"/> <xs:element name="rok" type="xs:integer"/> </xs:sequence> <xs:attribute name="isbn" type="xs:string"/> </xs:complextype> </xs:element> </xs:schema> ); Przykład cd. SQL> desc KSIAZKA_T KSIAZKA_T is NOT FINAL Nazwa Wartość NULL? Typ -------------- -------- ----- ------------------ SYS_XDBPD$ XDB.XDB$RAW_LIST_T isbn VARCHAR2(4000) tytul VARCHAR2(4000) CENA FLOAT(126) autorzy CLOB wydawnictwo VARCHAR2(4000) rok NUMBER(38) Definiowanie elementu na bazie schematu W oparciu o zarejestrowany schemat można utworzyć tabele, perspektywy lub kolumny typu XMLType. Podczas definiowania elementów XMLType należy wskazać adres URL, pod którym zarejestrowano schemat XML, oraz wskazać wybrany element główny schematu. CREATE TABLE ksiazki_col_xsd ( 4

id NUMBER, pozycja XMLType ) XMLTYPE COLUMN pozycja XMLSCHEMA "ksiazka.xsd" ELEMENT "ksiazka"; Schematy - dalsze możliwości dbms_xmlschema.generateschema() - automatyczne generowanie schematów XML na podstawie definicji obiektowych typów danych; jako argumenty przyjmuje nazwę właściciela i nazwę zdefiniowanego obiektowego typu danych. W wyniku funkcja zwraca wygenerowany schemat XML. Przepisywanie zapytań:konwersja zapytań zawierających wyrażenia XPath do zapytań operujących na tabelach i kolumnach źródłowych: -- zapytanie oryginalne: SELECT VALUE(k) FROM katalog k WHERE extractvalue(value(k), /katalog/ksiazka/rok ) = 2002 ; -- zapytanie po transformacji: SELECT VALUE(k) FROM katalog k WHERE k.xmldata.ksiazka.rok = 2002 ; dbms_xmlschema.copyevolve() - możliwość modyfikacji zarejestrowanego schematu XML. 1.3 Perspektywy XMLType Perspektywy XMLType Perspektywy XMLType budowane ponad tabelami obiektowo-relacyjnymi, a zwracające obiekty XMLType. Umożliwiają one przezroczystą prezentację istniejących danych w formacie XML. Podczas definiowania perspektyw XMLType mogą być wykorzystywane schematy XML. CREATE VIEW emp_xml_view (doc) AS SELECT XMLElement(NAME "EMPLOYEE", XMLForest(ename, job, sal)) FROM emp; SELECT doc FROM emp_xml_view v WHERE v.doc.existsnode( /EMPLOYEE[SAL>2900] )=1 DOC ------------------------------------------------------------- <EMPLOYEE> <ENAME>JONES</ENAME> <JOB>MANAGER</JOB> <SAL>2975</SAL> 5

</EMPLOYEE> <EMPLOYEE> <ENAME>SCOTT</ENAME> <JOB>ANALYST</JOB> <SAL>3000</SAL> </EMPLOYEE> 1.4 Biblioteki PL/SQL Biblioteki PL/SQL PL/SQL Parser API for XMLType (dbms_xmlparser) - zawiera parser DOM, służący do transformacji dokumentu XML do standardowej struktury drzewa Document Object Model (DOM). PL/SQL DOM API for XMLType (dbms_xmldom) - do nawigacji wewnątrz drzewa DOM. PL/SQL XSLT Processor for XMLType (dbms_xslprocessor) - do transformacji XSL. 1.5 SQL/XML SQL/XML SQL/XML część specyfikacji języka zapytań SQL, opisująca sposoby wykorzystywania SQL w połączeniu z XML; rozszerza SQL o funkcje i operatory służące do generowania dokumentów XML na podstawie zawartości relacyjnej bazy danych. Podstawowe funkcje: XMLElement(), XMLForest(), XMLGen(), XMLConcat(), XMLAgg(). XMLElement() XMLElement() służy do tworzenia elementów XML z danych, które nie są obiektami XML. SELECT p.nr_akt, XMLElement (NAME "prac", p.nazwisko) AS "wynik" FROM pracownicy p; ---- ------------------- 8901 <prac>krol</prac> 8902 <prac>michalski</prac> 9121 <prac>kukulski</prac> 9011 <prac>wierzbicki</prac> 6

9235 <prac>fikus</prac> 8904 <prac>skalski</prac> Z wykorzystaniem atrybutów: SELECT XMLElement (NAME "prac", XMLAttributes(p.nr_akt AS "id"), p.nazwisko) AS "wynik" FROM pracownicy p; -------------------------------------- <prac id="8901">krol</prac> <prac id="9235">fikus</prac> <prac id="8904">skalski</prac> <prac id="8910">moniuszko</prac> <prac id="8911">wrzosek</prac> <prac id="9411">lisiecki</prac> <prac id="8932">brzozka</prac> XMLForest() XMLForest() tworzy las elementów XML na podstawie danych nie będących obiektami XML. SELECT p.nr_akt, XMLForest(p.nazwisko AS "nazwisko", p.placa AS "placa") AS "wynik" FROM pracownicy p WHERE p.nr_akt < 9000 ; NR_AKT wynik ----- ------------------------------ 8901 <nazwisko>krol</nazwisko><placa>7000</placa> 8902 <nazwisko>michalski</nazwisko><placa>5000</placa> 8904 <nazwisko>skalski</nazwisko><placa>3500</placa> 8910 <nazwisko>moniuszko</nazwisko><placa>5000</placa> 8911 <nazwisko>wrzosek</nazwisko><placa>1500</placa> 8913 <nazwisko>kowalska</nazwisko><placa>5000</placa> XMLGen() XMLGen() pozwala generować dokumenty XML na podstawie szablonu realizowanego na źródłowych danych relacyjnych. SELECT XMLGen ( <prac id="{$nr_akt}"> <nazwisko>{$nazwisko}</nazwisko> <placa>{$placa}</placa> </prac>, p.nr_akt, p.nazwisko AS nazwisko, p.placa) AS "wynik" FROM pracownicy p WHERE p.nr_akt < 9000 ; 7

wynik ----- ------------------------------ <prac id="8901"> <nazwisko>krol</nazwisko> <placa>7000</placa> </prac> <prac id="8902"> <nazwisko>michalski</nazwisko> <placa>5000</placa> </prac> XMLAgg() XMLAgg() służy do tworzenia lasu elementów z kolekcji elementów XML wywiedzionych z różnych rekordów tabeli. SELECT XMLElement(NAME "dzial", XMLAttributes(p.id_dzialu AS "id"), XMLAgg(XMLElement(NAME "prac", p.nazwisko)) ) AS "wynik" FROM pracownicy p GROUP BY id_dzialu; <dzial id="10"> <prac>krol</prac> <prac>skalski</prac> <prac>kowalska</prac> </dzial> <dzial id="20"> <prac>moniuszko</prac> <prac>lisiecki</prac> <prac>wojcik</prac> <prac>rybak</prac> <prac>szczesny</prac> <prac>wrzosek</prac> </dzial> SELECT XMLElement(NAME "dzial", XMLAttributes(nazwa AS "nazwa"), XMLAgg(XMLElement(NAME "prac", nazwisko) ORDER BY nazwisko)) AS "wynik" FROM pracownicy NATURAL JOIN dzialy GROUP BY nazwa; <dzial nazwa="badania"> <prac>nawrocki</prac> <prac>prusinska</prac> </dzial> <dzial nazwa="ksiegowosc"> <prac>bielecka</prac> <prac>brzozka</prac> <prac>mazur</prac> 8

<prac>wojcik</prac> </dzial> 1.6 XML DB Repository XML DB Repository Repozytorium dokumentów XML (ang. XML DB Repository) jest usługą SZBD Oracle, umożliwiającą przechowywanie i udostępnianie dokumentów XML w formie wirtualnego systemu plików, implementowanego wewnątrz bazy danych. Dostęp do repozytorium dokumentów XML jest możliwy poprzez FTP, WebDAV/HTTP lub SQL. Dokumenty i foldery umieszczane w repozytorium są zapisywane w tabelach bazy danych. Programista może uzyskać dostęp do tych tabel m.in. za pomocą funkcji pakietu dbms_xdb. 2 Natywne bazy XML Natywne bazy XML Baza danych dokumentów XML: definiuje model dla dokumentów XML-owych; dokumenty XML podstawową jednostką składowania; wykorzystuje dowolny sposób fizycznego składowania. Funkcjonalność bazy danych dokumentów XML Bazy dokumentów XML zapewniają: składowanie dokumentów XML, definiowanie i przechowywanie schematów (DTD, XMLSchema), obsługa zapytań (XPath, XQuery, XML-QL, Quilt), obsługa modyfikacji, wstawiania i usuwania dokumentów, obsługa interfejsów programistycznych (XML:DB API, XQuery API for Java - XQJ, SAX, DOM, JDOM), funkcjonalność tradycyjnych SZBD. 9

2.1 Języki zapytań Języki zapytań Wymagania: zapisanie złożonych warunków wyszukiwań deklaratywność wyniki w tej samej formie, co dane źródłowe wykonanie przekształceń znalezionej informacji, w tym agregacji obsługa kwantyfikatorów zachowanie hierarchii i sekwencji struktur itp. Języki zapytań dla XML Lorel - opracowano w ramach przedsięwzięcia LORE w Uniwersytecie Stanforda jako język zapytań dla danych półstrukturalnych. Dostosowany do przetwarzania dokumentów XML; jest językiem składniowo podobnym do SQL; był on wzorowany na OQL ze standardu ODMG. select R.tytuł from dokument.książka.rozdział R, R(.punkt)+.tytuł TP where TP = "Standardowe typy danych"; XML-QL - opracowano w laboratoriach AT&T. Zapytania XML-QL składają się z dwóch części: where (jak w SQL from i where razem wzięte) i construct (odpowiada klauzuli select z SQL). where <książka> <rozdział> <tytuł> $TR </> <punkt+.tytuł> $TP </> </rozdział> </książka> in "ksiazka.xml", $TP = "Standardowe typy danych" construct <tytuł> $TR </tytuł> XML-GL - graficzny język zapytań opracowany na Politechnice Mediolańskiej; jest próbą realizacji języka przyjaznego ludziom na wzór QBE (Query-By-Example = zapytanie poprzez przykład) opracowanego dla relacyjnych baz danych. 10

XSLT - rekomendowany przez W3C język do definiowania transformacji dokumentów XML w inne dokumenty (być może również XML). Jedno przekształcenie XSLT przetwarza tylko jeden dokument XML. XSLT jest przeznaczony raczej do formatowania i wyświetlania dokumentów, jednak szablon XSLT jest definicją pewnej funkcji działającej w zbiorze dokumentów XML, ma więc pewne podstawowe cechy zapytania. <?xml version="1.0" encoding="iso-8859-2"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <xsl:apply-templates select="książka/rozdział"/> </xsl:template> <xsl:template match="/książka/rozdział"> <xsl:if test="punkt//tytuł= Standardowe typy danych "> <tytuł> <xsl:value-of select="tytuł"/> </tytuł> </xsl:if> </xsl:template> </xsl:stylesheet> XQL - służy do wybierania i filtrowania elementów oraz tekstu z dokumentów XML; nie pozwala na konstruowanie nowych elementów w wyniku zapytania. Zapytanie XQL może zwrócić tylko pewien podzbiór elementów i tekstów znajdujących się w dokumentach wejściowych. Jest to język zapytań ścieżkowych podobny do XPath. książka/rozdział[punkt//tytuł= Standardowe typy danych ]/tytuł XPATH - deklaratywny język wykorzystywany przez kilka innych technologii rekomendowanych przez konsorcjum W3C. XPath jest używany do adresowania elemen- 11

tów dokumentów XML (m.in. w XSLT i XLink/XPointer) oraz do wyszukiwania wzorców w dokumentach XML (m.in. w XSLT i XQuery). XQuery - jest tym dla XML czym jest SQL dla baz danych. 2.2 XQuery XQuery XQuery - funkcyjny język zapytań dla dokumentów XML Cechy: deklaratywny i zgodny z modelem danych XML; konstrukcje języka zawsze zwracaja wartość; konstrukcje można zagnieżdżać; zbudowany na bazie wyrażeń XPath; zdolny do przetwarzania dokumentów zawierających odwołania do różnych przestrzeni nazw; umożliwia kontrolę typów dla systemu typów XML Schema; poprawnie działa również wtedy, gdy nie zdefiniowano schematów albo są one niedostępne; umożliwia łączenie danych pochodzących z wielu dokumentów i liczenie agregacji; rekomendowany przez W3C. XQuery - składowe Podstawowe elementy języka: sekwencje wyrażenia (ścieżkowe, warunkowe, agregacje, kwantyfikatory) zmienne operatory funkcje wbudowane wartości logiczne komentarze proste funkcje użytkownika Zasady wielkość liter jest rozróżniana elementy, atrybuty i zmienne muszą mieć nazwy zgodne ze standardem XML łańcuchy umieszczamy w apostrofach lub cudzysłowie nazwy zmiennych są poprzedzone znakiem $ ($zmienna) komentarze są ograniczone dwukropkami (:komentarz:) 12

Budowanie zapytania Otwarcie pliku XML: doc("ksiazki.xml") Wybór elementów (tytuły książek znajdujących się w księgarni): doc("ksiazki.xml")/ksiegarnia/ksiazka/tytul w wyniku: <title jezyk="pl">rok 1984</title> <title jezyk="pl">hyperion</title> <title jezyk="pl">ubik</title> Budowanie warunku: doc("ksiazki.xml")/ksiegarnia/ksiazka[cena<30] w wyniku: <ksiazka kategoria="dziecieca"> <tytul jezyk="pl">entliczek Pentliczek</tytul> <autor>jan Brzechwa</autor> <rok>2011</rok> <cena>1.99</cena> </ksiazka> Budowanie zapytania z FLWOR FLWOR - akronim słów: For, Let, Where, Order by, Return : pozwala przejść po elementach zadanej kolekcji (fraza for), zdefiniować zmienne pomocnicze (fraza let), odfiltrować niepotrzebne elementy (fraza where), uporządkować to, co pozostanie (fraza order by), wypisać wynik w odpowiedniej postaci (fraza return). Zamiast: doc("ksiazki.xml")/ksiegarnia/ksiazka[cena>30]/tytul można użyć: 13

for $x in doc("ksiazki.xml")/ksiegarnia/ksiazka where $x/cena>30 return $x/tytul FLWOR udostępnia sortowanie: for $x in doc("ksiazki.xml")/ksiegarnia/ksiazka where $x/cena>30 order by $x/tytul return $x/tytul XQuery dalsze składowe instrukcje warunkowe i kwantyfikatory for $k in collection("ksiegarnia")/ksiazka order by $k/tytul return <pozycja> { if (count($k/autor) <= 2) then $k/autor else <praca-zbiorowa/> } { $k/tytul } </pozycja> Funkcje i rekurencja declare function local:st($elem as element()) as element()* { for $p in $elem/*[name()="punkt" or name()="rozdział"] return <pozycja> { $p/@id, $p/tytuł, local:st($p) } </pozycja> }; kontrola typu typy podstawowe badanie typu 3 Źródła Źródła W wykładzie wykorzystano materiały: BUNEMAN P., Semistructured data, W: Proceedings of PODS, 1997, 117-121. ABITEBOUL S., Querying semi-structured data, W: Proceedings of ICDT, 1997, 1-18. 14

www.ploug.org.pl/szkola/szkola_2/materialy/standard_sql.pdf Oracle XML DB Developer s Guide 10g Release 1, dokumentacja techniczna Oracle www.cs.put.poznan.pl/mzakrzewicz/pubs/ploug04xmldb.pdf Zbigniew Jurkiewicz, Semistrukturalne bazy danych - wprowadzenie, materiały do wykładów, Instytut Informatyki UW Materiały do wykładów Pani mgr Wandy Kik http://stencel.mimuw.edu.pl/obd/xquery/ http://www.w3schools.com/xquery/ Wikipedia 15