Semistrukturalne bazy danych Wykład dla studentów matematyki



Podobne dokumenty
LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

XML DTD XML Schema CSS

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Model semistrukturalny

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

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

1 XML w bazach danych

29. Poprawność składniowa i strukturalna dokumentu XML

INTEGRACJA I EKSPLORACJA DANYCH

Wprowadzenie do technologii XML

XML extensible Markup Language. Paweł Chodkiewicz

DTD - encje ogólne i parametryczne, przestrzenie nazw

Rola języka XML narzędziem

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

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

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

Kurs WWW Język XML, część I

Aplikacje internetowe laboratorium XML, DTD, XSL

Narzędzia informatyczne w językoznawstwie

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

Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Przykładowy dokument XML

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

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

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

Przykładowy dokument XML

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

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

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

Podstawy (X)HTML i CSS

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

Relacyjne bazy danych a XML

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

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

Dokumenty SEDU składają się z dwóch części: Opisu sprawy Formularza elektronicznego

METODY REPREZENTACJI INFORMACJI

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XML i nowoczesne technologie zarządzania treścią

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

Bazy danych i strony WWW

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Prezentacja i transformacja

XML extensible Markup Language. część 3

Technologie zarządzania treścią

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Podstawy JavaScript ćwiczenia

O stronach www, html itp..

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

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

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Programowanie internetowe

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

Tworzenie Stron Internetowych. odcinek 6

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

GML w praktyce geodezyjnej

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

XML w bazach danych i bezpieczeństwie

XML extensible Markup Language 3

XML i nowoczesne technologie zarządzania treścią 2007/08

Dlaczego GML? Gdańsk r. Karol Stachura

Elementarz HTML i CSS

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Tworzenie Stron Internetowych. odcinek 5

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Zaawansowana Pracownia Komputerowa - Ćwiczenia. Krzysztof Miernik

Przedmiot: Grafika komputerowa i projektowanie stron WWW

Podstawowe wykorzystanie Hibernate

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

252 Bazy danych. Praca z językiem XML

2 Podstawy tworzenia stron internetowych

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

Ćwiczenie zapytań języka bazy danych PostgreSQL

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Relacyjne bazy danych. Podstawy SQL

używane skróty: HTTP - protokół do transferu tekstu, hipertekstu, zbiorów binarnych URL - jednolity lokalizator zasobów

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

1 Podstawy c++ w pigułce.

Wybrane zmiany wprowadzone w pakiecie Oprogramowanie: SyriuszStd

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

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1

Liczba godzin. N (nauczyciel) studia niestacjonarne

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Bazy Danych i Usługi Sieciowe

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Autor: dr inż. Katarzyna Rudnik

Język XML w aplikacjach z bazami danych - po roku

Transkrypt:

Semistrukturalne bazy danych Wykład dla studentów matematyki 30 maja 2015

Dane semistrukturalne Dzięki WWW i Internetowi łatwo umieszczać informacje w sieci tak, żeby były powszechnie dostępne. Chęć wykorzystania jako bazy danych Dane przechowywane w postaci plików HTML lub XML maja jednak nieregularna strukturę Zaczęto więc takie źródła danych określać jako dane semistrukturalne. Wada: chaotyczne języki zapytań, przypominajace proceduralne języki zapytań sprzed 30 lat.

Dane semistrukturalne Model danych oparty na drzewach Elastyczna reprezentacja danych: graf skierowany Schemat wpisany w dane, dane samo-opisujace się Do integracji informacji (hurtownie wirtualne) Model do przechowywania XML

Przykład

Graf semistrukturalny Wierzchołki = obiekty Etykiety krawędzi = atrybuty obiektów Wartości atomowe w liściach drzewa Elastyczność: brak ograniczeń na etykiety wychodzacych krawędzi liczbę następników

