XML w bazach danych, standardy wiążące dokumenty XML



Podobne dokumenty
XML w bazach danych i bezpieczeństwie

XML w bazach danych i bezpieczeństwie

Inne standardy zwiazane z XML

Inne standardy zwiazane z XML

XML w bazach danych, standardy wiaż ace dokumenty XML

XML a relacyjne bazy danych. XML w bazach danych. Klasyfikacja wsparcia dla XML-a w bazach danych. XML a relacyjne bazy danych.

XML a relacyjne bazy danych. XML w bazach danych. Klasyfikacja wsparcia dla XML-a w bazach danych. XML a relacyjne bazy danych.

XML a relacyjne bazy danych. XML w bazach danych. Klasyfikacja wsparcia dla XML-a w bazach danych. XML a relacyjne bazy danych.

Model semistrukturalny

Rodzaje przetwarzania XSLT (1) XSLT część 2. Inne standardy związane z XML-em. Rodzaje przetwarzania XSLT (2) Zmienne. Zaawansowane możliwości XSLT

Spis treści. Przedmowa

Programowanie obiektowe

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Relacyjne bazy danych a XML

Bazy danych dokumentów XML wykład 1 wprowadzenie

XML w bazie danych IBM DB2

XML i nowoczesne technologie zarządzania treścią

Wykład I. Wprowadzenie do baz danych

XPath 2.0 / XSLT 2.0 / XQuery 1.0. Inne standardy związane z XML-em. XPath 2.0 XSLT 2.0. XPath 2.0 funkcyjny język programowania

1 XML w bazach danych

XML i nowoczesne metody zarządzania treścią

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy danych - wykład wstępny

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

Zdalna edycja i przeglądanie dokumentacji medycznej.

Liczba godzin 1,2 Organizacja zajęć Omówienie programu nauczania 2. Tematyka zajęć

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Porównanie systemów zarządzania relacyjnymi bazami danych

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

SGML a XML różnice. XML a SGML. Standardy pokrewne. Minimalizacja w SGML-u. Elementy w SGML-u. Atrybuty w SGML-u

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Oracle11g: Wprowadzenie do SQL

Funkcjonalność systemów zarządzania bazami danych przestrzennych w kartografii internetowej (PosrtgreSQL/PostGIS) Krzysztof Kuśnierek

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

XML-owe bazy danych ćwiczenia 1

Database Connectivity

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Pojęcie systemu baz danych

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

Systemy baz danych. mgr inż. Sylwia Glińska

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

1 Wprowadzenie do J2EE

XML W BAZACH DANYCH 1. WSTĘP

Technologia informacyjna

ETL darmowe narzędzia

Administracja i programowanie pod Microsoft SQL Server 2000

RELACYJNE BAZY DANYCH

dlibra 3.0 Marcin Heliński

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

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

Rozwiązania bazodanowe EnterpriseDB

Programowanie internetowe

Baza danych. Baza danych to:

Rola testowania w projektowaniu XML-owych baz danych

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017


Przykładowy dokument XML

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Wybrane działy Informatyki Stosowanej

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

Programowanie MorphX Ax

Otwarte protokoły wymiany informacji w systemach ITS

PHP: bazy danych, SQL, AJAX i JSON

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

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

Liczba godzin. N (nauczyciel) studia niestacjonarne

WPROWADZENIE DO BAZ DANYCH

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

EDI, XML i ochrona danych Przemysław Kazienko

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

XPath 2.0 / XSLT 2.0 / XQuery 1.0. Inne standardy związane z XML-em. XPath 2.0 XSLT 2.0. XPath2.0 funkcyjny język programowania

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

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

GML w praktyce geodezyjnej

Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s Rodzina języków XML. Przemysław Kazienko

XML Schema. Alternatywne metody definiowania struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Opisy efektów kształcenia dla modułu

PRZEWODNIK PO PRZEDMIOCIE

Hurtownie danych - przegląd technologii

XML Schema. Forma nazwy lokalnych elementów i atrybutów

Shapefile, GeoPackage czy PostGIS. Marta Woławczyk (QGIS Polska)

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009

Systemy GIS Systemy baz danych

Język SQL, zajęcia nr 1

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

SZKOLENIE: Administrator baz danych. Cel szkolenia

Projektowani Systemów Inf.

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

Transkrypt:

XML w bazach danych, standardy wiążące dokumenty XML Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarządzania treścią 2008/09

Walidacja względem DTD podczas parsowania SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(true); XMLReader reader = factory.newsaxparser().getxmlreader(); reader.setcontenthandler(mojconenthandler); reader.seterrorhandler(mojerrorhandler); reader.parse(args[0]); Walidacja względem XML Schema SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schemat = schemafactory.newschema(new StreamSource(args[1])); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(false); factory.setschema(schemat); factory.setnamespaceaware(true); XMLReader reader = factory.newsaxparser().getxmlreader(); reader.setcontenthandler(mojconenthandler); reader.seterrorhandler(mojerrorhandler); reader.parse(args[0]);

Walidacja i zapis drzewa DOM SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schemat = schemafactory.newschema(new StreamSource(args[1])); Validator validator = schemat.newvalidator(); validator.validate(new DOMSource(doc)); DOMImplementationLS lsimpl = (DOMImplementationLS)domImpl.getFeature("LS", "3.0"); LSSerializer ser = lsimpl.createlsserializer(); LSOutput out = lsimpl.createlsoutput(); out.setbytestream(new FileOutputStream(args[0])); ser.write(doc, out); Transformacje XSLT TransformerFactory trans_fact = TransformerFactory.newInstance(); transformer = trans_fact.newtransformer(new StreamSource(args[2])); Source src = new StreamSource(args[0]); Result res = new StreamResult(args[1]); transformer.transform(src, res);

Transformacje Zastosowanie do zapisu zdarzeń SAX po przefiltrowaniu SAXParserFactory parser_fact = SAXParserFactory.newInstance(); XMLReader reader = parser_fact.newsaxparser().getxmlreader(); TransformerFactory trans_fact = TransformerFactory.newInstance(); Transformer transformer = trans_fact.newtransformer(); XMLFilter filtr = new FiltrGrupyWażne(); filtr.setparent(reader); InputSource doc = new InputSource(args[0]); Source src = new SAXSource(filtr, doc); Result res = new StreamResult(args[1]); transformer.transform(src, res); Klasyfikacja wsparcia dla XML-a w bazach danych Baza danych ze wsparciem dla XML (zwykle relacyjna, czasem obiektowa bądź inna) konfiguracja struktur danych jako tabel i powiązań, eksport i import danych w postaci dokumentów XML, struktura dokumentów XML pochodną relacyjnych struktur danych, zastosowanie: integracja, wymiana danych; XML-owa baza danych: konfiguracja struktur danych przy pomocy DTD/XML Schema, wyszukiwanie z użyciem XQuery lub XPath, indeksowanie elementów, atrybutów, wyrażeń XPath, struktura danych dokumenty XML, możliwa optymalizacja wewnętrznego formatu danych, zastosowanie: przechowywanie i przetwarzanie dokumentów strukturalnych.

XML w relacyjnych bazy danych Korzyści: integracja aplikacji, wymiana danych, łatwe transformacje danych, prezentacja danych. Problemy: czy i jak przechowywać dokumenty XML w bazie danych? metody dostępu (zadawania zapytań), efektywność. XML a relacyjne bazy danych Przechowywanie XML-a w relacyjnych bazach danych: elementy dokumentu XML jako pola tabeli bazodanowej (dokument rozłożony na czynniki pierwsze ), dokument XML w całości przechowywany w polu bazy danych. Sposoby wspierania XML-a przez systemy zarządzania bazami danych: generowanie XML-a na podstawie zawartości bazy danych, wypełnianie zawartości bazy na podstawie zawartości dokumentu XML, specjalne indeksowanie pól zawierających XML, zapytania XPath/XQuery na danych typu XML, wbudowane parsery XML i procesory XSLT.

