Ta strona wykorzystuje pliki cookies. Korzystając ze strony, zgadzasz się na ich użycie. OK Polityka Prywatności Zaakceptuj i zamknij X

Antywzorce języka SQL. Jak unikać... [nowa]

04-03-2012, 18:17
Aukcja w czasie sprawdzania była zakończona.
Cena kup teraz: 60.20 zł     
Użytkownik ksieg-inter_pl
numer aukcji: 2098773881
Miejscowość Warszawa
Wyświetleń: 7   
Koniec: 04-03-2012 15:53:30
info Niektóre dane mogą być zasłonięte. Żeby je odsłonić przepisz token po prawej stronie. captcha

Przedmiotem aukcji jest:

Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych

Bill Karwin

Dane:
  • ISBN:978-83-[zasłonięte]-3482-8
  • liczba stron: 400
  • okładka: miękka
  • wydawnictwo: Helion
  • wymiary: 158 x 235 mm
  • Data wydania: 2[zasłonięte]012-01
  • Stan produktu: nowy, nieużywany



  • Opis książki:
    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!

    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)

    Zobacz nasze pozostałe aukcje

    Dodaj nas do ulubionych sprzedawców

    Zapraszamy serdecznie.