TWORZENIE SCHEMATU XML



Podobne dokumenty
Rola języka XML narzędziem

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

Wprowadzenie do XML schema

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

Bazy danych Wykład zerowy. P. F. Góra

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Systemy baz danych. mgr inż. Sylwia Glińska

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

GML w praktyce geodezyjnej

XML extensible Markup Language. część 4

XML i nowoczesne technologie zarządzania treścią

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

29. Poprawność składniowa i strukturalna dokumentu XML

Bazy danych 2. Wykład 1

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

PRZEWODNIK PO PRZEDMIOCIE

Krzysztof Kadowski. PL-E3579, PL-EA0312,

The Binder Consulting

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Baza danych. Modele danych

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

Model semistrukturalny

Dlaczego GML? Gdańsk r. Karol Stachura

XML Schema. Alternatywne metody definiowania struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

XML Schema. Forma nazwy lokalnych elementów i atrybutów

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Wykład I. Wprowadzenie do baz danych

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

Baza danych. Baza danych to:

Tom 6 Opis oprogramowania

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Przedmiotem zamówienia jest dostawa:

SCHEMAT DOKUMENTU POTWIERDZENIA GENEROWANEGO PRZEZ ZUS

PRZEWODNIK PO PRZEDMIOCIE

Jednolity Plik Kontrolny dla ewidencji zakupu i sprzedaży VAT wg wersji 17 deklaracji VAT-7

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Instytut Technik Innowacyjnych Semantyczna integracja danych - metody, technologie, przykłady, wyzwania

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Cel szkolenia. Konspekt

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

WPROWADZENIE DO BAZ DANYCH

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Pojęcie systemu baz danych

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Zdalna edycja i przeglądanie dokumentacji medycznej.

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

Wykład 2. Relacyjny model danych

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

1. Mapowanie diagramu klas na model relacyjny.

Pojęcie bazy danych. Funkcje i możliwości.

HARMONIZACJA DANYCH PRZESTRZENNYCH JERZY GAŹDZICKI

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Kostki OLAP i język MDX

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Wprowadzenie do Hurtowni Danych

Technologia informacyjna

Spis treści. Przedmowa

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

XML w bazach danych i bezpieczeństwie

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

SCHEMAT DOKUMENTÓW OTRZYMYWANYCH Z ZUS ZAWIERAJĄCYCH INFORMACJE ZGROMADZONE W SYSTEMIE INFORMATYCZNYM ZUS

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Bazy danych Ćwiczenia projektowe

Integracja systemu CAD/CAM Catia z bazą danych uchwytów obróbkowych MS Access za pomocą interfejsu API

Schematy XML. Tomasz Traczyk.

Relacyjne bazy danych a XML

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Grupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30

INFORMATYKA W ZARZĄDZANIU LOTNICTWEM -LABORATORIUM

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Projektowanie relacyjnych baz danych

Implementacja schematów i statycznej kontroli typów w systemie JLoXiM

Ministerstwo Finansów

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych.

Transkrypt:

TWORZENIE SCHEMATU XML W OPARCIU O RELACYJNY MODEL DANYCH Janusz Stal Akademia Ekonomiczna W Krakowie Katedra Informatyki Streszczenie: Podczas, gdy dane, krytyczne dla funkcjonowania przedsiębiorstw, gromadzone i przechowywane są w większości przypadków w bazach relacyjnych, XML stanowi niekwestionowany standard wymiany informacji w sieci Internet. Dla zapewnienia niezawodności wymiany konieczna staje się weryfikacja dokumentów XML w oparciu o powiązane schematy danych. Artykuł skupia się na analizie metod tworzenia schematów w oparciu strukturę relacyjnej bazy danych. Abstract: While the majority of business data is stored in relational databases today, XML text format has become the standard for exchanging and querying information over the Web. XML data increasingly relies on accompanying XSD schema specifications to ensure meaningful exchanges of information. This paper focuses on the analysis of creation a schema based upon an relational database structure.

