1 / 91

Agenda

Agenda. Podstawy XML Historia XML w pigułce Struktura dokumentu XML XML a bazy danych Alternatywa dla relacyjnych baz danych? XML w SQL Server 2008 Klauzula FOR XML polecenia SELECT Typ danych „XML” Metody typu „XML” Korzystanie z XML Schema Podsumowanie. informatyka +. 2.

tevin
Download Presentation

Agenda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agenda • Podstawy XML • Historia XML w pigułce • Struktura dokumentu XML • XML a bazy danych • Alternatywa dla relacyjnych baz danych? • XML w SQL Server 2008 • Klauzula FOR XML polecenia SELECT • Typ danych „XML” • Metody typu „XML” • Korzystanie z XML Schema • Podsumowanie informatyka + 2

  2. Wymagania wstępne • Podstawowa znajomość SQL • Podstawowa znajomość SQL Server • Podstawowa znajomość dowolnego języka opartego o znaczniki (XML, HTML itp.) • Chęć do nauki ;-) informatyka + 3

  3. Agenda • Podstawy XML • Historia XML w pigułce • Struktura dokumentu XML • XML a bazy danych • Alternatywa dla relacyjnych baz danych? • XML w SQL Server 2008 • Klauzula FOR XML polecenia SELECT • Typ danych „XML” • Metody typu „XML” • Korzystanie z XML Schema • Podsumowanie informatyka + 4

  4. Wstęp i historia XML • lata ‘60 - poszukiwanie standardu dla dokumentów drukarskich • 1978 - ANSI rozpoczyna prace nad norma • 1983 - szósta wersja - SGML - staje się standardem Urzędu Kontroli Skarbowej USA • 1969 - IBM zaproponowali GML wraz z hierarchiczna struktura oznaczeń

  5. Wstęp i historia XML 1985 - SGML standardem Komisji UE oraz Departamentu Obrony USA 1986 SGML w wersji ISO 9979:1986 Dziś mamy nowe standardy ISO oraz HTML, XML, XSL i inne - wszystko na podstawie założeń GML/SGML

  6. Rozwój języków uogólnionego znakowania tekstu • 1969: GML – Generalized Markup Language(IBM; Goldfarb, Mosher, Laurie). • 1986: SGML – Standard Generalized Markup Language, ISO 8879:1986. • 1991: powstaje World Wide Web. • 1994: HTML 2.0 zdefiniowany jako zastosowanie SGML-a. • 1998: XML – Extensible Markup Language,World Wide Web Consortium.

  7. Cele jakie sobie założono przy tworzeniu XML • XML powinien być bezpośrednio używalny w Internecie. • XML powinien wspierać wiele różnorodnych aplikacji. • XML powinien być kompatybilny z SGML-em. • Pisanie programów przetwarzających dokumenty XML powinno być proste. • Liczba opcjonalnych cech XML-a powinna być ograniczana do absolutnego minimum, najlepiej zera. • Dokumenty XML powinny być czytelne dla ludzi i przejrzyste. • Projekt XML-a powinien zostać przygotowany szybko. • Projekt XML-a powinien być formalny i zwięzły. • Dokumenty XML powinny być łatwe do stworzenia.

  8. Cechy języka XML • XML nie jest nowy – powstało wiele aplikacji ,systemów , publikacji dotyczących tego języka • XML jest językiem tekstowym(dokumenty XML są plikami tekstowymi) • XML jest rozszerzalny – można dodawać własne znaczniki i tworzyć własne standardy • XML jest elastyczny - łatwo można zmieniać strukturę dokumentu XML • XML jest międzynarodowy – zalecane jest stosowanie standardu Unicode • XML sam się opisuje – nazwy znaczników mogą interpretować zawartość

  9. Cechy języka XML • XML to rodzina języków i technologii – ilość standardów związanych z XML ciągle rośnie • XML jest standardem otwartym • XML jest nielicencjonowany!!!!!! • XML jest niezależny od platformy sprzętowej i programowej • XML jest łatwy w użyciu (chociaż początki mogą być trudne) • XML może być sformalizowany poprzez definicje DTD lub XSD • XML jest hierarchiczny - co umożliwia modelowanie złożonych struktur

  10. Agenda • Podstawy XML • Historia XML w pigułce • Struktura dokumentu XML • XML a bazy danych • Alternatywa dla relacyjnych baz danych? • XML w SQL Server 2008 • Klauzula FOR XML polecenia SELECT • Typ danych „XML” • Metody typu „XML” • Korzystanie z XML Schema • Podsumowanie informatyka + 11

  11. Reguły tworzenia dokumentów XML • Dokument XML składa się z elementów, które mogą zawierać atrybuty wraz z ich wartościami, tekst oraz inne elementy • Dokument XML musi zawierać dokładnie jeden element główny (tzw. root), który zawiera w sobie pozostałe elementy • Element składa się ze znaczników (otwierającego i zamykającego): <kodPocztowy> …zawartość …</kodPocztowy > <budynek/> (brak zawartości – można stosować skróconą formę ) • Elementy mogą być zagnieżdżone: <email><wartosc> Jan </wartosc></email> • Elementy nie mogą się „przecinać”: <email><wartosc> Jan </email></wartosc> informatyka + 12

  12. Reguły tworzenia dokumentów XML c.d. • Elementy mogą zawierać atrybuty, które muszą posiadać wartość (ujętą w apostrofy lub cudzysłów): <wartosctypKomunikatora="Skype"> janekNowak </wartosc> • Wielkość liter ma znaczenie <budynek>124A</Budynek> • Do wykorzystania w treści dokumentu w miejscu znaków specjalnych (mogących powodować problemy z interpretacją dokumentu) przeznaczono tzw. encje: • &lt; zastępującą znak < • &gt; zastępującą znak > • &quot; zastępującą znak ” • &apos; zastępującą znak ‘ • &amp; zastępującą znak & Błąd informatyka + 13

  13. Reguły tworzenia dokumentów XML c.d. • Dokument spełniający wszystkie wymagania odnośnie swojej struktury jest dokumentem poprawnie sformułowanym (well formed document) • Z racji prostoty reguł – łatwo jest stworzyć narzędzie weryfikujące poprawność sformułowania dokumentu. Istnieje wiele takich narzędzi (parserów XML) • Jeżeli chcemy oprócz samej składni narzucić dodatkowe reguły, to trzeba skorzystać z dodatkowych technologii i narzędzi. • DTD (Document Type Definition) • XML Schema • Relax NG • Parsery walidujące • Jeżeli dokument XML jest poprawnie sformułowany i spełnia wymagania opisane w DTD lub XML Schema to jest dokumentem poprawnym (valid document) informatyka + 14

  14. Agenda • Podstawy XML • Historia XML w pigułce • Struktura dokumentu XML • XML a bazy danych • Alternatywa dla relacyjnych baz danych? • XML w SQL Server 2008 • Klauzula FOR XML polecenia SELECT • Typ danych „XML” • Metody typu „XML” • Korzystanie z XML Schema • Podsumowanie informatyka + 15

  15. XML alternatywą dla relacyjnych baz danych ? Jeśli patrzeć na to od strony teoretycznej – czemu nie? • Hierarchiczna struktura oraz stosowanie atrybutów pozwala modelować relacje • XML Schema pozwala modelować dodatkowe ograniczenia • Modelowanie może być bardziej pracochłonne i nie każdy rodzaj ograniczeń da się zaimplementować informatyka + 16

  16. XML alternatywą dla relacyjnych baz danych ? C.d. • W praktyce jednak pojawiają się problemy • Wzrost rozmiaru pliku -> spadek wydajności • Jednoczesny dostęp wielu użytkowników do pliku • Transakcyjność i odporność na awarie • Zamiast alternatywy – uzupełnienie możliwości baz danych • Przechowywanie danych o zróżnicowanej strukturze • Zwracanie wyników zapytań w formie XML • Manipulowanie zawartością XML informatyka + 17

  17. Wynik wojny XML-SQL • Pomimo tego, że XML jest pewną alternatywą dla relacyjnych baz danych – wybrano najlepsze rozwiązanie Dwie konkurencyjne technologie „zmuszono” do współpracy! informatyka + 18

  18. Przykład uproszczenia schematu relacyjnej bazy danych z wykorzystaniem XML Fragment poprawnie zaprojektowanej relacyjnej bazy danych! informatyka + 19

  19. Przykład uproszczenia schematu relacyjnej bazy danych z wykorzystaniem XML Schemat dokumentu XML zawierającego opis adresów i kontaktów! informatyka + 20

  20. Przykład uproszczenia schematu relacyjnej bazy danych z wykorzystaniem XML A może uprościć to tak !!!!!!! Kolumna typu XML przechowująca dane zgodne ze schematem XML pokazanym na wcześniejszym slajdzie … i zamiast pięciu tabel mamy tylko jedną - i wszystkie potrzebne dane mogą być zapisane informatyka + 21

  21. Agenda • Podstawy XML • Historia XML w pigułce • Struktura dokumentu XML • XML a bazy danych • Alternatywa dla relacyjnych baz danych? • XML w SQL Server 2008 • Klauzula FOR XML polecenia SELECT • Typ danych „XML” • Metody typu „XML” • Korzystanie z XML Schema • Podsumowanie informatyka + 22

  22. Struktura bazy danych dla dalszych przykładów Zaznaczone kolumny są typu XML i będą przechowywać złożone dane informatyka + 23

  23. Dane w postaci XML potrzebne od zaraz… • Problem : Jak pobrać z bazy danych informacje od razu w postaci XML? • A po co akurat XML? • Bo aplikacja potrafi takie dane od razu przetworzyć • Bo takie są wymagania biznesowe naszego klienta • Bo system, z którym współpracujemy potrafi pracować tylko z danymi XML • Bo łatwo takie dane potem przetworzyć na dowolna inna potrzebną postać (HTML, PDF, RTF, SVG …) • Ok. Wiemy po co. Ale jak? • Klauzula XML w zapytaniu SELECT:) informatyka + 24

  24. Klauzula FOR XML polecenia SELECT • Dodana do dowolnego polecenia SELECT powoduje zwrócenie jego wyniku w formie dokumentu lub fragmentu dokumentu XML • Kilka trybów generowania XML • RAW • AUTO • EXPLICIT • PATH • Tryby RAW i AUTO dają możliwość generowania wartości kolumn jako atrybutów lub elementów • Tryby EXPLICIT i PATH dają największe możliwości • Tryb XPATH korzysta z wyrażeń języka XPath • Tryb EXPLICIT korzysta z tabeli uniwersalnej informatyka + 25

  25. Dane do obróbki – lista klientów • W przykładowej bazie mamy tabelę z danymi klientów • Załóżmy, że chcemy zwrócić właśnie te dane. Nic prostszego: informatyka + 26

  26. No tak. Ale potrzebujmy te dane w postaci XML! • Nie ma problemu – skorzystamy z klauzuli FOR XML • Zaczniemy od najprostszego wariantu : FOR XML RAW informatyka + 27

  27. Oooops! To nie jest dokument XML! • Klauzula FOR XML RAW zwróciła nam fragment dokumentu XML. • Nie do końca nadaje się on do dalszej obróbki po stronie aplikacji, gdyż żaden szanujący się parser nie przymknie oka na brak elementu głównego! <dane> </dane> informatyka + 28

  28. Klauzula FOR XML RAW z opcją ROOT • Oczywiście da się to poprawić • Zmieńmy jeszcze „row” na coś milszego dla oka… informatyka + 29

  29. Klauzula FOR XML RAW z opcją ROOT • Opcja RAW także dopuszcza podanie w nawiasie nazwy elementu informatyka + 30

  30. Klauzula FOR XML RAW z opcją ELEMENTS • Aplikacja potrzebuje elementów a nie atrybutów! Co wtedy? informatyka + 31

  31. Klauzula FOR XML RAW to za mało ! • FOR XML Raw jest OK, ale potrzebujemy nieco więcej możliwości! • Jak generować dokument XML z hierarchią elementów? • Np.: lista klientów i ich zamówień • Odpowiedź : klauzula FOR XML AUTO • Domyślnie generuje dla wiersza element o nazwie takiej jak tabela • Dla kolumn tworzone są atrybuty o nazwach takich jako kolumny • Przeznaczona do zapytań operujących na wielu tabelach • Potrafi tworzyć proste hierarchie (heurystycznie poprzez analizowanie kolejnych wierszy i porównywanie wartości kolumn) • Obsługuje wszystkie opcje omawiane przy FOR XML RAW informatyka + 32

  32. Klauzula FOR XML AUTO - przykład Wpływa na hierarchię! informatyka + 33

  33. Klauzula FOR XML AUTO - przykład Tym razem po ID zamówienia informatyka + 34

  34. Coraz więcej możliwości:) Co jeszcze da się zrobić? • Da się zrobić wszystko. Kwestia czasu i nakładu pracy. • Do tej pory podejście do generowania XML polegało na: • Dodaniu do DOWOLNEGO zapytania klauzuli FOR XML (AUTO lub RAW) • Skorzystaniu z ich opcji do „dopracowania” postaci dokumentu • Gdy to za mało – sięgamy po FOR XML EXPLICIT • Specjalnie skonstruowane zapytanie • Złożona konstrukcja. • Trudne modyfikowanie • Ogromne możliwości informatyka + 35

  35. Klauzula FOR XML EXPLICIT • Największe możliwości w zakresie budowania złożonych struktur XML • Precyzyjne wymagania co do struktury wyniku zapytania, które ma być przetworzone na XML (tabela uniwersalna) • Skomplikowany mechanizm definiowania tabeli uniwersalnej dla uzyskania konkretnej struktury XML informatyka + 36

  36. Klauzula FOR XML EXPLICIT • Spróbujmy sklecić przykład (podobny do tego z trybu AUTO) informatyka + 37

  37. Klauzula FOR XML EXPLICIT • Rezultat zapytania z poprzedniego slajdu (bez klauzuli FOR XML): informatyka + 38

  38. Klauzula FOR XML EXPLICIT • Rezultat zapytania z poprzedniego slajdu (z klauzulą FOR XML): informatyka + 39

  39. Klauzula FOR XML EXPLICIT – fajna ale żmudna • Jest jakiś sposób na uniknięcie jej stosowania? • TAK:) Klauzula FOR XML PATH • O wiele przyjemniejsza w stosowaniu • Porównywalne możliwości • Łatwiejsze modyfikowanie (znacznie lepsza czytelność zapytań) • Wady? A owszem… • Trzeba poznać język XPath (chociaż trochę) informatyka + 40

  40. Klauzula FOR XML PATH i język XPath • Język XPath służy do wskazywania węzłów lub grup węzłów w dokumencie XML • Wyrażenia XPath można porównać do ścieżek w systemie plików. Wyrażenie: \dane\adres\pocztowy\ulica wskazuje na katalog ulica i jego zawartość. informatyka + 41

  41. Klauzula FOR XML PATH i język XPath <dane> <adres> <email> <wartosc>jan.nowak@pocza.pl</wartosc> </email> </adres> <adres> <pocztowy> <kodPocztowy>00-950</kodPocztowy> <miejscowosc>Warszawa</miejscowosc> <ulica>Marszałkowska</ulica> <budynek>23</budynek> <lokal>1</lokal> </pocztowy> </adres> </dane> Wyrażenie: /dane/adres/pocztowy/ulica wskazuje na element ulica i jego zawartość. informatyka + 42

  42. Klauzula FOR XML PATH i język XPath • Przykłady wyrażeń XPath • /dane/adres/email[2]/wartosc • Element „wartosc” drugiego elementu „email” będącego dzieckiem elementu „adres”, będacego dzieckiem elementu głównego „dane” • //email • Elementy „email” występujące w dowolnym miejscu w dokumencie • //adres/*/@typ • Atrybuty „@typ” dowolnych elementów będących dziećmi elementu „adres” • /dane/adres/*[@typ=‘skype’]/text() • Zawartośc tekstowa dowolnego elementu, który ma atrybut „typ” o wartości „skype”, będącego dzieckiem elementu adres, będącego dzieckiem elementu głównego „dane” informatyka + 43

  43. Klauzula FOR XML PATH • Kompromis pomiędzy możliwościami a prostotą korzystania • Znacznie łatwiejsza od EXPLICIT • Pozwala na definiowanie złożonych struktur przy wykorzystaniu odpowiednich nazw kolumn (przypominających wyrażenia XPath) • Pozwala na zagnieżdżanie zapytań i uzyskiwanie tą droga złożonej struktury XML • Istotna jest kolejność kolumn (najpierw te definiujące atrybuty, potem kolejne elementy) • Możliwość wykorzystania znaku * (gwiazdka) jako nazwy kolumny informatyka + 44

  44. Klauzula FOR XML PATH • Obsługuje opcje znane z trybu RAW i AUTO • Istotna jest kolejność kolumn w zapytaniu (najpierw atrybuty, potem elementy) informatyka + 45

  45. Klauzula FOR XML PATH Opcja TYPE! informatyka + 46

  46. Klauzula FOR XML PATH – przykład 2 informatyka + 47

  47. Klauzula FOR XML – inne opcje • Wszystkie warianty klauzuli FOR XML zawierają jeszcze jedną istotna opcję – TYPE • Pozwala ona na traktowanie zwróconej wartości jako zmiennej typu XML, co ułatwia zagnieżdżanie wyniku zapytania w innym i budowanie złożonych hierarchii • Podobna sytuacja występuje przy opcji XSNIL. Powoduje ona ,że w przypadku gdy element ma wartość null to i tak będzie umieszczony w wynikowym dokumencie informatyka + 48

  48. Agenda • Podstawy XML • Historia XML w pigułce • Struktura dokumentu XML • XML a bazy danych • Alternatywa dla relacyjnych baz danych? • XML w SQL Server 2008 • Klauzula FOR XML polecenia SELECT • Typ danych „XML” • Metody typu „XML” • Korzystanie z XML Schema • Podsumowanie informatyka + 49

  49. Typ danych XML • Kolumna w tabeli może być typu XML • Pozwala na przechowanie bezpośrednio dokumentu XML o wielkości do 2 GB • Z kolumną można skojarzyć kolekcję dokumentów XML Schema definiujących dopuszczalną zawartość kolumny XML (walidacja zgodności z XML Schema-mi) • Typed XML (skojarzony z kolekcją XML Schema) może zapewnić większą wydajność ze względu na określenie typów danych oraz często mniejszy rozmiar pliku wynikowego • Dokument nie jest przechowywany w oryginalnej postaci (normalizacja)! • Do XML Schema wrócimy pod koniec wykładu informatyka + 50

More Related