Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00081 009753 11028120 na godz. na dobę w sumie
Oracle9i i XML - książka
Oracle9i i XML - książka
Autor: , , Liczba stron: 432
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-064-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> xml i xslt - programowanie
Porównaj ceny (książka, ebook, audiobook).
Wykorzystaj do maksimum możliwości XML w Oracle9i!

Projektuj i uruchamiaj w Oracle9i niezależne od platformy aplikacje oparte na transakcjach wykorzystujące XML - standard opisu danych, umożliwiający integrowanie elektronicznych aplikacji biznesowych i wymianę danych typu business-to-business. Z niniejszej książki, napisanej przez członków zespołu Oracle XML Development Team dowiesz się, jak za pomocą pakietu XML Developer Kit (XDK) można tworzyć, przekształcać i przeglądać dokumenty XML oraz używać ich zgodnie z własnymi potrzebami. Zamieszczone w książce przykłady rzeczywistych zastosowań tego standardu ilustrują sposób, w jaki klienci Oracle mogą efektywnie wykorzystywać wbudowane funkcje obsługi XML.

Z książki dowiesz się jak:

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI Oracle9i i XML Autorzy: Ben Chang, Mark Scardina, Stefan Kiritzov T³umaczenie: Bart³omiej Jab³oñski, Cezary Welsyng ISBN: 83-7361-064-2 Tytu³ orygina³u: Oracle9i XML Handbook Format: B5, stron: 432 KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA Wykorzystaj do maksimum mo¿liwoġci XML w Oracle9i! CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Projektuj i uruchamiaj w Oracle9i niezale¿ne od platformy aplikacje oparte na transakcjach wykorzystuj¹ce XML — standard opisu danych, umo¿liwiaj¹cy integrowanie elektronicznych aplikacji biznesowych i wymianê danych typu business-to-business. Z niniejszej ksi¹¿ki, napisanej przez cz³onków zespo³u Oracle XML Development Team dowiesz siê, jak za pomoc¹ pakietu XML Developer Kit (XDK) mo¿na tworzyæ, przekszta³caæ i przegl¹daæ dokumenty XML oraz u¿ywaæ ich zgodnie z w³asnymi potrzebami. Zamieszczone w ksi¹¿ce przyk³ady rzeczywistych zastosowañ tego standardu ilustruj¹ sposób, w jaki klienci Oracle mog¹ efektywnie wykorzystywaæ wbudowane funkcje obs³ugi XML. Z ksi¹¿ki dowiesz siê jak: • korzystaæ z infrastruktury Oracle9i XML oraz pakietu XML Developer Kit (XDK), u¿ywaæ parserów, procesorów, generatorów, przegl¹darek i innych narzêdzi pakietu XDK, • tworzyæ rozbudowane aplikacje Oracle9i oparte na komponentach XML dla jêzyka Java, • wykorzystywaæ wbudowane w Oracle9i nowe funkcje SQL i PL/SQL dla XML oraz mechanizmy przesy³ania komunikatów oparte na XML, • uwzglêdniaæ ró¿nice pomiêdzy serwerem OAS (Oracle Application Server) i serwerem Oracle9iAS (Oracle9i Application Server), • projektowaæ i wdra¿aæ aplikacje transakcyjne dla serwerów OAS i Oracle9i, • umo¿liwiæ dostêp do dokumentów w skali ca³ego przedsiêbiorstwa poprzez sk³adowanie ich w systemie iFS (Internet File System), • zarz¹dzaæ za pomoc¹ narzêdzia Oracle Text ró¿nymi rodzajami danych — tekstem, grafik¹, dĥwiêkiem i obrazem wideo — traktuj¹c je jak zwyk³e typy danych, • tworzyæ e-biznesowe aplikacje internetowe za pomoc¹ komponentu Oracle E-Business XML Services. Spis treści O Autorach...................................................h......................................... 13 Wprowadzenie ...................................................h.................................... 15 Rozdział 1. Oracle i XML ...................................................h...................................... 21 Podstawowe koncepcje i terminologia...................................................k...................................21 Prolog...................................................k...................................................k................... Definicja typu dokumentu (DTD) ...................................................k...................................23 Treść dokumentu ...................................................k...................................................k..........25 API dla DOM...................................................k...................................................k................25 Proste interfejsy API dla XML (SAX) ...................................................k............................28 API dla przestrzeni nazw ...................................................k.................................................32 API parsera ...................................................k...................................................k...................35 API dla standardu XSLT ...................................................k.................................................36 API dla XML Schema ...................................................k...................................................k..36 .........23 Dlaczego XML?...................................................k...................................................k..................36 Strategia firmy Oracle dla standardu XML ...................................................k.............................38 Działalność firmy Oracle w zakresie XML ...................................................k...........................38 Obecność firmy Oracle w Komitetach Grup Roboczych W3C..........................................39 XML Developer’s Kit firmy Oracle ...................................................k................................40 Sieć OTN dla XML...................................................k...................................................k.............41 Przegląd produktów Oracle obsługujących XML...................................................k..................44 Produkty Oracle udostępniające interfejsy aplikacji ...................................................k.......44 Produkty Oracle wykorzystujące XML do wymiany danych.............................................45 Produkty Oracle wykorzystujące XML do konfigurowania aplikacji ................................46 Produkty Oracle wykorzystujące XML do zarządzania zawartośckią i publikowania dokumentów ...................................................k.........................................47 Przegląd zastosowań komponentów XML firmy Oracle...................................................k.......48 Tworzenie i publikowanie dokumentów ...................................................k.........................48 Personalizowane usługi dostarczania informacji...................................................k.............48 Aplikacje sterowane danymi, które łatwo dostosować do potrzeb użytkownika ...............48 Handel elektroniczny za pomocą koszyka na zakupy opartego na XML...........................48 Komunikowanie typu B2B przez Internet ...................................................k.......................49 Integrowanie aplikacji dzięki wymianie komunikatów opartej na XML ...........................49 Przykładowa aplikacja ...................................................k...................................................k........49 6 Oracle9i i XML Rozdział 2. Podstawowe technologie XML w Oracle ................................................. 53 Parser XML dla języka Java V2 ...................................................k............................................53 Obsługa SAX ...................................................k...................................................k................54 Obsługa DOM...................................................k...................................................k...............59 Obsługa XSLT ...................................................k...................................................k..............66 Obsługa XML Schema ...................................................k...................................................k.71 Generator klas Java ...................................................k...................................................k.............75 Wejściowy dokument DTD ...................................................k.............................................76 Przetwarzanie dokumentów DTD w celu generowania klas Java ......................................76 Tworzenie poprawnego dokumentu XML na podstawie klas Java ....................................78 Dokument XML utworzony przez aplikację Java ...................................................k...........79 Wejściowy dokument XML Schema...................................................k...............................79 Przeglądanie i przekształcanie dokumentów XML za pomocą narzędzi Java..........................82 Komponent DOMBuilder ...................................................k................................................83 Komponent XSLTransformer ...................................................k..........................................85 Komponent XMLSourceView...................................................k.........................................86 Komponent XMLTreeView...................................................k.............................................89 Komponent XMLTransformPanel...................................................k...................................89 Komponent DBView ...................................................k...................................................k....92 Komponent DBAccess...................................................k...................................................k..92 Parser XML dla PL/SQL...................................k...................................................k.....................92 Przykłady ...................................................k...................................................k......................93 Parser XML i procesor XSLT dla języka C...................................................k...........................95 Samodzielny parser i zintegrowany z nim procesor XSLT ................................................96 Parser XML i procesor XSLT w postaci bibliotek ...................................................k..........97 Interfejs aplikacji DOM ...................................................k.................................................101 Prosty API dla XML (SAX) ...................................................k..........................................102 Obsługa XSLT ...................................................k...................................................k............107 Obsługa XML Schema ...................................................k..................................................108 Procesor XML Schema w postaci bibliotek ...................................................k..................108 Parser XML, procesor XSLT i procesor XML Schema dla C++ ...........................................109 Generator klas C++ ...................................................k...................................................k...........109 Rozdział 3. Projektowanie aplikacji baz danych Oracle9i ........................................ 113 Oracle9i — baza danych z obsługą XML...................................................k............................114 Komponenty XML dla maszyny JServer i języka Java firmy Oracle.....................................115 Podstawowe informacje na temat architektury JServer...................................................k.115 Komponenty XML dla języka Java ...................................................k...............................117 Publikowanie i wywoływanie komponentów XML dla języka Java................................119 Schemat bazy danych a dokumenty XML ...................................................k...........................121 Odwzorowywanie dokumentów XML na schemat bazy danych .....................................123 Odwzorowywanie schematu bazy danych na wirtualne dokumenty XML ......................125 Zapamiętywanie i wyszukiwanie danych XML ...................................................k............127 XSQL — XSLT/SQL Server Pages...................................................k.....................................129 Architektura XSQL Pages ...................................................k.............................................131 Instalacja narzędzia XSQL Servlet ...................................................k................................132 Tworzenie dynamicznych dokumentów XML na podstawie zapytań SQL .....................133 Obsługa warunkowych instrukcji SQL w XSQL ...................................................k..........135 Przykład: sprzedaż książek ...................................................k..................................................136 Projektowanie schematu bazy danych ...................................................k...........................136 Projektowanie witryny WWW wykorzystującej XSQL...................................................k137 Spis treści 7 Rozdział 4. Projektowanie aplikacji w architekturze Oracle Application Server ........ 143 Architektura Oracle Application Server ...................................................k..............................145 Procesy nasłuchujące HTTP ...................................................k..........................................146 Komponenty OAS ...................................................k...................................................k......146 Kartrydże aplikacji...................................................k...................................................k......147 Architektura Oracle Internet Application Server ...................................................k.................148 Usługi komunikacyjne w architekturze iAS ...................................................k..................149 Usługi prezentacji w architekturze iAS ...................................................k.........................150 Usługi dla logiki biznesowej w architekturze iAS ...................................................k........152 Usługi zarządzania danymi w architekturze iAS...................................................k...........153 Usługi systemowe w architekturze iAS ...................................................k.........................154 Komponenty iAS po stronie klienta...................................................k.....................................155 Oracle Database Client Developer’s Kit...................................................k........................155 Oracle XML Developer’s Kit ...................................................k........................................155 Oracle LDAP Client Toolkit...................................................k..........................................155 Aplikacja Bookstore w postaci serwleta OAS ...................................................k.....................155 Aplikacja BookstoreServlet ...................................................k...........................................158 Rejestrowanie aplikacji i kartrydża BookstoreServlet...................................................k...160 Wywoływanie aplikacji BookstoreServlet ...................................................k....................160 Dostęp do bazy danych ...................................................k..................................................161 Korzystanie z usługi transakcyjnej ...................................................k................................165 Wywoływanie komponentów OAS ...................................................k...............................165 Aplikacja Bookstore w postaci serwleta iAS...................................................k.......................166 Konfigurowanie platformy Apache ...................................................k...............................166 Konfigurowanie motoru serwleta JServ ...................................................k........................166 Rozdział 5. System plików Oracle iFS ...................................................h................. 167 Cechy systemu ...................................................k...................................................k............ ......167 Pamięć tabel...................................................k...................................................k................168 Parsery ...................................................k...................................................k........................168 Wizualizatory...................................................k...................................................k..............168 Nakładki...................................................k...................................................k......................168 Protokoły...................................................k...................................................k................ .....169 Korzyści ...................................................k...................................................k............................169 Komponenty...................................................k...................................................k............... .......170 XML...................................................k...................................................k..................................170 Oracle8i interMedia Text i Oracle9i Text...................................................k............................171 Model dokumentu ...................................................k...................................................k.......... ...172 Właściwości dokumentu ...................................................k...................................................k...173 Właściwości niezależne od wersji ...................................................k.................................173 Właściwości zwykłe ...................................................k...................................................k...173 Właściwości powiązań...................................................k...................................................k175 Właściwości użytkownika ...................................................k.............................................175 Przetwarzanie dokumentów ...................................................k.................................................175 Definiowanie typów dokumentów ...................................................k.......................................176 Przykładowa definicja typu ...................................................k...........................................177 Standardowe właściwości typu...................................................k......................................177 Niestandardowe właściwości typu...................................................k.................................179 Atrybuty właściwości ...................................................k...................................................k.180 Rozszerzenia plików ...................................................k...................................................k.........183 Korzystanie z systemu iFS...................................................k...................................................k184 Przykład 1.: Tworzenie i zapisywanie pliku Hello World................................................185 Przykład 2.: Tworzenie lepszej wersji pliku Hello World................................................185 8 Oracle9i i XML Przykład 3.: Praca z plikami ...................................................k..........................................186 Przykład 4.: Wyszukiwanie plików ...................................................k...............................187 Pliki XML w systemie iFS...................................................k...................................................k188 Składowanie parsowanych plików XML...................................................k.......................188 Składowanie nieparsowanych plików XML...................................................k..................190 Wizualizacja plików XML ...................................................k............................................190 Inne istotne informacje na temat plików XML...................................................k....................191 Rozdział 6. Wyszukiwanie dokumentów XML za pomocą narzędzia Oracle Text ....... 193 Oracle Text — wyszukiwarka tekstowa następnej generacji..................................................194 Model indeksowania w Oracle Text ...................................................k....................................195 Skład danych...................................................k...................................................k...............196 Filtr ...................................................k...................................................k.................... .........196 Moduł podziału na sekcje ...................................................k..............................................197 Moduł podziału na leksemy...................................................k...........................................199 Praca z Oracle Text ...................................................k...................................................k...........199 Skład danych...................................................k...................................................k...............201 Sekcje pól i sekcje strefowe...................................................k...........................................203 Sekcje stop ...................................................k...................................................k.............. ....206 Sekcje atrybutów ...................................................k...................................................k........207 Wyszukiwanie według składni XPATH w grupie PATH_SECTION_GROUP..............208 Dynamiczne dodawanie sekcji ...................................................k......................................209 Rozdział 7. Usługi XML dla e-biznesu w Oracle ...................................................h.... 211 Ogólne informacje na temat usług XML ...................................................k.............................211 Elementy składowe XML Services...................................................k......................................212 Interfejs administratora ...................................................k..................................................212 Serwer SOAP...................................................k...................................................k..............212 Interfejsy API klienta...................................................k...................................................k..212 Repozytorium usług i zdarzeń ...................................................k.......................................212 Terminologia...................................................k...................................................k.....................213 Usługa XML ...................................................k...................................................k...............213 Usługa sieciowa ...................................................k...................................................k..........213 Grupa usług...................................................k...................................................k.................213 Kluczowy punkt integracji...................................................k.............................................213 Punkt wywołania ...................................................k...................................................k........213 Rekord wywołania ...................................................k...................................................k......214 Zdarzenie ...................................................k...................................................k....................214 Subskrybent zdarzenia ...................................................k...................................................k214 Usługi XML i SOAP...................................................k...................................................k........ .215 Czym jest protokół SOAP ...................................................k.............................................215 Jak działa SOAP? ...................................................k...................................................k.......215 Jakie są zadania klienta SOAP?...................................................k.....................................217 Jakie są zadania serwera SOAP? ...................................................k...................................217 Wytyczne dotyczące grup usług ...................................................k..........................................218 Wytyczne dotyczące usług...................................................k...................................................k218 Model zabezpieczeń...................................................k...................................................k..........220 Szczegóły uruchamiania usługi...................................................k............................................221 Wytyczne dotyczące wywołań...................................................k.............................................221 Przykład wywołania usługi ...................................................k..................................................222 Wytyczne dotyczące zdarzeń ...................................................k...............................................223 Przykład sygnalizowania zdarzenia ...................................................k.....................................224 Przykład sygnalizowania zdarzenia podzbiorowi subskrybentów..........................................225 Usługi będące subskrybentami zdarzeń ...................................................k...............................227 Wdrażanie nowej usługi...................................................k...................................................k....227 Spis treści 9 Tworzenie profilu identyfikacji ...................................................k...........................................237 Tworzenie rekordu wywołania...................................................k.............................................238 Uruchamianie przykładowego programu...................................................k.............................241 Interfejsy API wywołań i zdarzeń...................................................k........................................244 Klasa oracle.apps.jtf.services.invocation.Client ...................................................k............244 Klasa oracle.apps.jtf.services.invocation.Param...................................................k............246 Klasa oracle.apps.jtf.services.invocation.ServiceResult...................................................k251 Rozdział 8. Oracle i XML w działaniu...................................................h................... 255 Narzędzie XML SQL ...................................................k...................................................k........255 Pobieranie danych w formacie XML...................................................k.............................256 Zapisywanie danych w formacie XML ...................................................k.........................257 Modyfikacja danych za pomocą narzędzia XML SQL ...................................................k.259 Usuwanie danych za pomocą narzędziu XML SQL...................................................k......260 Instalowanie narzędzia XML SQL ...................................................k................................261 Rozszerzanie możliwości narzędzia XML SQL...................................................k............262 Serwlet Oracle XSQL ...................................................k...................................................k.......262 Strony XSQL ...................................................k...................................................k..............263 Instalowanie serwleta XSQL ...................................................k.........................................264 Przekazywanie zapytań do serwleta XSQL ...................................................k...................265 Konwersja raportów XSQL za pomocą arkuszy stylów...................................................k267 Wstawianie nowych rekordów w serwlecie XSQL ...................................................k.......269 Modyfikowanie danych za pomocą serwleta XSQL ...................................................k.....270 Budowanie stron z wykorzystaniem technik XML...................................................k..............272 Wdrażanie rozwiązań XML...................................................k...........................................273 Wymagania projektowe ...................................................k.................................................273 Architektura ...................................................k...................................................k................274 Przykładowa aplikacja ...................................................k...................................................k274 Rozszerzenie możliwości przykładowej aplikacji ...................................................k.........276 Narzędzia Oracle Portal-to-Go ...................................................k......................................276 Przekazywanie komunikatów w XML...................................................k.................................277 Rozwiązanie — XML...................................................k...................................................k.277 Wymagania projektowe ...................................................k.................................................278 Architektura ...................................................k...................................................k................278 Przykład implementacji ...................................................k.................................................279 Rozszerzenie możliwości przykładowej aplikacji ...................................................k.........284 Serwer Oracle Integration Server ...................................................k..................................285 Rozdział 9. Studium przypadku: zastosowanie technologii XML w Oracle................. 287 Strona FAQ w XML ...................................................k...................................................k.........287 Wymagania aplikacji...................................................k...................................................k.........288 Projekt aplikacji ...................................................k...................................................k................288 Schemat bazy danych aplikacji ...................................................k............................................289 Generowanie schematu XML ...................................................k..............................................290 Generowanie klas Java...................................................k...................................................k......291 Przechowywanie dokumentów XML w bazie danych...................................................k.........292 Generowanie dokumentów XML za pomocą SYS_XMLGEN i SYS_XML_LAGG ...................................................k...................................................k292 Pobieranie danych z dokumentu XML za pomocą funkcji Extrackt() i ExistsNode()...................................................k...................................................k...........293 Wyszukiwanie skojarzonych FAQ ...................................................k................................293 Tworzenie aplikacji internetowej...................................................k.........................................296 Wprowadzanie nowych zgłoszeń do listy FAQ...................................................k...................297 Wyszukiwanie FAQ...................................................k...................................................k..........302 10 Oracle9i i XML Przeszukiwanie dokumentów XML za pomocą funkcji HASPATH i INPATH ....................304 Wykorzystywanie indeksów opartych na funkcjach do optymalizacji dostępu do dokumentów ...................................................k........................305 Adresowanie danych za pomocą URI...................................................k..................................305 Budowanie słownika ...................................................k...................................................k.........306 Rozszerzanie możliwości aplikacji ...................................................k......................................308 Rozdział 10. Aplikacje XML oferowane w sieci OTN.................................................. 311 Dostęp do aplikacji XML...................................................k...................................................k..312 Korzyści z przeglądania przykładowych aplikacji...................................................k...............313 Aplikacje XML ...................................................k...................................................k.................315 Aplikacja: Hello World...................................................k..................................................315 Aplikacja: Dane pracowników ...................................................k......................................318 Aplikacja: Polisy Ubezpieczeniowe ...................................................k..............................319 Aplikacja: Błędne klasy ...................................................k.................................................322 Aplikacja: Czy korzystasz z XML? ...................................................k...............................324 Aplikacja: Perspektywy obiektowe ...................................................k...............................326 Aplikacja: Sprawdzanie kodów portów lotniczych ...................................................k.......326 Aplikacja: Wyświetlanie kodów portów lotniczych...................................................k......332 Aplikacja: Usługa SOAP ...................................................k...............................................333 Aplikacja: Wyświetlanie wyników zapytań ad hoc...................................................k.......335 Aplikacja: Wykresy słupkowe ...................................................k.......................................335 Instalowanie i uruchamianie aplikacji XML...................................................k........................336 Rozdział 11. Przyszłe kierunki rozwoju ...................................................h.................. 341 Rola organizacji ustalających standardy ...................................................k..............................342 Rola konsorcjum W3C ...................................................k..................................................342 Rola organizacji OASIS ...................................................k................................................348 Standardy XML dla przemysłu ...................................................k............................................350 Najważniejsze jednostki tworzące standardy DTD i schematy ........................................350 Przykład korzyści ze stosowania przemysłowych standardów kDTD i schematów XML...................................................k...................................................k....351 Wpływ technologii XML na Internet...................................................k...................................353 Najważniejsze podmioty związane z XML ...................................................k...................353 Dodatek A Specyfikacje XML, DOM, SAX i XSLT konsorcjum W3C ......................... 357 Specyfikacja XML ...................................................k...................................................k............357 Definicja XML...................................................k...................................................k............357 Dokumenty ...................................................k...................................................k................ .357 Definicje typu dokumentu DTD ...................................................k....................................358 Specyfikacja DOM...................................................k...................................................k............361 Definicja DOM ...................................................k...................................................k...........361 DOM Poziom 2. i Poziom 3. ...................................................k.........................................362 Jądro DOM ...................................................k...................................................k.................362 Specyfikacja SAX ...................................................k...................................................k.............368 Definicja SAX ...................................................k...................................................k............368 Interfejs i klasy SAX ...................................................k...................................................k..369 Specyfikacja przestrzeni nazw XML ...................................................k...................................371 Definicja przestrzeni nazw ...................................................k............................................371 Terminologia przestrzeni nazw...................................................k......................................372 Atrybuty przestrzeni nazw ...................................................k.............................................372 Specyfikacja XPath ...................................................k...................................................k...........374 Definicja XPath ...................................................k...................................................k..........374 Wyrażenia XPath ...................................................k...................................................k........374 Funkcje ...................................................k...................................................k.................. .....375 Obiekty XPath ...................................................k...................................................k............377 Spis treści 11 Specyfikacja XSLT ...................................................k...................................................k...........378 Definicja XSLT ...................................................k...................................................k..........378 Szablony ...................................................k...................................................k................. ....379 Instrukcje XSLT ...................................................k...................................................k.........379 Funkcje XSLT ...................................................k...................................................k............387 Dodatek B Specyfikacje XML Schema konsorcjum W3C ........................................ 389 Definicja schematu XML...................................................k...................................................k..389 Wstęp ...................................................k...................................................k................................390 Dodatek C Inne specyfikacje konsorcjum W3C ...................................................h... 395 Inne specyfikacje konsorcjum W3C ...................................................k....................................395 Definicja XMLQuery...................................................k...................................................k..395 Protokoł XML...................................................k...................................................k.............400 Słownik ...................................................h............................................ 403 Skorowidz ...................................................h........................................ 415 Rozdział 6. Wyszukiwanie dokumentów XML za pomocą narzędzia Oracle Text Bazy danych przechodzą rewolucję. Dane przechowywane w tradycyjnych relacyjnych bazach mają ściśle określoną strukturę a zapytania ich dotyczące muszą być zawsze zgod- ne ze schematem bazy danych. Takie bazy danych są bardzo przydatne do składowania informacji strukturalnych ale niezbyt nadają się do obsługiwania danych w innej postaci. Klasyczny język SQL wystarcza do wysyłania niestrukturalnych zapytań dotyczących wartości przechowywanych w niewielkich kolumnach ale taki sposób wyszukiwania nie jest efektywny w przypadku długich kolumn, zawierających dane tekstowe. Wyszukiwa- nie danych składowanych w niestrukturalnych dużych obiektach (ang. LOB — Large Objects) tradycyjnie było nieefektywne i przebiegało bardzo wolno. Dlatego właśnie obecne wysiłki wielu producentów oferujących rozwiązania w zakresie baz danych sku- piają się na zapewnieniu użytkownikom wydajnego dostępu do informacji złożonego typu. Dotychczasowe, rygorystyczne ograniczenia dostępu do danych zostały złagodzone, zatem wymagania dotyczące struktury danych przechowywanych w bazach danych rów- nież stały się nieco mniejsze. W dzisiejszych nowoczesnych, internetowych bazach danych są przechowywane dane różnego typu. Bardzo często bazy zawierają mnóstwo danych w formie klipów wideo, plików graficznych i dokumentów tekstowych a rozmiar tych danych jest o rzędy wiel- kości większy od rozmiaru danych strukturalnych. Wraz z upowszechnieniem się Inter- netu pojawiła się potrzeba uzyskiwania natychmiastowego dostępu do danych, dzięki czemu dokumenty HTML i XML stały się powszechnie stosowanym mechanizmem wymiany danych tekstowych w Internecie. Z tego względu nowoczesne bazy danych, stanowiące zaplecze witryn WWW, muszą być w stanie łatwo wyszukiwać i odczytywać tego rodzaju dokumenty i nadal cechować się skalowaplnością i wydajnością. Oracle Text jest komponentem systemu Oracle9i i pozwala użytkownikom na zarządza- nie różnymi typami danych za pomocą standardowych mechanizmów dostępu opartych na SQL. W przypadku komponentu Oracle Text, który zastąpił narzędzie interMedia Text 194 Oracle9i i XML (ConText), dokumenty tekstowe, obrazy, pliki audio i klipy wideo są traktowane jako dane określonych typów. Komponent ten umożliwia łatwe zarządzanie danymi i zapewnia obsługę Internetu, udostępniając narzędzia do tworzenia stron WWW oraz serwery WWW. Mówiąc bardziej dokładnie, Oracle Text rozszerza funkcjonalność bazy danych o obsługę informacji tekstowych, poprzez zapewnienie płynnego wyszukiwania danych w ramach standardowych zapytań SQL, przetwarzanych całkowicie przez jądro bazy danych i nie- wymagających użycia dodatkowych komponentów. W niniejszym rozdziale znajduje się opis mechanizmów indeksowania tekstowego kompo- nentu Oracle Text, ze szczególnym uwzględnieniem funkcji obsługujących standard XML, takich jak :/.A5 6+10A)4172, #761A5 6+10A)4172, nowej funkcji 2#6*A5 6+10A)4172 oraz operatorów *#52#6* i +02#6* wprowadzonych w wersji Oracle9i. Omówione zostaną również sekcje strefowe, sekcje pól oraz sekcje atrybutów. Przykłady różnych wersji przykładowej aplikacji Bookstore ilustrują praktyczne zastosowanie narzędzia Oracle Text. Oracle Text — wyszukiwarka tekstowa następnej generacji We współczesnym relacyjnym systemie baz danych są uwzględnione wszystkie aspekty związane z indeksowaniem prostych typów danych, takich jak liczby całkowite (ang. integer) i niewielkie ciągi tekstowe (ang. strings). Złożone typy danych, takie jak tekst strukturalny, dane przestrzenne, pliki graficzne i dźwiękowe oraz klipy wideo wymagają wyszukiwania informacji opartego na analizie zawartości. Każdy ze złożonych typów danych jest charakteryzowany przez format specyficzny dla aplikacji, określone wyma- gania dotyczące indeksowania oraz predykaty selekcji. Na przykład dokumenty ze znacz- nikami, takie jak HTML i XML, mogą wymagać wyszukiwania opartego na znacznikach lub wartościach atrybutów. To wszystko powoduje potrzebę zapewnienia mechanizmów indeksowania złożonych typów danych i wypracowanie wyspecjalizowanych technik indeksowania. Rozwiązanie firmy Oracle polegało na wprowadzeniu koncepcji typu indeksu (ang. indextype). Odpowiednie zaplecze oferowane przez Oracle pozwala na definiowanie typów indeksów w zależności od potrzeb użytkowników. Typ indeksu jest odpowiada posortowanym lub odwzorowanym bitowo typom indeksowym wbudowanym do serwera Oracle, z jedną istotną różnicą. Typy indeksów nie są wbudowane lecz implementowane przez programistę aplikacji. Model ten jest oparty na koncepcji indeksowania zespoło- wego (ang. cooperative indexing). Zgodnie z tym modelem komponent interMedia i sys- tem Oracle9i współpracują ze sobą w celu zbudowania i utrzymywania indeksów typów danych, takich jak dane tekstowe, przestrzenne czy OLAP (ang. online analytical pro- cessing). Komponent interMedia odpowiada za zdefiniowanie struktury indeksu, utrzy- mywanie zawartości podczas wykonywania operacji ładowania i uaktualniania oraz za przeszukiwanie indeksu podczas obsługi żądania. Sama struktura indeksu może być zapamiętana w bazie danych Oracle w postaci tabeli indeksowej (ang. IOT — Index- Organized Table) lub na zewnątrz, jako plik systemu operacyjnego. Prpogramista określa szczegóły implementacji typu indeksu, natomiast jądro bazy danych implementuje wbudo- wane indeksy (posortowane lub odwzorowane bitowo). Rozdział 6.  Wyszukiwanie dokumentów XML za pomocą narzędzia Oracle Text 195 Indeksy Oracle Text mogą być tworzone niemal w każdej kolumnie bazy danych. Gdy dokument jest wczytywany do jednej lub wielu takich kolumn, zmiany są wykrywane automatycznie i dokument ten zostaje oznaczony jako gotowy do indeksowania. Podczas indeksowania, które może być wykonane natychmiast lub według harmonogramu okre- ślonego przez użytkownika, wszystkie słowa i części dokumentu są zapisywane w tabelach indeksowych, wykorzystywanych później podczas operacji wyszukiwania. Zapytania tekstowe są realizowane na podstawie indeksu. Po przetworzeniu takiego zapytania jest zwracana lista trafień opisujących dopasowane dokumenty. Indeksy są utrzymywane w bazie danych, a wszystkie żądania są przetwarzane w bazie danych za pomocą poje- dynczego interfejsu aplikacji. Optymalizator kosztów Oracle (ang. CBO — Cost Based Optimizer) szacuje i wybiera najszybszy plan wykonania, przy określonych właściwościach uruchomieniowych wyszu- kiwanych danych. Optymalizator CBO może potokowo przetwarzać identyfikatory wierszy (ang. rowids) zgodne z predykatem lub sprawdzać na początku, czy z takim predykatem zgodny jest wiersz o podanym identyfikatorze. W tym drugim przypadku wykorzystuje się specjalny algorytm, wprowadzony w systemie Oracle8i, za pomocą którego można uzyskać dostęp do „odwrotnego” indeksu tekstowego dlpa podanego wiersza. Baza Oracle8i była pierwszą relacyjną bazą danych, w której obsługę zapytań tekstowych zawarto w jej jądrze. Ten w pełni zintegrowany system do przetwarzania całego żądania wykorzystuje jądro RDBMS i to z tego powodu narzędzie Oracle Text zasłużyło na miano „wyszukiwarki tekstowej następnej generacji” (ang. Next-Generation Text Engine). Model indeksowania w Oracle Text Przetwarzanie tekstu za pomocą narzędzia Oracle Text może być rozumiane jako prze- twarzanie potokowe pomiędzy różnymi modułami, którego przebieg na każdym etapie można modyfikować za pomocą dostępnych opcji. W wyniku przetwarzania potokowego otrzymuje się indeks odwrócony (ang. inverted index), będący listą słów pobranych z dokumentu. Przy każdym słowie znajduje się lista dokumentów, w których się ono poja- wia. Indeks ten jest nazywa się „odwróconym”, ponieważ zazwyczaj jest to lista doku- mentów, z których każdy zawiera listę słów. Każdy etap przetwarzania potokowego można dopasować do własnych potrzeb za pomocą systemu preferencji (ang. Preference System) lub grup sekcji (ang. Section Groups). Są one tworzone przy użyciu specjalnych inter- fejsów aplikacji: EVZAFFNETGCVGARTGHGTGPEG   EVZAFFNETGCVGAUGEVKQPAITQWR   a następnie wstawiane do potoku indeksującego za popmocą klauzuli RCTCOGVGTU: ETGCVGKPFGZZONAKPFGZQP$QQMUVQTG ZONAVGZV KPFGZV[RGKUEVZU[UKPFGZ RCTCOGVGTU   W kolejnych punktach znajduje się szczegółowe omówienie poszczególnych modułów potoku, przepływu informacji w potoku a także opcji i poleceń, które można zastosować na każdym z etapów procesu indeksowania. Na rysunku 6.1 znajduje się ogólny schemat przepływu informacji w potoku. 196 Oracle9i i XML Rysunek 6.1. Przepływ informacji w potoku indeksującym Skład danych Filtr Na początku potoku indeksującego znajduje się skład danych (ang. datastore), w którym po przeszukaniu wierszy tabel są umieszczane dane odczytane z kolumny. Wiersze nie są przeszukiwane w jakiejś określonej kolejności. Tekst indeksowany przez narzędzie Oracle Text może zostać zapamiętany w bazie danych lub w zewnętrznym systemie plików (wówczas będzie on zarządzany przez tę bazę). Skład danych z adresami URL pozwala na zarządzanie w ramach bazy danych dokumentami odległymi, znajdującymi się na innych serwerach, do których dostęp jest uzyskiwany za pośrednictwem protokołu HTTP lub FTP. Są to zazwyczaj dane kolumn ale w niektórych składach danych są one tylko wskaź- nikiem do danych dokumentu. Przykładowo, skład 74.A #6#5614 korzysta z danych kolumn jak z adresów URL i za pomocą operacji ) 6 odczytuje dane i zwraca je do klienta, który wysłał żądanie. Składy danych są tworzone i włączane do potoku za pomocą nastę- pującego skryptu: EVZAFFNETGCVGARTGHGTGPEG ZONAWTNU  74.A #6#5614  EVZAFFNUGVACVVTKDWVG ZONAWTNU  *662A241:;  YYYRTQZ[WUQTCENGEQO   ETGCVGAKPFGZZONAKPFGZQPDQQMUVQTG ZONAVGZV  RCTCOGVGTU FCVCUVQTGZONAWTNU  Filtr pobiera dane dokumentu ze składu danych i przekształca je na postać tekstową (XML, HTML lub zwykły tekst). Jest to potrzebne w przypadku dokumentów binarnych, takich jak pliki Microsoft Word czy Adobe Acrobat. Oracle Text posiada filtry dla ponad 100 formatów plików, które można przemieszać w pojedynczej kolumnie. Filtry w poniższym kodzie generują wyniki wyłącznie w formacie HTML. Do potoku można ponadto dołączyć własne filtry lub filtry oferowane przez innych pro- ducentów. Filtr własny (ang. custom-built filter) jest po prostu programem wykonywal- nym lub skryptem, który pobiera dwa argumenty: nazwę pliku zawierającego sformato- wany tekst źródłowy oraz nazwę pliku, do którego ma zostać zapisany wynik filtrowania. Podobnie jak składy danych, filtry są tworzone i włączane do potoku za pomocą syste- mu preferencji, tak jak pokazano poniżej: EVZAFFNETGCVGARTGHGTGPEG ZONAHKNVGT  75 4A(+.6 4  EVZAFFNUGVACVVTKDWVG ZONAHKNVGT  : 76#$.  ZONHKNVGTGZG   ETGCVGAKPFGZZONAKPFGZQPDQQMUVQTG ZONAVGZV  RCTCOGVGTU FCVCUVQTGZONAWTNUHKNVGTZONAHKNVGT  Rozdział 6.  Wyszukiwanie dokumentów XML za pomocą narzędzia Oracle Text 197 Moduł podziału na sekcje Moduł podziału na sekcje (ang. sectioner) pobiera wynik filtrowania i przekształca go na zwykły tekst. Proces konwersji jest sterowany przez klasę reprezentującą grupę sekcji, która przekazuje do modułu informację o sposobie parsowania danych wejściowych. Dane te mogłyby zostać potraktowane jako kod XML, kod HTML lub jako zwykły tekst. Grupa sekcji zwykle zawiera jedną lub więcej sekcji. Definiując proste odwzorowanie, programiści aplikacji mogą każdej sekcji nadać wybraną nazwę. Moduł rozpoznaje poszczególne sekcje w każdej jednostce tekstu i automatycznie indeksuje go według tych sekcji. Mogą to być sekcje XML, HTML lub też sekcje zawarte pomiędzy znacznikami  PCEPKM1VYKGTCLæE[  PCEPKM CO[MCLæE[ w ramach grupy #761A5 6+10A)4172. Korzystając z operatora 106#+05 można za pomocą poniższej instrukcji przeprowadzić wyszukiwanie indeksowanych sekcji: 5 . 6RM(41/DQQMUVQTG 9* 4  106#+05 ZONAVGZV 6JG5R[ 9+6*+0VKVNG   Po wysłaniu tego zapytania zostaje wyszukany dokument zawierający znaczniki XML, podobne do poniższych: DQQM KF KF CWVJQT ,QJP.G CTTGCWVJQT VKVNG 6JG5R[9JQ COGKPHTQOVJG QNFVKVNG DQQM Jeżeli grupa sekcji jest pusta, moduł przekształca tekst sformatowany na zwykły ale nie indeksuje granic sekcji. Wynik działania modułu zawiera granice sekcji oraz treść dokumentu, reprezentowane jako zwykły tekst. Treść ta jest następnie przekazywana do modułu podziału na leksemy. Konwersja na zwykły tekst wiąże się również z wykrywa- niem znaczników najważniejszych sekcji, usuwaniem „niewidocznych” informacji oraz ponownym formatowaniem tekstu. Granice sekcji są następnie przekazywane do wyszu- kiwarki. Kolejnym krokiem jest tworzenie grup sekcji, które są wstawiane do potoku za pomocą odpowiednich interfejsów aplikacji: EVZAFFNETGCVGAUGEVKQPAITQWR ITQWRAPCOG  ITQWRAV[RG   ETGCVGKPFGZ  RCTCOGVGTU UGEVKQPITQWRZONAITQWR  Moduł podziału na sekcje uwzględnia typ grupy wtedy, gdy przekształca dane wejściowe pobrane z filtra na zwykły tekst i gdy oblicza indeksy dla granic sekcji. W przypadku dokumentów XML najważniejsze grupy sekcji są następująpce:   $#5+ A5 6+10A)4172 — rozpoznawane są tylko znaczniki otwierające i zamykające. Nie są obsługiwane elementy 1 6;2 , encje i atrybuty znaczników. Przetwarzanie polega na usunięciu znaczników (ang. markup tags) z wynikowego tekstu zwykłego. *6/.A5 6+10A)4172 — ta grupa sekcji jest oczywiście przeznaczona dla dokumentów HTML. Obsługiwane są nie tylko znaczniki pHTML 4.0 ale i znaczniki nieznane. Usuwana jest zawartość elpementów 5 4+26 i 56;. oraz komentarze. Zachowywana jest jednak treść sekcpji 6+6. . 198 Oracle9i i XML    :/.A5 6+10A)4172 — moduł podziału na sekcje traktuje tekst wejściowy jako dokument XML. Obsługiwane są wewnętrzne encje, wewpnętrzne elementy 1 6;2 oraz atrybuty znaczników. Znaczniki są usuwane, natomiast wewnętrzne encje w odpowiedni sposób przetwarzane na wyjściowąp postać tekstu zwykłego. Indeksowaniu podlegają również sekcje użytkownika zdefiniowane w grupie sekcji. #761A5 6+10A)4172 — bardzo podobna do grupy :/.A5 6+10A)4172. Tekst wejściowy jest traktowany jako dokument XML ale nie spą obsługiwane sekcje zdefiniowane przez użytkownika. Zamiast tego wszystkipe niepuste znaczniki są automatycznie indeksowane jako sekcje strefowe, op nazwach sekcji takich samych jak nazwy znaczników. 2#6*A5 6+10A)4172 — podobna do grupy #761A5 6+10A)4172 w zakresie przetwarzania znaczników i atrybutów występujących w sekcji. W tym przypadku moduł podziału na sekcje dopuszcza stosowanie nowychp operatorów *#52#6* i +02#6* do przeprowadzania wyszukiwań typu XPATH. Ponadto, podcpzas wyszukiwania przeprowadzanego w ramach sekcji w nazpwach atrybutów i znaczników są rozróżniane małe i wielkie litery. Sekcje posiadają trzy ważne atrybuty: VCI, PCOG i V[RG. Atrybut VCI informuje moduł o sposobie, w jaki sekcja ma zostać rozpoznana. Gdy moduł znajduje sekwencję PCEPKM  PCEPKM , wówczas automatycznie ją indeksuje. Znaczniki są niepowtarzalne w ramach w sekcji należących do danej grupy. Odwołania do nazw sekcji znajdują się w zapytaniach. Wiele znaczników może zostać odwzorowanych na tę samą nazwę sekcji. Są wówczas traktowane jako instancje tej samej sekcji. Oto najważniejsze typy sekcji w przypadku dokumentów XML:   sekcje strefowe (ang. zone sections) — mogą się powtarzać a każda instancja jest w semantyce zapytań traktowana osobno. Sekcje sptrefowe mogą zawierać inne sekcje (w tym również sekcje strefowe) oraz same pstanowić części innych sekcji. W przypadku grup #761A5 6+10A)4172 i2#6*A5 6+10A)4172 moduł podziału na sekcje automatycznie indeksuje niepustep znaczniki jako sekcje strefowe, o nazwach takich samych jak nazwy znacznikpów. sekcje pól (ang. field sections) — moduł podziału na sekcje wydziela zawartość takiej sekcji i osobno indeksuje jej elementy. Dziępki temu zapytania odwołujące się do sekcji pól są obsługiwane do trzech razy szybciej niż zapytania skierowane do sekcji strefowych, zwłaszcza gdy znaczniki tej sekpcji występują w każdym dokumencie. Większa szybkość oznacza zmniejszenie eplastyczności. Sekcje pól są z założenia stosowane w przypadku sekcji niepowtaprzających się i nienakładających się na siebie. Jeżeli sekcja pola ppowtarza się w tym samym dokumencie, wówczas jest traktowana jako swoja kontypnuacja a nie jako odrębna instancja. Jeżeli nakłada się z sobą samą lubp z inną sekcją pola, wtedy jest niejawnie zamykana w tym miejscu, gdzie rozpocpzyna się tamta druga sekcja. W jednej grupie sekcji może znajdować się dop 64 sekcji pól.  sekcje atrybutów (ang. attribute sections) — sekcje atrybutów mogą być dodawane wyłącznie do grup :/.A5 6+10A)4172, #761A5 6+10A)4172 i 2#6*A5 6+10A)4172. Moduł podziału na sekcje przeprowadza indeksowanie zawartości atrybutu sekcji i udostępnia ją dla zapyptań. W przypadku grupy #761A5 6+10A)4172 lub 2#6*A5 6+10A)4172 moduł ten automatycznie indeksuje wartości atrybutów jako sekcje atrybutów o nazwach PCEPKM CVT[DWV . Rozdział 6.  Wyszukiwanie dokumentów XML za pomocą narzędzia Oracle Text 199  sekcje stop (ang. stop sections) — sekcji tych można używać tylko w odniesieniu do grup #761A5 6+10A)4172 i 2#6*A5 6+10A)4172. Sekcja stop oznacza, że odpowiedni PCEPKM ma zostać zignorowany i nie powinien być indeksowapny jako sekcja. Liczba sekcji stop w grupach #761A5 6+10A)4172 i 2#6*A5 6+10A)4172 jest nieograniczona. Moduł podziału na leksemy Moduł podziału na leksemy (ang. lexer) pobiera zwykły tekst od modułu podziału na sekcje i dzieli go na dyskretne elementy leksykalne lub słowa. Oracle Text zawiera moduły obsługi języków, w których słowa są rozgraniczane odstępami (ang. whitespa- ce-delimited languages) a także wyspecjalizowane moduły dla języków azjatyckich, w przypadku których segmentacja jest bardziej złożona. Domyślny moduł podziału na leksemy (DCUKEANGZGT) posiada również funkcje obsługi tematów (ang. themes), co pozwala na tworzenie ujednoliconych indeksów tekstowych i tematycznych. Podobnie jak składy danych, moduły podziału na leksemy są tworzone i wstawiane do potoku za pomocą poniższego systemu preferencji: EVZAFFNETGCVGARTGHGTGPEG O[ADCUKEANGZGT  DCUKEANGZGT   ETGCVGAKPFGZZONAKPFGZQPDQQMUVQTG ZONAVGZV  RCTCOGVGTU NGZGTO[ADCUKEANGZGT  Pod koniec procesu system Oracle9i z modułu podziału na leksemy pobiera elementy leksykalne, natomiast z modułu podziału na sekcje odczytuje pozycje sekcji (ang. section offsets). Na ich podstawie zbudowany zostaje indeks odwrócony, w którym są przecho- wywane informacje o elementach leksykalnych oraz dokumentach, w których te elementy występują. Praca z Oracle Text Poniższy kod źródłowy zawiera typową sekwencję instrukcji SQL, której można użyć w Oracle Text pracując z dokumentami strukturalnymi: Listing 6.1. Typowa sekwencja instrukcji SQL w Oracle Text na pirzykładzie tabeli bookstore ETGCVGVCDNGDQQMUVQTG RM07/$ 424+/#4;- ; ZONAVGZV .1$  KPUGTVKPVQDQQMUVQTGXCNWGU   $QQM +F  +F #WVJQT ,QJP.G CTTG#WVJQT 6KVNG 6JG0KIJV/CPCIGT6KVNG $QQM  KPUGTVKPVQDQQMUVQTGXCNWGU   $QQM +F  +F 200 Oracle9i i XML #WVJQT ,QJP)TKUJCO#WVJQT 6KVNG 6JG NKGPV6KVNG $QQM   FQFCYCPKGRQQUVCđ[EJMUKæľGMFQMUKúICTPK  EQOOKV DGIKP EVZAFFNETGCVGAUGEVKQPAITQWR ZONAUGEVKQPU  :/.A5 6+10A)4172  EVZAFFNCFFAQPGAUGEVKQP ZONAUGEVKQPU  VKVNGUGE  VKVNG  EVZAFFNCFFAQPGAUGEVKQP ZONAUGEVKQPU  CWVJQTUGE  CWVJQT  EVZAFFNETGCVGARTGHGTGPEG O[ADCUKEANGZGT  DCUKEANGZGT  EVZAFFNUGVACVVTKDWVG O[ADCUKEANGZGT  KPFGZAVGZV  VTWG  EVZAFFNUGVACVVTKDWVG O[ADCUKEANGZGT  KPFGZAVJGOGU  HCNUG  GPF ETGCVGKPFGZZONAKPFGZQPDQQMUVQTG ZONAVGZV KPFGZV[RGKUEVZU[UEQPVGZV RCTCOGVGTU  NGZGTO[ADCUKEANGZGT5 6+10)4172ZONAUGEVKQPU   UGNGEVRMHTQODQQMUVQTG YJGTGEQPVCKPU ZONAVGZV .G CTTG9+6*+0CWVJQTUGE   Powyższy kod, w którym wykorzystano odwołania do aplikacji Bookstore, jest prostym przykładem zastosowania SQL w Oracle Text. Ilustruje on proces tworzenia i wypełniania tabeli oraz tworzenia grupy sekcji i indeksu tekstowego. Zawiera ponadto jedno proste zapytanie. Najpierw jest tworzona tabela. Do identyfikacji każdego dokumentu użyto klucza głów- nego. Dokument XML został zdefiniowany jako obiekt CLOB (ang. Character Large Object) systemu Oracle. Składa się on ze znaków należących do zestawu znaków bazy danych Oracle9i. Tabela jest wypełniana dokumentami zawierającymi dane o książkach, których liczebność może sięgać dziesiątków tysięcy epgzemplarzy. Następnie jest tworzona grupa :/.A5 6+10A)4172, zawierająca dwie sekcje: dla znacznika CWVJQT oraz dla znacznika VKVNG : EVZAFFNETGCVGAUGEVKQPAITQWR ZONAUGEVKQPU  :/.A5 6+10A)4172  EVZAFFNCFFAQPGAUGEVKQP ZONAUGEVKQPU  VKVNGUGE  VKVNG  EVZAFFNCFFAQPGAUGEVKQP ZONAUGEVKQPU  CWVJQTUGE  CWVJQT  W przypadku tej grupy sekcji następuje odwzorowanie na kolumnę ZONAVGZV. Oznacza to, że tekst jest traktowany przez motor Oracle Text jako strukturalny dokument XML. Znaczniki otwierające, znaczniki zamykające oraz wewnętrzna definicja typu dokumentu (DTD) są rozpoznawane jako osobne elementy. Elementy CWVJQT i VKVNG zostają ponadto przygotowane do procedury indeksowania dla celów późniejszego wyszukiwa- nia. Potem jest budowany indeks tekstowy a do potoku zostają włączone podstawowy moduł podziału na leksemy (DCUKEANGZGT) oraz grupa sekcji: ETGCVGKPFGZZONAKPFGZQPDQQMUVQTG ZONAVGZV KPFGZV[RGKUEVZU[UEQPVGZV RCTCOGVGTU  NGZGTO[ADCUKEANGZGT5 6+10)4172ZONAUGEVKQPU   Rozdział 6.  Wyszukiwanie dokumentów XML za pomocą narzędzia Oracle Text 201 Klauzula KPFGZV[RG oznacza, że ma zostać zbudowany indeks tekstowy a nie zwykły indeks w postaci drzewa zbalansowanego (ang. B-tree). Po jego utworzeniu, w bazie danych zawierającej przykładowe dwa dokumenty można już przeprowadzać wyszukiwanie kon- tekstowe, używając w tym celu funkcji EQPVCKPU: UGNGEVRMHTQODQQMUVQTG YJGTGEQPVCKPU ZONAVGZV .G CTTG9+6*+0CWVJQTUGE   W wyniku zapytania zostają zwrócone wszystkie wiersze tabeli DQQMUVQTG, w których kolumna tekstowa zawiera ciąg .G CTTG w elemencie CWVJQT . Język SQL w wersji Oracle nie posiada (na razie) zaimplementowanego typu logicznego, dlatego należało użyć ope- ratora . W powyższym przykładzie wynik zapytania byłby następpujący: 2-   W kolejnych punktach, na przykładzie aplikacji Bookstore, zostaną omówione poszcze- gólne etapy przetwarzania potokowego. Pozwoli to na pokazanie zastosowania różnych technik użycia narzędzia Oracle Text. Skład danych Skład danych w Oracle Text zarządza procesem odczytu dpanych z kolumn bazy danych. Bezpośredni skład danych (ang. direct datastore) jest najprostszy. Operuje on na danych składowanych w kolumnie indeksowanej. Nie wymaga on przystosowywania atrybutów do potrzeb użytkownika. Bezpośredni skład danych jest składem domyślnym ( (#7.6A # 6#5614 ), dlatego nie trzeba go jawnie dodawać do potoku Oracle Text. W przykładzie aplikacji Bookstore użyto właśnie bezpośredniego skłapdu danych. Plikowy skład danych (ang. file datastore) odczytuje dane kolumn z pliku. Po otwarciu pliku czyta dane, traktując jego zawartość jako kolumnę indeksowaną. Oto zmodyfiko- wana tabela DQQMUVQTG, z plikowym składem danych: Listing 6.2. Zmodyfikowana tabela bookstore z plikowym składem idanych ETGCVGVCDNGDQQMUVQTG KF07/$ 424+/#4;- ; ZONAVGZVXCTEJCT   KPUGTVKPVQDQQMUVQTGXCNWGU  DQQMZON  KPUGTVKPVQDQQMUVQTGXCNWGU  DQQMZON   DGIKP EVZAFFNETGCVGARTGHGTGPEG ZONAHKNGU  (+. A #6#5614  EVZAFFNUGVACVVTKDWVG ZONAHKNGU  2#6*  ZONHKNGU   GPF  ETGCVGKPFGZZONAKPFGZQPDQQMUVQTG ZONAVGZV KPFGZV[RGKUEVZU[UEQPVGZV RCTCOGVGTU
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Oracle9i i XML
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: