Podstawowy kurs z systemów baz danych / Jeffrey D. Ullman

Transkrypt

Podstawowy kurs z systemów baz danych / Jeffrey D. Ullman
Podstawowy kurs z systemów baz danych / Jeffrey D. Ullman, Jennifer
Widom. - wyd. 3. - Gliwice, cop. 2011
Spis treści
Przedmowa
15
Co nowego w trzecim wydaniu?
Korzystanie z tej ksiąŜki
Wymagania wstępne
Ćwiczenia
Ćwiczenia online z wykorzystaniem technologii Gradiance
Materiały w internecie
Odwzorowanie drugiego wydania na trzecie
Podziękowania
16
16
17
17
17
18
18
18
1. Środowisko systemów baz danych
1.1. Ewolucja systemów baz danych
1.1.1. Pierwsze systemy zarządzania bazami danych
1.1.2. Relacyjne bazy danych
1.1.3. Coraz mniejsze systemy
1.1.4. Coraz większe systemy
1.1.5. Integracja informacji
1.2. System zarządzania bazą danych w zarysie
1.2.1. Polecenia języka definiowania danych
1.2.2. Ogólny opis przetwarzania zapytań
1.2.3. Zarządzanie pamięcią masową i buforami
1.2.4. Przetwarzanie transakcji
1.2.5. Procesor zapytań
1.3. Plan opisu systemów baz danych
1.4. Literatura do rozdziału 1.
21
21
22
23
23
23
24
24
25
26
27
27
28
29
30
I: Modelowanie relacyjnych baz danych
33
2. Relacyjny model danych
2.1. Przegląd informacji o modelach danych
2.1.1. Co to jest model danych?
2.1.2. WaŜniejsze modele danych
2.1.3. Model relacyjny w zarysie
2.1.4. Model semistrukturalny w zarysie
2.1.5. Inne modele danych
2.1.6. Porównanie sposobów modelowania danych
2.2. Podstawowe informacje na temat modeli relacyjnych
2.2.1. Atrybuty
2.2.2. Schematy
2.2.3. Krotki
2.2.4. Dziedziny
2.2.5. RównowaŜne odpowiedniki relacji
2.2.6. Egzemplarze relacji
2.2.7. Klucze relacji
2.2.8. Przykład schematu bazy danych
35
35
35
36
36
37
38
38
39
39
40
40
40
41
41
42
44
2.2.9. Ćwiczenia do podrozdziału 2.2
2.3. Definiowanie schematu relacyjnego w SQL
2.3.1. Relacje w języku SQL
2.3.2. Typy danych
2.3.3. Proste deklaracje tabel
2.3.4. Modyfikowanie schematów relacji
2.3.5. Wartości domyślne
2.3.6. Deklarowanie kluczy
2.3.7. Ćwiczenia do podrozdziału 2.3
2.4. Algebraiczny język zapytań
2.4.1. Do czego jest potrzebny specjalny język zapytań?
2.4.2. Czym jest algebra?
2.4.3. Ogólne informacje o algebrze relacji
2.4.4. Działania na zbiorach wykonywane w odniesieniu do relacji
2.4.5. Rzutowanie
2.4.6. Selekcja
2.4.7. Iloczyn kartezjański
2.4.8. Złączenia naturalne
2.4.9. Złączenia teta
2.4.10. Łączenie operacji w celu tworzenia zapytań
2.4.11. Nadawanie nazw i przemianowywanie
2.4.12. Związki pomiędzy działaniami
2.4.13. Liniowa notacja dla wyraŜeń algebraicznych
2.4.14. Ćwiczenia do podrozdziału 2.4
2.5.
Ograniczenia dotyczące relacji
2.5.1. Algebra relacji jako język definiowania ograniczeń
2.5.2. Ograniczenia integralności odwołań
2.5.3. Ograniczenia kluczowe
2.5.4. Dodatkowe przykłady ograniczeń
2.5.5. Ćwiczenia do podrozdziału 2.5
2.6.
Podsumowanie rozdziału 2.
2.7.
Literatura do rozdziału 2.
45
46
46
47
48
49
50
50
52
53
54
54
54
55
56
57
58
59
61
62
64
64
65
66
72
73
73
74
75
76
77
78
3. Teoria projektowania relacyjnych baz danych
3.1. ZaleŜności funkcyjne
3.1.1. Definicja zaleŜności funkcyjnej
3.1.2. Klucze relacji
3.1.3. Nadklucze
3.1.4. Ćwiczenia do podrozdziału 3.1
3.2. Reguły dotyczące zaleŜności funkcyjnych
3.2.1. Wnioskowanie na temat zaleŜności funkcyjnych
3.2.2. Reguła podziału i łączenia
3.2.3. Trywialne zaleŜności funkcyjne
3.2.4. Obliczanie domknięcia zbioru atrybutów
3.2.5. Dlaczego algorytm domknięć działa?
3.2.6. Reguła przechodniości
3.2.7. Domykanie zbiorów zaleŜności funkcyjnych
3.2.8. Projekcja zaleŜności funkcyjnych
3.2.9. Ćwiczenia do podrozdziału 3.2
3.3. Projektowanie schematów relacyjnych baz danych
3.3.1. Anomalie
79
79
80
81
83
83
84
84
85
86
86
89
90
91
92
94
96
97
3.3.2. Dekompozycja relacji
3.3.3. Postać normalna Boyce'a-Codda
3.3.4. Dekompozycja do postaci BCNF
3.3.5. Ćwiczenia do podrozdziału 3.3
3.4. Dekompozycja - dobre, złe i brzydkie cechy
3.4.1. Odtwarzanie informacji po dekompozycji
3.4.2. Test pościgu dla złączeń bezstratnych
3.4.3. Dlaczego algorytm pościgu działa?
3.4.4. Zachowanie zaleŜności
3.4.5. Ćwiczenia do podrozdziału 3.4
3.5. Trzecia postać normalna
3.5.1. Definicja trzeciej postaci normalnej
3.5.2. Algorytm syntezy dla schematów 3NF
3.5.3. Dlaczego algorytm syntezy 3NF działa?
3.5.4. Ćwiczenia do podrozdziału 3.5
3.6. ZaleŜności wielowartościowe
3.6.1. NiezaleŜność atrybutów a redundancja
3.6.2. Definicja zaleŜności wielowartościowych
3.6.3. Wnioskowanie na temat zaleŜności wielowartościowych
3.6.4. Czwarta postać normalna
3.6.5. Dekompozycja do czwartej postaci normalnej
3.6.6. Związki pomiędzy postaciami normalnymi
3.6.7. Ćwiczenia do podrozdziału 3.6
3.7. Algorytm wykrywania zaleŜności wielowartościowych
3.7.1. Algorytm domknięć a algorytm pościgu
3.7.2. Rozszerzenie algorytmu pościgu o zaleŜności wielowartościowe
3.7.3. Dlaczego algorytm pościgu dla zaleŜności wielowartościowych działa?
3.7.4. Rzutowanie zaleŜności wielowartościowych
3.7.5. Ćwiczenia do podrozdziału 3.7
3.8. Podsumowanie rozdziału 3.
3.9. Literatura do rozdziału 3.
97
98
100
103
103
104
106
109
110
111
112
112
113
114
114
115
115
116
117
120
120
122
122
124
124
125
128
128
129
130
131
4. Wysokopoziomowe modele baz danych
4.1. Model związków encji
4.1.1. Zbiory encji
4.1.2. Atrybuty
4.1.3. Związki
4.1.4. Diagramy E/R
4.1.5. Egzemplarze diagramu E/R
4.1.6. Liczebność binarnych związków E/R
4.1.7. Związki wieloargumentowe
4.1.8. Role w związkach
4.1.9. Atrybuty w związkach
4.1.10. Konwersja związków wieloargumentowych na binarne
4.1.11. Podklasy w modelu E/R
4.1.12. Ćwiczenia do podrozdziału 4.1
4.2. Zasady projektowania
4.2.1. Wierność
4.2.2. Unikanie redundancji
4.2.3. Prostota
4.2.4. Dobór właściwych związków
133
134
134
134
135
135
136
137
138
139
140
142
143
145
146
147
147
148
148
4.2.5. Dobór właściwych typów elementów
4.2.6. Ćwiczenia do podrozdziału 4.2
4.3. Ograniczenia w modelu związków encji
4.3.1. Klucze w modelu związków encji
4.3.2. Reprezentowanie kluczy w modelu E/R
4.3.3. Integralność odwołań
4.3.4. Stopnie powiązania
4.3.5. Ćwiczenia do podrozdziału 4.3
4.4. Słabe zbiory encji
4.4.1. Sens istnienia słabych zbiorów encji
4.4.2. Wymagania dla słabych zbiorów encji
4.4.3. Notacja dla słabych zbiorów encji
4.4.4. Ćwiczenia do podrozdziału 4.4
4.5 Od diagramów E/R do projektu relacyjnej bazy danych
4.5.1. Od zbiorów encji do relacji
4.5.2. Od związków E/R do relacji
4.5.3. Łączenie relacji
4.5.4. Postępowanie ze słabymi zbiorami encji
4.5.5. Ćwiczenia do podrozdziału 4.5
4.6. Konwersja struktur podklas na relacje
4.6.1. Konwersja na podstawie diagramu E/R
4.6.2. Podejście obiektowe
4.6.3. Wykorzystanie wartości null do łączenia relacji
4.6.4. Porównanie podejść
4.6.5. Ćwiczenia do podrozdziału 4.6
4.7. Język UML
4.7.1. Klasy UML
4.7.2. Klucze klas UML
4.7.3. Asocjacje
4.7.4. Samoasocjacje
4.7.5. Klasy asocjacji
4.7.6. Podklasy w języku UML
4.7.7. Agregacje i kompozycje
4.7.8. Ćwiczenia do podrozdziału 4.7
4.8. Od diagramów UML do relacji
4.8.1. Podstawowe zasady przekształcania diagramów UML na relacje
4.8.2. Konwersja podklas UML na relacje
4.8.3. Konwersja agregacji i kompozycji na relacje
4.8.4. Analogia do słabych zbiorów encji w notacji UML
4.8.5. Ćwiczenia do podrozdziału 4.8
4.9. Język ODL
4.9.1. Deklaracje klas
4.9.2. Atrybuty w języku ODL
4.9.3. Związki w języku ODL
4.9.4. Związki odwrotne
4.9.5. Liczebność związków
4.9.6. Typy w języku ODL
4.9.7. Podklasy w języku ODL
4.9.8. Deklaracje kluczy w języku ODL
4.9.9. Ćwiczenia do podrozdziału 4.9
4.10. Od projektów w języku ODL do projektów relacyjnych baz danych
150
151
154
154
154
155
156
156
157
157
159
160
160
161
161
162
164
165
167
169
169
170
171
172
173
174
175
175
175
177
178
178
180
181
181
181
182
183
183
184
185
185
185
187
187
188
189
191
191
193
193
4.10.1.
4.10.2.
4.10.3.
4.10.4.
4.10.5.
4.10.6.
4.11.
4.12.
Konwersja klas ODL na relacje
ZłoŜone atrybuty w klasach
Reprezentowanie atrybutów o wartościach typu zbiór
Reprezentowanie innych konstruktorów typów
Reprezentowanie związków ODL
Ćwiczenia do podrozdziału 4.10
Podsumowanie rozdziału 4.
Literatura do rozdziału 4.
194
195
195
197
198
198
199
201
II: Programowanie relacyjnych baz danych
203
5. Algebraiczne i logiczne języki zapytań
5.1. Działania relacyjne na wielozbiorach
5.1.1. Dlaczego wielozbiory?
5.1.2. Suma, część wspólna i róŜnica wielozbiorów
5.1.3. Rzutowanie wielozbiorów
5.1.4. Selekcja na wielozbiorach
5.1.5. Iloczyn wielozbiorów
5.1.6. Złączenia wielozbiorów
5.1.7. Ćwiczenia do podrozdziału 5.1
5.2. Rozszerzony zbiór operatorów algebry relacji
5.2.1. Eliminowanie duplikatów
5.2.2. Operatory agregacji
5.2.3. Grupowanie
5.2.4. Operator grupowania
5.2.5. Rozszerzenie operatora rzutowania
5.2.6. Operator sortowania
5.2.7. Złączenia zewnętrzne
5.2.8. Ćwiczenia do podrozdziału 5.2
5.3. Logika relacji
5.3.1. Predykaty i atomy
5.3.2. Atomy arytmetyczne
5.3.3. Reguły i zapytania w Datalogu
5.3.4. Znaczenie reguł Datalogu
5.3.5. Predykaty ekstensjonalne i intensjonalne
5.3.6. Reguły Datalogu stosowane do wielozbiorów
5.3.7. Ćwiczenia do podrozdziału 5.3
5.4. Algebra relacji a Datalog
5.4.1. Działania logiczne
5.4.2. Rzutowanie
5.4.3. Selekcja
5.4.4. Iloczyn
5.4.5. Złączenia
5.4.6. Symulacja wielu operacji w Datalogu
5.4.7. Porównanie Datalogu z algebrą relacji
5.4.8. Ćwiczenia do podrozdziału 5.4
5.5. Podsumowanie rozdziału 5.
5.6. Bibliografia do rozdziału 5.
205
205
206
207
208
209
209
210
211
212
213
213
214
215
216
218
218
220
221
221
222
222
223
225
226
227
228
228
229
230
232
232
233
235
235
236
237
6. Język baz danych SQL
6.1. Proste zapytania w SQL
239
240
6.1.1.
6.1.2.
6.1.3.
6.1.4.
6.1.5.
6.1.6.
6.1.7.
6.1.8.
6.1.9.
6.2.
6.2.1.
6.2.2.
6.2.3.
6.2.4.
6.2.5.
6.2.6.
6.3.
6.3.1.
6.3.2.
6.3.3.
6.3.4.
6.3.5.
6.3.6.
6.3.7.
6.3.8.
6.3.9.
6.4.
6.4.1.
6.4.2.
6.4.3.
6.4.4.
6.4.5.
6.4.6.
6.4.7.
6.4.8.
6.5.
6.5.1.
6.5.2.
6.5.3.
6.5.4.
6.6.
6.6.1.
6.6.2.
6.6.3.
6.6.4.
6.6.5.
6.6.6.
6.6.7.
6.7.
6.8.
Rzutowanie w języku SQL
Selekcja w języku SQL
Porównywanie ciągów znaków
Dopasowywanie wzorców w SQL
Daty i godziny
Wartości null i porównania z wykorzystaniem wartości NULL
Wartość logiczna UNKNOWN
Porządkowanie wyniku
Ćwiczenia do podrozdziału 6.1
Zapytania do więcej niŜ jednej relacji
Iloczyny i złączenia w SQL
Eliminowanie niejednoznaczności atrybutów
Zmienne krotek
Interpretowanie zapytań do wielu relacji
Suma, część wspólna i róŜnica zapytań
Ćwiczenia do podrozdziału 6.2
Podzapytania
Podzapytania, które generują wynik w postaci wartości skalarnej
Warunki dotyczące relacji
Warunki dotyczące krotek
Podzapytania skorelowane
Podzapytania w klauzulach FROM
WyraŜenia złączeń w SQL
Złączenia naturalne
Złączenia zewnętrzne
Ćwiczenia do podrozdziału 6.3
Działania na całych relacjach
Eliminowanie duplikatów
Duplikaty w sumach, częściach wspólnych i róŜnicach relacji
Grupowanie i funkcje agregacji w języku SQL
Operatory agregacji
Grupowanie
Grupowanie, agregacje a wartości NULL
Klauzule HAVING
Ćwiczenia do podrozdziału 6.4
Modyfikacje baz danych
Wstawianie krotek
Usuwanie
Aktualizacje
Ćwiczenia do podrozdziału 6.5
Transakcje w języku SQL
Szeregowalność
Niepodzielność
Transakcje
Transakcje tylko do odczytu
Brudne odczyty
Inne poziomy izolacji
Ćwiczenia do podrozdziału 6.6
Podsumowanie rozdziału 6.
Bibliografia do rozdziału 6.
242
244
245
246
246
248
249
250
251
253
253
255
255
257
259
261
262
263
264
265
266
267
268
269
270
272
274
274
275
276
276
277
279
280
281
282
282
284
285
286
287
287
289
290
291
292
295
296
297
298
7. Więzy i wyzwalacze
7.1. Klucze główne i obce
7.1.1. Deklarowanie więzów kluczy obcych
7.1.2. Utrzymywanie integralności odwołań
7.1.3. Odroczone sprawdzanie więzów
7.1.4. Ćwiczenia do podrozdziału 7.1
7.2. Więzy na poziomie atrybutów i krotek
7.2.1. Więzy NOT NULL
7.2.2. Więzy CHECK na poziomie atrybutów
7.2.3. Więzy CHECK na poziomie krotek
7.2.4. Porównanie więzów CHECK na poziomie krotek z więzami CHECK
na poziomie atrybutów
7.2.5. Ćwiczenia do podrozdziału 7.2
7.3. Modyfikacje więzów
7.3.1. Nadawanie nazw więzom
7.3.2. Modyfikowanie więzów na poziomie tabel
7.3.3. Ćwiczenia do podrozdziału 7.3
7.4. Asercje
7.4.1. Tworzenie asercji
7.4.2. Wykorzystywanie asercji
7.4.3. Ćwiczenia do podrozdziału 7.4
7.5. Wyzwalacze
7.5.1. Wyzwalacze w języku SQL
7.5.2. Opcje projektowania wyzwalacza
7.5.3. Ćwiczenia do podrozdziału 7.5
7.6. Podsumowanie rozdziału 7.
7.7. Bibliografia do rozdziału 7.
301
301
302
303
305
307
308
309
309
311
8. Perspektywy i indeksy
8.1. Perspektywy wirtualne
8.1.1. Deklarowanie perspektyw
8.1.2. Zapytania do perspektyw
8.1.3. Przemianowania atrybutów
8.1.4. Ćwiczenia do podrozdziału 8.1
8.2. Modyfikowanie perspektyw
8.2.1. Usuwanie perspektyw
8.2.2. Perspektywy modyfikowalne
8.2.3. Wyzwalacze instead-of dla perspektyw
8.2.4. Ćwiczenia do podrozdziału 8.2
8.3. Indeksy w języku SQL
8.3.1. Motywacja istnienia indeksów
8.3.2. Deklarowanie indeksów
8.3.3. Ćwiczenia do podrozdziału 8.3
8.4. Dobór indeksów
8.4.1. Prosty model kosztów
8.4.2. Przykłady przydatnych indeksów
8.4.3. Wyznaczanie najlepszych moŜliwych indeksów
8.4.4. Automatyczny wybór indeksów do utworzenia
8.4.5. Ćwiczenia do podrozdziału 8.4
8.5. Perspektywy zmaterializowane
8.5.1. Utrzymywanie perspektyw zmaterializowanych
329
329
329
331
331
332
332
333
333
335
336
337
338
338
339
340
340
340
342
345
346
346
347
312
313
314
314
315
316
317
317
317
319
320
320
322
324
326
327
8.5.2. Okresowa obsługa perspektyw zmaterializowanych
349
8.5.3. Przepisywanie zapytań w celu korzystania z perspektyw
zmaterializowanych
8.5.4. Automatyczne tworzenie perspektyw zmaterializowanych
8.5.5. Ćwiczenia do podrozdziału 8.5
8.6. Podsumowanie rozdziału 8.
8.7. Bibliografia do rozdziału 8.
349
351
352
353
354
9. SQL w środowisku serwerowym
9.1. Architektura trójwarstwowa
9.1.1. Warstwa serwera WWW
9.1.2. Warstwa aplikacji
9.1.3. Warstwa bazy danych
9.2. Środowisko języka SQL
9.2.1. Środowiska
9.2.2. Schematy
9.2.3. Katalogi
9.2.4. Klienty i serwery w środowisku SQL
9.2.5. Połączenia
9.2.6. Sesje
9.2.7. Moduły
9.3. Interfejs SQL - język-gospodarz
9.3.1. Problem niezgodności impedancji
9.3.2. Połączenie języka SQL z językiem-gospodarzem
9.3.3. Sekcja deklaracji
9.3.4. UŜywanie zmiennych współdzielonych
9.3.5. Jednowierszowe instrukcje SELECT
9.3.6. Kursory
9.3.7. Modyfikacje z wykorzystaniem kursorów
9.3.8. Zabezpieczenie przed równoległym wprowadzaniem aktualizacji
9.3.9. Dynamiczny SQL
9.3.10. Ćwiczenia do podrozdziału 9.3
9.4.
Procedury składowane
9.4.1. Tworzenie funkcji i procedur PSM
9.4.2. Proste rodzaje instrukcji w PSM
9.4.3. Instrukcje warunkowe
9.4.4. Zapytania w modułach PSM
9.4.5. Pętle w modułach PSM
9.4.6. Pętle for
9.4.7. Wyjątki w modułach PSM
9.4.8. Posługiwanie się funkcjami i procedurami PSM
9.4.9. Ćwiczenia do podrozdziału 9.4
9.5. Wykorzystanie interfejsu poziomu wywołania
9.5.1. Wprowadzenie do interfejsu SQL/CLI
9.5.2. Przetwarzanie instrukcji
9.5.3. Pobieranie danych z wyniku zapytania
9.5.4. Przekazywanie parametrów do zapytań
9.5.5. Ćwiczenia do podrozdziału 9.5
9.6. JDBC
9.6.1. Wprowadzenie do JDBC
355
356
357
357
358
358
358
360
361
361
362
362
363
364
365
365
366
367
368
368
370
372
372
374
375
375
376
377
379
380
381
383
385
385
387
387
389
390
392
393
393
393
9.6.2.
9.6.3.
9.6.4.
9.6.5.
9.7.
9.7.1.
9.7.2.
9.7.3.
9.7.4.
9.7.5.
9.7.6.
9.7.7.
9.7.8.
9.8.
9.9.
Tworzenie instrukcji w JDBC
Operacje na kursorach w JDBC
Przekazywanie parametrów
Ćwiczenia do podrozdziału 9.6
PHP
Podstawy PHP
Tablice
Biblioteka PEAR DB
Tworzenie połączenia z bazą danych za pomocą biblioteki DB
Uruchamianie instrukcji SQL
Operacje na kursorach w PHP
Dynamiczny SQL w języku PHP
Ćwiczenia do podrozdziału 9.7
Podsumowanie rozdziału 9.
Bibliografia do rozdziału 9.
394
396
397
397
398
398
399
399
400
400
401
402
402
403
404
10. Zaawansowane zagadnienia dotyczące relacyjnych baz danych
10.1. Bezpieczeństwo i autoryzacja uŜytkowników w SQL
10.1.1. Uprawnienia
10.1.2. Definiowanie uprawnień
10.1.3. Proces sprawdzania uprawnień
10.1.4. Nadawanie uprawnień
10.1.5. Diagramy uprawnień
10.1.6. Odbieranie uprawnień
10.1.7. Ćwiczenia do podrozdziału 10.1
10.2. Rekurencja w języku SQL
10.2.1. Definiowanie relacji rekurencyjnych w języku SQL
10.2.2. WyraŜenia stwarzające problemy w rekurencyjnym SQL
10.2.3. Ćwiczenia do podrozdziału 10.2
10.3. Model obiektowo-relacyjny
10.3.1. Od relacji do obiektorelacji
10.3.2. Relacje zagnieŜdŜone
10.3.3. Referencje
10.3.4. Model obiektowy a obiektowo-relacyjny
10.3.5. Ćwiczenia do podrozdziału 10.3
10.4. Typy definiowane przez uŜytkowników w języku SQL
10.4.1. Definiowanie typów w języku SQL
10.4.2. Deklaracje metod w UDT
10.4.3. Definicje metod
10.4.4. Deklarowanie relacji z wykorzystaniem typów UDT
10.4.5. Referencje
10.4.6. Tworzenie identyfikatorów obiektów dla tabel
10.4.7. Ćwiczenia do podrozdziału 10.4
10.5. Działania na danych obiektowo-relacyjnych
10.5.1. Śledzenie referencji
10.5.2. Dostęp do składowych krotek wykorzystujących typy UDT
10.5.3. Funkcje generatora i uratora
10.5.4. Sortowanie relacji bazujących na typach UDT
10.5.5. Ćwiczenia do podrozdziału 10.5
10.6. Przetwarzanie OLAP
10.6.1. Przetwarzanie OLAP i hurtownie danych
405
405
406
407
408
409
411
411
415
416
416
419
422
423
424
424
425
426
427
428
428
430
430
431
431
432
433
434
434
435
436
438
439
440
441
10.6.2.
10.6.3.
10.6.4.
10.6.5.
10.6.6.
10.7.
10.7.1.
10.7.2.
10.7.3.
10.8.
10.9.
Aplikacje OLAP
Wielowymiarowe spojrzenie na dane OLAP
Schematy gwiaździste
Cięcie i kawałkowanie
Ćwiczenia do podrozdziału 10.6
Kostki danych
Operator CUBE
Operator CUBE w języku SQL
Ćwiczenia do podrozdziału 10.7
Podsumowanie rozdziału 10.
Bibliografia do rozdziału 10.
441
442
443
445
447
448
448
450
452
453
454
III: Modelowanie i programowanie danych semistrukturalnych
455
11. Model danych semistrukturalnych
11.1. Dane semistrukturalne
11.1.1. Sens istnienia modelu danych semistrukturalnych
11.1.2. Reprezentacja danych semistrukturalnych
11.1.3. Integracja informacji za pośrednictwem danych semistrukturalnych
11.1.4. Ćwiczenia do podrozdziału 11.1
11.2. XML
11.2.1. Znaczniki semantyczne
11.2.2. XML ze schematem i bez niego
11.2.3. Dokumenty XML poprawne składniowo
11.2.4. Atrybuty
11.2.5. Atrybuty łączące elementy
11.2.6. Przestrzenie nazw
11.2.7. XML i bazy danych
11.2.8. Ćwiczenia do podrozdziału 11.2
11.3. Definicje typu dokumentów
11.3.1. Format definicji DTD
11.3.2. Korzystanie z DTD
11.3.3. Listy atrybutów
11.3.4. Identyfikatory i referencje
11.3.5. Ćwiczenia do podrozdziału 11.3
11.4. XML Schema
11.4.1. Postać standardu XML Schema
11.4.2. Elementy
11.4.3. Typy złoŜone
11.4.4. Atrybuty
11.4.5. Ograniczenia dla typów prostych
11.4.6. Klucze w XML Schema
11.4.7. Klucze obce w XML Schema
11.4.8. Ćwiczenia do podrozdziału 11.4
11.5. Podsumowanie rozdziału 11.
11.6. Bibliografia do rozdziału 11.
457
457
457
458
459
461
461
462
462
463
464
465
466
466
468
468
468
471
471
472
473
474
474
475
476
478
479
480
482
484
484
485
12. Języki programowania dla XML
12.1. XPath
12.1.1. Model danych XPath
12.1.2. Węzły-dokumenty
489
489
489
490
12.1.3. ŚcieŜki XPath
12.1.4. ŚcieŜki względne
12.1.5. Atrybuty w wyraŜeniach opisujących ścieŜki
12.1.6. Osie
12.1.7. Kontekst wyraŜeń
12.1.8. Symbole wieloznaczne
12.1.9. Warunki w wyraŜeniach ścieŜek
12.1.10. Ćwiczenia do podrozdziału 12.1
12.2. XQuery
12.2.1. Podstawy języka XQuery
12.2.2. WyraŜenia FLWR
12.2.3. Zastępowanie zmiennych ich wartościami
12.2.4. Złączenia w XQuery
12.2.5. Operatory porównań w języku XQuery
12.2.6. Eliminowanie duplikatów
12.2.7. Kwantyfikatory w języku XQuery
12.2.8. Agregacje
12.2.9. Rozgałęzienia sterowania w wyraŜeniach XQuery
12.2.10. Porządkowanie wyników zapytania
12.2.11. Ćwiczenia do podrozdziału 12.2
12.3.
Język XSLT
12.3.1. Podstawy języka XSLT
12.3.2. Szablony
12.3.3. Odczytywanie wartości z danych XML
12.3.4. Rekurencyjne stosowanie szablonów
12.3.5. Iteracje w XSLT
12.3.6. Rozgałęzienia sterowania w XSLT
12.3.7. Ćwiczenia do podrozdziału 12.3
12.4. Podsumowanie rozdziału 12.
12.5. Bibliografia do rozdziału 12.
491
492
492
493
494
494
495
497
500
500
500
504
505
506
507
508
509
509
510
512
513
513
513
514
515
517
519
519
520
521
Skorowidz
523
oprac. BPK