252 Bazy danych. Praca z językiem XML



Podobne dokumenty
124 Bazy danych. Zaawansowane programowanie w T- SQL

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Optymalizacja bazy danych. Bazy danych 265

INFORMATOR TECHNICZNY WONDERWARE. Ograniczenie wyświetlania listy zmiennych w przeglądarce zmiennych ActiveFactory

Indeksy. Bazy danych 139

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

KURS ACCESS 2003 Wiadomości wstępne

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

15. Funkcje i procedury składowane PL/SQL

Relacyjne bazy danych. Podstawy SQL

Model semistrukturalny

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Relacyjne bazy danych a XML

Bazy danych - wykład wstępny

Bezpieczeństwo aplikacji. Bazy danych 237

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

Aplikacje WWW - laboratorium

Spis treści. Przedmowa

Tworzenie zapytań do Microsoft SQL Server

Oracle11g: Wprowadzenie do SQL

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

5. Administracja kontami uŝytkowników

XML extensible Markup Language 7

Cele. Definiowanie wyzwalaczy

Wyzwalacze. Bazy danych 201

Program Dokumenty zbiorcze dla Subiekta GT.

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Bazy danych. Polecenia SQL

Problemy techniczne SQL Server

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

Problemy techniczne SQL Server

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

170 Bazy danych. Perspektywy

Wykład I. Wprowadzenie do baz danych

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Zaawansowane aplikacje WWW - laboratorium

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

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

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

Przestrzenne bazy danych Podstawy języka SQL

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Microsoft SQL Server Podstawy T-SQL

Ćwiczenie 14 autoryzacja

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

XML w bazie danych IBM DB2

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

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

Język SQL, zajęcia nr 1

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Laboratorium nr 7. Temat: Podstawy języka zapytań SQL (część 1) 1. Wprowadzenie do laboratorium

Bazodanowe usługi sieciowe w technologii ASP.NET. dr inż. Tomasz Tatoń

System imed24 Instrukcja Moduł Analizy i raporty

SQL Server. Odtwarzanie baz danych.

Relacyjne bazy danych. Podstawy SQL

Konta uŝytkowników. Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

informatyka + Wymagania wstępne Podstawowa znajomość SQL Podstawowa znajomość SQL Server

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Instalacja oprogramowania Wonderware Application Server 3.0 na potrzeby Platformy Systemowej Wonderware

Program Zamiana towarów dla Subiekta GT.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Wykład 5: PHP: praca z bazą danych MySQL

Programowanie w Ruby

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Systemy GIS Tworzenie zapytań w bazach danych

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Szczegółowy opis zamówienia:

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

Bazy Danych i Usługi Sieciowe

Oracle PL/SQL. Paweł Rajba.

Aplikacje WWW - laboratorium

SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK

Bazy danych 2. Wykład 1

elektroniczna Platforma Usług Administracji Publicznej

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Technologia informacyjna

Alicja Marszałek Różne rodzaje baz danych

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Programowanie obiektowe

1 Instalowanie i uaktualnianie serwera SQL Server

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Wstęp INFORMATOR TECHNICZNY WONDERWARE. Wysyłanie wiadomości z programu Wonderware Historian. 1. Aktywowanie Database Mail

Administracja bazami danych

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Projektowanie systemów baz danych

Autor: Joanna Karwowska

OBSŁUGA TYPU DANYCH XML W MS SQL SERVER 2008

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Ustawianie lokalizacji dla indeksów Ustawianie lokalizacji dla indeksów spis kroków

Transkrypt:

252 Bazy danych Praca z językiem XML

Bazy danych 253 Przegląd zagadnień Przechowywanie danych w XML Wybieranie danych z XML Podsumowanie Laboratorium XML (ang. extensible Markup Language) jest językiem znaczników (jak HTML), w którym to programista decyduje o tym, jaka będzie struktura znaczników. W ostatnich latach XML zyskał ogromną popularność jako format idealny do wymiany danych między aplikacjami, nośnik konfiguracji aplikacji, format zapisu danych. Znajomość moŝliwości XML i standardów skojarzonych jest dziś właściwie niezbędna nie tylko w pracy z bazami danych, ale równieŝ z technologiami programistycznymi.

254 Bazy danych Przechowywanie danych w XML Format danych Problem z rozmiarem Walidacja W dzisiejszym świecie informacja jest przechowywana w róŝnych formatach. Jednym z dość często spotykanych formatów jest XML. Oznacza to, Ŝe SZBD powinny oferować moŝliwość zapisu w swoich strukturach (w swoich bazach danych) danych przemieszanych ze znacznikami XML.