Wprowadzenie Rozpoczęte jeszcze w latach 60-tych XX w. prace nad językami znacznikowymi doprowadziły do powstania standardu XML, języka stanowiącego uniwersalny format wymiany informacji. Podczas, gdy krytyczne dane przedsiębiorstw przechowywane są zwykle w strukturach relacyjnych przy wykorzystaniu dostępnych systemów zarządzania bazami danych (DBMS), główny nacisk w przypadku technologii XML położony jest na wymianę danych oraz użycie w systemach zarządzania treścią. Ponieważ formaty zapisu danych zawartych w bazach relacyjnych nie są ze sobą kompatybilne, XML, jako narzędzie opisu danych, może stanowić pomost pomiędzy tymi systemami, umożliwiając wymianę informacji w środowiskach heterogenicznych. Dalszy, dynamiczny rozwój technologii doprowadził do zmiany paradygmatu funkcjonowania XML jako narzędzia przeznaczonego wyłącznie do wymiany danych. Ze względu na swą elastyczność, XML jest coraz częściej wykorzystywany również jako narzędzie umożliwiające gromadzenie i przechowywanie informacji. Zrodziło to konieczność opracowania metod umożliwiających konwersję danych zapisanych w bazach relacyjnych do postaci hierarchicznej, reprezentowanej przez struktury XML. Dla zapewnienia zgodności opisu informacji, konieczne stało się użycie języka opisu struktury danych. Wykorzystywany w początkowym okresie język DTD (Dokument Type Definition), będący częścią standardu XML, ze względu na swe ograniczenia nie umożliwiał w pełni na przeprowadzenie procesu prawidłowego modelowania danych XML zgodnych ze strukturą relacyjną. Dopiero opracowanie standardu XML Schema (XSD Extensible Stylesheet Definition) doprowadziło do powstania narzędzia, które dostarczyło środki umożliwiające precyzyjną definicję struktury, zawartości oraz semantyki opisywanych dokumentów XML. Pozwoliło to na określanie formalnej struktury dokumentu, definiując każdy występujący element, zbiór atrybutów oraz ich dopuszczalnych wartości. Metodyka tworzenia schematu XML Konwersja danych do modelu hierarchicznego rodzi potrzebę zdefiniowania schematu opisu struktury danych oraz typu i zakresu prezentowanych informacji, zgodnych ze schematem modelu relacyjnego. Specyfikacja języka XSD dostarcza zestawu narzędzi dla poprawnego odwzorowania elementów modelu relacyjnego (tabele, kolumny) wraz z zachowaniem występujących zależności oraz integralności istniejących danych. Realizowane jest to z jednej strony poprzez możliwość zastosowania określonego zestawu elementów oraz atrybutów języka XSD (key, unique, field, selector), umożliwiających wymuszenie unikalności wartości elementu (idea klucza własnego z modelu relacyjnego), z drugiej zaś strony poprzez określenie relacji zależności pomiędzy elementami schematu hierarchicznego (keyref, refer, selector, field), odzwierciedlającymi związki występujące w modelu relacyjnym. 212

