Cena detaliczna 69,00 zł
Cena promocyjna 55,20 zł
nie zaw. kosztów wysyłki
MODEL: 978-83-246-3482-8
Wydrukuj kartę produktu
Dostawa: 1-2 Dni
Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych
Autor: Bill Karwin
Data wydania: 2012/01
Stron: 400
Tytuł oryginału: SQL Antipatterns: Avoiding the Pitfalls of Database Programming
Tłumaczenie: Mikołaj Szczepaniak
ISBN: 9788324634828 / 978-83-246-3482-8
Format: 158x235
Oprawa: miękka
Numer z katalogu: 7514
Wydawnictwo Helion
Zobacz, jak tego nie robić!
Jak nie projektować modelu logicznego i fizycznego bazy danych?
Jak nie zadawać zapytań SQL?
Jak nie wytwarzać aplikacji?
Podobno najlepiej jest uczyć się na cudzych błędach. Ta mądrość sprawdza się w wielu dziedzinach życia, także w informatyce. Ile razy brnąłeś w złe rozwiązanie, aż ktoś powiedział: "tak się nie robi"? Czy nie pomyślałeś wtedy o książce, w której zamiast metod rozwiązywania danych problemów znalazłbyś informacje, jak do nich nie dopuścić? Chciałbyś, żeby ta książka dotyczyła języka SQL? Oto ona!
Niniejsza publikacja przedstawia zbiór antywzorców w języku SQL. Dzięki niej poznasz błędy najczęściej popełniane przy projektowaniu i wykorzystywaniu baz danych. Dowiesz się z niej, jak nie tworzyć logicznego i fizycznego projektu bazy danych, jak nie zadawać zapytań SQL oraz jak nie wytwarzać aplikacji - a wszystko po to, aby zrozumieć, jak nie popełniać błędów. W każdej z czterech części znajdziesz ogrom interesujących informacji: poznasz zasady przechowywania haseł, błędy pojawiające się w wyniku zaokrągleń czy sposoby radzenia sobie z brakiem integralności bazy danych. Książka ta jest genialną pozycją, dzięki której już nigdy nie zboczysz z drogi w codziennej pracy z bazami danych i językiem SQL!
Antywzorce logicznego projektu bazy danych
Modelowanie drzew
Tworzenie kluczy głównych
Związki polimorficzne
Atrybuty wielokolumnowe
Antywzorce fizycznego projektu bazy danych
Błędy zaokrągleń
Przechowywanie dużych plików
Indeksy
Antywzorce zapytań
Wykorzystanie NULL-a
Grupowanie kolumn
Losowe wybieranie wiersza
Przeszukiwanie tekstów
Optymalizacja zapytań SQL
Antywzorce wytwarzania aplikacji
Przechowywanie haseł
Wstrzykiwanie SQL
Ucz się na błędach... Cudzych!
Spis treści
Rozdział 1. Wprowadzenie 11
1.1. Dla kogo jest ta książka 13
1.2. Co znajduje się w tej książce 14
1.3. Czego nie ma w tej książce 16
1.4. Konwencje 18
1.5. Przykładowa baza danych 19
1.6. Podziękowania 22
Część I. Antywzorce logicznego projektu bazy danych 23
Rozdział 2. Przechodzenie na czerwonym świetle 25
2.1. Cel: przechowywanie atrybutów wielowartościowych 26
2.2. Antywzorzec: listy elementów oddzielonych przecinkami 27
2.3. Jak rozpoznać ten antywzorzec 31
2.4. Usprawiedliwione użycia tego antywzorca 31
2.5. Rozwiązanie: utworzenie tabeli łączącej 32
Rozdział 3. Naiwne drzewa 37
3.1. Cel: przechowywanie i uzyskiwanie hierarchii 38
3.2. Antywzorzec: zawsze odwołuj się do rodzica 39
3.3. Jak rozpoznać ten antywzorzec 43
3.4. Usprawiedliwione użycia tego antywzorca 44
3.5. Rozwiązanie: należy użyć alternatywnych modeli drzew 46
Rozdział 4. Identyfikator potrzebny od zaraz 61
4.1. Cel: wypracowanie konwencji dla kluczy głównych 62
4.2. Antywzorzec: jeden rozmiar dla wszystkich 64
4.3. Jak rozpoznać ten antywzorzec 69
4.4. Usprawiedliwione użycia tego antywzorca 70
4.5. Rozwiązanie: klucz skrojony na miarę 70
Rozdział 5. Wpis bez klucza 75
5.1. Cel: uproszczenie architektury bazy danych 76
5.2. Antywzorzec: rezygnacja z ograniczeń 77
5.3. Jak rozpoznać ten antywzorzec 80
5.4. Usprawiedliwione użycia tego antywzorca 81
5.5. Rozwiązanie: deklarowanie ograniczeń 81
Rozdział 6. Encja-atrybut-wartość 85
6.1. Cel: obsługa zmiennych atrybutów 86
6.2. Antywzorzec: zastosowanie uniwersalnej tabeli atrybutów 87
6.3. Jak rozpoznać ten antywzorzec 93
6.4. Usprawiedliwione użycia tego antywzorca 94
6.5. Rozwiązanie: modelowanie podtypów 95
Rozdział 7. Związki polimorficzne 103
7.1. Cel: odwołania do wielu rodziców 104
7.2. Antywzorzec: zastosowanie dwuzadaniowego klucza obcego 105
7.3. Jak rozpoznać ten antywzorzec 109
7.4. Usprawiedliwione użycia tego antywzorca 110
7.5. Rozwiązanie: uproszczenie relacji 110
Rozdział 8. Atrybuty wielokolumnowe 117
8.1. Cel: przechowywanie atrybutów wielowartościowych 118
8.2. Antywzorzec: utworzenie wielu kolumn 118
8.3. Jak rozpoznać ten antywzorzec 122
8.4. Usprawiedliwione użycia tego antywzorca 123
8.5. Rozwiązanie: utworzenie tabeli zależnej 124
Rozdział 9. Tribble metadanych 127
9.1. Cel: zapewnienie skalowalności 128
9.2. Antywzorzec: klonowanie tabel lub kolumn 129
9.3. Jak rozpoznać ten antywzorzec 134
9.4. Usprawiedliwione użycia tego antywzorca 135
9.5. Rozwiązanie: partycjonowanie i normalizacja 137
Część II. Antywzorce fizycznego projektu bazy danych 141
Rozdział 10. Błędy zaokrągleń 143
10.1. Cel: stosowanie liczb ułamkowych zamiast liczb całkowitych 144
10.2. Antywzorzec: stosowanie typu danych FLOAT 144
10.3. Jak rozpoznać ten antywzorzec 149
10.4. Usprawiedliwione użycia tego antywzorca 150
10.5. Rozwiązanie: stosowanie typu danych NUMERIC 150
Rozdział 11. 31 smaków 153
11.1. Cel: ograniczenie zakresu danych kolumny do określonych wartości 154
11.2. Antywzorzec: określanie wartości w definicji kolumny 155
11.3. Jak rozpoznać ten antywzorzec 159
11.4. Usprawiedliwione użycia tego antywzorca 160
11.5. Rozwiązanie: określanie akceptowanych wartości na poziomie danych 160
Rozdział 12. Pliki-widma 165
12.1. Cel: przechowywanie obrazów i innych dużych zasobów 166
12.2. Antywzorzec: przekonanie o konieczności stosowania plików 167
12.3. Jak rozpoznać ten antywzorzec 171
12.4. Usprawiedliwione użycia tego antywzorca 172
12.5. Rozwiązanie: stosowanie typów danych BLOB 173
Rozdział 13. Strzelanie indeksami 177
13.1. Cel: optymalizacja wydajności 178
13.2. Antywzorzec: stosowanie indeksów bez żadnego planu 179
13.3. Jak rozpoznać ten antywzorzec 184
13.4. Usprawiedliwione użycia tego antywzorca 184
13.5. Rozwiązanie: zasada MENTOR dla indeksów 185
Część III. Antywzorce zapytań 193
Rozdział 14. Strach przed nieznanym 195
14.1. Cel: odróżnianie brakujących wartości 196
14.2. Antywzorzec: stosowanie NULL jako zwykłej wartości lub odwrotnie 197
14.3. Jak rozpoznać ten antywzorzec 201
14.4. Usprawiedliwione użycia tego antywzorca 202
14.5. Rozwiązanie: stosowanie NULL jako unikatowej wartości 203
Rozdział 15. Niejasne grupy 209
15.1. Cel: uzyskiwanie wiersza z największą wartością w skali grupy 210
15.2. Antywzorzec: odwołania do niegrupowanych kolumn 211
15.3. Jak rozpoznać ten antywzorzec 214
15.4. Usprawiedliwione użycia tego antywzorca 215
15.5. Rozwiązanie: jednoznaczne stosowanie kolumn 216
Rozdział 16. Losowy wybór 223
16.1. Cel: uzyskiwanie przypadkowego wiersza 224
16.2. Antywzorzec: losowe sortowanie danych 225
16.3. Jak rozpoznać ten antywzorzec 226
16.4. Usprawiedliwione użycia tego antywzorca 227
16.5. Rozwiązanie: brak ustalonej kolejności... 228
Rozdział 17. Wyszukiwarka nędzarza 233
17.1. Cel: pełne przeszukiwanie tekstu 234
17.2. Antywzorzec: predykaty dopasowywania wzorców 235
17.3. Jak rozpoznać ten antywzorzec 236
17.4. Usprawiedliwione użycia tego antywzorca 237
17.5. Rozwiązanie: stosowanie narzędzi odpowiednio dobranych do realizowanych zadań 237
Rozdział 18. Zapytanie-spaghetti 251
18.1. Cel: ograniczenie liczby zapytań SQL-a 252
18.2. Antywzorzec: rozwiązanie złożonego problemu w jednym kroku 253
18.3. Jak rozpoznać ten antywzorzec 256
18.4. Usprawiedliwione użycia tego antywzorca 257
18.5. Rozwiązanie: dziel i zwyciężaj 257
Rozdział 19. Ukryte kolumny 263
19.1. Cel: ograniczyć ilość wpisywanego kodu 264
19.2. Antywzorzec: skrót prowadzący na manowce 265
19.3. Jak rozpoznać ten antywzorzec 267
19.4. Usprawiedliwione użycia tego antywzorca 268
19.5. Rozwiązanie: należy wprost nazywać kolumny 269
Część IV. Antywzorce wytwarzania aplikacji 273
Rozdział 20. Czytelne hasła 275
20.1. Cel: odzyskiwanie lub resetowanie haseł 276
20.2. Antywzorzec: przechowywanie haseł w formie zwykłego tekstu 276
20.3. Jak rozpoznać ten antywzorzec 279
20.4. Usprawiedliwione użycia tego antywzorca 280
20.5. Rozwiązanie: przechowywanie zabezpieczonych kodów haseł 281
Rozdział 21. Wstrzykiwanie SQL-a 289
21.1. Cel: pisanie dynamicznych zapytań języka SQL 290
21.2. Antywzorzec: wykonywanie niesprawdzonych danych wejściowych jako kodu 291
21.3. Jak rozpoznać ten antywzorzec 299
21.4. Usprawiedliwione użycia tego antywzorca 300
21.5. Rozwiązanie: nie ufać nikomu 301
Rozdział 22. Obsesja czystości pseudokluczy 309
22.1. Cel: sprzątanie danych 310
22.2. Antywzorzec: wypełnianie luk 311
22.3. Jak rozpoznać ten antywzorzec 314
22.4. Usprawiedliwione użycia tego antywzorca 314
22.5. Rozwiązanie: zapomnieć o problemie 315
Rozdział 23. Przymykanie oczu na zło 321
23.1. Cel: pisać mniej kodu 322
23.2. Antywzorzec: ścinanie zakrętów 323
23.3. Jak rozpoznać ten antywzorzec 326
23.4. Usprawiedliwione użycia tego antywzorca 327
23.5. Rozwiązanie: elegancka obsługa błędów 327
Rozdział 24. Immunitet dyplomatyczny 331
24.1. Cel: stosowanie najlepszych praktyk 332
24.2. Antywzorzec: kod SQL-a jako obywatel drugiej kategorii 333
24.3. Jak rozpoznać ten antywzorzec 334
24.4. Usprawiedliwione użycia tego antywzorca 335
24.5. Rozwiązanie: ustanowienie możliwie szerokiej kultury jakości 336
Rozdział 25. Magiczna fasola 347
25.1. Cel: upraszczanie modeli w architekturze model-widok-komponent 348
25.2. Antywzorzec: model jako rekord aktywny Active Record 350
25.3. Jak rozpoznać ten antywzorzec 356
25.4. Usprawiedliwione użycia tego antywzorca 357
25.5. Rozwiązanie: model zawierający rekord aktywny 358
Dodatki 365
Dodatek A. Reguły normalizacji 367
A.1. Co to oznacza, że baza jest relacyjna? 368
A.2. Mity dotyczące normalizacji 371
A.3. Czym jest normalizacja? 372
A.4. Zdrowy rozsądek 383
Dodatek B. Bibliografia 385
Skorowidz 387
Autor: Karwin Bill
Rok wydania: 2012
ISBN: 978-83-246-3482-8
Data dodania do sklepu niedziela, 05 luty 2012.