Zapytania Próbowano budować języki zapytań oparte na pojęciu ścieżki (np. Lorel). Ścieżka = wyrażenie regularne opisujace drogę od korzenia. Przykłady ścieżek biblio.ksiazka artykul.autor biblio._*.autor

Przykłady zapytań Wszyscy autorzy ksiażek: Query z1 select autor: x from biblio.ksiazka.autor x; Wszystkie pozycje, których autorem jest Jeffrey Ullman: Query z2 select pozycja: x from biblio._ x where "Jeffrey Ullman" in X.autor;

Przykłady zapytań Autorzy pozycji ze słowem database w tytule Query z3 select autor: y from biblio._ x, x.autor y, x.tytul z where ".*(D d)atabase.*" z; Autorzy i tytuły wszystkich ksiażek. Query z4 select pozycja: tytul: y, autor: z from biblio.ksiazka x, x.tytul y, x.autor z;

XML Dzięki gwałtownemu rozwojowi sieci WWW i stron pisanych w HTML odkryto na nowo zalety nawiasowanej reprezentacji danych strukturalnych. Rozwój XML (extensible Markup Language) zmierza w kierunku standaryzacji reprezentacji danych zapisywanych tekstowo w plikach i przesyłanych siecia. Ponieważ XML to uproszczona wersja SGML, główny obiekt XML nazywa się tradycyjnie dokumentem, choć często nie zawiera tradycyjnego tekstu, lecz ustrukturalizowane dane. Większość narzędzi CASE jest wyposażona w możliwość odczytywania i zapisywania plików w XML.

XML extensible Markup Language Dokumenty ze znacznikami (tags) Znaczniki semantyczne, np. <student> W HTML tylko ustalony zestaw prezentacyjny (do formatowania), np. <blockquote>

XML Generalnie, XML jest to język do reprezentowania danych posiadajacych strukturę. Wyrażenie XML jest to w pełni nawiasowana forma zapisu danych. Nawiasy w XML posiadaja etykiety (inaczej mówiac sa to znaczniki frazowe), na przykład zamiast zapisywać listę liczb 3, 5 i 4 w postaci (3 5 4) w XML napiszemy <nawias>3 5 4</nawias> Jednostki <nawias> i </nawias> nazywa się znacznikiem poczatkowym i znacznikiem końcowym, można jednak traktować je po prostu jako nawiasy otwierajace i zamykajace.

XML Używajac XML można obudować znacznikami niemal dowolny ciag znaków. Parę znaczników wraz z tekstem pomiędzy nimi nazywa się elementem. Ciag znaków zawarty w znaczniku stanowi nazwa elementu, zaś tekst pomiędzy znacznikami to zawartość elementu, ponadto znacznik XML może zawierać atrybuty, na przykład poniższy element <nawias title="oceny" date="2004-10-22"> 3 5 4 </nawias> ma dwa atrybuty: title i date. Wartościami tych atrybutów sa napisy "oceny" oraz "2004-10-22".

XML Przykłady poniżej pokazuja dwa sposoby zapisu wykazu ocen: W postaci nawiasowanej listy. Może to być reprezentacja wewnętrzna używana w programie napisanym w Lispie, Scheme czy Dylanie. W postaci wyrażenia XML. Warto zauważyć, że w tym zapisie informacja dotyczaca przedmiotu i semestru podana jest w atrybutach elementu <egzamin>, co ułatwia wymianę informacji. Podobnie nazwisko studenta i indeks podane sa jako atrybuty elementu <wyniki>. Dodatkowo ocena za każde zadanie została wydzielona w osobny element.

