Wstęp (15)
Rozdział 1. Podstawy RDBMS - z czego składa się baza danych SQL Server (21)
- Przegląd obiektów bazy danych (22)
- Obiekt Baza danych (22)
- Dziennik transakcji (27)
- Najbardziej podstawowy obiekt bazy danych - tabela (27)
- Grupy plików (29)
- Diagramy (29)
- Widoki (31)
- Procedury składowane (31)
- Funkcje zdefiniowane przez użytkownika (32)
- Użytkownicy i role (32)
- Reguły (33)
- Wartości domyślne (33)
- Typy danych zdefiniowane przez użytkownika (33)
- Katalogi wyszukiwania pełnotekstowego (33)
- Typy danych w systemie SQL Server (34)
- Identyfikatory obiektów w systemie SQL Server (39)
- Nazwy (39)
- Konwencje nazewnicze (39)
- Podsumowanie (40)
Rozdział 2. Narzędzia (41)
- Books Online (42)
- SQL Server Configuration Manager (43)
- Zarządzanie usługami (44)
- Konfiguracja sieci (44)
- Protokoły (46)
- Klient (48)
- SQL Server Management Studio (50)
- Rozpoczęcie pracy (51)
- Okno zapytań (55)
- SQL Server Integration Services (SSIS) (61)
- Bulk Copy Program (bcp) (62)
- SQL Server Profiler (62)
- sqlcmd (63)
- Podsumowanie (64)
Rozdział 3. Podstawowe polecenia języka T-SQL (65)
- Podstawowe polecenie - SELECT (66)
- Polecenie SELECT i klauzula FROM (66)
- Klauzula WHERE (70)
- ORDER BY (73)
- Agregacje danych za pomocą klauzuli GROUP BY (77)
- Tworzenie warunków za pomocą klauzuli HAVING (85)
- Generowanie XML-a za pomocą klauzuli FOR XML (87)
- Wykorzystanie wskazówek za pomocą klauzuli OPTION (88)
- Predykaty DISTINCT i ALL (88)
- Wprowadzanie danych za pomocą polecenia INSERT (90)
- Polecenie INSERT INTO...SELECT (95)
- Wprowadzanie zmian za pomocą polecenia UPDATE (97)
- Polecenie DELETE (100)
- Podsumowanie (101)
- Ćwiczenia (102)
Rozdział 4. Złączenia (JOINs) (103)
- Złączenia JOIN (104)
- Złączenia wewnętrzne (INNER JOIN) (105)
- Dlaczego INNER JOIN przypomina klauzulę WHERE (110)
- Złączenia zewnętrzne (114)
- Proste złączenie zewnętrzne (115)
- Bardziej skomplikowane złączenia zewnętrzne (120)
- Spojrzenie w obie strony za pomocą złączeń pełnych (124)
- Złączenia krzyżowe (126)
- Alternatywne składnie złączeń (127)
- Alternatywne INNER JOIN (127)
- Alternatywne OUTER JOIN (128)
- Alternatywne CROSS JOIN (129)
- Unia (130)
- Podsumowanie (135)
- Ćwiczenia (135)
Rozdział 5. Tworzenie i modyfikacja tabel (137)
- Nazwy obiektów w systemie SQL Server (137)
- Nazwa schematu (138)
- Nazwa bazy danych (141)
- Nazwa serwera (141)
- Przegląd ustawień domyślnych (141)
- Polecenie CREATE (142)
- CREATE DATABASE (142)
- CREATE TABLE (148)
- Polecenie ALTER (161)
- ALTER DATABASE (161)
- ALTER TABLE (164)
- Polecenie DROP (168)
- Wykorzystanie narzędzia GUI (169)
- Tworzenie bazy danych za pomocą SQL Server Management Studio (169)
- Powrót do kodowania - podstawy tworzenia skryptów za pomocą SQL Server Management Studio (175)
- Podsumowanie (176)
- Ćwiczenia (176)
Rozdział 6. Ograniczenia (177)
- Rodzaje ograniczeń (178)
- Ograniczenia domeny (178)
- Ograniczenia encji (179)
- Ograniczenia integralności referencyjnej (179)
- Nazewnictwo ograniczeń (180)
- Ograniczenia kluczy (181)
- Ograniczenia PRIMARY KEY (182)
- Ograniczenia FOREIGN KEY (184)
- Ograniczenia UNIQUE (195)
- Ograniczenia CHECK (196)
- Ograniczenia DEFAULT (198)
- Definiowanie ograniczenia DEFAULT w poleceniu CREATE TABLE (199)
- Dodawanie ograniczenia DEFAULT do istniejącej tabeli (199)
- Wyłączanie ograniczeń (200)
- Ignorowanie niewłaściwych danych podczas tworzenia ograniczenia (200)
- Tymczasowe wyłączenie istniejącego ograniczenia (202)
- Reguły i wartości domyślne - kuzyni ograniczeń (204)
- Reguły (204)
- Wartości domyślne (206)
- Określanie tabel wykorzystujących konkretne reguły i wartości domyślne (207)
- Wyzwalacze a integralność danych (208)
- Czego używać (208)
- Podsumowanie (209)
Rozdział 7. Zwiększanie możliwości zapytań (211)
- Co to jest podzapytanie (212)
- Tworzenie podzapytania zagnieżdżonego (213)
- Podzapytania skorelowane (216)
- W jaki sposób działają podzapytania skorelowane (216)
- Podzapytania skorelowane w klauzuli WHERE (217)
- Praca z wartościami NULL - funkcja ISNULL (221)
- Tabele pochodne (222)
- Operator EXISTS (224)
- Inne sposoby wykorzystania EXISTS (226)
- Mieszanie typów danych - funkcje CAST i CONVERT (227)
- Kwestie wydajności (230)
- Lepiej używać złączeń, podzapytań czy czegoś innego? (230)
- Podsumowanie (232)
- Ćwiczenia (232)
Rozdział 8. "Być normalnym" - normalizacja i inne kwestie podstaw projektowania (233)
- Tabele (234)
- Utrzymywanie danych "normalnymi" (234)
- Zanim zaczniemy (235)
- Pierwsza postać normalna (237)
- Druga postać normalna (241)
- Trzecia postać normalna (242)
- Inne postacie normalne (244)
- Relacje (245)
- Jeden do jednego (245)
- Jeden do jednego lub wielu (247)
- Wiele do wielu (249)
- Diagramy (253)
- Tabele (255)
- Dodawanie i usuwanie tabel (256)
- Relacje (262)
- Denormalizacja (266)
- Poza normalizacją (267)
- Prostota (267)
- Wybór typów danych (267)
- Błędy w sposobie przechowywania (268)
- Szkic prostego przykładu (269)
- Tworzenie bazy danych (269)
- Dodawanie diagramu i tabeli początkowej (269)
- Dodawanie relacji (274)
- Dodawanie ograniczeń (276)
- Podsumowanie (278)
- Ćwiczenia (278)
Rozdział 9. Struktury danych i indeksów w SQL Server (279)
- Struktury danych w SQL Serverze (279)
- Baza danych (279)
- Zakres (280)
- Strona (280)
- Wiersze (281)
- Podstawy indeksów (281)
- B-drzewa (283)
- Sposób udostępniania danych w SQL Serverze (286)
- Tworzenie, modyfikacja i usuwanie indeksów (295)
- Polecenie CREATE INDEX (295)
- Tworzenie indeksów XML (302)
- Indeksy wywiedzione tworzone z ograniczeniami (303)
- Mądry wybór - jaki indeks, gdzie i kiedy go stosować (303)
- Selektywność (304)
- Przyglądanie się kosztom - gdy mniej znaczy więcej (305)
- Wybieranie właściwego indeksu klastrowego (305)
- Kolejność kolumn (308)
- Usuwanie indeksów (308)
- Korzystanie z Database Engine Tuning Advisor (309)
- Utrzymywanie indeksów (309)
- Fragmentacja (310)
- Identyfikacja fragmentacji a prawdopodobieństwo podziału stron (310)
- Podsumowanie (314)
- Ćwiczenia (315)
Rozdział 10. Widoki (317)
- Proste widoki (317)
- Bardziej złożone widoki (323)
- Wykorzystanie widoków do zmiany danych bez użycia wyzwalaczy INSTEAD OF (326)
- Edycja widoków za pomocą T-SQL-a (330)
- Usuwanie widoków (330)
- Tworzenie i edycja widoków w SQL Server Management Studio (330)
- Edycja widoków w SQL Server Management Studio (334)
- Sprawdzanie - wyświetlanie istniejącego kodu (334)
- Ochrona kodu - szyfrowanie widoków (336)
- Słowo o schemacie powiązania (337)
- Upodabnianie widoków do tabel za pomocą VIEW_METADATA (338)
- Widoki indeksowane (materializowane) (338)
- Podsumowanie (342)
- Ćwiczenia (342)
Rozdział 11. Tworzenie skryptów i programów wsadowych (343)
- Podstawy skryptów (344)
- Instrukcja USE (344)
- Deklaracja zmiennych (345)
- Użycie @@IDENTITY (349)
- Użycie @@ROWCOUNT (352)
- Batch (353)
- Błędy w programach wsadowych (355)
- Kiedy korzystać z programów wsadowych (356)
- SQLCMD (359)
- Dynamiczny SQL - tworzenie kodu "w locie" za pomocą polecenia EXEC (363)
- Podsumowanie (368)
- Ćwiczenia (369)
Rozdział 12. Procedury składowane (371)
- Tworzenie procedury składowanej - podstawy składni (372)
- Przykład prostej procedury (372)
- Zmiana procedury składowanej za pomocą ALTER (373)
- Usuwanie procedur składowanych (374)
- Określanie parametrów (374)
- Deklaracja parametrów (374)
- Instrukcje sterujące przepływem danych (379)
- Polecenie IF ... ELSE (380)
- Instrukcja CASE (390)
- Zapętlanie przy użyciu instrukcji WHILE (397)
- Instrukcja WAITFOR (398)
- Bloki TRY/CATCH (399)
- Potwierdzanie powodzenia lub niepowodzenia za pomocą wartości zwrotnych (399)
- Obsługa błędów (402)
- Dotychczasowe sposoby... (403)
- Bloki TRY/CATCH (409)
- Obsługa błędów przed ich wystąpieniem (412)
- Ręczne zgłaszanie błędu (415)
- Dodawanie własnych komunikatów o błędzie (419)
- Co oferuje procedura składowana (422)
- Tworzenie wywoływalnych procesów (423)
- Używanie procedur składowanych w celu zapewnienia bezpieczeństwa (424)
- Procedura składowana a wydajność (425)
- Rozszerzone procedury składowane (XPs) (427)
- Krótkie spojrzenie na rekurencję (428)
- Kolekcje .NET (430)
- Podsumowanie (432)
- Ćwiczenia (432)
Rozdział 13. Funkcje definiowane przez użytkownika (435)
- Czym są funkcje użytkownika (435)
- Funkcje użytkownika zwracające wartości skalarne (437)
- Funkcje użytkownika zwracające tabele (440)
- Zrozumienie jednoznaczności (448)
- Debugowanie funkcji definiowanych przez użytkownika (450)
- Zastosowanie .NET w bazach danych (450)
- Podsumowanie (451)
- Ćwiczenia (451)
Rozdział 14. Transakcje i blokady (453)
- Transakcje (453)
- BEGIN TRANSACTION (455)
- COMMIT TRANSACTION (455)
- ROLLBACK TRANSACTION (455)
- SAVE TRANSACTION (456)
- Jak działa dziennik SQL Servera (456)
- Awaria i odtwarzanie (458)
- Domniemanie transakcji (459)
- Blokady i współbieżność (460)
- Jakim problemom mogą zapobiegać blokady (461)
- Blokowalne zasoby (464)
- Rozwijanie blokad i wpływ blokad na wydajność (465)
- Tryby blokowania (466)
- Kompatybilność blokad (468)
- Określanie konkretnego typu blokady - wskazówki optymalizatora (469)
- Określanie poziomu izolowania (470)
- Obsługa zakleszczeń (lub błąd 1205) (473)
- W jaki sposób SQL Server określa występowanie zakleszczenia (474)
- W jaki sposób wybierane są ofiary zakleszczenia (474)
- Unikanie zakleszczeń (474)
- Podsumowanie (477)
Rozdział 15. Wyzwalacze (479)
- Czym są wyzwalacze (480)
- Klauzula ON (482)
- WITH ENCRYPTION (482)
- Użycie klauzuli FOR|AFTER i INSTEAD OF (482)
- WITH APPEND (485)
- NOT FOR REPLICATION (486)
- AS (486)
- Użycie wyzwalaczy do określenia zasad integralności danych (486)
- Obsługa wymagań pochodzących z innych tabel (486)
- Użycie wyzwalaczy w celu sprawdzenia delty aktualizacji (488)
- Użycie wyzwalaczy w celu wywołania własnych komunikatów o błędach (490)
- Inne powszechne zastosowania wyzwalaczy (490)
- Inne kwestie związane z wyzwalaczami (491)
- Wyzwalacze można zagnieżdżać (491)
- Wyzwalacze mogą być rekurencyjne (491)
- Wyzwalacze nie zapobiegają zmianom architektury (492)
- Wyzwalacze można wyłączyć bez ich usuwania (492)
- Kolejność uruchamiania wyzwalaczy (493)
- Wyzwalacze INSTEAD OF (495)
- Rozważania o wydajności (496)
- Działanie wyzwalaczy jest raczej reakcją niż akcją (496)
- Wyzwalacze a problem współbieżności (496)
- Użycie IF UPDATE() i COLUMNS_UPDATED() (497)
- Twórz jak najprostsze wyzwalacze (499)
- Nie zapominaj o wyzwalaczach, gdy wybierasz indeksy (500)
- Unikaj cofania wewnątrz wyzwalaczy (500)
- Usuwanie wyzwalaczy (500)
- Podsumowanie (501)
Rozdział 16. Krótki elementarz języka XML (503)
- Podstawy języka XML (504)
- Części składowe dokumentu XML (505)
- Przestrzeń nazw (513)
- Zawartość elementów (515)
- Poprawność strukturalna a poprawność składniowa - schemat XML i DTD (516)
- Co to ma wspólnego z systemem SQL Server? (517)
- Dostarczanie relacyjnych danych w formacie XML (517)
- RAW (519)
- AUTO (521)
- EXPLICIT (523)
- PATH (539)
- OPENXML (544)
- Dwa słowa o XSLT (550)
- Podsumowanie (552)
Rozdział 17. Raport ze służby - spojrzenie na usługi raportowe (553)
- Usługi raportowe (554)
- Tworzenie prostego modelu raportu (554)
- Widok źródła danych (559)
- Tworzenie raportów (565)
- Projekt serwera raportowego (568)
- Instalowanie raportu (573)
- Podsumowanie (574)
Rozdział 18. Integracja z usługami integracyjnymi (575)
- Zrozumienie problemu (576)
- Używanie Import and Export Wizard do tworzenia podstawowych pakietów (576)
- Uruchamianie pakietów (583)
- Używanie Execute Package Utility (583)
- Uruchamianie w SQL Server Business Intelligence Development Studio (586)
- Uruchamianie w SQL Server Management Studio (586)
- Edycja pakietów (587)
- Podsumowanie (589)
Rozdział 19. Zabawa w administratora (591)
- Harmonogram zadań (592)
- Tworzenie kont operatorów (593)
- Tworzenie zadań (595)
- Tworzenie kopii zapasowych i odtwarzanie bazy (607)
- Tworzenie kopii zapasowej (607)
- Recovery Models (modele odtwarzania) (611)
- Odtwarzanie (612)
- Utrzymywanie indeksów (614)
- Archiwizacja danych (617)
- Podsumowanie (618)
- Ćwiczenia (619)
Dodatek A Rozwiązania ćwiczeń (621)
Dodatek B Funkcje systemowe (631)
Dodatek C Używanie właściwych narzędzi (689)
Dodatek D Bardzo proste przykłady połączeń (697)
Dodatek E Instalacja i użycie przykładów (701)
Skorowidz (705)
|