Praktyki mistrza SQL Programowanie zaawansowane.pdf

(863 KB) Pobierz
Tytuł oryginału: Joe Celko's SQL for Smartie: Advanced SQL Programming, 5th Edition
Tłumaczenie: Tomasz Walczak
ISBN: 978-83-283-2530-2
Copyright © 2015, 2011, 2005, 2000, 1995 Elsevier Inc.
All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic
or mechanical, including photocopying, recording, or any information storage and retrieval system,
without permission in writing from the publisher. This book and the individual contributions contained
in it are protected under copyright by the Publisher (other than as may be noted herein).
This edition of Joe Celko's SQL for Smartie: Advanced SQL Programming, 5th Edition by Joe Celko
is published by arrangement with ELSEVIER INC., a Delaware corporation having its principal place
of business at 360 Park Avenue South, New York, NY 10010, USA.
Translation copyright © 2016 Helion SA
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie,
ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz
Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody
wynikłe z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/pmsqlp.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/pmsqlp
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
Wprowadzenie do wydania pi tego ...............................................................13
Cz
I.
Mechanizmy zwi zane z deklarowaniem danych ............... 15
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
1.
Bazy danych a systemy plików ......................................................................17
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
Kup książkę
Poleć książkę
6
Spis treści
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
Kup książkę
Poleć książkę
Spis treści
7
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.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
10.
Dane liczbowe w SQL-u .............................................................................207
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
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin