pobierz plik referatu
Transkrypt
pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rozdział 18 w Rola testowania w projektowaniu XML-owych baz danych w 1 Wstęp da .b w Streszczenie. W opracowaniu zostały przedstawione aspekty związane z projektowaniem baz danych XML. Przeprowadzono szereg testów mających wykazać wpływ sposobu transformacji modelu konceptualnego do modelu logicznego na wydajność przetwarzania danych. Niezależnej ocenie poddano dwa typy systemów zarządzania bazami danych XML (Native, Enabled) w kontekście realizacji zapytań typowych konstrukcji języka XPath. Do modelowania na poziomie logicznym został wykorzystany profil UML for XML. pl s. Na rynku baz danych dominują dwa podejścia składowania dokumentów XML. Pierwsze z nich zakłada wykorzystanie modelu danych bazującego na drzewiastej strukturze dokumentów XML-systemy operujące na tym modelu są określane mianem XML Native. Drugie podejście zakłada mapowanie drzewiastej struktury dokumentu XML do wewnętrznego modelu danych (np. relacyjnego lub obiektowego) – systemy wykorzystujące ten wariant to systemy XML Enabled. Oba podejścia mają swoje wady i zalety. Projektowanie baz danych o strukturze XML jest procesem wieloetapowym i polega na tworzeniu modeli na różnych poziomach abstrakcji (modele konceptualny, logiczny i fizyczny) w oparciu o przyjęte reguły transformacji. Transformacja modelu logicznego do modelu fizycznego może być zrealizowana w różny sposób, w zależności od ustalonych kryteriów dotyczących środowiska implementacji, złożoności modelu logicznego (liczba elementów i relacji pomiędzy nimi). W pracy zostaną przedstawione wyniki testów, które mogą być podstawą opracowania reguł transformacji modeli logicznych do poziomu fizycznego z uwzględnieniem wymagań niefunkcjonalnych dotyczących aspektu wydajnościowego. Zakres badań obejmował między innymi: − Kontekst modelowania – sposoby modelowania związków generalizacji, – odwołania referencyjne, – zasady transformacji atrybutów modelu logicznego w elementy lub atrybuty modelu fizycznego XML. Łukasz Drzewiecki, Lech Tuzinkiewicz: Politechnika Wrocławska, Instytut Informatyki Stosowanej, ul. Wybrzeże Wyspiańskiego 27, 50-370 Wrocław, Polska email:[email protected],[email protected] (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Ł. Drzewiecki, L. Tuzinkiewicz w − Środowiska implementacji – Realizacja zapytań dla struktur XML zagnieżdżonych wielopoziomowo (dokumenty rozbudowane w głąb) Testy zostały przeprowadzone w dwóch typach systemów. W grupie XML Native: eXist – projekt „open source” oraz Xindice – projekt związany z grupą projektów Apache. Drugą grupę stanowią systemy XML Enabled, a do eksperymentu zostały wybrane popularne systemy zarządzania bazami danych Oracle 9i (typ XMLType) oraz MS SQL Server 2005 (typ xml). Przygotowane i przeprowadzone testy pozwoliły ocenić efektywność wybranych systemów, przy określonych wewnętrznych modelach reprezentacji danych XML oraz obsługi typowych zapytań XPath. W testach nie uwzględniono dodatkowych mechanizmów mających wpływ na efektywność przetwarzania dokumentów XML np. indeksowanie. w 2 Architektury systemów XML Native i XML Enabled da .b w Aby lepiej zidentyfikować mocne i słabe strony poszczególnych systemów należy bliżej przyjrzeć się ich architekturom. Według definicji podanej przez Ronalda Bourret’a, natywna baza danych XML to taka, która określa logiczny model dla dokumentu XML, a następnie składuje i zwraca dokumenty zgodnie z tym modelem [4]. Najczęściej stosowane modele to XML Information Set [5], XPath 1.0 [6], Document Object Model [7], XQuery i XPath 2.0 [8]. Każdy z tych modeli traktuje dokument XML jako etykietowane drzewo zawierające elementy z tekstową zawartością i atrybuty z ich wartościami. Modele te różnią się jednak między sobą w kontekście dopuszczalnych konstrukcji XML-owych. Opis tych różnic można znaleźć w [4]. Część baz typu XML Native przewidują opcje rejestrowania schematu XML Schema w celu walidowania dokumentu, jednak nie wpływa on z reguły na model składowania danych. Bazy testowane w tym opracowaniu nie udostępniają takiej funkcjonalności. Fizycznie dokumenty XML składowane są w kolekcjach, które mogą być odpowiednikiem schematów z relacyjnych baz danych. Alternatywnym rozwiązaniem są bazy typu XML Enabled, które zostały rozszerzone o mechanizmy dające wsparcie dla danych w formacie XML. Systemy te umożliwiają obsługę dokumentów XML w ograniczonym zakresie. W popularnych komercyjnych systemach jak Oracle i MS SQL Server został wprowadzony typ dedykowany do struktur XML oraz zbiór funkcji operujących na tym typie. W systemach tych dane XML mogą być przechowywane jako CLOB i wówczas przetwarzanie danych sprowadza się do parsowania dokumentu umieszczonego w bazie przy każdorazowym odwołaniu, co negatywnie wpływa na efektywność przetwarzania. W związku z powyższym, systemy tej klasy umożliwiają zdefiniowanie schematu XSD w celu zbudowania wewnętrznej struktury, która poprawia efektywność przetwarzania dokumentów XML. Podczas rejestracji schematu systemy zarządzania tworzą dedykowane typy danych dziedziczące po wbudowanym typie danych XML. Pozwala to na walidację dokumentów w trakcie ich zapisu do bazy danych. Minusem takiego rozwiązania jest konieczność każdorazowej modyfikacji schematu bazy danych przy zmianie struktur składowanych dokumentów. Rozwiązanie to ma uzasadnienie wówczas, gdy logiczny model danych jest stabilny. Fizycznie dokument składowany jest w komórce wiersza tabeli, której typ jest typem wygenerowanym podczas rejestracji schematu odpowiadającemu składowanemu dokumentowi. Wydobywanie fragmentów dokumentów XML odbywa się za pomocą funkcji udostępnianych przez system, umożliwiających kierowanie zapytań języka XPath czy XQuery. pl s. 176 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rola testowania w projektowaniu XML - owych baz danych Funkcje te mogą być umieszczane w klauzulach SELECT lub WHERE. Więcej szczegółów na temat przetwarzania dokumentów XML w poszczególnych systemach można znaleźć w [10], [11]. 3 Modele testowe w da .b w w Na podstawie analizy architektur systemów XML Native i XML Enabled można sądzić że: − XML Native w krótszym czasie zrealizują zapytania definiowane dla dokumentów o zagnieżdżonych strukturach. Wynika to z tego, iż relacyjne systemy w celu realizacji takich zapytań będą musiały dokonywać operacji wielu złączeń, które należą do najbardziej kosztownych. − XML Enabled lepiej poradzą sobie z zapytaniami wykorzystującymi odwołania referencyjne. Jest to spowodowane tym, iż jedną z podstaw systemów relacyjnych jest obsługa odwołań referencyjnych; systemy o drzewiastym modelu danych w celu zrealizowania operacji złączenia po odwołaniu referencyjnym będą musiały wydobyć informacje z dwóch części drzewa danych - w żaden logiczny sposób ze sobą nie powiązanych. − Modelowanie atrybutów z poziomu logicznego za pomocą atrybutów na poziomie fizycznym może przyspieszyć przetwarzanie w przypadku niektórych systemów XML Native (opartych na DOM), natomiast w przypadku XML Enabled nie powinno to mieć znaczenia. Wynika to z tego, iż w przypadku baz XML Enabled informacja o tym czy jest to atrybut czy element jest przechowywana w formie znacznika, natomiast w przypadku baz XML Native wydobycie danych o wartości atrybutu powinien wymagać przeanalizowania jednego poziomu drzewa mniej niż w przypadku atrybutu. − Modelowanie związków generalizacji przy pomocy wzorca Conrete Table Inheritance powinno skutkować szybszym czasem odpowiedzi w przypadku systemów XML Enabled, w przypadku systemów XML Native zastosowanie tego wzorca czy wzorca Class Table Inheritance nie powinno mieć większego znaczenia. Jest to spowodowane tym, iż systemy XML Enabled w celu wydobycia danych będą musiały wykonać dodatkową operację złączenia. W celu sprawdzenia przedstawionych hipotez został przygotowany testowy wycinek rzeczywistości. Model konceptualny przedstawiający ten wycinek został opisany za pomocą diagramu UML (rys.1.). Model ten został przetransformowany do modelu logicznego przy użyciu profilu UML, pochodzącego z narzędzia Enterprise Architect [2], przeznaczonego do modelowania struktur XML. Profil ten zawiera struktury będące odpowiednikami typowych konstrukcji języka XML Schema [9] (rys. 2.). Klasy z modelu konceptualnego są transformowane przy wykorzystaniu następujących reguł: − klasy z modelu konceptualnego w modelu logicznym są oznaczane stereotypem <<XSDcomplexType>> − aby atrybuty z poziomu logicznego były traktowane jako atrybuty XML muszą być oznaczone stereotypem <<XSDAttribute>> − brak oznaczenia atrybutów na poziomie logicznym stereotypem, oznacza traktowanie ich jako elementów XML Model konceptualny został przetransformowany do kilku modeli na poziomie logicznym w celu zbadania wpływu modelowania elementów z modelu konceptualnego na czas realizacji zapytań wykonywanych na dokumentach opartych o poszczególne konstrukcje zdefiniowane w modelu logicznym. pl s. 177 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Ł. Drzewiecki, L. Tuzinkiewicz w w Rys. 1. Model z poziomu konceptualnego opisujący testowy wycinek rzeczywistości da .b w pl s. Rys. 2. Diagram przedstawiający elementy profilu UML for XML Rys. 3. Modele logiczne przedstawiające różne sposoby modelowania klasy Zagniezdzenie z modelu konceptualnego. Po lewej klasa zamodelowana z wykorzystaniem reguł 1 i 2. Po prawej z wykorzystaniem reguł 1 i 3. Modele te posłużą do wygenerowania schematów XSD, które zostaną wykorzystane do porównania wydajności systemów w realizacji zapytań operujących na atrybutach i elementach XML 178 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rola testowania w projektowaniu XML - owych baz danych w da .b w w Rys. 4. Model logiczny powstały w wyniku transformacji klas Obiekt i Odwolanie przy wykorzystaniu reguły pierwszej. Model ten posłuży do wygenerowania schematów, które zostaną wykorzystane do sprawdzenia wydajności systemów pod kątem zapytań wykorzystujących odwołania referencyjne Rys. 5. Modele logiczne obrazujące różne sposoby modelowania związków generalizacji. Po lewej stronie klasy wygenerowane przy wykorzystaniu wzorca Class Table Inheritance. Po prawej przy wykorzystaniu wzorca Conrete Table Inheritance 4 Wyniki testów pl s. Tabela 1. Zapytania wykorzystane w testach wydajnościowych, sprawdzających czas realizacji zapytań opartych o atrybuty i elementy XML. Dokumenty wykorzystane w tych testach zostały wygenerowane na podstawie schematów opartych na modelach z rys. 3. Lp 1. 2. 3. 4. 5. 6. 7. Treść zapytania . /Test/Zagniezdzenie[Napis='This is a text number one'] /Test/Zagniezdzenie[Identyfikator=1] /Test /Test/Zagniezdzenie[Data<'2004-01-02'] /Test/Zagniezdzenie[Identyfikator >50 and Identyfikator < 100] /Test/Zagniezdzenie[Napis='This is a text number four'] 179 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Ł. Drzewiecki, L. Tuzinkiewicz Tabela 2. Tabela prezentuje wyniki testów modelowania atrybutów z modelu konceptualnego jako atrybutów w modelu fizycznym. Czasy podane są w milisekundach. Nad każdą kolumną umieszczona jest ilość węzłów w testowanym dokumencie. Zapytania oznaczone literką “a” to zapytania odpowiadające zapytaniom tabeli 1, ale działające na atrybutach (np. @Napis zamiast Napis) w Xindice 100 1000 1 5 8 96 8 93 110 390 14 204 123 218 148 1038 50000 135 129809 136040 11023 139136 137362 49107 100 10 8 30 36 10 74 14 50000 ** ** ** ** ** ** ** 10000 7 5523 5222 2969 5435 5469 9650 Oracle 1000 10000 66 18787 12 187 2231 * 152 18236 14 270 2249 * 98 3722 da .b w w Lp EXist 100 1000 10000 50000 1a. 8 5 20 8 2a. 10 24 238 1335 3a. 10 26 212 1038 4a. 7 10 10 6 5a. 10 26 219 1119 6a. 17 50 393 2096 7a. 15 93 1100 5496 MS SQL Server Lp 100 1000 10000 50000 1a. 9 38 414 1853 2a. 4 20 189 951 3a. 1 9 66 346 4a. 10 67 740 3511 5a. 3 17 202 960 6a. 10 23 224 1193 7a. 11 85 921 4761 Tabela 3. Tabela prezentuje wyniki testów modelowania atrybutów z modelu konceptualnego jako elementów w modelu fizycznym. Czasy podane są w milisekundach. Nad każdą kolumną umieszczona jest ilość węzłów w testowanym dokumencie(*- czas odpowiedzi powyżej 200 sekund,** - nie udało się wprowadzić tak dużego dokumentu) Lp 1. 2. 3. 4. 5. 6. 7. 100 5 9 7 5 11 14 14 100 32 12 7 11 5 16 25 50000 11 1305 1158 8 1213 2418 5511 100 5 13 13 149 10 164 182 50000 2236 1364 456 4038 1385 1510 5288 100 13 52 70 27 18 94 24 Xindice 1000 10000 5 3 247 5837 139 5758 618 3727 267 5928 308 5780 983 9364 Oracle 1000 10000 71 13475 10 147 2263 * 120 9153 10 254 2313 * 100 1185 50000 ** ** ** ** ** ** ** pl s. 1. 2. 3. 4. 5. 6. 7. Lp EXist 1000 10000 8 7 26 238 25 193 5 6 26 201 45 401 89 1014 MS SQL Server 100 10000 32 493 12 275 7 95 11 838 5 284 16 273 25 1017 180 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 50000 ** ** ** ** ** ** ** Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rola testowania w projektowaniu XML - owych baz danych w Jak pokazują wyniki testów z tabel (2 i 3) nie wszystkie hipotezy dotyczące przetwarzania XML-owych atrybutów i elementów przez testowane systemy zostały potwierdzone. Tylko w jednym systemie typu XML Native, w Xindice, udało się zaobserwować szybsze przetwarzanie dokumentów opartych na atrybutach w stosunku do dokumentów opartych na elementach. W przypadku systemu eXist nie można zaobserwować większych różnic. Różnice w tym aspekcie mogą być spowodowane różnicami w wewnętrznych modelach danych odpowiedzialnych za składowanie danych XML. W przypadku systemów typu XML Enabled, także tendencje różnią się w zależności od testowanego systemu. W przypadku systemu MS SQL Server szybciej przetwarzane były dokumenty oparte o atrybuty. Tendencja ta może być spowodowana fizyczną wielkością zwracanego wyniku (dokumenty oparte na atrybutach są około 30% mniejsze od dokumentów opartych na elementach). Różnice w czasie mogą więc być spowodowane dłuższym czasem generowania wynikowego dokumentu z wewnętrznych struktur reprezentujących dane. W przypadku systemu Oracle nie można dostrzec przewagi w wykorzystaniu w dokumencie XML atrybutów zamiast elementów. Na podstawie prezentowanych wyników można wywnioskować iż nie we wszystkich systemach występują różnice pomiędzy stosowaniem atrybutów a elementów w dokumentach XML, więc przy podejmowaniu decyzji w trakcie projektowania XML-owych baz danych należy brać pod uwagę jaki będzie docelowy system odpowiedzialny za przechowywanie dokumentów XML. Podczas wyboru pomiędzy atrybutami a elementami XML należy także wziąć pod uwagę następujące fakty: Dokumenty wykorzystujące atrybuty zajmują około 30% mniej miejsca od dokumentów z opartych na elementach, więc w przypadku dużych rozmiarów dokumentów lub wielkiej ich ilości należało by zamodelować atrybuty z poziomu konceptualnego jako atrybuty XML-owe na poziomie fizycznym. Drugim aspektem, który należy rozważyć jest problem czytelności dokumentów XML. Dokumenty oparte na elementach są o wiele bardziej przejrzyste niż dokumenty oparte na atrybutach. Jeśli z dokumentami mają kontakt jedynie aplikację to oczywiście nie ma to żadnego znaczenia. Jeśli jednak użytkownicy są zaangażowani w fizyczną ingerencję w dokument XML, obejmującą jego zmiany w jakimś narzędziu tekstowym to problem ten zyskuje na wadze. Należy wtedy rozważyć czy ewentualne zyski w składowaniu dokumentów nie zostaną zaprzepaszczone w innym miejscu procesu wykorzystującego projektowane dokumenty. Inne tendencje, które można zaobserwować na podstawie powyższych wyników: a) systemy typu XML Native mają znaczną przewagę w zapytaniach zwracających całość lub wskazane poddrzewo dokumentu XML. Niepokonany w tym aspekcie jest system eXist, dla którego praktycznie nie ma znaczenia rozmiar dokumentu, jeśli zapytania wskazuje konkretne miejsce z dokumentu i nie posiada żadnego warunku ograniczającego wynik. Przyczyną takiego stanu rzeczy może być fakt, iż wewnętrzny model składowania danych systemu eXist jest najbardziej zbliżony do modelu [XP 1.0]. W zapytaniach dotyczących całych dokumentów nawet system Xindice, który jest raczej tylko systemem składującym pliki z interfejsem wykorzystujący prosty model DOM, wyprzedza MS SQL Server i Oracle’a. Jest to spowodowane tym, iż systemy XML Enabled rozparcelowują dokument do wewnętrznych struktur, podczas gdy systemy XML Native trzymają dokument w całości. b) Biorąc pod uwagę wszystkie zapytania z tej części testów najlepszymi systemami okazały się MS SQL Server i eXist. Wszystkie systemy odpowiadały podobnie w przypadku niewielkiej ilości węzłów w dokumencie, a różnice w czasach odpowiedzi mieściły się w granicach błędu obliczeniowego (około 20 milisekund). Przy większych dokumentach systemy Xindice i Oracle traciły już sporo do wcześniej wspomnianych systemów. W przypadku Xindice pogorszenie czasu odpowiedzi dotyczy wszystkich testowych zapytań, natomiast w przypadku Oracle’a wzrost czasu odpowiedzi dotyczył głównie zapytań na da .b w w pl s. 181 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Ł. Drzewiecki, L. Tuzinkiewicz elementach (atrybutach) przyjmujących wiele wartości („Identyfikator” był elementem zawierającym unikatowe wartości). Tabela 4. Zapytania wykorzystane w testach wydajności systemów w realizacji zapytań zagnieżdżonych. Dokumenty wykorzystane w tych testach zostały wygenerowane na podstawie schematu opartego na modelu z rysunku (rys. 3) Treść zapytania //Zagniezdzenie[Napis='This is a text number one']"; //Zagniezdzenie[Identyfikator=5] //Zagniezdzenie[Identyfikator >50 and Identyfikator < 100] //Zagniezdzenie[Identyfikator >100][./Napis='This is a text number four'] w Lp 8. 9. 10. 11. w Tabela 5. Wyniki testów dla zapytań z tabeli 4. Nad każdą kolumną umieszczona jest ilość poziomów zagnieżdżeń w dokumencie XML. Wszystkie testy były przeprowadzane na dokumencie posiadającym 1000 węzłów 1 Exist 5 10 1 Xindice 5 10 MS SQL Server 1 5 10 1 Oracle 5 30 25 30 81437 881 1233 31 35 10 35 25366 23524 23774 30 28 25 78543 651 1432 14 50 48 65 78322 751 1316 35 12 42 25226 23674 23664 42 40 25327 23794 152 121 127 93865 1793 3751 122 23815 288 1987 32206 228518 436908 da .b 8. 9. 10. 11. w Lp pl s. W zakresie zapytań zagnieżdżonych ponownie najlepsze wyniki osiągnęły systemy eXist i MS SQL Server. Przy czym przy zapytaniach dotyczących elementów znajdujących się na różnych poziomach w drzewie dokumentu XML – owego system eXist był zdecydowanie najlepszy. Zdecydowanie najgorzej w tej kategorii zapytań zachowywał się system Oracle. Ciekawe zachowanie można zaobserwować w przypadku systemu Xindice. W przypadku dokumentów zawierających tylko jeden poziom system potrzebuje niemal 100 sekund na realizację zagnieżdżonych zapytań. Fakt ten jest spowodowany, tym iż system ten dla każdej gałęzi drzewa uruchamia przetwarzanie zapytania, ponieważ jest tylko jeden poziom, więc ilość gałęzi jest równa ilości węzłów w dokumencie. Przy dokumencie zawierającym 5 poziomów ilość gałęzi, a co za tym idzie czas realizacji, spada logarytmicznie. Przykład ten pokazuje jak ważny może się okazać wybór modelu składowania danych w kontekście realizacji poszczególnych zapytań. Tabela 6. Zapytania wykorzystane w testach wydajnościowych sprawdzających czas realizacji zapytań odnoszących się do struktur XML zbudowanych na podstawie różnych wzorców modelowania związków generalizacji (Class Table Inheritance lub Conrete Table Inheritance) Lp Treść zapytań 12. /TestTableInheritance/Podtyp[Napis=''This is a text number one''] 13. /TestTableInheritance /Podtyp[Napis=''This is a text number one'' and Liczba2 < 50] 14. /TestTableInheritance /Podtyp 15. /TestTableInheritance/Podtyp[Liczba2 = Liczba] 182 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rola testowania w projektowaniu XML - owych baz danych W testach mających porównać modelowanie związków generalizacji za pomocą wzorca Concrete Table Model w stosunku do wzorca Class Table Model brane były pod uwagę tylko systemu w których wymagana jest rejestracja schematów XSD, gdyż przy systemach nie wykorzystujących schematów do budowania struktur, w których składowane są dokumenty takie testy były by bezcelowe. w Tabela 7. Wyniki testów modelowania związków generalizacji za pomocą wzorca Class Table Inheritance lub Conrete Table Inheritance(*- czas odpowiedzi powyżej 200 sekund) Lp Class Table Oracle Conrete Table 1000 10000 1000 10000 1000 10000 1000 10000 34 24 103 200 329 220 1228 1963 40 29 104 191 360 229 1273 2196 36 2729 119 113 181 * 2524 2223 13 2921 117 123 140 * 2523 2304 w w 12. 13. 14. 15. Ms SQL Server Class Table Conrete Table da .b Nie potwierdziły się hipotezy dotyczące różnic w czasie realizacji zapytań dotyczących struktur zamodelowanych za pomocą wzorców projektowych Class Table Inheritance i Concrete Table Inheritance. Różnice w czasie odpowiedzi mieściły się w granicach błędu obliczeniowego. Brak różnic spowodowany jest zapewne „odpornością” wewnętrznego modelu składowania dokumentów XML na problem dziedziczenia między typami. W systemie Oracle dane składowane są w tabelach zbudowanych na typie obiektowym odpowiadającym typowi złożonemu ze schematu XSD. Więc nawet jeśli mapujemy klasy z modelu konceptualnego przy pomocy wzorca Class Table Inheritance to elementy z dokumentu XML – owego fizycznie są składowane w jednej tabeli, odpowiadającej danemu typowi – nie są rozdzielane na tabele odpowiadające obiektom biorącym udział w hierarchii dziedziczenia – nie ma więc problemu realizacji kosztownych operacji złączeń. Autorom nie udało się dotrzeć do reguł mapowania struktur XML do wewnętrznych struktur w MS SQL Serverze, więc przyczyna braku różnicy w czasie realizacji poszczególnych zapytań w tym systemie nie została wyjaśniona. pl s. Tabela 8. Zapytania wykorzystane w testach wydajności systemów w realizacji zapytań wykorzystujących odwołania referencyjne. Dokumenty wykorzystane w tych testach zostały wygenerowane na podstawie schematu opartego na modelu z rys. 4. Lp Treść zapytań /TestReference/Obiekt[Identyfikator=/TestReference/Odwolanie[Identyfikator=1]/Ref 16. erencja] /TestReference/Obiekt[Identyfikator != /TestReference/Odwolanie[Referencja = 17. 11]/Referencja] /TestReference/Odwolanie[Referencja = /TestReference/Obiekt[Identyfikator = 18. 11]/Identyfikator] 19. /TestReference/Obiekt[Identyfikator = ../Odwolanie/Referencja] 183 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Ł. Drzewiecki, L. Tuzinkiewicz Tabela 9. Wyniki testów wydajności systemów w realizacji zapytań wykorzystujących odwołania referencyjne(*- czas odpowiedzi powyżej 200 sekund,** - MS SQL Server nie obsługuje w „podwyrażeniach” XPath zapytań mogących zwrócić więcej niż jedną wartość) Lp eXist w 16. 17. 18. 19. Xindice 100 1000 100 15 201 13 154 39 17105 34 14625 451 388 368 7289 MS SQL Server Oracle 1000 100 1000 100 * * * 12 20 13 ** 70 165 79 ** 6919 7169 2869 12839 * 1000 * * * * da .b w w Wyniki i ograniczone możliwości niektórych systemów w zakresie możliwych operacji świadczą (tabela 9.), iż drzewiasta struktura dokumentu XML nie jest stworzona do przetwarzania odwołań referencyjnych – tak popularnych w systemach relacyjnych. Jedynym systemem, którego czasy odpowiedzi nie wzrósł drastycznie w porównaniu z innymi zapytaniami. System ten ma jednak spory mankament, gdyż nie obsługuje w „podwyrażeniach” XPath zapytań zwracających mogących zwrócić więcej niż jedną wartość, co powoduje brak możliwości realizacji wielu operacji. W przypadku innych systemów czas operacji wzrósł nawet o trzy rzędy wielkości, a czasy odpowiedzi dla dokumentów o tysiącu elementów przekraczające 10 sekund mogą być w wielu aplikacjach nie do zaakceptowania. Dlatego lepiej jest modelować asocjacje z modelu konceptualnego jako agregacje na poziomie fizycznym, nawet kosztem redundancji danych. 5 Podsumowanie pl s. W projektowanie baz danych XML istotne znaczenie odgrywa sposób odwzorowania modelu konceptualnego w model logiczny. Przeprowadzona analiza wpływu, różnych transformacji pomiędzy poziomem konceptualnym i logicznym oraz, na wydajność przetwarzania zapytań prowadzi do następujących wniosków: − Sposób reprezentowania atrybutów obiektów modelu konceptualnego w modelu logicznym XML, nie ma większego wpływu na wydajność przetwarzania, ma natomiast znaczenia dla rozmiarów docelowej bazy danych XML. − Reprezentowanie związków asocjacji z modelu konceptualnego za pomocą odwołań referencyjnych na poziomie fizycznym wpływa niekorzystnie na wydajność przetwarzania zapytań. − Sposób implementacji związków generalizacji z modelu konceptualnego na poziomie fizycznym, za pomocą wzorca Class Table Inheritance lub wzorca Concrete Table Inheritance, nie miał znaczenia dla efektywności realizacji testowanych zapytań. Testy wydajnościowe przeprowadzone w różnych systemach zarządzania bazami danych XML wykazały, że: − W przypadku konieczności stosowania zapytań zagnieżdżonych odwołujących się do różnych poziomów drzewa dokumentów lepszą platformą implementacyjną (poziom fizyczny) są systemy XML Native. − Bazy XML Enabled nie ustępują bazom XML Native w przetwarzaniu prostych zapytań, co może przemawiać za ich stosowaniem, gdy zachodzi konieczność integracji danych z dokumentów XML z innymi źródłami danych. Uzyskane wyniki prac zachęcają do podjęcia prac w zakresie wykorzystania podejścia MDA w projektowaniu baz danych typu XML. Z przeprowadzonych testów wynika, że wybór zbioru reguł transformacji wpływa istotnie na wydajność przetwarzania i rozmiary bazy danych. Z tego względu transformacja pomiędzy modelem konceptualnym (model PIM), 184 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rola testowania w projektowaniu XML - owych baz danych a modelem fizycznym (model PSM) może być realizowana wielowariantowo w oparciu o charakterystyki dotyczące modelu konceptualnego (m.in. liczba i własności asocjacji, rodzaje relacji, liczba atrybutów). Literatura w 1. da .b w w David Carlson, Modeling XML Vocabularies with UML: Part I,II,III (artykuły z http://XMLmodeling.com) 2. Enterprise Architect 5.0 – documentation – UML profile for XML 3. Ronald Bourret, XML and Datbases 4. Airi Salminen, Frank wm. Tompa, Requeirments for XML Document Database Systems 5. XML Information Set (Second Edition), W3C Recommendation 4 February 2004 6. XML Path Language(XPath),Version 1.0,W3C Recommendation 16 November 1999 7. XQuery 1.0 and XPath 2.0 Data Model (XDM), W3C Candidate Recommendation 3 November 2005 8. Document Object Model (DOM) Level 2 Core Specification Version 1.0, W3C Recommendation 13 November 9. XML Schema Part 0: Primer Second Edition,W3C Recommendation 28 October 2004 10. Oracle Database 10 gXML & SQL, Chapter 9 11. SQL Server 2005 Books Online, Using XML in SQL Server pl s. 185 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 w da .b w w pl s. (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006