Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych
- Autor:
- Bill Karwin
- Wydawnictwo:
- Helion
- Ocena:
- 5.1/6 Opinie: 32
- Stron:
- 400
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi
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!
Wybrane bestsellery
-
Zigi to postać fikcyjna - warta poznania! Autor książki, sam będący od wielu lat testerem, wyposażył swojego bohatera we własne doświadczenia. Dołożył do nich trochę „case’ów”, które widział, o których słyszał lub czytał, ubrał je w przystępne słowa i sfabularyzował dla podkręce...(38.35 zł najniższa cena z 30 dni)
35.40 zł
59.00 zł(-40%) -
Testowanie oprogramowania to jedna z najdynamiczniej rozwijających się dziedzin inżynierii oprogramowania. Zarobki doświadczonych testerów są porównywalne z wynagrodzeniem, jakie otrzymują dobrzy programiści. Aby rozpocząć karierę w tym zawodzie, trzeba się legitymować odpowiednimi umiejętnościam...
Certyfikowany tester ISTQB®. Poziom podstawowy. Wydanie II Certyfikowany tester ISTQB®. Poziom podstawowy. Wydanie II
(70.85 zł najniższa cena z 30 dni)65.40 zł
109.00 zł(-40%) -
Ten szczegółowy przewodnik pozwoli Ci na błyskawiczne zapoznanie się z .NET MAUI i sprawne rozpoczęcie pisania aplikacji za pomocą tej technologii. Zaprezentowano w nim filozofię działania .NET MAUI, jak również przebieg prac nad tworzeniem kompletnej aplikacji wieloplatformowej dla systemów: And...
Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych
(51.35 zł najniższa cena z 30 dni)47.40 zł
79.00 zł(-40%) -
Martwisz się, że takie ożywienie strony będzie Cię kosztowało mnóstwo pracy? Na szczęście nie musisz wynajdywać koła na nowo. Pełną garść niezwykle przydatnych rozwiązań oferuje książka Dynamiczny HTML. 101 praktycznych skryptów. Przedstawionych w niej skryptów możesz użyć od ręki — rozwiąz...(19.50 zł najniższa cena z 30 dni)
9.90 zł
39.00 zł(-75%) -
When it comes to building user interfaces on the web, React enables web developers to unlock a new world of possibilities. This practical book helps you take a deep dive into fundamental concepts of this JavaScript library, including JSX syntax and advanced patterns, the virtual DOM, React reconc...(194.65 zł najniższa cena z 30 dni)
203.15 zł
239.00 zł(-15%) -
Learn how to transform your SDLC fast by developing the key skills to shift left and complete projects in record time. This book will give you the knowledge to start your own DevOps release management initiative and transform your company.
Embracing DevOps Release Management. Strategies and tools to accelerate continuous delivery and ensure quality software deployment Embracing DevOps Release Management. Strategies and tools to accelerate continuous delivery and ensure quality software deployment
(100.08 zł najniższa cena z 30 dni) -
Unleash the power of Python in DevOps with this comprehensive guide to integrating Python into DevOps workflows to automate tasks, enhance CI/CD pipelines, and delve into MLOps and DataOps to streamline operations and boost efficiency.
Hands-On Python for DevOps. Leverage Python's native libraries to streamline your workflow and save time with automation Hands-On Python for DevOps. Leverage Python's native libraries to streamline your workflow and save time with automation
-
This book provides a thorough understanding of JavaScript design patterns and assists with writing and structuring your JavaScript code and applications in a way that offers high performance to JavaScript application users.
JavaScript Design Patterns. Deliver fast and efficient production-grade JavaScript applications at scale JavaScript Design Patterns. Deliver fast and efficient production-grade JavaScript applications at scale
-
Learn T-SQL Querying, Second Edition, is an up-to-date reference designed to help you write more efficient T-SQL code to perform simple-to-advanced tasks for data management and data analysis tasks.
Learn T-SQL Querying. A guide to developing efficient and elegant T-SQL code - Second Edition Learn T-SQL Querying. A guide to developing efficient and elegant T-SQL code - Second Edition
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.
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