SQL Server 2000 dla kazdego.pdf

(4037 KB) Pobierz
Microsoft Word - r01-05.doc
Spis treści
ROZDZIAŁ 1. WPROWADZENIE DO RELACYJNYCH BAZ DANYCH I SERWERA MICROSOFT SQL
SERVER 2000 .............................................................................................................................. 2
ROZDZIAŁ 2. INSTALACJA SERWERA MICROSOFT SQL SERVER 2000 ........................................ 11
ROZDZIAŁ 3. NARZĘDZIA I USŁUGI SQL SERVERA 2000 ............................................................. 48
ROZDZIAŁ 4. TWORZENIE I ADMINISTRACJA BAZ DANYCH I PLIKÓW DANYCH ......................... 95
ROZDZIAŁ 5. USTAWIENIA ZABEZPIECZEŃ LOGOWANIA I UŻYTKOWNIKA .............................. 122
ROZDZIAŁ 6. USTAWIANIE UPRAWNIEŃ BAZY DANYCH ......................................................... 159
ROZDZIAŁ 7. TWORZENIE KOPII BEZPIECZEŃSTWA BAZ DANYCH............................................ 193
ROZDZIAŁ 8. ODTWARZANIE BAZ DANYCH ............................................................................. 232
ROZDZIAŁ 9. TYPY DANYCH I TWORZENIE TABEL .................................................................... 260
ROZDZIAŁ 10. POBIERANIE DANYCH PRZY POMOCY WYRAŻENIA SELECT ............................... 281
ROZDZIAŁ 11. MODYFIKACJA DANYCH ................................................................................... 325
ROZDZIAŁ 12. ROZSZERZENIA JĘZYKA TRANSACT-SQL ............................................................ 340
ROZDZIAŁ 13. INDEKSOWANIE DLA POPRAWY WYDAJNOŚCI ................................................. 370
ROZDZIAŁ 14. ZAPEWNIENIE INTEGRALNOŚCI DANYCH .......................................................... 416
53808201.001.png
Rozdział 1.
Wprowadzenie do
relacyjnych baz danych i
serwera Microsoft SQL
Server 2000
Projektanci serwera SQL Server odpowiadają za zaprojektowanie i implementację bazy danych,
podczas gdy administratorzy serwera SQL Server są odpowiedzialni za codzienne zadania
związane z zarządzaniem serwerem. Jednak, zadania te stają się coraz mniej rozróżnialne, gdyż
SQL Server staje się coraz powszechniej używany.
Lekcja ta rozpoczyna się od zagadnień dotyczących historii serwera SQL Server oraz systemu
Windows (zarówno Windows 9x jak i Windows NT/2000). Następnie zostaną omówione bazy
danych i środowisko klientserwer. Kolejny temat to bazy danych i ich zawartość. Ostatecznie,
lekcja kończy się przeglądem technik projektowania baz danych. Zadaniem z tej lekcji jest
przeprowadzenie symulowanej rozmowy z klientem i próbą stworzenia prostej bazy danych.
SQL Server to jest to!
SQL Server 2000 jest sztandarowym produktem firmy Microsoft z linii serwerów baz danych. Jest
to następca najbardziej znaczącego produktu – serwera SQL Server 7.0. Firma Microsoft
postanowiła przeznaczyć dużą sumę pieniędzy na wsparcie oraz reklamę serwera SQL Server 7.0.
Rezultatem tych działań jest powstanie serwera SQL Server 2000. SQL Server 7.0 stał się
podstawowym motorem baz danych w przemyśle komputerowym dla platformy Windows NT i
Windows 2000, obejmującym 68 procent rynku baz danych – wg witryny firmy Microsoft. SQL
Server 2000 kontynuuje ten trend i rozszerza udział firmy Microsoft w rynku baz danych. W
wersji 2000 serwera w stosunku do poprzednika dodano dużą ilość nowych funkcji i znacząco
rozbudowano te, które stanowiły podstawę serwera SQL Server 7.0.
SQL Server 2000 może pracować zarówno w systemie Windows NT 4.0 (z pakietem serwisowym
5 lub późniejszym), w systemie Windows 2000, Windows 98 lub Windows ME. Dostępna jest
również wersja SQL Server 2000 dla platformy Windows CE. Stosunek ceny do wydajności
serwera SQL Server 2000 pozwala wielu firmom na czerpanie korzyści z posiadania systemu
zarządzania relacyjną bazą danych (RDBMS) za ułamek kosztów takiego systemu parę lat
wcześniej. W czasie pisania tej książki, wg porównania baz danych TPCC serwer SQL Server
2000 ma najlepszą wydajność na całym świecie oraz posiada również najlepsze notowania w
zakresie ceny i wydajności. Rozwój serwera Microsoft SQL Server będzie kontynuowany przez
najbliższe lata, co oznacza, że praca z tym produktem to słuszny wybór.
Od czasu przedstawienia na rynku serwera Microsoft SQL Server zostały sprzedane miliony kopii
tego produktu, włączając w to więcej niż 10 milionów licencji jedynie w 1999 roku. Obecna
wersja produktu, SQL Server 2000 (zwany wewnętrznie wersją 8.0), jest tematem niniejszej
książki. Przed przejściem do bliższego omówienia serwera SQL Server 2000 i nauki jego obsługi
warto przekonać się, że historia powstania tego serwera jest warta poznania.
Najnowsze informacje i wsparcie dla serwera Microsoft SQL Server można znaleźć pod
adresem: http://www.microsoft.com/sql/.
Historia serwera SQL Server
W latach 70tych firma IBM stworzyła język programowania przeznaczony specjalnie do zapytań
do bazy danych, zwany SEQUEL, co oznacza Structured English Query Language. Z czasem,
język ten został poszerzony, i obecnie nie jest to jedynie język zapytań, ale może być także
używany do tworzenia i zarządzania mechanizmami bezpieczeństwa bazy danych. Firma IBM
udostępniła ogólnie SEQUEL, który od tej pory znany jest jako SQL. Ze względu na historię
powstania słowo SQL można wymawiać jako sequel lub przeliterować jako SQL.
Obecne motory baz danych używają różnych wersji języka SQL. Microsoft SQL Server używa
wersji zwanej TransactSQL (TSQL). Pomimo używania języka TransactSQL i nauki jego
podstaw, w tej książce nacisk jest położony na instalowanie, zarządzanie i połączenie z serwerem
SQL Server. Wydawnictwo Sams Publishing wydało również książkę zatytułowaną „Teach
Yourself TransactSQL in 21 Days”, Second Edition, która zawiera więcej szczegółów na temat
tego języka i jego wykorzystania.
Początkowo firma Microsoft rozwijała SQL Server (produkt z rodziny baz danych, który rozumie
język SQL) wraz z korporacją Sybase w celu wykorzystania go na platformie IBM OS/2. Kiedy
firmy Microsoft i IBM rozdzieliły się, firma Microsoft zaniechała OS/2 na rzecz swojego nowego
systemu operacyjnego – Windows NT Advanced Server. W tym punkcie firma Microsoft
zdecydowała, że sama będzie rozwijać mechanizm SQL Server dla systemu Windows NT.
Wynikowym produktem był serwer Microsoft SQL Server 4.2, aktualizowany do wersji 4.21. Po
rozstaniu z Microsoft, firma Sybase nadal kontynuowała rozwój serwera bazy danych dla systemu
Windows NT (znanego obecnie jako Sybase Adaptive Server Enterprise), a firma Microsoft
rozwijała SQL Server 6.0, następnie SQL Server 6.5, które również współpracowały z systemem
Windows NT. Serwer SQL Server 7.0 wprowadził możliwość uruchamiania go w systemie
Windows NT, ale także w systemie Windows 95 i Windows 98.
SQL Server 7.0 stanowił przełom w wykorzystaniu kodu Sybase przez grupę projektantów baz
danych firmy Microsoft. Wcześniejsze wersje były nadal bardzo zbliżone do Sybase. Jednak, wraz
z powstaniem serwera SQL Server 7.0 firma Microsoft radykalnie przekształciła i zmieniła kod
Sybase. Przedsiębiorstwo Microsoft zaprojektowało również od nowa jądro bazy danych i
wprowadziło skomplikowany optymalizator zapytań oraz zaawansowany mechanizm składowania
danych. Produkt SQL Server 2000 rozszerza tę nową linię kodu, dodając znaczące, nowe
właściwości. Poprawia również skalowalność, niezawodność i dostępność tego produktu oraz
znacznie ułatwia pracę administratora bazy danych.
Pomimo możliwości uruchomienia serwera SQL Server 2000 w systemie Windows 9x, nie
można w tym systemie wykorzystać pełnej funkcjonalności tego serwera. Uruchamiając serwer
w systemie Windows 9x nie można skorzystać z wielu procesorów, zabezpieczeń stosowanych
w systemie Windows NT/2000, woluminów New Technology File System (NTFS) i wielu innych
udogodnień. Zaleca się używanie serwera SQL Server 2000 raczej na platformie Windows NT
lub Windows 2000 niż Windows 9x. System Windows NT/2000 posiada również inne zalety.
Platforma NT jest stworzona do obsługi wielu użytkowników. System Windows 9x nie był
tworzony w ten sposób i wydajność serwera SQL Server na tej platformie gwałtownie maleje po
dodaniu większej liczby użytkowników. Książka ta zakłada, że wykorzystywany jest system
Windows 2000.
W systemie Windows NT Workstation, Windows NT Server oraz w każdej wersji MS Windows
2000 serwer SQL Server 2000 jest zaimplementowany jako usługa. W systemach Windows 98 i
Windows ME, SQL Server uruchamiany jest jako aplikacja aktualnie zalogowanego użytkownika.
Dołączone narzędzia, takie jak SQL Server Enterprise Manager, pracujące jako zwykle aplikacje
typu klientserwer, pozwalają na uruchamianie ich z dowolnego miejsca w celu kontroli baz
danych serwera SQL Server.
Usługa jest to aplikacja, jaką system Windows NT i Windows 2000 może uruchomić
automatycznie podczas uruchamiania systemu lub może zostać ona uruchomiona ręcznie na
żądanie. Usługi w systemach Windows NT/2000 posiadają interfejs API, który może być
kontrolowany programowo. Usługi pozwalają na uruchamianie aplikacji takich jak Microsoft SQL
Server bez potrzeby logowania użytkownika na komputerze serwera.
Co to jest baza danych?
SQL Server używa bazy danych typu relacyjnego. W relacyjnych bazach danych, dane są
zgrupowane w tabelach. Tabele są tworzone poprzez grupowanie danych z tego samego tematu i
zawierają kolumny oraz wiersze informacji. Tabele są ze sobą wiązane za pomocą mechanizmów
bazy danych, gdy uruchamiane jest zapytanie. Tabele są ściśle związane z pojęciami relacji lub
encji stosowanymi w odpowiednich książkach teoretycznych, w tej książce przedstawiona jest
jednak praktyka.
Generalnie bazę danych można przedstawić jako zbiór powiązanych danych. W niektórych
wcześniejszych systemach baz danych, baza danych była plikiem – takim jak employee.dbf ,
zawierającym pojedynczą tabelę danych. Wewnątrz pliku employee.dbf znajdowały się
kolumny odnoszące się do danych pracownika, takich jak pensja, data przyjęcia, nazwisko, numer
legitymacji ubezpieczeniowej itp. Plik zawierał wiersz dla każdej osoby w firmie, z odpowiednimi
wartościami w odpowiednich kolumnach. Indeksy, użyte do przyspieszenia dostępu do danych,
były w odrębnym pliku, tak jak inne elementy dotyczące zabezpieczeń.
W serwerze SQL Server 2000, baza danych nie koniecznie jest związana z pojedynczym plikiem;
jest to pojęcie bardziej logiczne, oparte na zbiorze powiązanych obiektów. Przykładowo, baza
danych na serwerze SQL Server zawiera nie tylko pierwotne dane, ale także strukturę bazy
danych, wszelkie indeksy, zabezpieczenia bazy i być może inne obiekty takie jak widoki lub
procedury składowane związane z określoną bazą.
Obiekty relacyjnej bazy danych
Relacyjna baza danych składa się z obiektów różnego typu. Obiekty te zostały opisane w
poszczególnych odnoszących się do nich rozdziałach. Poniżej przedstawiono kilka
najpowszechniejszych obiektów:
Tabele są obiektami zawierającymi typy danych i aktualne dane. Tabele zostały
omówione w rozdziale 9. „Typy danych i tworzenie tabel”.
Kolumny są częścią tabel przechowującą dane. Kolumny muszą posiadać określony typ
danych i unikalną nazwę.
Typy danych określają rodzaj przechowywanych danych. Można korzystać z wielu typów
danych, takich jak typ znakowy, numeryczny i typ data. Każdej kolumnie w tabeli jest
przypisany pojedynczy typ danych.
Procedury składowane są podobne do makr stworzonych w kodzie języka TransactSQL,
które można napisać i zachować pod daną nazwą. Przez wykonywanie procedury zostaje
faktycznie uruchomiony kod języka TSQL zawarty w procedurze. Przykładowo, kod
języka TSQL stosowany do uruchamiania co tygodniowych raportów zostaje zachowany
jako procedura, a następnie, w celu generacji raportu kod ten jest uruchamiany już jako
procedura. Procedur składowanych można używać także jako mechanizmów
zabezpieczeń.
Funkcje zdefiniowane przez użytkownika są kodem języka TransactSQL i są bardzo
podobne do procedur składowanych. Jednak funkcje mogą być wywoływane w
zapytaniach do bazy danych w celu modyfikacji kolumn danych, które mają być
widoczne jako tabela, bez względu na to czy są one tworzone programowo czy
dynamicznie. Przykładowo, można napisać własną funkcję daty, aby modyfikowała
kolumny danych typu DataGodzina (datetime).
Wyzwalacze są procedurami składowanymi, które są uaktywniane przed lub po dodaniu,
zmianą lub usunięciu danych z bazy. Wyzwalacze zapewniają, że reguły biznesowe lub
reguły integralności danych w bazie są przestrzegane. Przykładowo, wyzwalacz może
zapewnić, ze każda książka w księgarni ma przypisanego prawidłowego wydawcę.
Widoki są to głównie zapytania przechowywane w bazie danych, odnoszące się do jednej
lub wielu tabel. Widoki można stworzyć i zachować w celu łatwiejszego użycia w
przyszłości. Widoki zwykle wykluczają kolumny z tabeli lub łączą dwie lub więcej tabel.
Można ich również używać jako mechanizmów zabezpieczeń.
Indeksy pomagają tak zorganizować dane, że zapytania są wykonywane szybciej. Indeksy
zostały omówione szczegółowo w rozdziale 13. „Indeksowanie dla poprawy wydajności”.
Klucze podstawowe pomimo tego, że nie są obiektami, mają podstawowe znaczenie dla
relacyjnych baz danych. Wymuszają unikalność wierszy oraz umożliwiają unikatową
identyfikację każdego przechowywanego elementu.
Zgłoś jeśli naruszono regulamin