PRAKTYKI MISTRZA SQL PROGRAMOWANIE ZAAWANSOWANE

107.10

Na stanie

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)

Autor

ISBN

978-83-283-2530-2

Liczba stron

Rok wydania

Wydawca

Opinie

Na razie nie ma opinii o produkcie.

Napisz pierwszą opinię o „PRAKTYKI MISTRZA SQL PROGRAMOWANIE ZAAWANSOWANE”

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *