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.

description

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

Transcript of Projektowanie baz danych XML. Vademecum profesjonalisty

  • 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
  • 20. .QCF:/.LCXC
  • 21. RCEMCIG EQOZYGCXGZONFDTNQCF
  • 22. ) YPC MNCUC CFWLEC FCPG :/. FQ TGNCE[LPGL DC[ FCP[EJ
  • 23. KORQTV QTIZONUCZ
  • 24. KORQTV QTIZONUCZJGNRGTU2CTUGT(CEVQT[ KORQTV EQOKDOZONRCTUGTU&1/2CTUGT KORQTV QTIYEFQO&QEWOGPV KORQTV LCXCKQ+1'ZEGRVKQP KORQTV EQOZYGCXGZONFDWVKNTFD
  • 25. RWDNKE ENCUU .QCF:/. ] RWDNKE UVCVKE 1TCENG&$ QTCENG&$ PWNN RWDNKE .QCF:/. ] UWRGT _ RWDNKE UVCVKE 1TCENG&$ IGV1TCENG&$ ] KH QTCENG&$ PWNN ] VT[ ] QTCENG&$ PGY 1TCENG&$ PGY ,&$%#EEV OITCXGUOITCXGU" QTCENG&$EQPPGEV _ ECVEJ LCXCUSN53.'ZEGRVKQP GZ ] GZRTKPV5VCEM6TCEG _ _ TGVWTP QTCENG&$ _ RWDNKE UVCVKE XQKF OCKP LCXCNCPI5VTKPI=? CTIU ] 6WVCL YUVCYK MQF KPKELWLE[ CRNKMCEL KH CTIUNGPIVJ ] 5[UVGOGTTRTKPVNP :/..QCF Y[OCICP[ LGUV RNKM LCMQ CTIWOGPV _ PGY .QCF:/. RCTUG CTIU=? _ RWDNKE XQKF RCTUG 5VTKPI ZON(KNG ] 5VTKPI RCTUGT%NCUU EQOKDOZONRCTUGTU5#:2CTUGT VT[ ] 2CTUGT RCTUGT 2CTUGT(CEVQT[OCMG2CTUGT RCTUGT%NCUU *CPFNGT$CUG JCPFNGT PGY ,&$%.QCF*CPFNGT RCTUGTUGV&QEWOGPV*CPFNGT JCPFNGT RCTUGTUGV'TTQT*CPFNGT JCPFNGT VT[ ] RCTUGTRCTUG ZON(KNG _ ECVEJ 5#:'ZEGRVKQP UG ] UGRTKPV5VCEM6TCEG _ ECVEJ +1'ZEGRVKQP KQG ] KQGRTKPV5VCEM6TCEG _ _ ECVEJ %NCUU0QV(QWPF'ZEGRVKQP GZ ] GZRTKPV5VCEM6TCEG _ ECVEJ +NNGICN#EEGUU'ZEGRVKQP GZ ] GZRTKPV5VCEM6TCEG _ ECVEJ +PUVCPVKCVKQP'ZEGRVKQP GZ ] GZRTKPV5VCEM6TCEG _ _
  • 26. 194 Projektowanie baz danych XML. Vademecum profesjonalisty RWDNKE UVCVKE XQKF UGV1TCENG&$ 1TCENG&$ PGY8CNWG ] .QCF:/.QTCENG&$ PGY8CNWG _ _
  • 27. 4GEQTFLCXC
  • 28. RCEMCIG EQOZYGCXGZONFDTNQCF
  • 29.
  • 30. KORQTV LCXCNCPI
  • 31. KORQTV EQOZYGCXGZONFDWVKNTFD4&$ RWDNKE ENCUU 4GEQTF ] RWDNKE 5VTKPI VCDNG RTQVGEVGF 5VTKPI$WHHGT HKGNF0COG$WHHGT PWNN RTQVGEVGF 5VTKPI$WHHGT HKGNF8CNWG$WHHGT PWNN RTQVGEVGF 5VTKPI$WHHGT UWDS9JGTG$WHHGT PWNN RTQVGEVGF 5VTKPI$WHHGT UWDS(TQO$WHHGT PWNN RTKXCVG KPV PWO5WDS RTKXCVG DQQNGCP KP5WDS HCNUG RTKXCVG DQQNGCP FGNC[ HCNUG RWDNKE 4GEQTF ] UWRGT _ RWDNKE XQKF CFF(KGNF'ZRT 5VTKPI XCNWG ] KH IGV(KGNF8CNWG$WHHGT NGPIVJ ] IGV(KGNF8CNWG$WHHGT CRRGPF _ KP5WDS HCNUG IGV(KGNF8CNWG$WHHGT CRRGPF XCNWG _ RWDNKE XQKF CFF(KGNF0COG 5VTKPI PCOG ] KH IGV(KGNF0COG$WHHGT NGPIVJ ] IGV(KGNF0COG$WHHGT CRRGPF _ IGV(KGNF0COG$WHHGT CRRGPF PCOG _ RWDNKE XQKF CFF(KGNF5WDS 5VTKPI XCNWG ] KH IGV5WDS9JGTG$WHHGT NGPIVJ ] IGV5WDS9JGTG$WHHGT CRRGPF #0& IGV5WDS(TQO$WHHGT CRRGPF _ RQFKC U QYC MNWEQYGIQ PC KPV KPFGZ XCNWGKPFGZ1H KPV KH KPFGZ ] IGV5WDS9JGTG$WHHGT CRRGPF $ & XCNWG PKGPCP[ TGVWTP _ 5VTKPI VCDNG XCNWGUWDUVTKPI KPFGZ 5VTKPI EQNWOP XCNWGUWDUVTKPI KPFGZ FQFCPKG FQ DWHQTY PWO5WDS CFF(KGNF'ZRT USV +PVGIGTVQ5VTKPI PWO5WDS KF KP5WDS VTWG IGV5WDS9JGTG$WHHGT CRRGPF USV +PVGIGTVQ5VTKPI PWO5WDS EQNWOP IGV5WDS(TQO$WHHGT CRRGPF VCDNG USV +PVGIGTVQ5VTKPI PWO5WDS _
  • 32. 4QFKC Architektura systemu baz danych 195 RWDNKE XQKF CFF(KGNF8CNWG 5VTKPI XCNWG ] KH KP5WDS VTWG ] PQVG KPVGTCEVKQP YKVJ CFF(KGNF5WDS IGV5WDS9JGTG$WHHGT CRRGPF XCNWG KP5WDS HCNUG TGVWTP _ KH IGV(KGNF8CNWG$WHHGT NGPIVJ ] IGV(KGNF8CNWG$WHHGT CRRGPF _ 9 TCKG RQVTGD[ 1TCENG RQRTCYPKG KPVGTRTGVWLG C EWEJ LCMQ NKED IGV(KGNF8CNWG$WHHGT CRRGPF XCNWG _ RTQVGEVGF DQQNGCP IGV&GNC[ ] TGVWTP FGNC[ _ RTQVGEVGF 5VTKPI$WHHGT IGV(KGNF0COG$WHHGT ] KH HKGNF0COG$WHHGT PWNN ] HKGNF0COG$WHHGT PGY 5VTKPI$WHHGT _ TGVWTP HKGNF0COG$WHHGT _ RTQVGEVGF 5VTKPI$WHHGT IGV(KGNF8CNWG$WHHGT ] KH HKGNF8CNWG$WHHGT PWNN ] HKGNF8CNWG$WHHGT PGY 5VTKPI$WHHGT _ TGVWTP HKGNF8CNWG$WHHGT _ RWDNKE UVCVKE 4GEQTF IGV(TGG4GEQTF ] TGVWTP PGY 4GEQTF _ RWDNKE 5VTKPI IGV53.+PUGTV5VTKPI ] 5VTKPI$WHHGT DWH PGY 5VTKPI$WHHGT DWHCRRGPF KPUGTV KPVQ DWHCRRGPF IGV6CDNG DWHCRRGPF IGV(KGNF0COG$WHHGT KH PWO5WDS ] DWHCRRGPF UGNGEV DWHCRRGPF IGV(KGNF8CNWG$WHHGT DWHCRRGPF HTQO IGV5WDS(TQO$WHHGT DWHCRRGPF YJGTG IGV5WDS9JGTG$WHHGT _ GNUG ] DWHCRRGPF XCNWGU DWHCRRGPF IGV(KGNF8CNWG$WHHGT _ TGVWTP DWHVQ5VTKPI _ RTQVGEVGF 5VTKPI$WHHGT IGV5WDS(TQO$WHHGT ] KH UWDS(TQO$WHHGT PWNN ] UWDS(TQO$WHHGT PGY 5VTKPI$WHHGT _ TGVWTP UWDS(TQO$WHHGT _ RTQVGEVGF 5VTKPI$WHHGT IGV5WDS9JGTG$WHHGT ] KH UWDS9JGTG$WHHGT PWNN ] UWDS9JGTG$WHHGT PGY 5VTKPI$WHHGT _
  • 33. 196 Projektowanie baz danych XML. Vademecum profesjonalisty TGVWTP UWDS9JGTG$WHHGT _ RWDNKE 5VTKPI IGV6CDNG ] TGVWTP VCDNG _ RWDNKE XQKF RTKPV ] 5[UVGOQWVRTKPVNP IGV53.+PUGTV5VTKPI VT[ ] KH .QCF:/.IGV1TCENG&$ GZGEWVG7RFCVG IGV53.+PUGTV5VTKPI ] 5[UVGOQWVRTKPVNP PKG CFKC C Q _ GNUG ] 5[UVGOQWVRTKPVNP CFKC C Q _ _ ECVEJ LCXCUSN53.'ZEGRVKQP GZ ] GZRTKPV5VCEM6TCEG 5[UVGOQWVRTKPVNP PKG CFKC C Q _ _ RTQVGEVGF XQKF UGV&GNC[ DQQNGCP PGY8CNWG ] VJKUFGNC[ PGY8CNWG _ RTQVGEVGF XQKF UGV(KGNF0COG$WHHGT 5VTKPI$WHHGT PGY8CNWG ] VJKUHKGNF0COG$WHHGT PGY8CNWG _ RTQVGEVGF XQKF UGV(KGNF8CNWG$WHHGT 5VTKPI$WHHGT PGY8CNWG ] VJKUHKGNF8CNWG$WHHGT PGY8CNWG _ RTQVGEVGF XQKF UGV5WDS(TQO$WHHGT 5VTKPI$WHHGT PGY8CNWG ] VJKUUWDS(TQO$WHHGT PGY8CNWG _ RTQVGEVGF XQKF UGV5WDS9JGTG$WHHGT 5VTKPI$WHHGT PGY8CNWG ] VJKUUWDS9JGTG$WHHGT PGY8CNWG _ RWDNKE XQKF UGV6CDNG 5VTKPI PGY8CNWG ] VJKUVCDNG PGY8CNWG _ _
  • 34. ,&$%.QCF*CPFNGTLCXC
  • 35. RCEMCIG EQOZYGCXGZONFDTNQCF
  • 36. CFQYCPKG FCP[EJ :/. FQ TGNCE[LPGL DC[ FCP[EJ
  • 37. KORQTV QTIZONUCZ
  • 38. KORQTV LCXCWVKN
  • 39. RWDNKE ENCUU ,&$%.QCF*CPFNGT GZVGPFU QTIZONUCZ*CPFNGT$CUG ] RTKXCVG 4GEQTF EWTTGPV4GEQTF PWNN RTKXCVG 5VCEM TGEQTF5VCEM PWNN RTKXCVG 8GEVQT RTKPV8GEVQT PWNN RTKXCVG DQQNGCP KP(KGNF HCNUG RTKXCVG DQQNGCP HKGNF'ORV[ VTWG RTKXCVG UJQTV YJKVGURCEG1R RTKXCVG HKPCN UVCVKE KPV 9*+6'52#%'A12A010' RTKXCVG HKPCN UVCVKE KPV 9*+6'52#%'A12A64+/ RTKXCVG HKPCN UVCVKE KPV 9*+6'52#%'A12A4'/18' RWDNKE ,&$%.QCF*CPFNGT ] UWRGT _
  • 40. 4QFKC Architektura systemu baz danych 197 RWDNKE XQKF EJCTCEVGTU EJCT=? EJCTU KPV UVCTV KPV NGPIVJ ] HKGNF'ORV[ HCNUG KH KP(KGNF ] UYKVEJ YJKVGURCEG1R ] ECUG 9*+6'52#%'A12A64+/ EWTTGPV4GEQTFCFF(KGNF8CNWG 5VTKPIXCNWG1H EJCTU UVCTV NGPIVJVTKO DTGCM ECUG 9*+6'52#%'A12A4'/18' 5VTKPI$WHHGT UD PGY 5VTKPI$WHHGT HQT KPV K UVCTV K UVCTV NGPIVJ K ] KH %JCTCEVGTKU9JKVGURCEG EJCTU=K? ] UDCRRGPF EJCTU=K? _ _ EWTTGPV4GEQTFCFF(KGNF8CNWG UDVQ5VTKPI DTGCM FGHCWNV FGHCWNV NWD 010' TGE[YK EKG WUWYCPKG PCMY EWTTGPV4GEQTFCFF(KGNF8CNWG 5VTKPIXCNWG1H EJCTU UVCTV NGPIVJVTKO _ _ _ RWDNKE XQKF GPF'NGOGPV 5VTKPI PCOG ] KP(KGNF HCNUG KH PCOGGSWCNU+IPQTG%CUG TGEQTF ] GPF4GEQTF TGVWTP _ KH PCOGGSWCNU+IPQTG%CUG HKGNF ] GPF(KGNF TGVWTP _ _ RTQVGEVGF XQKF GPF(KGNF ] KH KP(KGNF HKGNF'ORV[ ] EWTTGPV4GEQTFCFF(KGNF8CNWG _ _ RTQVGEVGF XQKF GPF4GEQTF ] KH IGV%WTTGPV4GEQTF IGV&GNC[ ] IGV2TKPV8GEVQT CFF'NGOGPV IGV%WTTGPV4GEQTF UGV%WTTGPV4GEQTF PWNN TGVWTP _ IGV%WTTGPV4GEQTF RTKPV UGV%WTTGPV4GEQTF PWNN KH IGV2TKPV8GEVQT KU'ORV[ ] PCLRKGTY PKGQR PKQP[ TGMQTF MQ EQY[ YKE FTWMWLGO[ TGMQTF[ QR PKQPG 'PWOGTCVKQP G IGV2TKPV8GEVQT GNGOGPVU YJKNG GJCU/QTG'NGOGPVU ] 4GEQTF GPGZV'NGOGPV RTKPV _ IGV2TKPV8GEVQT TGOQXG#NN'NGOGPVU _ _
  • 41. 198 Projektowanie baz danych XML. Vademecum profesjonalisty RTQVGEVGF 4GEQTF IGV%WTTGPV4GEQTF ] TGVWTP EWTTGPV4GEQTF _ RTQVGEVGF LCXCWVKN8GEVQT IGV2TKPV8GEVQT ] KH RTKPV8GEVQT PWNN ] RTKPV8GEVQT PGY LCXCWVKN8GEVQT _ TGVWTP RTKPV8GEVQT _ RTQVGEVGF LCXCWVKN5VCEM IGV4GEQTF5VCEM ] KH TGEQTF5VCEM PWNN ] TGEQTF5VCEM PGY LCXCWVKN5VCEM _ TGVWTP TGEQTF5VCEM _ RTQVGEVGF XQKF UGV%WTTGPV4GEQTF 4GEQTF PGY8CNWG ] KH PGY8CNWG PWNN ] ENGCT EWTTGPV4GEQTF KH IGV4GEQTF5VCEM GORV[ ] VJKUEWTTGPV4GEQTF PWNN _ GNUG ] VJKUEWTTGPV4GEQTF 4GEQTF IGV4GEQTF5VCEM RQR _ TGVWTP _ KH IGV%WTTGPV4GEQTF PWNN ] GODGFFGF TGEQTF IGV4GEQTF5VCEM RWUJ IGV%WTTGPV4GEQTF _ VJKUEWTTGPV4GEQTF PGY8CNWG _ RTQVGEVGF XQKF UGV2TKPV8GEVQT LCXCWVKN8GEVQT PGY8CNWG ] VJKURTKPV8GEVQT PGY8CNWG _ RTQVGEVGF XQKF UGV4GEQTF5VCEM LCXCWVKN5VCEM PGY8CNWG ] VJKUTGEQTF5VCEM PGY8CNWG _ RWDNKE XQKF UVCTV'NGOGPV 5VTKPI PCOG #VVTKDWVG.KUV CVVT.KUV ] 5[UVGOQWVRTKPVNP PCOG KP(KGNF HCNUG YJKVGURCEG1R 9*+6'52#%'A12A010' KH PCOGGSWCNU+IPQTG%CUG TGEQTF ] UVCTV4GEQTF CVVT.KUV TGVWTP _ KH PCOGGSWCNU+IPQTG%CUG HKGNF ] UVCTV(KGNF CVVT.KUV TGVWTP _ _ RTQVGEVGF XQKF UVCTV(KGNF #VVTKDWVG.KUV CVVT.KUV ] KH EWTTGPV4GEQTF PWNN ] 5[UVGOQWVRTKPVNP 9 TGMQTFKG PKG OC RQNC CVVT.KUVVQ5VTKPI _ KP(KGNF VTWG HKGNF'ORV[ VTWG HQT KPV K K CVVT.KUVIGV.GPIVJ K ]
  • 42. 4QFKC Architektura systemu baz danych 199 KH CVVT.KUVIGV0COG KGSWCNU+IPQTG%CUG PCOG ] EWTTGPV4GEQTFCFF(KGNF0COG CVVT.KUVIGV8CNWG K _ KH CVVT.KUVIGV0COG KGSWCNU+IPQTG%CUG UGSWGPEGIGPGTCVGF ] EWTTGPV4GEQTFCFF(KGNF'ZRT CVVT.KUVIGV8CNWG K 0GZV8CN KP(KGNF HCNUG _ KH CVVT.KUVIGV0COG KGSWCNU+IPQTG%CUG UGSWGPEGXCNWG ] EWTTGPV4GEQTFCFF(KGNF'ZRT CVVT.KUVIGV8CNWG K %WTT8CN KP(KGNF HCNUG _ KH CVVT.KUVIGV0COG KGSWCNU+IPQTG%CUG MG[UGCTEJ ] EWTTGPV4GEQTFCFF(KGNF5WDS CVVT.KUVIGV8CNWG K _ KH CVVT.KUVIGV0COG KGSWCNU+IPQTG%CUG YJKVGURCEG ] KH CVVT.KUVIGV8CNWG KGSWCNU+IPQTG%CUG PQPG ] YJKVGURCEG1R 9*+6'52#%'A12A010' _ GNUG KH CVVT.KUVIGV8CNWG KGSWCNU+IPQTG%CUG VTKO ] YJKVGURCEG1R 9*+6'52#%'A12A64+/ _ GNUG KH CVVT.KUVIGV8CNWG KGSWCNU+IPQTG%CUG TGOQXG ] YJKVGURCEG1R 9*+6'52#%'A12A4'/18' _ _ _ _ RTQVGEVGF XQKF UVCTV4GEQTF #VVTKDWVG.KUV CVVT.KUV ] UGV%WTTGPV4GEQTF 4GEQTFIGV(TGG4GEQTF HQT KPV K K CVVT.KUVIGV.GPIVJ K ] KH CVVT.KUVIGV0COG KGSWCNU+IPQTG%CUG VCDNG ] EWTTGPV4GEQTFUGV6CDNG CVVT.KUVIGV8CNWG K _ KH CVVT.KUVIGV0COG KGSWCNU+IPQTG%CUG FGNC[ ] KH CVVT.KUVIGV8CNWG KGSWCNU+IPQTG%CUG HCNUG ] EWTTGPV4GEQTFUGV&GNC[ VTWG _ _ _ _ _ 9[FTWM Przykad wprowadzanych danych !ZON XGTUKQP ! TQQV GZRGTATGUWNV URQV ITKF ITKF XGTUKQP RQUKVKQP #RQUKVKQP IGPG PCOG R QTICPKUO E QYKGM URQV GZRGTKOGPV GZRGTAEQPF VUGZRGTAEQPF GZRGTKOGPV XCTKCPV XCTKCPV
  • 43. 200 Projektowanie baz danych XML. Vademecum profesjonalisty XCNWG XCNWG GZRGTATGUWNV GZRGTATGUWNV URQV ITKF ITKF XGTUKQP RQUKVKQP #RQUKVKQP IGPG PCOG $4%# QTICPKUO E QYKGM URQV GZRGTKOGPV GZRGTAEQPF VUGZRGTAEQPF GZRGTKOGPV XCTKCPV XCTKCPV XCNWG XCNWG GZRGTATGUWNV GZRGTATGUWNV URQV ITKF ITKF XGTUKQP RQUKVKQP #RQUKVKQP IGPG PCOG 2CM QTICPKUO E QYKGM URQV GZRGTKOGPV GZRGTAEQPF VUGZRGTAEQPF GZRGTKOGPV XCTKCPV XCTKCPV XCNWG XCNWG GZRGTATGUWNV TQQV 9[FTWM Rekordy zagniedone do adowania z wartociami zapyta do bazy danych !ZON XGTUKQP ! 4116 TGEQTF VCDNG GZRGTATGUWNV HKGNF PCOG KF UGSWGPEGIGPGTCVGF GZRGTATGUWNVAU TGEQTF VCDNG URQV HKGNF PCOG KF UGSWGPEGIGPGTCVGF URQVAU HKGNF PCOG ITKF HKGNF HKGNF PCOG XGTUKQP HKGNF PCOG RQUKVKQP #HKGNF HKGNF PCOG IGPG MG[UGCTEJ IGPGPCOG RHKGNF TGEQTF TGEQTF VCDNG GZRGTKOGPV HKGNF PCOG KF UGSWGPEGIGPGTCVGF GZRGTKOGPVAU HKGNF PCOG GZRGTAEQPF VUHKGNF TGEQTF HKGNF PCOG XCTKCPV HKGNF HKGNF PCOG XCNWG HKGNF TGEQTF TGEQTF VCDNG GZRGTATGUWNV HKGNF PCOG KF UGSWGPEGIGPGTCVGF GZRGTATGUWNVAU TGEQTF VCDNG URQV HKGNF PCOG KF UGSWGPEGIGPGTCVGF URQVAU HKGNF PCOG ITKF ITKF HKGNF PCOG XGTUKQP HKGNF PCOG RQUKVKQP #HKGNF
  • 44. 4QFKC Architektura systemu baz danych 201 HKGNF PCOG IGPG MG[UGCTEJ IGPGPCOG $4%#HKGNF TGEQTF HKGNF PCOG GZRGTKOGPV UGSWGPEGXCNWG GZRGTKOGPVAU HKGNF PCOG XCTKCPV HKGNF HKGNF PCOG XCNWG HKGNF TGEQTF 4116 9[FTWM Arkusz XSL przeksztacajcy dane XML z przykadu na XML rLoad !ZON XGTUKQP ! #TMWU UV[NY CFWLE[ FCPG Q IGPCEJ ZUNUV[NGUJGGV XGTUKQP ZONPUZUN JVVRYYYYQTI:5.6TCPUHQTO ZUNQWVRWV OGVJQF ZON ZUNVGORNCVG OCVEJ ZUNCRRN[VGORNCVGU UGNGEV
  • 45. ZUNVGORNCVG ZUNVGORNCVG OCVEJ TQQV 4116 ZUNCRRN[VGORNCVGU UGNGEV
  • 46. 4116 ZUNVGORNCVG ZUNVGORNCVG OCVEJ IGPG TGEQTF VCDNG )'0' HKGNF PCOG KF UGSWGPEGIGPGTCVGF IGPGAU ZUNCRRN[VGORNCVGU UGNGEV "
  • 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