Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML w bazach danych
XML w bazach danych
Wyk
Wyk
ł
ł
ad 13
ad 13
15.01.2008
15.01.2008
XML
Documents
& Schemas
Legacy
Database
Persistent
Database
XML Consumer
XML Producer
XML
XML
XML
API or
Query
Publish XML
Store XML
XML Interfaces
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Internet
Images
Fax
Edmund Boister
Minimillennium
Minga
Customer# 08/15-4711
Madams and Gentlemen!
Please invoice the following
order:
#
Description
<?xml >
<text>kj flsjd kjs lskjlkj
lskjd lksjl fslk jdlksj
fksjdlkjlkjf lskjdlkjf slkjkj
flskdjljdkfj s lkjlkjlsd s dfl
skjd f slkdjflskdj
lslkjdflk lskjd lfksjdlk
lskdjfl aölskjdfölskdjf
söldkfjlskdj föaslkdjlskdjf
ösldkfjlskd föalskdj
ksjdlfkjslkjd
</text>
<?xml >
<text>kj flsjd kjs lskjlkj
lskjd lksjl fslk jdlksj
fksjdlkjlkjf lskjdlkjf slkjkj
flskdjljdkfj s lkjlkjlsd s dfl
skjd f slkdjflskdj
lslkjdflk lskjd lfksjdlk
lskdjfl aölskjdfölskdjf
söldkfjlskdj föaslkdjlskdjf
ösldkfjlskd föalskdj
ksjdlfkjslkjd
</text>
<?xml >
<text>kj flsjd kjs lskjlkj
lskjd lksjl fslk jdlksj
fksjdlkjlkjf lskjdlkjf slkjkj
flskdjljdkfj s lkjlkjlsd s dfl
skjd f slkdjflskdj
lslkjdflk lskjd lfksjdlk
lskdjfl aölskjdfölskdjf
söldkfjlskdj föaslkdjlskdjf
ösldkfjlskd föalskdj
ksjdlfkjslkjd
</text>
<?xml >
<text>kj flsjd kjs lskjlkj
lskjd lksjl fslk jdlksj
fksjdlkjlkjf lskjdlkjf slkjkj
flskdjljdkfj s lkjlkjlsd s dfl
skjd f slkdjflskdj
lslkjdflk lskjd lfksjdlk
lskdjfl aölskjdfölskdjf
söldkfjlskdj föaslkdjlskdjf
ösldkfjlskd föalskdj
ksjdlfkjslkjd
</text>
Video
Databases
Applications
eXtensible
eXtensible
Markup Language
Markup Language
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Internet, SQL i XML w biznesie
Internet, SQL i XML w biznesie
Internet – nieoceniony sposób komunikacji z
klientami, pracownikami i partnerami handlowymi
•
przyspiesza transakcje finansowe
•
umożliwia dotarcie do ogromnej rzeszy klientów
•
ułatwia klientom wyszukanie najlepszej oferty
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Internet, SQL i XML w biznesie
Internet, SQL i XML w biznesie
przetwarzanie danych – kluczowa część aplikacji
biznesowych
• relacyjne systemy baz danych – efektywne
zarządzanie, przechowywanie, przetwarzanie i
wymiana danych
• relacyjne bazy danych – wykorzystywane przez
większość firm
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Internet, SQL i XML w biznesie
Internet, SQL i XML w biznesie
konieczność integracji danych oraz aplikacji w
ramach firmy i między firmami
• EDI – Electronic Data Interchange
• rozwiązanie – XML – technologia do budowania
rozwiązań integracyjnych i swobodnej wymiany
danych
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Zastosowanie XML w rozwi
Zastosowanie XML w rozwi
ą
ą
zaniach
zaniach
typu
typu
business
business
-
-
to
to
-
-
consumer
consumer
(B2C)
(B2C)
handel elektroniczny
• dane składowane w bazie relacyjnej, a prezentowane na
stronach WWW – XML jako pośrednik
• dane XML mogą być wyświetlane w oparciu o różne arkusze
stylów na różnych urządzeniach klienckich (HTML -
przeglądarki, WML - komórki)
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Zastosowanie XML w rozwi
Zastosowanie XML w rozwi
ą
ą
zaniach
zaniach
typu
typu
business
business
-
-
to
to
-
-
enterprise
enterprise
(B2E)
(B2E)
wewnętrzne aplikacje oparte na technologiach internetowych
• dostęp do dowolnych danych i wykonywanie na nich operacji
za pomocą przeglądarek obsługujących XML (np: Microsoft
Internet Explorer)
• aplikacje mogą stosować XML jako neutralny sposób opisu i
wymiany danych
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Zastosowanie XML w rozwi
Zastosowanie XML w rozwi
ą
ą
zaniach
zaniach
typu
typu
business
business
-
-
to
to
-
-
business
business
(B2B)
(B2B)
procesy biznesowe między partnerami handlowymi
• XML jako idealny sposób do opisu dokumentów
wymienianych między firmami (zamówienia, faktury itp)
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML
Editor
<contact>
<n>chuck</n>
<zip>US</zip>
</contact>
XML
XML
Database
Access
C++ API
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<xml>
</xml>
JSP
Web Server
Web Browser
Internet
J
N
I
J
a
v
a
C
la
s
s
XSL-T
CSS
XML Database
Client
Server
<xml>
</xml>
Servlets
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Warstwa danych
Warstwa dost
ę
pu do danych
Warstwa logiki biznesowej
Warstwa prezentacji
Warstwa klienta
TCP/IP Network
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
XML generowany i przetwarzany przez
klienta
Wielowarstwowe aplikacje XML
Wielowarstwowe aplikacje XML
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Warstwa danych
Warstwa dost
ę
pu do danych
Warstwa logiki biznesowej
Warstwa prezentacji
TCP/IP Network
XML generowany przez warstw
ę
prezentacyjn
ą
przetwarzane przez klienta
XML generowany w warstwie
prezentacyjnej
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<body>
<h1>chuck</h1>
<h2>Le Rue</h2>
<h3>USA 11</h3>
</body>
HTML
Aplikacja klienta
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<body>
<h1>chuck</h1>
<h2>Le Rue</h2>
<h3>USA 11</h3>
</body>
HTML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
Wielowarstwowe aplikacje XML
Wielowarstwowe aplikacje XML
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Warstwa danych
Warstwa dost
ę
pu do danych
Warstwa logiki biznesowej
Warstwa prezentacji
TCP/IP Network
XML generowany przez warstw
ę
prezentacyjn
ą
przetwarzane przez klienta
XML generowany w warstwie
prezentacyjnej
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<body>
<h1>chuck</h1>
<h2>Le Rue</h2>
<h3>USA 11</h3>
</body>
HTML
Aplikacja klienta
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<body>
<h1>chuck</h1>
<h2>Le Rue</h2>
<h3>USA 11</h3>
</body>
HTML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
XML generowany przez warstw
ę
biznesow
ą
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
Wielowarstwowe aplikacje XML
Wielowarstwowe aplikacje XML
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Warstwa danych
Warstwa dost
ę
pu do danych
Warstwa logiki biznesowej
Warstwa prezentacji
TCP/IP Network
XML generowany przez warstw
ę
prezentacyjn
ą
przetwarzane przez klienta
XML generowany w warstwie
prezentacyjnej
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<body>
<h1>chuck</h1>
<h2>Le Rue</h2>
<h3>USA 11</h3>
</body>
HTML
Aplikacja klienta
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<body>
<h1>chuck</h1>
<h2>Le Rue</h2>
<h3>USA 11</h3>
</body>
HTML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
XML generowany przez warstw
ę
biznesow
ą
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
Generowany przez warstw
ę
dost
ę
pu
do danych
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
Wielowarstwowe aplikacje XML
Wielowarstwowe aplikacje XML
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Warstwa danych
Warstwa dost
ę
pu do danych
Warstwa logiki biznesowej
Warstwa prezentacji
TCP/IP Network
XML generowany przez warstw
ę
prezentacyjn
ą
przetwarzane przez klienta
XML generowany w warstwie
prezentacyjnej
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<body>
<h1>chuck</h1>
<h2>Le Rue</h2>
<h3>USA 11</h3>
</body>
HTML
Aplikacja klienta
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<body>
<h1>chuck</h1>
<h2>Le Rue</h2>
<h3>USA 11</h3>
</body>
HTML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XSLT
XML generowany przez warstw
ę
biznesow
ą
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
Generowany przez warstw
ę
dost
ę
pu
do danych
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
<contact>
<n>chuck</n>
<ad>Le Rue</ad>
<zip>USA 11</zip>
</contact>
XML
XML składowany w bazie danych
Wielowarstwowe aplikacje XML
Wielowarstwowe aplikacje XML
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
gsgsgs sl wpwp
XML dokument
Baza danych zorientowana na XML
• Bazy danych – składowanie i dostęp do uporządkowanych danych
• XML – standard wymiany strukturalnej informacji
• Jaki typ aplikacji należy stworzyć, aby składować w
bazach danych strukturalna informację XML ?
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Dane XML vs.
Dane XML vs.
Dokumenty
Dokumenty
XML jako warstwa transmisyjna
- Data-Centric Documents
(dane jednolite i spójne)
•
uniwersalno
ść
• elastyczno
ść
transformacji i prezentacji
XML jako nowy format danych
- Document-Centric Documents
(
dane niejodnolite o zmiennej strukturze)
•
elastyczno
ść
struktury
• prostota implementacji
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Dane XML vs.
Dane XML vs.
Dokumenty
Dokumenty
Data-Centric Documents -
Składowanie dokumentów XML
ukierunkowane na dane.
Dokumentu posiada wyra
ź
ny podział struktury, bez przeplatania
tre
ś
ci elementu XML ze znacznikami. Umo
ż
liwia to na proste
rozbicie struktury XML i jej odwzorowanie na znane modele danych
jak np. hierarchiczny, relacyjny czy obiektowy. Systemy
zarz
ą
dzania bazami danych obsługuj
ą
ce tego rodzaju dokumenty
nazywane s
ą
„XML enabled”. Czasami mo
ż
liwe jest równie
ż
zastosowanie warstwy po
ś
rednicz
ą
cej (middleware)
odwzorowuj
ą
cej XML na model danych obsługiwany przez
okre
ś
lony SZBD. Oprogramowanie warstwy po
ś
redniej realizuje
najcz
ęś
ciej odwzorowanie: XML->SQL.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Data-Centric Documents
<Flights>
<Airline>ABC Airways</Airline>
<Origin>Dallas</Origin>
<Destination>Fort Worth</Destination>
<Flight>
<Departure>09:15</Departure>
<Arrival>09:16</Arrival>
</Flight>
<Flight>
<Departure>11:15</Departure>
<Arrival>11:16</Arrival>
</Flight>
<Flight>
<Departure>13:15</Departure>
<Arrival>13:16</Arrival>
</Flight>
</Flights>
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Data-Centric Documents
•
Wymiana danych pomi
ę
dzy baz
ą
danych a dokumentem XML
wymaga odwzorowania schematu dokumentu (DTD, XML Schema)
na schemat bazy danych. Odwzorowanie jest cz
ę
sto realizowane za
pomoc
ą
implementacji wyra
ż
e
ń
SQL, XQuery czy XPath. Je
ż
eli z
jaki
ś
przyczyn dana struktura dokumentu XML nie mo
ż
e by
ć
bezpo
ś
rednio odwzorowana na struktur
ę
bazy danych stosuje si
ę
dodatkow
ą
transformacj
ę
dokumentu XML do innej postaci
wykorzystuj
ą
c XSLT.
•
Odwzorowanie schematu dokumentu wykorzystuje zasadniczo tylko
logiczn
ą
struktur
ę
dokumentu, i co wi
ę
cej, ogranicza si
ę
jedynie do
najwa
ż
niejszych jej cz
ęś
ci tj.: elementów i atrybutów.
•
Odwzorowanie realizowane jest najcz
ęś
ciej do dwóch postaci:
-
tablicowej,
-
obiektowo-relacyjnej.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Data-Centric Documents
• Odwzorowanie tablicowe jest bardzo cz
ę
sto realizowane przez warstwy
po
ś
rednie, a polega na utworzeniu lub odtworzeniu struktury
drzewiastej dokumentu XML w formie uszczegółowiania elementów
bazy danych.
• Odwzorowanie obiektowo-relacyjne dokumentu XML polega na
utworzeniu struktury klasy danego typu (np. bazuj
ą
c na „complex
element type” dla XML Schema), a pó
ź
niej odwzorowaniu go na model
relacyjny (klasy na tabele; pola na kolumny, itd.).
• Nale
ż
y podkre
ś
li
ć
i
ż
odwzorowanie obiektowo-relacyjne nie
wykorzystuje modelu DOM danego dokumentu, który jest raczej
wła
ś
ciwy dla organizacji logicznej dokumentu XML (relacja Element-
>Element zamiast Samochod->Kierowca), ni
ż
dla reprezentacji danych.
• Dokumenty typu „data-centric” s
ą
równie
ż
przechowywane w bazach
danych typu NXD. Jedn
ą
z przyczyn zastosowania tego rodzaju bazy
dla dokumentów „data-centric” mo
ż
e by
ć
potrzeba szybkiego
pobierania dokumentów XML z bazy. Poniewa
ż
w NXD składowane s
ą
dokumenty, zatem nie ma potrzeby ich tworzenia w odpowiedzi na
dane
żą
danie pobrania.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Dane XML vs.
Dane XML vs.
Dokumenty
Dokumenty
<A>
<B>
<C>ccc</C> Tabela A
<D>ddd</D> --------
<E>eee</E> C D E
</B> ---
---
---
<B> <=> ... ... ...
<C>fff</C> ccc ddd
eee
<D>ggg</D> fff
ggg
hhh
<E>hhh</E> ... ... ...
</B>
</A>
Mapowanie wg tabel
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Dane XML vs.
Dane XML vs.
Dokumenty
Dokumenty
Mapowanie wg obiektów
XML Obiekty Tabele
============= ============ ===============
Tabela A
<A> obiekt A { -------
<B>bbb</B> B = "bbb" B C D
<C>ccc</C> <=> C = "ccc" <=> ---
---
---
<D>ddd</D> D = "ddd" ... ... ...
</A> } bbb
ccc ddd
... ... ...
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Data-Centric Documents
• Oddzielnym zagadnieniem jest odwzorowanie typów danych. W XML
zasadniczym typem danych jest tekst. Zatem konieczne jest
przeprowadzenie konwersji typów uwzgl
ę
dniaj
ą
cej zarówno zakres jak
i rodzaj danych. Ponadto nale
ż
y pami
ę
ta
ć
o stosowanych zestawach
danych. XML bazuje zasadniczo na Unicodzie, z wyj
ą
tkiem wybranych
znaków steruj
ą
cych, które nie powinny by
ć
wykorzystane jako tre
ść
danych.
• Kolejnym problemem s
ą
dane binarne. Odniesienie do nich jest
mo
ż
liwe poprzez zastosowanie encji, nie podlegaj
ą
cych rozbiorowi
(interpretacji przez procesor XML). Poniewa
ż
encja jest jednak
elementem fizycznym a nie logicznym struktury XML zatem nie jest
odwzorowywana. Inna mo
ż
liwo
ść
to zakodowanie bajtów znakami
(kodowanie Base64). Brak jest jednak standardowych notacji na
oznaczenie,
ż
e dany element zawiera tego typu zakodowane dane, st
ą
d
jest to tylko i wył
ą
cznie w opcji oprogramowania realizuj
ą
cego
odwzorowanie.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Dane XML vs.
Dane XML vs.
Dokumenty
Dokumenty
Document-Centric Documents -
Składowanie dokumentów
XML ukierunkowane na dokumenty.
W przypadku tego typu dokumentów tworzone SZBD składaj
ą
całe
dokumenty. Stanowi
ą
zatem swoiste kolekcje dokumentów, st
ą
d
cz
ę
sto słowo „kolekcja” jest zamienne w tym przypadku wzgl
ę
dem
tabeli (relacji). Kolekcje dokumentów XML s
ą
zorganizowane w
ramach tzw. „Native XML Database” (NXD). Bazy dokumentów XML
s
ą
dedykowane tym wła
ś
nie dokumentom, a tworzone dla nich
systemy zarz
ą
dzania umo
ż
liwiaj
ą
podstawowe operacje
zapisywania, usuwania, aktualizacji czy wyszukiwania. Z tych
wzgl
ę
dów tworzone s
ą
równie
ż
propozycje norm (rekomendacji) jak
np. XML:DB (http://www.xmldb.org/).
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Documents-Centric Documents
<Product>
<Intro> The <ProductName>Turkey Wrench</ProductName> from
<Developer>Full Fabrication Labs, Inc.</Developer> is <Summary>like a
monkey wrench, but not as big.</Summary> </Intro>
<Description>
<Para>The turkey wrench, which comes in <i>both right- and left- handed
versions (skyhook optional)</i>, is made of the <b>finest stainless
steel</b>. The Readi-grip rubberized handle quickly adapts to your hands,
even in the greasiest situations. Adjustment is possible through a variety of
custom dials.</Para>
<Para>You can:</Para>
<List>
<Item><Link URL="Order.html">Order your own turkey
wrench</Link></Item> <Item><Link URL="Wrenches.htm">Read more
about wrenches</Link></Item> <Item><Link URL="Catalog.zip">Download
the catalog</Link></Item> </List> <Para>The turkey wrench costs <b>just
$19.99</b> and, if you order now, comes with a <b>hand-crafted shrimp
hammer</b> as a bonus gift.</Para> </Description>
</Product>
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Documents-Centric Documents
• Składowanie dokumentów XML mo
ż
e równie
ż
by
ć
zrealizowane na
wiele sposobów. Pierwsze mo
ż
liwe rozwi
ą
zanie to zapis dokumentu
XML w modelu hierarchicznym -> jako plik w systemie plików. Innym
rozwi
ą
zaniem mo
ż
e by
ć
zastosowanie typów danych LOB (Large
OBject, np.. CLOB -> Character Large OBject). Jeszcze innym
rozwi
ą
zaniem jest składowanie dokumentu XML jako obiektu w
obiektowej bazie danych.
• Składowanie dokumentów XML wymaga w tym wypadku spełnienia
warunku identyczno
ś
ci dokumentu dostarczonego do archiwum z
dokumentem pobieranym z archiwum (round-tripping). Jest to
niezwykle wa
ż
na własno
ść
szczególnie dla procesu podpisywania
dokumentów XML (XML Digital Signature Standard); gdzie ka
ż
dy znak
dokumentu musi wyst
ą
pi
ć
aby pozytywnie zweryfikowa
ć
podpis.
• Składowanie dokumentów XML (tzn. w formie document-centric)
realizowane jest w ramach technologii Native XML Databases.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML w bazach danych
XML w bazach danych
XML-enabled – oznacza bazę, umożliwiającą eksport i
import dokumentów XML-owych, jednak
przechowującą dane w wewnętrznej postaci innej niż
XML-owa.
( obiekty CLOB, RDBMS, ORDBMS, OODBMS)
Native XML – sugeruje „przechowywanie XML-a w
naturalnej postaci, bez ingerencji w strukturę” – co
może oznaczać niewiele więcej niż zarządzanie
blokami tekstu.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML w bazach danych
XML w bazach danych
XPath
XQuery
DOM
OO
Database
LDAP
Relational
Database
Native
storage
File
System
Logical
Logical
Layer
Layer
Physical
Physical
Layer
Layer
XML
XML
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Zapis danych
Zapis danych
XML
XML
w
w
RDBMS
RDBMS
•
Dane XML do obiektów w aplikacji
•
Dane z obiektów aplikacji do struktury bazy danych
•
Dwa poziomy transformacji danych
•
Producenci RDBMS dodają narzędzia do obsługi XML'a
table
te
xt
te
xt
te
xt
te
xt
te
xt
te
xt
te
xt
te
xt
table
te
xt
te
xt
te
xt
te
xt
te
xt
te
xt
te
xt
te
xt
Disk
Working Memory
object
Application
object
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
<bib>
<bib>
<book id=
<book id=
“
“
a1
a1
”
”
>
>
<title>
<title>
Music
Music
</title>
</title>
<author>
<author>
Kiritzov
Kiritzov
</author>
</author>
<
<
isbn
isbn
>
>
0
0
-
-
07
07
-
-
212489
212489
-
-
X
X
</
</
isbn
isbn
>
>
</book>
</book>
<book id=
<book id=
“
“
b1
b1
”
”
>
>
<title>
<title>
HTML 4.0
HTML 4.0
</title>
</title>
<author>
<author>
Martin
Martin
</author>
</author>
<
<
isbn
isbn
>
>
0
0
-
-
03
03
-
-
647449
647449
-
-
1
1
</
</
isbn
isbn
>
>
</book>
</book>
</bib>
</bib>
id
id
title
title
author
author
isbn
isbn
price
price
a1 Music
a1 Music
Kiritzov
Kiritzov
0
0
-
-
07
07
-
-
212489
212489
-
-
X null
X null
b1 HTML 4.0 Martin 0
b1 HTML 4.0 Martin 0
-
-
03
03
-
-
647449
647449
-
-
1 null
1 null
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
<Order>
<Number>1234</Number>
<Customer>Gallagher Co.</Customer>
<Date>29.10.00</Date>
<Item Number="1">
<Part>A-10</Part>
<Quantity>12</Quantity>
<Price>10.95</Price>
</Item>
<Item Number="2">
<Part>B-43</Part>
<Quantity>600</Quantity>
<Price>3.99</Price>
</Item>
</Order>
object
Order
{
number=1234;
customer="Gallagher Corp.";
date=29.10.00;
items={ptrs to Items};
}
object
Item
{
number=1;
part="A-10";
quantity=12;
price=10.95;
}
object
Item
{
number=2;
part="B-43";
quantity=600;
price=3.99;
}
Orders
Number Customer Date
1234 Gallagher Co. 291000
... ... ...
... ... ...
Items
SONum Item Part Qty Price
1234 1 A-10 12 10.95
1234 2 B-43 600 3.99
... ... ... ... ...
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Zapis danych
Zapis danych
XML
XML
w
w
ODBMS
ODBMS
• Dane XML są z natury zorientowane obiektowo
– Struktury są mapowane do obiektów zapisywanych w systemie
– Mogą to być relacyjne systemy z aplikacjami O-O
• Np..JDO, tworzące mapowanie pomiędzy bazami relacyjnymi a Javą
• http://access1.sun.com/jdo/
– Systemy OODBMS mogą być efektywne ( w teorii)
Disk
Application
object
Working Memory
object
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
<bib>
<bib>
<book id=
<book id=
“
“
a1
a1
”
”
>
>
<title>
<title>
Music
Music
</title>
</title>
<author>
<author>
Kiritzov
Kiritzov
</author>
</author>
<
<
isbn
isbn
>
>
0
0
-
-
07
07
-
-
212489
212489
-
-
X
X
</
</
isbn
isbn
>
>
</book>
</book>
<book id=
<book id=
“
“
b1
b1
”
”
>
>
<title>
<title>
HTML 4.0
HTML 4.0
</title>
</title>
<author>
<author>
Martin
Martin
</author>
</author>
<
<
isbn
isbn
>
>
0
0
-
-
03
03
-
-
647449
647449
-
-
1
1
</
</
isbn
isbn
>
>
</book>
</book>
</bib>
</bib>
Class bib
Class bib
{
{
book[] b;
book[] b;
String id;
String id;
}
}
Class book
Class book
{
{
String title;
String title;
String author;
String author;
String
String
isbn
isbn
;
;
}
}
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Zapis danych w
Zapis danych w
"
"
Native XML DB
Native XML DB
"
"
• Dane XML zapisywane bezpośrednio na dysku
– Efektywne w zapisie danych XML
– Wszystkie dane są w XML
– Bazy rozszerzane są do obsługi baz relacyjnych i zapytań SQL
Disk
Application
Working Memory
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Wykorzystanie relacyjnych baz danych do
Wykorzystanie relacyjnych baz danych do
zarz
zarz
ą
ą
dzania dokumentami XML
dzania dokumentami XML
-
-
owymi
owymi
Zagadnienia:
•
przechowywanie i przetwarzanie dokumentów XML-
owych w relacyjnej bazie danych
•
rozpowszechnianie danych relacyjnych w postaci
dokumentów XML-owych
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Wykorzystanie relacyjnych baz danych do
Wykorzystanie relacyjnych baz danych do
zarz
zarz
ą
ą
dzania dokumentami XML
dzania dokumentami XML
-
-
owymi
owymi
Zalety wykorzystania RSBD:
•
RSBD są techniką dojrzałą, sprawdzoną i rozwijaną
od wielu lat
•
dostarczają szereg przydatnych rozwiązań –
dotyczących zarządzania pamięcią, współbieżnością,
odtwarzania, umożliwia tworzenie kolejnych wersji,
wyszukiwanie informacji
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Wykorzystanie relacyjnych baz danych do
Wykorzystanie relacyjnych baz danych do
zarz
zarz
ą
ą
dzania dokumentami XML
dzania dokumentami XML
-
-
owymi
owymi
Zalety rozpowszechniania danych w postaci
dokumentów XML:
•
powszechność, uwolnienie od ograniczeń sprzętowo-
programowych
•
dane mogą być strukturalizowane w postaci
najbardziej wygodnej dla użytkownika
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Wykorzystanie relacyjnych baz danych do
Wykorzystanie relacyjnych baz danych do
zarz
zarz
ą
ą
dzania dokumentami XML
dzania dokumentami XML
-
-
owymi
owymi
Dokumenty XML –> dane relacyjne problemy :
•
opracowanie schematu relacji odpowiedniego do
składowania dokumentów XML-owych (dowolne
zagłębienia, rekursje, referencje)
•
translacja zapytań z języka semistrukturalnego do
relacyjnego
•
optymalizacja zapytań
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Wykorzystanie relacyjnych baz danych do
Wykorzystanie relacyjnych baz danych do
zarz
zarz
ą
ą
dzania dokumentami XML
dzania dokumentami XML
-
-
owymi
owymi
Dane relacyjne -> dokumenty XML problemy :
•
powiązania między tabelami
•
brak typów
•
konieczność uwzględniania kolejności elementów
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XPath, XQuery
Select …
Wyszukiwanie
danych
Create XML
Document
Insert …
Update …
Zapisywanie
danych
Define XML
Schema
(Optional)
Create Table…
Definicja
metadanych
XML
Relational/SQL
Por
Por
ó
ó
wnanie
wnanie
–
–
XML
XML
–
–
relacyjne bazy danych
relacyjne bazy danych
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Problem : Składowanie dokumentów XML w RDBMS
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
2002/02/08
20
B25-25A
12593
12389
2002/02/07
1
E16-25A
125692
123588
2002/02/08
16
E16-25A
125692
123587
date
quantity
item
Account_number
order_ number
<?xml version="1.0"?>
<orders>
<order number=
"123587"
>
<account>
125692
</account
>
<item>
E16-25A
</item>
<quantity>
16
</quantity>
<date>
2002/02/08
</date>
</order>
<order number=
"123588"
>
<account>
125692
</account>
<item>
E16-25A
</item>
<quantity>
1
</quantity>
<date>
2002/02/07
</date>
</order>
<!--etc.-->
</orders>
Order Table
Mapowanie struktury XML do struktury bazy danych
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
SQL
1111111
Kowalski
11
Telefon
Nazwisko
Nr
1200
Węgiel
200
Cena
Nazwa
ID
1.1.2002
200
11
Data
ID
Nr
Klienci
Produkty
Zamówienia
• encje
• atrybuty
• ograniczenia
• powiązania
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML
<klienci>
<klient Nr=‘11’ Nazwisko=‘Kowalski’ telefon=‘11111’/>
<klient Nr=‘12’ Nazwisko=‘Abacki’ telefon=‘22222’/>
</klienci>
<klienci>
<klient>
<Nr> 11 </Nr>
<Nazwisko> Kowalski </Nazwisko>
<telefon> 11111 </telefon>
</klient>
<klient>
<Nr> 12 </Nr>
<Nazwisko> Abacki </Nazwisko>
<telefon> 22222 </telefon>
</klient>
</klienci>
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML
<zamowienia>
<zamowienie NrZam=‘1002’ Data=’01.02.2002’ Klient=‘11’>
<pozycja NrPoz=‘1’ NrProd=‘40’ Cena=‘120’ Ilosc=‘4’/>
<pozycja NrPoz=‘2’ NrProd=‘30’ Cena=‘156’ Ilosc=‘2’/>
</zamowienie>
<zamowienie NrZam=‘1003’ Data=’03.04.2002’ Klient=‘12’>
<pozycja NrPoz=‘1’ NrProd=‘10’ Cena=‘320’ Ilosc=‘7’/>
</zamowienie>
</zamowienia>
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Physical Schema
Transformation
Query/Schema/
Stats
Translation
Traditional
Relational Query
Optimizer
XML data
statistics
XML Schema
Relational
schema,
stats and workload
Good
configuration
Physical
schema
XQuery
workload
cost
estimate
Physical Schema
Generation
Physical schema
LegoDB: Storage Design
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
good
configuration and
mapping specification
XQuery
workload
DB Loader
XML document
Query Translation
mapping
specification
XML result
Commercial RDBMS
tuples
SQL query/results
LegoDB: Runtime Support
RDBMS
Relational
Tables
XQuery
Query
SQL
Query
Results in
XML form
XMLData
/DTD/
Schema
Results
in
relational
form
Relational
Query
Processor
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML w Relacyjnych BD
XML w Relacyjnych BD
• Istnieje wiele automatycznych mechanizmów
konwersji danych z i do relacyjnych baz danych.
• Producenci tacy jak IBM, Microsoft, Oracle i
Sybase stworzyli narzędzia wspomagające
konwersje dokumentów XML do tabel w RBD.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
MS SQL Server 2000
MS SQL Server 2000
SQLXML
SQLXML
& odwzorowania
& odwzorowania
XML
XML
•
SQLXML rozszerza wsparcie dla XML w SQL Server 2000
•
Pozwala na połączenie przerwy jaka istnieje miedzy dokumentami XML a danymi
w postaci relacyjnej
•
Za pośrednictwem SQLXML można tworzyć perspektywy XML z danych
relacyjnych i pracować na nich tak jak by były zwykłym plikiem XML
•
SQLXML pozwala również na:
–
Przeszukiwanie RBD za pomocą XPath
–
Przeszukiwanie RBD za pomocą SQL, a jako rezultat zwracanie XML
–
Uaktualnianie RBD tak jak by to był XML
–
Wgrywanie bardzo dużych plików XML do SQL Server’a 2000 przy jednoczesnej
konwersji na dane relacyjne
–
Przeszukiwanie SQL Server’a via URL z przeglądarki lub aplikacji webowej
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Transformacja danych relacyjnych do XML
Transformacja danych relacyjnych do XML
Instrukcja SELECT ... FOR XML
- tryb RAW
- tryb AUTO
- tryb EXPLICIT
Składnia polecenia:
SELECT lista_atrybutow
FROM tabele_zrodlowe
WHERE warunki_wyszukiwania
FOR XML RAW | AUTO | EXPLICIT [, XMLDATA]
[, ELEMENST] [, BINARY BASE64]
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML w Oracle 9i R2
XML w Oracle 9i R2
• Oracle XML DB jest w pełni zgodny z modelem danych
W3C XML
• Wraz z Oracle XML DB zostało dodane repozytorium
„native XML”
• Jest narzędziem pozwalającym na nawigowanie i
przeszukiwanie dokumentów XML w „czystej” postaci
przy jednoczesnym zachowaniu zalet RBD
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML w Oracle 9i R2
XML w Oracle 9i R2
•
Dla pozostałych jest możliwy dostęp zorientowany na dane (Data-Oriented
Access). Bazujemy na dobrze zdefiniowanej i zazwyczaj skomplikowanej
strukturze dokumentu XML. (np. zamówienia, faktury itp..) Mamy dostęp do
„native XMLType”, wsparcie dla XML Schema, XPath, XSL-T, DOM, itd..
XML SQL Utility (XSU) narz
ę
dzie
do mapowania dokumentu XML
do obiektowo-relacyjnej bazy
danych i na odwrót: umo
ż
liwia
przetworzenie danych z bazy do
postaci XML.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML w Oracle 9i R2
XML w Oracle 9i R2
• Podejście ukierunkowane na zawartość (Content-oriented
Access) jest przewidziane dla deweloperów którzy chcą widzieć
XML jako dokumenty, które mają statyczną zawartość i
zazwyczaj są traktowane całościowo (np. artykuły, ogłoszenia,
książki itp.)
•
W takim przypadku możemy skorzystać z repozytorium XML i
dostępu przez standardowe protokoły jak również wyszukiwania
przez SQL.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XML SQL Utility (XSU)
XML SQL Utility (XSU)
•
XML SQL Utility - klasy Javy do automatycznego i dynamicznego
przetwarzania wyników zapytań SQL w dokumenty XML. Mogą być
używane do:
– generowanie z zapytań SQL dokumentów XML, Document Object
Model (DOM), Document Type Definition (DTD), XML Schema.
– załadowanie danych z dokumentu XML do istniejącej tabeli lub
perspektywy
•
Struktura wynikowego dokumentu XML jest oparta na wewnętrznej
strukturze schematu bazy danych (którego dotyczyło zapytanie).
– kolumny są odwzorowane na elementy (najwyższy poziom).
– wartości skalarne są mapowane na elementy z zawartością tekstową
– typy obiektowe na elementy z atrybutami, będącymi pod-elementami
– kolekcje na listy elementów
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Inne systemy wspieraj
Inne systemy wspieraj
ą
ą
ce XML
ce XML
• IBM DB2 XML Extender pozwala na przechowywanie
dokumentów XML jako obiektów typu BLOB (Binary
Large Object) lub w postaci przetworzonej na grupę tabel.
(XML collection – zdefiniowane w XML 1.0)
• Sybase Adaptive Server używa klasy Java ResultSetXml
jako podstawy do przetwarzania dokumentów XML w obu
kierunkach.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Native
Native
XML
XML
Databases
Databases
-
-
NXD
NXD
Native XML Databases (NXD) okre
ś
la ogóln
ą
klas
ę
systemów
zarz
ą
dzania bazami danych tworz
ą
cych kolekcje dokumentów XML w
formie pełnej (tzn., wszystkie znaki dokumentu XML s
ą
składowane).
Ró
ż
ne metody
organizacji baz
danych XML
przedstawia diagram
(na przykładzie
Oracle XML DB).
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Native
Native
XML
XML
Databases
Databases
-
-
NXD
NXD
• Wiele tzw. NXD nie jest prawdziwymi bazami danych, tylko
„przystawkami” to RBD.
• Aby można było powiedzieć, ze baza naprawdę pracuje w
systemie NXD, powinna spełniać kilka podstawowych zasad:
– Posiadać zdefiniowany logiczny model dokumentu XML oraz
przechowywać i odzyskiwać dokumenty zgodnie z tym
modelem. (elementy, atrybuty, PCDATA, układ dokumentu –
np.: modele XPath, DOM, SAX).
– Posiadać dokument XML jako podstawowa jednostkę –
odpowiednik wiersza tabeli w RBD.
– Być niezależna od warstwy fizycznej – może być zbudowana
na bazie relacyjnej, hierarchicznej, obiektowej,
indeksowanych lub skompresowanych plikach.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Native
Native
XML
XML
Databases
Databases
-
-
NXD
NXD
• Zgodnie z założeniami, baza taka jest specjalizowana do
przechowywania danych XML – powinna przechowywać
wszystkie komponenty XML’a w stanie pierwotnym.
• Baza „przyjmuje i oddaje” dokumenty
• Tak naprawdę NXD nie może być samodzielna baza
danych (standalone database )
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Native
Native
XML
XML
Databases
Databases
-
-
NXD
NXD
• NXD zarządza zbiorami dokumentów, pozwalając na
manipulowanie i przeszukiwanie tych dokumentów jako
zbiorów – bardzo podobnie do koncepcji tabeli w RBD.
• Jedną z różnic jest, w niektórych NXD, możliwość
przechowywania dokumentów XML nie należących do
danego schematu.
• Mimo to, w dalszym ciągu można konstruować zapytania dla
wszystkich dokumentów w grupie. Są to tzw. NXD
niezależne od schematu (schema-independent)
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Native
Native
XML
XML
Databases
Databases
-
-
NXD
NXD
Podsumowuj
ą
c – realizuj
ą
c NXD nale
ż
y spełni
ć
nast
ę
puj
ą
ce zało
ż
enia:
-
przetwarzane s
ą
kolekcje (relacja w RDB) dokumentów XML (krotka w
RDB) – grupy dokumentów dotycz
ą
cych jednego zagadnienia;
-
komunikacja z baz
ą
danych w oparciu o dedykowane j
ę
zyki zapyta
ń
, np.:
XPath, Xquery, XQL;
-
mo
ż
liwe jest blokowanie plików i przeprowadzanie transakcji;
-
wykorzystywane s
ą
dedykowane metody aktualizacji danych, np.:
XUpdate;
-
dostarczane s
ą
biblioteki API dla rozwoju aplikacji;
-
wspomagaj
ą
indeksowanie dokumentów w celu przyspieszenia
wyszukiwania w bazie danych;
-
normalizacja dokumentów realizowana jest na poziomie projektu
schematu (mo
ż
liwe s
ą
jednak elementy wielowarto
ś
ciowe);
-
integralno
ść
referencyjna zapewnia istnienie poprawnych dokumentów
XML wskazywanych przez XLink lub inne mechanizmy referencyjne.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
<?xml version="1.0"?>
<orders>
<order number="123587"
account=“125692”
item=“E16-25A”
quantity=“16”
date=“2002/02/08”/>
</order>
</orders>
125692
123587
<?xml version="1.0"?>
<orders>
<order number="123588">
<account>125692</account>
<item>E16-25A</item>
<quantity>1</quantity>
<date>2002/02/07</date>
</order>
</orders>
125692
123588
Order_xml
Account_number
order_ number
<?xml version="1.0"?>
<orders>
<order number=
"123587"
>
<account>
125692
</account
>
<item>
E16-25A
</item>
<quantity>
16
</quantity>
<date>
2002/02/08
</date>
</order>
<order number=
"123588"
>
<account>
125692
</account>
<item>
E16-25A
</item>
<quantity>
1
</quantity>
<date>
2002/02/07
</date>
</order>
<!--etc.-->
</orders>
SELECT order_XML FROM order
WHERE
order_number=
‘
123587
’
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Tamino
Tamino
“
“
XML Native Database
XML Native Database
”
”
Podstawową jednostką przechowywania danych w
Tamino jest
dokument XML
(w relacyjnych bazach
danych jest to wiersz, kolumna, tabela)
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Tamino
Tamino
Architektura
Architektura
systemu
systemu
Partner Tools
Partner Tools
XML Editor
XML Editor
Schema Editor
Schema Editor
Class Generation
Class Generation
Data
Store
XML
Data
Map
Meta
Data
Data Store Kernel
Data Store Kernel
XML
XML
-
-
Engine
Engine
X-Machine
A
d
m
in
A
d
m
in
-
-
A
g
en
t
A
g
en
t
Web Server
Web Server
X
X
-
-
Port
Port
HTTP
HTTP
X
M
L
Tamino
Tamino
API
API
U
R
L
X
M
L
D
T
D
Adabas
C
X
X
-
-
N
o
d
e
N
o
d
e
Open API
RDBMS
X
X
-
-
T
en
si
o
n
T
en
si
o
n
Aplikacje
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
X-Machine
XML
XML
Data
Data
Store
Store
XML
Output
XQL
Query
XML Documents
X
X
-
-
Machine
Machine
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
X-Machine
XML Documents
Query Interpreter
XML Parser
Object Composer
X-Node
Data Map
Object Processor
XQL
Query
XML
Output
XML
Data Store
RDBMS
X
X
-
-
Machine
Machine
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
X
X
-
-
Node
Node
/ X
/ X
-
-
Tension
Tension
SQL
SQL
Database
Database
Adabas
Adabas
Aplikacje
Aplikacje
zewn
zewn
ę
ę
trzne
trzne
(
(
Tamino
Tamino
Server
Server
Extensions
Extensions
)
)
X-Node
X-Tension
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Komunikacja
Komunikacja
z
z
Tamino
Tamino
X-Port
X-Port
Client
Client
Web Server
Web Server
HTTP
HTTP
Tamino Server
Tamino Server
Tamino Server
Tamino Server
Tamino Server
Tamino Server
Tamino API
http://domain/tamino/db/collection
http://www.ebiz1.com/tamino/xml/sailing
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
X
X
-
-
Port
Port
Web Server/Application servers Plug
Web Server/Application servers Plug
Web Server/Application servers Plug
Web Server/Application servers Plug----In
In
In
In
Apache
IBM WebSphere
Internet Information Server
iPlanet Enterprise Server
BEA WebLogic
...
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Tamino
Tamino
WebDav
WebDav
Server
Server
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Xindice
- http://xml.apache.org/xindice
eXist
- http://exist.sourceforge.net
dbXML
- http://www.dbxml.com
Berkeley DB XML
- http://www.sleepycat.com
Ozone
- http://ozone-db.org
Natywne
Natywne
bazy XML
bazy XML
-
-
Open
Open
Source
Source
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
dbXML – interfejs command-line
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
dbXML – graficzny interfejs administracyjny
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Struktura bazy eXist
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Przeszukiwanie Dokument
Przeszukiwanie Dokument
ó
ó
w XML
w XML
• XPath
• XQuery
• SQL/XML
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Przeszukiwanie Dokument
Przeszukiwanie Dokument
ó
ó
w XML
w XML
• 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 danych tylko raczej do przeszukiwania
pojedynczych dokumentów. Przez to bardzo szybko okazał się
niewystarczający – brakowało w nim podstawowych funkcji:
grupowania, sortowania, wyszukiwania krzyżowego i wsparcia
dla typów danych.
• Z tego względu, język ten jest teraz zastępowany przez XQuery.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
XPath
XPath
-
-
przyk
przyk
ł
ł
ady
ady
//dane/pozycja[okres="listopad"] – oznacza wybranie elementów
pozycja, dla których podelement okres ma wartość "listopad";
//dane/pozycja[@waluta != "EUR"] – oznacza wybranie
elementów pozycja dla których atrybut waluta ma wartość różną od
"EUR";
//dane/pozycja/wartosc[. < 1000] – oznacza wybranie elementów
wartość, które zawierają liczbę mniejszą od 1000;
//pozycja[wartosc < 500]/okres – oznacza wybranie elementów
okres, będących dzieckiem elementu pozycja, dla których wartość jest
mniejsza od 500;
//pozycja[wartosc mod 1000 = 0] – oznacza wybranie elementów
pozycja, dla których wartość elementu wartość jest wyrażona w
pełnych tysiącach
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Przeszukiwanie Dokument
Przeszukiwanie Dokument
ó
ó
w XML
w XML
XQuery (http://www.w3.org/TR/xquery)
• Jest to język tworzony specjalnie na potrzeby XML’owych baz
danych, pozwalający miedzy innymi na indeksowanie zbiorów
dokumentów.
• Powstał na bazie języka Quilt, który z kolei korzystał z
doświadczeń w takich językach jak XPath, XQL, XML-QL,
SQL i OQL (ODMG).
• Podstawową jednostka składową w XQuery jest wyrazenie.
XQuery jest jezykiem funkcjonalnym z silna kontrola typu.
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
<order num="00022" date="2005-12-12" cust="0221A">
<item detp="WMN" num="554" quantity="2" />
<item detp="ACC" num="521" quantity="1" />
<item detp="MEN" num="342" quantity="1" />
<item detp="MEN" num="129" quantity="1" />
<item detp="WMN" num="554" quantity="1" />
<item detp="ACC" num="733" quantity="1" />
</order>
For $d in distinct-values(doc("ord.xml")//item/@dept)
Let $items := doc("ord.xml")//item[@dept = $d]
Order by $d
Return <department name="{$d}"
totalQuatity="{sum($items/@quantity)}" />
<department name="ACC" totalQuantity="3" />
<department name="ACC" totalQuantity="2" />
<department name="ACC" totalQuantity="2" />
Input document
query
results
XQuery
XQuery
w przyk
w przyk
ł
ł
adach
adach
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Przeszukiwanie Dokument
Przeszukiwanie Dokument
ó
ó
w XML
w XML
SQL/XML to język zapytań przygotowany przez SQLX
(http://sqlx.org/) i standaryzowany przez InterNational Committee
for Information Technology Standards.
• Ten standard jest wykorzystywany 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 (jest to
pierwsza tego typu implementacja na rynku)
• SQL/XML jest rozszerzeniem do SQL – za po pomocą funkcji i
operatorów pozawala na przetwarzanie XML’a w bazach
relacyjnych.
• SQL/XML może być przydatny dla firm operujących na danych
strukturalnych, oraz wymagających współpracy z narzędziami
opartymi o SQL, bazy relacyjne itp..
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
SQL 2003 SQL/XML
SQL 2003 SQL/XML
Typy danych XML
XML - Funkcje publikujące
Zapytania – SQL/XML
Reguły mapujące
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
SELECT fname, lname, duration
FROM
trtime, xps, XMLTABLE ( 'for $c in $a/Customer return $c'
passing xps.doc as "a"
COLUMNS
fname varchar (20) path 'Name/FirstName',
lname varchar (20) path 'Name/LastName',
zip varchar(10) path 'Address/Zip') as T
WHERE trtime.zip_code = zip
Klauzula JOIN w połączeniu danych relacyjnych i XML
Wynik:
Steve
Ferrington 5
Brad
Hunn
5
Domenico Blefari
3
CREATE TABLE xps(id INTEGER NOT NULL, doc XML);
CREATE TABLE trtime (zip_code CHAR(10), duration INTEGER);
Zapytania XML
Zapytania XML
–
–
SQL/XML
SQL/XML
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
http://www1.softwareag.com/
http://www1.softwareag.com/
Corporate
Corporate
/
/
products
products
/
/
tamino
tamino
/
/
default.asp
default.asp
Antoni Dydejczyk, Bazy danych, wykład 13
WFiIS, Katedra Informatyki Stosowanej, 2007
• XML - otwarty standard
wspierany przez najwi
ę
ksze
korporacje (IBM, Microsoft,
Oracle, Software AG, Sun
Microsystems)
• XML - “esperanto internetu”
• XML - uniwersalny protokół
wymiany dokumentów
Dear Ms Smith,
we are pleased to offer
you the following
property:
<?xml?>
<Property
PropertyReference="CASAN0
0007"
Category="Sell"
PropertyType="House">
<Address>
<State>CA</State>
<Zip>94112</Zip>
<City>San Francisco</City>
<Street>9695 Garth
Lane</Street>
</ContactPerson>
eXtensible
eXtensible
Markup Language
Markup Language