Bazy danych 255 Format danych KaŜdy SZBD oferuje bogaty zestaw typów danych. Wśród tych typów moŝna znaleźć sporo typów przechowujących tekst. PoniewaŜ XML jest formatem tekstowym, moŝe być przechowywany jako tekst. Ale typ danych, który w bazach danych ma słuŝyć do przechowywania danych XML powinien charakteryzować się czymś więcej niŝ tylko moŝliwością zapisu znaczników i zaszytych w nich informacji. Jedną z podstawowych właściwości dokumentu XML jest wymóg, który mówi, Ŝe dokument XML musi być "well-formed". Oznacza to, Ŝe: dokument ma jeden element główny (ang. root), w którym zawarte są pozostałe elementy, pojedynczy znacznik nie zawiera dwóch atrybutów o takiej samej nazwie, wartości atrybutów powinny znaleźć się w ogranicznikach (cudzysłowy lub apostrofy), znaczniki nie powinny się "zazębiać". PoniŜszy listing ilustruje przykładowy poprawny dokument XML. <panstwa> <panstwo nazwa="polska"> <stolica>warszawa</stolica> <obszar>312680</obszar> <ludnosc>38456785</ludnosc> <glowne_miasta>wrocław</glowne_miasta> <glowne_miasta>gdańsk</glowne_miasta> <glowne_miasta>kraków</glowne_miasta> <glowne_miasta>poznań</glowne_miasta> </panstwo> <panstwo nazwa="niemcy"> <stolica>berlin</stolica> <obszar>356910</obszar> <ludnosc>81700000</ludnosc> <glowne_miasta>monachium</glowne_miasta> </panstwo> <panstwo nazwa="czechy"> <stolica>praga</stolica> <obszar>78703</obszar> <ludnosc>10300000</ludnosc> </panstwo> </panstwa> Idealny format do przechowywania danych XML powinien zapewniać automatyczną kontrolę poprawności zapisu danych.

256 Bazy danych Problem z rozmiarem Częstym problemem z przechowywaniem danych w formacie XML jest zbyt mały rozmiar typów danych w SZBD. Dla przykładu, w systemie Microsoft SQL Server 2000 standardowe typy danych pozwalają przechowywać tylko do 8000 bajtów tekstu, zaś formaty niestandardowe nie mogą być uŝywane do deklarowania zmiennych, przez co nie nadaje się do przetwarzania danych zapisanych w formacie XML. O wiele lepszym typem danych dysponuje następca wspomnianego systemu, Microsoft SQL Server 2005, w którym zaimplementowano typ xml, który pozwala zapisać do 2GB danych zapisanych w kontrolowanym formacie XML, dla którego moŝna równieŝ określić strukturę walidowaną przez schematy XML Schema. Walidacja Bardzo często struktura dokumentów XML jest w jednoznaczny sposób określona przy pomocy innych standardów, takich jak XML Schema czy DTD (and. Document Type Definition). Szczególnie XML Schema jest doskonałym formatem opisującym struktury XML. Idealnie zatem byłoby, gdyby SZBD umoŝliwiał wykorzystanie standardów walidujących XML do kontroli struktury danych zapisywanych w bazach danych.

Bazy danych 257 Wybieranie danych z XML XPath XQuery Indeksowanie danych przechowywanych w XML Dokument XML jest swego rodzaju bazą danych. KaŜdy dokument zapisany w tym formacie ma jednoznacznie określoną strukturę, która świetnie pasuje do przechowywania zarówno danych relacyjnych (danych o strukturze takiej, jaką mają relacyjne bazy danych), jak i danych obiektowych (danych odwzorowujących struktury z programowania obiektowego). Zdarza się, Ŝe dokumenty XML są pokaźne rozmiarowo, zaś uŝytkownikowi zaleŝy na stosunkowo niewielkim fragmencie danych z ich struktury. Wynika z tego, Ŝe typy danych, które miałyby słuŝyć do przechowywania danych XML powinny udostępniać mechanizmy wyszukiwania danych.

