Professional Documents
Culture Documents
SQL Server 2005. Wyciśnij Wszystko
SQL Server 2005. Wyciśnij Wszystko
Wycinij wszystko
Autor: Eric L. Brown
Tumaczenie: Kosma Nitkiewicz
ISBN: 978-83-246-0549-1
Tytu oryginau: SQL Server 2005 Distilled
(MS Windows Server System)
Format: B5, stron: 320
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treci
Wstp ..........................................................................................................11
O autorze ....................................................................................................17
Rozdzia 1. Wprowadzenie do platformy SQL Server 2005 ...........................................19
Wersje platformy SQL Server 2005 ...............................................................22
Rnice pomidzy SQL Server Enterprise a Standard Edition ................... 22
SQL Server 2000 w wersji 64-bitowej ........................................................... 25
Nowoci w SQL Server 2005 .......................................................................... 26
Skalowalno bazy danych podstawy .........................................................30
Baza danych jako serwer aplikacji ..................................................................32
Zwikszenie dostpnoci systemw SQL Server ...........................................36
Wysoka dostpno na platformie SQL Server 2005 .....................................36
Rozszerzenie wysokiej dostpnoci
do wszystkich aplikacji bazodanowych ....................................................... 39
Dystrybucja dziennikw kopii zapasowej ...................................................... 41
Oglna dostpno danych .............................................................................42
Partycjonowanie tabel horyzontalne partycjonowanie danych ................ 43
Widoki materializowane ................................................................................. 44
Indeksowanie w trybie online ........................................................................ 45
Utrzymywanie bardzo duych baz danych .....................................................45
Rozszerzenia funkcjonalnoci wykonywania kopii zapasowej
i odzyskiwania danych ................................................................................. 46
Przegld funkcji Business Intelligence platformy SQL Server 2005 ............46
Przegld usug Analysis Services .................................................................... 48
Data Mining .................................................................................................... 50
Spis treci
Spis treci
10
ROZDZIA 4.
Funkcje do projektowania
baz danych
W tym rozdziale omwi zestaw funkcji, z jakimi projektanci baz danych s zazwyczaj zaznajomieni. Administratorzy baz danych mog skania si do pominicia tego zagadnienia, ja jednake tak nie postpi. Zmiany, ktre wprowadzono w prezentowanej wersji SQL Server, mona po prostu opisa jako ponowne
opracowanie struktur sucych do projektowania nowych klas aplikacji. W SQL
Server 2005 rozszerzalno caociowej platformy baz danych zostaa znacznie
zwikszona. Moliwoci SQL Server w zakresie obsugi wsplnego rodowiska
uruchomieniowego (ang. Common Language Runtime CLR) mog spowodowa
oszoomienie. Takich elementw jest wicej. Wprowadzenie kodu zarzdzanego
do SQL Server oznacza wiksze moliwoci integracji dla rozwoju pakietw
programw i niestandardowych aplikacji. Zasadniczo platforma SQL Server
skada si z trzech warstw.
Pierwsz warstw stanowi podstawowe mechanizmy, takie jak SQL
160
161
162
pozostaj wszystkie narzdzia, a Visual Studio jest rozszerzone o now moliwo projektowania komponentw SQL Server. Niestety, nie ma moliwoci
tworzenia aplikacji w C# za pomoc Business Intelligence Development Studio.
Warto teraz zapozna si z najczciej omawian funkcj SQL Server 2005, zapewniajc moliwo wsppracy z .NET Framework.
163
164
Zestaw jest przechowywany w wierszu tabeli bazy danych. Aby sprawdzi, ktre
zestawy zostay zaadowane, naley przejrze katalog sys.assemblies. Po zaadowaniu zestawu nastpuje ustawienie atrybutu polecenia DDL verbiage w celu
ustalenia stanu bezpieczestwa tego zestawu. Moliwe s trzy podstawowe stany:
SAFE. Ten tryb dostpu przypisuje zestaw do procesu SQL Server.
External_Access. W ten sposb zestaw moe uzyskiwa dostp
165
waciwoci procedury.
166
Opis
Format
MaxByteSize
IsByteOrdered
ValidationMethodName
IsFixedLength
Warto logiczna, ktra okrela, czy wszystkie instancje tego typu maj tak
sam dugo.
Funkcje uytkownika
Metody napisane w dowolnym jzyku programowania .NET mog zosta zarejestrowane jako funkcje uytkownika. Wprowadzone w SQL Server 2000 funkcje
uytkownika s podprogramami, ktre na wejciu akceptuj zerowe lub skalarne wartoci albo parametry tabelaryczne oraz zwracaj wartoci skalarne lub tabelaryczne. Zamy, e projektant pracuje nad aplikacj ksigow i musi zaimplementowa obliczanie podatku dochodowego, paconego przez poszczeglnych
pracownikw w cigu pewnego czasu. W tym celu projektant rejestruje metod,
specjalnie napisan w C#, jako funkcj zdefiniowan przez uytkownika. Mona wtedy atwo napisa zapytania, ktre bd wykorzystywa funkcj uytkownika, suc do wyliczania podatku dochodowego pracownikw.
167
agregacji i mechanizmu gromadzcego nowe wartoci, ktry skada si z czterech metod: Init(), Accumulate(), Merge() i Terminate (). Podczas deklarowania UDAgg konieczne jest jawne okrelenie atrybutu SqlUserDefinedAggregate, ktry informuje SQL Server, e deklarowany typ danych dostosowuje
si do struktury UDAgg. Dwie obowizkowe waciwoci atrybutu SqlUserDefinedAggregate s wymagane przez format serializacji i s to:
waciwo Format okrela rodzaj serializacji dla kadego formatu
Opis
Init()
Accumulate()
Merge()
Terminate()
Jeli chodzi o wykonywanie sumowania, przelicze i innych podstawowych funkcji matematycznych, UDAggs s duo bardziej funkcjonalne ni transakcyjny
SQL. Tak wic UDAgg mona wykorzystywa w przypadku funkcji statystycznych, geometrycznych i innych funkcji numerycznych.
Wprowadzenie UDAgg wymaga przestrzegania takich samych zasad zarzdzania i rozmieszczania, co UDT.
168
Projektanci zaznajomieni z tworzeniem aplikacji ADO.NET mog doceni zalety tego samego modelu podczas dodawania logiki do obiektw bazy danych
dostpu do danych .NET. Dodatkowo, kod napisany na jednej warstwie jest atwiejszy do przenoszenia do innej.
169
UWAGA: Niektre wbudowane typy danych SQL Server w zasadzie s przeksztaconymi typami danych SQL Server. W Books Online mona znale artyku:
Typy danych (silnik bazy danych). Naley pamita, e wykorzystywanie SQL Manager Provider i uzyskiwanie dostpu do bazy poprzez kod zarzdzany jest moliwe pod warunkiem, e zastosowany kod jest rozpoznawalny przez SQL Server.
Innymi sowy, typy danych, parametry i zwrcone wartoci musz mie form
odpowiedni dla SQL Server. Poszczeglne typy danych wymieniem w tabeli 4.3,
jednak nie wyszczeglniem tam typw danych uytkownika. Planujc wykorzystywanie typw danych uytkownika w swojej organizacji, warto przygotowa
podobn tabel i doczy j do dokumentacji programu. Rozdzia 6. Kod zawiera przykady sposobw uzyskiwania dostpu i zastosowania obiektw CLR.
Tabela 4.3. Mapowanie typw SQL
Typy SQL (zarzdzany dostawca)
SQLBinary
Typy CLR
Binary
Byte[]
Varbinary
TIMESTAMP
IMAGE
SQLInt64
BIGINT
Int64
SqlInt32
INT
Int32
SQLInt16
SMALLINT
Int16
SQLByte
TINYINT
Byte
CHAR
String
SQLString
VARCHAR
NCHAR
NVARCHAR
TEXT
NTEXT
SYSNAME
SqlDateTime
DATETIME
DateTime
SMALLDATETIME
SqlDecimal
DECIMAL
Decimal
NUMERIC
SqlDouble
FLOAT
SqlSingle
REAL
Double
Float
SqlMoney
MONEY
Decimal
SMALLMONEY
SqlGuid
UNIQUEIDENTIFIER
Guid
SqlBoolean
BIT
Boolean
170
Technologia XML
XML jest technologi, w ktr stale si inwestuje i ktra nieustannie staje si
coraz bardziej interesujca. Pierwotnie XML stanowio rozwizanie wyranie
wyartykuowanych problemw. Obecnie XML jest powszechnie wykorzystywane
poczwszy od Really Simple Syndication (RSS), a po skomplikowan integracj aplikacji, XML jest formatem przekazywania danych. XML jest z natury
samoopisujcym si jzykiem i moe zawiera moc zbioru, zatem wielu projektantw aplikacji bazodanowych stosuje XML do rozwizywania problemw wydajnoci aplikacji. W tym rozdziale przedstawi sposb wykorzystywania funkcji
XML na platformie SQL Server.
Technologia XML
171
efektywnoci zapyta.
SQL Server umoliwia uzyskiwanie dostpu do danych XML za pomoc
172
Technologia XML
173
Varchar()
Information Set
Nieznany schemat
Znany schemat
Indeks XML
X
X
Uycie XPath
X
X
Widoki XML
Aby utworzy widok XML (ang. XML View) trwaych danych, naley zdefiniowa powizania pomidzy schematami XML a tabelami w bazie danych. Widoki
XML mog suy do zapeniania tabel podstawowych technik masowego adowania danych (ang. bulk load), mona te odpytywa widok XML, korzystajc
z XPath 1.0. Taka kwerenda jest tumaczona na zapytanie SQL do odpowiedniej
tabeli. Podobnie s wykonywane uaktualnienia tych tabel. Taka technologia okazuje si uyteczna, kiedy trzeba zapewni model programowania oparty na
XML, ktry korzysta z widoku XML podczas uzyskiwania dostpu do danych
relacyjnych. Istniej schematy, ktre mona wykorzysta do pracy z danymi
XML (takie jak XSD czy XDR XML-Data Reduced), oferowane przez zewntrznych dostawcw. Dodatkowo warto wspomnie, e widoki XML s przydatne w nastpujcych sytuacjach:
kolejno danych jest nieistotna lub dane potrzebne do zapytania nie s
174
Technologia XML
175
Schemat XML opisujcy dane XML moe zosta powizany z kolumn XML,
dziki czemu powstanie zdefiniowana kolumna XML. Schemat XML, wykorzystany do sprawdzenia poprawnoci danych, przeprowadza podczas kompilacji
zapytania i polece DDL dokadniejsze analizy ni niezdefiniowany XML
optymalizuje przechowywanie danych i przetwarzanie zapyta.
Definiowane kolumny XML, parametry i zmienne mog przechowywa dokumenty XML lub ich zawarto. Trzeba zadeklarowa odpowiedni warto flagi
(DOCUMENT lub CONTENT). Co wicej, naley te dostarczy kolekcj schematw
XML. Trzeba ustawi warto DOCUMENT, jeeli kade wystpienie XML ma
tylko jeden element szczytowy w innym przypadku musimy uy CONTENT.
Kompilator zapyta stosuje flag DOCUMENT do sprawdzania typu podczas kompilacji kwerendy okrelajcej szczytowe elementy. Dodatkowo do opisania kolumny XML mona uy wizw relacyjnych (kolumna lub wiersz) dla zdefiniowanych bd niezdefiniowanych kolumn typw danych XML.
176
Po utworzeniu podstawowego indeksu XML, mona utworzy drugorzdny indeks XML, eby przyspieszy wykonywanie rnych klas zapyta wewntrz
procesu pracy. Drugorzdne indeksy XML indeksy typu cieki, waciwoci
i wartoci przynosz korzyci, odpowiednio, zapytaniom opartym na ciece,
scenariuszom zarzdzania waciwociami i zapytaniom opartym na wartoci:
Indeks typu cieki (PATH) buduje drzewo B+ (cieka, warto) pary
Technologia XML
177
OPENXML
SQL Server 2000 zasadniczo obsugiwa polecenie FOR XML, umoliwiajce
tworzenie dokumentw XML, oraz polecenie OPENXML do ich otwierania. Innymi sowy, korzystajc z FOR XML, mona przeksztaci dane relacyjne do postaci XML, a korzystajc z OPENXML, mona przeksztaci XML w dane relacyjne,
dziki czemu mona utworzy poczenia SQL i wykonywa zapytania. SQL
Server 2005 zwiksza funkcjonalno polecenia OPENXML. Jako dodatek do typw danych XML dodano obsug kilku nowych typw danych, takich jak na
przykad UDT. Mona je stosowa w klauzulach OPENXML WITH, mona take
umieszcza wystpienia typw danych XML w sp_preparedocument.
Obsuga XQuery
XML Query Language lub XQuery jest standaryzowanym jzykiem, zoptymalizowanym do wyszukiwania wszystkich danych typu XML. XQuery pozwala na
uruchamianie kwerend wyszukujcych zmienne i kolumny typu XML za pomoc
pniej przypisanych metod. W3C nadzoruje rozwj XQuery, podobnie jak wiele
178
Rozwinicia DML
Obecnie specyfikacja XQuery zawiera skadni i semantyk zapyta, ale nie
uwzgldnia modyfikowania dokumentw XML. Polecenia manipulacji danymi
(DML) XML stanowi rozszerzenie funkcji XQuery i su do modyfikacji danych. SQL Server 2005 dodaje trzy sowa kluczowe: insert, update i delete.
Kade z tych sw jest wykorzystywane wewntrz metody modify() typu danych XML.
Technologia XML
179
Konfigurujc SQL Server dla usug sieciowych, aby zapewni moliwo natywnego nasuchu da HTTP, naley pamita, e SOAP wymaga utworzenia
punktu kocowego HTTP i zdefiniowania metod, ktre ten punkt obsu. Podczas tworzenia punktu kocowego HTTP trzeba rwnie okreli niepowtarzalny adres URL (ang. Unified Resource Locator), niezbdny podczas nasuchiwania przychodzcych da HTTP. Na przykad po utworzeniu punktu
kocowego z adresem URL http://servername/sql, dania SOAP, przesyane do
http://servername/sql bd obsugiwane przez http.sys. http.sys przekazuje dania SOAP do instancji SQL Server, ktry obsuguje punkt kocowy zwizany
z URL. Od tego momentu wszystkie dania s obsugiwane przez warstw obsugi SOAP wewntrz platformy SQL Server.
Instancja SQL Server moe mie rne punkty kocowe. Kady z nich moe
obsugiwa dowoln liczb procedur skadowanych (zaimplementowanych za
pomoc transakcyjnego SQL lub CLR) jako WebMethod punktu kocowego i moe by wywoywany przez SOAP poprzez zdalne wywoywanie procedur (RPC).
Metoda sieciowa moe mie inn nazw ni wanie obsugiwana procedura
skadowana. Nazwa metody sieciowej jest widziana przez uytkownika jako nazwa operacyjna w WSDL.
Punkt kocowy HTTP moe zosta utworzony i administrowany za porednictwem polece DDL transakcyjnego SQL. Utworzenie punktu kocowego HTTP
jest pierwszym krokiem w umoliwieniu dostpu do SQL Server 2005 za pomoc
HTTP/SOAP. Kady punkt kocowy ma nazw i zestaw opcji, ktrych kombinacja
definiuje zachowanie tego punktu kocowego. Wszystkie punkty kocowe s przechowywane w bazie danych master, w widoku katalogu master.sys.http_endpoints.
Punkt kocowy nie posiada metod SOAP dopty, dopki administrator ich nie
zdefiniuje.
Punkty kocowe HTTP obsuguj nastpujce standardy uwierzytelniania: Basic,
Digest, Integrated (Windows NT LAN Manager, czyli NTLM, Kerberos) i Anonymous SQL Auth. Najpierw autoryzacja nastpuje na poziomie protokou
HTTP. Jeli zakoczy si powodzeniem, identyfikator bezpieczestwa uytkownika
(SID) suy do uwierzytelniania na platformie SQL Server. Dzieje si tak we
wszystkich przypadkach oprcz ANONYMOUS. Wybr ANONYMOUS w punkcie kocowym oznacza, e jest moliwy dostp anonimowy na poziomie protokou HTTP. Klient cigle musi dostarczy dane SQLAuth, eby mc uzyska
dostp do bazy danych. Wybr opcji ANONYMOUS oznacza, e jest wymagany
dodatkowy nagwek HTTP, eby zaszyfrowa nazw uytkownika i haso. Nagwek ten musi si nazywa MS-SQL Auth i jego warto musi zawiera poprawne dane uytkownika i haso, zakodowane metod base64. Administratorzy
mog take ustawia restrykcje dotyczce adresu IP, ograniczajc dostp do punktu
kocowego wyspecyfikowanym adresom IP lub zakresowi adresw IP. Pojciowo
punkt kocowy oznacza aplikacj. Wszystkie metody, ktre implementuje
180
WSDL
WSDL jest dokumentem napisanym w XML, zawierajcym specyfikacj usug sieciowych. Opisuje pooenie danej usugi i operacje (lub metody) obsugiwane przez
dan usug. WSDL dostarcza klientom informacje niezbdne do korzystania
z usug sieciowych. Takie narzdzia, jak Visual Studio 2005 i JBuilder wykorzystuj
WDSL do generowania kodu poredniego, ktry aplikacja klienta moe uy do
komunikacji z usug sieciow. Jeeli punkt kocowy obsuguje WSDL, to przetwarza go w chwili, kiedy otrzymuje do niego danie. Serwer odpytuje metadane
skojarzone z punktem kocowym i dynamicznie generuje WSDL. Wygenerowany WDSL oferuje wiele informacji dotyczcych parametrw procedury skadowanej. Serwer moe wygenerowa dwa rne rodzaje dokumentw WSDL
prosty lub zoony zalenie od tego, czy korzysta z podstawowych, czy ze zoonych typw XSD. Typy XSD su do opisu parametrw w komunikacie dania lub
odpowiedzi. Domylnie wykorzystuje si typy zoone.
181
Warstwa danych
Druga warstwa
Notification Services
Silnik powiadomie
Reporting Services
Katalog raportw
brak
Replikacja
182
pozwala na utworzenie kompletnego systemu. Mona to uzna za klasyczne podejcie obiektowe (OOP), zreszt systemy RDBMS wykazuj wiele podobiestw do
systemw zorientowanych obiektowo. Na przykad klasa w modelu obiektowym
przypomina relacj w relacyjnej bazie danych. Rekord jest podobny do obiektu instancji, a kolumna do atrybutu. Punktem wyjcia tych podobiestw jest obszar
metod. W przypadku RDBMS procedury skadowane opisuj proces biznesowy
jako element dziaajcego systemu. W podejciu obiektowym (OOP) metoda jest
funkcjonaln czci klasy. Oczywicie SQL Server 2005 obsuguje funkcjonalno
wiksz od zwykego przechowywania czy pozyskiwania danych.
Planujc wykorzystanie platformy SQL Server 2005 w systemie informatycznym
firmy, naley uwzgldni waciwoci tego produktu, zwaszcza te zwizane z architektur, wydajnoci i skalowalnoci. Szczeglnie istotny jest sposb zaimplementowania komponentw i usug. Kiedy na przykad trzeba zbudowa
skalowalny serwer aplikacji, osobne instalowanie komponentw bdzie moliwe
przede wszystkim w przypadku Notification Services i SQL Server Reporting
Services. Mechanizm replikacji i SQL Server Broker wymagaj zainstalowania
podstawowej czci serwera, gdy s funkcjonalnie zwizane z baz danych,
natomiast usugi Notification Services i Reporting Services wymagaj SQL Server jako miejsce przechowywania metadanych, jednak metadane te mog by
pobierane z innego serwera.
Kto, kto dokadnie przeanalizuje szczegy struktury platformy SQL Server,
moe stwierdzi, e wiele funkcji suy rwnie do implementowania innych
funkcji. Na przykad Reporting Services i Analysis Services korzystaj z usug
sieciowych XML w celu uzyskiwania dostpu do danych, przechowywania metadanych i dostarczania modelu programistycznego. Usugi Notification Services
bezporednio nie wykorzystuj usug sieciowych ani nie przypisuj orientacji na
ich podstawie, ale stosuj XML jako format tworzenia metadanych. SQL Service
Broker (SSB) jest w rzeczywistoci specjaln blokad, zaimplementowan jako
cz silnika SQL Server Engine przy projektowaniu aplikacji SSB kocowy
uytkownik jest informowany o wykorzystaniu usug sieciowych XML podczas
projektowania aplikacji. SQL Server Broker stanowi znakomity przykad sposobu,
w jaki Microsoft implementuje architektur modularn w serwerze bazodanowym, ktry jednoczenie jest rodowiskiem uruchomieniowym i implementacj
jzyka.
183
na przesyanie komunikatw w ramach jednego serwera, ale take pomidzy serwerami. Przesyanie wiadomoci jest realizowane za porednictwem rozszerze
polece DML transakcyjnego SQL.
Po co przesya komunikaty?
Kolejkowanie jest bardzo ciekawym mechanizmem, ktry umoliwia elastyczne
rozkadanie obcienia pomidzy poszczeglne elementy systemu. Zastosowanie mechanizmu kolejkowania moe pozwoli na uzyskanie wikszej skalowalnoci i wydajnoci systemu. Poniej znajduje si prosty przykad. Na rysunku
4.1 przedstawiem schemat budowy aplikacji do handlu elektronicznego.
Z analizy rysunku 4.1 wynika, e niektre procesy powinny zachodzi rwnoczenie: po wprowadzeniu do bazy danych informacji o zamwieniu, nastpuje
proces autoryzacji karty kredytowej. Rwnoczenie naleaoby sprawdzi stan
zapasw, jednak czynnoci te zostan wykonane asynchronicznie. Generowanie
listy zamwienia i okrelenie szczegw transportu towaru moe nastpi
asynchronicznie, zwaszcza e informacje dotyczce transportu niekiedy wymagaj korekty zamwienia. Moliwo wykorzystania mechanizmu przesyania
komunikatw spowoduje zwikszenie rwnolegoci.
Przede wszystkim jednak trzeba zrozumie pi kluczowych koncepcji SQL Server Broker.
Kolejkowanie. Kolejkowanie realizowane przez SQL Service Broker
184
185
SQL Service Broker obsuguje transakcyjne przesyanie komunikatw (ang. transaction messaging). Termin transakcyjne ma to samo znaczenie, co w przypadku
transakcji realizowanych przez typowe bazy danych. Transakcja jest zbiorem
dziaa, traktowanym jak jedno dziaanie. Kiedy transakcji nie udaje si wykona do koca, wysane i odebrane komunikaty s odwoywane i nie przynosz
skutku, dopki transakcja nie zostanie potwierdzona.
Transakcyjne przesyanie komunikatw uatwia programowanie aplikacji przesyajcych wiadomoci. Nawet jeli zostanie wydane polecenie wysania czy odbioru komunikatu, wykonanie polecenia nastpi dopiero po potwierdzeniu transakcji. W przypadku wycofania transakcji komunikaty nie s wysyane, natomiast
odebrane wiadomoci wdruj do kolejki w celu dalszego przetworzenia.
Jak ju wczeniej zaznaczyem, SQL Service Broker moe rozwiza kilka trudnych problemw, z jakimi borykaj si aplikacje wysyajce komunikaty. SSB
zapewnia, e porzdkowanie komunikatw jest przezroczyste. Komunikaty s odbierane zgodnie z kolejnoci wysania, bez zaburzania sekwencji, a ich koordynowanie zachodzi dziki dialogom i identyfikatorom grup konwersacji. Grupy
konwersacji uatwiaj zachowanie porzdku i przypisywanie konkretnych komunikatw poszczeglnym daniom. W przypadku typowych aplikacjach
komunikacyjnych zapewnienie wielowtkowego dziaania jest trudnym zagadnieniem. Zastosowanie SSB pozwala na zablokowanie przesyania komunikatw
do danego wtku tak dugo, dopki transakcja nie zostanie zakoczona. W ten
sposb mona rozwiza problem naruszania integralnoci referencyjnej.
SSB automatycznie obsuguje obcienie zwizane z przetwarzaniem komunikatw oczekujcych w kolejce, tak wic istnieje moliwo dopasowania liczby
procesw przetwarzajcych informacje. Z punktu widzenia administratora danych, SSB posiada wszystkie zalety aplikacji do zarzdzania bazami danych. SSB
jest rwnie istotny dla ustawienia mechanizmu sucego do sporzdzania kopii
zapasowych, dla wykorzystywania rozwiza wysokiej dostpnoci i magazynowania dyskowego. SSB posiada te zalety procedur skadowanych, XML i usug
186
Bezpieczestwo SSB
Przy wszystkich swoich zaletach, SQL Service Broker wymaga szczeglnego
poziomu zabezpiecze. Model SQL Service Broker jest oparty na modelu komunikacyjnym. SQL Service Broker charakteryzuje si zaletami nowego mechanizmu certyfikatw, stanowicego element SQL Server 2005. SQL Service
Broker jest chroniony na dwa sposoby.
Bezpieczny dialog zapewnia szyfrowanie poszczeglnych komunikatw
187
Notification Services
Twrcy SQL Server 2005 wprowadzili znaczne ulepszenia do usugi Notification Services (NS).
Instancja usugi aplikacji Notification Services jest dostpna poprzez SQL Computer Management. Uatwia to wyczanie usugi Notification Services w przypadku
problemw z aplikacj. Pliki konfiguracyjne usugi Notification Services w dalszym
cigu mona tworzy za pomoc Visual Studio, jednak teraz cay proces mona
przeprowadzi za pomoc programu SQL Server Management Studio. Aby zbudowa aplikacj opart na usudze NS, trzeba przeanalizowa podstawowe elementy
tej usugi. Platforma Notification Services skada si z dwch komponentw:
Prostego, ale potnego programistycznego rodowiska uruchomieniowego
188
189
Aplikacja suca do zarzdzania subskrypcjami jest budowana jako cz rozwijajcej si usugi powiadamiania. Aplikacja ta nie jest wewntrznym komponentem. Ma to niebagatelne znaczenie, poniewa tworzy interfejs uytkownika,
taki jak strona WWW, gdzie uytkownicy mog subskrybowa bd odwoywa
subskrypcj:
Dostawcy zdarze rejestruj zdarzenia i dostarczaj dane do usugi
Zarzdzanie subskrypcjami.
Interfejs API do zarzdzania subskrybentami
Usuga SQL Server Notification Services zawiera programistyczny interfejs aplikacji (API) Subscriber Management sucy do zarzdzania informacjami
o subskrybencie. Za pomoc klas Subscriber i SubscriberEnumeration
mona dodawa, uaktualnia i usuwa te informacje. Omawiane klasy s dostpne
w przestrzeni nazewniczej Microsoft.SqlServer.NotificationServices.
Klasa Subscriber wykorzystuje dane subskrybenta, ktre s zazwyczaj
190
Zarzdzanie subskrypcjami.
Interfejs API do zarzdzania urzdzeniem subskrybenta
Usuga SQL Server Notification Services zawiera programistyczny interfejs
aplikacji SubscriberDevice, przeznaczony do zarzdzania urzdzeniami subskrybenta. Projektanci mog dodawa, uaktualnia i usuwa urzdzenia, na ktrych subskrybenci otrzymuj notyfikacje, korzystajc z klas SubscriberDevice
i SubscriberDeviceEnumeration. Te klasy s dostpne w przestrzeni nazw
Microsoft.SqlServer.NotificationServices.
Klasa SubscriberDevice, ktre wykorzystuje dane urzdzenia
Zdarzenia: FileSystemWatcherProvider
Usuga SQL Server Notification Services jest dostarczana ze standardowymi
dostawcami zdarze, co ma uatwi sprawne zaprojektowanie i wdroenie aplikacji opartych na tej usudze. Jednym z tych dostawcw jest File System Watcher
Provider, zaimplementowany jako cz biblioteki doczanej dynamicznie (DLL)
o nazwie Microsoft.SqlServer.NotificationServices.dll. Dostawca ten korzysta z klasy
FileSystemWatcher zdefiniowanej w rodowisku .NET Framework, sucej
do monitorowania dodatkowych plikw w okrelonym folderze.
Po dodaniu pliku zdarzenia XML do katalogu dostawca jest wywoywany do zaadowania pliku zdarzenia XML do pamici, a nastpnie korzysta z dostarczonego
obiektu EventLoader, eby zapisa informacje o zdarzeniu do tabeli zdarze.
191
do tabeli zdarze.
NSEventFlushBatchEventClassName potwierdza lub odrzuca grup
zdarze.
NSEventSubmitBatchEventClassName zapewnia izolacj funkcjonaln
192
Generowanie powiadomie:
zarzdzanie stanem aplikacji powiadamiania (kroniki)
Usuga SQL Server Notification Services zawsze przetwarza zdarzenia jako
cz grupy zdarze. Grupa jest wykorzystywana przez proces generowania
powiadomienia tylko jeden raz, po czym grupa zdarze jest traktowana jako
wygasa i jest pniej usuwana z systemu. W niektrych przypadkach dane zdarze mog by przechowywane dla zaplanowanych subskrypcji lub innych wymaga aplikacji. Do staego utrzymywania informacji o zdarzeniach w systemie
Notification Services moe suy tabela kronik zdarze. Przykadowo, projektant moe korzysta z tabeli kroniki zdarze w celu zapamitania danych o zdarzeniu dla zaplanowanych subskrypcji, uaktualniajc tabel danymi biecego
zdarzenia zawsze podczas przetwarzania grupy zdarze. Mona take wykorzysta tabel kroniki zdarze do przechowywania informacji o zakresach lub historii
zdarze, co ma zapobiec duplikowaniu powiadomie.
Generowanie powiadomie:
jednorazowe i planowane generowanie powiadomie
Usuga SQL Server Notification Services obsuguje dwie odmienne metody generowania powiadomie:
Subskrypcja zdarze wywoywana natychmiast po nadejciu nowych
zdarze;
Zaplanowana subskrypcja oparta na planie zdefiniowanym przez
subskrybenta.
193
Formatowanie powiadomie:
formatowanie zawartoci za pomoc XSLT
Usuga SQL Server Notification Services umoliwia standardowe formatowanie
za pomoc Extensible Stylesheets Language Transformation (XSLT), co jest
pomocne przy szybkim projektowaniu i wdraaniu aplikacji opartych na usugach Notification Services. Narzdzie do formatowania zawartoci pozwala na
sprecyzowanie XLST do sformatowania czystych danych powiadomienia. Dziki
takiemu przeksztaceniu i wprowadzeniu wszelkich niezbdnych zmian w formacie dane s odpowiednio przygotowane do wywietlenia na urzdzeniu odbierajcym. Narzdzie do formatowania utworzono w wersjach dla rnych jzykw
(pastw, regionw) oraz dla rnych typw urzdze. W celu zapewnienia obsugi
kombinacji danego jzyka i konkretnego typu urzdzenia, obsugiwanego przez
aplikacj powiadamiajc, naley utworzy oddzielny plik XSLT.
194
Usuga SQL Server Notification Services dostarcza kilka standardowych protokow, uatwiajcych projektantom zdefiniowanie kanaw dostarczania dla instancji
usug powiadamiania. Dokadniejsze informacje na ten temat zostan przedstawione nieco dalej.
195
196
197
prawej strony do lewej, tak jak jest w jzyku arabskim lub hebrajskim,
jest czony z tekstem, ktry si pisze od lewej do prawej, tak jak w
przypadku jzykw europejskich. W przypadku wykorzystywania takich
moliwoci naley rozway takie kwestie jak kolejno czytania,
wyrwnanie tekstu i pozycja kursora.
Ksztatowanie kontekstowe. Niezbdne w przypadku alfabetu
198
Twrcy Microsoft SQL Server 2005 wprowadzili obsug dla znakw zastpczych. Zadaniem Unicode jest obsuga pojedynczego punktu kodowego kadego
znaku w kadym jzyku, gdy do jego wywietlenia nie wystarcza 65 536 znakw.
Jzyki takie jak chiski wymagaj duej liczby znakw do zakodowania rzadko
wystpujcych liter. Tak wic obsuga w standardzie Unicode zostaa zwikszona
dla znakw zastpczych, eby mc obsuy dodatkowe 1 048 576 znakw.
Stref zastpcz w systemie Unicode jest zakres od U+D800 do U+DFFF, zawierajcy 1024 niskie wartoci zastpcze i 1024 wysokie wartoci zastpcze.
Kombinacja wysokich i niskich wartoci zastpczych pozwala na zakodowanie
ponad miliona moliwych znakw. Taki kod skada si z dwch znakw zastpczych: wysokiego i niskiego. Sprawdzanie znakw zastpczych sprowadza si do
porwnania zakresw z uwzgldnieniem skomplikowanych zasad, gdzie jest
wymagane sprawdzenie dwubajtowego systemu znakw (ang. double-byte character system DBCS).
Organizacje, ktre aktywnie dziaaj na terenie wschodniej Azji, takie jak rzd,
media, ubezpieczenia i suba zdrowia, wymagaj zapewnienia obsugi symboli
zastpczych, dziki czemu mona przechowywa i przetwarza dane w takich
jzykach jak chiski.
Wyszukiwanie penotekstowe
Niezalenie od tego, czy chodzio o wyszukiwanie danych w internecie, czy o nowy
model przeszukiwania dokumentw, Microsoft zawsze pokada wielkie nadzieje
w wyszukiwaniu penotekstowym (ang. Full-Text Search). Twrcy platformy
SQL Server 2005 rozwizali wiele problemw z zarzdzaniem i infrastruktur,
dziki czemu wyszukiwanie penotekstowe w SQL Server 2005 stao si technik
godn uwagi. Przede wszystkim naley tu wspomnie o uaktualnieniu MSSearch
do wersji 3.0, dziki czemu osignito nastpujce korzyci:
znacznie zwikszono wydajno penotekstowego indeksu bazy;
jedna instancja MSSearch 3.0 przypada na kad instancj SQL Server;
MSSearch 3.0 jest uruchamiany w ramach tego samego konta usugi, co
SQL Server.
Podczas wyszukiwania penotekstowego Microsoft SQL Server wykorzystuje
jedn instancj MSSearch dla kadej instancji SQL Server. Kada instancja
MSSearch uruchamia si w ramach tego samego konta usugi SQL Server. Jeli
administrator zmieni konto usugi SQL Server dla wybranej instancji, zwizane
z ni konto usugi MSSearch take si zaktualizuje. We wczeniejszych wer-
Wyszukiwanie penotekstowe
199
200
Zapytania a widoki
Platforma SQL Server 2005 pozwala na wywietlanie wynikw penotekstowych
zapyta indeksujcych w widokach. W przypadku wczeniejszych wersji SQL
Server mona byo jedynie wczy zapytania do tabel w indeksach penotekstowych i wykorzysta je w dalszych operacjach wyszukiwania. Platforma SQL Server 2005 moe wykonywa zapytania na widokach indeksw penotekstowych,
opartych na jednej lub wikszej liczbie tabel, przeprowadzajc t operacj w taki
sam sposb, jak w przypadku przeszukiwania tabel.
201
202
203
SQL Server Express rwnie naley do tej rodziny. Podczas pobierania dowolnego
produktu Visual Studio Express mona rwnie pobra SQL Server Express.
Podczas instalowania SQL Server Express przy instalacji jednego z produktu
Visual Studio Express, SQL Server Express instaluje si z domyln nazw instancji (SQLEXPRESS). Jeli SQL Server Express zosta ju zainstalowany, nie
jest instalowana inna jego wersja.
204
MSDE 2000
Opcja niedostpna
tylko MSI
MSI i MSM
Obsuga CLR
Narzdzia GUI
W rzeczywistoci wielu uytkownikw ocenia aplikacje zaprojektowane na podstawie MSDE jako nisko kosztowe, nisko transakcyjne i nisko budetowe. W przypadku takich domowych aplikacji istnieje tylko niewielka motywacja, eby migrowa je do SQL Server Express. Jak przedstawi w dalszej czci tego rozdziau,
platforma SQL Server Express ma stanowi baz danych dla pocztkujcych,
jednak najczciej uytkownicy stawiaj pierwsze kroki w dziedzinie baz danych,
korzystajc z Microsoft Access. Jak mona wic porwna SQL Server Express
z Access?
Microsoft SQL Server Express zosta wyposaony w bazodanowy silnik Jet, ktry
jednak nie sprawdza si przy wykonywaniu bardziej zaawansowanych operacji, takich jak na przykad uaktualnienie do SQL Server Standard Edition. Baza danych
oparta na silniku Jet zapewnia jednake siln integracj z aplikacjami pakietu Office, czyli z Microsoft Access. Ponadto jest dostarczana z wieloma atwymi do uycia
aplikacjami i moe by atwo wbudowywana w bardziej zaawansowane aplikacje. To
s najwaniejsze przyczyny sukcesu Accessa. Jeeli jest potrzebna baza danych
klientw lub magazynu, wystarczy wykorzysta przykadow baz danych Access.
Z drugiej strony, jeeli kto uwaa, e jego baza danych ktrego dnia bdzie moga
si sta baz SQL Server Standard albo jeli zechce sta si znakomitym projektantem aplikacji bazodanowych, musi zastanowi si nad nauk obsugi SQL Server
Express. Osoby, ktre staraj si utrzyma koszty dziau IT pod kontrol, doceni,
e SQL Server Express jest bezpatn aplikacj i e atwo poddaje si migracji i zarzdzaniu dziki temu, e zosta oparty na technologii SQL.
205
Obsuga replikacji
Platforma SQL Server Express umoliwia udzia w replikacji jako subskrybent,
co moe mie na celu utworzenie poczenia, migawki i replikacji transakcyjnej.
SQL Server Express moe korzysta ze wszystkich nowych funkcji replikacji,
tak jak to opisaem w rozdziale 3. Korporacyjne zarzdzanie danymi. Dodatkowo SQL Server moe przeprowadza synchronizacj na danie lub zaplanowan.
W tym celu naley si posuy narzdziem Windows Synch Manager.
Ustawienia jzykowe
Platforma SQL Server Express jest dostarczana w 12 jzykach, okrelonych przez
inne edycje SQL Server. SQL Server Express jest take zgodny z innymi edycjami
pod wzgldem obsugi ustawie jzykowych.
206
Instalacja i konfiguracja
Platforma SQL Server Express jest jednym z mniej skomplikowanych programw
bazodanowych pod wzgldem instalacji. SQL Server Express korzysta z tego
samego, opartego na MSI, programu instalacyjnego Windows, co inne platformy
z linii SQL Server. Obecne jest drzewo instalacji oraz Setup Consistency Checker.
Prawdziw przewag nad MSDE daje interfejs uytkownika podczas instalacji
MSDE nie miao go w ogle. Interfejs uytkownika SQL Server Express ma
znajomy wygld. Platforma SQL Server Express moe by te zainstalowana
bez uycia interfejsu uytkownika, z wykorzystaniem linii polece.
Przed zainstalowaniem SQL Server Express naley rozway kilka istotnych
kwestii. Przede wszystkim trzeba pamita, e SQL Server Express wymaga
systemu operacyjnego z.NET Framework 2.0. W przeciwnym przypadku SQL
Server Express nie zostanie zainstalowany. SQL Server nie jest dostarczany razem z .NET Framework 2.0. Z drugiej strony, SQL Server Express mona pobra i zainstalowa wraz z dowoln edycj Visual Studio Express. Najwaniejsz
zalenoci z .NET Framework jest integracja z CLR. SQL Server wykorzystuje
rwnie zestawy zainstalowane przez .NET Framework do tworzenia interfejsu
uytkownika podczas instalacji. .NET Framework nie powinien by problemem
dla projektantw, poniewa Microsoft bardzo rozpowszechnia to rodowisko
nawet Windows Update zawiera .NET Framework. Piszc wic swoje aplikacje,
trzeba pamita o uwzgldnieniu kodu sprawdzajcego, czy .NET Framework
2.0 zosta zainstalowany i czy jest to waciwa wersja.
Po rozpoczciu instalacji trzeba wybra nazw dla instancji programu. Instancj
mona traktowa jak kompletn kopi programu. SQL Server Express obsuguje
do 15 instancji na pojedynczej maszynie. SQL Server obsuguje ich ju do 50 na
jednym komputerze. Microsoft poszed na pewne ustpstwa, oznajmiajc projektantom, e aby uatwi zarzdzanie aplikacj, SQL Server Express powinien
by instalowany w domylnej instancji, nazwanej SQLEXPRESS. Takie postpowanie ma sens, poniewa wszystkie bazy danych znajduj si wewntrz jednej
instancji i nie koliduj ze sob. Wykorzystanie domylnej instancji chroni przed
innymi potencjalnymi problemami z zarzdzaniem, poniewa potrzeba mniej pamici RAM, mniej miejsca na dysku i w ogle powstaje mniej komplikacji, szczeglnie w przypadku pocztkujcych projektantw. Inn korzyci jest to, e domylna instancja pozwala na zarzdzanie wszystkimi metadanymi w jednej nadrzdnej
systemowej bazie danych i trzeba zapamita tylko jedno haso administratora.
W przypadku wyboru instalacji nazwanej wersji SQL Server Express wszystkie
skadniki zostan zainstalowane w osobnej instancji. W pewnych sytuacjach takie rozwizanie jest korzystne, jednak zwykle najbardziej sensowne jest instalowanie serwera pod domyln nazw. Jeli wybrano nazwan instancj, nazwa
domylna jest dostpna dla instalacji innych aplikacji.
207
Tzw. cicha instalacja SQL Server Express rwnie jest moliwa i przydatna
w przypadkach, gdy przewiduje si instalowanie SQL Server Express na maszynach uytkownikw bez sprawdzania wczeniej zainstalowanego oprogramowania. Microsoft sugeruje dodanie do aplikacji kodu weryfikujcego istnienie
kopii SQL Server Express przed prb instalacji nowej aplikacji i bazy danych.
Jeeli zostanie wybrana instalacja poza istniejc instancj, naley poda nazw
dla nowej instancji. Podczas cichej instalacji (pojcie to w rzeczywistoci oznacza instalacj z poziomu linii polece) podajemy nazw dla odpowiedniej instancji. Projektanci tworzcy pakietowe aplikacje, ktre instaluj SQL Server
Express, mog zapisa dane konfiguracji w pliku. Plik ten powinien by jednak
usunity lub zabezpieczony po zakoczeniu instalacji. W celu skonfigurowania
procesu instalacji mona te skorzysta z Server Management Objects (SMO)
lub SQLCMD.
Waciwa instalacja wersji Express, wykonana przy uyciu interfejsu uytkownika, jest bardzo podobna do instalacji innych edycji SQL Server. Drzewo instalacji poszczeglnych funkcji jest takie samo. Nastpnie w obydwch przypadkach uruchamia si Setup Consistency Checker. Dodatkowo mona uruchomi
instalacj, nie posiadajc Windows Installer 3.0. Mona go pobra z witryny
Windows Download. Zosta on doczony take do ostatnich pakietw serwisowych
(service pack).
Po zakoczeniu instalacji SQL Server Express dane s bezpieczne. SQL Server
Express zosta oparty na nowym modelu bezpieczestwa aplikacji Microsoft
i dlatego domylnie jest wyczony. Jedn z pierwszych czynnoci jest podjcie
decyzji o ustawieniach bezpieczestwa SQL Server Express. Domylnie pami
dzielona jest wczona, ale usuga SQL Server Express Server Service (niech kto
sprbuje wypowiedzie to trzy razy szybciej) pozostaje wyczona w trakcie
dziaania programu instalacyjnego. Korzystajc z nowego narzdzia Server Surface Area Configuration (SSAC), mona odpowiednio ustawi poziom zabezpiecze i usugi. Narzdzie SSAC umoliwia kontrol bezpieczestwa i funkcjonalnoci oferowanych przez SQL Server Express. SQL Server posiada dwie
gwne grupy Services and Connections i Features. W panelu Features mona
znale kilka interesujcych narzdzi kontrolujcych dziaanie takich funkcji jak
na przykad CLR. Naley pamita, e s one domylnie wyczone, przed
projektowaniem aplikacji naley je wic wczy. Domen dziaania narzdzia
SSAC jest lokalny komputer, wic kady komputer posiada wasn kopi, ktra
jest instalowana domylnie.
208
Podsumowanie
209
Podsumowanie
W niniejszym rozdziale przekrojowo opisaem wszystkie nowe funkcje, ktre s
dostpne dla projektantw skalowalnych aplikacji tworzonych w technologii
Microsoft i zgodnych z SQL Server 2005. Czytelnik mg si przekona, e
SQL Server nie jest zwykym RDBMS, ale raczej platform aplikacji bazodanowych, suc do tworzenia szerokiej gamy aplikacji, opartych na rnych
modelach architektury. Nowe funkcje zmusz administratorw do nauki zarzdzania aplikacjami i zmagania z .NET w warstwie danych. Z punktu widzenia
zarzdzania IT, nowe funkcje oznaczaj oszczdno kosztw w czasie wdroe
i elastyczno w biznesie.
Jak Czytelnik mg zauway, kilka nowych technologii skada si na integracj
CLR, XML, nowych typw danych i nowej wersji SQL Server Express. Wszystkie
te cechy zwikszaj moliwoci programistyczne.