Andrew Cumming, Gordon Russell : Jeżeli wolisz uczyć się na przykładach niż studiować dokumentacje, powinieneś przeczytać tę książkę. Gdybyś jednak miał ograniczyć się do skopiowania gotowych rozwiązań, zacznij od kursu języka
SQL.
Książka będzie też bardzo przydatna osobom pracującym na co dzień z jednym z opisywanych w niej serwerów baz danych, które chcą (albo muszą) poznać inne serwery. Dzięki niej wykorzystają zdobyte doświadczenie w pracy z innym serwerem.
Po pierwsze, rozwiązując sto typowych problemów bazodanowych autorzy pokazują możliwości języka SQL. Rozpoczynając od najprostszych sposobów zwracają uwagę na poprawne używanie tego języka – na przykład sposób 3. „Warunkowe polecenia INSERT” uczy nas jednoczesnego przetwarzania zbiorów, a nie pojedynczych danych.
Drugą charakterystyczną cechą książki jest przedstawienie uniwersalnych, działających na pięciu różnych serwerach baz danych (MySQL, PostgreSQL, SQL Server, Oracle i Access) technik. Porównując kolejne wersje rozwiązań tych samych problemów przekonujemy się, że różnice pomiędzy dialektami języka SQL są mniejsze niż mogło to się nam wydawać. Dopiero w połowie książki autorzy przyznają, że to zaskakujące podobieństwo wynika z zastosowania przez nich przyjętego ponad 15 lat temu standardu ANSI SQL2. Gdyby do rozwiązania niektórych problemów użyć obowiązującego dziś standardu SQL3, byłyby one czytelniejsze, prostsze i wydajniejsze. Niestety, byłyby też bardziej zróżnicowane. Na przykład, przedstawiony sposób wybierania dowolnych n kolejnych wierszy wyniku dla serwera SQL 2005 wykorzystuje podzapytanie z operatorem NOT IN, a nie funkcje rankingu.
W rezultacie w książce znajdziemy prawidłowe i uniwersalne, ale nie zawsze najlepsze sposoby:
- Wyznaczania trendów,
- Graficznego reprezentowania wyników zapytań,
- Wyszukiwania anomalii poprzez grupowanie danych,
- Generowania ciągłych sekwencji liczb,
- Wykorzystania tabel i widoków do przechowywania parametrów(technika szczególnie przydatna w programie Access),
- Zarządzania dostępem użytkowników do poszczególnych wierszy,
- Zastąpienia blokad wersjonowaniem danych, czyli wdrożenia optymistycznego modelu współbieżności,
- Rekursywnej analizy danych (może ktoś z Was przedstawi wykorzystującą CTE wersję sposobu 80. „Sześć stopni od Kevina Bacona”?).
Podstawą niektórych z opisanych w książce sposobów jest sprytne zastosowanie matematyki (np. żeby znaleźć większą z dwóch, przechowywanych w osobnych kolumnach wartości wystarczy policzyć (x+y+ABS(x-y))/2), lub reguł obowiązujących w księgowości, ale większość z nich bazuje na umiejętnym wykorzystaniu wyjątkowych cech języka SQL.
Podsumowanie
Jeżeli wolisz uczyć się na przykładach niż studiować dokumentacje, powinieneś przeczytać tę książkę. Gdybyś jednak miał ograniczyć się do skopiowania gotowych rozwiązań, zacznij od kursu języka SQL.
Książka będzie też bardzo przydatna osobom pracującym na co dzień z jednym z opisywanych w niej serwerów baz danych, które chcą (albo muszą) poznać inne serwery. Dzięki niej wykorzystają zdobyte doświadczenie w pracy z innym serwerem.
Autor recenzji: Marcin Szeliga