Przedmowa... xiii Podziękowania... xv Wprowadzenie... xix 1 Logiczne przetwarzanie zapytań... 1

Podobne dokumenty
Microsoft SQL Server Podstawy T-SQL

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

T-SQL w Microsoft SQL Server 2014 i SQL Server 2012

Zapytania w języku T-SQL w Microsoft SQL Server 2014 i SQL Server 2012 / Itzik Ben-Gan, Dejan Sarka, Adam Machaniec, Kevin Farlee.

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Oracle11g: Wprowadzenie do SQL

Przestrzenne bazy danych Podstawy języka SQL

SZKOLENIE: Administrator baz danych. Cel szkolenia

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Systemy GIS Tworzenie zapytań w bazach danych

Tworzenie zapytań do Microsoft SQL Server

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Microsoft SQL Server 2012 Krok po kroku

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

SQL : praktyki mistrza : programowanie zaawansowane / Joe Celko. Gliwice, cop Spis treści

Microsoft SQL Server 2012 : krok po kroku / Patrick LeBlanc. Warszawa, Spis treści

Rozszerzenia grupowania

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Autor: Joanna Karwowska

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Spis treści. Część I Wprowadzenie do pakietu oprogramowania Analysis Services

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

1 Instalowanie i uaktualnianie serwera SQL Server

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

1.5.3 Do czego słuŝą tymczasowe przestrzenie Zarządzanie plikami danych

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

1 Wstęp do modelu relacyjnego

Wykład 2. Relacyjny model danych

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Spis treúci. Księgarnia PWN: Joe Celko - SQL. Zaawansowane techniki programowania. O autorze... 17

SQL (ang. Structured Query Language)

Wykład 8. SQL praca z tabelami 5

Model relacyjny. Wykład II

Relacyjne bazy danych. Podstawy SQL

Model relacyjny. Wykład II

Wykład XII. optymalizacja w relacyjnych bazach danych

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Projektowanie relacyjnych baz danych

Paweł Rajba

Dr Michał Tanaś(

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

OLAP i hurtownie danych c.d.

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

Spis treści. Przedmowa

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Oracle PL/SQL. Paweł Rajba.

Wprowadzenie do baz danych

William R. Stanek. Vademecum administratora. Microsoft. SQL Server Przekład: Krzysztof Szkudlarek

Podstawy języka SQL cz. 2

Oracle PL/SQL. Paweł Rajba.

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Bazy danych 6. Klucze obce. P. F. Góra

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Relacyjne bazy danych. Podstawy SQL

Wykład 6. SQL praca z tabelami 3

Spis tre±ci. Przedmowa... Cz ± I

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Bazy danych. Dr inż. Paweł Kasprowski

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

Język SQL podstawy zapytań

PRZEWODNIK PO PRZEDMIOCIE

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Szczegółowy program kursów szkoły programowania Halpress

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

Spis treści. Przedmowa... xiii Podziękowania... xvi Wprowadzenie... xix. 1 Widoki Funkcje definiowane przez użytkownika...

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

P o d s t a w y j ę z y k a S Q L

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

2 Konfiguracja i utrzymanie bazy danych Przed rozpoczęciem Lekcja 1: Konfigurowanie plików i grup plików Pliki i grupy plików...

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

TP1 - TABELE PRZESTAWNE od A do Z

STROJENIE BAZ DANYCH: INDEKSY. Cezary Ołtuszyk coltuszyk.wordpress.com

Rozkład materiału Specjalizacja: Systemy baz danych

Oracle PL/SQL. Paweł Rajba.

Transkrypt:

Spis treści

Przedmowa... xiii Podziękowania... xv Wprowadzenie... xix 1 Logiczne przetwarzanie zapytań... 1 Fazy logicznego przetwarzania zapytań... 3 Krótkie omówienie faz logicznego przetwarzania zapytania... 4 Przykładowe zapytanie oparte na scenariuszu z użyciem tabeli klientów i zamówień... 6 Szczegóły faz procesu logicznego przetwarzania zapytań... 8 Krok 1: Faza FROM... 8 Krok 2: Faza WHERE... 14 Krok 3: Faza GROUP BY... 16 Krok 4: Faza HAVING... 17 Krok 5: Faza SELECT... 18 Krok 6: Faza prezentacji ORDER BY... 21 Pozostałe aspekty logicznego przetwarzania zapytań... 25 Operatory tablicowe... 25 Klauzula OVER... 35 Operatory zbiorowe... 38 Podsumowanie... 40 2 Teoria zbiorów i logika predykatów... 41 Przykład tłumaczenia problemu z języka potocznego na język matematyczny... 41 Dobre zdefiniowanie... 43 Równość, tożsamość i podobieństwo... 45 Konwencje matematyczne... 46 Liczby... 47 Kontekst... 48 Funkcje, parametry i zmienne... 50 Instrukcje i algorytmy... 51 Teoria zbiorów... 52 Notacje używane do zapisywania zbiorów... 53 Zbiory dobrze zdefiniowane... 54 Domeny zawartości... 54 Dokładność... 58 Paradoks Russella... 61 Pary uporządkowane, krotki oraz iloczyn kartezjański... 63 Zbiór pusty... 65 Funkcja charakterystyczna zbioru... 65 Kardynalność... 66 Kolejność... 68 Operatory zbiorowe... 73 Podziały zbioru na części... 75 Uogólnienia teorii zbiorów... 76 Logika predykatów... 77 Funkcje około-logiczne języków programowania... 77

Zdania i predykaty... 78 Prawo wykluczonego środka... 81 Operatory logiczne i, lub oraz nie... 81 Logiczna równoważność... 83 Logiczna implikacja... 84 Kwantyfikacja... 85 Alternatywy i uogólnienia... 87 Relacje... 89 Właściwości zwrotności, symetryczności i przechodniości... 89 Zastosowanie praktyczne... 91 Podsumowanie... 95 3 Model relacyjny... 97 Wprowadzenie do modelu relacyjnego... 97 Relacje, krotki i typy danych... 98 Model relacyjny: krótkie podsumowanie... 105 Algebra relacyjna oraz rachunek relacyjny... 106 Podstawowe operatory... 106 Algebra relacyjna... 107 Rachunek relacyjny... 119 Język T-SQL... 121 Integralność danych... 122 Ograniczenia deklaratywne... 123 Inne sposoby wymuszania integralności... 128 Normalizacja i inne kwestie projektowe... 131 Postacie normalne związane z zależnościami funkcjonalnymi... 132 Wyższe postacie normalne... 140 Denormalizacja... 144 Generalizacja i specjalizacja... 146 Podsumowanie... 149 4 Dostrajanie zapytań... 151 Przykładowe dane dla tego rozdziału... 152 Metodologia procesu dostrajania... 156 Analiza stanów oczekiwania na poziomie instancji... 159 Korelacja stanów oczekiwania z kolejkami... 169 Określenie kierunku działania... 172 Schodzenie do poziomu bazy danych lub pliku... 173 Schodzenie do poziomu procesu... 177 Dostrajanie indeksów i zapytań... 201 Narzędzia służące do dostrajania zapytań... 202 Buforowane plany wykonywania zapytań... 202 Oczyszczanie pamięci podręcznej... 203 Dynamiczne obiekty zarządzające... 204 Opcja STATISTICS IO... 204 Mierzenie czasu wykonywania zapytań... 205 Analizowanie planów wykonywania... 206

Wskazówki... 219 Śledzenie zdarzeń i program Profiler... 221 Program Database Engine Tuning Advisor... 221 Gromadzenie danych i hurtownia danych zarządzających... 221 Klonowanie statystyk przy użyciu obiektów SMO... 222 Dostrajanie indeksów... 222 Struktury tabel i indeksów... 223 Metody dostępu do indeksów... 235 Analiza różnych strategii indeksowania... 289 Fragmentacja... 303 Partycjonowanie... 305 Przygotowywanie danych przykładowych... 306 Przygotowanie danych... 306 Opcja TABLESAMPLE... 313 Porównanie podejścia opartego na zbiorach z podejściem iteracyjnym/proceduralnym... 316 Podsumowanie... 326 5 Algorytmy i ich złożoność... 327 Czy masz ćwierćdolarówkę?... 328 Stopień skalowalności algorytmów... 330 Przykład skalowania kwadratowego... 330 Algorytm o liniowej złożoności... 331 Złożoność wykładnicza i super wykładnicza... 332 Złożoność subliniowa... 333 Stała złożoność... 334 Techniczna definicja złożoności... 334 Porównywanie złożoności... 337 Algorytmy klasyczne i strategie algorytmiczne... 339 Algorytmy sortowania... 340 Wyszukiwanie łańcuchów znakowych... 344 Zastosowanie praktyczne... 345 Określanie trendu w wynikach pomiarów... 345 Złożoność algorytmiczna problemu NDZSP... 346 Rozwiązywanie problemu NDZSP w języku T-SQL... 347 Podsumowanie... 350 6 Zapytania podrzędne, wyrażenia tablicowe oraz funkcje szeregujące... 351 Zapytania podrzędne... 352 Samodzielne zapytania podrzędne... 352 Skorelowane zapytania podrzędne... 357 Niepoprawnie działające zapytania podrzędne... 371 Nietypowe predykaty... 374 Wyrażenia tablicowe... 375 Tabele pochodne... 375 Wspólne wyrażenia tablicowe... 379 Analityczne funkcje szeregujące... 389 Numer wiersza... 391

Szereg i szereg zwarty... 415 Numer płytki... 416 Pomocnicza tabela liczb... 422 Istniejące i brakujące zakresy (nazywane również wyspami i przerwami)... 426 Brakujące zakresy (przerwy)... 430 Istniejące zakresy (wyspy)... 440 Podsumowanie... 453 7 Połączenia i operacje na zbiorach... 455 Połączenia... 455 Porównanie starego i nowego stylu składni połączeń... 455 Podstawowe rodzaje połączeń... 457 Kolejne przykłady połączeń... 470 Całkowita suma dla przesuwającego się okna poprzedniego roku... 486 Algorytmy połączeń... 491 Rozdzielanie elementów... 501 Operacje na zbiorach... 508 UNION... 510 EXCEPT... 510 INTERSECT... 513 Kolejność wykonywania operacji na zbiorach... 514 Używanie klauzuli INTO w operacjach na zbiorach... 514 Omijanie ograniczeń dotyczących nieobsługiwanych faz logicznych... 515 Podsumowanie... 517 8 Agregowanie i przestawianie danych... 519 Klauzula OVER... 519 Atrybuty rozstrzygające... 523 Agregacje bieżące... 526 Agregacje kumulujące... 528 Agregacje przesuwne... 534 Agregacje typu YTD... 536 Przestawianie danych... 537 Przestawianie atrybutów... 537 Podział relacyjny... 543 Agregowanie danych... 544 Odwrotne przestawianie danych... 548 Agregacje niestandardowe... 552 Agregacje niestandardowe używające przestawiania danych... 553 Agregacje definiowane przez użytkownika... 555 Rozwiązania specjalizowane... 568 Histogramy... 582 Czynnik grupujący... 586 Zbiory grupujące... 589 Dane przykładowe... 590 Klauzula podrzędna GROUPING SETS... 591 Klauzula podrzędna CUBE... 595

Klauzula podrzędna ROLLUP... 596 Algebra zbiorów grupujących... 598 Funkcja GROUPING_ID... 603 Materializowanie zbiorów grupujących... 606 Sortowanie... 609 Podsumowanie... 610 9 TOP i APPLY... 611 SELECT TOP... 611 Opcja TOP i determinizm... 613 Opcja TOP i wyrażenia wejściowe... 615 Opcja TOP i modyfikacje... 616 Opcja TOP na sterydach... 619 APPLY... 620 Rozwiązania typowych problemów używające opcji TOP i operatora APPLY... 623 TOP n dla każdej grupy... 623 Dopasowywanie do siebie bieżących i poprzednich wystąpień... 630 Stronicowanie... 635 Losowe wiersze... 641 Mediana... 643 Przekształcenia logiczne... 645 Podsumowanie... 649 10 Modyfikowanie danych... 651 Wstawianie danych... 651 Rozszerzona klauzula VALUES... 651 SELECT INTO... 653 Dostawca zbioru wierszy typu BULK... 655 Operacje z minimalnym poziomem rejestrowania... 658 INSERT EXEC... 684 Mechanizmy sekwencjonujące... 688 Identyfikatory GUID... 695 Usuwanie danych... 695 Porównanie instrukcji TRUNCATE i DELETE... 695 Usuwanie wierszy z powtarzającymi się danymi... 696 Instrukcja DELETE oparta na połączeniu... 698 Aktualizowanie danych... 701 Instrukcja UPDATE używająca połączenia... 702 Aktualizowanie dużych typów danych... 706 Przypisania wykonywane za pomocą instrukcji SELECT i UPDATE... 708 Scalanie danych... 713 Podstawy działania instrukcji MERGE... 715 Dodawanie predykatu... 719 Wielokrotne klauzule WHEN... 721 Klauzula WHEN NOT MATCHED BY SOURCE... 722 Scalanie wartości... 724 Instrukcja MERGE i procedury wyzwalane... 726

Klauzula OUTPUT... 727 Instrukcja INSERT z klauzulą OUTPUT... 728 Instrukcja DELETE z klauzulą OUTPUT... 729 Instrukcja UPDATE z klauzulą OUTPUT... 731 Instrukcja MERGE z klauzulą OUTPUT... 734 Komponowalne instrukcje DML... 735 Podsumowanie... 738 11 Odpytywanie tabel podzielonych na partycje... 739 Dzielenie na partycje w serwerze SQL Server... 739 Widoki partycjonowane... 740 Tabele partycjonowane... 741 Podsumowanie... 761 12 Grafy, drzewa, hierarchie i zapytania rekurencyjne... 763 Terminologia... 763 Grafy... 764 Drzewa... 764 Hierarchie... 765 Scenariusze... 765 Schemat organizacyjny pracowników... 766 Wykaz towarów... 767 Sieć dróg... 771 Iteracja/Rekurencja... 775 Elementy podrzędne... 776 Elementy poprzedzające... 788 Grafy podrzędne i drzewa podrzędne z enumeracją ścieżki... 792 Sortowanie... 796 Cykle... 799 Ścieżka zmaterializowana... 803 Utrzymywanie danych... 804 Odpytywanie... 810 Ścieżka zmaterializowana z typem danych HIERARCHYID... 817 Utrzymywanie danych... 819 Odpytywanie... 828 Inne aspekty stosowania typu danych HIERARCHYID... 832 Zbiory zagnieżdżone... 845 Przypisywanie lewych i prawych wartości... 845 Zapytania... 852 Domknięcie przechodnie... 855 Zorientowane grafy acykliczne... 856 Podsumowanie... 872 A Zagadki logiczne... 875 Zagadki... 875 Zadanie 1: Reszty z dzielenia... 875 Zadanie 2: Okrągłe pokrywy studzienek kanalizacyjnych... 876 Zadanie 3: Uściski dłoni... 876

Zadanie 4: Aż pięć razy?... 876 Zadanie 5: Ustawianie żołnierzy w szeregu... 876 Zadanie 6: Przechodzenie przez tunel... 877 Zadanie 7: Jak wydostać się z jaskini... 877 Zadanie 8: Darmowy tuńczyk... 878 Zadanie 9: Wyznaczanie następcy tronu... 878 Zadanie 10: Następny element szeregu... 878 Zadanie 11: Urodziny w tym samym dniu... 878 Zadanie 12: Dogonić pociąg... 878 Zadanie 13: Więźniowie i przełączniki... 879 Zadanie 14: Prawdopodobieństwo w Chinach... 879 Zadanie 15: Dwóch matematyków... 880 Zadanie 16: Zwariowana sekwencja... 880 Zadanie 17: Minimalna liczba odważników... 881 Zadanie 18: Zliczanie trójkątów... 881 Zadanie 19: Fałszywe monety... 881 Zadanie 20: Jeden i pół... 882 Zadanie 21: Kot, sznurek i kula ziemska... 882 Zadanie 22: Problem Josephulusa... 882 Zadanie 23: Morska algebra... 882 Zadanie 24: Zadanie z trójkątami równobocznymi... 883 Rozwiązania zagadek... 883 Zadanie 1: Reszty z dzielenia... 883 Zadanie 2: Okrągłe pokrywy studzienek kanalizacyjnych... 884 Zadanie 3: Uściski dłoni... 884 Zadanie 4: Aż pięć razy?... 884 Zadanie 5: Ustawianie żołnierzy w szeregu... 885 Zadanie 6: Przechodzenie przez tunel... 885 Zadanie 7: Jak wydostać się z jaskini... 886 Zadanie 8: Darmowy tuńczyk... 886 Zadanie 9: Wyznaczanie następcy tronu... 887 Zadanie 10: Następny element szeregu... 888 Zadanie 11: Urodziny w tym samym dniu... 888 Zadanie 12: Dogonić pociąg... 888 Zadanie 13: Więźniowie i przełączniki... 889 Zadanie 14: Prawdopodobieństwo w Chinach... 890 Zadanie 15: Dwóch matematyków... 890 Zadanie 16: Zwariowana sekwencja... 891 Zadanie 17: Minimalna liczba odważników... 891 Zadanie 18: Zliczanie trójkątów... 893 Zadanie 19: Fałszywe monety... 894 Zadanie 20: Jeden i pół... 894 Zadanie 21: Kot, sznurek i kula ziemska... 895 Zadanie 22: Problem Josephulusa... 896 Zadanie 23: Morska algebra... 897 Zadanie 24: Zadanie z trójkątami równobocznymi... 897

Podsumowanie... 899 Indeks... 900