background image

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

background image

XML 

Documents

& Schemas

Legacy

Database

Persistent

Database

XML Consumer

XML Producer

XML

XML

XML

API or

Query

Publish XML

Store XML

XML Interfaces

background image

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

background image

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

background image

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

background image

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

background image

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)

background image

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

background image

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)

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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ć 

bazach danych strukturalna informację XML ?

background image

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

background image

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.

background image

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> 

background image

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.

background image

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. 

background image

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

background image

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

...   ...   ...

background image

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

ą

jest to tylko i wył

ą

cznie w opcji oprogramowania realizuj

ą

cego 

odwzorowanie.

background image

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

ą

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/).

background image

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> 

background image

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.

background image

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.

background image

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

background image

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

background image

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

background image

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

...    ... ...  ... ...

background image

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

background image

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

;

;

}

}

background image

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

background image

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

background image

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

background image

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

background image

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ń

background image

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

background image

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

background image

Antoni Dydejczyk, Bazy danych, wykład 13 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Problem : Składowanie dokumentów XML w RDBMS

background image

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

background image

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

background image

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>

background image

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>

background image

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

background image

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

background image

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.

background image

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

background image

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]

background image

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

background image

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.

background image

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.

background image

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 

background image

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.

background image

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).

Ŝ

ne metody 

organizacji baz 
danych XML 
przedstawia diagram 
(na przykładzie 
Oracle XML DB).

background image

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.

background image

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 )

background image

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)

background image

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.

background image

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

background image

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)

background image

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

background image

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

background image

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

background image

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

background image

Antoni Dydejczyk, Bazy danych, wykład 13 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Komunikacja

Komunikacja

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

background image

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



...

background image

Antoni Dydejczyk, Bazy danych, wykład 13 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Tamino

Tamino

WebDav

WebDav

Server

Server

background image

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

background image

Antoni Dydejczyk, Bazy danych, wykład 13 

WFiIS, Katedra Informatyki Stosowanej, 2007 

dbXML – interfejs command-line

background image

Antoni Dydejczyk, Bazy danych, wykład 13 

WFiIS, Katedra Informatyki Stosowanej, 2007 

dbXML – graficzny interfejs administracyjny

background image

Antoni Dydejczyk, Bazy danych, wykład 13 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Struktura bazy eXist

background image

Antoni Dydejczyk, Bazy danych, wykład 13 

WFiIS, Katedra Informatyki Stosowanej, 2007 

Przeszukiwanie Dokument

Przeszukiwanie Dokument

ó

ó

w XML

w XML

• XPath

• XQuery

• SQL/XML

background image

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.

background image

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
ść Ŝną od 
"EUR";



//dane/pozycja/wartosc[. &lt; 1000] – oznacza wybranie elementów 
warto
ść, które zawierają liczbę mniejszą od 1000;



//pozycja[wartosc &lt; 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

background image

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. 

background image

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

background image

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..

background image

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

background image

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

background image

Antoni Dydejczyk, Bazy danych, wykład 13 

WFiIS, Katedra Informatyki Stosowanej, 2007 

background image

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

background image

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