Przykład XML w Oracle Wsparcie dla XML w Oracle 10g (http://www.oracle.com/xml). Parsery XML dostarczane przez Oracle: pozwalają na wykorzystanie XML-a we własnych aplikacjach korzystających z bazy, dostępne dla PL-SQL-a, Javy i C++. XML-SQL Utility: generowanie XML-a bezpośrednio z bazy przy pomocy specjalnych zapytań, wypełnianie bazy na podstawie zawartości dokumentu XML. Typ danych XMLType. XML w Oracle XML-SQL Utility Eksport XML funkcja getxml() SELECT xmlgen.getxml( select * from emp ) FROM dual; <rowset> <row id= 1 > <empno>10</empno> <name>scott Tiger</name> <title>specialist</title> </row>... </rowset>

XML w Oracle XMLType XMLType specjalny typ danych: kolumny, tabele, perspektywy, zmienne,... indeksowanie zawartości XML, zapytania XQuery, kontrola poprawności strukturalnej względem XML Schema, przekształcenia XSLT. Specjalne operatory: extract, extractvalue, exisitsnode, transform, updatexml, XMLSequence. XPath Rewrite przekształcanie ścieżek XPath w równoważne konstrukcje SQL na wewnętrznej reprezentacji strukturalnej XMLType. Bazy danych ze wsparciem dla XML Istotne wsparcie DB2, IBM (wersja 9 purexml) Oracle (od 8i) Microsoft SQL Server (od wersji 2000) Sybase ASE 12.5 Minimalne wsparcie MySQL (zapytania XPath nad węzłami tekstowo zawierającymi XML) PostgreSQL (walidacja i ścieżki XPath, interfejs ma być zmieniony)

XML-owa baza danych Warstwa logiczna: dokument XML jako podstawowa jednostka przechowywanych danych, schemat jako definicja struktury, kolekcje dokumentów. Warstwa fizyczna: niekoniecznie tekstowo zapisane dokumenty XML, indeksy. Funkcjonalności typowe dla baz danych: interfejs do aktualizacji danych, transakcje i współbieżny dostęp, bezpieczeństwo. Tamino XML-owa baza danych Pierwszy serwer bazodanowy przechowujący dane w XML-u. Komunikacja: za pośrednictwem protokołu HTTP, bezpośrednio przez URL, moduł X-Node, zapewniający integrację z innymi źródłami danych: ODBC, OLE DB, system plików. Platforma dla: aplikacji internetowych typu B2C, elektronicznej wymiany dokumentów: wsparcie dla XML Signature; systemów zarządzania treścią: wersjonowanie, scalanie, indeksowanie dokumentów nie-xml.

XML:DB Inicjatywa specyfikacji XML-owych baz danych. XML Database API (XAPI) kolekcje zasobów, zasób odpowiada dokumentowi XML, odczyt i zapis (całego) zasobu poprzez interfejsy DOM i SAX usługi: zapytania XPath, transakcje, zarządzanie kolekcjami, ostatnia wersja: wrzesień 2001. XML Update Language (XUpdate) język zastosowanie XML, wstawianie, usuwanie i aktualizacja rekordów danych, adresowanie ścieżkami XPath, ostatnia wersja: wrzesień 2000. XUpdate przykład Przykład z dokumentacji standardu <?xml version="1.0"?> <xupdate:modifications version="1.0" xmlns:xupdate="http://www.xmldb.org/xupdate"> <xupdate:insert-after select="/addresses/address[1]" > <xupdate:element name="address"> <xupdate:attribute name="id">2</xupdate:attribute> <fullname>lars Martin</fullname> <born day= 2 month= 12 year= 1974 /> <town>leizig</town> <country>germany</country> </xupdate:element> </xupdate:insert-after> </xupdate:modifications>

XML-owe bazy danych przegląd produkt licencja zapytania XML:DB API Apache XIndice open source XPath tak BaseX open source XPath, XQuery tak exist open source XPath, XQuery częściowo Sedna open source XPath, XQuery tak Tamino płatny XQuery, XPath częściowo Gemfire Enterprise płatny XQuery, OQL tak DOMSafeXML (?) płatny XQuery, XPath tak? ÅijrÃşdÅĆo: Wikipedia i strony WWW produktów XPointer Adresowanie dokumentów XML i ich fragmentów, zgodnie ze składnią URI: http://www.sejm.gov.pl/ustawa.xml#def-podatnik Rekomendacje W3C z 25 marca 2003: XPointer Framework (zawiera schemat xpointer()), XPointer element() scheme, XPointer xmlns() scheme.

Schematy xpointer i xmlns xpointer Ścieżki XPath http://www.sejm.gov.pl/ustawa.xml#xpointer(/art[5]/par[2]) xmlns Obsługa przestrzeni nazw Do wykorzystania w dalszej części ścieżki ustawa.xml#xmlns(pr=http://xxx/prawo)xpointer(/art[5]/par[2]) XPointer element() scheme Adresowanie elementów po wartościach atrybutu typu ID: jakiś.xml#element(def-podatnik) Adresowanie ze względu na pozycję: jakiś.xml#element(/1/4/3) jakiś.xml#element(def-podatnik/2/3) Składnia skrócona: jakiś.xml#def-podatnik jakiś.xml#/1/2/3 jakiś.xml#def-podatnik/2/3

XInclude włączanie zawartości dokumentów Załączanie zawartości jednego dokumentu XML do innego. Znaczniki w warstwie logicznej (elementy XML), nie fizycznej (jak referencje do encji). Możliwości: załączanie całych dokumentów (nazwa pliku lub URL), załączanie fragmentów (wskazanych przez XPointer), określanie zawartości używanej w razie błędu. Przezroczysta dla czytelnika interpretacja XInclude przez parser (m.in. jako opcja w JAXP 1.4). XInclude przykład Przykład: źródło <wynik> <xi:include xmlns:xi="http://www.w3.org/2001/xinclude" href="salatka.xml#xpointer(/przepis/tytul)"> <xi:fallback><błąd>brak przepisu</błąd></xi:fallback> </xi:include> </wynik> Przykład: po przetworzeniu <wynik> <tytul>sałatka z ogórków</tytul> </wynik>

XLink dowiązania w XML-u Odnośniki znane z HTML: łączą dwa dokumenty: źródło i cel linku, źródłem linku jest zawsze element opisujący link (A, IMG). XLink rozszerzona koncepcja dowiązań: dowolne elementy przechowują informacje o linkach, nieistotna nazwa elementu, istotne atrybuty z przestrzeni nazw XLink, więcej niż dwa końce linku, możliwość opisania powiązania poza wiązanymi dokumentami. Status: korzenie historyczne: HyTime, XLink 1.0 rekomendacja W3C, czerwiec 2001, XLink 1.1 wersja robocza (aktualizacja w 2008). Terminologia Zasób (resource) dowolna adresowalna jednostka informacji lub usługa. Dowiazanie (link) jawnie wyrażona (przy pomocy elementu wiaż acego (linking element)) relacja pomiędzy zasobami. te zasoby uczestnicza (participate) w dowiązaniu. Przejście (traversal) użycie pary zasobów połączonej dowiązaniem. Łuk (arc) informacja o przejściu między dwoma zasobami (kierunek, zachowanie aplikacji, itp.): wychodzacy (outbound), wchodzacy (inbound), niezależny (third party).

Dowiązania XLink Extended link wiąże dowolną liczbę zasobów: zasoby zewnętrzne (np. odwołania do innych dokumentów), zasoby lokalne (zawarte w elemencie wiążącym). łuki opisujące sposoby przechodzenia pomiędzy zasobami, role zasobów uczestniczących w linku, role łuków. Simple link link wychodzący, wiąże dokładnie 2 zasoby: 1 lokalny i 1 zewnętrzny, jeden łuk z zasobu lokalnego do zewnętrznego. Simple link przykład <osoba xmlns:xlink="http://www.w3.org/1999/xlink"> <nazwisko>kopernik, Mikołaj</nazwisko> <biogram>wybitny polski astronom, matematyk, lekarz, prawnik, tłumacz poezji włoskiej i ekonomista, pochodził z rodziny wywodzącej się z mieszczan krakowskich. Urodzony w <geogr xlink:type="simple" xlink:href="torun.xml">toruniu</geogr>.</biogram> </osoba>

Simple link przykład wykorzystujący XPointer <osoba xmlns:xlink="http://www.w3.org/1999/xlink"> <nazwisko>kopernik, Mikołaj</nazwisko> <biogram>wybitny polski astronom, matematyk, lekarz, prawnik, tłumacz poezji włoskiej i ekonomista, pochodził z rodziny wywodzącej się z mieszczan krakowskich. Urodzony w <geogr xlink:type="simple" xlink:href="encyklopedia.xml#toruń">toruniu</geogr>.</biogram> </osoba> Extended link przykład <fikcja xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> <wypowiedz xlink:type="resource">kopernik była kobietą!</wypowiedz> <film <osoba xlink:type="locator" xlink:href="seksmisja.xml" xlink:title="seksmisja"/> xlink:type="locator" xlink:href="kopernik.xml" xlink:title="kopernik, Mikołaj"/> <pojecie xlink:type="locator" xlink:href="kobieta.xml" xlink:title="kobieta"/> </fikcja>

Atrybuty w linkach rozszerzonych type rola elementu w linku href adres zasobu zewnętrznego role abstrakcyjny identyfikator roli zasobu w powiązaniu (URI) arcrole j.w. ale dla pojedynczego łuku między zasobami title etykieta tekstowa zasobu, łuku itd. show jak prezentować actuate kiedy aktywować label etykieta zasobu używana w definicjach łuków from, to etykieta zasobu używana w definicjach łuków Wartości wybranych atrybutów xlink:type simple, extended, none, resource, locator, arc, title xlink:show embed, new, replace, other, none xlink:actuate onload, onrequest, other, none

Dopuszczalność atrybutów w zależności od typu simple extended locator arc resource title type R R R R R R href O R role O O O O arcrole O O title O O O O O show O O actuate O O label O O from O to O Przyszłość XLink Zastosowania: organizowanie, kojarzenie zasobów, nawet gdy nie mamy prawa zapisu, dostarczanie wartości dodanej zbiorów linków. Zasięg: lokalny serwery linków operujące na bazie linków, Internet? Problemy: wizualizacja extended links, synchronizacja zasobów i linków (Internet).