Systemy baz danych - Instytut Informatyki Teoretycznej i Stosowanej

Transkrypt

Systemy baz danych - Instytut Informatyki Teoretycznej i Stosowanej
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Systemy baz danych - wykład XI
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
dr inż. Robert Perliński
Instytut Informatyki Teoretycznej i Stosowanej
Politechnika Częstochowska
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
22 stycznia 2017
1/47
Plan wykładu
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
1 Model semistrukturalny
2 XML
3 XPath
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
4 Bazy danych a XML
Bazy przechowywujące XML
Natywne bazy XML
Źródła
5 Źródła
Systemy baz danych - wykład IX
2/47
Uporządkowanie
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Dane nieuporządkowane (dźwięk, obraz, filmy, tekst)
dowolnego typu, formatu
kolejność nie ma znaczenia
brak reguł
nieprzewidywalne
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Dane uporządkowane
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
zorganizowane w encje, pogrupowane, ułożone w kolejności
encje posiadają te same atrybuty
atrybuty dla danego schematu mają ten sam format i
rozmiar, są ułożone w jednakowym porządku
3/47
“Choroby i lekarstwo”
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
“Choroby”
dane dotyczące tych samych obiektów z różnych źródeł
złożona struktura zależności
wielokrotne zagnieżdżenia
encje z tej samej grupy mogą mieć różne atrybuty
jakie znaczenie ma porządek atrybutów?
rozbudowujące się metadane
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
“Lek” - model semistrukturalny
Źródła
Systemy baz danych - wykład IX
4/47
Model semistrukturalny
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
standaryzacja danych z różnych źródeł
realizacja złożonej struktury zależności
Model semistrukturalny
wielokrotne zagnieżdżenia
XML
zobrazowane przez grafy skierowane
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
encje z tej samej grupy mogą mieć różne atrybuty
jakie znaczenie ma porządek atrybutów - nie musi mieć
model samoopisujący się
wielkości i typy atrybutów encji z tej samej grupy mogą się
różnić
Systemy baz danych - wykład IX
5/47
Przykład
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
osoba: Adam Adamowski
email: [email protected]
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
osoba:
imie: Bartosz
nazwisko: Bartoszewski
email: [email protected]
Natywne bazy XML
Źródła
osoba: Cezary Cezar
siedziba: Cesarzewo
Systemy baz danych - wykład IX
6/47
Graf
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
7/47
Cechy grafu
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
graf skierowany, etykietowany
Model semistrukturalny
XML
wierzchołki to obiekty
etykiety krawędzi to atrybuty obiektów
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
wartości atomowe zawarte w liściach drzewa
brak ograniczeń na etykiety i liczbę następników
brak porządku wychodzących krawędzi
Źródła
Systemy baz danych - wykład IX
8/47
Dalsze cechy modelu
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
wykorzystywany do wymiany i integracji danych z źródeł
heterogenicznych
Model semistrukturalny
struktury danych nie muszą być regularne
XML
duże schematy, szybko rozrastające się
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
łatwość wstawiania danych
łatwość wyszukiwania, bez wiedzy o typach atrybutów
gubienie informacji o typach
trudniejsza optymalizacja
Systemy baz danych - wykład IX
9/47
Języki opisu i przechowywania danych
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
SGML
XML
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
YAML
JSON
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
10/47
Zapytania
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Języki zapytań oparte na pojęciu ścieżki (np. Lorel,
XQuery, XPath)
Ścieżka = wyrażenie regularne opisujące drogę od korzenia
do poszukiwanego wierzchołka/wierzchołków
Przykłady ścieżek:
biblio.ksiazka|artykul.autor
biblio._*.autor
Zapytanie “Wszyscy autorzy książek”:
Query z1
select autor: x
from biblio.ksiazka.autor x;
Systemy baz danych - wykład IX
SELECT extract(VALUE(k),'//autor')
FROM ksiazki_xml k;
11/47
XML
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
XML
(ang. Extensible Markup Language - Rozszerzalny Język
Znaczników) - uniwersalny język formalny przeznaczony do
reprezentowania danych w sposób strukturalny.
Model semistrukturalny
XML
nie jest językiem programowania
XPath
dokumenty zawierają znaczniki definiowane przez
programistę
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
niezależny od platformy
otwarty, elastyczny, bezpłatny, modularny
standard rekomendowany oraz specyfikowany przez W3C
uproszczenie SGML’a
nadmiarowy
Systemy baz danych - wykład IX
12/47
XML a model semistrukturalny
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Różnice:
W modelu danych semistrukturalnych można wyrazić
dowolny graf skierowany, w XML - wyłącznie drzewa.
W dokumentach XML kolejność występowania elementów
w ramach elementu nadrzędnego jest ważna. W modelu
semistrukturalnym krawędzie nie są porządkowane.
W dokumencie XML istnieje kilka typów składników
struktury, spośród których podstawowe to elementy i
atrybuty. W modelu danych semistrukturalnych nie istnieje
takie rozróżnienie.
Systemy baz danych - wykład IX
13/47
Przykład I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
<biblioteka>
<ksiazka>
<autor>
<imiona>
<imie>Philip</imie>
<imie>Kindred</imie>
<imiona>
<nazwisko>Dick</nazwisko>
</autor>
<tytul>Ubik</tytul>
<rok>1966</rok>
</ksiazka>
Systemy baz danych - wykład IX
14/47
Przykład II
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
<ksiazka>
<autor>
<imie>George</imie>
<nazwisko>Orwell</nazwisko>
</autor>
<tytul>Rok 1984</tytul>
<rok>1953</rok>
</ksiazka>
Natywne bazy XML
Źródła
</biblioteka>
Systemy baz danych - wykład IX
15/47
DOM
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Obiektowy model dokumentu
(ang. Document Object Model) - sposób reprezentacji
złożonych dokumentów XML i HTML w postaci modelu
obiektowego. Model ten jest niezależny od platformy i języka
programowania.
Standard W3C DOM definiuje zespół klas i interfejsów,
pozwalających na dostęp do struktury dokumentów oraz jej
modyfikację poprzez tworzenie, usuwanie i modyfikację tzw.
węzłów.
Systemy baz danych - wykład IX
16/47
struktura drzewa DOM
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
17/47
Poziomy poprawności dokumentów XML
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
Poprawność składniowa
(ang. well-formed) - zgodność z regułami składni XML. Reguły
te obejmują m.in. konieczność domykania wszystkich
znaczników. Dokument niepoprawny składniowo nie może być
przetworzony przez parser XML.
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Poprawność strukturalna
(ang. valid) - zgodność z definicją dokumentu, tzn.
dodatkowymi regułami określonymi przez użytkownika. Do
precyzowania tych reguł służą specjalne języki.
Najpopularniejszymi są DTD, XML Schema oraz RELAX NG.
Systemy baz danych - wykład IX
18/47
Dokument XML well-formed I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
zawiera deklarację XML z numerem wersji, umieszczoną
na początku pliku
<?xml version="1.0"?>
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
zawiera dokładnie jeden element główny (ang. root
element)
każdy element zaczyna się znacznikiem początku elementu
np. <data> - kończy identycznym znacznikiem końca
elementu np. </data>
elementy puste kończymy wewnątrz znacznika np.:
<element-pusty />
elementy puste mogą zawierać atrybuty
Systemy baz danych - wykład IX
19/47
Dokument XML well-formed II
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
nazwy elementów mogą zawierać znaki alfanumeryczne
(litery a-z, A-Z oraz cyfry 0-9), znaki diakrytyczne (nie
zalecane) oraz 3 znaki interpunkcyjne (podkreślenie _,
myślnik -, kropka .)
dwukropek zarezerwowany dla przestrzeni nazw np.
<przestrzen1:element>
nazwy elementów nie mogą zaczynać się od znaków
interpunkcyjnych, cyfr, słów: xml, XML, xML itp.
elementy mogą posiadać dzieci i atrybuty (wartość
atrybutu w cudzysłowie):
Systemy baz danych - wykład IX
20/47
Dokument XML well-formed III
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
<?xml version="1.0" standalone="yes"?>
<przykład>
<typ>niezwykle oryginalny</typ>
Witaj świecie!
</przykład>
<?xml version="1.0" standalone="yes"?>
<przykład typ="niezwykle oryginalny">
Witaj świecie!
</przykład>
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
komentarze zaczynają się znakami: <!--, a kończą: -->
instrukcje przetwarzania (wykorzystywane do przeniesienia
informacji do aplikacji) rozpoczynają się znakami: <?, a
kończą: ?>
przeznaczony do wyświetlania
Systemy baz danych - wykład IX
21/47
Dokument XML - valid
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
jest well-formed
opisany schematem:
Model semistrukturalny
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE Student SYSTEM "student.dtd">
<Student>
...
</Student>
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
jest w pełni zgodny ze schematem
przeznaczony do wyświetlania i przetwarzania
Systemy baz danych - wykład IX
22/47
Znaczniki DTD
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
<!DOCTYPE znacznik-główny [ element ... ]>
<!ELEMENT znacznik (składnik,...)>
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
<!DOCTYPE Studenci [
<!ELEMENT Studenci (Student*)>
<!ELEMENT Student (imie,nazwisko,adres,rok)>
<!ELEMENT imie (#PCDATA)>
<!ELEMENT nazwisko (#PCDATA)>
...
]>
Systemy baz danych - wykład IX
23/47
Znaczniki DTD - użycie
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
<?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>
Systemy baz danych - wykład IX
24/47
Atrybuty DTD
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
umieszczane w znaczniku otwierającym
postać: atrybut=”wartość”
mogą służyć do łączenia elementów (links)
deklaracja:
<!ATTLIST element
atrybut typ
...
>
Systemy baz danych - wykład IX
25/47
Atrybuty DTD - definicja
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
<!DOCTYPE Studenci [
<!ELEMENT Studenci (Student*)>
<!ELEMENT Student (imie,nazwisko,adres,rok)>
<!ATTLIST Student
studentID ID
chodziNa IDREFS>
<!ELEMENT nazwisko (#PCDATA)>
...
]>
Systemy baz danych - wykład IX
26/47
Atrybuty DTD - użycie
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
<?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>
Systemy baz danych - wykład IX
27/47
Atrybuty łączące
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
ID to atrybut identyfikujący - do użycia w innych
elementach
IDREF to referencja do wartości atrybutu ID w innym
elemencie
brak kontroli typów powiązań!!!
bogatsze mechanizmy: XLink i XPointer.
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
28/47
XPath
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
XPath
(ang. XML Path Language, w wolnym tłumaczeniu Język
ścieżek XML) - język służący do adresowania części dokumentu
XML.
XPath:
wykorzystuje ścieżki do nawigowania po
dokumencie XML;
zawiera bibliotekę standardowych
funkcji;
stanowi główny element XSLT;
jest rekomendowany przez W3C.
Systemy baz danych - wykład IX
29/47
Ścieżka lokalizacji
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Wskazanie węzła lub zbioru węzłów - ścieżka lokalizacji.
Ścieżka składa się z jednego lub więcej kroków lokalizacji
oddzielanych od siebie znakami / lub //.
Jeśli ścieżka zaczyna się od /, nazywamy ją ścieżką
bezwzględną. W przeciwnym wypadku ścieżkę nazywamy
względną, zaczyna się ona od bieżącego węzła nazywanego
węzłem kontekstowym.
Źródła
Systemy baz danych - wykład IX
30/47
Budowa wyrażeń
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
Krok lokalizacji składa się z osi, badania węzła oraz zera lub
więcej predykatów. Jeśli np. wyrażenie ma postać:
child::n:Kontakt[position()=2]
nazwą osi jest child, badanie węzła to wyrażenie:
n:Kontakt
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
natomiast zapis:
[position()=2]
Natywne bazy XML
Źródła
to predykat. Ścieżki lokalizacji składać się mogą z jednego lub
więcej kroków lokalizacji, np.
/descendant::n:Adresy/child::n:Adres
wybiera elementy n:Adres mające rodzica n:Adresy.
Systemy baz danych - wykład IX
31/47
Osie Xpath I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
Oś
to kolekcja węzłów lub atrybutów o określonym pokrewieństwie
wobec węzła kontekstowego.
Oś
ancestor
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
ancestor-or-self
attribute
child
descendant
descendant-or-self
Systemy baz danych - wykład IX
Znaczenie
dotyczy przodków węzła kontekstowego.
Przodkami są rodzice węzła kontekstowego,
rodzice tych rodziców itd., aż po węzeł główny włącznie
dotyczy węzła kontekstowego i jego przodków
dotyczy atrybutów węzła kontekstowego
dotyczy dzieci węzła kontekstowego
dotyczy potomków węzła kontekstowego. Potomek to dziecko, dziecko dziecka itd.
dotyczy węzła kontekstowego i jego potomków
32/47
Osie Xpath II
Systemy baz
danych wykład IX
Oś
following
dr inż.
Robert
Perliński
Model semistrukturalny
following-sibling
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
namespace
parent
preceding
Natywne bazy XML
Źródła
precending-sibling
self
Systemy baz danych - wykład IX
Znaczenie
dotyczy wszystkich węzłów z dokumentu, do
którego należy węzeł kontekstu, które znajdują się po nim
dotyczy wszystkich węzłów znajdujących się
na tym samym poziomie co węzeł kontekstu,
za tym węzłem
dotyczy węzłów przestrzeni nazw węzła kontekstu
dotyczy węzła rodzica węzła kontekstowego
dotyczy wszystkich węzłów z dokumentu, do
którego należy węzeł kontekstu, które znajdują się przed nim
dotyczy wszystkich węzłów znajdujących się
na tym samym poziomie co węzeł kontekstu,
przed tym węzłem
zawiera węzeł kontekstowy
33/47
Predykaty XPath
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Predykaty XPath zawarte są w nawiasach kwadratowych [],
przykładowe testy:
wartości atrybutu w danym łańcuchu,
wartości elementu,
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
czy element zawiera określone “dziecko”, atrybut lub inny
element,
pozycji węzła w drzewie.
W predykatach można użyć dowolnego rodzaju typu wyrażeń:
zbioru węzłów,
Natywne bazy XML
Źródła
logicznego,
liczbowego,
tekstowego,
wynikowego fragmentu drzew.
Systemy baz danych - wykład IX
34/47
Funkcje Xpath I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Funkcja
last()
position()
count(zbiór-węzłów)
Model semistrukturalny
XML
XPath
Bazy danych a
XML
namespace-uri(zbiórwęzłów)
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
name(zbiór-węzłów)
local-name(zbiórwęzłów)
Systemy baz danych - wykład IX
Znaczenie
zwraca liczbę węzłów w zbiorze
zwraca położenie węzła kontekstowego w
zbiorze węzła kontekstowego
zwraca liczbę węzłów w przekazanym zbiorze. Jeśli argument nie zostanie podany,
zliczone zostaną węzły zbioru węzła kontekstowego
zwraca adres URI przestrzeni nazw pierwszego węzła ze zbioru. Pominięcie parametru powoduje uruchomienie funkcji na węźle kontekstowym
zwraca pełną kwalifikowaną nazwę pierwszego węzła ze zbioru. Pominięcie parametru powoduje uruchomienie funkcji na węźle kontekstowym
zwraca nazwę lokalną pierwszego węzła ze
zbioru węzłów. Pominięcie parametru po-
35/47
Skróty I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Wyrażenie
self::node()
parent::node()
child::dziecko
attribute::dziecko
/descendant::*
dziecko[position() = 3]
dziecko[position() = last()]
Skrót
.
..
dziecko
@dziecko
//*
dziecko[3]
dziecko[last()]
Źródła
Systemy baz danych - wykład IX
36/47
Przykłady I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Wyrażenie
ksiegarnia
Model semistrukturalny
/ksiegarnia
XML
ksiegarnia/ksiazka
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
//ksiazka
ksiegarnia//ksiazka
//@jezyk
Systemy baz danych - wykład IX
Objaśnienie
Wybiera wszystkie dzieci węzła
księgarnia
Wybiera
korzeń
struktury
księgarnia
Wybiera dzieci ksiegarni, które
sa typu ksiazka
Wybiera elementy typu ksiazka
bez względu na położenie
Wybiera wszystkich potomków
ksiegarni typu ksiazka
Wybiera wszystkie atrybuty o nazwie jezyk
37/47
Przykłady - predykaty I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
/ksiegarnia/ksiazka[1]
- Pierwsza ksiazka będąca dzieckiem ksiegarni
/ksiegarnia/ksiazka[last()]
- Ostatnia ksiazka będąca dzieckiem ksiegarni
/ksiegarnia/ksiazka[last()-1]
- Przedostatnia ksiazka będąca dzieckiem ksiegarni
/ksiegarnia/ksiazka[position()<3]
- Pierwsze dwie ksiazki będąca dziećmi ksiegarni
//tytul[@jezyk]
- Wybiera wszystkie tytuly posiadajace atrybut jezyk
//tytul[@jezyk=’pl’]
- Wybiera wszystkie polskie tytuły
Systemy baz danych - wykład IX
38/47
Przykłady - predykaty II
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
/ksiegarnia/ksiazka[cena>35.00]
- Wybiera ksiazki, których dziecko - cena ma wartość
większą niż 35
/ksiegarnia/ksiazka[cena>35.00]/tytul
- Pokazuje tytuły książek droższych niż 35
//ksiazka[@isbn="83-729-149-X"]
- ksiazka o atrybucie isbn równym podanej wartości
//ksiazka[count(autorzy/autor)>2]
- książka, posiadająca więcej niż dwóch autorów
//ksiazka[contains(tytul,"XML")]
- książka zawierająca w tytule słowo XML
Systemy baz danych - wykład IX
39/47
Bazy danych a XML
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Bazy danych umożliwiające przechowanie danych w
formacie XML (ang. XML-enabled 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.
Systemy baz danych - wykład IX
40/47
Przechowywanie danych XML
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
XPath
w systemie plików
w atrybutach typu, BLOB, CLOB, XMLType
w bazach danych w postaci zdekomponowanej
Bazy danych a
XML
Bazy
przechowywujące
XML
mapowanie schematów XML na schematy baz danych
generowanie schematów XML ze schematów baz danych i
odwrotnie
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
41/47
Obsługa XMLType I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
CREATE TABLE cv OF XMLType;
CREATE TABLE produkty_XML (
kod Number(5) PRIMARY KEY,
opis XMLType
);
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
INSERT INTO produkty_XML VALUES ( 125,
XMLType('<produkt>
<nazwa>Britax Evolva 123</nazwa>
<cena>699</cena>
</produkt>')
);
SELECT opis FROM produkty_XML;
Systemy baz danych - wykład IX
42/47
Obsługa XMLType II
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
SELECT * FROM cv;
SELECT Extractvalue(Value(k),'//ksiazka[cena=31]/tytul')
FROM ksiazki_XML k;
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
SELECT k.Existsnode('//ksiazka[@isbn="83-729-149-X"]')
FROM ksiazki_XML k;
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
43/47
Natywne bazy XML I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
Baza danych dokumentów XML:
XML
definiuje model dla dokumentów XML-owych;
XPath
dokumenty XML podstawową jednostką składowania;
Bazy danych a
XML
wykorzystuje dowolny sposób fizycznego składowania.
Bazy
przechowywujące
XML
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
44/47
Funkcjonalność bazy danych dokumentów XML I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
XML
Bazy dokumentów XML zapewniają:
składowanie dokumentów XML,
definiowanie i przechowywanie schematów (DTD,
XMLSchema),
XPath
obsługa zapytań (XPath, XQuery, XML-QL, Quilt),
Bazy danych a
XML
obsługa modyfikacji, wstawiania i usuwania dokumentów,
Bazy
przechowywujące
XML
Natywne bazy XML
obsługa interfejsów programistycznych (XML:DB API,
XQuery API for Java - XQJ, SAX, DOM, JDOM),
Źródła
funkcjonalność tradycyjnych SZBD.
Systemy baz danych - wykład IX
45/47
Źródła I
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
Model semistrukturalny
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.
XML
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
http:
//www.dcs.bbk.ac.uk/~ptw/teaching/ssd/toc.html
http://edu.pjwstk.edu.pl/wyklady/rbd/scb/
wyklad4/obrelb.htm
Natywne bazy XML
Źródła
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
Systemy baz danych - wykład IX
46/47
Źródła II
Systemy baz
danych wykład IX
dr inż.
Robert
Perliński
http://www.pabloware.com/xml/
Model semistrukturalny
XML
http://wazniak.mimuw.edu.pl/index.php?title=
Zaawansowane_systemy_baz_danych
XPath
Bazy danych a
XML
Bazy
przechowywujące
XML
Wikipedia
http://www.w3schools.com/xpath/
Natywne bazy XML
Źródła
Systemy baz danych - wykład IX
47/47