Projektowanie baz danych XML. Vademecum profesjonalisty
83
Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: [email protected]PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ IDZ DO IDZ DO ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG KATALOG KSI¥¯EK KATALOG KSI¥¯EK TWÓJ KOSZYK TWÓJ KOSZYK CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK ZAMÓW CENNI K CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE SPIS TRECI SPIS TRECI DODAJ DO KOSZYKA DODAJ DO KOSZYKA KATALOG ONLINE KATALOG ONLINE Projektowanie baz danych XML. Vademecum profesjonalisty Autor: Mark Graves T³umaczenie: Tomasz ¯mijewski ISBN: 83-7197-667-4 Tytu³ orygina³u: Designing XML Databases Format: B5, stron: 498 „Projektowanie baz danych XML. Vademecum profesjonalisty” — to obszerny podrêcznik do nauki baz danych XML, wykorzystywanych w Internecie oraz baz stanowi¹cych czêæ wiêkszych systemów. Jeli dysponujesz gotow¹ baz¹ danych obs³uguj¹c¹ XML, to dziêki tej ksi¹¿ce poznasz szczegó³owe techniki, w pe³ni wykorzystuj¹ce tê bazê. Jeli natomiast korzystasz z klasycznych relacyjnych baz danych, nauczysz siê tworzyæ aplikacje z wykorzystaniem XML. Zainteresowani tworzeniem baz danych XML „od zera”, dowiedz¹ siê jak w pe³ni wykorzystaæ dostêpne narzêdzia. Dodatkowo autor omawia: • Najwa¿niejsze techniki projektowe baz danych, systemów obs³uguj¹cych te bazy oraz aplikacji XML • Przechowywanie danych XML w bazach obiektowych, relacyjnych i opartych na plikach p³askich • Zaawansowane techniki modelowania danych XML • Zapytania kierowane do baz danych XML (uwagi praktyczne, techniki stosowania JDBC oraz podstawy teoretyczne) • Sposób korzystania z sieciowych baz danych XML za pomoc¹ jêzyka XSL i jêzyka Java • Architekturê baz danych XML i specjalizowane indeksy • W³¹czanie baz danych XML do wiêkszych systemów • Bazy danych XML i ich zastosowanie w nauce „Projektowanie baz danych XML. Vademecum profesjonalisty” to podstawowe ród³o informacji dla projektantów i programistów baz danych, twórców aplikacji XML, projektantów systemów oraz kierowników projektów — szczególnie w rodowiskach o specyficznych wymaganiach.
Projektowanie baz danych XML. Vademecum profesjonalisty
"Projektowanie baz danych XML. Vademecum profesjonalisty" -- to obszerny podręcznik do nauki baz danych XML, wykorzystywanych w Internecie oraz baz stanowiących część większych systemów. Jeśli dysponujesz gotową bazą danych obsługującą XML, to dzięki tej książce poznasz szczegółowe techniki, w pełni wykorzystujące tę bazę. Jeśli natomiast korzystasz z klasycznych relacyjnych baz danych, nauczysz się tworzyć aplikacje z wykorzystaniem XML. Zainteresowani tworzeniem baz danych XML "od zera", dowiedzą się jak w pełni wykorzystać dostępne narzędzia.Dodatkowo autor omawia: * Najważniejsze techniki projektowe baz danych, systemów obsługujących te bazy oraz aplikacji XML * Przechowywanie danych XML w bazach obiektowych, relacyjnych i opartych na plikach płaskich * Zaawansowane techniki modelowania danych XML * Zapytania kierowane do baz danych XML (uwagi praktyczne, techniki stosowania JDBC oraz podstawy teoretyczne) * Sposób korzystania z sieciowych baz danych XML za pomocą języka XSL i języka Java * Architekturę baz danych XML i specjalizowane indeksy * Włączanie baz danych XML do większych systemów * Bazy danych XML i ich zastosowanie w nauce"Projektowanie baz danych XML. Vademecum profesjonalisty" to podstawowe źródło informacji dla projektantów i programistów baz danych, twórców aplikacji XML, projektantów systemów oraz kierowników projektów -- szczególnie w środowiskach o specyficznych wymaganiach.
Citation preview
1. IDZ DO PRZYKADOWY ROZDZIA SPIS TRE CI Projektowanie baz
danych XML. KATALOG KSIEK Vademecum profesjonalisty KATALOG ONLINE
Autor: Mark Graves Tumaczenie: Tomasz mijewski ISBN: 83-7197-667-4
ZAMW DRUKOWANY KATALOG Tytu oryginau: Designing XML Databases
Format: B5, stron: 498 TWJ KOSZYK DODAJ DO KOSZYKA Projektowanie
baz danych XML. Vademecum profesjonalisty to obszerny podrcznik do
nauki baz danych XML, wykorzystywanych w Internecie oraz baz
stanowicych cz wikszych systemw. CENNIK I INFORMACJE Je li
dysponujesz gotow baz danych obsugujc XML, to dziki tej ksice
poznasz szczegowe techniki, w peni wykorzystujce t baz. Je li
natomiast korzystasz ZAMW INFORMACJE z klasycznych relacyjnych baz
danych, nauczysz si tworzy aplikacje O NOWO CIACH z wykorzystaniem
XML. Zainteresowani tworzeniem baz danych XML od zera, dowiedz si
jak w peni wykorzysta dostpne narzdzia. ZAMW CENNIK Dodatkowo autor
omawia: Najwaniejsze techniki projektowe baz danych, systemw
obsugujcych te bazy CZYTELNIA oraz aplikacji XML Przechowywanie
danych XML w bazach obiektowych, relacyjnych i opartych FRAGMENTY
KSIEK ONLINE na plikach paskich Zaawansowane techniki modelowania
danych XML Zapytania kierowane do baz danych XML (uwagi praktyczne,
techniki stosowania JDBC oraz podstawy teoretyczne) Sposb
korzystania z sieciowych baz danych XML za pomoc jzyka XSL i jzyka
Java Architektur baz danych XML i specjalizowane indeksy Wczanie
baz danych XML do wikszych systemw Bazy danych XML i ich
zastosowanie w nauce Projektowanie baz danych XML. Vademecum
profesjonalisty to podstawowe rdo informacji dla projektantw i
programistw baz danych, twrcw aplikacji XML, projektantw systemw
oraz kierownikw projektw szczeglnie w rodowiskach Wydawnictwo
Helion o specyficznych wymaganiach. ul. Chopina 6 44-100 Gliwice
tel. (32)230-98-63 e-mail: [email protected]
2. 5RKU VTG EK 9UVR 4QFKC 9RTQYCFGPKG 1.1.
XML................................................................................................................................16
1.1.1. Czym jest XML?
..................................................................................................16
1.1.2. Skd si wzi XML?
...........................................................................................19
1.1.3. Czemu akurat XML?
............................................................................................19
1.2. Systemy baz
danych........................................................................................................22
1.2.1. Czym jest baza danych?
.......................................................................................22
1.2.2. Czym jest baza danych
XML?..............................................................................24
1.2.3. Czemu u ywa baz danych
XML?.......................................................................25
1.3. Bazy danych dostpne w
Sieci........................................................................................26
1.3.1. Baza danych w plikach
paskich...........................................................................26
1.3.2. Systemy zarzdzania relacyjnymi bazami danych
...............................................29 1.3.3. Systemy
zarzdzania bazami danych
XML..........................................................30
1.4. Aplikacje
.........................................................................................................................31
1.5. Dodatkowe
informacje....................................................................................................32
1.5.1.
Czasopisma...........................................................................................................32
1.5.2. Witryny oglne
.....................................................................................................32
1.5.3. Portale XML
.........................................................................................................33
1.5.4. Narzdzia XML
....................................................................................................33
1.5.5.
XSL.......................................................................................................................33
1.5.6. Dokumenty
W3C..................................................................................................33
1.5.7. Przykady specyfikacji XML w konkretnych
dziedzinach...................................34 1.5.8. Wicej
informacji o XML
....................................................................................34
4QFKC 6YQTGPKG UEJGOCVW 2.1. Projektowanie bazy danych
............................................................................................35
2.2. Modelowanie koncepcyjne
.............................................................................................38
2.2.1. Model koncepcyjny w formie grafw
..................................................................38
2.2.2. Proces modelowania koncepcyjnego za pomoc grafu
........................................42 2.2.3. Modelowanie
koncepcyjne
...................................................................................46
2.2.4. Model koncepcyjny XML
....................................................................................51
2.3. Modelowanie logiczne
....................................................................................................53
2.3.1. Diagram encji i relacji
..........................................................................................53
2.3.2. Schemat
relacyjny.................................................................................................54
2.3.3. Model
obiektowy..................................................................................................55
2.3.4. Schemat logiczny
XML........................................................................................59
2.4. Modelowanie fizyczne
....................................................................................................61
2.4.1. Schemat fizyczny
XML........................................................................................62
2.4.2. Przetwarzanie danych a przetwarzanie
dokumentw...........................................65 2.4.3.
Przenoszenie
danych.............................................................................................67
2.4.4. Atrybuty czy
podelementy?..................................................................................68
2.5. Bibliografia
.....................................................................................................................71
3. 6 Projektowanie baz danych XML. Vademecum profesjonalisty
4QFKC 2QFUVCY[ VGQTGV[EPG 3.1. Typy danych
...................................................................................................................73
3.1.1. XML
Schema........................................................................................................74
3.1.2. Wprowadzanie strukturalnych typw danych
......................................................75 3.1.3.
Aplikacje sterowane schematem
..........................................................................76
3.2. Systemy zarzdzania bazami
danych..............................................................................79
3.3. Standardy XML
..............................................................................................................80
3.3.1. XML Schema (XSDL)
.........................................................................................83
3.3.2.
XSL.......................................................................................................................83
3.3.3. cza, wskaniki i cie ki XML
..........................................................................83
3.3.4. XML Query
..........................................................................................................84
3.3.5. Przestrzenie nazw XML
.......................................................................................84
3.3.6.
DOM.....................................................................................................................85
3.4. Bazy danych
XML..........................................................................................................85
3.4.1. Schemat koncepcyjny
...........................................................................................86
3.4.2. Zadania
.................................................................................................................87
3.4.3.
Operacje................................................................................................................88
3.5. Modelowanie danych
......................................................................................................89
3.5.1. Istniejce modele
danych......................................................................................91
3.5.2. Prosty model danych XML
..................................................................................94
3.5.3. Model danych XML zgodny ze specyfikacj
W3C..............................................98 3.5.4.
Relacyjny model danych XML
............................................................................99
3.5.5. Model danych XML oparty na wzach
.............................................................106
3.5.6. Model danych XML zbudowany na podstawie krawdzi
..................................110 3.5.7. Oglny model danych
XML...............................................................................113
3.6. Bibliografia
...................................................................................................................118
4QFKC 2TGEJQY[YCPKG FCP[EJ 4.1. Funkcje przechowywania danych
.................................................................................121
4.1.1. Baza danych oparta na plikach
paskich.............................................................121
4.1.2. Obiektowa baza
danych......................................................................................124
4.1.3. Relacyjna baza danych
.......................................................................................130
4.2. Drobnoziarnisty schemat relacyjny
..............................................................................130
4.2.1. Projekt
logiczny..................................................................................................131
4.2.2. Projekt
fizyczny..................................................................................................134
4.2.3. Przykady
............................................................................................................139
4.2.4. Implementacja
....................................................................................................142
4.3. Gruboziarnisty schemat relacyjny
................................................................................165
4.4. Schemat relacyjny o redniej granulacji
.......................................................................166
4.4.1. Punkty podziau
..................................................................................................167
4.4.2. Projekt bazy
danych............................................................................................168
4.4.3. Implementacja
....................................................................................................170
4.5. Uwagi praktyczne
.........................................................................................................180
4QFKC #TEJKVGMVWTC U[UVGOW DC FCP[EJ 5.1. Architektura systemu
....................................................................................................181
5.1.1. Klient-serwer
......................................................................................................183
5.1.2. Architektura
trzywarstwowa...............................................................................185
5.2. Serwer sieciowy XML
..................................................................................................186
5.2.1. Mo liwoci implementacji
.................................................................................186
5.2.2. Dostp klienta
.....................................................................................................188
5.2.3. adowanie
danych..............................................................................................189
5.2.4. Generacja XML
..................................................................................................202
5.3. Relacyjny serwer danych
..............................................................................................202
5.3.1. dania adresu
URL...........................................................................................204
5.3.2. Tworzenie zapyta SQL
.....................................................................................205
4. 5RKU VTG EK 7 5.3.3. Formatowanie wynikw jako XML
...................................................................206
5.3.4. Pobieranie danych sownikowych
......................................................................207
5.3.5. Implementacja
....................................................................................................210
5.4. Serwer danych
XML.....................................................................................................232
5.4.1. Implementacja
....................................................................................................235
5.5. Hybrydowy serwer czcy technologi relacyjn i XML
...........................................252 5.5.1. Implementacja
....................................................................................................253
4QFKC 5[UVGO[ MQOGTE[LPG 6.1. Przegld dostpnych
rozwiza....................................................................................259
6.2. Adaptery do baz danych
...............................................................................................260
6.2.1. Narzdzia warstwy
poredniej............................................................................261
6.2.2. Komercyjne relacyjne bazy
danych....................................................................261
6.2.3. Narzdzia do obsugi
zapyta.............................................................................262
6.3. Systemy zarzdzania bazami
danych............................................................................262
6.4. Serwery danych
XML...................................................................................................263
6.4.1. dbXML
...............................................................................................................263
6.4.2.
eXcelon...............................................................................................................263
6.4.3.
Tamino................................................................................................................263
6.5. Serwery dokumentw XML
.........................................................................................263
6.6. Zasoby i witryny
...........................................................................................................264
4QFKC +PVGTHGLU W [VMQYPKMC 7.1. Przegld
........................................................................................................................267
7.2. Interfejsy u ytkownika XSL
.........................................................................................268
7.2.1. Arkusze stylw
XSL...........................................................................................268
7.2.2. Prezentacja danych XML jako
tabeli..................................................................269
7.2.3. Prezentacja fragmentw XML jako kolejnych
rekordw...................................275 7.2.4. Prezentacja
identyfikatorw elementw zastpczych jako hiperczy...............276
7.2.5. Zmiana formatowania w zale noci od
treci.....................................................280 7.3.
Formy prezentacji wykorzystujce technologi Java
...................................................284 7.3.1.
Budowa klienta
...................................................................................................284
7.3.2. Przykad z
drzewem............................................................................................287
7.4. Aplikacje
prototypowe..................................................................................................293
4QFKC
5. 8 Projektowanie baz danych XML. Vademecum profesjonalisty
4QFKC +PFGMUQYCPKG 9.1. Wprowadzenie
..............................................................................................................349
9.2. Struktury danych elementw
........................................................................................350
9.3. Strategie indeksowania
.................................................................................................350
9.3.1. Brak indeksowania
.............................................................................................351
9.3.2. Pene indeksowanie
............................................................................................351
9.3.3. Indeksowanie
czciowe.....................................................................................355
9.3.4. Indeksowanie zwizkw midzy dokumentami
.................................................358 9.4.
Identyfikacja dokumentu
..............................................................................................360
9.5. Metody przeszukiwania
................................................................................................362
4QFKC +ORNGOGPVCELC 10.1. System notatek
............................................................................................................365
10.2. Podstawy biologii
.......................................................................................................366
10.3. Wymagania u ytkownika
...........................................................................................367
10.4. Model
koncepcyjny.....................................................................................................368
10.5. Opis aplikacji
..............................................................................................................371
10.5.1. Klient
................................................................................................................371
10.5.2. Warstwa porednia
...........................................................................................378
10.6. Ograniczenia i rozszerzenia
........................................................................................403
10.7. Uwagi praktyczne
.......................................................................................................404
10.8.
Skalowanie..................................................................................................................404
10.8.1. Zarzdzanie transakcjami
.................................................................................404
10.8.2. Bezpieczestwo
................................................................................................405
10.8.3. Odzyskiwanie
danych.......................................................................................405
10.8.4.
Optymalizacja...................................................................................................406
&QFCVGM # 0CTFKC ,CXC A.1. Domylne ustawienia systemowe
................................................................................407
A.2. Poczenie z relacyjn baz danych
.............................................................................409
A.3. Wyniki dziaania
serwleta............................................................................................415
A.4. Interaktywny interfejs
dostpu.....................................................................................417
&QFCVGM $ 2CTUGT 5#: &QFCVGM % :/. 5EJGOC % 'NGOGPVCT
Rekomendacja W3C, 2 maja 2001 r.
...................................................................................423
Spis
treci.............................................................................................................................424
1. Wprowadzenie
.................................................................................................................425
2. Podstawowe pojcia:
Zamwienie...................................................................................426
2.1. Schemat opisujcy
zamwienia.............................................................................427
2.2. Definicje typw zo onych, deklaracje elementw i
atrybutw............................429 2.3. Typy proste
............................................................................................................433
2.4. Definicje typw
anonimowych..............................................................................438
2.5. Tre
elementw....................................................................................................439
2.6.
Adnotacje...............................................................................................................442
2.7. Tworzenie modeli
zawartoci................................................................................443
2.8. Grupy
atrybutw....................................................................................................444
2.9. Wartoci
Nil...........................................................................................................446
3. Zagadnienia zaawansowane I: Przestrzenie nazw, schematy i
kwalifikacja ...................447 3.1. Docelowe przestrzenie nazw
i niekwalifikowane elementy i atrybuty lokalne.....447 3.2.
Kwalifikowane deklaracje lokalne
........................................................................449
3.3. Deklaracje globalne a deklaracje lokalne
..............................................................452
3.4. Niezadeklarowane docelowe przestrzenie nazw
...................................................453
6. 5RKU VTG EK 9 4. Zagadnienia zaawansowane II: Zamwienie
midzynarodowe ......................................453 4.1.
Schemat w szeregu dokumentw
..........................................................................454
4.2. Wyprowadzanie typw przez rozszerzenie
...........................................................457 4.3.
U ycie typw pochodnych w
dokumentach..........................................................457
4.4. Wyprowadzanie typw zo onych przez ograniczanie
.........................................458 4.5.
Przedefiniowywanie typw i
grup.........................................................................460
4.6. Grupy
podstawienia...............................................................................................462
4.7. Elementy i typy abstrakcyjne
................................................................................463
4.8. Kontrolowanie tworzenia i u ycia typw pochodnych
.........................................464 5. Zagadnienia
zaawansowane III: Raport
kwartalny..........................................................466
5.1. Wymuszanie niepowtarzalnoci
............................................................................468
5.2. Definiowanie kluczy i
wskanikw.......................................................................469
5.3. Reguy w XML Schema a atrybut ID XML 1.0
....................................................469 5.4.
Importowanie
typw..............................................................................................469
5.5. Dowolny element, dowolny atrybut
......................................................................472
5.6. schemaLocation
.....................................................................................................475
5.7. Zgodno ze
schematem........................................................................................476
A. Podzikowania
................................................................................................................478
B. Typy proste i ich
fazy......................................................................................................478
C. U ycie
encji.....................................................................................................................478
D. Wyra enia regularne
.......................................................................................................480
E. Indeks
..............................................................................................................................481
5MQTQYKF
7. Rozdzia 5. #TEJKVGMVWTC U[UVGOW DC FCP[EJ Jzyk XML wietnie
nadaje si do wymiany danych, dlatego te czsto wykorzystujemy go w
komunikacji midzy systemami. Pojcia architektura systemu baz danych
u y- wamy w odniesieniu do sposobu, w jaki aplikacje i u ytkownicy
korzystaj z danych oraz zarzdzaj nimi. W przypadku baz danych XML u
ytkownicy i aplikacje musz zaado- wa dane do bazy, przeksztaci je
na dokumenty XML, pobra XML z bazy i powiza dane relacyjne z kodem
XML. Architektura systemu baz danych mo e by typu klient- serwer
wtedy aplikacja klienta wsppracuje bezporednio z baz danych albo mo
e to by struktura trzywarstwowa, w ktrej midzy klientem a baz
danych pojawia si dodatkowo serwer. #TEJKVGMVWTC U[UVGOW
Architektura systemu to sposb funkcjonowania systemu i jego
poszczeglnych moduw. Ka dy modu jest komponentem systemu i
realizuje powizane ze sob funkcje. Dobr architektur systemu tworzy
si przez odpowiednie pogrupowanie wymaga funkcjonal- nych w moduy i
czenie moduw w system, ktry spenia wszystkie zao one zadania.
Definiujc architektur systemu, nale y odpowiedzie na nastpujce
pytania: Ile jest moduw? Jak s ze sob powizane? (Czy liniowo, czy w
drzewo albo graf?) Na czym polega ich dziaanie? Czyli jakie s
funkcje poszczeglnych moduw? Z systemami spotykamy si wszdzie
poznawanie wikszoci dziedzin naukowych wi e si ze studiowaniem
konkretnych systemw. Fizyka bryy sztywnej opisuje, jak nale ce do
systemu obiekty oddziauj na siebie, a w przypadku biologii dokadnie
anali- zuje si systemy o organicznej naturze. In ynieria polega na
tworzeniu zo onych sys- temw o zao onych funkcjach. W budownictwie
przez termin architektura rozumie si projekt budynku, jego wygld i
sposb funkcjonowania. Architektura systemu to obszerne zagadnienie
zwizane z projektowaniem komponentw, ktre wsppracujc ze sob,
realizuj caociowe zadania. W tej ksi ce bdziemy mwi o architekcie
systemu, ktrego zadanie polega na zaprojektowaniu
deterministycznych komponentw programowych baz danych XML.
8. 182 Projektowanie baz danych XML. Vademecum profesjonalisty
Du e systemy zwykle maj hierarchiczn budow: wiksze podsystemy
zawieraj mniejsze, a te z kolei tworzone s z jeszcze mniejszych
podsystemw, i tak dalej, a do pakietw, ktre zawieraj podstawowe
skadniki programw, czyli klasy obiektw, funkcje i proce- dury. W
tym rozdziale zajmiemy si abstrakcyjnymi aspektami projektowania i
podziaem pracy na r ne maszyny dostpne w Sieci. Pierwsze systemy
baz danych byy monolityczne. Obsugiwaa je jedna stacja robocza. U
ytkownicy korzystali z systemu za pomoc prostych terminali lub kart
perforowanych. Z czasem, kiedy stacje robocze zaczy mie coraz wiksz
moc obliczeniow, cz oblicze i funkcji zostaa wydzielona z
monolitycznego systemu i przeniesiona na stacje robocze (klientw),
w architekturze klient-serwer. Podsystem klienta przeprowadza for-
matowanie i proste przetwarzanie, za serwer zarzdza wikszoci
danych. W miar jak powikszay si bazy danych i wczano je do systemw
korporacyjnych, konieczne stao si zastosowanie architektury
trzywarstwowej. Dziki zastosowaniu odrbnego serwera uproszczono
dostp klientw do wielu baz danych. Warstwa porednia umo - liwia
aplikacjom klienta czenie si z wieloma bazami danych przez
jednolity interfejs. Jednoczenie projektanci starali si znale
odpowiednie miejsce dla regu biznesowych, ktre opisuj zasady u ycia
danych. Przetwarzanie regu mogo przecie zatka serwer lub wymagao
powtrzenia tych operacji na stacjach klientw, szczeglnie w du ych
systemach, w ktrych wiele aplikacji przetwarza reguy. Jeli reguy
biznesowe znajdoway si w warstwie poredniej, to r ne aplikacje, nie
troszczc si o wydajno czy utrzyma- nie serwera baz danych, mogy z
nich korzysta. Wzrost liczby baz danych i aplikacji przyczynia si
do tego, e konieczne staje si stosowanie dodatkowych warstw pored-
nich, a co z tym zwizane zmiana architektury trzywarstwowej na
wielowarstwow. Sieciowy system baz danych zawiera jako jeden ze
swoich moduw serwer sieciowy. Do komunikacji midzy poszczeglnymi
warstwami u ywa si protokou nonego sieci, na przykad JVVR. Sieciowy
system baz danych mo e mie architektur klient-serwer, architektur
trzywarstwow lub wielowarstwow. Najczciej stosuje si rozwizanie
trzywarstwowe w takim wypadku baza danych wysya dane do serwera
sieciowego. Jeli bierzemy pod uwag architektur wielowarstwow, to
wiele baz danych i serwerw aplikacji wysya dane do jednego lub
wielu serwerw sieciowych, ktre nastpnie przeka- zuj dane klientom.
Jzyka XML mo na u y do komunikacji pomidzy komponentami struktury
wielowarstwowej. Mo na rwnie zastosowa ukad klient-serwer zwykle
serwer sieciowy jest wtedy wbudowany w baz danych. Jedn z zalet
sieciowych baz danych jest uproszczenie aplikacji przez
zastosowanie przegldarek sieciowych obsugujcych aplety Javy. W
przypadku apletw kod jzyka Java jest przenoszony przez Sie w chwili
kiedy jest wywoywany, za przegldarka za- pewnia podstawowe
formatowanie danych, obsug formularzy i prostych jzykw skrypto-
wych; jej mo liwoci mog by rozszerzone przez zastosowanie apletw.
Ch poprawienia przepustowoci i uruchamiania coraz bardziej zo onych
aplikacji w coraz mniejszych systemach powoduje, e funkcje, ktre
byy dostpne w aplikacjach klienta, s wykony- wane na serwerach lub
w warstwach porednich (mwimy wtedy o aplikacjach cienkiego
klienta). I tak na przykad aplety Javy mog siga do bazy danych za
porednictwem poczenia JDBC, zamiast stosowa natywne sterowniki.
Aplety mog te korzysta z udostpnianych w poredniej warstwie
programw analitycznych, zamiast lokalnie wykonywa wszystkie
obliczenia.
9. 4QFKC Architektura systemu baz danych 183 Dobrze opracowan
architektur systemu rozpoznaje si po tym, e odpowiednie funkcje
umieszczono w odpowiednich moduach. Wyboru mo na dokona na
podstawie r nych kryteriw, na przykad takich jak unikanie zale noci
od stosowanych technologii lub okrelenie zale noci poj w opisywanej
dziedzinie. Takie niefunkcjonalne wymagania to podstawowe kryteria
stosowane w pocztkowych etapach projektowania. Zdefiniowanie
odpowiednich kryteriw warunkuje dobr architektur systemu, jest te
podstaw udanego projektu. W niektrych sytuacjach w doborze kryteriw
mog pomc nastpujce pytania: Czy funkcje baz danych powinny by
wydzielone jako odrbny modu, by uatwi uruchamianie systemu w r nych
rodowiskach? Czy w caym systemie bdzie mo na zastosowa technologi
jednej firmy? Czy system powinien by niezale ny od dostawcy
oprogramowania warstwy poredniej? Czy interfejs u ytkownika ma
przyjmowa schemat bazy danych (minimalizowanie wpywu czstych zmian
opisywanej dziedziny)? Czy, z uwagi na du e iloci danych, nale y
ogranicza ilo przesyanych informacji z bazy danych? Czy by speni
wymogi bezpieczestwa kontrola dostpu do danych powinna by
wydzielona jako odrbny modu? Najwa niejsza jest rwnowaga midzy
podstawowymi wymaganiami, tak aby zanadto nie ogranicza systemu.
Elastyczno i spenianie precyzyjnych wymaga to sprzeczne oczekiwania
wobec systemu. Proces rozszerzania mo liwoci systemu czsto jest
hamo- wany przez jego realne uwarunkowania. W oprogramowaniu wa nym
dla dziaania przed- sibiorstwa du o pracy wkada si w tworzenie
architektury dopasowanej do konkretnych wymaga i pozwalajcej
wykorzystywa dostpne zasoby. W przypadku szybko tworzo- nych
systemw architekturze powica si niewiele uwagi. Wielu autorw
skryptw Perl czy CGI czy instrukcje jzykw SQL z generacj HTML i
specyficznymi dla danej dziedziny reguami biznesowymi, w efekcie w
szybkim tempie tworz sprawnie dziaajcy system. Niestety, trudnoci
wi si z utrzymaniem takiego systemu, a wzrastaj przy ka dej zmianie
schematu bazy danych, przegldarki i rozszerzaniu regu biznesowych.
-NKGPVUGTYGT Przetwarzanie XML mo e si odbywa na serwerze baz
danych. Baza danych XML lub program generujcy XML mog by wczone do
innego serwera baz danych. (Rozwi- zania, ktre oferuj komercyjne
relacyjne bazy danych opiszemy w punkcie 6.2.2). Poza tym mo na tak
modyfikowa kod serwera, aby zwraca kod HTML. By uzyska taki efekt,
nale y skorzysta z darmowego serwera relacyjnej bazy danych, na
przykad mysql, ktry potrafi generowa XML. Inny sposb polega na
dodaniu do obiektowej bazy danych obiek- tw obsugujcych XML (t
metod wykorzystano w systemie eXcelon; opis mo na znale w punkcie
4.1.2). W tym punkcie zajmiemy si kilkoma prostymi metodami
generowania XML z relacyjnego serwera baz danych. W kocowej czci
tego rozdziau opiszemy serwery baz danych, ktre charakteryzuje
trzywarstwowa architektura i ktre mo na w- cza do serwerw baz
danych, korzystajcych z jzykw programowania takich jak Java.
10. 184 Projektowanie baz danych XML. Vademecum profesjonalisty
XML mo na generowa bezporednio w instrukcji SQL. Jeli mamy tabel
&'26 z kolum- nami: &'2601, &0#/' i .1% (jak w bazie
danych Oracle UEQVVVKIGT), to kod z wydruku 5.1 wygeneruje dokument
XML. Aby stworzy dokument XML, nale y otoczy dane znacz- nikiem
EQNNGEVKQP . Istnieje jeszcze jeden warunek, ktry powinien zosta
speniony, bymy mogli osign cel serwer lub aplikacja klienta powinny
obsugiwa funkcje agregujce, tak jak to pokazuje wydruk 5.2.
Wprawdzie nie jest to rozwizanie zbyt oglne, ale stosujc SQL, mo na
w prosty sposb generowa kod XML z relacyjnej bazy danych. Co wa ne,
w przypadku prostych zastosowa mo e to by wygodne. 9[FTWM Kod SQL
generujcy fragment tabeli wydziaw przykadowej bazy danych
Scott/Tiger UGNGEV FGRV FGRVPQ ^^FGRVPQ^^ FPCOG ^^FPCOG^^ NQE
^^NQE^^ HTQO FGRV 9[FTWM Skrypt generujcy dokument XML dla tabeli
wydziaw przykadowej bazy danych Scott/Tiger DKPUJ GEJQ !ZON
XGTUKQP> > ! GEJQ EQNNGEVKQP USNRNWU UEQVVVKIGT '1( UGNGEV
FGRV FGRVPQ ^^FGRVPQ^^ FPCOG ^^FPCOG^^ NQE ^^NQE^^ HTQO FGRV '1(
GEJQ EQNNGEVKQP Jeli uniezale nimy si od konkretnych kolumn, to
otrzymamy bardziej uniwersalne rozwi- zanie. Na serwerze mo na
stworzy funkcj, ktra wartoci kolumny otoczy znacznikami, ktrych
nazwy s nazw kolumny, wiersze nazw tabeli, a dokument elementem
EQNNGEVKQP. Rekord relacyjnej tabeli mo na przeksztaci w pojedynczy
element, a wartoci zapisy- wa w atrybutach tego elementu, mo na te
stworzy element z podelementami. Zapis rekordw jako atrybutw jest
prostszy, ale u ycie podelementw bardziej uniwersalne. Kiedy
korzystamy z podelementw, mo emy zastosowa sekcje CDATA do
zapisywania znakw zastrze onych. Atrybuty mog przechowywa
informacje o formatowaniu, mo na je zastpi kompletniejszymi danymi
ze wskanikami kluczy obcych. R nice midzy zastosowaniem atrybutw i
elementw opisano w punkcie 2.4.4. Pseudokod, za pomoc ktrego mo na
przeksztaci rekordy tabeli w atrybuty, podano w wydruku 5.3, za
ten, za pomoc ktrego przeksztaca si rekordy na elementy z po-
delementami, przedstawia wydruk 5.4. Wielu sprzedawcw baz danych
proponuje takie rozwizania, w ktrych wyniki zapytania przeksztacane
s na dokumenty XML. Pro- pozycje firm IBM, Oracle i Microsoft
opisano w rozdziale 6. 9[FTWM Procedura zapisu danych z relacyjnej
tabeli jako atrybutw XML RTQEGFWTG YTKVG:/.#VVTKDWVGU VCDNG RTKPV
!ZON XGTUKQP> > ! RTKPV EQNNGEVKQP HQT GCEJ TQY KP VCDNG
RTKPV VCDNGPCOG HQT GCEJ EQNWOP KP TQY RTKPV EQNWOPPCOG XCNWG
11. 4QFKC Architektura systemu baz danych 185 GPF RTKPV GPF
RTKPV EQNNGEVKQP GPF 9[FTWM Procedura zapisu danych z relacyjnej
tabeli jako podelementw RTQEGFWTG YTKVG:/.'ODGF'NGOGPVU VCDNG RTKPV
!ZON XGTUKQP> > ! RTKPV EQNNGEVKQP HQT GCEJ TQY KP VCDNG
RTKPV TGEQTF HQT GCEJ EQNWOP KP TQY RTKPV EQNWOPPCOG RTKPV XCNWG
RTKPV EQNWOPPCOG GPF RTKPV TGEQTF GPF RTKPV EQNNGEVKQP GPF Niektre
przykady kodu Java zaprezentowane w dalszej czci tego rozdziau
uruchomi si w systemie o architekturze dwuwarstwowej, ktra pozwala
rozwija klucze obce, pobiera pojedyncze rekordy oraz narzuca
warunki na zapytania. Przetwarzanie XML bezporednio na serwerze baz
danych, z waciw mu architektur klient-serwer, ma kluczowe znaczenie
dla wydajnoci w du ych zbiorach danych. Jednak oprogramowanie jest
opisywane jedynie w architekturze trzywarstwowej, gdy wtedy wymogi
zwizane ze znajomoci r nych procesw i ich dziaaniem s mniejsze ni w
przypadku architektury dwuwarstwowej. Jeli trzeba skorzysta z
systemu o architekturze klient-serwer, to funkcjo- nalno warstwy
poredniej i serwera z systemu o architekturze trzywarstwowej mo na
ze sob poczy, tworzc serwer odpowiedni dla modelu opartego na
strukturze dwuwar- stwowej. Zdarza si, e nawet jeli przetwarzanie
odbywa si na serwerze, to i tak mog wy- stpi problemy z komunikacj
midzy jdrem bazy danych a rozszerzeniami obsugujcy- mi XML w
przypadku struktury trzywarstwowej atwiej mo na poprawi wydajno.
#TEJKVGMVWTC VT[YCTUVYQYC Prost trzywarstwow architektur sieciowego
systemu baz danych pokazano na rysun- ku 5.1. System ten skada si z
trzech moduw: DBMS realizuje funkcje bazy danych i umo liwia dostp
do bazy. Mo na zastosowa relacyjn, obiektow baz danych, baz danych
XML lub system plikw. Warstwa porednia zawiera serwer sieciowy,
ktry mo e korzysta z bazy danych i udostpnia te dane klientowi. Mo
na zastosowa zwyky serwer sieciowy, serwer sieciowy ze skryptami
CGI, serwer z serwletami, serwer z JSP, komercyjne oprogramowanie
warstwy poredniej z dostpem do baz danych lub serwer
aplikacji.
12. 186 Projektowanie baz danych XML. Vademecum profesjonalisty
4[UWPGM Trzywarstwowa architektura sieciowego systemu baz danych
Klient zawiera interfejs u ytkownika, ktry pozwala korzysta z
funkcji warstwy poredniej. Klient mo e by te inn aplikacj. Zwykle
rol t peni przegldarka, aplet Javy lub aplikacja napisana w jzyku
Java. W r norodny sposb mo na okrela zawarto poszczeglnych moduw i
sposb ich czenia. Protokoem komunikacyjnym z klientem mo e by
TCP/IP, HTML lub XML, przenoszone przez HTTP lub CORBA. Komunikacja
midzy baz danych lub warstw poredni mo e si odbywa za pomoc JDBC
lub CORBA. Zwykle wybr jednej tech- niki komunikacji wpywa na inne
decyzje. Oczywicie, zawsze mo na zastosowa inne typy architektury i
inne techniki. Niezale nie od dokonanego wyboru, projektujc system,
warto i nale y zada kilka pyta, midzy innymi: W jaki sposb dane s
adowane do bazy danych? Za pomoc jakich zapyta dane bd pobierane z
bazy? W ktrym module jest generowny XML? W ktrym module odbywa si
przetwarzanie XML? 5GTYGT UKGEKQY[ :/. Serwer XML umo liwia
sieciowy dostp do bazy danych. Obsuguje takie operacje baz danych,
jak: przechowywanie, pobieranie, aktualizowanie dokumentw. Baza
danych mo e opiera si na dowolnym modelu danych, ale dane pobierane
zawsze maj posta XML. Kiedy serwer danych aduje dane do bazy innej
ni XML, mo e przyjmowa dane w formie XML lub w formacie odpowiednim
dla konkretnej bazy. W nastpnym punkcie opiszemy niektre mo liwoci
implementacji, za w punkcie 5.2.2 sposb, w jaki mo na siga do
danych na serwerze. W punktach 5.2.3 i 5.3 przedstawimy kolejno
zapisywanie danych z bazy relacyjnej jako XML i odczyt tych danych.
W punk- cie 5.4 pobieranie i odczyt danych XML z serwera bazy
danych XML, za w punkcie 5.5 pobieranie danych relacyjnych i XML ze
wsplnego serwera. /Q NKYQ EK KORNGOGPVCELK Serwer danych XML mo na
stworzy od zera, na przykad modyfikujc serwer sieciowy albo
korzystajc z serwera sieciowego z obsug CGI, z serwera sieciowego z
obsug serwletw, z obsug JSP, mo na tak e wykorzysta serwer
aplikacji lub po prostu kupi gotowy system. Jeli tworzymy serwer
danych XML od zera, to nale y pamieta, e serwer sieciowy jest
podstaw, na ktrej tworzy si funkcje dostpu do danych, funkcje
13. 4QFKC Architektura systemu baz danych 187 formatowania XML
i zwracania odpowiedzi zgodniez podanymi adresami URL. Gotowy
serwer sieciowy (na przykad niewielki, darmowy serwer) mo na
zmodyfikowa lub rozszerzy o funkcje dostpu do bazy danych,
formatowanie XML i odpowiadanie na dania w formie adresw URL. W
przypadku u ywania serwera z obsug CGI, ser- wletw lub serwera
aplikacji trzeba zrobi to samo. Korzystanie z serwera aplikacji ma
jedn zalet, serwery te posiadaj wbudowan funkcj pocze z baz danych.
Dobry system komercyjny zazwyczaj od razu dysponuje wszystkimi
potrzebnymi funkcjami. Do serwera danych mo na doda funkcje, ktre
wykonuj okrelone zadania przed zwr- ceniem, wprowadzeniem lub
zmodyfikowaniem danych XML w bazie. Na przykad niektre zapytania
mog wymaga agregacji lub wylicze statystycznych. W przypadku
wprowadzania danych i ich modyfikowania konieczne mo e by
sprawdzenie poprawnoci danych lub regu biznesowych. Warto o tym
pamita, zanim wybierzemy serwer danych. Najlepszym rozwizaniem
jest, oczywicie, komercyjny serwer danych XML, gdy spenia wszystkie
wymagania. Warto tak e rozwa y mo liwo zakupu serwera aplikacji,
ktry mo na atwo poczy ze rodowiskiem projektowym (jeli spenia nasze
wymagania) i ktry posiada odpowiednie funkcje baz danych. Wad
niektrych serwerw aplikacji jest to, e czsto projektanci s
ograniczani przez dostpne interfejsy u ytkownika lub niestandardow
metod czenia si z baz danych wymaga to od nich dodatkowego wysiku.
Jednak tworzenie od pocztku pakietu cznoci z baz danych (na przykad
opartego na JDBC) jest trudnym zadaniem i w przypadku du ych
aplikacji komercyjnych nale y to uzna za ostateczno (chyba e
postawilimy sobie za cel stworzenie serwera danych XML wtedy,
oczywicie, rzecz jest warta zachodu). Pakiety cznoci z baz danych w
przypadku maych aplikacji mog by proste. Wystarczy otwarcie
poczenia z baz danych, wykonanie transakcji i zamknicie poczenia.
Taki prosty pakiet opisano w dodatku A. Jednak wykonanie pakietw
cznoci z baz danych staje si du o bardziej odpowiedzialnym
zsadaniem, kiedy trzeba utrzymywa poczenia dla wielu transakcji
przeprowadzanych z r nych kont, dba o wydajno (wymaga to zarzdzania
pocze- niami, czasem rozczania si) i bezpieczestwo pocze. Wa n
decyzj zwizan z implementacj serwera danych jest wybr jzyka
programo- wania. Jeli do stworzenia serwera danych u ywamy Javy,
serwer sieciowy powinien obsugiwa serwlety. Komunikacja bazy danych
z serwerem sieciowym mo e mie form cienkiego klienta lub grubego
klienta. Wybr jednego z tych rozwiza zale y od mo liwoci bazy
danych. W przypadku grubego klienta caa aplikacja ma bezporedni
dostp do bazy. W przypadku cienkiego klienta serwer sieciowy mo e
siga do bazy danych za pomoc odpowiedniego protokou, ktry zwykle
nie obsuguje specjalnych funkcji bazy. Poczenie z baz cienkiego
klienta mo na zrealizowa jako bezporednie, zapisane w jzyku C z
obudow w jzyku Java. Rozwizanie cienkiego klienta zwykle realizuje
si za pomoc JDBC (ODBC zrealizowane w Javie), czyli standardowego
mechanizmu dostpu do danych w bazach relacyjnych, typowego dla
wikszoci (a mo e nawet dla wszystkich) baz danych. Niektre bazy
danych oferuj tak e bezporednie poczenie Javy oparte na JDBC lub
innym protokole. Porwnanie tych dwch rozwiza: cienkiego klienta i
grubego klienta mo na znale w ka dej dobrej ksi ce o JDBC. Gruby
klient mo e by wydajniejszy. W tym rozdziale skorzystamy z JDBC
(cienki klient), gdy jest to rozwizanie oglne, dostpne w wikszoci
baz danych zwykle wystarczajce.
14. 188 Projektowanie baz danych XML. Vademecum profesjonalisty
Alternatywa dla Javy to u ycie jzyka skryptowego Tcl/Tk. Ma on
kilka zalet: atwo mo na go rozszerza, bez trudu mo na go czy z
jzykiem C i r nymi pakietami oprogramo- wania. Niestety, nie jest
tak popularny jak Java czy JavaScript, ale warto si zastanowi nad
tym wyborem, szczeglnie jeli Tcl/Tk jest dostpny w u ywanym
systemie. Jzyk Tcl/Tk wietnie nadaje si do tworzenia prototypw, gdy
nie s uwzgldniane typy danych, a struktury danych s elastyczne,
poza tym jzyk ten dysponuje wieloma wbudowanymi mo liwociami. W
Sieci s dostpne rozszerzenia cznoci z bazami Oracle, Sybase i in-
nymi, istniej darmowe serwery HTTPD dostpne wraz z kodem rdowym, w
tym jeden autorstwa Scriptics. Znane s jeszcze lepsze serwery
sieciowe i aplikacje napisane w Tcl/Tk, w tym serwer dziaajcy na
stronie AOL, ktrego zalet jest wbudowana czno z bazami danych. Wad
jest maa popularno Tcl/Tk, co wpywa na utrudnienia w dostpie do
pomocy i mniejsz liczb darmowych pakietw, skromniejsze mo liwoci i
wolniejsz reakcj na pojawiajce si nowinki techniczne. Jednak ci,
ktrzy znaj Tcl/Tk, mog w kilka dni stworzy dobrze dziaajcy serwer
danych XML, korzystajc z darmowych komponentw. Jest to wietna
metoda tworzenia prototypu takiego serwera. Inne jzyki skryptowe to
Perl i Python. Perl zawiera mnstwo moduw obsugujcych CGI i umo
liwia czno z bazami danych. Coraz wiksza grupa programistw korzysta
z tego jzyka, gdy umo liwia programowanie obiektowe oraz posiada
sprawne algorytmy. Osoby, ktre chciayby zbudowa serwer danych XML
oparty na relacyjnej bazie danych, a nie maj dostpu do bazy
komercyjnej, mog skorzysta z darmowej bazy mysql, ktra jest
obsugiwana w wielu jzykach skryptowych. &QUVR MNKGPVC Kiedy u
ywamy sieciowego serwera danych, aplikacje klienckie uzyskuj do
niego dostp za pomoc adresu URL. Adres ten mo e zawiera wikszo
informacji, a nawet wszyst- kie, ktre s potrzebne, by mie dostp do
danych, za dane zapisywane w bazie mog by wysyane metod POST. Jeli
chcielibymy mie dostp do danych z serwera XML, trzeba zastanowi si
nad takimi zagadnieniami: W jaki sposb zyskamy dostp do serwera
sieciowego? Jak nale y podawa adres URL, aby umo liwi dostp do bazy
danych? Jakie s najwa niejsze wyzwania projektowe? Nale y u y
jednego adresu URL czy wielu? Jakie warunki decyduj o konstrukcji
adresu URL? Oto sposoby, mo liwoci tworzenia adresu URL: Jeden
adres URL, wszystkie informacje przekazywane s metod POST
pojedynczego dokumentu. Jeden adres URL, wikszo informacji
przekazywana jest metod POST i jako parametry GET. R ne adresy URL,
ktre speniaj r ne funkcje.
15. 4QFKC Architektura systemu baz danych 189 Wszystkie dane i
polecenia mog by umieszczane w dokumencie, a nastpnie przesyane pod
jednym adresem URL. Zalet takiego rozwizania jest przenoszenie
wszystkich danych jako XML (dziki czemu rozwizanie jest zgodne z
innymi metodami). Wada to koniecz- no parsowania dokumentw
(przynajmniej wstpnego), zanim zostanie podjta decyzja, ktre dane
maj by wysane. Jeli na przykad mo na wprowadzi nowe dane lub zak-
tualizowa istniejce, to wybr odpowiedniej operacji mo e wymaga
czciowego przy- najmniej parsowania dokumentu. Przekazywanie
czciowo sparsowanego strumienia danych innemu parserowi jest
trudne, o ile w ogle mo liwe. Jednak takie rozwizanie jest
przydatne, kiedy mo na od razu przeanalizowa cay dokument. U ycie
pojedyn- czego dokumentu to optymalne rozwizanie, kiedy z serwerem
danych XML wsppra- cuje wiele aplikacji. Kiedy u ytkownicy
kontaktuj si z serwerem danych XML za porednictwem stron sieciowych
i formularzy HTML, atwiejsze jest przekazywanie danych metodami
POST i GET. Jest to najlepsze rozwizanie, kiedy mamy do czynienia z
niewielkim zbiorem polece i niewielk iloci strukturalnych danych.
Jeli na przykad nale y przeglda dane i zadawa zapytania za
porednictwem prostych formularzy, parametry mo na prze- kazywa w
wierszu adresu. W tej ksi ce postpimy najlepiej jak potrafimy z
peda- gogicznego punktu widzenia u yjemy metod POST/GET, dane
strukturalne przeka emy jako XML, podajc kod XML jako cz adresu
URL. Zastosowanie odrbnych adresw URL i przypisanie ich do innej
funkcji lub jednego adresu i wskazywanie funkcji w parametrach to
kwestia stylu programowania, cho w zale noci od stosowanych technik
programistycznych jedno z tych rozwiza mo e by prostsze w
implementacji. Adresy URL mo na podawa w przegldarce sieciowej, w
formularzu HTML, z apletu, aplikacji, ze skryptu CGI lub w
jakikolwiek inny sposb zapisany w HTTP. CFQYCPKG FCP[EJ Zaadowanie
danych XML do istniejcej bazy relacyjnej (lub obiektowej) stanowi
po- dwjne wyzwanie: semantyczne i techniczne. Pierwsze polega na
odwzorowaniu semantyki XML, czyli przeksztaceniu danych XML w
relacje na przykad elementu RGTUQP w tabel RGTUQPPGN. Kiedy
dokument XML jest projektowany z myl o istniejcej bazie relacyjnej,
odwzorowania powinny by proste. W dokumencie XML mog wystpi takie
znaczniki, ktrym nie odpowiadaj adne obiekty bazy; dane tego
rodzaju mo na pomin lub nale y tak zmodyfikowa baz, aby je
uwzgldni. Trudno odwzorowywania dokumentw XML w relacje pojawia si,
kiedy semantyka XML i relacyjnej bazy danych czciowo si pokrywa. Na
przykad dane XML, ktre pochodz z jednego systemu, mog zawiera
informacje o pracownikach zatrudnionych etatowo, tymczasowo i na
umow zlecenia, za w bazie relacyjnej wszystkim tym gru- pom
pracownikw mog odpowiada odrbne relacje. W zasadzie problem jest
podobny do tego, ktry wi e si z czeniem wielu baz danych. W takiej
sytuacji przydaj si dowiadczenia zwizane z du ymi bazami danych
oraz scalaniem r nych baz, szcze- glnie jeli bazy oparte byy na r
nych modelach danych. Drugi rodzaj problemu, techniczny to sposb
odwzorowania hierarchicznych danych XML, przeksztacenia ich na
paskie relacje. Chodzi o to, ekiedy dojdzie do odwzoro- wania,
zapis danych w formie relacji wymaga spaszczenia danych.
16. 190 Projektowanie baz danych XML. Vademecum
profesjonalisty
17. 4QFKC Architektura systemu baz danych 191 Przeksztacenia
jeli u ywamy bazy danych opartej na innym modelu danych ni XML,
dobrym pomysem mo e by przeksztacenie XML. Kiedy rol klienta peni u
ytkownik, a nie inna aplikacja, waciwe bdzie sformatowanie danych
jako XML, zanim zostan zaadowane do bazy, szczeglnie w przypadku
interaktywnego procesu wprowadzania lub edycji danych, gdy drobne
poprawki pojawiaj si na zmian z zapytaniami. Du ym atutem
stosowanego w takich systemach XML jest realizacja zapyta. Istniej
r ne techniki, za pomoc ktrych mo na tworzy dane i korzysta z
formularzy do edycji. W niektrych sytuacjach, aby zaadowa dane XML
do bazy relacyjnej, mo na u y ogl- nego narzdzia. Warunkiem jest,
eby preprocesor mg przeksztaca hierarchiczne dane XML w paskie
relacje. Jedna z mo liwoci to zastosowanie arkuszy stylw XSL do
prze- ksztacenia specyficznej postaci XML na ogln posta rekordw,
ktre mo na zaadowa za pomoc aplikacji jzyka Java. Jeli jednak
danych jest du o, konieczne mo e by za- stosowanie mechanizmu, ktry
nie bdzie przetwarza danych w pamici na przykad u ycie parsera SAX
(opisanego w dodatku B). Aplikacja adujca dane mo e by samodzielnym
programem lub znajduje si na serwerze, co pozwala przesa dane XML
do serwera HTTP i adowa do bazy. Poprzez Sie dane mo na adowa na
dwa sposoby: przez dokument XML lub metodami HTTP POST/GET.
Informacje o bazie danych i transakcjach mo na poda w parametrach
POST/GET lub w dokumencie XML. Dokument ten mo e zawiera informacje
potrzebne do zaadowania danych w formie elementw lub atrybutw, za
adowane dane mog by jednym z ele- mentw dokumentu. U ycie dokumentu
XML jest oglniejsz metod adowania danych generowanych przez
aplikacj, ale u ycie metod POST/GET pozwala wprowadza dane rcznie w
formularzach HTML. CFQYCPKG FCP[EJ LCMQ RCTCOGVTY 74. Parametrw
POST mo na u y do przekazania informacji o adowaniu danych, elemen-
tw oraz atrybutw. W przypadku elementu paskiego parametry s
wyliczane wedug nazwy. Struktury hierarchiczne s bardziej
skomplikowane, ale mo na je tworzy, wyko- rzystujc hierarchi nazw.
W takiej hierarchii podelementy elementu gwnego s wyliczane wedug
nazw, z kolei ich podelementy s nazywane przez poczenie ich nazw z
nazwami rodzicw (z u yciem separatora). Innym problemem, zwizanym
ze stosowaniem formularzy HTML do przekazywania informacji w
parametrach, jest to, e niektre parametry mog by potrzebne
aplikacji. Na przykad formularz mo e ustawia zmienn 5WDOKV, konto
bazy danych i punkt wejcia (nazw tabeli lub klas obiektu). Mo na
postpowa na cztery sposoby: jednoznacznie identyfikowa zmienne
aplikacji, jednoznacznie identyfikowa zmienne u ytkownika,
jednoznacznie identyfikowa jedne i drugie lub w ogle si tym nie
przejmowa. Nazwy zmiennych identyfikuje si, stosujc przedrostki, na
przykad A, XCTA, ZONA, CRRA lub WUGTA. By uproci tworzenie
formularza, mo na umieszcza polecenia XML w wartociach parametrw.
Jeli na przykad konieczne jest utworzenie niepowtarzalnego
identyfikatora, mo na u y polecenia nakazujcego utworzy taki
identyfikator w trakcie adowania, na przykad UGSWGPEGAIGPGTCVG
UGSWGPEG VTCPUCEVKQPAUGS .
18. 192 Projektowanie baz danych XML. Vademecum profesjonalisty
CFQYCPKG FCP[EJ FQMWOGPVY :/. Dokumenty XML, ktre chcemy zaadowa,
mog pochodzi z innej aplikacji, rda zewntrznego (bazy danych,
zwykego pliku) lub z formularza. Jednym ze sposobw utworzenia
dokumentu XML na podstawie danych z formularza jest wykorzystanie
skryptu lub programu formatujcego dane z formularza HTML jako XML.
Mo na te u y apletu jzyka Java. Dokadniej temat ten omwimy w
rozdziale 7. Autor napisa w jzyku Java program adujcy dane do bazy
relacyjnej, T.QCF. Wydruk 5.6 pokazuje kod rdowy T.QCF. Aplikacja
aduje dane XML w dwch etapach: Pierwszy polega na przeksztaceniu
danych XML za pomoc arkuszy XSL na dokument XML, skadajcy si ze
znacznikw TGEQTF i HKGNF, ktre odpowiadaj adowanym tabelom oraz
metadanych opisujcych adowanie danych. Na przykad dokument z
wydruku 5.7 mo na przeksztaci za pomoc arkusza stylw na dokument
XML T.QCF (zobacz wydruk 5.8). Arkusze stylw zostan dokadniej
omwione w rozdziale 7., ale prosty arkusz, ktry w przykadzie z
mikromatryc przeksztaca geny, przedstawia wydruk 5.9. Drugi etap to
adowanie danych TGEQTFHKGNF do bazy za pomoc parsera SAX. Dokument
XML TGEQTFHKGNF, nazywany dokumentem TNQCF, skada si z elementw
TGEQTF i HKGNF, a tak e metadanych, ktre speniaj nastpujce zadania:
Wskazuj, w ktrej tabeli powinien by umieszczony dany rekord.
Rekordy przeznaczone do r nych tabel mog si przeplata w dokumencie.
Poza tym rekord przeznaczony do jednej tabeli mo e by zagnie d ony
w rekordzie adowanym do innej tabeli. Upraszcza to generacj
dokumentu XML TNQCF. Informuj o tym, czy rekord zagnie d ony ma by
zaadowany przed, czy za rekordem, w ktrym jest zagnie d ony. Wpywa
to na wiksz elastyczno definiowania, zwaszcza w przypadku rekordw,
ktre mo na zdefiniowa w arkuszu XSL bez wzgldu na klucz obcy. Na
przykad w dokumencie XML pracownik mo e zawiera wydzia, w ktrym
dana osoba pracuje, tak samo wydzia mo e zawiera list zatrudnionych
w nim osb. W trakcie adowania rekord niezale ny mo e zosta
utworzony jako pierwszy, potem mog by tworzone rekordy zale ne, bez
wzgldu na to ktry rekord jest zagnie d onym, a ktry elementem
otaczajcym. Wskazuj, e warto pola powinna by u yta do generacji
wartoci przez generator sekwencji w bazie danych. Wskazuj, e warto
pola ma by pobrana z generatora sekwencji bazy danych. Tak wic
rekord zale ny mo e odwoywa si do niepowtarzalnego identyfikatora
wygenerowanego dla rekordu nadrzdnego. Wskazuj, e biae znaki
powinny by z wartoci odrzucone bd znormalizowane. Wskazuj, e warto
powinna by identyfikatorem rekordu w innej tabeli, ktrej dana
kolumna ma warto rwn polu elementu. Pozwala to tworzy klucze obce
na podstawie identyfikatorw generowanych przez baz danych, za
klucze alternatywne lub kolumny o niepowtarzalnych wartociach mog
by u ywane przy wprowadzaniu i adowaniu danych.
19. 4QFKC Architektura systemu baz danych 193 9[FTWM Kod Java
programu adujcego dane XML, rLoad
47. ZUNCRRN[VGORNCVGU TGEQTF ZUNVGORNCVG ZUNVGORNCVG OCVEJ
"PCOG HKGNF PCOG PCOG ZUNXCNWGQH UGNGEV HKGNF ZUNVGORNCVG
ZUNVGORNCVG OCVEJ "FGUETKRVKQP HKGNF PCOG FGUETKRVKQP ZUNXCNWGQH
UGNGEV HKGNF ZUNVGORNCVG ZUNVGORNCVG OCVEJ "RCVJYC[ HKGNF PCOG
RCVJYC[ ZUNXCNWGQH UGNGEV HKGNF ZUNVGORNCVG ZUNVGORNCVG OCVEJ
"QTICPKUO HKGNF PCOG QTICPKUO ZUNXCNWGQH UGNGEV HKGNF ZUNVGORNCVG
ZUNUV[NGUJGGV Implementacja w jzyku Java skada si z trzech klas:
gwnej klasy .QCF:/., klasy ,&$%.QCF*CPFNGT u ywanej z parserem
SAX oraz klasy 4GEQTF, zawierajcej informacje dotyczce wszystkich
adowanych rekordw. Metoda OCKP klasy .QCF:/. pobiera plik XML TNQCF
jako dane wejciowe i wywouje metod RCTUG, tworzc obiekt parsera
SAX
48. 202 Projektowanie baz danych XML. Vademecum profesjonalisty
z procedur obsugi ,&$%.QCF*CPFNGT. ,&$%.QCF*CPFNGT tworzy
obiekt 4GEQTF i wypenia w miar parsowania jego pola. Jeli element
XML TGEQTF wymaga wicej ni jednego rekordu relacyjnego, tworzonych
jest odpowiednio wiele obiektw 4GEQTF. )GPGTCELC :/. Istnieje kilka
sposobw generowania dokumentw XML na podstawie danych z relacyjnej
bazy danych. Przedstawimy pi mo liwoci: C Dokument XML mo na
wygenerowa na podstawie danych z tabeli relacyjnej bazy danych.
Tabela jest formatowana jako dokument XML, za kluczy obcych u ywa
si do okrelenia hierarchii elementw dokumentu. Nazwy typw elementw
to nazwy tabeli i kolumn. Takie rozwizanie przydaje si do
przegldania danych z bazy. D To rozwizanie jest podobne do
poprzedniego: o strukturze dokumentu decyduje struktura bazy
danych, ale mo liwe jest te u ycie widokw (perspektyw). Ka dy widok
jest zamieniany na dokument XML. Dziki temu tworzenie dokumentw
jest bardziej elastyczne, gdy struktura dokumentu nie zale y
bezporednio od postaci tabel. Hierarchi elementw okrelaj klucze
obce i (lub) relacje jawnie okrelajce, ktre wartoci i jak maj by
rozwijane. E Dokumenty mo na tworzy na podstawie formuowanych ad
hoc zapyta. Hierarchia elementw nadal zale y od struktury bazy
danych (i ewentualnie widokw). F Szablon dokumentu mo na
zdefiniowa, podajc jego czci w formie zapyta. Zapytania s
wykonywane i przeksztacane na XML jak poprzednio, ale wyniki wielu
zapyta s zbierane w jednym dokume