Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00983 013456 11050630 na godz. na dobę w sumie
Microsoft SQL Server 2005. Nowe możliwości - książka
Microsoft SQL Server 2005. Nowe możliwości - książka
Autor: Liczba stron: 264
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-982-8 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> sql server
Porównaj ceny (książka, ebook, audiobook).

Microsoft SQL Server to system zarządzania bazami danych wykorzystywany wszędzie tam, gdzie niezbędna jest wysoka wydajność i bezpieczeństwo. W oparciu o ten system budowane są hurtownie danych, aplikacje operujące na milionach rekordów i przetwarzające ogromne ilości informacji. SQL Server stosowany jest również jako zaplecze bazodanowe dla witryn WWW i aplikacji mobilnych. Każda kolejna wersja Microsoft SQL Server wyposażona jest w nowe narzędzia oraz udoskonalone mechanizmy zarządzania danymi i udostępnia projektantom oraz administratorom baz danych coraz większe możliwości.

'Microsoft SQL server 2005. Nowe możliwości' to książka opisująca najnowszą wersję SQL Server, oznaczoną symbolem 2005. Prezentuje nowe funkcje związane z zarządzaniem bazami danych, projektowaniem tabel i baz oraz generowaniem raportów i analizowaniem danych. Czytając ją, poznasz narzędzie SQL Workbench, możliwości tworzenia procedur składowanych, wyzwalaczy i funkcji za pomocą dowolnego języka programowania platformy .NET oraz zasady korzystania z funkcji SQL Server Reporting Services. Dowiesz się wszystkiego o najważniejszych nowych funkcjach serwera SQL Server 2005 oraz zrozumiesz, czym różni się on od swoich poprzedników.