258 Bazy danych XPath XPath jest standardem, który pozwala lokalizować w dokumencie XML węzły, czyli elementy, atrybuty i tekst, jaki jest w elementach i atrybutach przechowywany. Standard ten jest wykorzystywany między innymi w dokumentach XSL (ang. extensible Stylesheet Language), które pozwalają na transformacje dokumentów XML do dowolnych formatów tekstowych (np. HTML). Dzięki XPath w dokumentach XSL programista moŝe zbudować szablony transformacji dla kaŝdego węzła dokumentu XML. W SZBD wyraŝenia XPath mogą być wykorzystywane przez róŝnego rodzaju mechanizmy wyszukujące dane w kolumnach zapisanych jako XML. XQuery XQuery jest standardem, który został dość niedawno opracowany przez konsorcjum W3C (konsorcjum to opracowało i rozwija takŝe standardy XML, XML Schema, XSL, XPath i inne) we współpracy z producentami SZBD (m.in. firmą Microsoft). Siłą XQuery jest to, Ŝe oprócz wykorzystania moŝliwości XPath jako języka do przeszukiwania dokumentów XML, standard ten oferuje takŝe szereg mechanizmów programistycznych, takich jak pętle czy instrukcje sterujące, co powoduje, Ŝe moŝna zaimplementować naprawdę zaawansowane wyszukiwania danych. I rzecz najwaŝniejsza, XQuery oferuje moŝliwość zagnieŝdŝenia składni przeszukujących struktury XML w zapytaniach SQL. PoniŜszy listing ilustruje proste zapytanie wykonane przy uŝyciu XQuery (przykład pochodzi z systemu Microsoft SQL Server 2005). DECLARE @x xml SET @x = '<ROOT><a>111</a></ROOT>' SELECT @x.query('/root/a') Indeksowanie danych przechowywanych w formacie XML W przypadku duŝych porcji danych zapisanych w formacie XML powstaje problem z optymalizacją procesu wybierania danych analogiczny jak ten, który zazwyczaj istnieje w relacyjnych bazach danych. Dlatego teŝ SZBD powinny oferować mechanizmy przyspieszające wyszukiwanie danych przechowywanych w formacie XML. Microsoft SQL Server 2005 oferuje specjalne typy indeksów, których zadaniem jest usprawnienie procesu przeszukiwania danych zapisanych w formacie XML w bazach danych. Indeksy te przyspieszają zarówno odnajdywanie zadanych elementów, jak i elementów zawierających określone wartości.

Bazy danych 259 Podsumowanie Przechowywanie danych w XML Wybieranie danych z XML Znajomość języka XML i standardów z nim stowarzyszonych jest w dzisiejszych czasach niezbędna z punktu widzenia programowania. XML znalazł tak wiele zastosowań, Ŝe trudno dziś wymienić platformę programistyczną czy serwer baz danych, który by nie wykorzystywał tego formatu do przechowywania czy przesyłania danych. I nic nie zapowiada, by ta sytuacja uległa zmianie.

260 Bazy danych Laboratorium

Bazy danych 261 Przechowywanie danych XML Microsoft SQL Server 2005 pozwala na zapisywanie danych w formacie XML w zmiennych lub kolumnach o typie danych xml, który pozwala zapisać do 2GB danych w formacie znaczników. Krok 1 - Tworzenie tabeli z kolumną typu XML Zaloguj się do maszyny wirtualnej ZBD jako uŝytkownik Administrator z hasłem P@ssw0rd. Kliknij Start. Z grupy programów Microsoft SQL Server 2005 uruchom SQL Server Management Studio. W oknie logowania kliknij Connect. Kliknij w menu głównym programu Management Studio na File. Kliknij Open - File. Odszukaj plik C:\Labs\Lab13\XML.sql i kliknij Open. Zaznacz kod, który tworzy tabelę Project, w której pojawia się kolumna Description typu xml (patrz kod poniŝej). USE AdventureWorks GO CREATE TABLE Project ( ProjectID int IDENTITY(1,1) PRIMARY KEY, Name nvarchar(50) NOT NULL, Description xml NULL ) GO Wciśnij F5, aby uruchomić zaznaczony fragment kodu. Krok 2 - Wstawienie danych XML Zaznacz kod, który wstawia przykładowy wiersz do tabeli Project (patrz kod poniŝej). INSERT Project VALUES ( N'My first project', '<project codename="sqlzone"> <deadline>2006-09-01</deadline> <price>30000</price> <hours>400</hours> </project>') Wciśnij F5, aby uruchomić zaznaczony fragment kodu. PowyŜszy kod wstawia do tabeli Project przykładowy rekord. Operacja zakończy się powodzeniem.