Należy zauważyć, iż ze względu na specyfikę i różnorodność systemów DBMS, niemożliwym wydaje się opracowanie jednolitych zasad tworzenia schematów. Istniejące rozwiązania realizują funkcje konwersji pomiędzy schematami danych najczęściej w oparciu o: model hierarchiczny (hierarchical schema model), w którym odwzorowanie elementów struktury relacyjnej do struktury hierarchicznej następuje w oparciu o deklarację elementów i/lub zbioru atrybutów języka XSD, natomiast integralność referencyjna pomiędzy tabelami modelu relacyjnego zachowana jest przy użyciu dostępnych konstrukcji językowych schematu (elementy i atrybuty: key, unique, keyref, selektor, field, refer, xpath) (Rysunek 2 oraz Rysunek 4), model płaski (flat schema model), odnoszący się do standardu ISO-ANSI [5], definiujący zasady mapowania bazy danych do schematu XML, w którym integralność referencyjna danych zachowana jest bez użycia dostępnych konstrukcji językowych XSD, natomiast występujące zależności definiowane są przy użyciu składni annotation/appinfo, gdzie deklaruje się klucze własne oraz klucze obce wiążące poszczególne elementy, odzwierciedlając tym samym zależności występujące w strukturze relacyjnej (zobacz Rysunek 3). <xs:element name="tabela1"> <xs:complextype><xs:sequence> <xs:element name="t1kolumna1"/> <xs:element name="t1kolumna2"/> <xs:element name="t1kolumnan"/> </xs:sequence></xs:complextype> <xs:element name="tabela2"> <xs:complextype><xs:sequence> <xs:element name="t2kolumna1"/> <xs:element name="t2kolumna2"/> <xs:element name="t2kolumnan"/> </xs:sequence></xs:complextype> <xs:key name="tabela1_pk"> <xs:selector xpath=".//tabela1"/> <xs:field xpath="t1kolumna1"/> </xs:key> <xs:key name="tabela2_pk"> <xs:selector xpath=".//tabela2"/> <xs:field xpath="t2kolumna1"/> </xs:key> <xs:keyref refname="t1-t2" refer="tabela1_pk"> <xs:selector xpath=".//tabela2"/> <xs:field xpath="t2kolumna2"/> </xs:keyref> Rysunek 2. Model hierarchiczny XSD (hierarchical schema model) reprezentacji struktury bazy relacyjnej. Źródło: opracowane własne. 213

<xsd:annotation> <xsd:appinfo> <sql:relationship name= Tabela1-Tabela2 parent= Tabela1 parent-key= T1Kolumna1 child= Tabela2 child-key= T2Kolumna2 /> </xsd:appinfo> </xsd:annotation> <xsd:element name= Tabela1 > <xsd:complextype><xsd:sequence> <xsd:element name= T1Kolumna1 /> <xsd:element name= T1Kolumna2 /> <xsd:element name= T1KolumnaN /> <xsd:element ref= Tabela2 sql:relationship= Tabela1-Tabela2 /> </xsd:sequence></xsd:complextype> </xsd:element> <xsd:element name= Tabela2 > <xsd:complextype><xsd:sequence> <xsd:element name= T2Kolumna1 /> <xsd:element name= T2Kolumna2 /> <xsd:element name= T2KolumnaN /> </xsd:sequence><xsd:complextype> </xsd:element> Rysunek 3. Model płaski XSD (flat schema model) reprezentacji struktury bazy relacyjnej. Źródło: opracowane własne. Odwzorowanie elementów modelu relacyjnego realizowane może być zarówno poprzez zastosowanie deklaracji elementów, jak i zbioru atrybutów w schemacie XML. Ze względu jednak na istniejące ograniczenia w użyciu atrybutów, wynikające ze składni języka XSD, a także ze względu poprawę czytelności zapisu, preferowane jest wykorzystanie wyłącznie deklaracji elementów. Dla tak przyjętych założeń, algorytm tworzenia schematu XML na podstawie struktury relacyjnej bazy danych można określić w sposób następujący (zobacz Rysunek 4): 1. W tworzonym dokumencie XSD dodaj element reprezentujący relacyjny model danych (DataSet). 2. Dla każdej tabeli z modelu relacyjnego dodaj element potomny w DataSet (Tabela1..TabelaN). 3. W każdym z elementów Tabela1..TabelaN utwórz elementy potomne zawierające deklaracje kolumn, odnoszących się do tabeli relacyjnej. 4. Dla każdego klucza własnego występującego w tabelach modelu relacyjnego dodaj element potomny (Tabela1-PK..TabelaN-PK) w elemencie DataSet, wymuszający unikalność danych. 5. Dla odwzorowania zależności występujących w schemacie relacyjnym oraz zachowania istniejących więzów integralności, utwórz elementy potomne (Tabela1-TabelaN-PK-FK) w DataSet, określając jednocześnie referencje do kluczy własnych (Tabela1-PK..TabelaN-PK). 214

