Recenzje
Excel 2007 w firmie. Controlling, finanse i nie tylko
Inteligencja finansowa. Co kryją liczby. Przewodnik menedżera
Sex, magia i uwodziciele
Alchemia sprzedaży, czyli jak skutecznie sprzedawać produkty, usługi, pomysły i wizerunek samego siebie
Windows Server 2003. Bezpieczeństwo sieci
Mottem książki jest Znajomość podstaw fachu jest ważniejsza niż umiejętność używania najnowszych narzędzi. Konsekwentne przestrzeganie tej reguły pozwoliło Robertowi w jednej książce opisać bardzo szeroki zakres materiału: od podstaw języka T-SQL po model SMO. I chociaż nie jest to kompletny opis serwera SQL 2005, to książka (z małymi wyjątkami) nie jest chaotyczna.
Tytuł sugeruje, że jest ona przeznaczona dla programistów mających pewne doświadczenie w pracy z serwerami baz danych — rzeczywiście osoby które nigdy nie pisały aplikacji bazodanowych po jej przeczytaniu będą miały niepełny obraz możliwości serwera SQL, ale nawet one będą potrafiły samodzielnie go oprogramować.
Książkę podzieliłem na trzy części:- Rozdziały od 1 do 7 to intensywny kurs języka T-SQL uzupełniony o opis narzędzi klienckich serwera SQL 2005 i błyskawiczny kurs modelu relacyjnego.
- Rozdziały od 8 do 17 poświecone są programowaniu serwera SQL 2005.
- Rozdziały od 18 do 25 przedstawiają, w bardzo dużym skrócie, dodatkowe funkcje serwera SQL 2005 (np. replikację ), dodatkowe usługi (w tym usługę raportowania) i zagadnienia pośrednio związane z programowaniem, takie jak zabezpieczenia oraz optymalizacja zapytań.
Szczegółowe przedstawienie języka T-SQL to materiał na osobną książkę. Na szczęście Robert od początku opisuje tylko wybrane, według niego niezbędne do opanowania języka T-SQL, kwestie pomijając większość standardowych, szeroko omamianych w materiałach firmy Microsoft zagadnień.
Już po lekturze pierwszego rozdziału staje się oczywiste, że książka powstała na podstawie doświadczeń autora. Jeżeli nie zgadzają się one z oficjalnymi wytycznymi firmy Microsoft, Robert wyraźnie to zaznacza. Na przykład, o wspomnianych przy okazji wyjaśniania struktury obiektów bazodanowych schematach (jednej z nagłośnionych nowości w serwerze SQL 2005) dowiadujemy się, że ich stosowanie daje więcej złego niż dobrego i autor odradza ich używania. Jednoznaczna jest też opinia autora na temat (wprowadzonej w wersji 7.0) możliwości umieszczania spacji w nazwach obiektów bazodanowych: Nie używaj ich. Stosowanie spacji w nazwach jest wyjątkowo złą praktyką i prowadzi do ogromnej ilości błędów… Przeklinam osobę która zdecydowała o dodaniu tej funkcji. Dużą zaletą książki jest przedstawianie przez autora omawianych zagadnień na przykładach i częste zamieszczanie uwag ze wskazówkami ułatwiającymi samodzielnie znalezienie dodatkowych informacji w dokumentacji BOL (ang. Book online).
To, że pierwsza część książki jest błyskawicznym kursem języka T-SQL nie znaczy, że nie można w niej znaleźć interesujących, szczegółowych informacji: dowiemy się z niej na przykład w jakim przypadku niemożliwe jest zdefiniowanie kaskadowych akcji dla ograniczenia klucza obcego oraz kiedy warto wpisać dane do tabeli przed założeniem dla niej ograniczeń. Z ostatniego rozdziału tej części książki pochodzi poniższa, najkrótsza z możliwych definicja 3 postaci normalnej: Klucz, cały klucz i tylko klucz.
Część II czyli trzy tomy serii Inside SQL Server w jednymDrugą część książki rozpoczyna rozdział poświecony strukturom danych, w szczególności budowie i działaniu indeksów. Z indeksami i strategią ich stosowania jest związanych wiele mitów i zabawnych nieporozumień, ale opis Roberta jest bardzo rzeczowy, bo odpowiada na konkretne pytania, takie jak: dlaczego podczas podziału strony 50% (a nie np. 25%) danych jest przenoszony do nowej strony, dlaczego operator EXISTS jest użyteczny nawet przy braku indeksów, oraz jakie konsekwencje wynikają z zablokowania indeksu zgrupowanego (ang. Clustered).
Ze znajdującego się w tej części rozdziału poświęconego procedurom składowanym i funkcjom użytkownika pochodzi poniższy cytat dobrze oddający specyficzny styl Roberta: Udostępnienie użytkownikom bezpośredniego dostępu do danych poprzez takie programy jak Access czy Excel jest jedną z najpoważniejszych i jednocześnie najgłupszych decyzji. Nadając użytkownikom dodatkowe uprawnienia kopiemy sobie własny grób tracąc kontrolę nad wykonywanymi przez nich długotrwałymi i kosztownymi zapytaniami.
W tej części książki znalazły się też rozdziały poświęcone widokom, skryptom, transakcjom i blokadom, wyzwalaczom, integracji ze środowiskiem .NET, obsłudze dokumentów XML i kursorom. O tym, że zostały one opisane przez doświadczonego programistę świadczy m.in. uwaga na temat automatycznej konwersji kursorów typu Keyset (czyli takich które zawierają jedynie klucze podstawowe tabeli) na kursory statyczne (czyli zawierające kopię całej tabeli) — serwer SQL przeprowadza taką konwersję, w dodatku nie informując o niej, jeżeli tabela bazowa nie zawiera unikatowego indeksu.
Część III czyli przegląd dodatkowych funkcji serwera SQL 2005W ostatniej części książki Rober próbuje na mniej więcej 250 stronach przedstawić najróżniejsze, nie powiązane ze sobą zagadnienia, w tym usługi raportowania i wyszukiwania pełnotekstowego, techniki importowania, przekształcania i eksportowania danych (zarówno za pomocą programu BCP jak i pakietów SSIS), typowe zadania administracyjne i ich automatyzację za pomocą SMO, oraz techniki zabezpieczania i optymalizacji baz danych. I chociaż doświadczeni administratorzy czy specjaliści BI raczej nie znajdą tu niczego nowego, to osoby które wcześniej nie korzystały z tych funkcji serwera SQL przekonają się, że warto je poznać i używać.
W tej części, pomimo jej wyrywkowości też znajdziemy ciekawe uwagi Roberta, na przykład uwagę na temat uprawnień na poziomie kolumn — serwer SQL pozwala nadawać uprawnienia do odczytu i aktualizacji poszczególnych kolumn — i dlaczego firma Microsoft żałuje ich wprowadzenia. Podsumowanie
Jeżeli jesteś programistą baz danych i pracujesz z serwerem SQL 2005, powinieneś przeczytać tę książkę — pozwoli Ci ona efektywniej oprogramować ten serwer i przede wszystkim zapoznać się z najważniejszymi problemami, które mogą się pojawić w trakcie pracy z tym serwerem. Nie traktuj jej jednak jako jedynego źródła wiedzy — przedstawia ona punkt widzenia Roberta, a żeby móc się do niego odnieść (a nie bezkrytycznie go przyjąć) powinieneś poznać opinię innych osób, w tym specjalistów firmy Microsoft.
Książka powinna też zainteresować tych administratorów serwera SQL 2005 którzy mają zacięcie programistyczne — dzięki temu, że przedstawia ona wybrane zagadnienia i ilustruje je dobrze dobranymi przykładami, mają oni okazję poznać zasady programowania baz danych bez wertowania kilku szczegółowych, często nużących, pozycji.