reklama - zainteresowany?

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

Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych
ebook
Autor: Bill Karwin
Tytuł oryginału: SQL Antipatterns: Avoiding the Pitfalls of Database Programming
Tłumaczenie: Mikołaj Szczepaniak
ISBN: 978-83-246-4714-9
stron: 400, Format: ebook
Data wydania: 2012-02-15
Księgarnia: Helion

Cena książki: 37,95 zł (poprzednio: 67,77 zł)
Oszczędzasz: 44% (-29,82 zł)

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

Tagi: SQL - Programowanie

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!


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

 

Osoby które kupowały "Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych", wybierały także:

  • Naucz si
  • Microsoft SQL Server. Kurs video. Tworzenie zaawansowanych zapytaÅ„
  • SQL. Kurs video. Od zera do bohatera. Modyfikowanie danych
  • Instalacja i konfiguracja baz danych. Kurs video. Przygotowanie do  egzaminu 70-765 Provisioning SQL Databases
  • PL/SQL. Kurs video. Od podstaw do zagadnieÅ„ zaawansowanych. Programowanie baz danych

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

Spis treści

Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych eBook -- 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)

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

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.