Lista ("Bazy danych" "Wiosna/2009" ("201" 78 88 69) ("202" 88 87 86) ("203" 99 88 88) ("204" 77 78 77) ("205" 90 89 81) ("206" 67 78 81) Reprezentacja protokołu ocen lista

XML <egzamin przedmiot="bazy danych" semestr="wiosna 2009"> <oceny indeks="201"> <pkt>78</pkt> <pkt>88</pkt> <pkt>69</pkt> </oceny> <oceny indeks="202"> <pkt>88</pkt> <pkt>87</pkt> <pkt>86</pkt> </oceny> <oceny indeks="203"> <pkt>99</pkt> <pkt>88</pkt> <pkt>88</pkt> </oceny> <oceny indeks="204"> <pkt>77</pkt> <pkt>78</pkt> <pkt>77</pkt> </oceny> <oceny indeks="205"> <pkt>90</pkt> <pkt>89</pkt> <pkt>81</pkt> </oceny> <oceny indeks="206"> <pkt>67</pkt> <pkt>78</pkt> <pkt>81</pkt> </oceny> </egzamin> Reprezentacja protokołu ocen w XML

XML Widać więc wyraźnie, że XML jest uogólnieniem nawiasowanego zapisu list. Nawiasy sa nazywane (etykietowane), a każdy nawiasowany element może mieć dodatkowe atrybuty. Schemat dokumentu XML (tzn. hierarchiczna struktura dokumentu i znaczniki używane dla elementów i ich atrybutów) powinien być uprzednio zdefiniowany. Używa się do tego osobnych dokumentów. Poczatkowo było to DTD (Document Type Description), nowsze rozwiazanie to XML Schema. Na opis schematu dokumentu można patrzeć jak na definicję używanego słownika.

Element Element = dowolny fragment dokumentu zawarty między komplementarna para znaczników, np. <actor>... </actor> Wyjatek to elementy proste, np. <br />. Uwaga: niektóre przegladarki HTML wymagaja spacji przed ukośnikiem.

Znaczniki pomocnicze Komentarze <!-... -> Instrukcje przetwarzania <?nazwa...?> na przykład dokument XML rozpoczyna się instrukcja <?xml version="1.0"?>

Dokument Dokument XML = pojedynczy element Może być poprzedzony opcjonalnym prologiem zawierajacym deklarację XML <?xml version="1.0"?> definicja typu dokumentu (DTD), najczęściej przez odwołanie do osobnego pliku <!DOCTYPE nazwa głównego elementu SYSTEM "plik.dtd">

XML a HTML W nazwach znaczników sa rozróżniane duże i małe litery. Wartości atrybutów zawsze musza być w cudzysłowach. Brak domyślnego znacznika kończacego dla niektórych atrybutów (np. </p>).

Dwa poziomy poprawności XML Well-formed: poprawność syntaktyczna, znaczniki sparowane każdemu znacznikowi otwierajacemu (np. <student> odpowiada znacznik zamykajacy (np. </student>), nie wymaga DTD; <?xml version="1.0" standalone="yes"?> <body>... </body> Valid: opisane schematem DTD (Document Type Definition (i zgodne z nim ;-) <?xml version="1.0" standalone="no"?> <!DOCTYPE Student SYSTEM "student.dtd"> <Student>... </Student>

DTD znaczniki <!DOCTYPE znacznik-główny [ element... ]> <!ELEMENT znacznik (składnik,...)> Przykład <!DOCTYPE Studenci [ <!ELEMENT Studenci (Student*)> <!ELEMENT Student (imie,nazwisko,adres,rok)> <!ELEMENT imie (#PCDATA)> <!ELEMENT nazwisko (#PCDATA)>... ]>

DTD znaczniki? element opcjonalny * występuje 0 lub więcej razy alternatywa #PCDATA dowolny tekst bez znaczników CDATA dowolny tekst #REQUIRED atrybut wymagany

DTD przykład użycia <?xml version="1.0" standalone="no"?> <!DOCTYPE Studenci SYSTEM "student.dtd"> <Studenci> <Student> <imie>onufry</imie> <nazwisko>zagłoba</nazwisko> <adres>dzikie Pola</adres> <rok>1648</rok> </Student> <Student>... </Student>... ]> </Studenci>

Przykład DTD <!DOCTYPE Giełda [ <!ELEMENT giełda (tytuł?, kurs*)> <!ELEMENT kurs (#PCDATA)> <!ATTLIST kurs waluta CDATA #REQUIRED typ (sprzedaż kupno średni) "średni">... ]>

Użycie DTD <?xml version="1.0"?> <giełda> <tytuł>kursy walut</tytuł> <kurs waluta="usd">4,235</kurs>... </giełda>

DTD atrybuty Umieszczane w znaczniku otwierajacym Postać: atrybut="wartość" Służa także do łaczenia elementów jako łaczniki (links) Deklarowane przez <!ATTLIST element atrybut typ...>

DTD przykład z atrybutami <!DOCTYPE Studenci [ <!ELEMENT Studenci (Student*)> <!ELEMENT Student (imię,nazwisko,adres,rok)> <!ATTLIST Student studentid ID chodzina IDREFS> <!ELEMENT nazwisko (#PCDATA)>... ]>

Kolejny przykład <?xml version="1.0" standalone="no"?> <!DOCTYPE Studenci SYSTEM "student.dtd"> <Studenci> <Student studentid="oz" chodzina="ms,gpp"> <imie>onufry</imie> <nazwisko>zagłoba</nazwisko> <adres>dzikie Pola</adres> <rok>1648</rok> </Student> <Student>... </Student>... ]> </Studenci>

XML Schema Obecnie często w miejsce DTD stosuje się nowsza notację XML Schema, o większych możliwościach. Przykład opisu elementu student <xsd:element name="student"> <xsd:sequence> <xsd:element name="imię" type="xsd:string"/> <xsd:element name="nazwisko" type="xsd:string"/> <xsd:element name="adres" type="xsd:string"/> <xsd:element name="rok" type="xsd:int"/> </xsd:sequence> <xsd:/element>

Atrybuty łacz ace Typ ID to atrybut identyfikujacy do użycia w innych elementach. Typ IDREF to referencja do wartości atrybutu ID w innym elemencie. Brak w nich kontroli typów! Sa jednak bogatsze mechanizmy: XLink i XPointer.

Powiazania między dokumentami Podjęzyk XLL (extensible Link Language), inaczej XLink. Daje więcej możliwości opisu niż odsyłacze HTML. Można tworzyć odsyłacz do wielu dokumentów (z wyborem przez użytkownika) oraz do grup dokumentów (odpowiednik ramki z wykazem pozostałych).

Wyświetlanie Dokument zapisany w XML można przekształcić na inna postać, a także umieścić jako stronę na serwerze WWW. Trzeba jednak określić sposób wyświetlania. Do prostych zastosowań wystarcza kaskadowe arkusze stylów (CSS, Cascading Style Sheets). Arkusz CSS deklaruje się zwykle w nagłówku dokumentu konstrukcja <link rel="stylesheet" type="text/css" href="nazwa.css"> Elementy stylu można też umieszczać jako atrybuty elementów <li style="color: red">

Wyświetlanie W SGML używa się DSSSL. W HTML kaskadowe arkusze stylów (CSS) pozwalaja zmieniać sposób wyświetlania znaczników. W XML możemy określić sposób wyświetlania znaczników używajac XSL (extensible Stylesheet Language), np. Znacznik <giełda> jako tabela (<table>). Znacznik <kurs> jako wiersz tabeli (<tr>). Odpowiednim parserem XML można dokonać konwersji na dowolna inna postać (np. T E X).

Wymiana informacji a XML Jedno z zastosowań dokumentów XML to wymiana informacji między różnymi narzędziami CASE. Strukturę aplikacji wymodelowana w UML w takich narzędziach jak Rational Rose można zapisać jako dokument XML i następnie wczytać do innego narzędzia, np. generatora specjalizowanej aplikacji, lub umieścić na stronie WWW. Zasady odwzorowania: obiekty dokumenty XML klasy schematy XML

XMI Do tych celów OMG (Object Management Group) [www.omg.org] zaproponowała jako standardowy format wymiany schemat XMI (XML Metadata Interchange) [http://cgi.omg.org/cgi-bin/doc?ad/01-06-12]. Wiele ciekawych informacji na ten temat mozna znależć na stronie [http://xmlmodeling.com].

Programowanie XQuery: oparty na XPath język zapytań do przeszukiwania dokumentów XML. Zapytanie jest poleceniem wyszukania fragmentów dokumentu pasujacych do podanego kryterium poszukiwania. XPath: język (a właściwie notacja dla wzorców) do wskazywania (wyznaczania) zbioru wierzchołków w hierarchicznym dokumencie XML.

XPath Notacja pozwalajaca określić zbiór elementów (wierzchołków). W najprostszym przypadku ciag nazw elementów, np. /Studenci/Student/nazwisko oznacza zawartości wszystkich elementów <nazwisko>. Nazwisko pierwszego studenta dostaniemy używajac indeksu /Studenci/Student[1]/nazwisko Można używać funkcji, np. count(/studenci/student) podaje liczbę studentów

Przestrzenie nazw Przestrzeń nazw (namespace) to odpowiednik modułu lub pakietu z języków programowania. Do nazywania przestrzeni nazw zwykle używa się adresów URL, np. http://www.w3.org/2001/xmlschema Uwaga: użycie adresu URL nie oznacza, że pod tym adresem musi istnieć jakiś dokument. Parser XML nawet nie próbuje go ogladać. Zwykle jednak umieszcza się tam jakiś opis danej przestrzeni nazw. Ponieważ URL sa długie, zwykle deklaruje się aliasy, np. <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema">

SQL/XML Pojawiło się w SQL:2003 Nowy wbudowany typ, XML. 4 wbudowane operatory: XMLPARSE: dla podanego napisu SQL zwraca wartość typu XML XMLSERIALIZE: zwraca napis reprezentujacy podane wyrażenie XML XMLROOT: modyfikuje informację w głównym elemencie wartości XML ( korzeniu ) i zwraca zmodyfikowana wartość. XMLCONCAT: łaczy dwa lub więcej wartości XML i zwraca wynik.

SQL/XML Predykat IS DOCUMENT do sprawdzania, czy podana wartość XML ma pojedynczy element główny. 5 funkcji prezentacyjnych generujacych wartości XML z wyrażeń SQL: XMLELEMENT XMLFOREST XMLATTRIBUTE XMLNAMESPACES XMLAGG Wiazania do języków programowania dla wartości XML.

Typ XML Nowy wbudowany typ SQL Można go używać tak jak innych typów SQL jako typu kolumny w tabeli, parametru funkcji, atrybutu typu użytkownika lub zmiennej SQL. Silna typizacja - wartości typu XML sa różne od swojej reprezentacji tekstowej. Semantykę operacji na wartościach XML type określa się zakładajac drzewiasta reprezentację wewnętrzna oparta na XML Information Set Recommendation (Infoset). Model Infoset jest jednak istotnie zmodyfikowany: document information item Infosetu zastępuje się nowym rodzajem elementu informacji, XML root information item.

XML w Postgresie W PostgreSQL funkcjonalność XML oparta jest na standardzie SQL/XML. W wersji 8.3 obejmuje sprawdzanie składni XML i zapytania XPath. Kolumny XML deklarauje się używajac typu xml, np. CREATE TABLE test (a xml, b xml); Dodano specjalizowane funkcji do obsługi zapytań o wartości XML, np. SELECT xmlelement(name test, xmlattributes(a, b)) FROM test; Od wersji PostgreSQL 9.2 dodano wartości nowego wbudowanego typu danych JSON. Jest to inna reprezentacja semistructuralna, wywodzaca się z języka Javascript.