610 likes | 801 Views
XML. XML w bazach danych. Plan wykładów. Wprowadzenie do XML Struktura dokumentów XML Języki zapytań dla XML XML a bazy danych. Plan wykładu. Podział dokumentów XML ze względu na ich strukturę Przechowywanie danych z dokumentów XML a przechowywanie dokumentów XML
E N D
XML XML w bazach danych
Plan wykładów • Wprowadzenie do XML • Struktura dokumentów XML • Języki zapytań dla XML • XML a bazy danych
Plan wykładu • Podział dokumentów XML ze względu na ich strukturę • Przechowywanie danych z dokumentów XML a przechowywanie dokumentów XML • Bazy danych wspierające XML • Bazy danych dedykowane dla XML
Plan wykładu • Podział dokumentów XML ze względu na ich strukturę • Przechowywanie danych z dokumentów XML a przechowywanie dokumentów XML • Bazy danych wspierające składowanie XML • Bazy danych dedykowane dla XML
Rodzaje dokumentów XML Podział dokumentów XML ze względu na ich strukturę: • dokumenty bazujące na danych (ang. data-centric documents) • dokumenty bazujące na dokumencie (ang. document-centric documents)
Rodzaje dokumentów XML Dokumenty bazujące na danych (ang. data-centric documents) <Pracownicy> <Pracownik> <Nazwisko> Jaworek </Nazwisko> <PESEL> 56022812345 </PESEL> <Data_ur> 28.02.1956 </Data_ur> <Data_przyjecia> 01.10.1980</Data_przyjecia> <Dzieci> Brak </Dzieci> <Zespol> Piece </Zespol> </Pracownik> </Pracownicy> <Pracownicy> <Pracownik> <Nazwisko> Jaworek </Nazwisko> <PESEL> 56022812345 </PESEL> <Data_ur> 28.02.1956 </Data_ur> <Data_przyjecia> 01.10.1980 </Data_przyjecia> <Dzieci> Brak </Dzieci> <Zespol> ProjektZEUS </Zespol> </Pracownik> <Pracownik> <Nazwisko> Grabski </Nazwisko> <PESEL> 56063112345 </PESEL> <Data_ur> 31.06.1956 </Data_ur> <Data_przyjecia> 01.10.1980 </Data_przyjecia> <Dzieci> Brak </Dzieci> <Zespól> ProjektHERA </Zespól> </Pracownik> </Pracownicy>
Rodzaje dokumentów XML Dokumenty bazujące na danych (ang. data-centric documents) • Regularna struktura • Równomierna granulacja • Jednorodna zawartość • Kolejność elementów nie ma znaczenia
Rodzaje dokumentów XML Dokumenty bazujące na dokumencie (ang. document-centric documents) <Intro>The <ProductName>Turkey Wrench</ProductName> from <Developer>Full Fabrication Labs, Inc.</Developer> is <Summary>like a monkey wrench,but not as big.</Summary> </Intro>
Rodzaje dokumentów XML Dokumenty bazujące na dokumencie (ang. document-centric documents) • Nieregularna struktura • Zróżnicowana granulacja • Niejednorodna zawartość • Kolejność elementów ma znaczenie
Plan wykładu • Podział dokumentów XML ze względu na ich strukturę • Przechowywanie danych z dokumentów XML a przechowywanie dokumentów XML • Bazy danych wspierające XML • Bazy danych dedykowane dla XML
Przechowywanie danych z dokumentów XML Przechowywanie danych z dokumentów XML • XML służy jedynie jako format wymiany danych • Znaczenie mają tylko dane zawarte w dokumencie, a nie sam dokument (DTD, komentarze, instrukcje przetwarzania, kolejność elementów nie mają znaczenia) – przetwarzanie jest zorientowane na dane • Dokument XML bazuje na danych (ang. data-centric XML document), nie na dokumencie
Przechowywanie danych z dokumentów XML <? xml version=“1.0” ?> <purchaseOrder id=‘12345” secretKey=‘4x%$^’> <customer id=“A6789”> <name>John Smith Co</name> <address> <street>1234 W. Main St</street> <city>Toledo</city> <state>OH</state> <zip>95141</zip> </address> </customer> <itemList> <item> <partNo>A54</partNo> <quantity>12</quantity> </item> <item> <partNo>985</partno> <quantity>1</quantity> </item> </itemList> </purchaseOrder>
Przechowywanie danych z dokumentów XML Zalety przechowywania danych z dokumentów XML • Możliwość skorzystania z dojrzałej technologii relacyjnych SZBD • Możliwość szybkiego wyszukiwania
Przechowywanie danych z dokumentów XML Problemy towarzyszące przechowywaniu danych z dokumentów XML • Utrata informacji jakie niesie ze sobą dokument XML • Dla dużej część dokumentów utrata DTD, komentarzy, instrukcji przetwarzania oraz zmiana kolejność elementów jest niedopuszczalna • Zapisanie samych danych w bazie, a następnie stworzenie na ich podstawie dokumentu XML nie musi dać w rezultacie dokumentu identycznego z początkowym (ang. round tripping, document equivalence)
Przechowywanie danych z dokumentów XML Problemy towarzyszące przechowywaniu danych z dokumentów XML • Złożona struktura dokumentów XML może powodować: • złożone i czasochłonne mapowanie struktury dokumentu XML na strukturę relacyjnej bazy danych • nieefektywny rezultat mapowania – duża ilość rzadko wypełnionych tablic wymagających złączeń podczas zapytań • Konieczność utrzymywania sztywnego schematu dokumentów XML odzwierciedlonego w strukturze tablic
Przechowywanie dokumentów XML Przechowywanie dokumentów XML • Ważne informacje niosą nie tylko dane zapisane w dokumencie XML ale również sam dokument • Konieczne jest zapewnienie niezmienionego stanu dokumentu • Dokument XML bazuje na dokumencie (ang. document-centric XML document)
Przechowywanie dokumentów XML Przechowywanie dokumentów XML w postaci dużych obiektów tekstowych Zalety: • Szybkie wstawianie i pobieranie całych dokumentów XML • Brak ograniczeń co do schematu składowanych dokumentów
Przechowywanie dokumentów XML Przechowywanie dokumentów XML w postaci dużych obiektów tekstowych Wady: • Konieczność parsowania całego dokumentu przy realizacji zapytań • Niska wydajność realizacji zapytań
Przechowywanie dokumentów XML Bazy dokumentów XML (ang. XML document databases)
Przechowywanie dokumentów XML Bazy dokumentów XML (ang. XML document databases) Kolekcja dokumentów XML i ich części zarządzana przez system mający możliwość przetwarzania i kontroli zarówno kolekcji jak i informacji reprezentowanych przez kolekcje [Salminen, Tompa]
Przechowywanie dokumentów XML Bazy dokumentów XML • Model danych • Logiczny model danych zgodny z XML • Zapewnienie zgodności dokumentu ładowanego do bazy danych z dokumentem wyeksportowanym z bazy
Przechowywanie dokumentów XML Logiczny model danych
Przechowywanie dokumentów XML Bazy dokumentów XML – wymagania dotyczące systemu • Definiowanie danych • Wsparcie dla typów danych • Składowanie kolekcji dokumentów i typów dokumentów • Wsparcie dla przestrzeni nazw • Umożliwienie indeksowania składowanych dokumentów
Przechowywanie dokumentów XML Bazy dokumentów XML – wymagania dotyczące systemu • Przetwarzanie danych • Język zapytań umożliwiający poruszanie się po drzewiastej strukturze dokumentu XML • Umożliwienie transformacji • Update i zarządzanie transakcjami
Przechowywanie dokumentów XML Bazy dokumentów XML Zalety: • Składowanie dokumentów XML w repozytorium o logicznej strukturze dedykowanej dla XML • Przetwarzanie bezpośrednio dokumentów XML bez potrzeby transformacji struktury danych do postaci relacyjnej
Przechowywanie dokumentów XML Bazy dokumentów XML Zalety: • Szybkie wyszukiwanie • Elastyczność obsługi schematów
Przechowywanie dokumentów XML Bazy dokumentów XML Wady: • Konieczność integracji z danymi relacyjnymi • Problem skalowalności
Bazy danych umożliwiające korzystanie z XML Bazy danych umożliwiające korzystanie z XML (ang. XML enabled databases) • Microsoft SQL Server 2000 • Oracle 8i
Bazy danych umożliwiające korzystanie z XML Microsoft SQL Server 2000 • Możliwość zwracania rezultatów zapytań SQL w postaci XML • Możliwość wczytywania dokumentów XML do bazy danych • Możliwość definiowania schematów dokumentów XML w języku XDR (XML Data Reduced)
Bazy danych umożliwiające korzystanie z XML Zwracanie rezultatów zapytań SQL w postaci XML FOR XML mode [, XMLDATA] [, ELEMENTS] [, BINARY BASE 64] mode • AUTO • RAW • EXPLICIT
Bazy danych umożliwiające korzystanie z XML select * from pracownicy for xml auto <pracownicy nrp="1" nazwisko="Jaworek" dataur="1956-02-28T00:00:00" pesel="56022812345"/> <pracownicy nrp="2" nazwisko="Grabski" dataur="1960-06-30T00:00:00" pesel="56063012345"/>
Bazy danych umożliwiające korzystanie z XML select * from pracownicy where nazwisko='Jaworek' for xml auto, elements <pracownicy> <nrp>1</nrp> <nazwisko>Jaworek</nazwisko> <dataur>1956-02-28T00:00:00</dataur> <pesel>56022812345</pesel> </pracownicy>
Bazy danych umożliwiające korzystanie z XML select * from pracownicy for xml raw <row nrp="1" nazwisko="Jaworek" dataur="1956-02-28T00:00:00" pesel="56022812345"/> <row nrp="2" nazwisko="Grabski" dataur="1960-06-30T00:00:00" pesel="56063012345"/>
Bazy danych umożliwiające korzystanie z XML Opcja EXPLICIT • Pozwala na zdefiniowanie formatu tworzonego dokumentu XML • Przy tworzeniu dokumentu wykorzystywana jest tymczasowa tablica pomocnicza Universal Table • Universal Table zawiera dwie kolumny określające hierarchię rodzic-dziecko dla wyznaczanych elementów
Bazy danych umożliwiające korzystanie z XML <Customer cid="C1" name="Janine"> <Order id="O1" date="1/20/1996"> <OrderDetail id="OD1" pid="P1"/> <OrderDetail id="OD2" pid="P2"/> </Order> <Order id="O2" date="3/29/1997"> ... </Customer>
Bazy danych umożliwiające korzystanie z XML select 1 as Tag, 0 as Parent, nazwisko as [Pracownicy!1!nazwisko] from pracownicy for xml explicit <Pracownicy nazwisko="Jaworek"/> <Pracownicy nazwisko="Grabski"/>
Bazy danych umożliwiające korzystanie z XML Kodowanie nazw kolumn w Universal Table [NazwaElementu!NumerZnacznika!NazwaAtrybutu!Dyrektywa] Dyrektywa • Typ atrybutu – ID, IDREF, IDREFS • hide • element Przykład [Pracownicy!1!nazwisko] [Pracownicy!1!nazwisko!element]
Bazy danych umożliwiające korzystanie z XML Wczytanie dokumentów XML do bazy danych OPENXML(iDoc, RowPattern, [Flags], [WITH (SchemaDeclaration | TableName)] • iDoc – uchwyt do reprezentacji dokumentu w pamięci • RowPattern – ścieżka XPath wskazująca jaka część dokumentu ma być przetwarzana
Bazy danych umożliwiające korzystanie z XML Wczytanie dokumentów XML do bazy danych OPENXML(iDoc, RowPattern, [Flags], [WITH (SchemaDeclaration | TableName)] • Flags • 0 –odwzorowanie atrybutów – wartość domyślna • 1 – odwzorowanie atrybutów • 2 – odwzorowanie elementów • 8 – odwzorowanie atrybutów lub elementów • WITH – docelowe miejsce składowania danych
Bazy danych umożliwiające korzystanie z XML EXEC sp_xml_preparedocument @rDoc OUTPUT, @sDoc INSERT Team (Sponsor) SELECT DISTINCT Sponsor FROM OPENXML (@rDoc, ‘ROOT/Team’, 1) WITH (Sponsor varchar(50) ‘@Sponsor’) EXEC sp_xml_removedocument @rDoc
Bazy danych dedykowane dla XML • Baza danych dedykowana dla XML (ang. Native XML database) • System o dedykowanym dla XML drzewiastym modelu danych, w którym podstawową składowaną jednostką logiczną jest dokument XML, a fizyczna implementacja systemu jest nieistotna • Baza dokumentów XML (ang. ΧΜL document database ) • Kolekcja dokumentów XML wraz z systemem zarządzającym kolekcją oraz informacją w niej zawartą
Bazy danych dedykowane dla XML Przykłady baz danych dedykowanych dla XML • Tamino • X-Hive • eXist • i inne
Bazy danych dedykowane dla XML - Tamino Model danych • „Natywny model XML” – pozwala na zarządzanie kolekcjami dokumentów oraz informacją w nich zawartą • Zapewnia równoważność dokumentów
Bazy danych dedykowane dla XML - Tamino Definicja danych • Dokument XML podstawową składowaną jednostką logiczną • Składowanie dokumentów w kolekcjach • Definiowanie struktury dokumentów przy pomocy schematów TSD • Indeksowanie dokumentów • Kontrola dostępu do danych z wykorzystaniem list uprawnień i grup użytkowników
Bazy danych dedykowane dla XML - Tamino Przetwarzanie danych • Wykorzystanie języka XQuery oraz X-Query • Transakcyjne przetwarzanie danych • Nakładanie blokad na poziomie całego dokumentu • Wykorzystanie transformacji XSLT
Bazy danych dedykowane dla XML –relacyjne bazy danych • Intensywny rozwój funkcjonalności pozwalającej na składowanie XML systemów zarządzania relacyjnymi bazami danych • Przykłady baz danych • Oracle 8i => Oracle 9i/10g • MS SQL Server 2000 => MS SQL Server 2005 • DB2 => DB2 Viper