Baza danych deklaracje tabel i kolumn Tabela1 T1-Kolumna1 T1-KolumnaN TabelaN TN-Kolumna1 TN-KolumnaN deklaracje więzów integralności Tabela1-PK TabelaN-PK Tabela1-TabelaN-PK-FK Rysunek 4. Hierarchia zależności elementów schematu XML. Źródło: opracowanie własne. Zaproponowany algorytm oparty jest na modelu hierarchicznym. Użycie modelu płaskiego uwarunkowane jest implementacją standardu SQL/XML w systemie zarządzania bazą danych. Badanie poprawności transformacji struktury relacyjnej Praktyczna realizacja tworzenia schematu XML w oparciu o relacyjną strukturę danych wiąże się z koniecznością rozstrzygnięcia szeregu kwestii, których podłoże tkwi przede wszystkim w różnicach występujących w językach modelowania danych relacyjnych (DDL) i hierarchicznych (XSD) oraz użytej metodzie dostępu do danych. Szczegółowa analiza tych zagadnień pozwala określić klasy problemów, jakie należy rozwiązać przed przystąpieniem do konwersji schematów. W szczególności jest to: określenie metody dostępu do DBMS (API, ADO, ODBC, JDBC) oraz uwzględnienie ograniczeń z tego wynikających, 215

wybór elementów struktury relacyjnej podlegających transformacji (tabele użytkownika, widoki, tabele systemowe) przy jednoczesnym uwzględnieniu praw dostępu (w zależności od stosowanego DBMS), odwzorowanie elementów schematu struktury relacyjnej (tabele, kolumny) przy pomocy deklaracji elementów, atrybutów lub ich kombinacji w schemacie XML, odwzorowanie relacji mnogościowych oraz zachowanie więzów integralności (deklaracja kluczy własnych, kluczy obcych oraz występujących zależności), tworzenie elementów i atrybutów dla wartości pustych oraz wartości null, dobór nazw dla elementów i atrybutów (eliminacja kolizji nazw), konwersja typów danych, formatu oraz zakresu dopuszczalnych wartości, w szczególności wartości binarnych oraz formatu daty i czasu. W chwili obecnej dostępny jest na rynku szeroki wachlarz narzędzi realizujących tworzenie schematu XML na podstawie struktur relacyjnej bazy danych. W części praktycznej pracy dokonano, zatem próby utworzenia dokumentu XSD w oparciu o wybrane aplikacje: Altova XMLSpy (SPY), Microsoft Visual Studio (MVS) oraz Oxygen (OXG). Dla celów przeprowadzenia eksperymentu wykorzystano fragment systemu ewidencji szkoleń pracowniczych (SESP), zaimplementowany w DBMS Access. Rysunek 5 przedstawia strukturę tabel SESP podlegających konwersji do schematu XML. Rysunek 5. Relacyjny model systemu ewidencji szkoleń pracowniczych (SESP). Źródło: opracowane własne. W wyniku wykonanych transformacji zostały utworzone dokumenty XSD (ogx.xsd, mvs.xsd, spy.xsd), zawierające odwzorowanie schematu relacyjnego do schematu XML. Wybrane schematy, (z których usunięto fragmenty kodu, dla zwiększenia czytelności) przestawiono na rysunkach (Rysunek 6, Rysunek 7) (ograniczona objętość pracy nie pozwoliła na umieszczenie obszernego dokumentu utworzonego przy użyciu narzędzia OGX). 216

<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns=http://tempuri.org/dataset.xsd xmlns:mstns=http://tempuri.org/dataset.xsd xmlns:xs=http://www.w3.org/2001/xmlschema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" targetnamespace=http://tempuri.org/dataset.xsd elementformdefault="qualified" attributeformdefault="qualified" id="dataset"> <xs:element name="dataset" msdata:isdataset="true"> <xs:complextype><xs:choice maxoccurs="unbounded"> <xs:element name="pracownik"> <xs:complextype><xs:sequence> <xs:element name="id" type="xs:int" msdata:autoincrement="true"/> <xs:element name="nazwisko" type="xs:string"/> <xs:element name="imie" type="xs:string"/> <xs:element name="stanowisko" type="xs:string"/> </xs:sequence></xs:complextype> <xs:element name="szkolenie"> <xs:complextype><xs:sequence> <xs:element name="id" type="xs:int" msdata:autoincrement="true"/> <xs:element name="temat" type="xs:string""/> <xs:element name="datarozpoczecia" type="xs:datetime"/> <xs:element name="liczbagodzin" type="xs:short"/> </xs:sequence></xs:complextype> <xs:element name="uczestnik"> <xs:complextype><xs:sequence> <xs:element name="idszkolenia" type="xs:int"/> <xs:element name="idpracownika" type="xs:int"/> </xs:sequence></xs:complextype> </xs:choice></xs:complextype> <xs:unique name="datasetkey1" msdata:primarykey="true"> <xs:selector xpath=".//mstns:pracownik"/> <xs:field xpath="mstns:id"/> </xs:unique> <xs:unique name="datasetkey2" msdata:primarykey="true"> 217

<xs:selector xpath=".//mstns:szkolenie"/> <xs:field xpath="mstns:id"/> </xs:unique> <xs:unique name="datasetkey3" msdata:primarykey="true"> <xs:selector xpath=".//mstns:uczestnik"/> <xs:field xpath="mstns:idszkolenia"/> <xs:field xpath="mstns:idpracownika"/> </xs:unique> <xs:keyref name="szkolenieuczestnik" refer="datasetkey2"> <xs:selector xpath=".//mstns:uczestnik"/> <xs:field xpath="mstns:idszkolenia"/> </xs:keyref> <xs:keyref name="pracownikuczestnik" refer="datasetkey1"> <xs:selector xpath=".//mstns:uczestnik"/> <xs:field xpath="mstns:idpracownika"/> </xs:keyref> </xs:schema> Rysunek 6. Schemat XML SESP uzyskany przy użyciu Microsoft Visual Studio. Baza danych: Microsoft Access, metoda dostępu: ODBC. Źródło: opracowane własne. 218

<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" elementformdefault="qualified" attributeformdefault="unqualified"> <xs:element name="pracownik"> <xs:complextype> <xs:sequence> <xs:element name="id"> <xs:element name="nazwisko"> <xs:element name="imie"> <xs:element name="stanowisko"> <xs:element ref="uczestnik" minoccurs="0" /> </xs:sequence> </xs:complextype> <xs:key name="pracownik_pk"> <xs:selector xpath="."/> <xs:field xpath="id"/> </xs:key> <xs:keyref name="pracownik_to_uczestnik" refer="pracownik_pk"> <xs:selector xpath="uczestnik"/> <xs:field xpath="idpracownika"/> </xs:keyref> <xs:element name="szkolenie"> <xs:complextype> <xs:sequence> <xs:element name="id"> <xs:element name="temat"> <xs:element name="datarozpoczecia"> <xs:element name="liczbagodzin"> <xs:element ref="uczestnik" minoccurs="0"/> </xs:sequence> </xs:complextype> <xs:key name="szkolenie_pk"> <xs:selector xpath="."/> <xs:field xpath="id"/> </xs:key> <xs:keyref name="szkolenie_to_uczestnik" refer="szkolenie_pk"> <xs:selector xpath="uczestnik"/> <xs:field xpath="idszkolenia"/> </xs:keyref> <xs:element name="uczestnik"> <xs:complextype> <xs:sequence> <xs:element name="idszkolenia"> <xs:element name="idpracownika"> 219