Jeśli chcesz wykorzystać wszystkie nowe funkcje SQL Servera 2005,
koniecznie przeczytaj tę książkę.

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

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREŒCI SPIS TREŒCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH O NOWOŒCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Microsoft SQL Server 2005. Nowe mo¿liwoœci Autor: Michael Otey T³umaczenie: Piotr Pilch ISBN: 83-7361-982-8 Tytu³ orygina³u: Microsoft SQL Server 2005 New Features Format: B5, stron: 264 Microsoft SQL Server to system zarz¹dzania bazami danych wykorzystywany wszêdzie tam, gdzie niezbêdna jest wysoka wydajnoœæ i bezpieczeñstwo. W oparciu o ten system budowane s¹ hurtownie danych, aplikacje operuj¹ce na milionach rekordów i przetwarzaj¹ce ogromne iloœci informacji. SQL Server stosowany jest równie¿ jako zaplecze bazodanowe dla witryn WWW i aplikacji mobilnych. Ka¿da kolejna wersja Microsoft SQL Server wyposa¿ona jest w nowe narzêdzia oraz udoskonalone mechanizmy zarz¹dzania danymi i udostêpnia projektantom oraz administratorom baz danych coraz wiêksze mo¿liwoœci. „Microsoft SQL server 2005. Nowe mo¿liwoœci” to ksi¹¿ka opisuj¹ca najnowsz¹ wersjê SQL Server, oznaczon¹ symbolem 2005. Prezentuje nowe funkcje zwi¹zane z zarz¹dzaniem bazami danych, projektowaniem tabel i baz oraz generowaniem raportów i analizowaniem danych. Czytaj¹c j¹, poznasz narzêdzie SQL Workbench, mo¿liwoœci tworzenia procedur sk³adowanych, wyzwalaczy i funkcji za pomoc¹ dowolnego jêzyka programowania platformy .NET oraz zasady korzystania z funkcji SQL Server Reporting Services. Dowiesz siê wszystkiego o najwa¿niejszych nowych funkcjach serwera SQL Server 2005 oraz zrozumiesz, czym ró¿ni siê on od swoich poprzedników. (cid:129) Obs³uga nowych urz¹dzeñ (cid:129) Integracja z platform¹ .NET (cid:129) Stosowanie udoskonalonych mechanizmów zabezpieczeñ i praw dostêpu (cid:129) Korzystanie z narzêdzi SQL Server Management Studio oraz Business Intelligence Development Studio (cid:129) Strojenie bazy za pomoc¹ Database Tuning Advisor (cid:129) Archiwizacja i odtwarzanie danych (cid:129) Projektowanie baz z wykorzystaniem nowych narzêdzi (cid:129) Stosowanie jêzyka XML (cid:129) Generowanie raportów za pomoc¹ us³ugi Reporting Services (cid:129) Analiza danych i tworzenie hurtowni danych Jeœli chcesz wykorzystaæ wszystkie nowe funkcje SQL Servera 2005, koniecznie przeczytaj tê ksi¹¿kê Spis treści O autorze ....................................................................................... 11 Wprowadzenie ................................................................................ 13 Część I Rozdział 1. Funkcje związane z architekturą bazy danych Funkcje zarządzania bazą danych ...................................15 i mechanizmem przechowywania danych ......................................... 17 Obsługa nowych urządzeń .............................................................................................. 17 Macierzysta obsługa 64-bitowości ........................................................................... 18 Obsługa architektury NUMA ................................................................................... 19 Obsługa hiperwątkowości ........................................................................................ 19 Mechanizm serwera SQL Server .................................................................................... 20 Integracja z platformą .NET Framework .................................................................. 20 Rozszerzona obsługa wielu instancji ........................................................................ 20 Nowe typy danych ................................................................................................... 21 Technologie Database Snapshot i Database Mirroring ............................................. 21 Obsługa żądań HTTP ............................................................................................... 22 Zdarzenia serwerowe i wyzwalacze DDL ................................................................ 22 Rozszerzenia dotyczące plików danych bazy ........................................................... 23 Partycjonowanie danych .......................................................................................... 23 Rozszerzenia indeksu ............................................................................................... 25 Rozszerzenia dotyczące katalogu systemowego i metadanych ................................ 26 Funkcja MARS (Multiple Active Results Sets) ....................................................... 26 Ładowanie dużej ilości danych ................................................................................ 27 Wyszukiwanie pełnotekstowe .................................................................................. 27 Rozszerzenia procesora zapytań języka T-SQL ....................................................... 27 Zabezpieczenia ............................................................................................................... 28 Wyizolowanie użytkowników ze schematów ........................................................... 28 Kontekst wykonywania procedury przechowywanej ............................................... 31 Bardziej szczegółowa kontrola uprawnień ............................................................... 32 Wymuszanie stosowania zasady haseł ..................................................................... 33 Zabezpieczenia katalogu .......................................................................................... 34 Rozdział 2. Narzędzia służące do administrowania bazą danych i jej projektowania .......................................................................... 35 Narzędzia administrowania i projektowania ................................................................... 35 SQL Computer Manager .......................................................................................... 35 SQL Server Management Studio .............................................................................. 37 6 Microsoft SQL Server 2005. Nowe możliwości Business Intelligence Development Studio .............................................................. 44 Zastosowanie narzędzi SQL Server Management Studio i Business Intelligence Development Studio .......................................................... 48 Sqlcmd ..................................................................................................................... 48 Narzędzia zwiększające wydajność ................................................................................ 51 Plany realizacyjne wykonywane przy użyciu okna Query Editor narzędzia SQL Server Management Studio ........................................................... 51 Database Tuning Advisor ......................................................................................... 52 Rozszerzenia narzędzia Profiler ............................................................................... 54 Nowe struktury zarządzania ........................................................................................... 55 Struktura obiektowa SMO serwera SQL Server ....................................................... 56 Struktura obiektowa AMO ....................................................................................... 57 Struktura obiektowa RMO ....................................................................................... 57 Windows Management Instrumentation ................................................................... 57 Rozdział 3. Funkcje związane z dostępnością i odzyskiwaniem ........................... 59 Ochrona przed awarią bazy danych lub serwera ............................................................. 60 Udoskonalone przejmowanie zadań w klastrze ........................................................ 60 Database Mirroring .................................................................................................. 61 Zastosowanie klastra lub funkcji Database Mirroring .............................................. 64 Rozszerzenia związane z dostępnością bazy danych ...................................................... 64 Database Snapshot ................................................................................................... 65 Early Restore Access ................................................................................................ 67 Przetwarzanie indeksów w trybie online .................................................................. 68 Bardzo dokładne odtwarzanie w trybie online ......................................................... 68 Dedykowane połączenie administratora ................................................................... 69 Pamięć Hot-Plug ...................................................................................................... 69 Udoskonalona konfiguracja dynamiczna ................................................................. 69 Poziomy izolowania transakcji serwera SQL Server ................................................ 70 Archiwizacja i odtwarzanie ............................................................................................ 70 Częściowe odtwarzanie ............................................................................................ 70 Rozszerzenia dotyczące niezawodności nośników danych ...................................... 71 Database Page Checksum ......................................................................................... 72 Jednoczesne wykonywanie kopii zapasowej bazy danych i dziennika ..................... 72 Archiwizowanie katalogu wyszukiwania pełnotekstowego ..................................... 72 Część II Funkcje związane z projektowaniem baz danych .............75 Rozdział 4. Funkcje związane z programowaniem ............................................... 77 Integracja ze środowiskiem CLR ................................................................................... 77 Zestawy .................................................................................................................... 78 Komponent SQL Server .NET Data Provider .......................................................... 79 Procedury przechowywane .NET ............................................................................. 81 Funkcje użytkownika .NET ...................................................................................... 84 Wyzwalacze .NET ................................................................................................... 86 Typy danych CLR użytkownika ............................................................................... 88 Agregaty CLR użytkownika ..................................................................................... 92 Zabezpieczenia obiektów bazodanowych .NET ....................................................... 95 Stosowanie obiektów bazodanowych CLR .............................................................. 96 Rozszerzenia języka T-SQL ........................................................................................... 96 Rozszerzenia klauzuli TOP ...................................................................................... 97 Wspólne wyrażenia tabel ......................................................................................... 97 Operatory PIVOT i UNPIVOT ................................................................................ 98 Wyzwalacze DDL .................................................................................................... 99 Spis treści 7 Zapisywanie wyników działania instrukcji DML ................................................... 100 Instrukcja WAITFOR ............................................................................................. 101 Nowy typ danych varchar(max) ............................................................................. 101 Obsługa przerwanych transakcji ............................................................................ 101 Zastosowanie obiektów bazodanowych związanych z językiem T-SQL ............... 102 Rozszerzenia ADO.NET .............................................................................................. 102 Obsługa kursorów serwerowych przy użyciu obiektu SqlResultSet ...................... 102 Obsługa zapytań asynchronicznych ....................................................................... 104 Wiele aktywnych zestawów wynikowych .............................................................. 105 Stronicowanie ........................................................................................................ 106 Masowe wstawianie danych ................................................................................... 107 Model wspólnego połączenia ................................................................................. 108 Rozdział 5. Usługa Notification Services ......................................................... 111 Ogólne informacje na temat usługi Notification Services ............................................ 112 Zdarzenia ............................................................................................................... 112 Subskrypcje ............................................................................................................ 112 Powiadomienia ....................................................................................................... 113 Mechanizm powiadamiania .................................................................................... 113 Architektura usługi Notification Services .................................................................... 113 Projektowanie aplikacji opartych na usłudze Notification Services ............................. 115 Etapy procesu projektowania ................................................................................. 115 Przykładowa aplikacja oparta na usłudze Notification Services ............................ 116 Rozdział 6. Podsystem SQL Server Service Broker ........................................... 129 Ogólne informacje na temat podsystemu SQL Server Service Broker ......................... 130 Architektura aplikacji kolejkującej ........................................................................ 130 Dialogi ................................................................................................................... 131 Grupa konwersacji ................................................................................................. 132 Aktywacja podsystemu SQL Server Service Broker .............................................. 133 Transport komunikatów ......................................................................................... 133 Projektowanie aplikacji opartych na podsystemie SQL Server Service Broker ........... 134 Model programowania ........................................................................................... 134 Instrukcje DDL T-SQL i DML T-SQL .................................................................. 135 Przykładowa aplikacja podsystemu SQL Server Service Broker ........................... 135 Zarządzanie podsystemem SQL Server Service Broker ............................................... 140 Systemowe opcje konfiguracyjne ........................................................................... 141 Zabezpieczenia dialogu .......................................................................................... 141 Widoki systemowe ................................................................................................. 142 Rozdział 7. Integracja technologii XML ........................................................... 143 Typ danych XML ......................................................................................................... 144 Typy danych XML z dokładną kontrolą danych .................................................... 145 Metody typu danych XML ..................................................................................... 147 Obsługa języka XQuery ............................................................................................... 150 Indeksy XML ............................................................................................................... 150 Główne indeksy XML ............................................................................................ 150 Dodatkowe indeksy XML ...................................................................................... 151 Rozszerzenia klauzuli FOR XML ................................................................................ 151 Dyrektywa TYPE ................................................................................................... 151 Zagnieżdżone zapytania FOR XML ....................................................................... 152 Generowanie schematu XSD ................................................................................. 152 Rozszerzenia funkcji OPENXML ................................................................................ 153 Masowe wczytywanie danych XML ............................................................................ 155 8 Microsoft SQL Server 2005. Nowe możliwości Obsługa żądań HTTP SOAP ........................................................................................ 156 Rozszerzenia XML dla serwera Analysis Server .......................................................... 157 XML for Analysis Services .................................................................................... 157 Systemowe widoki katalogu związane z językiem XML ............................................. 157 Część III Funkcje Business Intelligence .....................................159 Rozdział 8. Usługa Reporting Services ............................................................ 161 Architektura usługi Reporting Services ........................................................................ 162 Komponenty usługi Reporting Services ....................................................................... 164 Report Designer ..................................................................................................... 164 OLAP Report Designer .......................................................................................... 167 Report Server ......................................................................................................... 168 Report Manager ...................................................................................................... 170 Klienckie narzędzie raportujące Report Builder ..................................................... 171 Tworzenie raportów ..................................................................................................... 171 Etapy projektowania .............................................................................................. 171 Tworzenie raportu usługi Reporting Services ........................................................ 172 Wdrażanie raportu usługi Reporting Services ........................................................ 178 Wyświetlanie raportów usługi Reporting Services ................................................. 178 Rozdział 9. Usługa Integration Services .......................................................... 183 Nowa architektura usługi Integration Services ............................................................. 184 Komponent DTP .................................................................................................... 185 Komponent DTR .................................................................................................... 186 Komponenty pakietu usługi Integration Services ......................................................... 187 Funkcje pakietu usługi Integration Services ........................................................... 188 Adaptery danych .................................................................................................... 192 Kontenery ............................................................................................................... 193 Zadania ................................................................................................................... 193 Transformacje ........................................................................................................ 194 Obsługa zdarzeń ..................................................................................................... 196 Dostawcy obsługujący rejestrowanie ..................................................................... 196 Narzędzia usługi Integration Services .......................................................................... 197 Narzędzia projektowania usługi Integration Services ............................................ 198 Narzędzie Designer usługi Integration Services ..................................................... 200 Narzędzia usługi Integration Services obsługujące pakiety .......................................... 205 Kreator Package Migration Wizard ........................................................................ 206 Narzędzie Package Management usługi Integration Services ................................ 206 Narzędzia wykonujące pakiety usługi Integration Services ................................... 206 Rozdział 10. Usługa Analysis Services .............................................................. 209 Ogólne informacje na temat usługi Analysis Services .................................................. 210 Metody przechowywania danych w bazach OLAP ................................................ 211 Rozszerzenia mechanizmu usługi Analysis Services .................................................... 212 Obsługa wielu instancji .......................................................................................... 212 Obsługa przejmowania zadań w klastrze ............................................................... 212 Integracja z platformą .NET Framework ................................................................ 212 Model UDM ........................................................................................................... 213 Obsługa wyzwalaczy .............................................................................................. 214 Obsługa śledzenia .................................................................................................. 214 Obsługa skryptów .................................................................................................. 214 Rozszerzenia związane z lokalizacją ...................................................................... 214 Obsługa porzuconych wierszy tabeli faktów .......................................................... 215 Spis treści 9 Rozszerzenia zarządzania usługi Analysis Services ..................................................... 215 SQL Server Computer Manager ............................................................................. 215 SQL Server Management Studio ............................................................................ 216 Zabezpieczenia ....................................................................................................... 216 Rozszerzenia związane z archiwizowaniem i odtwarzaniem danych ..................... 218 Rozszerzenia związane z projektowaniem ................................................................... 219 Business Intelligence Development Studio ............................................................ 219 Profiler ................................................................................................................... 225 Protokół XMLA ..................................................................................................... 225 Język ODL ............................................................................................................. 226 Rozszerzenia języka MDX ..................................................................................... 226 ADOMD.NET ........................................................................................................ 228 Struktura AMO ...................................................................................................... 228 Drążenie danych ........................................................................................................... 229 Algorytm Decision Trees ....................................................................................... 229 Algorytm Time Series ............................................................................................ 229 Algorytmy Clustering i Sequence Clustering ......................................................... 229 Algorytm Naive Bayes ........................................................................................... 229 Algorytm Association Rules .................................................................................. 229 Dodatki ......................................................................................231 Dodatek A Instalacja i aktualizacja ................................................................ 233 Wersje serwera SQL Server 2005 ................................................................................ 233 Instalacja serwera SQL Server 2005 ............................................................................. 233 Weryfikacja instalacji ............................................................................................. 245 Aktualizacja serwera SQL Server 2005 ........................................................................ 246 Aktualizacja serwerów SQL Server 7 i 2000 ......................................................... 246 Aktualizacja z serwera SQL Server 6.5 lub starszego ............................................ 246 Dodatek B Parametry serwera ....................................................................... 249 Skorowidz ..................................................................................... 251 Rozdział 1. Funkcje związane z architekturą bazy danych i mechanizmem przechowywania danych Opierając się w zasadzie na tej samej architekturze, którą zdefiniowano w serwerze SQL Server 7, Microsoft kontynuował wprowadzanie w mechanizmie serwera ewo- lucyjnych udoskonaleń. Zgodnie z prawem Moore’a liczba tranzystorów będzie po- dwajana co 18 miesięcy przy jednoczesnym ciągłym obniżaniu ceny urządzeń. Jednak choć urządzenia tanieją, wzrasta koszt związany z zatrudnieniem specjalistów. W ser- werze SQL Server 2005 Microsoft dokonał ulepszeń, które umożliwiają zastosowanie bardzo wydajnych urządzeń najnowszej generacji i skalowanie ich na potrzeby naj- większych przedsiębiorstw. Jednocześnie firma dodała funkcje, które sprawiają, że serwer SQL Server jest prostszy w zarządzaniu. Serwer oferuje też nowe możliwo- ści pozwalające na jego lepsze wykorzystanie w organizacji. W niniejszym rozdziale zaprezentuję niektóre z najważniejszych udoskonaleń dokonanych przez Microsoft w architekturze serwera SQL Server 2005. Chcę w ten sposób ułatwić Ci zorientowa- nie się, w jaki sposób innowacje mogą zwiększyć wydajność i niezawodność środowi- ska bazodanowego. Obsługa nowych urządzeń Jedną z kluczowych nowych funkcji umożliwiających serwerowi bazodanowemu SQL Server 2005 uzyskanie wydajności porównywalnej z osiągami największych baz da- nych opartych na systemie UNIX jest udoskonalona obsługa urządzeń. Pamięć zawsze była jednym z najbardziej krytycznych czynników wpływających na wydajność baz danych. Duże uniksowe bazy danych (bez klastrów), które znajdowały się na szczycie 18 Część I ♦ Funkcje zarządzania bazą danych rankingów wydajności ogólnego przetwarzania transakcyjnego TPC-C, osiągały to dzięki korzystaniu z 64-bitowej platformy sprzętowej i systemu operacyjnego. Gdy serwer SQL Server mógł korzystać z porównywalnej 64-bitowej platformy złożonej z procesora Intel Itanium 2 i systemu Windows Server 2003, od razu uplasował się na szczycie rankingów TPC-C. Serwer SQL Server 2005 korzysta z 64-bitowości systemu Windows Server 2003 i dodatkowo obsługuje architekturę NUMA (ang. Non-Uniform Memory Architecture). Korzystając z platformy Windows Server 2003, serwer SQL Se- rver 2005 jest zgodny zarówno z 64-bitową architekturą Itanium IA-64, jak i AMD x64. Macierzysta obsługa 64-bitowości Gdy serwer SQL Server 2005 zostanie uruchomiony pod systemem Windows Server 2003 zgodnym z 64-bitowymi procesorami Intel Itanium, będzie obsługiwał układy Itanium i Itanium 2. Po uruchomieniu serwera SQL Server 2005 pod systemem Win- dows Server 2003 for 64-bit Extended Systems, będzie współpracował z 64-bitowymi układami Opteron i Athlon 64 firmy AMD, a także z procesorami Intel Xeon z techno- logią EMT64 (ang. Extended Memory 64 Technology). Wszystkie podstawowe usługi serwera SQL Server 2005 w pełni obsługują zarówno 32-, jak i 64-bitowe platformy sprzętowe. Do usług tych zaliczają się m.in. SQL Server Engine, Analysis Services, SQL Agent i Reporting Services. Prawdziwą korzyścią wynikającą z przeniesienia ba- zy danych na platformę 64-bitową nie jest większa moc obliczeniowa, a raczej znacz- nie zwiększona adresowalna pamięć. Na rysunku 1.1 przedstawiono porównanie mak- symalnej adresowalnej pamięci 32-bitowego serwera SQL Server i 64-bitowej wersji serwera SQL Server 2005. Rysunek 1.1. Porównanie 32- i 64-bitowego adresowania pamięci Architektura 32-bitowa ograniczona jest maksymalnie do 4 GB adresowalnej pamięci. W systemie Windows ograniczenie to jest równomiernie podzielone między system operacyjny i aplikacje. Inaczej mówiąc, 2 GB pamięci zarezerwowane jest dla syste- mu Windows, natomiast taka sama pojemność dla aplikacji. Korzystając z technologii AWE (ang. Address Windowing Extensions) dostępnej w 32-bitowej wersji systemu Windows, 32-bitowa wersja serwera SQL Server jest w stanie zaadresować pamięć RAM o maksymalnej pojemności wynoszącej 32 GB. Choć jest to znaczny wzrost, nadal dodatkowy obszar pamięci był przeznaczany na stronicowanie umożliwiające Rozdział 1. ♦ Funkcje związane z architekturą bazy danych 19 uzyskanie dostępu do odpowiednich stron pamięci. Wprowadzenie obsługi 64-bitowej architektury niemal zupełnie wyeliminowało ograniczenia pamięci. Uzyskano to przez zwiększenie maksymalnej pojemności adresowalnej pamięci do 32 TB. Aktualnie ża- den system produkcyjny nie posiada pamięci RAM, której pojemność byłaby choćby zbliżona do tak dużej pojemności. Maksymalna pojemność pamięci RAM, w przypad- ku której testowano serwer SQL Server 2005, wynosiła 512 GB. Po pojawieniu się kolejnej wersji dodatku Service Pack dla systemu Windows Server 2003 maksymalna obsługiwana pojemność pamięci ma się zwiększyć do 1 TB. Obsługa architektury NUMA Kolejną nową funkcją wpływającą na system operacyjny Windows Server 2003 jest architektura NUMA (ang. Non-Uniform Memory Architecture). NUMA jest archi- tekturą systemową wykorzystywaną przez niektórych producentów systemów, takich jak IBM i Unisys. Architektura NUMA zarządza w systemach wieloprocesorowych obciążeniem procesora i pamięci bardziej wydajnie niż zwykła architektura SMP. W standardowych systemach SMP wraz ze wzrostem szybkości i liczby procesorów rywalizacja między nimi o dostęp do pamięci powoduje konkurowanie o magistralę. Doprowadza to do opóźnień w przetwarzaniu i blokuje możliwość skalowania syste- mu. W efekcie systemy SMP nie skalują się liniowo wraz ze wzrostem liczby proce- sorów. Architektura NUMA została zaprojektowana w celu rozwiązania problemu wy- stępującego w systemach SMP, polegającego na tym, że procesory potrafią uzyskać dostęp do danych zawartych w pamięci RAM szybciej niż pamięć i magistrala syste- mowa są w stanie je dostarczyć. Architektura NUMA grupuje procesory i pamięć RAM w złożone z kilku procesorów lokalne zestawy. Są one połączone ze sobą za pośred- nictwem zewnętrznej magistrali przesyłającej dane wymieniane przez zestawy. Poprzez zastosowanie zestawów rozwiązuje się problem z rywalizacją procesorów o dostęp do pamięci, ograniczając liczbę układów, które ze sobą konkurują. W celu maksymalne- go wykorzystania zalet architektury NUMA zarówno system operacyjny, jak i aplika- cje muszą być tak zaprojektowane, aby zminimalizować ilość danych przesyłanych między zestawami i zmaksymalizować czas dostępu do pamięci dla poszczególnych zestawów. Jeśli system operacyjny i aplikacje zostały odpowiednio zaprojektowane, architektura NUMA umożliwi prawie liniowe skalowanie, gdy będą dodawane kolej- ne procesory. W celu uzyskania jak największej bliskości w jednym zestawie wątków i pamięci, z której one korzystają, system Windows Server 2003 i serwer SQL Server 2005 spożytkowują zalety architektury NUMA. Obsługa hiperwątkowości Częściowo dzięki wprowadzeniu przez Microsoft w systemie Windows Server 2003 obsługi hiperwątkowości serwer SQL Server 2005 też może skorzystać z tej techno- logii. Hiperwątkowość jest technologią stosowaną w układach Intela, która dla każde- go fizycznego procesora komputera tworzy dwa logiczne procesory. Każdy logiczny procesor jest w stanie w tym samym czasie przetwarzać niezależne wątki. Celem hi- perwątkowości jest zaoferowanie lepszego wykorzystywania zasobów przez aplikacje wielowątkowe lub wiele programów uruchomionych na jednym komputerze. Choć 20 Część I ♦ Funkcje zarządzania bazą danych hiperwątkowość stwarza potencjał zwiększenia przepustowości serwera, logiczne pro- cesory rywalizują o zasoby systemowe, takie jak dane znajdujące się w pamięci pod- ręcznej fizycznego procesora. Rywalizowanie o zasoby uniemożliwia procesorowi z hiperwątkowością pracę z wydajnością, taką jak porównywalny system wyposażony w dwa fizyczne układy. Obsługa hiperwątkowości systemu Windows Server 2003 wykorzystywana jest przez serwer SQL Server 2005 na dwa podstawowe sposoby. W przeciwieństwie do syste- mu Windows 2000, w przypadku licencji system Windows Server 2003 uwzględnia jedynie liczbę fizycznych procesorów. A zatem pojedynczy układ z hiperwątkowością jest licencjonowany jako jeden procesor, a nie jak dwa, co miałoby miejsce w syste- mie Windows 2000. To pierwsza korzyść. Kolejna jest taka, że w przypadku kompute- ra z procesorem obsługującym hiperwątkowość system Windows Server 2003 oferuje udoskonalone szeregowanie wątków. Wymienione rozszerzenia zwiększają wydajność wielowątkowych aplikacji, takich jak serwer SQL Server. Mechanizm serwera SQL Server W pierwszym podrozdziale tego rozdziału omówiono ogólnie obsługę nowych urzą- dzeń przez serwer SQL Server 2005, natomiast niniejszy zostanie poświęcony kilku najważniejszym udoskonaleniom, jakie Microsoft wprowadził w mechanizmie serwe- ra SQL Server. Integracja z platformą .NET Framework Najbardziej istotnym rozszerzeniem mechanizmu serwera SQL Server 2005 jest inte- gracja z platformą Microsoft .NET Framework. Dzięki niej zwiększono możliwości serwera SQL Server 2005 w zakresie tworzenia procedur przechowywanych, funkcji użytkownika, wyzwalaczy, agregatów i typów użytkownika przy użyciu dowolnego języka .NET, takiego jak VB.NET, C# lub J#. Integracja platformy .NET CLR z ser- werem SQL Server 2005 jest nie tylko powierzchowna, ponieważ mechanizm serwera SQL Server obsługuje aktywne środowisko CLR. Więcej informacji na temat integra- cji platformy .NET Framework z serwerem SQL Server 2005 zawarto w rozdziale 4. Rozszerzona obsługa wielu instancji Kolejnym ważnym rozszerzeniem wersji Enterprise Edition serwera SQL Server 2005 jest obsługa maksymalnie 50 instancji. Dla porównania serwer SQL Server 2000 ob- sługiwał maksymalnie 16 instancji. Rozszerzenie to jest szczególnie istotne dla firm zajmujących się hostingiem, które w ramach swoich usług internetowych dzierżawią wiele instancji serwera SQL Server. Rozdział 1. ♦ Funkcje związane z architekturą bazy danych 21 Nowe typy danych Serwer SQL Server 2005 obsługuje też kilka nowych typów danych. Choć integracja platformy .NET Framework umożliwia korzystanie z typów danych użytkownika, ser- wer SQL Server 2005 udostępnia również kilka innych nowych własnych typów da- nych. Są to takie typy, jak varbinary(max) i XML. Typ danych varbinary(max) oferuje nową metodę używania w serwerze SQL Server obiektów LOB. W przeciwieństwie do starszych typów danych image i text, nowy typ varbinary(max) może pełnić funk- cję zmiennej. Ponadto typ ten może być traktowany przez kod źródłowy jak mniejsze typy danych pozwalające na stosowanie prostszych i bardziej spójnych wariantów. Nowy typ danych XML oparty na typie varbinary(max) umożliwia przechowywanie do- kumentów XML w bazie danych. Jednak w przeciwieństwie do typu danych varbina- ry(max), który w zasadzie jest uniwersalny, nowy typ XML stworzono z myślą o danych XML. W związku z tym typ ten obsługuje weryfikację dokumentów XML wykorzy- stującą schemat. Więcej informacji na temat nowych typów danych oferowanych przez serwer SQL Server 2005 zawarto w rozdziale 7. Technologie Database Snapshot i Database Mirroring Umożliwiając serwerowi SQL Server 2005 natychmiastowe udostępnienie rezerwo- wej bazy danych, technologia Database Mirroring chroni przed skutkami awarii pod- stawowej bazy danych. Database Mirroring jest technologią zwiększającą dostępność bazy danych, która współpracuje z wszystkimi standardowymi urządzeniami obsługi- wanymi przez serwer SQL Server. Dzięki niej pomiędzy podstawowym i duplikującym serwerem nie trzeba stosować żadnego wspólnego urządzenia masowego. Technolo- gia nie narzuca też ograniczeń dotyczących odległości serwerów. Działanie technolo- gii polega na przesyłaniu dzienników transakcji między podstawowym i duplikującym serwerem. Jest to zatem nowe rozwiązanie pozwalające na przekazywanie dzienników w czasie rzeczywistym. Technologia Database Mirroring może być użyta dla jednej lub wielu baz danych. Technologia Database Snapshot umożliwia wykonanie w określonej chwili migawki bazy danych tylko do odczytu. Technologia najlepiej nadaje się do tworzenia kopii ba- zy danych na potrzeby raportowania lub kopii zapasowych bazy, których można użyć do odtworzenia do poprzedniego stanu produkcyjnej bazy danych. W celu utworzenia serwera raportującego, korzystającego z danych znajdujących się na duplikującym serwerze, technologie Database Snapshot i Database Mirroring mogą być ze sobą po- łączone. Dostęp do danych zawartych na serwerze duplikującym nie może zostać uzy- skany bezpośrednio, ponieważ zawsze znajduje się on w trybie odzyskiwania. Jednak dla duplikowanej bazy danych można utworzyć migawkę, a następnie na potrzeby ra- portowania korzystać z widoku bazy danych. Więcej informacji na temat widoków bazy danych i duplikowania zawarto w rozdziale 3. 22 Część I ♦ Funkcje zarządzania bazą danych Obsługa żądań HTTP Jednym z innych istotnych rozszerzeń mechanizmu serwera SQL Server jest obsługa żądań HTTP. Możliwość przetwarzania przez serwer SQL Server przychodzących żą- dań HTTP pozwala mu zaoferować wykonywanie instrukcji SQL i wywoływanie pro- cedur przechowywanych za pośrednictwem protokołu SOAP. Oznacza to, że serwer SQL Server 2005 jest w stanie przetwarzać przychodzące żądania HTTP bez dostępu do serwera IIS lub innego serwera HTTP. Będąca nowością obsługa żądań HTTP po- szerza możliwości serwera SQL Server o nasłuch HTTP. Uwzględniona jest w tym obsługa punktów końcowych HTTP identyfikujących adres URL, port i żądania, które mają być przetworzone. Serwer SQL Server może też publikować dla punktów końco- wych HTTP usługi internetowe przy użyciu języka WSDL (ang. Web Services Descrip- tion Language). Obsługa żądań HTTP przez serwer SQL Server jest zgodna z takimi standardami, jak SOAP 1.0, SOAP 1.2, WSDL 1.1, a także z protokołami uwierzytel- niania systemu Windows i serwera SQL Server oraz protokołem SSL. Aby obsługa żądań HTTP była bardziej zgodna z oprogramowaniem warstwy pośredniej, procedu- ry przechowywane mogą zwracać zestawy wynikowe jako obiekt ADO.NET DataSet. Zdarzenia serwerowe i wyzwalacze DDL Nowe zdarzenia i wyzwalacze DDL serwera SQL Server 2005 umożliwiają kodowa- nie działań będących odpowiedzią na zmiany zachodzące w systemie. Choć obie te funkcje odgrywają podobną rolę, stosowane są w dość odmienny sposób. Wyzwalacze DDL, podobnie jak standardowe wyzwalacze DML, są synchronicznymi zdarzeniami powodującymi wykonanie procedur przechowywanych. Więcej na temat wyzwalaczy DDL zawarto w rozdziale 4. Z kolei zdarzenia serwerowe są asynchroniczne. W modelu zdarzenia serwerowego serwer przesyła zdarzenie do usługi SQL Broker Service, po czym odbiorca może je niezależnie pobrać. Samo zdarzenie ma postać danych XML. Nie jest możliwe cofnię- cie zdarzenia, które może zostać zignorowane, gdy nie pobierze go odbiorca. Po wy- stąpieniu zdarzenia serwerowego generowane jest zdarzenie systemowe, które może powiadomić Cię o zdarzeniu serwerowym. Opcjonalnie przez zdarzenie systemowe może zostać wykonany kod. W poniższym przykładzie zaprezentowano składnię ko- du definiującego powiadomienie o zdarzeniu. CREATE EVENT NOTIFICATION MyDDLEvents ON SERVER FOR DDL_STATEMENTS TO SERVICE MyDDL_log W przykładzie tworzone jest nowe zdarzenie, nadawana powiadomieniu o zdarzeniu na- zwa MyDDLEvents i kojarzone zdarzenie z instrukcją języka DDL. Klauzula TO SERVICE określa, że usługa SQL Broker Service o nazwie MyDLL_log będzie odbiorcą zdarzeń. Więcej na temat usługi można znaleźć w rozdziale 6. Rozdział 1. ♦ Funkcje związane z architekturą bazy danych 23 Rozszerzenia dotyczące plików danych bazy Obecnie serwer SQL Server 2005 umożliwia przy użyciu instrukcji ALTER DATABASE zmianę ścieżki plików danych i plików dzienników powiązanych z bazą danych. Ser- wer SQL Server 2000 oferował możliwość przeniesienia plików bazy danych tempdb. Jednak nie było to już możliwe w przypadku innych baz danych. Jak można oczeki- wać, serwer SQL Server 2005 pozwala na przenoszenie plików tylko w trybie offline. Poniższy przykład ilustruje nowe elementy składni instrukcji ALTER DATABASE. ALTER DATABASE nazwa_bazy_danych MODIFY FILE(name= nazwa_pliku_danych , filename= nowa_ścieżka ) Partycjonowanie danych Kolejnym nowym rozszerzeniem, które pojawiło się w serwerze SQL Server 2005, jest możliwość wykonywania partycjonowania danych. Partycjonowanie danych pozwala na rozbicie pojedynczego obiektu bazodanowego, takiego jak tabela lub indeks, na wie- le części. Nowa funkcja partycjonowania danych ułatwia zarządzanie bardzo dużymi tabelami i indeksami. Partycjonowanie jest niezauważalne dla aplikacji, które „widzą” jedynie sam obiekt bazodanowy i nie dysponują informacją, że przechowywany jest w wielu częściach przez serwer SQL Server. Partycje mogą być tworzone i usuwane bez wpływu na dostępność obiektu bazodanowego. Zasadniczo partycjonowanie umoż- liwia podzielenie danych przechowywanego obiektu na wiele obiektów podrzędnych przy jednoczesnym udostępnianiu aplikacji jednolitego widoku obiektu i wszystkich jego partycji. Na rysunku 1.2 zaprezentowano ogólny schemat partycjonowania. Rysunek 1.2. Partycjonowanie danych Serwer SQL Server 2005 oferuje partycjonowanie danych w przypadku tabel, indek- sów i widoków indeksowanych. Podstawową jednostką stosowaną podczas partycjo- nowania jest wiersz. Partycje mogą być tworzone na podstawie wartości znajdujących się w polach wiersza. Określa się to mianem partycjonowania poziomego. Przykłado- wo, tabela może być partycjonowana według daty, ze zdefiniowaną inną partycją dla każdego roku. Partycjonowanie według daty pozwala na wykonanie przetwarzania typu „przesuwne okna daty”, w przypadku którego możliwe jest usunięcia partycji zawierającej dane z zeszłego roku bez wpływu na dostęp do danych znajdujących się w partycji powiązanej z bieżącym rokiem. 24 Część I ♦ Funkcje zarządzania bazą danych Partycjonowanie danych zapewnia kilka korzyści istotnych w przypadku bardzo du- żych baz danych. Pozwalając na archiwizowanie tylko wybranych partycji, partycjo- nowanie może ułatwić zarządzanie danymi. Przykładowo, w przypadku dużej tabeli partycjonowanej według daty można zarchiwizować tylko dane z bieżącego roku, po- mijając dane z partycji przechowującej dane z poprzedniego roku. Kolejną korzyścią jest to, że w systemach wieloprocesorowych procesor można przeznaczyć do obsługi tylko jednej wybranej partycji, dzięki czemu zwiększy się przepustowość. W celu zastosowania partycjonowania danych należy wykonać dwa podstawowe kro- ki. Pierwszy polega na dokładnym określeniu, jak wybrany obiekt ma być partycjono- wany. Drugi sprowadza się do wyznaczenia dla każdej partycji fizycznej lokalizacji, w której będzie przechowywana. Różne partycje mogą zostać powiązane z jednym lub wieloma plikami grupy. W poniższym przykładzie pokazano składnię instrukcji tworzących funkcję i schemat partycji zakresowej, która dokona partycjonowania tabeli. CREATE PARTITION FUNCTION MyPF (int) AS RANGE LEFT FOR VALUES (50, 100) GO CREATE PARTITION SCHEME MyPS AS PARTITION MyPF TO (FileGroup1) GO CREATE TABLE MyTable (col1 int, col2 varchar(50)) ON MyPS(col1) GO W pierwszym wierszu tworzona jest funkcja partycji o nazwie MyPF. Łańcuch (int) oznacza, że partycjonowanie będzie wykonywane dla kolumny, którą zdefiniowaniu przy użyciu typu danych int. Słowo kluczowe RANGE określa, że zostanie użyta party- cja zakresowa. Słowo kluczowe LEFT decyduje o tym, która partycja otrzyma wartości graniczne. Użycie tego słowa sprawia, że każdy wiersz posiadający wartość zgodną z wartością graniczną partycji zostanie od razu przesunięty na lewą stronę partycji. Klauzula VALUES służy do definiowania punktów granicznych partycji. Trzeba podkre- ślić, że wyżej podane wartości są punktami granicznymi, a nie samym partycjami. Powoduje to w efekcie utworzenia trzech partycji. Pierwsza partycja będzie zawierała ujemne wartości i dodatnie aż do liczby 50, druga — wartości od 51 do 100, natomiast trzecia — wszystkie wartości od 101 w górę. W drugim wierszu tworzony jest schemat partycji o nazwie MyPS. Klauzula AS PARTI- TION służy do określenia funkcji partycji, która zostanie użyta przez schemat. W przy- kładzie zastosowano funkcję partycji MyPF. Klauzula TO identyfikuje grupę lub grupy plików przechowujące partycje. W przykładzie zastosowano jedną grupę plików o na- zwie FileGroup1. W kolejnym wierszu schemat partycji jest przypisywany do tabeli, która będzie party- cjonowana. W przykładzie pokazana jest rozszerzona składnia instrukcji CREATE TABLE, pozwalająca na partycjonowanie tabeli. Pierwsza część składni instrukcji nie uległa zmianie. Identyfikuje nazwę tabeli (w tym przypadku MyTable) i jej kolumny. Przykła- dowa prosta tabela złożona jest z dwóch kolumn o nazwach col1 i col2. Nowe słowo kluczowe ON służy do określenia schematu partycji, który zostanie użyty. W przykła- dzie zastosowano wcześniej zdefiniowany schemat partycji MyPS. W nawiasach okrą- Rozdział 1. ♦ Funkcje związane z architekturą bazy danych 25 głych podana jest nazwa kolumny z danymi odgrywającymi rolę klucza partycji. W tym przypadku jest to kolumna col1 typu danych int, który musi być zgodny z typem okre- ślonym dla funkcji partycji. Istnieje kilka ograniczeń dotyczących typów kolumn, które mogą pełnić funkcję klu- cza partycji. Ograniczenia te są bardzo podobne do restrykcji nałożonych na kolumny używane w indeksie. Nie można korzystać z kolumn takich typów danych, jak text, ntext i image. To samo dotyczy kolumn typu danych timestamp. Używane mogą być jedynie własne typy danych języka T-SQL. Jako klucza partycji nie wolno zastosować typu użytkow- nika. Można jednak wykorzystać w tym celu nowy typ danych varchar(max). Istnieje też ograniczenie liczby partycji przypadających na tabelę; może ich być maksymalnie 1000. Wszystkie partycje muszą znajdować się na jednym węźle. Rozszerzenia indeksu Serwer SQL Server 2005 oferuje wiele rozszerzeń dotyczących indeksów. Pierwsze powoduje, że przebudowa indeksu zgrupowanego nie wiąże się już z koniecznością wykonania takiej samej operacji w przypadku wszystkich indeksów niezgrupowanych. Gdy w serwerze SQL Server 2000 przebudowywano zgrupowany indeks, to samo na- leżało zrobić dla wszystkich powiązanych z nim indeksów niezgrupowanych. W przy- padku serwera SQL Server 2005 indeksy niezgrupowane pozostają nienaruszone pod- czas przebudowy zgrupowanego indeksu. Kolejne nowe rozszerzenie pozwala na dołączanie do indeksu kolumn pozbawionych klucza. Dzięki temu rozszerzeniu więcej kwerend może być obsłużonych przez indeks, co przyczynia się do zwiększenia wydajności przetwarzania. Jednocześnie minimali- zuje się liczbę przypadków, w których mechanizm serwera SQL Server zmuszony jest do użycia tabeli w celu zakończenia przetwarzania kwerendy. Mechanizm serwera może spełnić wymagania kwerendy, używając jedynie danych oferowanych przez za- angażowany indeks. Jednym z wygodniejszych aspektów nowego rozszerzenia jest to, że dołączane kolumny, które nie tworzą klucza, nie są uwzględniane w maksymalnym rozmiarze indeksu. Dzięki temu nadal wynosi on 900 bajtów. Następnym nowym rozszerzeniem indeksu dodanym przez Microsoft do serwera SQL Server 2005 jest możliwość wyłączania indeksu. Operacja taka powoduje, że indeks przestaje być utrzymywany przez mechanizm serwera SQL Server, a także uniemoż- liwia skorzystanie z indeksu. Po wyłączeniu indeksu serwer SQL Server zwalnia zaj- mowaną przez niego przestrzeń dyskową, ale zatrzymuje metadane indeksu. Zanim wyłączony indeks będzie mógł być ponownie uaktywniony, musi zostać odbudowany przy użyciu instrukcji ALTER INDEX. Operacje na indeksie w trybie online W poprzednich wersjach serwera SQL Server nie można było uzyskać dostępu do in- deksu, gdy był akurat przebudowywany. Zanim można było ponownie uaktualnić ta- belę, należało poczekać do zakończenia operacji przebudowywania indeksu. Dzięki 26 Część I ♦ Funkcje zarządzania bazą danych nowym operacjom przetwarzającym indeks w trybie online w przypadku serwera SQL Server 2005 aplikacje mogą uzyskiwać dostęp do indeksu, a także wykonywać dla ta- beli operacje aktualizacji, wstawiania i usuwania, gdy trwa przebudowywanie indeksu. Więcej informacji na temat operacji wykonywanych przez serwer SQL Server 2005 na indeksie w trybie online zawarto w rozdziale 3. Rozszerzenia dotyczące katalogu systemowego i metadanych W serwerze SQL Server 2000 i jego starszych wersjach katalog systemowy i metada- ne jako część każdej bazy danych przechowywane były w bazie danych master. W ser- werze SQL Server 2005 uległo to zmianie i obecnie metadane znajdują się w bazie danych resource. Mają one postać obiektu sys. Serwer SQL Server 2005 nie umożli- wia już uzyskania bezpośredniego dostępu do tabel systemowych. Dzięki tej zmianie poprawiono poziom zabezpieczeń. Konsolidując systemowe metadane, przyspieszono wykonywanie aktualizacji. Metadane katalogu są zabezpieczane przy użyciu filtrów poziomu wiersza. Więcej informacji na temat zabezpieczeń poziomu wiersza zapew- nianych przez serwer SQL Server 2005 można znaleźć w podrozdziale „Zabezpiecze- nia”, znajdującym się w dalszej części rozdziału. Jeśli nie używano nieudokumentowanych tabel systemowych, czego nieustannie Micro- soft każdemu odradzał, nowe metadane będą całkowicie zgodne wstecz. Systemowe metadane w serwerze SQL Server 2005 udostępniane są przy użyciu zestawu wido- ków katalogu. Widoki katalogu, a także widoki ANSI INFORMATION_SCHEMA, funkcje właściwości i funkcje wbudowane eliminują potrzebę korzystania z tabeli systemowych w taki sposób, jak w przypadku serwera SQL Server 2000. Serwer SQL Server 2005 oferuje ponad 250 nowych widoków katalogu, które mogą być przeglą- dane za pośrednictwem schematu sys każdej bazy danych użytkownika. W celu od- szukania nowych widoków systemowych należy użyć narzędzia Microsoft SQL Server Manager Studio, a następnie uruchomić program Object Browser i przejść do węzła Databases| baza_danych |Views|System Views. Można też otworzyć okno nowej kwerendy i wprowadzić następujące zapytanie: SELECT * FROM sys.system_views Funkcja MARS (Multiple Active Results Sets) Poprzednie wersje serwera SQL Server były ograniczone do jednego aktywnego ze- stawu wynikowego przypadającego na połączenie. Obecnie serwer SQL Server 2005 jest w stanie obsługiwać dla pojedynczego połączenia wiele aktywnych zestawów wynikowych. Nowa funkcja MARS umożliwia nawiązanie połączenia z bazą danych, wykonanie kwerendy i zmodyfikowanie jej wyników, a następnie rozpoczęcie kolej- nego zapytania i przetworzenie jego wyników. Aplikacje mogą się swobodnie przełą- czać między wieloma aktywnymi zestawami wynikowymi. W rozdziale 4. wyjaśnio- no na przykładach, jak korzystać z nowej funkcji MARS. Rozdział 1. ♦ Funkcje związane z architekturą bazy danych 27 Ładowanie dużej ilości danych W przypadku wczytywania dużych ilości danych serwer SQL Server 2005 oferuje kil- ka znakomitych udoskonaleń i większą wydajność. Obecnie operacja wczytywania oparta jest na pliku formatu XML, który zapewnia wszystkie funkcjonalności formatu pliku używanego w poprzednich wersjach narzędzia BCP (ang. Bulk Copy Program) i nie tylko. Ponadto format XML sprawia, że plik formatu obsługiwanego przez narzę- dzie BCP jest prostszy do odczytania i zrozumienia. Z myślą o zachowaniu zgodności wstecz z istniejącymi aplikacjami plik starego formatu może być nadal używany. Procesor ładowania dużej ilości danych realizowany przez serwer SQL Server 2005 obsługuje obecnie rejestrowanie złych wierszy. Dzięki temu proces może być konty- nuowany nawet wtedy, gdy natrafi na niepoprawne wiersze lub dane. Nieprawidłowo sformatowane wiersze zapisywane są w pliku błędów wraz z opisem okoliczności wy- stąpienia błędu. Wiersze naruszające ograniczenia przekazywane są do tabeli błędów wraz z opisem sytuacji, w której wystąpił błąd. Wyszukiwanie pełnotekstowe W serwerze SQL Server 2005 rozszerzono również obsługę funkcji wyszukiwania peł- notekstowego. Starsze wersje serwera SQL Server do utworzenia katalogów wyszu- kiwania pełnotekstowego wymagały użycia procedur przechowywanych. W serwerze SQL Server 2005 pojawiło się kilka nowych instrukcji DDL umożliwiających korzy- stanie z funkcji wyszukiwania pełnotekstowego. Przykładowo, dwie nowe instrukcje DDL to CREATE FULLTEXT CATALOG i CREATE FULLTEXT INDEX. Do innych rozszerzeń wyszukiwania pełnotekstowego, które dodano do serwera SQL Server 2005, należy zaliczyć możliwość archiwizowania i odzyskiwania katalogów i indeksów funkcji wyszukiwania wraz z danymi zawartymi w bazie danych. Katalo- gi i indeksy wyszukiwania pełnotekstowego mogą być podłączane do odpowiednich baz danych i od nich odłączane. Kolejnym interesującym rozszerzeniem serwera SQL Server związanym z wyszukiwaniem jest możliwość użycia tezaurusa w celu znale- zienia synonimów szukanych słów. Rozszerzenia procesora zapytań języka T-SQL W serwerze SQL Server 2005 pojawiło się kilka rozszerzeń procesora zapytań, takich jak CTE (ang. Common Tables Expressions), rozbudowana klauzula TOP i instrukcja WAITFOR, a także nowa klauzula OUTPUT instrukcji DML. W rozdziale 4. zamieszczono przykłady zastosowania tych rozszerzeń procesora zapytań języka T-SQL. 28 Część I ♦ Funkcje zarządzania bazą danych Zabezpieczenia Odkąd Microsoft zainaugurował program Trustworthy Computing Initiative, zabez- pieczenia stały się dla firmy ważnym elementem strategii. Celem tego programu jest sprawienie, aby wszystkie produkty Microsoftu były bezpieczniejsze i bardziej nie- zawodne. Jak można było oczekiwać, serwer SQL Server 2005 uwzględniony w pro- gramie stał się przedmiotem kilku bardzo istotnych rozszerzeń zabezpieczeń. Celem Microsoftu jest uczynienie produktu bardziej bezpiecznym i niezawodnym. Wymogi te brane są pod uwagę na każdym etapie, począwszy od projektowania, a skończyw- szy na wdrażaniu. Projektując rozszerzenia zabezpieczeń serwera SQL Server 2005, Microsoft postępował zgodnie z kilkoma podstawowymi zasadami. Przede wszystkim firmie zależało na tym, aby serwer był bezpieczny od razu po zainstalowaniu. Bez- pieczne środowisko miało być rezultatem odpowiedniego skonfigurowania domyśl- nych ustawień instalacyjnych. Choć użytkownikom pozostawiono możliwość wyboru mniej bezpiecznych ustawień, taką decyzję należy podejmować z rozwagą. W dalszej kolejności Microsoft opracowując swoje systemy przestrzegał zasady najmniejszych przywilejów. System jest tak projektowany, aby użytkownik dysponował tylko przy- wilejami niezbędnymi do zrealizowania określonego zadania, i nic ponadto. Micro- softowi zależało wreszcie na zmniejszeniu liczby obszarów narażonych na atak. W tym celu umożliwił zainstalowanie tylko niezbędnych komponentów. Na wszystkie nowe funkcje zabezpieczeń serwera SQL Server 2005 duży wpływ mia- ły kwestie, które Microsoft odkrył na początku 2002 r. podczas wzmożonych działań mających na celu poprawienie zabezpieczeń, a następnie uwzględnił przy projektowa- niu i wdrażaniu serwera SQL Server 2005. Do niektórych podstawowych rozszerzeń zabezpieczeń serwera SQL Server 2005, które omówiono w tym podrozdziale, należy zaliczyć: wyizolowanie użytkowników ze schematów, nowy kontekst wykonywania procedury przechowywanej, bardziej szczegółowa kontrola uprawnień, wymuszanie stosowania zasady haseł, modyfikacje zabezpieczeń poziomu wiersza i udoskonalenie zabezpieczeń katalogu. Wyizolowanie użytkowników ze schematów Najbardziej istotną zmianą dotyczącą zabezpieczeń, która pojawiła się w serwerze SQL Server 2005, jest wyizolowanie użytkowników ze schematów. Mianem użytkow- nika, a ściślej pryncypała określa się dowolną jednostkę, w powiązaniu z którą za- bezpieczane są obiekty bazy danych. Pryncypałem może być użytkownik systemu Windows lub serwera SQL Server, rola lub rola aplikacji. W przypadku serwera SQL Server 2000 obiekty bazy danych bezpośrednio będące w posiadaniu użytkowników i sami użytkownicy znajdowali się w tabeli systemowej sys_users. W serwerze SQL Server 2005 uległo to zmianie. Obecnie obiekty bazy danych są w posiadaniu schema- tów. Użytkownicy nie mogą już bezpośrednio być posiadaczami obiektów bazy da- nych, są natomiast posiadaczami schematów. W serwerze SQL Server 2005 użyt- kowników i innych pryncypałów zabezpieczeń można znaleźć w nowym widoku sys. database_principals. Lista schematów serwera SQL Server 2005 jest udostępniana w nowym widoku sys.schemas. Rozdział 1. ♦ Funkcje związane z architekturą bazy danych 29 Schemat jest kontenerem obiektów. Identyfikowany jest przez trzeci składnik cztero- częściowej składni nazwy obiektów stosowanej przez serwer SQL Server. W poniż- szym przykładzie zaprezentowano składnię nazewniczą używaną przez serwer SQL Server 2005, w której każda część jest coraz dokładniejsza. nazwa_serwera.nazwa_bazy_danych.nazwa_schematu.nazwa_obiektu W przypadku wszystkich poprzednich wersji serwera SQL Server nazwa schematu i właściciela w zasadzie oznaczały to samo. W serwerze SQL Server 2005 dokonano oddzielenia właściciela od schematu. Gdy serwer SQL Server 2000 i jego starsze wer- sje identyfikowały nazwy obiektów, najpierw szukały łańcucha nazwa_bazy_danych. nazwa_użytkownika.nazwa_obiektu. Jeśli się to nie powiodło, serwer szukał łańcucha nazwa_bazy_danych.dbo.nazwa_obiektu. Głównym powodem oddzielenia w serwerze SQL Server 2005 użytkowników od sche- matów jest rozwiązanie problemu polegającego na konieczności zmiany właściciela dla wielu obiektów bazy danych, gdy określony użytkownik (inaczej stary właściciel obiektów) zakończy pracę w firmie. Zmiana właściciela obiektu bazy danych powo- dowała też modyfikację jego nazwy. Jeśli na przykład właściciel tabeli Table1 w ba- zie danych MyDB zmieni nazwę z użytkownik UserA na użytkownik UserB, kwalifiko- wana nazwa tabeli Table1 zmieni się z MyDB.UserA.Table1 na MyDB.UserB.Table1. Aby zapobiec temu problemowi, wiele organizacji zaadaptowało standard, w którym po- siadaczem wszystkich obiektów bazy danych jest schemat dbo. Jednak w samym ser- werze nie było nic, co by wymusiło stosowanie tego standardu. Sposób praktycznej realizacji przez serwer SQL Server 2005 zagadnienia schematu bazy danych wprowadza poziom abstrakcji w łańcuchu praw własności do obiektu bazodanowego. Łańcuch taki pokazano na rysunku 1.3. Rysunek 1.3. Łańcuch praw własności do obiektu bazodanowego serwera SQL Server 2005 W przypadku serwera SQL Server 2005 obiekty bazodanowe zawarte są w schema- tach, będących w posiadaniu użytkowników. Nowy poziom abstrakcji sprawia, że pro- blem ze zmianą praw własności do obiektów bazy danych staje się znacznie mniejszy. Usunięcie w serwerze SQL Server 2005 użytkownika będącego właścicielem obiek- tów bazodanowych oznacza, że administrator musi teraz jedynie zmienić właściciela schematu, a nie wszystkich poszczególnych obiektów bazodanowych. Dzięki temu 30 Część I ♦ Funkcje zarządzania bazą danych znacznie spada liczba obiektów, które administrator bazy danych musi zmodyfikować w celu zmiany ich właściciela. Aby zmienić właściciela wszystkich obiektów bazy da- nych serwera SQL Server 2005, należy po prostu ustalić innego właściciela schematu, a następnie usunąć starego użytkownika. Zmiana właściciela obiektu bazodanowego nie powoduje modyfikacji jego nazwy, ponieważ zmianie nie ulega nazwa schematu, a jedynie jej właściciel. Jak można oczekiwać, nowy obiekt schematu zmienia sposób, w jaki serwer SQL Server tłumaczy nazwę obiektu bazodanowego. Obecnie z każdym użytkownikiem powiązany jest domyślny schemat. Serwer SQL Server 2005 szukając niekwalifiko- wanej nazwy obiektu użyje najpierw domyślnego schematu użytkownika. Jeśli się to nie uda, serwer SQL Server poszuka obiektu korzystając ze schematu dbo. Jeśli na przykład użytkownik UserA posiada domyślny schemat MySchema1 i wykona kwerendę szukającą tabeli Table1, serwer spróbuje najpierw przetłumaczyć nazwę przy użyciu schematu MySchema1.Table1, a następnie korzystając z dbo.Table1. Podobnie jak bazy danych serwera SQL Server 2000 mogły zawierać wiele użytkow- ników i ról, również bazy serwera SQL Server 2005 mogą dysponować wieloma sche- matami. Każdy schemat posiada własnego pryncypała, którym zwykle jest użytkownik lub rola. Na potrzeby rozwiązywania nazw każdemu użytkownikowi przypisywany jest domyślny schemat. Same obiekty bazodanowe zawarte są w schemacie. W celu utworzenia w schemacie nowych obiektów bazy danych trzeba dysponować uprawnie- niem CREATE dla obiektu bazodanowego i uprawnieniem ALTER lub CONTROL dla schema- tu. Łańcuch praw własności nadal jest oparty na właścicielach, a nie na schematach. W serwerze SQL Server 2005 dokonano kilku zmian w instrukcjach DDL, które mają umożliwić korzystanie z rozdzielonych użytkowników i schematów. Należy do nich zaliczyć instrukcje CREATE, DROP i ALTER, powiązane z obiektami USER, ROLE i SCHEMA. Poniższy kod ukazuje, w jaki sposób schemat jest tworzony i przypisywany. /* Utworzenie identyfikatora logowania */ CREATE LOGIN UserA WITH PASSWORD = ABC123#$ GO /* Utworzenie użytkownika dla identyfikatora – istnienie schematu nie jest konieczne */ CREATE USER UserA
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Microsoft SQL Server 2005. Nowe możliwości
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ą: