reklama - zainteresowany?

Praktyki mistrza SQL. Programowanie zaawansowane - Helion

Praktyki mistrza SQL. Programowanie zaawansowane
Autor: Joe Celko
Tytuł oryginału: Joe Celko's SQL for Smartie: Advanced SQL Programming, 5th Edition
TÅ‚umaczenie: Tomasz Walczak
ISBN: 978-83-283-2530-2
stron: 752, Format: 164x239, okładka: twarda
Data wydania: 2016-10-17
Księgarnia: Helion

Cena książki: 119,00 zł

Dodaj do koszyka Praktyki mistrza SQL. Programowanie zaawansowane

Tagi: SQL - Programowanie

SQL jest narzÄ™dziem stworzonym specjalnie na potrzeby baz danych. Nauka tego jÄ™zyka wymaga dogÅ‚Ä™bnego zrozumienia mechanizmów relacyjnych baz danych. Co wiÄ™cej, w przypadku dużych zbiorów danych lub zbiorów danych wymagajÄ…cych szczególnego traktowania pozornie nieznaczne usterki kodu SQL mogÄ… prowadzić do istotnych problemów w użytkowaniu aplikacji.

Niniejsza książka jest przeznaczona dla aktywnych programistów SQL. Przedstawia zaawansowane techniki i idiomy programistyczne z obszaru tego jÄ™zyka. Pokazano w niej również, w jaki sposób można rozwiÄ…zywać problemy, które czÄ™sto pojawiajÄ… siÄ™ w bazach danych. Prezentowane tu rozwiÄ…zania można implementować we wÅ‚aÅ›ciwie wszystkich systemach bazodanowych korzystajÄ…cych z SQL. To klasyczny podrÄ™cznik, systematycznie uaktualniany, który doczekaÅ‚ siÄ™ prawdziwego uznania wÅ›ród specjalistów.

W książce omówiono miÄ™dzy innymi:

  • transakcje i kontrolÄ™ wspóÅ‚bieżnoÅ›ci
  • tabele i normalizacjÄ™ danych oraz widoki, tabele pomocnicze i tymczasowe
  • dane, operacje na danych, w tym na adresach IP, datach, danych tekstowych
  • zaawansowane techniki tworzenia kwerend
  • hierarchiÄ™ w SQL, kolejki i macierze w SQL
  • nowoÅ›ci w wydaniu: model z podwójnym zapisem czasu, funkcje agregujÄ…ce, rozwiÄ…zywanie problemów z instrukcjami DDL i wiele innych zagadnieÅ„

Skoro znasz SQL, to stań się jego ekspertem!


Joe Celko — uznany ekspert w dziedzinie baz danych. Z jego konsultacji korzystaÅ‚y m.in. sÅ‚użby medyczne, NASA, siÅ‚y zbrojne USA. Autor wysoko cenionych książek dotyczÄ…cych SQL. NapisaÅ‚ również ponad 1200 artykuÅ‚ów w prasie informatycznej i akademickiej. WiÄ™kszość tych tekstów dotyczyÅ‚a danych i baz.

Dodaj do koszyka Praktyki mistrza SQL. Programowanie zaawansowane

 

Osoby które kupowały "Praktyki mistrza SQL. Programowanie zaawansowane", wybierały także:

  • Microsoft SQL Server. Kurs video. Tworzenie zaawansowanych zapytaÅ„
  • SQL. Kurs video. Od zera do bohatera. Modyfikowanie danych
  • SQL. Kurs video. Od zera do bohatera. Odczytywanie danych
  • SQL. Kurs video. Projektowanie i implementacja baz danych
  • Instalacja i konfiguracja baz danych. Kurs video. Przygotowanie do  egzaminu 70-765 Provisioning SQL Databases

Dodaj do koszyka Praktyki mistrza SQL. Programowanie zaawansowane

Spis treści

Praktyki mistrza SQL. Programowanie zaawansowane -- spis treści

Wprowadzenie do wydania piÄ…tego (13)

CZĘŚĆ I. MECHANIZMY ZWIĄZANE Z DEKLAROWANIEM DANYCH (15)

1. Bazy danych a systemy plików (17)

  • 1.1. Instrukcja Schema (19)
  • 1.2. Tabele jako encje (24)
  • 1.3. Tabele jako relacje (24)
  • 1.4. Wiersze a rekordy (26)
  • 1.5. Kolumny a pola (27)

2. Transakcje i kontrola wspóÅ‚bieżnoÅ›ci (31)

  • 2.1. Sesje (32)
  • 2.2. Transakcje i model ACID (32)
  • 2.3. Kontrola wspóÅ‚bieżnoÅ›ci (34)
  • 2.4. Poziomy izolacji (36)
  • 2.5. Pesymistyczna kontrola wspóÅ‚bieżnoÅ›ci (38)
  • 2.6. Optymistyczna kontrola wspóÅ‚bieżnoÅ›ci za pomocÄ… izolacji snapshotów (39)
  • 2.7. Logiczna kontrola wspóÅ‚bieżnoÅ›ci (42)
  • 2.8. Twierdzenie CAP (42)
  • 2.9. Model BASE (43)
  • 2.10. Spójność po stronie serwera (45)
  • 2.11. ObsÅ‚uga bÅ‚Ä™dów (46)
  • 2.12. Pasywne i aktywne zakleszczenie (46)

3. Tabele (49)

  • 3.1. Instrukcja CREATE TABLE (50)
  • 3.2. Definicje kolumn (52)
  • 3.3. Kolumny obliczane (63)
  • 3.4. Ograniczenia [NOT] DEFERRABLE (64)
  • 3.5. Instrukcje CREATE DOMAIN i CREATE SEQUENCE (65)
  • 3.6. Konstrukcje zwiÄ…zane z zestawem znaków (72)

4. Klucze, lokalizatory i generowane wartości (75)

  • 4.1. Typy kluczy (76)
  • 4.2. Praktyczne wskazówki zwiÄ…zane z denormalizacjÄ… (79)

5. Normalizacja (85)

  • 5.1. ZależnoÅ›ci funkcyjne i wielowartoÅ›ciowe (88)
  • 5.2. Pierwsza postać normalna (1NF) (88)
  • 5.3. Druga postać normalna (2NF) (93)
  • 5.4. Trzecia postać normalna (3NF) (94)
  • 5.5. Postać normalna z kluczem podstawowym (EKNF) (95)
  • 5.6. Postać normalna Boyce'a-Codda (BCNF) (96)
  • 5.7. Czwarta postać normalna (4NF) (98)
  • 5.8. PiÄ…ta postać normalna (5NF) (99)
  • 5.9. Postać normalna z kluczem dziedziny (DKNF) (101)
  • 5.10. Praktyczne wskazówki z zakresu normalizacji (108)
  • 5.11. Nadmiarowość, gdy nie jest używana postać normalna (109)

6. Widoki, tabele pochodne i inne tabele wirtualne (115)

  • 6.1. Widoki w kwerendach (116)
  • 6.2. Widoki modyfikowalne i tylko do odczytu (117)
  • 6.3. Typy widoków (118)
  • 6.4. ObsÅ‚uga widoków w silnikach bazodanowych (124)
  • 6.5. Klauzula WITH CHECK OPTION (128)
  • 6.6. Usuwanie widoków (133)
  • 6.7. Tabele ze zmaterializowanymi wynikami kwerend (134)

7. Tabele pomocnicze (137)

  • 7.1. Tabela Series (138)
  • 7.2. Pomocnicze tabele wyszukiwania (143)
  • 7.3. Zaawansowane tabele pomocnicze z funkcjami (153)
  • 7.4. Globalne tabele staÅ‚ych (164)
  • 7.5. Uwagi na temat przeksztaÅ‚cania kodu proceduralnego na tabele (171)

8. Inne obiekty schematu (177)

  • 8.1. Instrukcja CREATE SCHEMA (179)
  • 8.2. Tabele schematu (180)
  • 8.3. Tabele tymczasowe (180)
  • 8.4. Instrukcja CREATE ASSERTION (180)
  • 8.5. Instrukcja CREATE DOMAIN (181)
  • 8.6. Instrukcja CREATE COLLATION (182)
  • 8.7. Instrukcja CREATE TRANSLATION (183)
  • 8.8. Instrukcja CREATE PROCEDURE (183)
  • 8.9. Wyzwalacze (183)
  • 8.10. Model dziaÅ‚ania wyzwalaczy (184)

9. BÅ‚Ä™dy, których należy unikać w instrukcjach DDL (193)

  • 9.1. Stosowanie skrótu "tbl" i powiÄ…zane bÅ‚Ä™dy (193)
  • 9.2. PodziaÅ‚ atrybutów (196)
  • 9.3. Problemy z przeciążaniem projektu (197)
  • 9.4. Nadmiarowość wynikajÄ…ca z braku postaci normalnej (201)

CZĘŚĆ II. TYPY DANYCH (205)

10. Dane liczbowe w SQL-u (207)

  • 10.1. DokÅ‚adne liczbowe typy danych (208)
  • 10.2. Przybliżone liczbowe typy danych (213)
  • 10.3. Konwersje typów liczbowych (215)
  • 10.4. Arytmetyka oparta na czterech funkcjach (217)
  • 10.5. PrzeksztaÅ‚canie wartoÅ›ci na NULL i dokonywanie odwrotnych konwersji (219)
  • 10.6. Funkcje matematyczne (222)
  • 10.7. Adresy IP (226)

11. Znakowe typy danych w SQL-u (229)

  • 11.1. Problemy z Å‚aÅ„cuchami znaków w SQL-u (230)
  • 11.2. Standardowe funkcje znakowe (232)
  • 11.3. CzÄ™sto dostÄ™pne rozszerzenia od producentów (234)
  • 11.4. Tablice Cuttera (242)

12. SQL-owe typy danych zwiÄ…zane z czasem (243)

  • 12.1. Uwagi na temat standardów zwiÄ…zanych z kalendarzem (244)
  • 12.2. Natura modeli danych zwiÄ…zanych z czasem (247)
  • 12.3. SQL-owe typy danych zwiÄ…zane z czasem (248)
  • 12.4. Typy danych z rodziny INTERVAL (255)
  • 12.5. Kwerendy z operacjami arytmetycznymi na datach (256)
  • 12.6. Stosowanie wartoÅ›ci NULL do oznaczania "wiecznoÅ›ci" (257)
  • 12.7. Predykat OVERLAPS() (258)
  • 12.8. Ograniczenia zwiÄ…zane ze zmianami stanu (260)
  • 12.9. Tabele z kalendarzem (265)

13. Wielokolumnowe elementy danych (269)

  • 13.1. Elementy danych w postaci wektorów i wspóÅ‚rzÄ™dnych (269)
  • 13.2. Hierarchiczne elementy danych (276)

14. Wartości NULL - brakujące dane w SQL-u (283)

  • 14.1. Puste i brakujÄ…ce tabele (285)
  • 14.2. BrakujÄ…ce wartoÅ›ci w kolumnach (285)
  • 14.3. Kontekst i brakujÄ…ce wartoÅ›ci (287)
  • 14.4. Porównywanie wartoÅ›ci NULL (288)
  • 14.5. WartoÅ›ci NULL i logika (289)
  • 14.6. WartoÅ›ci NULL a obliczenia matematyczne (293)
  • 14.7. Funkcje zwiÄ…zane z wartoÅ›ciami NULL (294)
  • 14.8. WartoÅ›ci NULL a jÄ™zyki gÅ‚ówne (294)
  • 14.9. Wskazówki projektowe zwiÄ…zane z wartoÅ›ciami NULL (295)
  • 14.10. Uwagi na temat różnych rodzajów wartoÅ›ci NULL (298)

15. Operacje na tabelach (301)

  • 15.1. Instrukcja DELETE FROM (301)
  • 15.2. Instrukcja INSERT INTO (307)
  • 15.3. Instrukcja UPDATE (309)
  • 15.4. Uwaga na temat bÅ‚Ä™dów w popularnych rozszerzeniach producentów (317)
  • 15.5. Instrukcja MERGE (318)

16. Operacje na zbiorach (321)

  • 16.1. UNION i UNION ALL (322)
  • 16.2. Operatory INTERSECT i EXCEPT (325)
  • 16.3. Uwagi na temat opcji ALL i SELECT DISTINCT (330)
  • 16.4. Równość i podzbiory wÅ‚aÅ›ciwe (331)

CZĘŚĆ III. MECHANIZMY Z POZIOMU WIERSZY I KOLUMN (333)

17. Operatory porównywania (operatory theta) (335)

  • 17.1. Konwersja typów danych (336)
  • 17.2. Porównywanie wierszy w SQL-u (338)
  • 17.3. Operator IS [NOT] DISTINCT FROM (340)
  • 17.4. Operatory monadyczne (341)

18. Predykaty dotyczÄ…ce wyników podkwerend (345)

  • 18.1. Predykat UNIQUE (345)
  • 18.2. Predykat [NOT] IN() (347)
  • 18.3. Predykat [NOT] EXISTS() (357)
  • 18.4. [SOME | ANY] (365)
  • 18.5. ALL (365)

19. Predykaty BETWEEN i OVERLAPS (369)

  • 19.1. Predykat BETWEEN (369)
  • 19.2. Predykat OVERLAPS (372)

20. Rodzina wyrażeń CASE (383)

  • 20.1. Wyrażenie CASE (383)
  • 20.2. Wyrażenia w postaci podkwerend i staÅ‚e (391)

21. Predykaty LIKE i SIMILAR TO (393)

  • 21.1. Sztuczki zwiÄ…zane ze wzorcami (394)
  • 21.2. Wyniki dla wartoÅ›ci NULL i pustych Å‚aÅ„cuchów znaków (396)
  • 21.3. Operator LIKE nie oznacza równoÅ›ci (396)
  • 21.4. Rozbudowywanie predykatu LIKE za pomocÄ… zÅ‚Ä…czenia (396)
  • 21.5. Wyrażenia CASE i predykaty LIKE (397)
  • 21.6. Predykat SIMILAR TO (397)
  • 21.7. Sztuczki zwiÄ…zane z Å‚aÅ„cuchami znaków (399)

22. Podstawowa instrukcja SELECT (403)

  • 22.1. Wyrażenia CTE (404)
  • 22.2. Klauzula FROM (405)
  • 22.3. Klauzula WHERE (405)
  • 22.4. Klauzula GROUP BY (406)
  • 22.5. Klauzula HAVING (406)
  • 22.6. Klauzula SELECT (407)
  • 22.7. Klauzula ORDER BY (407)
  • 22.8. Wyrażenie z zagnieżdżonymi kwerendami a ortogonalność (407)

23. Podstawowe funkcje agregujÄ…ce (409)

  • 23.1. Funkcje z rodziny COUNT() (410)
  • 23.2. Funkcja SUM() (414)
  • 23.3. Funkcja AVG() (415)
  • 23.4. Funkcje zwracajÄ…ce ekstrema (419)
  • 23.5. Funkcja agregujÄ…ca LIST() (427)
  • 23.6. Funkcja agregujÄ…ca wyznaczajÄ…ca dominantÄ™ (429)
  • 23.7. Funkcja agregujÄ…ca zwracajÄ…ca medianÄ™ (430)
  • 23.8. Funkcja agregujÄ…ca PRD() (432)

24. Zaawansowane statystyki opisowe (437)

  • 24.1. Funkcje dla tabel dwukolumnowych (437)
  • 24.2. Korelacja (439)

25. Używanie SQL-a do agregacji w systemach OLAP (441)

  • 25.1. Kwerendy a raporty (441)
  • 25.2. Operatory grupowania (442)
  • 25.3. Klauzula okna (445)
  • 25.4. Funkcje agregujÄ…ce oparte na oknie (449)
  • 25.5. Funkcje porzÄ…dkowe (449)
  • 25.6. Rozszerzenia udostÄ™pniane przez producentów (452)
  • 25.7. Kartka z historii (456)

26. Zaawansowane instrukcje SELECT (459)

  • 26.1. Podkwerendy skorelowane (459)
  • 26.2. Wrostkowe zÅ‚Ä…czenia wewnÄ™trzne (464)
  • 26.3. ZÅ‚Ä…czenia zewnÄ™trzne (465)
  • 26.4. Operator UNION JOIN (477)
  • 26.5. Skalarne wyrażenia SELECT (479)
  • 26.6. Dawna i nowa skÅ‚adnia zÅ‚Ä…czeÅ„ (480)
  • 26.7. ZÅ‚Ä…czenia z ograniczeniami (481)
  • 26.8. ZÅ‚Ä…czenia T dr. Codda (490)
  • 26.9. BrakujÄ…ce wartoÅ›ci w danych (496)
  • 26.10. BrakujÄ…ce i mieszane dane w wierszach (501)

CZĘŚĆ IV. STRUKTURY DANYCH W SQL-U (503)

27. Grafy w SQL-u (505)

  • 27.1. Podstawowe cechy grafów (506)
  • 27.2. Åšcieżki w grafie (510)
  • 27.3. Grafy acykliczne jako zbiory zagnieżdżone (517)
  • 27.4. Model wykorzystujÄ…cy macierz sÄ…siedztwa (519)
  • 27.5. Punkty w wielokÄ…cie (520)
  • 27.6. Geometria taksówkowa (521)
  • 27.7. Klasy równoważnoÅ›ci i kliki (524)
  • 27.8. Podsumowanie (532)

28. Drzewa i hierarchie w SQL-u (533)

  • 28.1. Listy sÄ…siedztwa (534)
  • 28.2. Znajdowanie korzenia (535)
  • 28.3. Znajdowanie liÅ›ci (536)
  • 28.4. OkreÅ›lanie poziomów w drzewie (536)
  • 28.5. Operacje na drzewach (537)
  • 28.6. Model oparty na zbiorach zagnieżdżonych (538)
  • 28.7. Znajdowanie korzenia i liÅ›ci (541)
  • 28.8. Wyszukiwanie poddrzew (541)
  • 28.9. Wyszukiwanie poziomów i Å›cieżek w drzewie (542)
  • 28.10. Funkcje w modelu wykorzystujÄ…cym zbiory zagnieżdżone (545)
  • 28.11. Usuwanie wierzchoÅ‚ków i poddrzew (546)
  • 28.12. PrzeglÄ…d funkcji dotyczÄ…cych drzew (548)
  • 28.13. Wstawianie i aktualizowanie elementów drzew (554)
  • 28.14. PrzeksztaÅ‚canie list sÄ…siedztwa na zbiory zagnieżdżone (558)
  • 28.15. PrzeksztaÅ‚canie zbiorów zagnieżdżonych na listy sÄ…siedztwa (558)
  • 28.16. Porównywanie wierzchoÅ‚ków i struktur (559)

29. Kolejki (563)

  • 29.1. Podstawowe instrukcje DDL (563)
  • 29.2. Procedury Enqueue, Dequeue i Empty (564)
  • 29.3. Zmienianie uporzÄ…dkowania (565)
  • 29.4. Kolejki i matematyka (566)
  • 29.5. Kolejki priorytetowe (567)
  • 29.6. Kolejki FIFO i LIFO (568)

30. Macierze w SQL-u (573)

  • 30.1. Tablice oparte na nazwanych kolumnach (574)
  • 30.2. Tablice oparte na kolumnach z indeksem (577)
  • 30.3. Operacje na macierzach w SQL-u (579)
  • 30.4. SpÅ‚aszczanie tabeli do postaci tablicy (583)
  • 30.5. Porównywanie tablic zapisanych jako tabele (585)
  • 30.6. Inne operacje na macierzach (587)

CZĘŚĆ V. TYPOWE KWERENDY (589)

31. Partycjonowanie i agregowanie danych w kwerendach (591)

  • 31.1. Pokrycie i partycje (591)
  • 31.2. Zaawansowane grupowanie, agregowanie z uwzglÄ™dnieniem okien i funkcje OLAP w SQL-u (596)

32. Podsekwencje, obszary, serie, luki i wyspy (613)

  • 32.1. Znajdowanie podobszarów o wielkoÅ›ci (n) (614)
  • 32.2. Numerowanie obszarów (615)
  • 32.3. Wyszukiwanie obszarów o maksymalnej wielkoÅ›ci (617)
  • 32.4. Kwerendy z granicami (621)
  • 32.5. Kwerendy dotyczÄ…ce serii i sekwencji (621)
  • 32.6. Sumowanie rÄ™cznie generowanych sekwencji wartoÅ›ci (626)
  • 32.7. Przestawianie i przesuwanie wartoÅ›ci na liÅ›cie (629)
  • 32.8. Eliminowanie luk na listach liczb (630)
  • 32.9. "Zawijanie" listy liczb (630)
  • 32.10. Pokrycia (631)
  • 32.11. Klasy równoważnoÅ›ci i kliki (635)

33. Aukcje (645)

  • 33.1. Rodzaje ofert (645)
  • 33.2. Typy aukcji (646)
  • 33.3. Stosowanie modeli LIFO i FIFO w magazynach (648)
  • 33.4. Problem pakowania (653)

34. Dzielenie relacji (655)

  • 34.1. Dzielenie z resztÄ… (656)
  • 34.2. Dzielenie bez reszty (658)
  • 34.3. Uwaga na temat wydajnoÅ›ci (659)
  • 34.4. Dzielenie Todda (659)
  • 34.5. Dzielenie z użyciem zÅ‚Ä…czeÅ„ (662)
  • 34.6. Dzielenie z wykorzystaniem operatorów zbiorów (662)
  • 34.7. Dzielenie Romleya (663)
  • 34.8. Wyrażenia logiczne w dzieleniu relacji (666)

35. Kwerendy zwiÄ…zane z czasem (669)

  • 35.1. Obliczenia matematyczne na czasie (670)
  • 35.2. Kalendarze (674)
  • 35.3. Szeregi czasowe (677)
  • 35.4. Daty w formacie juliaÅ„skim (691)
  • 35.5. Inne funkcje zwiÄ…zane z czasem (694)
  • 35.6. Okresy obejmujÄ…ce wiele dni (694)
  • 35.7. Reprezentowanie czasu w tabelach (698)
  • 35.8. Funkcje LEAD() i LAG() (700)
  • 35.9. Problemy z rokiem 2000 - przeglÄ…d historyczny (701)

CZĘŚĆ VI. KWESTIE ZWIĄZANE Z IMPLEMENTACJĄ I KODOWANIEM (707)

36. Programowanie proceduralne, mieszane i deklaratywne w SQL-u (709)

  • 36.1. SÅ‚owa majÄ… znaczenie (710)
  • 36.2. PorzÄ…dkowanie kodu (711)

37. Poziomy zagnieżdżania w SQL-u (717)

  • 37.1. Tabele pochodne (718)
  • 37.2. ReguÅ‚y tworzenia nazw kolumn (719)
  • 37.3. ReguÅ‚y okreÅ›lania zasiÄ™gu (720)
  • 37.4. DostÄ™pne nazwy tabel (722)
  • 37.5. Wyrażenia CTE (723)
  • 37.6. Tabele z klauzulÄ… LATERAL (723)
  • 37.7. Wskazówki programistyczne (725)

38. Zagnieżdżony SQL, dynamiczny SQL z interfejsem CLI oraz SQL/PSM (727)

  • 38.1. Zagnieżdżony SQL (728)
  • 38.2. SQL/CLI (729)
  • 38.3. Dynamiczny SQL (729)
  • 38.4. Historia standardu SQL/PSM (729)
  • 38.5. Parametry w formacie CSV (738)

Skorowdz (744)

Dodaj do koszyka Praktyki mistrza SQL. Programowanie zaawansowane

Code, Publish & WebDesing by CATALIST.com.pl



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