</xs:sequence> </xs:complextype> <xs:key name="uczestnik_pk"> <xs:selector xpath="."/> <xs:field xpath="idszkolenia"/> <xs:field xpath="idpracownika"/> </xs:key> </xs:schema> Rysunek 7. Schemat XML SESP uzyskany przy użyciu Altova XMLSpy. Baza danych: Microsoft Access, metoda dostępu: ADO.Źródło: opracowane własne. Dokonując analizy uzyskanych wyników należy stwierdzić, iż żadne z wykorzystanych narzędzi nie pozwoliło w pełni na uzyskanie całkowicie poprawnych rezultatów. Mimo niewielkiego stopnia złożoności struktury relacyjnej (Rysunek 5), zaobserwować można szereg niezgodności w utworzonych schematach, wśród których najważniejsze to: błędna interpretacja występującej w bazie danych relacji m-n (SPY), brak zachowania więzów integralności w odwzorowywanej strukturze relacyjnej (OGX), nieprawidłowe mapowanie typów danych (MVS), niepoprawne określenie zakresu dla danych znakowych oraz dopuszczalnych wartości dla danych numerycznych (MVS), brak określenia wymaganych wartości w schemacie XML, w szczególności dla mapowanych kluczy własnych (MVS, OGX). Należy stwierdzić, iż wymienione nieprawidłowości, mimo zastosowania narzędzi mających charakter komercyjny, nie pozwalają bezpośrednio na wykorzystanie utworzonych schematów XML. Dla uzyskania pełnej ich zgodności ze strukturą bazy danych niezbędne są dodatkowe modyfikacje wygenerowanych przez badane aplikacje dokumentów XSD. Uzyskane rezultaty mogą jednak stanowić punkt wyjściowy na drodze do tworzenia schematów zgodnych z relacyjną strukturą danych. Wnioski Gromadzenie i przechowywanie danych, będące dotychczas domeną relacyjnych baz danych, możliwe jest również przy użyciu XML, języka deklaratywnego stworzonego dla semantycznego opisu prezentowanych informacji. Proces wymiany danych pomiędzy strukturą XML, a bazami danych powinien zostać poprzedzony wcześniejszym zdefiniowaniem schematu opisującego charakter przechowywanych wartości. Można to uczynić dokonując odwzorowania struktury bazy relacyjnej do standardu XSD. Badanie poprawności konwersji schematu dla wybranych narzędzi realizujących tą funkcję pokazało, iż w każdym przypadku uzyskano wyniki dalekie od oczekiwań. Zasadnicze przyczyny tego stanu wynikają przede wszystkim z ograniczonej funkcjonalności interfejsów dostępu do struktur relacyjnych baz danych oraz różnic pomiędzy językami DDL i XSD, wykorzystywanymi w modelowaniu struktur relacyjnych i hierarchicznych. 220

W efekcie może to prowadzić do problemów związanych z utrzymaniem spójności i integralności danych zawartych w strukturach XML. Rozwiązaniem może stać się gromadzenie i przechowywanie informacji w dedykowanych bazach danych XML, zachowujących strukturę dokumentu, co w efekcie eliminuje potrzebę konwersji pomiędzy formatami opisu danych. Na rynku dostępnych jest szereg produktów natywnych baz danych, jednakże na chwilę obecną nie istnieje jednolity standard języka kwerend (XQuery), co może uniemożliwiać szersze wykorzystanie tego rozwiązania. Literatura [1] Carey M., Kiernan J., Shanmugasundaram J., and et al., A Middleware for Publishing Object-Relational Data as XML Documents. In VLDB, 2000. [2] Database Languages SQL, ISO/IEC 9075-*:2003. [3] Eisenberg A., Melton J., Kulkarni K., Michels J., and Zemke F., SQL:2003 has been published. SIGMOD Rec., 33(1):119 126, 2004. [4] Grave M., Projektowanie baz danych XML, Helion, Gliwice, 2002 [5] ISO. Information technology - Database languages SQL Part 14: XML- Relate Specifications. 2003 [6] Melton J., Simon A., Understanding the new SQL: A Complete Guide, Morgan Kauffman, 1993. [7] Oxygen, SyncRO Soft Ltd, http://www.oxygenxml.com/ [8] Shanmugasundaram J. and at all, Efficiently publishing relational data as XML documents, in VLDB, 2000. [9] Visual Studio, Microsoft, http://ww.visualstudio.com/ [10] World Wide Web Consortium, XML schema, 2001, http://www.w3.org/xml/schema/ [11] XMLSpy, Altova GmbH, http://www.altova.com/ 221