Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00095 009193 10485309 na godz. na dobę w sumie
SQL Server 2005. Zaawansowane rozwiązania biznesowe - książka
SQL Server 2005. Zaawansowane rozwiązania biznesowe - książka
Autor: , Liczba stron: 312
Wydawca: Helion Język publikacji: polski
ISBN: 83-246-1333-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> sql server
Porównaj ceny (książka, ebook, audiobook).

Zdobądź wiedzę o tworzeniu zaawansowanych aplikacji bazodanowych!

SQL Server 2005 to pierwsza wersja serwera, w której dane XML są przechowywane i przetwarzane faktycznie jako XML, a nie jako pochodne danych tekstowych lub binarnych, jak to było w wersjach poprzednich. W SQL Server 2005 możemy użyć typu danych XML jako kolumny, zmiennej lokalnej lub parametru. Możemy w niej przechowywać całe dokumenty XML lub tylko ich fragmenty (niezawierające elementu głównego, tzw. root node). Integracja z platformą Microsoft NET oraz ulepszone funkcje Business Intelligence pozwalają programistom na skupienie się na najważniejszych zadaniach, bez konieczności pracy w nieznanym środowisku, a przedsiębiorstwom dają możliwość przekształcania informacji w lepsze rozwiązania biznesowe.

Książka 'SQL Server 2005. Zaawansowane rozwiązania biznesowe' przedstawia jeden z najpopularniejszych serwerów bazodanowych służących do budowy różnych systemów informatycznych, czyli SQL Server 2005. Ten obszerny podręcznik zawiera szczegółowe informacje oraz przykłady dotyczące wielowymiarowych baz danych oraz wymagań, jakie mogą pojawić się podczas budowy mechanizmów ich zasilania danymi źródłowymi. Czytając go, dowiesz się, jak tworzyć efektywne i wydajne aplikacje oraz nauczysz się wdrażać nowatorskie pomysły, które każdemu przedsiębiorstwu przyniosą wymierne korzyści biznesowe.

Dowiedz się, jak tworzyć efektywne aplikacje bazodanowe i wdrażaj korzystne rozwiązania programistyczne dla biznesu!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

SQL Server 2005. Zaawansowane rozwi„zania biznesowe Autor: Igor Kruk, Artur Mo(cid:156)cicki ISBN: 978-83-246-1333-5 Format: 158x235, stron: 312 Zdob„d(cid:159) wiedzŒ o tworzeniu zaawansowanych aplikacji bazodanowych! (cid:149) Jak u¿ywa(cid:230) tabel tymczasowych do tworzenia specjalnych hierarchii? (cid:149) Do czego s‡u¿„ zmienne tablicowe? (cid:149) Na czym polega konwertowanie danych relacyjnych do formatu XML? SQL Server 2005 to pierwsza wersja serwera, w kt(cid:243)rej dane XML s„ przechowywane i przetwarzane faktycznie jako XML, a nie jako pochodne danych tekstowych lub binarnych, jak to by‡o w wersjach poprzednich. W SQL Server 2005 mo¿emy u¿y(cid:230) typu danych XML jako kolumny, zmiennej lokalnej lub parametru. Mo¿emy w niej przechowywa(cid:230) ca‡e dokumenty XML lub tylko ich fragmenty (niezawieraj„ce elementu g‡(cid:243)wnego, tzw. root node). Integracja z platform„ Microsoft NET oraz ulepszone funkcje Business Intelligence pozwalaj„ programistom na skupienie siŒ na najwa¿niejszych zadaniach, bez konieczno(cid:156)ci pracy w nieznanym (cid:156)rodowisku, a przedsiŒbiorstwom daj„ mo¿liwo(cid:156)(cid:230) przekszta‡cania informacji w lepsze rozwi„zania biznesowe. Ksi„¿ka (cid:132)SQL Server 2005. Zaawansowane rozwi„zania biznesowe(cid:148) przedstawia jeden z najpopularniejszych serwer(cid:243)w bazodanowych s‡u¿„cych do budowy r(cid:243)¿nych system(cid:243)w informatycznych, czyli SQL Server 2005. Ten obszerny podrŒcznik zawiera szczeg(cid:243)‡owe informacje oraz przyk‡ady dotycz„ce wielowymiarowych baz danych oraz wymagaæ, jakie mog„ pojawi(cid:230) siŒ podczas budowy mechanizm(cid:243)w ich zasilania danymi (cid:159)r(cid:243)d‡owymi. Czytaj„c go, dowiesz siŒ, jak tworzy(cid:230) efektywne i wydajne aplikacje oraz nauczysz siŒ wdra¿a(cid:230) nowatorskie pomys‡y, kt(cid:243)re ka¿demu przedsiŒbiorstwu przynios„ wymierne korzy(cid:156)ci biznesowe. (cid:149) Perspektywy (cid:149) Procedury i funkcje (cid:149) Wyzwalacze (cid:149) Dynamiczny SQL (cid:149) Tabele tymczasowe i zmienne tablicowe (cid:149) Transakcje i wyj„tki w aplikacjach biznesowych (cid:149) Full Text Search (cid:149) XML (cid:149) Database Mail (cid:149) Rozwi„zania biznesowe (cid:149) Integracja z .NET i CLR (cid:149) SQL Server Integration Services Dowiedz siŒ, jak tworzy(cid:230) efektywne aplikacje bazodanowe i wdra¿aj korzystne rozwi„zania programistyczne dla biznesu! Wydawnictwo Helion ul. Ko(cid:156)ciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Spis treĈci Wstöp .............................................................................................. 9 Rozdziaä 1. Perspektywy .................................................................................. 11 WstĊp .............................................................................................................................. 11 Informacje ogólne ........................................................................................................... 11 Sortowanie danych w perspektywie ............................................................................... 16 OdĞwieĪanie perspektyw ................................................................................................ 18 Opcje perspektywy ......................................................................................................... 21 ENCRYPTION ......................................................................................................... 21 SCHEMABINDING ................................................................................................ 22 CHECK OPTION ........................................................................................................... 23 Perspektywy indeksowane .............................................................................................. 25 Podsumowanie ................................................................................................................ 28 Rozdziaä 2. Procedury i funkcje ........................................................................ 29 WstĊp .............................................................................................................................. 29 Ogólne informacje na temat funkcji skáadowanych ........................................................ 29 Wywoáywanie funkcji a efektywnoĞü zapytaĔ ................................................................ 32 UĪywanie funkcji w ograniczeniach ............................................................................... 34 Funkcje a ograniczenie DEFAULT .......................................................................... 34 Funkcje a ograniczenie UNIQUE ............................................................................. 36 Funkcje a ograniczenie PRIMARY KEY ................................................................. 37 Funkcje a ograniczenie CHECK ............................................................................... 37 Funkcje uruchamiane dla kaĪdego wiersza ..................................................................... 38 Funkcje typu inline table-valued ..................................................................................... 39 Funkcje typu multi-statement table-valued ..................................................................... 41 Praktyczny przykáad — obliczanie opóĨnieĔ .................................................................. 45 KorzyĞci wynikające z zastosowania funkcji .................................................................. 52 Ogólne informacje o procedurach skáadowanych ........................................................... 52 Parametry wejĞciowe procedury ..................................................................................... 55 Parametry wyjĞciowe procedury ..................................................................................... 56 Klauzula EXECUTE AS w procedurach ........................................................................ 57 Praktyczny przykáad — alokacja samochodów na zasoby osobowe ............................... 58 Podsumowanie ................................................................................................................ 65 6 SQL Server 2005. Zaawansowane rozwiñzania biznesowe Rozdziaä 3. Wyzwalacze ................................................................................... 67 WstĊp .............................................................................................................................. 67 Informacje ogólne ........................................................................................................... 67 Wyzwalacze typu AFTER .............................................................................................. 68 Tabele INSERTED i DELETED .................................................................................... 69 Identyfikacja rodzaju wyzwalacza .................................................................................. 70 Nieuruchamianie wyzwalaczy dla konkretnych instrukcji SQL ..................................... 72 CONTEXT_INFO — kontekst sesji w SQL Server 2005 .............................................. 73 Rekurencyjne i zagnieĪdĪone wywoáywanie wyzwalaczy .............................................. 75 Funkcja COLUMNS_UPDATED i predykat UPDATE — selektywne wywoáywanie wyzwalaczy ................................................................... 78 Wyzwalacze INSTEAD OF ............................................................................................ 80 Operacje wykonywane w wyzwalaczu na wybranych wierszach ................................... 82 Wyzwalacze i perspektywy ............................................................................................ 85 Wyzwalacze uruchamiane na poziomie bazy danych ..................................................... 87 Wyzwalacze uruchamiane na poziomie serwera baz danych .......................................... 91 Podsumowanie ................................................................................................................ 92 Rozdziaä 4. Dynamiczny SQL ............................................................................. 93 WstĊp .............................................................................................................................. 93 Informacje ogólne ........................................................................................................... 93 EXEC ............................................................................................................................. 94 EXEC AT ....................................................................................................................... 99 sp_executesql ................................................................................................................ 100 Limit instrukcji ............................................................................................................. 102 Sp_executesql i ustawienia Ğrodowiskowe ................................................................... 102 Dynamiczne filtry ......................................................................................................... 103 Wstrzykiwanie SQL ..................................................................................................... 105 Dynamiczny pivot danych ............................................................................................ 110 Podsumowanie .............................................................................................................. 113 Rozdziaä 5. Tabele tymczasowe i zmienne tablicowe ....................................... 115 WstĊp ............................................................................................................................ 115 Informacje ogólne o tabelach tymczasowych ............................................................... 115 Globalne tabele tymczasowe ........................................................................................ 118 Zmienne tablicowe ....................................................................................................... 118 Baza tempdb ................................................................................................................. 120 WyraĪenia tablicowe .................................................................................................... 121 Podsumowanie .............................................................................................................. 122 Rozdziaä 6. Transakcje i wyjñtki w aplikacjach biznesowych ............................ 123 WstĊp ............................................................................................................................ 123 Informacje ogólne o transakcjach ................................................................................. 123 Blokady ........................................................................................................................ 125 Poziomy izolacji ........................................................................................................... 129 Poziom izolacji READ UNCOMMITTED ............................................................. 130 Poziom izolacji READ COMMITTED .................................................................. 131 Poziom izolacji SNAPSHOT ................................................................................. 132 Poziom izolacji READ COMMITTED SNAPSHOT ............................................. 134 Podsumowanie poziomów izolacji ......................................................................... 134 Poziomy zapisywania ................................................................................................... 134 Zakleszczenia ............................................................................................................... 135 Obsáuga báĊdów w aplikacjach biznesowych ................................................................ 137 Transakcje a obsáuga báĊdów ........................................................................................ 139 Podsumowanie .............................................................................................................. 140 Spis treĈci 7 Rozdziaä 7. Full-Text Search ........................................................................... 141 WstĊp ............................................................................................................................ 141 Usáuga Full-Text Search ............................................................................................... 142 Tworzenie, modyfikowanie i usuwanie katalogu typu Full-Text .................................. 143 Tworzenie katalogu Full-Text z wykorzystaniem kreatora .................................... 145 Tworzenie katalogu Full-Text z poziomu kodu T-SQL .......................................... 147 Modyfikowanie katalogu Full-Text ........................................................................ 148 Usuwanie katalogu Full-Text ................................................................................. 148 Tworzenie, modyfikowanie i usuwanie indeksów typu Full-Text ................................ 149 Tworzenie indeksu Full-Text z wykorzystaniem kreatora ...................................... 149 Tworzenie indeksu Full-Text z poziomu kodu T-SQL ........................................... 152 Modyfikowanie indeksu Full-Text ......................................................................... 153 Usuwanie indeksu Full-Text ................................................................................... 155 Noise Files .................................................................................................................... 155 Uzyskiwanie metadanych o katalogach i indeksach Full-Text ..................................... 155 Podstawowe wyszukiwanie informacji ......................................................................... 156 Polecenie CONTAINS ................................................................................................. 156 Wyszukiwanie podstawowe ................................................................................... 157 Wyszukiwanie z wykorzystaniem wieloznaczników .............................................. 158 Wyszukiwanie wedáug bliskoĞci wystąpienia sáów ................................................ 158 Wyszukiwanie z wykorzystaniem form fleksyjnych .............................................. 159 Wyszukiwanie z wykorzystaniem tezaurusa .......................................................... 159 Wyszukiwanie wedáug wagi sáów .......................................................................... 160 Polecenie FREETEXT .................................................................................................. 161 Polecenie CONTAINSTABLE ..................................................................................... 162 Polecenie FREETEXTABLE ....................................................................................... 163 Wyszukiwanie informacji w plikach PDF .................................................................... 164 Podsumowanie .............................................................................................................. 166 Rozdziaä 8. XML ............................................................................................ 167 WstĊp ............................................................................................................................ 167 Informacje o formacie XML ......................................................................................... 168 Przechowywanie danych XML w SQL Server 2005 .................................................... 168 Sprawdzanie poprawnoĞci danych XML przy uĪyciu schematów ................................ 170 Metody dostĊpu do danych XML i ich obsáugi ............................................................. 173 Metoda exist ........................................................................................................... 173 Metoda query ......................................................................................................... 174 Metoda value .......................................................................................................... 174 Metoda nodes ......................................................................................................... 175 Metoda modify ....................................................................................................... 176 Konwertowanie danych relacyjnych do formatu XML ................................................. 178 Polecenie FOR XML .............................................................................................. 178 Polecenie OPENXML ............................................................................................ 187 Podsumowanie .............................................................................................................. 190 Rozdziaä 9. Database Mail .............................................................................. 191 WstĊp ............................................................................................................................ 191 Aktywowanie usáugi Database Mail ............................................................................. 192 Konfigurowanie usáugi Database Mail ......................................................................... 192 Testowanie usáugi Database Mail ................................................................................. 198 Wysyáanie wiadomoĞci e-mail ...................................................................................... 199 Monitorowanie usáugi Database Mail ........................................................................... 203 Dodatkowe procedury związane z usáugą Database Mail ............................................. 205 Podsumowanie .............................................................................................................. 205 8 SQL Server 2005. Zaawansowane rozwiñzania biznesowe Rozdziaä 10. Rozwiñzania biznesowe ................................................................. 207 WstĊp ............................................................................................................................ 207 Pobieranie elementów z hierarchii wymiaru Parent-Child ............................................ 207 Rekurencyjne pobieranie elementów wymiarów .......................................................... 215 Generowanie tabeli wymiaru Multilevel na podstawie Parent-Child ............................ 221 Alternatywne hierarchie ............................................................................................... 230 Pobieranie informacji o tygodniach z przedziaáu czasowego ....................................... 233 Automatyczne wykrywanie nowych elementów wymiarów ......................................... 236 Szybki mechanizm odnajdowania zwielokrotnionych rekordów .................................. 238 Optymalizacja wstawiania danych i wiĊzy integralnoĞci .............................................. 238 Algorytm przeliczania danych koĔcowych, Ğrednich i przyrostowych z akumulacji MTD na QTD i YTD ............................................................................ 240 Wykorzystanie jĊzyka MDX .................................................................................. 241 Typy zasilanych danych ......................................................................................... 242 Podsumowanie .............................................................................................................. 244 Rozdziaä 11. Integracja z .NET i CLR ................................................................. 245 WstĊp ............................................................................................................................ 245 Co to jest .NET i CLR? ................................................................................................ 246 Na czym polega integracja SQL Server 2005 z CLR? .................................................. 247 Kiedy uĪywaü obiektów CLR? ..................................................................................... 248 Schemat uĪywania obiektów CLR ................................................................................ 249 Wáączenie obsáugi obiektów CLR w SQL Server 2005 ................................................ 250 Przykáady obiektów CLR ............................................................................................. 251 UDF typu Scalar ..................................................................................................... 251 UDF typu Table-Value ........................................................................................... 257 User-Defined Trigger ............................................................................................. 263 User-Defined Type ................................................................................................. 267 User-Defined Aggregate ......................................................................................... 273 Zarządzanie obiektami ASSEMBLY ............................................................................ 277 Pobieranie metadanych o obiektach ASSEMBLY ................................................. 277 Zmiana poziomu zabezpieczeĔ ............................................................................... 279 Usuwanie obiektów ASSEMBLY .......................................................................... 280 Podsumowanie .............................................................................................................. 280 Rozdziaä 12. SQL Server Integration Services .................................................... 281 WstĊp ............................................................................................................................ 281 Business Intelligence Development Studio ................................................................... 282 Architektura .................................................................................................................. 282 Control Flow ................................................................................................................. 282 Kontenery ............................................................................................................... 283 Zadania ................................................................................................................... 283 Procedury przepáywu zadaĔ ................................................................................... 286 Data Flow ..................................................................................................................... 286 ħródáa ..................................................................................................................... 287 Transformacje ........................................................................................................ 287 Destinations ............................................................................................................ 290 Event Handlers ............................................................................................................. 290 Variables ................................................................................................................ 291 Deployment .................................................................................................................. 291 BezpieczeĔstwo SSIS ................................................................................................... 296 Migracja DTS 2000 do SSIS 2005 ............................................................................... 297 Logowanie .................................................................................................................... 297 Podsumowanie .............................................................................................................. 299 Skorowidz ....................................................................................................... 301 Rozdzia� 8. XML Wst�p SQL Server 2005 to pierwsza wersja serwera, w której dane XML s� przechowywane i przetwarzane faktycznie jako XML, a nie jako pochodne danych tekstowych lub bi- narnych, jak to by�o w poprzednich wersjach serwera. Za�adowanie danych XML np. w SQL Server 2000 by�o stosunkowo proste, jednak ju� dost�p do tych danych, mo- dyfikowanie i wyszukiwanie konkretnych obiektów wymaga�y z�o�onych operacji. SQL Server 2000 umo�liwia� wykonanie tylko dwóch polece� zwi�zanych z obs�ug� formatu XML: � OPENXML — umo�liwia za�adowanie dokumentu XML do pami�ci SQL Servera, a nast�pnie utworzenie z niego zbioru rekordów relacyjnych. � FOR XML — umo�liwia zapis danych relacyjnych, b�d�cych wynikiem zapytania SQL do postaci XML. Wkrótce po dacie premiery SQL Server 2000 Microsoft zrozumia�, �e jego najnowsza platforma bazodanowa nie wspiera obs�ugi danych i formatu XML na tyle, by sprosta� oczekiwaniom i wymaganiom biznesowych u�ytkowników i twórców aplikacji w tym zakresie. Widz�c, jak wa�nym formatem w �wiecie biznesowych aplikacji bazoda- nowych sta� si� XML, Microsoft chcia� za wszelk� cen� zwi�kszy� jego integracj� z SQL Server 2000. Jednak po oficjalnej premierze serwera firma mog�a zaproponowa� tylko darmowe dodatki — pakiety, które rozszerza�y SQL Server w tym zakresie. Pierw- szym takim pakietem by� SQLXML (XML for SQL Server), który dostarcza� m.in. na- rz�dzia do bardzo szybkiego wczytywania danych XML. Kolejnym pakietem by� MSXML (Microsoft XML Core Services), który zawiera� m.in. parser XML. Ju� wtedy jasne by�o, �e w kolejnej wersji SQL Server musi nast�pi� rewolucja w podej�ciu do formatu XML. Integracj� XML z SQL Server 2005 nale�y rozpatrywa� w nast�puj�cych obszarach: � nowy typ danych XML, � ograniczenia w kolumnach typu XML, 168 SQL Server 2005. Zaawansowane rozwi�zania biznesowe � XML Schema Collection, � metody dost�pu i obs�ugi danych XML. Powy�szym zagadnieniom po�wi�cony zosta� ten rozdzia� ksi��ki. Zanim jednak zaj- miemy si� szczegó�ami tych zagadnie�, przypomnijmy sobie podstawowe informacje na temat danych, plików i formatu XML. Informacje o formacie XML Skrót XML pochodzi od Extensible Markup Language (z ang.: rozszerzalny j�zyk znacz- ników). J�zyk ten s�u�y do �atwego przechowywania i wymiany danych pomi�dzy ró�nymi aplikacjami, systemami i platformami. Format XML jest obecnie wykorzysty- wany w wielu obszarach informatycznych. Swoj� popularno�� zawdzi�cza temu, �e jest stosunkowo prosty do zrozumienia oraz �e zapisywany jest w postaci plików teksto- wych. Czyni go to bardzo �atwo edytowalnym. Niew�tpliw� zalet� formatu XML jest tak�e fakt, �e umo�liwia on separacj� warstwy danych od warstwy prezentacji. �atwo zrozumie� to przy porównaniu go z j�zykiem HTML, w którym poszczególne tagi okre�laj�, w jaki sposób zawarte w pliku dane s� prezentowane. XML tak�e sk�ada si� z tagów (elementów), jednak w tym przypadku opisuj� one przechowywane dane, nie mówi�c nic na temat ich prezentacji w aplikacjach czy przegl�darce. O ile w HTML mamy do dyspozycji zdefiniowany zbiór tagów, np. b Igor Kruk /b , w XML definiu- jemy w�asne tagi na potrzeby danych, które chcemy w tym pliku zapisa�, np. FirstName �Igor Kruk /FirstName . Tak jak w HTML poszczególne tagi maj� swoje opcje, np. font color= black , tak te� w XML do elementów przypisywane s� atrybuty, które lepiej opisuj� te elementy. W poni�szym przyk�adzie przechowuj�cym dane o klien- tach u�yte zosta�y atrybuty Gender (z ang.: p�e�) i Name (z ang.: nazwisko): Clients Client Genre= M Name= FirstClient / Client Genre= F Name= SecondClient / ... /Clients Przechowywanie danych XML w SQL Server 2005 W SQL Server 2005 mo�emy u�y� typu danych XML jako kolumny, zmiennej lokalnej lub parametru. W kolumnie tego typu mo�emy przechowywa� ca�e dokumenty XML lub tylko ich fragmenty (niezawieraj�ce elementu g�ównego, tzw. root node). Typu da- nych XML u�ywamy w taki sam sposób jak innych typów. Poni�szy przyk�ad tworzy tabel� myMixes, w której b�dziemy przechowywa� dane na temat muzycznych mega- miksów. W kolumnie Title zapisany b�dzie tytu� miksu, kolumna Tracklist b�dzie za� przechowywa�a list� utworów w formacie XML: Rozdzia� 8. � XML 169 CREATE TABLE myMixes (MixID int IDENTITY(1,1) PRIMARY KEY, Title varchar(255) NOT NULL, Tracklist XML NULL) Wstawimy teraz dane do utworzonej tabeli. W pierwszym przyk�adzie wykorzystana zosta�a instrukcja INSERT, w której dane s� wstawiane jako zwyk�y tekst i zamieniane przy u�yciu funkcji CAST na typ XML. INSERT INTO myMixes (Title, Tracklist) VALUES ( Party_Beats_Vol.2_mixed_by_Raven , CAST( Mix Tracks Track id= 1 Raven - Intro /Chapter Track id= 2 Track02 – Title02 /Chapter Track id= 3 Track03 – Title03 /Chapter Track id= 4 Track04 – Title 04 /Chapter /Tracks /Mix as XML ) ) W drugim przyk�adzie deklarujemy zmienn� mixInfo typu XML, przypisujemy jej war- to��, a nast�pnie wstawiamy przy u�yciu polecenia INSERT do tabeli myMixes: DECLARE @mixInfo XML SET @mixInfo = CAST( Mix Tracks Track id= 1 Raven - Intro /Track Track id= 2 Track02 – Title02 /Track Track id= 3 Track03 – Title03 /Track Track id= 4 Track04 – Title 04 /Track /Tracks /Mix as XML ) INSERT INTO myMixes (Title, Tracklist) VALUES ( Orange_Dance_mixed_by_Raven , @mixInfo) W obydwu przyk�adach dane zosta�y jawnie skonwertowane na typ XML. Podczas tej konwersji SQL Server wykona� tylko podstawowe sprawdzenie, czy dane maj� format XML, np. czy wszystkie tagi otwieraj�ce maj� odpowiednie tagi zamykaj�ce. Nie spraw- dza natomiast, czy maj� one okre�lon� — oczekiwan� przez nas —struktur�. W powy�- szych przyk�adach struktura danych XML zak�ada�a istnienie elementów Mix, Tracks i Track z atrybutem id. Gdyby�my podj�li prób� wstawienia do tabeli myMixes danych XML w innej strukturze, SQL Server nie zg�osi�by b��du, bo nie wie tak naprawd�, jaka powinna by� struktura wstawianych danych. Do wprowadzania ogranicze� na dane XML s�u�� schematy XML. 170 SQL Server 2005. Zaawansowane rozwi�zania biznesowe Sprawdzanie poprawno�ci danych XML przy u�yciu schematów Schematy XML (XML Schema Difinition) przechowywane s� w plikach XSD. Zawieraj� one informacje, jak powinien wygl�da� poprawny plik XML zwi�zany z danym sche- matem. Schematy XML mog� by� wykorzystywane przez SQL Server 2005 do kontro- lowania poprawno�ci danych XML podczas ich dodawania i modyfikowania. Schematy XML s� przechowywane w SQL Server 2005 jako obiekty. List� wszystkich dost�pnych schematów XML otrzymamy, wykonuj�c poni�sze zapytanie: SELECT * FROM sys.XML_schema_collections Tworzenie obiektów danych typu XML wymaga zdefiniowania w bazie danych zbiorów schematów. S�u�y do tego instrukcja CREATE XML SCHEMA COLLECTION. Instrukcja ta tworzy zbiór schematów mog�cy sk�ada� si� z jednego lub wi�cej schematów, z któ- rych ka�dy opisuje jedn� przestrze� nazw. Sk�adnia tego polecenia jest nast�puj�ca: CREATE XML SCHEMA COLLECTION [ relational_schema . ]sql_identifier AS Expression Polecenie przyjmuje dwa parametry. Pierwszy to unikalna nazwa schematu, drugi to jego definicja. List� dost�pnych w bazie danych schematów XML znajdziemy w lokalizacji: Nazwa bazy danych/Programmability/Types/XML Schema Collections. Zobaczmy jeden przyk�adowy schemat Production.ManuInstructionsSchemaCollection z bazy AdventureWorks: xsd:schema xmlns:xsd= http://www.w3.org/2001/XMLSchema xmlns:t= http://schemas. �microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions targetNamespace= http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ �ProductModelManuInstructions elementFormDefault= qualified xsd:element name= root xsd:complexType mixed= true xsd:complexContent mixed= true xsd:restriction base= xsd:anyType xsd:sequence xsd:element name= Location maxOccurs= unbounded xsd:complexType mixed= true xsd:complexContent mixed= true xsd:restriction base= xsd:anyType xsd:sequence xsd:element name= step type= t:StepType maxOccurs= unbounded / /xsd:sequence xsd:attribute name= LocationID type= xsd:integer use= required / xsd:attribute name= SetupHours type= xsd:decimal / xsd:attribute name= MachineHours type= xsd:decimal / Rozdzia� 8. � XML 171 xsd:attribute name= LaborHours type= xsd:decimal / xsd:attribute name= LotSize type= xsd:decimal / /xsd:restriction /xsd:complexContent /xsd:complexType /xsd:element /xsd:sequence /xsd:restriction /xsd:complexContent /xsd:complexType /xsd:element xsd:complexType name= StepType mixed= true xsd:complexContent mixed= true xsd:restriction base= xsd:anyType xsd:choice minOccurs= 0 maxOccurs= unbounded xsd:element name= tool type= xsd:string / xsd:element name= material type= xsd:string / xsd:element name= blueprint type= xsd:string / xsd:element name= specs type= xsd:string / xsd:element name= diag type= xsd:string / /xsd:choice /xsd:restriction /xsd:complexContent /xsd:complexType /xsd:schema W powy�szym schemacie znajdziemy definicj� elementu Location: xsd:element name= Location maxOccurs= unbounded Elementowi temu przypisany jest atrybut LocationID: xsd:attribute name= LocationID type= xsd:integer use= required / Parametr use= required oznacza, �e atrybut ten musi wyst�pi� w pliku XML powi�- zanym z tym schematem. Parametr type= xsd:integer oznacza, �e atrybut LocationID musi by� typu ca�kowitoliczbowego. Spróbujmy teraz utworzy� now� tabel� zawieraj�c� kolumn� typu XML, do której przypiszemy omawiany schemat. Nast�pnie przetestujemy dzia�anie sprawdzania po- prawno�ci wstawianych danych XML przez ten schemat. Poni�sze polecenie T-SQL tworzy tabel� o nazwie TEST sk�adaj�c� si� z dwóch kolumn: identyfikatora wiersza i danych w formacie XML. Do tabeli przypisywany jest schemat Production.ManuInstructionsSchemaCollection. CREATE TABLE dbo.TEST ( rowID int IDENTITY(1,1) PRIMARY KEY, dane XML (Production.ManuInstructionsSchemaCollection) NULL ) Pierwszy przyk�ad wstawia do tabeli TEST dane XML zgodne z ca�ym schematem Production.ManuInstructionsSchemaCollection: 172 SQL Server 2005. Zaawansowane rozwi�zania biznesowe INSERT INTO TEST (dane) VALUES ( CAST( t:root xmlns:t= http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ �ProductModelManuInstructions t:Location LotSize= 0.0 SetupHours= 0.0 LocationID= 1 MachineHours= 0.0 �LaborHours= 0.0 t:step t:tool String /t:tool /t:step /t:Location /t:root AS XML)) Je�li dok�adnie przeanalizowaliby�my tre�� wcze�niej omawianego schematu, znale�- liby�my odwo�ania do wszystkich elementów z powy�szego przyk�adu. W kolejnym przyk�adzie atrybutowi LocationID przypiszemy warto�� tekstow� — nie- zgodn� ze schematem: INSERT INTO TEST (dane) VALUES ( CAST( t:root xmlns:t= http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ �ProductModelManuInstructions t:Location LotSize= 0.0 SetupHours= 0.0 LocationID= tekst MachineHours= 0.0 �LaborHours= 0.0 t:step t:tool String /t:tool /t:step /t:Location /t:root AS XML)) Próba wykonania tego polecenia zako�czy si� nast�puj�cym komunikatem o b��dzie, informuj�cym, �e warto�� atrybutu LocationID jest niepoprawna: XML Validation: Invalid simple type value: tekst . Location: /*:root[1]/ �*:Location[1]/@*:LocationID W kolejnym przyk�adzie pominiemy definicj� wszystkich atrybutów elementu Location. INSERT INTO TEST (dane) VALUES ( CAST( t:root xmlns:t= http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ �ProductModelManuInstructions t:Location t:step t:tool String /t:tool /t:step /t:Location /t:root AS XML)) Przy próbie wykonania tego polecenia dostaniemy nast�puj�cy komunikat: XML Validation: Required attribute LocationID is missing. Location: /*:root[1]/ �*:Location[1] Rozdzia� 8. � XML 173 Zwró�my uwag�, �e SQL Server 2005 informuje, �e brak tylko atrybutu LocationID. Nie wspomina natomiast nic o pozosta�ych atrybutach: LotSize, SetupHours, MachineHours, LaborHours. Wynika to z tego, �e atrybuty te nie maj� w definicji schematu Production. �ManuInstructionsSchemaCollection parametru use= required . Jak zauwa�yli�my w powy�szych przyk�adach, dzi�ki przypisywaniu schematów XML do kolumn tego typu mamy mo�liwo�� automatycznej weryfikacji poprawno�ci wstawia- nych i modyfikowanych danych. Przedstawione w tym rozdziale informacje dotycz�ce schematów XML obejmuj� tylko cz��� tej tematyki. Zainteresowanych tematem sche- matów XML odsy�amy na stron� http://www.w3.org/XML/Schema. Metody dost�pu do danych XML i ich obs�ugi W SQL Server 2005 dost�pnych jest pi�� metod umo�liwiaj�cych operowanie na danych typu XML. S� to: � exist, � nodes, � query, � value, � modify. Metody exist, nodes, query, value zalicza si� do j�zyka XQuery, który s�u�y do wyszu- kiwania informacji w danych typu XML. Przyjrzyjmy si� teraz bli�ej poszczególnym metodom. Metoda exist Metoda exist pozwala sprawdzi�, czy w danych XML istnieje okre�lony obiekt. Zwraca ona warto�� 1 (True), gdy obiekt znajduje si� w danych XML, w przeciwnym razie zwracana jest warto�� 0 (False). Pos�u�my si� omawianym wcze�niej schematem XML i sprawd�my, czy w tabeli test w kolumnie dane znajduje si� element Location z atry- butem LocationID o warto�ci 1. Poni�sze polecenie T-SQL wykonuje to sprawdzenie: SELECT * FROM test WHERE dane.exist( declare namespace t= http://schemas.microsoft.com/sqlserver/ �2004/07/adventure-works/ProductModelManuInstructions ; /t:root/t:Location[@LocationID=1] ) = 1 Zwró�my uwag� na konstrukcj� tego polecenia. Metoda exist jest wykonywana na kolumnie dane, któr� wcze�niej zdefiniowali�my jako typu XML. W nawiasie znajduje si� deklaracja przestrzeni nazw t, a nast�pnie odwo�anie do danych w postaci /rodzic/ potomek[atrybut]. 174 SQL Server 2005. Zaawansowane rozwi�zania biznesowe Nale�y tak�e zaznaczy�, �e w powy�szym przyk�adzie adres URL w deklaracji prze- strzeni nazw musi znajdowa� si� w jednym wierszu. W ksi��ce zosta� z�amany ze wzgl�- du na ograniczenia w druku. Metoda query Wykorzystuj�c metod� query oraz poprawnie zdefiniowane zapytanie XQuery, mamy �atwy dost�p do danych XML. Metoda pobiera fragment danych XML i zwraca je w postaci tekstowej, a nie XML. W poni�szym przyk�adzie odwo�ujemy si� do bazy AdventureWorks i tabeli Production.ProductionModel. Pobierane s� elementy steps z danych XML dla wiersza z identyfikatorem 10. SELECT ProductModelID, Instructions.query( declare namespace t= http://schemas.microsoft.com/ �sqlserver/2004/07/adventure-works/ProductModelManuInstructions ; /t:root/t:Location/t:step ) AS Steps FROM Production.ProductModel WHERE ProductModelID = 10 Deklarowanie przestrzeni nazw wewn�trz zapytania T-SQL wp�ywa negatywnie na jego czytelno��. Lepszym rozwi�zaniem jest wykorzystanie polecenia WITH NAMESPACE (). Powy�sze zapytanie b�dzie wygl�da� teraz nast�puj�co: WITH XMLNAMESPACES ( http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ �ProductModelManuInstructions AS t) SELECT ProductModelID, Instructions.query( /t:root/t:Location/t:step ) AS Steps FROM Production.ProductModel WHERE ProductModelID = 10 Metoda value Metoda value s�u�y do pobierania konkretnych warto�ci elementów lub ich atrybutów w postaci jednego z podstawowych typów danych, np. int, varchar. Metoda ta przyj- muje dwa argumenty. Pierwszy to poprawnie skonstruowane polecenie XQuery, drugi za� to nazwa podstawowego typu danych, w którym maj� by� zwrócone wyniki. Do- zwolone s� wszystkie typy danych oprócz XML, image, text, ntext, timestamp oraz typów zdefiniowanych przez u�ytkownika. Wykorzystajmy ponownie tabel� Production.ProductModel z bazy AdventureWorks. Za�ó�my, �e chcemy uzyska� warto�� atrybutu LotSize, drugiego elementu Location dla wiersza z identyfikatorem 10. Zapytanie mo�e wygl�da� tak jak poni�ej (dla czytel- no�ci i przejrzysto�ci zapytania ponownie zastosowali�my polecenie WITH NAMESPACE): WITH XMLNAMESPACES ( http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ �ProductModelManuInstructions AS t) SELECT ProductModelID, Instructions.value( (/t:root/t:Location/@LotSize)[2] , decimal (5,2) ) AS Location FROM Production.ProductModel WHERE ProductModelID = 10 Rozdzia� 8. � XML 175 W wyniku otrzymujemy jeden wiersz: ProductModelId Location 10 1.00 Ca�y czas pami�tajmy, �e adres URL w deklaracji przestrzeni nazw musi znajdowa� si� w jednym wierszu. Je�li taka konwersja nie b�dzie mo�liwa, SQL Server 2005 zg�osi b��d. W poni�szym przyk�adzie chcemy uzyska� warto�� elementu material i nada� jej dziesi�tny typ danych: WITH XMLNAMESPACES ( http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ �ProductModelManuInstructions AS t) SELECT ProductModelID, Instructions.value( (/t:root/t:Location/t:step/t:material)[2] , decimal (5,2) ) AS Location FROM Production.ProductModel WHERE ProductModelID = 10 Przy próbie wykonania tego polecenia dostaniemy komunikat o b��dzie: Error converting data type nvarchar to numeric. Wynika to z faktu, �e warto�� elementu material ma posta� tekstow�. Zatem w po- prawnym zapytaniu zwracanej warto�ci mo�e by� przypisany typ danych varchar. Przed- stawia to poni�szy przyk�ad: WITH XMLNAMESPACES ( http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ �ProductModelManuInstructions AS t) SELECT ProductModelID, Instructions.value( (/t:root/t:Location/t:step/t:material)[2] , varchar(255) ) AS Material FROM Production.ProductModel WHERE ProductModelID = 10 W wyniku otrzymujemy jeden wiersz: ProductModelId Material 10 Acme Polish Cream Metoda nodes Metoda nodes umo�liwia przekszta�cenie danych typu XML w dane o strukturze rela- cyjnej. Dla ka�dego wyst�pienia odpowiednio zdefiniowanego w zapytaniu XQuery elementu tworzony jest oddzielny wiersz w wynikowej tabeli relacyjnej. Wró�my do przyk�adu z tego rozdzia�u dotycz�cego danych XML o megamiksach. W poni�szym przyk�adzie w pierwszej kolejno�ci definiowane s� dane w postaci XML. Nast�pnie w zapytaniu T-SQL metoda nodes konwertuje ka�de wyst�pienie elementu Track na posta� relacyjn� — jednego wiersza w tabeli Tab w kolumnie Col. W klauzuli SELECT pos�u�ymy si� poznan� wcze�niej metod� value do uzyskania warto�ci ka�dego elementu: 176 SQL Server 2005. Zaawansowane rozwi�zania biznesowe DECLARE @mixInfo XML SET @mixInfo = CAST( Mix Tracks Track id= 1 Raven - Intro /Track Track id= 2 Track02 – Title02 /Track Track id= 3 Track03 – Title03 /Track Track id= 4 Track04 – Title 04 /Track /Tracks /Mix as XML ) SELECT Tab.Col.value( . , varchar(255) ) AS tracklist FROM @mixInfo.nodes( /Mix/Tracks/Track ) as Tab(Col) Wynikiem zapytania s� cztery wiersze: tracklist Raven - Intro Track02 – Title02 Track03 – Title03 Track04 – Title 04 Zwró�my uwag�, �e gdyby�my nie u�yli w klauzuli SELECT jednej z XML-owych metod (exist, query, value) i spróbowali wykona� nast�puj�ce zapytanie: SELECT * FROM @mixInfo.nodes( /Mix/Tracks/Track ) as Tab(Col) to SQL Server zwróci�by komunikat o b��dzie: The column Col that was returned from the nodes() method cannot be used directly. �It can only be used with one of the four XML datatype methods exist(), nodes(), �query(), and value() or in IS NULL and IS NOT NULL checks. Metoda modify Metoda modify jest rozszerzeniem opracowanym przez firm� Microsoft do j�zyka XQuery i nazwanym XML Data Manipulation Language — XML DML. Standardowe metody j�zyka XQuery, omówione wcze�niej w tym rozdziale, s�u�� tylko do pobierania informa- cji z XML. Metoda modify, jako jedyna, umo�liwia modyfikowanie danych XML. XML DML udost�pnia nowe polecenia: � insert, � delete, � replace value of. Do modyfikowania danych XML b�dziemy wykorzystywa� standardowe polecenie UPDATE, w którym wykorzystamy metod� modify z jednym z powy�szych polece�.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

SQL Server 2005. Zaawansowane rozwiązania biznesowe
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: