Bazy danych w13 07 id 81707 Nieznany

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ć w

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

ą

d

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

ą

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

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

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

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


Wyszukiwarka

Podobne podstrony:
Bazy danych w03 07 id 81702 Nieznany
Bazy danych w02 07 id 81701 Nieznany
Bazy danych w12 07 id 81706 Nieznany (2)
Bazy danych w07 07 id 81703 Nieznany
Bazy danych w10 07 id 81705 Nieznany
Bazy danych 07 id 81462 Nieznany (2)
bazy danych pierwsza zarowka id Nieznany
Bazy Danych [tryb zgodnosci] id Nieznany (2)
HYDROLOGIA 07 id 207788 Nieznany
hih kolo kolo2 07 id 709394 Nieznany
I CSK 304 07 1 id 208210 Nieznany
Fizjologia Cwiczenia 07 id 1743 Nieznany
III CSK 302 07 1 id 210245 Nieznany
G2 PB 02 B Rys 3 07 id 185395 Nieznany
CwiczenieArcGIS 07 id 125941 Nieznany
DAB 07 id 130775 Nieznany
III CZP 65 07 id 210286 Nieznany

więcej podobnych podstron