262 Bazy danych Krok 3 - Kontrola poprawności danych XML Zaznacz kod, który prezentuje próbę wstawienia niepoprawnych danych XML (patrz kod poniŝej). INSERT Project VALUES ( N'My second project', '<project codename="vixen"> <deadline>2006-12-31</deadline> <price>50000</price> <hours>500</hours> </PROJECT>') Wciśnij F5, aby uruchomić zaznaczony fragment kodu. PowyŜszy kod spowoduje błąd. Błąd wynika z oznaczonego na czerwono fragmentu kodu XML (XML rozróŝnia wielkość liter, zatem w powyŝszym kodzie jest podjęta próba zamknięcia znacznika, który nie został otwarty). Siłą typu danych xml jest to, Ŝe dane przed wstawieniem do kolumny tego typu są sprawdzane pod kątem dobrego formatowania kodu XML. Dodatkowo tworząc kolumnę lub zmienną tego typu moŝna określić schemat XSD (XML Schema), dzięki której wszystkie wstawiane dokumenty lub fragmenty dokumentów XML będą musiały mieć odpowiednią strukturę znaczników i atrybutów.

Bazy danych 263 Zapytania XQuery W systemie Microsoft SQL Server 2005 zaimplementowano zaawansowaną obsługę XML. Oprócz moŝliwości walidacji za pomocą XML Schema, uŝytkownicy mają moŝliwość formatowania wyników zapytań SELECT jako XML czy wyszukiwania fragmentów dokumentów XML za pomocą języka XQuery i standardu XPath. W tym ćwiczeniu zobaczysz przykładowe składnie formatujące wynik zapytania SELECT do formatu XML oraz wybierające fragment dokumentu XML za pomocą poleceń XQuery. Krok 1 - Zapytanie zwracające dokument XML Zaloguj się do maszyny wirtualnej ZBD jako uŝytkownik Administrator z hasłem P@ssw0rd. Kliknij Start. Z grupy programów Microsoft SQL Server 2005 uruchom SQL Server Management Studio. W oknie logowania kliknij Connect. Kliknij w menu głównym programu Management Studio na File. Kliknij Open - File. Odszukaj plik C:\Labs\Lab08\XQuery.sql i kliknij Open. Zaznacz kod, który wykonuje zapytanie z klauzulą FOR XML (patrz kod poniŝej). USE AdventureWorks GO SELECT DepartmentID [@DepartmentID], Name [Name] FROM HumanResources.Department WHERE DepartmentID < 3 FOR XML PATH('Department'), ROOT('Departments') Wciśnij F5, aby uruchomić zaznaczony fragment kodu. PowyŜsze zapytanie jest przykładem zapytania SELECT z klauzulą FOR XML i opcją PATH. Wynik jest określony w następujący sposób - zapytanie wybiera z tabeli HumanResources.Department rekordy, w kórych wartość w kolumnie Department ID jest mniejsza od 3, następnie zwrócone dane są formatowane do XML w taki sposób, Ŝe cały wynik jest ograniczony elementem <Departments>, zaś pojedynczy rekord jest reprezentowany znacznikiem <Department>, w którym znajdują się: atrybut DepartmentID oraz zagnieŝdŝony element Name. Aliasy na kolumny w zapytaniu SELECT pozwoliły określić połoŝenie danych i organizację znaczników oraz atrybutów. Składni SELECT... FOR XML oraz składni operujących na danych w formacie XML jest znacznie więcej. W Books Online znajdziesz opis następujących składni: - FOR XML AUTO, - FOR XML RAW, - FOR XML EXPLICIT, - funkcja OPENXML.

264 Bazy danych Krok 2 - Zapytanie XQuery Zaznacz kod, który wykonuje zapytanie XQuery (patrz kod poniŝej). DECLARE @zmienna XML SET @zmienna = ( SELECT DepartmentID [@DepartmentID], Name [Name] FROM HumanResources.Department WHERE DepartmentID < 3 FOR XML PATH('Department'), ROOT('Departments') ) SELECT @zmienna.query(' <SelectedDepartments> { for $i in /Departments/Department return <Department> {($i/name)} </Department> } </SelectedDepartments>') Wciśnij F5, aby uruchomić zaznaczony fragment kodu. PowyŜsze zapytanie jest przykładem uŝycia języka XQuery (funkcji query dostępnej dla pól i zmiennych typu xml). Wynik zapytania z kroku 1 zostaje zapisany do zmiennej typu xml, a następnie na tej zmiennej wykonane jest zapytanie za pomocą funkcji query. Funkcja ta wybiera tylko element Name (czyli eliminuje z kodu XML atrybut DepartmentID) i ogranicza wynik elementem SelectedDepartments. Typ xml dysponuje szeregiem funkcji (metod), które słuŝą nie tylko do wybierania podzestawów danych XML, ale takŝe do modyfikacji kodu XML. Przykłady takich funkcji to: value(), query(), modify(), nodes(). Ich szczegółowy opis wraz z przykładami znajdziesz w Books Online.