Praktyczny przewodnik po SQL Server 2005
dla programistów i administratorów baz danych
Jakie nowe funkcje oferuje SQL Server 2005?
Jak zintegrować system bazodanowy z .NET?
Jak wykorzystać możliwości SQL Server 2005 w otoczeniu biznesowym?
Każda nowa wersja SQL Server zawiera coraz więcej funkcji i udostępnia nowe możliwości. Tak też jest w przypadku SQL Server 2005, który ma nie tylko ulepszony system zarządzania bazami danych, ale również zabezpieczania ich. System ten oferuje rozszerzenia języka T-SQL przydatne zarówno programistom, jak i administratorom, umożliwia integrację baz z platformą .NET, a także posiada znacznie bardziej rozbudowane funkcje do manipulowania danymi XML. SQL Server 2005 wyposażony został też w wiele innych mechanizmów pozwalających zwiększyć produktywność w pracy z bazami danych i zapewnić ich lepsze funkcjonowanie.
Książka 'SQL Server 2005' to przegląd usprawnień najnowszej wersji tego systemu bazodanowego napisany przez profesjonalistów dla profesjonalistów. Dowiesz się z niej, jak w praktyce wykorzystać możliwości SQL Server 2005. Nauczysz się tworzyć rozbudowane raporty przy użyciu Raporting Services, przeprowadzać analizy danych za pomocą Analysis Services, automatyzować zadania, dodawać do baz danych obiekty platformy .NET oraz stosować wygodne funkcje do obsługi danych w formacie XML.
Zarządzanie SQL Server 2005 za pomocą SSMS
Korzystanie z rozszerzeń języka T-SQL
Integrowanie baz danych z .NET
Zastosowania formatu XML w SQL Server 2005
Raportowanie przy użyciu Raporting Services
Analizowanie danych za pomocą Analysis Services
Zabezpieczanie baz danych
Kolejkowanie komunikatów przy użyciu Service Broker
Obsługa powiadomień za pomocą Notification Services
Automatyzowanie zadań
Darmowy fragment publikacji:
SQL Server 2005
Autorzy: Thomas Rizzo, Adam Machanic, Robin
Dewson, Rob Walters, Joseph Sack, Julian Skin
T³umaczenie: Daniel Kaczmarek, Daniel Lehun
ISBN: 978-83-246-0555-2
Tytu³ orygina³u: Pro SQL Server 2005 (Pro)
Format: B5, stron: 816
Praktyczny przewodnik po SQL Server 2005
dla programistów i administratorów baz danych
• Jakie nowe funkcje oferuje SQL Server 2005?
• Jak zintegrowaæ system bazodanowy z .NET?
• Jak wykorzystaæ mo¿liwoœci SQL Server 2005 w otoczeniu biznesowym?
Ka¿da nowa wersja SQL Server zawiera coraz wiêcej funkcji i udostêpnia nowe
mo¿liwoœci. Tak te¿ jest w przypadku SQL Server 2005, który ma nie tylko ulepszony
system zarz¹dzania bazami danych, ale równie¿ zabezpieczania ich. System ten oferuje
rozszerzenia jêzyka T-SQL przydatne zarówno programistom, jak i administratorom,
umo¿liwia integracjê baz z platform¹ .NET, a tak¿e posiada znacznie bardziej
rozbudowane funkcje do manipulowania danymi XML. SQL Server 2005 wyposa¿ony
zosta³ te¿ w wiele innych mechanizmów pozwalaj¹cych zwiêkszyæ produktywnoœæ
w pracy z bazami danych i zapewniæ ich lepsze funkcjonowanie.
Ksi¹¿ka „SQL Server 2005” to przegl¹d usprawnieñ najnowszej wersji tego systemu
bazodanowego napisany przez profesjonalistów dla profesjonalistów. Dowiesz siê z niej,
jak w praktyce wykorzystaæ mo¿liwoœci SQL Server 2005. Nauczysz siê tworzyæ
rozbudowane raporty przy u¿yciu Raporting Services, przeprowadzaæ analizy danych za
pomoc¹ Analysis Services, automatyzowaæ zadania, dodawaæ do baz danych obiekty
platformy .NET oraz stosowaæ wygodne funkcje do obs³ugi danych w formacie XML.
• Zarz¹dzanie SQL Server 2005 za pomoc¹ SSMS
• Korzystanie z rozszerzeñ jêzyka T-SQL
• Integrowanie baz danych z .NET
• Zastosowania formatu XML w SQL Server 2005
• Raportowanie przy u¿yciu Raporting Services
• Analizowanie danych za pomoc¹ Analysis Services
• Zabezpieczanie baz danych
• Kolejkowanie komunikatów przy u¿yciu Service Broker
• Obs³uga powiadomieñ za pomoc¹ Notification Services
• Automatyzowanie zadañ
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
O autorach ..................................................................................... 15
O redaktorach technicznych ........................................................... 19
Wprowadzenie ................................................................................ 21
Rozdział 1. Przegląd funkcji i instalacja SQL Servera ......................................... 27
Historia rozwoju SQL Servera ........................................................................................ 27
Przegląd funkcji SQL Servera 2005 ................................................................................ 28
Wydania .................................................................................................................... 30
Funkcje ...................................................................................................................... 31
Instalacja .......................................................................................................................... 35
Minimalne wymagania systemowe ........................................................................... 35
Proces instalacji ......................................................................................................... 37
Rejestracja serwera .................................................................................................... 47
Przykładowe bazy danych ......................................................................................... 49
Instalacja dwóch równoległych instancji .................................................................. 50
Uaktualnianie baz danych SQL Servera 2000 i 7.0 ......................................................... 51
Podsumowanie ................................................................................................................. 51
Rozdział 2. Technologie zarządzania SQL Serverem ........................................... 53
Łączenie się z SQL Serverem i zarządzanie nim ............................................................ 54
Menu kontekstowe dla każdego typu obiektów ........................................................ 54
Obsługa mobilnych baz danych ................................................................................ 54
Obsługa SQL Servera 2000 ....................................................................................... 56
Nowe funkcje interfejsu użytkownika ............................................................................. 57
Asynchroniczny widok drzewa i filtrowanie obiektów ............................................. 57
Niemodalne okna dialogowe o zmiennym rozmiarze ............................................... 58
Nowe funkcje generowania skryptów i harmonogramów zadań .............................. 58
Autoryzacja kodu ...................................................................................................... 60
Panel wyników .......................................................................................................... 62
Activity Monitor ........................................................................................................ 62
Widoki Summary ...................................................................................................... 63
Rozszerzenia funkcjonalne .............................................................................................. 63
Dedykowane połączenie administracyjne ................................................................. 64
Wizualizacja zakleszczeń .......................................................................................... 65
Korelacja monitora Performance Monitor ................................................................ 65
Import i eksport danych dotyczących zarejestrowanych serwerów .......................... 68
Maintenance Plan Designer ....................................................................................... 68
6
SQL Server 2005
Zmiany w agencie SQL Server Agent ....................................................................... 69
Database Mail ............................................................................................................ 69
Widoki katalogowe oraz dynamiczne widoki zarządcze .......................................... 71
Domyślny ślad serwera ............................................................................................. 73
Rozszerzenia narzędzia Profiler ................................................................................ 74
SQL Configuration Manager ..................................................................................... 75
Surface Area Configurator ........................................................................................ 76
Rozszerzona pomoc oraz integracja ze społecznością użytkowników SQL Servera ... 77
SQLCMD ......................................................................................................................... 78
Server Management Objects ............................................................................................ 80
Podsumowanie ................................................................................................................. 84
Rozdział 3. Rozszerzenia T-SQL dla programistów .............................................. 85
Rozszerzenia mające wpływ na DML ............................................................................. 86
Unieważnienie przestarzałego stylu złączeń zewnętrznych ...................................... 87
Wspólne wyrażenia tabelowe .................................................................................... 88
Operator TOP ............................................................................................................ 97
Rozszerzenia klauzuli FROM ................................................................................. 101
OUTPUT ................................................................................................................. 111
Funkcje rankingowe ................................................................................................ 112
EXCEPT i INTERSECT ......................................................................................... 119
Synonimy ................................................................................................................ 122
Ogólne programowanie ................................................................................................. 123
Obsługa błędów ....................................................................................................... 124
Rozszerzenie .WRITE instrukcji UPDATE ............................................................ 132
EXECUTE ............................................................................................................... 134
Kontekst zabezpieczeń kodu ................................................................................... 134
Deklaracje .NET ...................................................................................................... 138
Podsumowanie ............................................................................................................... 139
Rozdział 4. Rozszerzenia T-SQL dla administratorów baz danych ...................... 141
Widoki metadanych ....................................................................................................... 141
Widoki zgodności .................................................................................................... 142
Widoki katalogowe ................................................................................................. 143
Dynamiczne widoki i funkcje zarządcze ................................................................. 145
Procedury wyzwalane DDL ........................................................................................... 146
Tworzenie i zmienianie procedur wyzwalanych DDL ............................................ 147
Usuwanie procedur wyzwalanych DDL ................................................................. 149
Udostępnianie i blokowanie procedur wyzwalanych DDL ..................................... 149
Odczytywanie procedur wyzwalanych DDL w widokach katalogowych .............. 149
Programowanie procedur wyzwalanych DDL przy użyciu funkcji eventdata() ..... 150
Rozszerzenia w zakresie indeksowania i wydajności .................................................... 152
Indeksowanie online ................................................................................................ 153
Kontrola blokowania w trakcie tworzenia indeksów .............................................. 154
Tworzenie indeksów z dołączonymi dodatkowymi kolumnami ............................. 155
Modyfikowanie indeksów ....................................................................................... 156
Używanie statystyk dla skorelowanych kolumn DATETIME ................................ 160
Zwiększanie wydajności sortowania dla trzeciorzędnych ustawień sortowania ..... 161
Partycjonowanie tabel i indeksów ................................................................................. 163
Funkcje partycjonowania ........................................................................................ 164
Schematy partycjonowania ..................................................................................... 165
Tworzenie partycjonowanych tabel i indeksów ...................................................... 165
Dodawanie i usuwanie partycji ............................................................................... 166
Modyfikowanie funkcji i schematów partycjonowania .......................................... 168
Spis treści
7
Dołączanie i usuwanie tabel z partycji .................................................................... 169
Zarządzanie partycjami tabel i indeksów ................................................................ 170
Rozszerzenia tabel i widoków ....................................................................................... 171
Rozszerzenia w widokach indeksowanych ............................................................. 171
Stałe kolumny obliczane ......................................................................................... 172
Migawki ......................................................................................................................... 173
Poziom izolacji transakcji SNAPSHOT .................................................................. 173
Migawki baz danych ............................................................................................... 178
Rozszerzenia w zakresie integralności danych .............................................................. 180
Weryfikacja stron bazy danych ............................................................................... 180
Przełączanie bazy danych w tryb awaryjny ............................................................ 181
Podsumowanie ............................................................................................................... 182
Rozdział 5. Integracja z .NET .......................................................................... 183
Podstawowe informacje na temat integracji SQL Servera i .NET ................................ 184
Dlaczego SQL Server 2005 obsługuje CLR? .......................................................... 184
Kiedy powinno się używać procedur CLR? ............................................................ 185
Kiedy nie powinno się używać procedur CLR? ...................................................... 186
Sposób, w jaki SQL Server obsługuje .NET — architektura rozwiązania ............. 186
Model programistyczny .NET w SQL Serverze ............................................................ 187
Modyfikacje ADO.NET związane z obsługą SQL Servera .................................... 188
Przegląd nowych przestrzeni nazw .NET dla SQL Servera .................................... 188
Implementacja procedury składowanej ......................................................................... 189
Tworzenie projektu SQL Servera Project w Visual Studio 2005 ............................ 190
Budowa procedury składowanej ............................................................................. 194
Dodawanie parametrów ........................................................................................... 195
Definicja problemu .................................................................................................. 196
Użycie obiektu SqlPipe ........................................................................................... 198
Kompletne rozwiązanie — implementacja ciała procedury składowanej ............... 201
Testowanie procedury składowanej ........................................................................ 203
Debugowanie procedury ......................................................................................... 205
Zgłaszanie wyjątków w procedurach CLR ............................................................. 206
Wdrażanie procedur CLR .............................................................................................. 210
Podsumowanie ............................................................................................................... 212
Rozdział 6. Programowanie podzespołów ........................................................ 213
Typy CLR zdefiniowane przez użytkownika ................................................................ 214
Zastosowania typów definiowanych przez użytkownika ........................................ 215
Dodawanie typu zdefiniowanego przez użytkownika do projektu SQL Servera .... 215
Elementy typu zdefiniowanego przez użytkownika ................................................ 217
Prosty przykład: typ PhoneNumber ........................................................................ 221
Kolejny przykład: typ StringArray .......................................................................... 229
Zarządzanie typami zdefiniowanymi przez użytkownika ....................................... 238
Funkcje CLR zdefiniowane przez użytkownika ............................................................ 238
Dodawanie funkcji zdefiniowanej przez użytkownika do projektu Visual Studio . 239
Szablon funkcji zdefiniowanej przez użytkownika w Visual Studio 2005 ............. 240
Atrybut SqlFunction ................................................................................................ 241
Skalarne funkcje zdefiniowane przez użytkownika ................................................ 242
Definiowanie funkcji tabelowych zdefiniowanych przez użytkownika .................. 245
Zarządzanie funkcjami CLR zdefiniowanymi przez użytkownika ......................... 250
Agregaty CLR zdefiniowane przez użytkownika .......................................................... 251
Dodawanie agregatu definiowanego przez użytkownika
do projektu SQL Servera ...................................................................................... 252
Elementy agregatu zdefiniowanego przez użytkownika ......................................... 253
8
SQL Server 2005
Procedury wyzwalane CLR zdefiniowane przez użytkownika ..................................... 260
Dodawanie procedury wyzwalanej CLR zdefiniowanej przez użytkownika
do projektu SQL Servera ...................................................................................... 261
Implementowanie procedur wyzwalanych CLR ..................................................... 261
Zarządzanie procedurami wyzwalanymi zdefiniowanymi przez użytkownika ...... 265
Zarządzanie podzespołami ............................................................................................ 266
Uwaga dotycząca Visual Studio 2005 ........................................................................... 266
Podsumowanie ............................................................................................................... 267
Rozdział 7. SQL Server i XML ......................................................................... 269
Czym jest XML? ........................................................................................................... 269
Czym są XPath i XMLDOM? ....................................................................................... 271
Składnia XPath ........................................................................................................ 272
Funkcje XPath ......................................................................................................... 274
XMLDOM — XML Document Object Model ....................................................... 274
Klasy XPathDocument, XPathNavigator oraz XPathExpression ........................... 276
Wstawianie danych XML do bazy danych .................................................................... 277
Czym jest SQLXML? .............................................................................................. 278
Konfiguracja SQL Servera ...................................................................................... 279
OPENXML .............................................................................................................. 279
SQLXML — widoki XML używające adnotowanych schematów XML .............. 286
Diagramy uaktualniające SQLXML ....................................................................... 291
Zbiorcze ładowanie danych XML ........................................................................... 294
Odczytywanie danych XML z bazy danych — klauzula FOR XML ............................ 298
Klauzula FOR XML po stronie serwera ................................................................. 298
Klauzula FOR XML po stronie klienta ................................................................... 304
Używanie szablonów ............................................................................................... 304
Rozszerzenia klauzuli FOR XML ................................................................................. 305
Programowanie SQLXML w .NET i COM ................................................................... 306
SqlXmlCommand .................................................................................................... 307
SqlXmlParameter .................................................................................................... 307
SqlXmlAdapter ........................................................................................................ 307
SqlXmlException .................................................................................................... 308
Przykładowe kody ................................................................................................... 309
Klauzula FOR XML — przetwarzanie po stronie serwera i po stronie klienta ...... 310
Sposób użycia obiektu XMLTextReader ................................................................ 311
Używanie parametrów w SQLXML ....................................................................... 312
Wykonywanie zapytań XPath lub zapytań SQL z szablonami ............................... 313
Interakcja z zestawem danych ADO.NET .............................................................. 313
Programowanie diagramów uaktualniających ........................................................ 314
Podsumowanie ............................................................................................................... 314
Rozdział 8. Obsługa XML-a i XQuery w SQL Serverze 2005 .............................. 315
Sposób użycia typu danych XML ................................................................................. 316
Sposób przechowywania danych XML w SQL Serverze ....................................... 318
Tworzenie kolumn XML ......................................................................................... 320
Ustawianie uprawnień do tworzenia schematów .................................................... 325
Nakładanie ograniczeń na kolumny XML .............................................................. 326
Ograniczenia typu danych XML ............................................................................. 327
Wstawianie danych w kolumnach XML ....................................................................... 328
Użycie SSIS względem danych XML ..................................................................... 328
Zbiorcze ładowanie danych XML ........................................................................... 330
Tworzenie własnego zapytania lub aplikacji .......................................................... 330
Spis treści
9
Zapytania na danych XML ............................................................................................ 331
Podstawy języka XQuery ........................................................................................ 332
Podstawowe metody zapytań XML ........................................................................ 338
Zapytania międzydomenowe ................................................................................... 340
Modyfikowanie danych XML ....................................................................................... 341
Ograniczenia zakresu modyfikacji danych XML .................................................... 342
Indeksowanie danych XML w celu zwiększenia wydajności ....................................... 343
Sposób działania indeksów na danych XML .......................................................... 344
Drugorzędne indeksy XML ..................................................................................... 345
Przeszukiwanie pełnotekstowe a typ danych XML ....................................................... 346
Dynamiczne widoki zarządcze i dane XML .................................................................. 347
Aplikacje i dane XML ................................................................................................... 348
Obsługa usług sieciowych XML ................................................................................... 349
Tworzenie węzła końcowego .................................................................................. 350
Używanie zaawansowanych usług sieciowych ....................................................... 356
Monitorowanie wydajności usług sieciowych XML .............................................. 361
Podsumowanie ............................................................................................................... 362
Rozdział 9. SQL Server 2005 Reporting Services ............................................ 363
Komponenty Reporting Services ................................................................................... 364
Report Server ........................................................................................................... 365
Katalog metadanych ................................................................................................ 366
Report Designer ....................................................................................................... 366
Aplikacja WWW Report Manager .......................................................................... 368
Bezpieczeństwo Reporting Services ....................................................................... 370
Tworzenie prostego raportu w SSRS 2000 .................................................................... 370
Uruchamianie projektanta ....................................................................................... 371
Praca ze źródłami danych i zestawami danych ....................................................... 371
Definiowanie układu i podglądanie raportu ............................................................ 372
Praca z wyrażeniami ................................................................................................ 373
Wdrażanie raportu ................................................................................................... 373
Uaktualnianie SQL Server 2000 Reporting Services .................................................... 373
Zmiany w licencjonowaniu Reporting Services ............................................................ 375
Zintegrowane SQL Server Management Studio ............................................................ 376
Przewodnik — Management Studio i Reporting Services ...................................... 377
Zmiany w sposobie zarządzania .................................................................................... 382
Dostawca WMI ....................................................................................................... 383
Sieciowe usługi zarządzania i wykonawcze ............................................................ 386
Narzędzie konfiguracji Reporting Services ................................................................... 386
Usprawnienia w zakresie projektowania i wykonywania raportów .............................. 387
Edytor wyrażeń Expression Editor .......................................................................... 388
Parametry wielowartościowe .................................................................................. 388
Kontrolka wyboru daty ............................................................................................ 391
Sortowanie interaktywne ......................................................................................... 392
Integracja z Analysis Services ................................................................................. 393
Przewodnik — tworzenie raportu w BIDS ............................................................. 394
Nagłówki pływające ................................................................................................ 402
Zmiany źródeł danych: wyrażenia, usługi sieciowe i XML, SSIS i SAP ............... 403
Własne elementy raportów ...................................................................................... 409
Integracja z Visual Studio i kontrolki ReportViewer .................................................... 409
Korzystanie z kontrolek WinForm .......................................................................... 410
Oprogramowywanie kontrolek ReportViewer ........................................................ 413
Obiekty LocalReport oraz ServerReport ................................................................. 417
10
SQL Server 2005
Integracja z SharePoint .................................................................................................. 417
Zapytania i raporty ad hoc użytkownika ....................................................................... 418
Klient ReportBuilder ............................................................................................... 419
Semantic Model Definition Language .................................................................... 420
Przewodnik — ReportBuilder ................................................................................. 422
Podsumowanie ............................................................................................................... 428
Rozdział 10. Analysis Services ......................................................................... 429
Rozszerzenia SSAS 2005 .............................................................................................. 430
Architektura ............................................................................................................. 430
Wydajność, skalowalność, dostępność .................................................................... 432
Użyteczność ............................................................................................................ 432
Projektowanie .......................................................................................................... 433
Instalacja ........................................................................................................................ 435
Na czym polega analiza? ............................................................................................... 436
OLAP, OLTP i hurtownie danych ........................................................................... 436
Terminologia wykorzystywana w systemach OLAP .................................................... 437
Kostki ...................................................................................................................... 438
Komórki .................................................................................................................. 438
Miary i tabele faktów .............................................................................................. 438
Wymiary i atrybuty ................................................................................................. 439
Hierarchie ................................................................................................................ 439
Projekty Analysis Services ............................................................................................ 440
Definiowanie źródeł danych .................................................................................... 442
Projektanty a kreatory ............................................................................................. 445
Definiowanie widoków źródeł danych .................................................................... 446
Definiowanie kostek ................................................................................................ 450
Wdrażanie projektów oraz konfigurowanie projektów do wdrożenia .................... 454
Operacje na kostkach .............................................................................................. 456
Przeglądanie kostek ................................................................................................. 457
Przeglądanie kostek z hierarchiami ......................................................................... 459
Zarządzanie wyświetlanymi danymi ....................................................................... 462
Obliczenia i MDX ................................................................................................... 465
Kluczowe wskaźniki wydajności (KPI) .................................................................. 468
Analysis Services Scripting Language (ASSL) ............................................................. 472
Przykładowy obiekt ASSL — widok źródła danych z zapytaniem nazwanym ...... 473
Analizowanie kodu ASSL ....................................................................................... 475
Podsumowanie ............................................................................................................... 476
Rozdział 11. Bezpieczeństwo ........................................................................... 477
Dwa zdania o użytkowniku sa ....................................................................................... 478
Surface Area Configuration ........................................................................................... 478
Połączenia zdalne .................................................................................................... 478
Dedykowane połączenie administracyjne ............................................................... 479
.NET Framework ..................................................................................................... 479
Database Mail .......................................................................................................... 480
SQLMail .................................................................................................................. 480
Service Broker ......................................................................................................... 481
Połączenia HTTP ..................................................................................................... 481
Tworzenie lustrzanej kopii baz danych ................................................................... 481
Web Assistant .......................................................................................................... 481
xp_cmdshell ............................................................................................................ 482
Zdalne zapytania ad hoc .......................................................................................... 482
Rozszerzone procedury składowane automatyzacji OLE ....................................... 482
Rozszerzone procedury składowane SMO i DMO ................................................. 482
Spis treści
11
Obiekty zabezpieczające i obiekty zabezpieczane ........................................................ 483
Obiekty zabezpieczające ......................................................................................... 483
Obiekty zabezpieczane ............................................................................................ 493
Uprawnienia ................................................................................................................... 496
Typy uprawnień ....................................................................................................... 496
Zarządzanie uprawnieniami .................................................................................... 498
Code Access Security .................................................................................................... 502
Imperatywna i deklaratywna implementacja CAS .................................................. 502
Użycie CAS z SQL Serverem ................................................................................. 503
Szyfrowanie ................................................................................................................... 507
Hierarchia szyfrowania w SQL Serverze 2005 ....................................................... 508
Szyfrowanie hasłem podanym przez użytkownika ................................................. 509
Szyfrowanie kluczem symetrycznym ...................................................................... 510
Szyfrowanie kluczem asymetrycznym .................................................................... 511
Szyfrowanie certyfikatem ....................................................................................... 512
Certyfikaty i usługi sieciowe ......................................................................................... 513
Podsumowanie ............................................................................................................... 516
Rozdział 12. Service Broker ............................................................................. 517
Czym jest Service Broker? ............................................................................................ 518
Architektura technologii Service Broker ................................................................. 518
Scenariusze użycia narzędzia Service Broker ......................................................... 522
Tworzenie aplikacji Service Broker .............................................................................. 523
Udostępnianie narzędzia Service Broker ................................................................ 524
Tworzenie typów komunikatów .............................................................................. 524
Tworzenie kontraktów ............................................................................................. 524
Tworzenie kolejek ................................................................................................... 525
Tworzenie usług ...................................................................................................... 526
Tworzenie procedur składowanych aplikacji Service Broker ................................. 526
Przykładowa aplikacja Service Broker ................................................................... 530
Wyznaczanie tras i bezpieczeństwo w technologii Service Broker .............................. 537
Tworzenie rozproszonych aplikacji Service Broker ............................................... 537
Przykładowa rozproszona aplikacja Service Broker ............................................... 541
Podsumowanie ............................................................................................................... 562
Rozdział 13. Automatyzacja i monitorowanie .................................................... 563
SQL Server Agent ......................................................................................................... 564
Krok 1. Łączenie się z SQL Serverem .................................................................... 565
Krok 2. Tworzenie zadania agenta .......................................................................... 567
Rozszerzenia bezpieczeństwa ................................................................................. 571
Podsystemy agenta .................................................................................................. 580
Współużytkowanie harmonogramów zadań ........................................................... 581
Zapisywanie do tabeli sysjobstepslogs .................................................................... 584
Zdarzenia WMI oraz alerty agenta .......................................................................... 585
Liczniki wydajności agenta ..................................................................................... 587
Uaktualnianie agenta ............................................................................................... 588
Plany utrzymania ........................................................................................................... 590
Tworzenie planu utrzymania ................................................................................... 591
Okno narzędziowe ................................................................................................... 592
Okno dokumentu narzędzia Maintenance Plan Designer ....................................... 592
SQLCMD ....................................................................................................................... 598
Łączenie się z SQL Serverem ................................................................................. 599
Przekazywanie zmiennych ...................................................................................... 600
Używanie dedykowanego połączenia administracyjnego ....................................... 601
Tworzenie skryptów ................................................................................................ 601
12
SQL Server 2005
Database mail ................................................................................................................ 602
Informacje ogólne ................................................................................................... 603
Konfigurowanie Database Mail .............................................................................. 605
Wysyłanie poczty .................................................................................................... 609
SQL Profiler .................................................................................................................. 610
Korelacja Performance Monitora ............................................................................ 614
ShowPlan ................................................................................................................. 616
Wizualizacja zakleszczeń ........................................................................................ 617
Podsumowanie ............................................................................................................... 618
Rozdział 14. Integration Services ..................................................................... 621
Nowe funkcje w SSIS .................................................................................................... 623
Nowe środowisko IDE w SSIS ...................................................................................... 624
Łączenie się z SSIS w Management Studio ............................................................ 625
Tworzenie nowego projektu SSIS w BIDS ............................................................. 626
Podstawy działania SSIS ............................................................................................... 627
Obszar projektowania przepływu sterowania ......................................................... 627
Obszar projektowania przepływu danych ............................................................... 629
Obszar projektowania procedur obsługi zdarzeń .................................................... 643
Przeglądarka pakietów Package Explorer ............................................................... 645
Menedżery połączeń ................................................................................................ 645
Przeglądarka rozwiązań Solution Explorer ............................................................. 646
Okno właściwości Properties .................................................................................. 647
Zadania okna narzędziowego Control Flow .................................................................. 648
Kontenery ................................................................................................................ 649
Zadania Analysis Services ...................................................................................... 653
Zadanie Data Flow .................................................................................................. 653
Zadania Execute Package ........................................................................................ 654
Zadanie Bulk Insert ................................................................................................. 654
Zadanie Execute SQL .............................................................................................. 654
Zadanie Execute Process ......................................................................................... 656
Zadanie File System ................................................................................................ 656
Zadanie File Transfer Protocol ................................................................................ 656
Zadania Maintenance Plan ...................................................................................... 657
Zadanie Message Queue .......................................................................................... 657
Zadanie Send Mail .................................................................................................. 658
Zadania Scripting .................................................................................................... 658
Zadanie Web Service .............................................................................................. 661
Zadania WMI .......................................................................................................... 662
Zadanie XML .......................................................................................................... 662
Zadania projektanta przepływu danych Data Flow Designer ........................................ 662
Adaptery źródeł ....................................................................................................... 662
Adaptery obiektów docelowych .............................................................................. 663
Transformacje .......................................................................................................... 664
Zapisywanie zdarzeń w dziennikach ............................................................................. 670
Konfiguracje .................................................................................................................. 674
Sposób użycia narzędzia Package Configuration Organizer ................................... 675
Zmienne ......................................................................................................................... 678
Ograniczenia pierwszeństwa przepływu prac ................................................................ 681
Punkty kontrolne ............................................................................................................ 682
Transakcje ...................................................................................................................... 683
Debugowanie ................................................................................................................. 684
Wizualne debugowanie przepływu sterowania ....................................................... 684
Wizualne debugowanie przepływu danych ............................................................. 685
Spis treści
13
Przeglądarki danych ................................................................................................ 685
Okno punktów przerwań ......................................................................................... 686
Inne okna debugowania ........................................................................................... 687
Narzędzie SSIS Package Deployment Utility ............................................................... 687
Wykonywanie migracji pakietów SQL Servera 2000 ................................................... 688
Tworzenie harmonogramów pakietu SSIS .................................................................... 688
Podsumowanie ............................................................................................................... 689
Rozdział 15. Tworzenie lustrzanych kopii baz danych ........................................ 691
Definicja wysokiej dostępności ..................................................................................... 693
Ogólne informacje na temat sporządzania lustrzanych kopii baz danych ..................... 694
Mechanizm tworzenia kopii lustrzanych a inne rozwiązania ........................................ 697
Konfiguracja mechanizmu tworzenia lustrzanych kopii baz danych ............................ 698
Wymagania wstępne, połączenia i bezpieczeństwo ................................................ 699
Tworzenie kopii bezpieczeństwa i odtwarzanie głównej bazy danych ................... 703
Ustanawianie partnerstwa serwera głównego i serwera lustrzanego ...................... 704
Zmiana poziomów zabezpieczeń transakcji ............................................................ 705
Stany sporządzania kopii lustrzanych, sygnały taktujące i kworum ....................... 706
Inicjowanie przywracania działania ........................................................................ 707
Zawieszanie i przywracanie działania
mechanizmu sporządzania lustrzanych kopii baz danych .................................... 708
Wyłączanie mechanizmu tworzenia lustrzanych kopii baz danych ........................ 709
Indeksowanie pełnotekstowe a sporządzanie lustrzanych kopii baz danych .......... 709
Service Broker a sporządzanie lustrzanych kopii baz danych ................................ 710
Konfigurowanie mechanizmu tworzenia lustrzanych kopii baz danych
w Management Studio .......................................................................................... 710
Aplikacje klienckie i sporządzanie kopii lustrzanych ................................................... 715
Monitorowanie procesu sporządzania kopii lustrzanych ............................................... 717
Widoki katalogowe ................................................................................................. 717
Liczniki Performance Monitora .............................................................................. 721
Profiler ..................................................................................................................... 721
Dziennik zdarzeń systemu Windows oraz dziennik błędów SQL Servera ............. 722
Wydajność a sporządzanie lustrzanych kopii baz danych ............................................. 723
Ograniczenia mechanizmu sporządzania kopii lustrzanych .......................................... 724
Przykładowa aplikacja ................................................................................................... 725
Migawki baz danych a mechanizm sporządzania kopii lustrzanych ............................. 731
Ogólne informacje na temat migawek baz danych ................................................. 732
Korzystanie z migawek w kodzie T-SQL ............................................................... 734
Wydajność systemu z migawkami na serwerach lustrzanych ................................. 735
Używanie i monitorowanie migawek baz danych oraz zarządzanie nimi ............... 736
Programowanie z użyciem migawek baz danych ................................................... 737
Ograniczenia migawek baz danych ......................................................................... 737
Klastry Windows w SQL Serverze 2005 ....................................................................... 738
Replikacja w SQL Serverze 2005 .................................................................................. 739
Podsumowanie ............................................................................................................... 740
Rozdział 16. Notification Services .................................................................... 741
Architektura Notification Services ................................................................................ 742
Subskrybenci ........................................................................................................... 743
Subskrypcje ............................................................................................................. 744
Zdarzenia ................................................................................................................. 744
Powiadomienia ........................................................................................................ 745
Tworzenie aplikacji Notification Services .................................................................... 746
Definiowanie instancji NS — plik konfiguracji instancji ....................................... 746
Definiowanie aplikacji NS — plik definicji aplikacji ............................................. 751
14
SQL Server 2005
Kompilowanie i uruchamianie aplikacji NS .................................................................. 771
Monitorowanie aplikacji NS i usuwanie z niej błędów ................................................. 775
Korzystanie z NS w kodzie źródłowym ........................................................................ 777
Programowanie NS w Visual Studio ....................................................................... 777
Zarządzanie NS w kodzie źródłowym .................................................................... 782
Podsumowanie ............................................................................................................... 782
Skorowidz .................................................................................... 783
Rozdział 7.
Popularność języka XML wzrasta z każdym dniem. Niektórzy zdeklarowani zwolen-
nicy koncepcji relacyjnej kręcą z dezaprobatą głowami, gdy słyszą o XML-u. Jednak
tak naprawdę XML stanowi uzupełnienie technologii relacyjnych, a dane XML są
w większości ustrukturyzowane jak dane relacyjne. Czy to dobrze? Pewnie nie, po-
nieważ obydwa modele sprawdzają się najlepiej w przypadku danych, dla których
zostały stworzone: XML dla danych na wpół ustrukturyzowanych, a relacyjne bazy
danych dla danych relacyjnych. Ponadto semantyka mechanizmów przechowywania,
odpytywania i modyfikowania danych XML często sprawia kłopot osobom preferują-
cym podejście relacyjne. Jak się przekonamy, XQuery w niczym nie przypomina
języka T-SQL, jednak obydwu technologii można używać łącznie, aby rozwiązywać
problemy biznesowe. Zanim zagłębimy się w nowe mechanizmy obsługi XML-a
dostępne w SQL Serverze 2005, musimy jednak najpierw zrozumieć, czym jest XML
i w jaki sposób SQL Server już obsługuje technologię XML.
Na początku niniejszego rozdziału zajmiemy się rzeczami podstawowymi: czym jest
XML i w jaki sposób aktualna wersja SQL Servera obsługuje XML za pomocą FOR XML,
rozdrabniania danych XML i wsparcia FOR XML z poziomu .NET Framework. Opisane
zostanie również XPath oraz zakres obsługi XPath świadczonej przez SQL Server. Na
koniec przyjrzymy się SQLXML oraz pokażemy sposób, w jaki można użyć tej tech-
nologii do rozszerzenia zakresu obsługi XML-a przez SQL Server. Jeśli użytkownik
nie posiada SQLXML, wersję 3.0 dla SQL Servera 2000 można pobrać za darmo
z sieci WWW, natomiast wersja 4.0 jest dołączona do SQL Servera 2005. W następ-
nym rozdziale zobaczymy, w jaki sposób SQL Server zaczął obsługiwać klauzulę FOR
XML z nowym typem danych XML oraz językiem XQuery. Zajmiemy się także obsługą
usług sieciowych WWW, która zastąpiła obsługę usług sieciowych ISAPI SQLXML.
Czym jest XML?
Informacja dla tych, którzy przez ostatnich dziesięć lat żyli odizolowani od świata
zewnętrznego i nigdy nie zetknęli się z szumem towarzyszącym językowi XML: otóż
XML to skrót od eXtensible Markup Language. XML pozwala na strukturyzowanie
270
SQL Server 2005
danych przy użyciu standaryzowanych schematów. Standaryzacja jest właśnie naj-
ważniejszą cechą, ponieważ z niej wypływa siła XML-a. Każdy inny system potrafi
odczytywać i zapisywać dane zgodne ze standardem, oczywiście uwzględniając fakt,
że niektóre systemy mogą czasami odmiennie interpretować dane. XML również pozwala
na pozyskiwanie danych XML przy użyciu standardu XPath i przekształcanie danych
XML z zastosowaniem XSLT. Obydwa standardy zostaną opisane w dalszej części tego
rozdziału.
Ciekawą kwestią jest dokonanie wyboru między danymi XML i danymi relacyjnymi.
Co jakiś czas na nowo rozpoczyna się dyskusja na temat przechowywania danych
w klasycznym standardzie relacyjnym, w hybrydowym modelu XML/relacyjnym oraz
w czystym formacie XML. Naszym zdaniem najlepiej jest wybierać rozwiązanie, które
najbardziej przydaje się do rozwiązania danego problemu. Użytkownicy specjalizujący
się w technologiach relacyjnych, którzy potrafią zapewnić wysoką wydajność prze-
twarzania danych relacyjnych, nie mają powodów, by przestawić się na używanie
rozwiązań XML-owych. Dane relacyjne można bez trudu udostępniać dla świata ze-
wnętrznego w postaci XML przy użyciu FOR XML, natomiast wewnętrznie dane mogą
nadal być przechowywane w modelu relacyjnym. Niewarto ulegać zachwytom nad
XML-em bez wyraźnego powodu. Na przykład dane XML mają charakter tekstowy,
a więc ich rozmiar jest większy niż rozmiar binarnych odpowiedników. XML jest
również rozwlekły, ponieważ nie jest znormalizowany jak dane relacyjne, a przez to
w jednym dokumencie mogą się powtarzać sekcje tych samych danych. Ponadto model
programistyczny XML-a różni się od modelu programistycznego, do którego przy-
zwyczaili się programiści przetwarzający dane relacyjne.
Poznajmy najpierw podstawową terminologię XML, a potem zaczniemy poznawać
coraz głębsze tajemnice technologii, aby móc ją jak najlepiej zrozumieć. Często moż-
na usłyszeć ludzi rozprawiających o dokumentach, elementach i atrybutach. Najlepiej
jest przyjąć podejście, według którego cała struktura XML-a to dokument, dokument
zawiera elementy, a elementy mogą zawierać atrybuty. Poniższy przykładowy do-
kument XML zawiera jeden dokument, trzy elementy i dwa atrybuty:
?xml version= 1.0 ?
customer
name id= 10 Tom Rizzo /name
state region= Northwest WA /state
/customer
XML posiada schematy i przestrzenie nazw. Nie istnieje wymóg, by nakładać sche-
maty na XML, lecz dzięki schematom i przestrzeniom nazw można w unikatowy sposób
definiować poprawne i niepoprawne struktury danych w dokumencie XML. W świe-
cie relacyjnym mamy do czynienia ze strukturami tabel oraz ograniczeniami. Niektóre
rozwiązania relacyjne można odwzorowywać na schematy XML, ponieważ schematy
XML posiadają typy danych oraz reguły wyznaczające kolejność, moc i inne aspekty
dokumenty XML. Dzięki schematom można współużytkować własne dane XML z in-
nymi użytkownikami i zapewnić, że inni użytkownicy nadal będą rozumieć te dane.
Przestrzeń nazw XML to kolekcja nazw identyfikowana przez odwołanie URI uży-
wane w dokumencie XML przez typy elementów oraz nazwy atrybutów. Dzięki prze-
strzeniom nazw można używać tych samych nazw pochodzących z różnych źródeł
i unikać konfliktów między nimi. Na przykład można użyć tego samego elementu
Rozdział 7. ¨ SQL Server i XML
271
o nazwie customer pochodzącego z dwóch różnych źródeł, jeśli tylko podana zostanie
przestrzeń nazw identyfikująca elementy jako należące do odmiennych przestrzeni
nazw. Schematy i przestrzenie nazw będą szczególnie ważne, gdy będziemy poznawać
nowy typ danych XML dostępny w SQL Serverze 2005 oraz omawiać natywny sposób
przechowywania danych XML w bazie danych.
Czym są XPath i XMLDOM?
Gdy ma się do dyspozycji zbiór dokumentów XML, bez wątpienia istotną rzeczą jest
możliwość wykonywania na tych zbiorach zapytań i odczytywania potrzebnych in-
formacji. XML Path Language (XPath) to język zapytań umożliwiający definiowanie
części dokumentu XML, które należy wybrać. XPath posiada parser, który interpretuje
składnię, odczytuje dokument XML i wyciąga z niego odpowiednie części. Na przy-
kład z dokumentu XML można odczytywać wszystkich klientów mieszkających w stanie
Nowy Jork. W tym celu wystarczy napisać odpowiednią instrukcję XPath.
Język XML jest hierarchiczny, dzięki czemu w XPath można wskazywać ścieżkę lub
ścieżki do danych XML, które trzeba pozyskać. Dane XML można traktować jak hie-
rarchię węzłów. Węzłem głównym jest zazwyczaj element dokumentu XML. Następ-
nie pod węzłem głównym tworzona jest struktura drzewiasta dla wszystkich danych
XML. Gdyby przykładowy kod XML przedstawiony wcześniej odwzorować na hie-
rarchię ścieżek XML, uzyskalibyśmy drzewo widoczne na rysunku 7.1.
Rysunek 7.1. Przykładowe drzewo dokumentu XML
Drzewo nie jest szczególnie imponujące, ale bez wątpienia jest to drzewo. Widać w nim
wszystkie elementy, atrybuty i węzły tekstowe. Przy użyciu XPath można odczytywać
siedem typów węzłów: węzeł główny, element, atrybut, przestrzeń nazw, instrukcję
przetwarzania, komentarz i węzeł tekstowy. W instrukcjach XPath używa się najczę-
ściej elementów, atrybutów, instrukcji przetwarzania oraz węzłów tekstowych.
272
SQL Server 2005
XPath wykorzystuje się najczęściej do nawigowania wśród różnych węzłów za po-
mocą osi XPath (ang. XPath axis). Osie XPath opisują sposób nawigacji w strukturze
przez wskazanie punktu początkowego oraz kierunku nawigacji. W XPath występuje
13 osi, lecz najczęściej używa się osi child (potomków) i attribute (atrybutów). W tabeli 7.1
opisano wszystkie 13 dostępnych osi.
Tabela 7.1. Osie XPath
Nazwa
Ancestor
Ancestor-or-self
Attribute
Child
Descendant
Descendent-or-self
Following
Following-sibling
Namespace
Parent
Preceding
Preceding-sibling
Self
Opis
Zawiera węzeł rodzica węzła kontekstu oraz wszystkie następne węzły
rodziców tego węzła aż do węzła głównego.
Zawiera węzły przodków oraz sam węzeł kontekstu aż do węzła głównego.
Zawiera atrybuty węzła kontekstu, jeśli węzeł kontekstu jest węzłem elementu.
Zawiera węzły potomków węzła kontekstu.
Zawiera węzły potomka, kolejnych potomków i tak dalej węzła kontekstu.
Zawiera sam węzeł kontekstu oraz węzły wszystkich potomków węzła
kontekstu.
Zawiera wszystkie węzły w tym samym dokumencie co węzeł kontekstu,
które pod względem kolejności w dokumencie występują po węźle kontekstu.
Nie zawiera jednak żadnych węzłów potomków, przestrzeni nazw ani atrybutów.
To samo co oś Following, lecz zawiera wszystkie węzły, których rodzicem
jest ten sam węzeł co w przypadku węzła kontekstu.
Zawiera węzły przestrzeni nazw węzła kontekstu, o ile węzeł kontekstu jest
elementem.
Zawiera węzeł rodzica węzła kontekstu. Węzeł główny nie posiada rodzica.
Oś jest przeciwieństwem osi potomków.
To samo co oś Following, lecz zamiast węzłów po węźle kontekstu będzie
zawierać węzły występujące przed węzłem kontekstu biorąc pod uwagę
kolejność w dokumencie.
To samo co oś Preceding, lecz zawiera wszystkie węzły mające tego samego
rodzica co węzeł kontekstu.
Zawiera wyłącznie węzeł kontekstu.
Składnia XPath
Do wyboru węzłów podlegających przetwarzaniu XPath używa zestawu wyrażeń.
Najczęściej spotykanym wyrażeniem jest lokalizacja ścieżki. Wyrażenie to zwraca ze-
staw węzłów (ang. node set). XPath pozwala na używanie składni pełnej oraz składni
skróconej. Pełna składnia lokalizacji ścieżki ma następującą postać:
/nazwaOsi::węzełTest[predykat]/nazwaOsi::węzełTest[predykat]
W przykładzie występuje znak ukośnika, który odwołuje się do węzła głównego jako
do węzła kontekstu. Następnie wskazywana jest oś oraz węzełTest, a także opcjonalny
predykat. Dalej można umieszczać jedną lub więcej analogicznych struktur, by osta-
tecznie uzyskać węzły, które nas interesują. Zatem aby odczytać wszystkich klientów,
Rozdział 7. ¨ SQL Server i XML
273
należałoby użyć pełnej składni XPath przedstawionej poniżej. Jeśli żadna oś nie zo-
stanie wskazana, przyjęta zostanie domyślna oś child.
/child::root/child::customer
Jednak w większości przypadków używa się składni skróconej. W wersji skróconej
powyższa instrukcj
Pobierz darmowy fragment (pdf)