Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych
- Autor:
- Bill Karwin
- Ocena:
- 5.1/6 Opinie: 32
- Stron:
- 400
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi
![Wyłącznie](https://static01.helion.com.pl/ebookpoint/img/img_wylacznie.png)
Opis ebooka: Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych
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!
![](https://static01.helion.com.pl/helion/img/rozne/rozne/sell_konkurs_4.jpg)
![Summer BOOOK FEST / Ebooki -50%, książki -40%, audiobooki po 12,90zł](https://static01.helion.com.pl/ebookpoint/img/promocje/bannery/19761/Ebp_summer_book_fest_2024_Sonia_d910d93e4_1180x419_.png)
Wybrane bestsellery
-
Ta książka zawiera szereg praktycznych wskazówek dotyczących przygotowania, przeprowadzania i oceniania wyników kontrolowanych eksperymentów online. Dzięki niej nauczysz się stosować naukowe podejście do formułowania założeń i oceny hipotez w testach A/B, dowiesz się także, jak sprawdzać wiarygod...
Kontrolowane eksperymenty online. Praktyczny przewodnik po testach A/B Kontrolowane eksperymenty online. Praktyczny przewodnik po testach A/B
(51.35 zł najniższa cena z 30 dni)47.40 zł
79.00 zł(-40%) -
Naglący termin, niedoczas, permanentne opóźnienie - oto najwierniejsi towarzysze i zarazem najwięksi wrogowie kierownika projektu. Nawet certyfikowani project managerowie, ludzie z ogromną wiedzą i nie mniejszym doświadczeniem, raz po raz znajdują się w sytuacji, w której potrzeba naprawdę wielki...(35.40 zł najniższa cena z 30 dni)
35.40 zł
59.00 zł(-40%) -
Kompletny podręcznik dla użytkowników tego języka. Dzięki tej książce poznasz podstawy modelowania w UML-u.(9.90 zł najniższa cena z 30 dni)
17.00 zł
34.00 zł(-50%) -
You'll learn to use Angular to develop and test scalable apps, and explore its features and master concepts, such as dependency injection, reactive programming, and state management, as well as utilize libraries like Nx, RxJS, and NgRx to build professional apps.
Effective Angular. Develop applications of any size by effectively using Angular with Nx, RxJS, NgRx, and Cypress Effective Angular. Develop applications of any size by effectively using Angular with Nx, RxJS, NgRx, and Cypress
(78.48 zł najniższa cena z 30 dni) -
This book explores the potential of ChatGPT-powered chatbots and conversational AI. You'll delve into understanding the technology, its implementation, and practical use cases, while leveraging AI-powered conversations.
ChatGPT for Conversational AI and Chatbots. Learn how to automate conversations with the latest large language model technologies ChatGPT for Conversational AI and Chatbots. Learn how to automate conversations with the latest large language model technologies
(92.88 zł najniższa cena z 30 dni)
Zobacz pozostałe książki z serii Baza programisty
-
Dzięki lekturze tej książki samodzielnie zbudujesz karmnik, który będzie publikował na Twitterze wpisy o przylatujących ptakach i konieczności uzupełnienia ziarna. Będziesz sterował oświetleniem wewnątrz i na zewnątrz domu za pomocą odpowiedniego programu. Zabezpieczysz swój dom przed nieproszony...
Inteligentny dom. Automatyzacja mieszkania za pomocą platformy Arduino, systemu Android i zwykłego komputera Inteligentny dom. Automatyzacja mieszkania za pomocą platformy Arduino, systemu Android i zwykłego komputera
(24.50 zł najniższa cena z 30 dni)24.50 zł
49.00 zł(-50%) -
Z tą książką nauczysz się projektować przykuwające wzrok przyciski za pomocą prostych stylów działających we wszystkich przeglądarkach, tworzyć animacje dla urządzeń przenośnych bez żadnych wtyczek, budować i testować wiadomości e-mail oraz konstruować elastyczne układy stron, odpowiednie dla kom...
Web development. Receptury nowej generacji Web development. Receptury nowej generacji
Brian P. Hogan, Chris Warren, Mike Weber, Chris Johnson, Aaron Godin
(24.50 zł najniższa cena z 30 dni)24.50 zł
49.00 zł(-50%) -
Ta książka to kompletny przewodnik po Clojure. Lekturę zaczniesz od poznania jego zalet, składni i zasad programowania. W momencie, kiedy zbudujesz solidne fundamenty, przejdziesz do nauki programowania funkcyjnego, które wymaga pewnej zmiany w sposobie myślenia. Ale nie martw się, z tą książką p...(27.45 zł najniższa cena z 30 dni)
27.45 zł
54.90 zł(-50%) -
Dzięki tej książce poznasz tajniki korzystania z chmury Google App Engine. Mogą ją wykorzystać programiści języków Python oraz Java. Chmura ta oferuje naprawdę bogate zasoby. W trakcie lektury dowiesz się, jaki jest jej potencjał, jak monitorować użycie zasobów przez Twoją aplikację oraz jak zast...(28.50 zł najniższa cena z 30 dni)
28.50 zł
57.00 zł(-50%) -
Jonathan w swojej książce zaprezentuje Ci wszystko, co musisz wiedzieć na temat zwinnych praktyk. Dowiesz się, jak ważny jest zespół, co go napędza i jakie role pełnią jego członkowie. Najpierw poznasz największe zagrożenia dla projektu i zalety tablic koncepcyjnych oraz przygotujesz się do rozpo...
Zwinny samuraj. Jak programują mistrzowie zwinności Zwinny samuraj. Jak programują mistrzowie zwinności
(24.50 zł najniższa cena z 30 dni)24.50 zł
49.00 zł(-50%)
Ebooka "Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- Tytuł oryginału:
- SQL Antipatterns: Avoiding the Pitfalls of Database Programming
- Tłumaczenie:
- Mikołaj Szczepaniak
- ISBN Książki drukowanej:
- 978-83-246-3482-8, 9788324634828
- Data wydania książki drukowanej:
- 2012-01-27
- ISBN Ebooka:
- 978-83-246-4714-9, 9788324647149
- Data wydania ebooka:
-
2012-02-15
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Format:
- 158x235
- Numer z katalogu:
- 7514
- Rozmiar pliku Pdf:
- 3.4MB
- Rozmiar pliku ePub:
- 3.5MB
- Rozmiar pliku Mobi:
- 7.5MB
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Erraty / Zgłoś erratę
- Serie wydawnicze: Baza programisty
Spis treści ebooka
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
Rozdział 1. Wprowadzenie (11)
Część I. Antywzorce logicznego projektu bazy danych (23)
Rozdział 2. Przechodzenie na czerwonym świetle (25)
Rozdział 3. Naiwne drzewa (37)
Rozdział 4. Identyfikator potrzebny od zaraz (61)
Rozdział 5. Wpis bez klucza (75)
Rozdział 6. Encja-atrybut-wartość (85)
Rozdział 7. Związki polimorficzne (103)
Rozdział 8. Atrybuty wielokolumnowe (117)
Rozdział 9. Tribble metadanych (127)
Część II. Antywzorce fizycznego projektu bazy danych (141)
Rozdział 10. Błędy zaokrągleń (143)
Rozdział 11. 31 smaków (153)
Rozdział 12. Pliki-widma (165)
Rozdział 13. Strzelanie indeksami (177)
Część III. Antywzorce zapytań (193)
Rozdział 14. Strach przed nieznanym (195)
Rozdział 15. Niejasne grupy (209)
Rozdział 16. Losowy wybór (223)
Rozdział 17. Wyszukiwarka nędzarza (233)
Rozdział 18. Zapytanie-spaghetti (251)
Rozdział 19. Ukryte kolumny (263)
Część IV. Antywzorce wytwarzania aplikacji (273)
Rozdział 20. Czytelne hasła (275)
Rozdział 21. Wstrzykiwanie SQL-a (289)
Rozdział 22. Obsesja czystości pseudokluczy (309)
Rozdział 23. Przymykanie oczu na zło (321)
Rozdział 24. Immunitet dyplomatyczny (331)
Rozdział 25. Magiczna fasola (347)
Dodatki (365)
Dodatek A. Reguły normalizacji (367)
Dodatek B. Bibliografia (385)
Skorowidz (387)
Oceny i opinie klientów: Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych Bill Karwin (32)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(15)
(11)
(3)
(1)
(1)
(1)
więcej opinii