Przejdź do menu Przejdź do treści
English version   |   Wygląd Wygląd   |   Zaloguj się
English version   |   Wygląd Wygląd   |   Zaloguj się
Rozmiar czcionki:
Zwiększ rozmiar czcionki
Standardowy rozmiar czcionki
Zmniejsz rozmiar czcionki
Wysoki kontrast:
Włącz tryb biały na czarnym
Włącz tryb żółty na niebieskim
Opcje widoku:
Przełącz na widok szeroki

Menu

Strona główna
  • Strona główna
  • Katalog
    • Wyszukiwanie proste [ALT+1]
    • Wyszukiwanie zaawansowane [ALT+2]
    • Przeglądanie [ALT+3]
  • Rejestracja

Dane szczegółowe książki

Podstawowy wykład z systemów baz danych / Ullman, Jeffrey D. (1942-); Jurkiewicz, Monika; Widom, Jennifer
  • Opis bibliograficzny Opis
Autorzy
Ullman, Jeffrey D. (1942-)
Jurkiewicz, Monika, Tł.
Widom, Jennifer
Tytuł
Podstawowy wykład z systemów baz danych
Serie wydawnicze
Klasyka Informatyki
Wydawnictwo
Warszawa: Wydawnictwa Naukowo-Techniczne, 1999
ISBN
8320423945
Hasła przedmiotowe
Baza danych
Podręczniki akademickie

Spis treści

pokaż spis treści
Dziedzina systemów baz danych . . . . . . . . . . . . . . . . . . 19
1.1. Ewolucja systemów baz danych . . . . . . . . . . . . . . . . . 19
1.1.1. Pierwsze systemy zarządzania bazami danych . . . . . . . . . . . . 20
1.1.2. Relacyjne systemy baz danych . . . . . . . . . . . . . . . . . . . 22
1.1.3. Coraz mnięjsze systemy . . . . . . . . . . . . . . . . . . . . . . 24
1.1.4. Coraz większe systemy . . . . . . . . . . . . . . . . . . . . . . 24
1.2. Architektura systemu DBMS . . . . . . . . . . . . . . . . . . . 25
1.2.1. Przegląd składowych systemu DBMS . . . . . . . . . . . . . . . 26
1.2.2. Moduł zarządzania pamięcią. . . . . . . . . . . . . . . . . . . . 28
1.2.3. Moduł zarządzania zapytaniami . . . . . . . . . . . . . . . . . . 29
1.2.4. Moduł zarządzania transakcjami . . . . . . . . . . . . . . . . . . 30
1.2.5. Architektura klient-serwer. . . . . . . . . . . . . . . . . . . . . 33
1.3. Przyszłość systemów baz danych . . . . . . . . . . . . . . . . . 34
1.3.1. Typy, klasy i obiekty . . . . . . . . . . . . . . . . . . . . . . . 34
1.3.2. Więzy i wyzwalacze . . . . . . . . . . . . . . . . . . . . . . . 38
1.3.3. Dane multimedialne . . . . . . . . . . . . . . . . . . . . . . . 39
1.3.4. Integracja danych. . . . . . . . . . . . . . . . . . . . . . . . . 40
1.4. Układ książki . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.4.1. Projektowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.4.2. Programowanie. . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.5. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.6. Literatura do rozdziału 1 . . . . . . . . . . . . . . . . . . . . . 45
2
Modelowanie baz danych . . . . . . . . . . . . . . . . . . . . . . . 46
2.1. Wprowadzenie do języka ODL . . . . . . . . . . . . . . . . . . 47 2.1.1. Projektowanie zorientowane obiektowo . . . . . . . . . . . . . . . 48
10
SPIS TREŚCI
2.1.2. Deklaracje interfejsu . . . . . . . . . . . . . . . . . . . . . . . . 50 2.1.3. Atrybuty w języku ODL . . . . . . . . . . . . . . . . . . . . . . 50 2.1.4. Związki wjęzyku ODL. . . . . . . . . . . . . . . . . . . . . . . 52 2.1.5. Związki odwrotne . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.1.6. Liczebność związków . . . . . . . . . . . . . . . . . . . . . . . 55 2.1.7. Typy wjęzYku ODL . . . . . . . . . . . . . . . . . . . . . . . . 58 2.1.8. Ćwiczenia do podrozdziału 2.1 . . . . . . . . . . . . . . . . . . . 60
2.2. Diagramy związków encji . . . . . . . . . . . . . . . . . . . . 62
2.2.1. Liczebność związków encji . . . . . . . . . . . . . . . . . . . . . 64
2.2.2. Związki wieloargumentowe. . . . . . . . . . . . . . . . . . . . . 65
2.2.3. Role w związkach . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.2.4. Atrybuty związków. . . . . . . . . . . . . . . . . . . . . . . . . 68
2.2.5. Przekształcanie związków wieloargumentowych w binarne . . . . . 70
2.2.6. Ćwiczenia do podrozdziału 2.2 . . . . . . . . . . . . . . . . . . . 72
2.3. Zasady projektowania . . . . . . . . . . . . . . . . . . . . . . . 73
2.3.1. Dokładność . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.3.2. Unikanie redundancji. . . . . . . . . . . . . . . . . . . . . . . . 74
2.3.3. Prostota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.3.4. Dobór właściwych elementów . . . . . . . . . . . . . . . . . . . 76
2.3.5. Ćwiczenia do podrozdziału 2.3 . . . . . . . . . . . . . . . . . . . 78
2.4. Podk lasy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.4.1. Podklasy w systemie ODL . . . . . . . . . . . . . . . . . . . . . 81
2.4.2. Dziedziczenie wielokrotne w języku ODL. . . . . . . . . . . . . . 81
2.4.3. Podklasy w diagramach związków encji. . . . . . . . . . . . . . . 84
2.4.4. Dziedziczenie w modelach związków encji . . . . . . . . . . . . . 85
2.4.5. Ćwiczenia do podrozdziału 2.4 . . . . . . . . . . . . . . . . . . . 86
2.5. Modelowanie więzów . . . . . . . . . . . . . . . . . . . . . . . 87
2.5.1. Klucze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.5.2. Deklarowanie kluczy wjęzyku ODL . . . . . . . . . . . . . . . . 90
2.5.3. Reprezentowanie kluczy w modelu związków encji . . . . . . . . . 91
2.5.4. Więzy jednoznaczności. . . . . . . . . . . . . . . . . . . . . . . 92
2.5.5. Integralność referencyjna . . . . . . . . . . . . . . . . . . . . . . 93
2.5.6. Integralność referencyjna w diagramach związków encji. . . . . . . 94
2.5.7. Inne rodzaje więzów . . . . . . . . . . . . . . . . . . . . . . . . 95
2.5.8. Ćwiczenia do podrozdziału 2.5 . . . . . . . . . . . . . . . . . . . 96
2.6. Zbiory słabych encji . . . . . . . . . . . . . . . . . . . . . . . . 97
2.6.1. Przyczyny zbiorów słabych encji . . . . . . . . . . . . . . . . . . 97
2.6.2. Wymagania dla zbiorów słabych encji . . . . . . . . . . . . . . . 99
2.6.3. Notacja zbiorów słabych encji . . . . . . . . . . . . . . . . . . . 101
2.6.4. Ćwiczenia do podrozdziału 2.6 . . . . . . . . . . . . . . . . . . . 101
2.7. Modele o znaczeniu historycznym . . . . . . . . . . . . . . . . 102 "
2.7.1. Model sieciowy . . . . . . . . . . . . . . . . . . . . . . . . . . 102 2.7.2. Schematy reprezentacji sieci . . . . . . . . . . . . . . . . . . . . 104 2.7.3. Model hierarchiczny . . . . . . . . . . . . . . . . . . . . . . . . 105 2.7.4. Ćwiczenia do podrozdziału 2.7 . . . . . . . . . . . . . . . . . . . 107
SPIS TREŚCI
11
2.8. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2.9. Literatura do rozdziału 2 . . . . . . . . . . . . . . . . . . . . . 109
3
Relacyjny model danych . . . . . . . . . . . . . . . . . . . . . . . 110
3.1. Podstawy modeli relacyjnych . . . . . . . . . . . . . . . . . . . 110
3.1.1. Atrybuty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.1.2. Schematy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.1.3. Krotki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.1.4. Dziedziny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.1.5. Równoważne sposoby reprezentowania relacji . . . . . . . . . . . 1 13
3.1.6. Instancje relacji . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.1.7. Ćwiczenia do podrozdziału 3.1 . . . . . . . . . . . . . . . . . . . 116
3.2. Od projektów ODL do projektów relacyjnych . . . . . . . . . . 116
3.2.1. Od atrybutów wjęzyku ODL do atrybutów relacji. . . . . . . . . . 117
3.2.2. Atrybuty nieatomowe w klasach . . . . . . . . . . . . . . . . . . 118
3.2.3. Reprezentowanie konstruktorów innych typów . . . . . . . . . . . 122
3.2.4. Reprezentowanie relacji jednowartościowych . . . . . . . . . . . . 123
3.2.5. Reprezentowanie związków wielowartościowych . . . . . . . . . . 125
3.2.6. A gdy nie ma klucza... . . . . . . . . . . . . . . . . . . . . . . 127
3.2.7. Reprezentowanie relacji oraz jej odwrotności . . . . . . . . . . . . 128
3.2.8. Ćwiczenia do podrozdziału 3.2 . . . . . . . . . . . . . . . . . . . 129
3.3. Od diagramów związków encji do projektów relacyjnych . . . 131
3.3.1. Od zbiorów encji do relacji . . . . . . . . . . . . . . . . . . . . . 132
3.3.2. Od związków encji do relacji . . . . . . . . . . . . . . . . . . . . 133
3.3.3. Zasady postępowania ze słabymi zbiorami encji . . . . . . . . . . . 136
3.3.4. Ćwiczenia do podrozdziału 3.3 . . . . . . . . . . . . . . . . . . . 139
3.4. Przekształcanie struktur podklas do postaci relacji . . . . . . . 140
3.4.1. Relacyjne reprezentacje podklas z modelu ODL. . . . . . . . . . . 141
3.4.2. Reprezentowanie związków isa w modelu relacyjnym . . . . . . . . 142
3.4.3. Porównanie różnych metod . . . . . . . . . . . . . . . . . . . . . 143
3.4.4. Tworzenie relacji z wartościami pustymi . . . . . . . . . . . . . . 144
3.4.5. Ćwiczenia do podrozdziału 3.4 . . . . . . . . . . . . . . . . . . . 145
3.5. Zależności funkcyjne . . . . . . . . . . . . . . . . . . . . . . . 147
3.5.1. Definicja zależności funkcyjnych . . . . . . . . . . . . . . . . . . 147
3.5.2. Klucze relacji . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.5.3. Nadklucze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
3.5.4. Wykrywanie kluczy w relacji . . . . . . . . . . . . . . . . . . . . 152
3.5.5. Klucze relacji powstających z opisów wjęzyku ODL . . . . . . . . 154
3.5.6. Ćwiczenia do podrozdziału 3.5 . . . . . . . . . . . . . . . . . . . 156
3.6. Regu ły dotyczące zależności funkcyjnych . . . . . . . . . . . . 156
3.6.1. Zasady podziału i łączenia . . . . . . . . . . . . . . . . . . . . . 157
3.6.2. Zależności trywialne . . . . . . . . . . . . . . . . . . . . . . . . 159
3.6.3. Obliczanie domknięcia zbioru atrybutów . . . . . . . . . . . . . . 160
3.6.4. Reguła przechodniości . . . . . . . . . . . . . . . . . . . . . . . 163
12
SPIS TREŚCI
3.6.5. Domknięcie zbioru zależności funkcyjnych . . . . . . . . . . . . . 165
3.6.6. Ćwiczenie do podrozdziału 3.6 . . . . . . . . . . . . . . . . . . . 166
3.7. Proje ktowanie relacyjnych schematów baz danych . . . . . . . 168
3.7.1. Anomalie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3.7.2. Dekompozycja relacji . . . . . . . . . . . . . . . . . . . . . . . 170
3.7.3. Postać normalna Boyce'a-Codda . . . . . . . . . . . . . . . . . . 172
3.7.4. Dekompozycja do postaci BCNF . . . . . . . . . . . . . . . . . . 174
3.7.5. Projektowanie zależności funkcyjnych . . . . . . . . . . . . . . . 180
3.7.6. Odzyskiwanie danych po dekompozycji. . . . . . . . . . . . . . . 181
3.7.7. Trzecia postać normalna . . . . . . . . . . . . . . . . . . . . . . 184
3.7.8. Ćwiczenia do podrozdziału 3.7 . . . . . . . . . . . . . . . . . . . 187
3.8. Zależności wielowartościowe . . . . . . . . . . . . . . . . . . . 188
3.8.1. Niezależność atrybutów i wynikająca stąd redundancja . . . . . . . 188
3.8.2. Definicja zależności wielowartościowych . . . . . . . . . . . . . . 190
3.8.3. Wnioskowanie z zależności wielowartościowych . . . . . . . . . . 192
3.8.4. Czwarta postać normalna . . . . . . . . . . . . . . . . . . . . . . 194
3.8.5. Dekompozycja do czwartej postaci normalnęj . . . . . . . . . . . . 195
3.8.6. Zależności między postaciami normalnymi . . . . . . . . . . . . . 197
3.8.7. Ćwiczenia do podrozdziału 3.8 . . . . . . . . . . . . . . . . . . . 198
3.9. Przykładowy schemat bazy danych. . . . . . . . . . . . . . . . 200
3.10. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
3.11. Literatura do rozdzialu 3 . . . . . . . . . . . . . . . . . . . . . 205
4 Działania w modelu relacyjnym . . . . . . . . . . . . . . . . . . . 206
4.1. Algebra dzialań na relacjach . . . . . . . . . . . . . . . . . . . 206
4.1.1. Działania teoriomnogościowe w zastosowaniu do relacji. . . . . . . 207
4.1.2. Rzutowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.1.3. Selekcja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
4.1.4. Iloczyn kartezjański . . . . . . . . . . . . . . . . . . . . . . . . 211
4.1.5. Złączenie naturalne. . . . . . . . . . . . . . . . . . . . . . . . . 212
4.1.6. Złączenie teta . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
4.1.7. Tworzenie zapytań z połączonych operacji . . . . . . . . . . . . . 216
4.1.8. Przemianowanie . . . . . . . . . . . . . . . . . . . . . . . . . . 219
4.1.9. Operacje zależne i niezależne . . . . . . . . . . . . . . . . . . . . 220
4.1.10. Ćwiczenia do podrodziału 4.1. . . . . . . . . . . . . . . . . . . . 221
4.2. Logika relacji. . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
4.2.1. Predykaty i atomy . . . . . . . . . . . . . . . . . . . . . . . . . 228
4.2.2. Atomy arytmetyczne . . . . . . . . . . . . . . . . . . . . . . . . 229
4.2.3. Reguły i zapytania w Datalogu . . . . . . . . . . . . . . . . . . . 229
4.2.4. Znaczenie reguł Datalogu. . . . . . . . . . . . . . . . . . . . . . 231
4.2.5. Predykaty ekstensjonalne i intensjonalne . . . . . . . . . . . . . . 234
4.2.6. Ćwiczenia do podrozdziału 4.2 . . . . . . . . . . . . . . . . . . . 235
4.3. Od algebry relacji do Datalogu . . . . . . . . . . . . . . . . . . 235 4.3.1. Przecięcie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
SPIS TREŚCI I 3
4.3.2. Suma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
4.3.3. Różnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
4.3.4. Rzutowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
4.3.5. Selekcja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.3.6. Iloczyn kartezjański . . . . . . . . . . . . . . . . . . . . . . . . 240
4.3.7. Złączenia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
4.3.8. Symulowanie operacji złożonych w Datalogu . . . . . . . . . . . . 243
4.3.9. Ćwiczenia do podrozdziału 4.3 . . . . . . . . . . . . . . . . . . . 244
4.4. Programowanie rekurencyjne w Datalogu . . . . . . . . . . . . 245
4.4.1. OperatoY punktu stałego . . . . . . . . . . . . . . . . . . . . . . 247
4.4.2. Obliczanie najmniejszego punktu stałego . . . . . . . . . . . . . . 248
4.4.3. Równania z punktem stałym w Datalogu . . . . . . . . . . . . . . 250
4.4.4. Negacja w regułach rekurencyjnych. . . . . . . . . . . . . . . . . 255
4.4.5. Cwiczenia do podrozdziału 4.4 . . . . . . . . . . . . . . . . . . . 259
4.5. Więzy relacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
4.5.1. Algebra relacji jako język więzów . . . . . . . . . . . . . . . . . 261 4.5.2. Więzy integralności referencyjnej . . . . . . . . . . . . . . . . . . 261 4.5.3. Inne przykłady więzów . . . . . . . . . . . . . . . . . . . . . . . 263 4.5.4. Cwiczenia do podrozdziału 4.5 . . . . . . . . . . . . . . . . . . . 265
4.6. Operacje relacyjne na wielozbiorach . . . . . . . . . . . . . . . 267
4.6.1. Dlaczego wielozbiory? . . . . . . . . . . . . . . . . . . . . . . 267
4.6.2. Suma, przecięcie i różnica wielozbiorów . . . . . . . . . . . . . . 269
4.6.3. Rzutowanie wielozbiorów . . . . . . . . . . . . . . . . . . . . . 271
4.6.4. Operacja selekcji dla wielozbiorów . . . . . . . . . . . . . . . . . 272
4.6.5. Iloczyn kartezjański wielozbiorów . . . . . . . . . . . . . . . . . 272
4.6.6. Złączenia wielozbiorów . . . . . . . . . . . . . . . . . . . . . . 273
4.6.7. Zastosowanie reguł Datalogu do wielozbiorów . . . . . . . . . . . 274
4.6.8. Ćwiczenia do podrozdziału 4.6 . . . . . . . . . . . . . . . . . . . 276
4.7. Inne rozszerzenia modelu relacyjnego . . . . . . . . . . . . . . 277
4.7.1. Modyfikacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 4.7.2. Agregacje danych . . . . . . . . . . . . . . . . . . . . . . . . . 278 4.7.3. Perspektywy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 4.7.4. Wartości NULL . . . . . . . . . . . . . . . . . . . . . . . . . . 279
4.8. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 4.9. Literatura do rozdziału 4 . . . . . . . . . . . . . . . . . . . . . 280
5
Język baz danych SQL . . . . . . . . . . . . . . . . . . . . . . . . 282
5.1. Proste zapytania w języku SQL . . . . . . . . . . . . . . . . . . 283
5.1.1. Rzutowanie w języku SQI. . . . . . . . . . . . . . . . . . . . . . 285
5.1.2. Działanie selekcji w języku SQL . . . . . . . . . . . . . . . . . . 287
5. I .3. 1'orównvwanie tekstów . . . . . . . . . . . . . . . . . . . . . . . 289
5.1.4. Porównywanie daty i czasu . . . . . . . . . . . . . . . . . . . . . 291
5.1.5. Porządkowanie wyniku . . . . . . . . . . . . . . . . . . . . . . . 292
5.l .6. Ćwiczenia do podrozdziału 5.1 . . . . . . . . . . . . . . . . . . . 293
14
SPIS TREŚCI
5.2. Zapytania dotyczące więcej niż jednej relacji . . . . . . . . . . 295
5.2.1. Iloczyn kartezjański i złączenia w języku SQL . . . . . . . . . . . 295
5.2.2. Atrybuty nięjednoznaczne . . . . . . . . . . . . . . . . . . . . . 296
5.2.3. Zmienne krotkowe . . . . . . . . . . . . . . . . . . . . . . . . . 297
5.2.4. Wykonywanie zapytań obęjmujących wiele relacji . . . . . . . . . 299
5.2.5. Suma, przecięcie oraz różnica zapytań . . . . . . . . . . . . . . . 302
5.2.6. Ćwiczenia do podrozdziału 5.2 . . . . . . . . . . . . . . . . . . . 304
5.3. Podzapytania . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
5.3.1. Podzapytania, które umożliwiają obliczenie wartości skalarnych . . . 306 5.3.2. Warunki obejmujące relacje . . . . . . . . . . . . . . . . . . . . 308 5.3.3. Wyrażenia dotyczące krotek . . . . . . . . . . . . . . . . . . . . 308 5.3.4. Podzapytania skorelowane . . . . . . . . . . . . . . . . . . . . . 311 5.3.5. Ćwiczenia do podrozdziału 5.3 . . . . . . . . . . . . . . . . . . . 312
5.4. Powtórzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
5.4.1. Eliminowanie powtórzeń . . . . . . . . . . . . . . . . . . . . . . 314
5.4.2. Powtórzenia w sumach, przecięciach oraz różnicach. . . . . . . . . 315
5.4.3. Ćwiczenia do podrozdziału 5.4 . . . . . . . . . . . . . . . . . . . 316
S.S. Agregowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
5.5.1. Operatory agregowania. . . . . . . . . . . . . . . . . . . . . . . 317
5.5.2. Grupowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
5.5.3. Klauzula HAVING . . . . . . . . . . . . . . . . . . . . . . . . . 321
5.5.4. Ćwiczenia do podrozdziału 5.5 . . . . . . . . . . . . . . . . . . . 322
5.6. Modyfikacje bazy danych . . . . . . . . . . . . . . . . . . . . . 323
5.6.1. Wstawianie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
5.6.2. Usuwanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
5.6.3. Aktualizacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
5.6.4. Ćwiczenia do podrozdziału 5.6 . . . . . . . . . . . . . . . . . . . 329
5.7. Definiowanie schematu relacji w języku SQL . . . . . . . . . . 330
5.7.1. Typy danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
5.7.2. Proste deklaracje tabel . . . . . . . . . . . . . . . . . . . . . . . 332
5.7.3. Usuwanie tabel . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
5.7.4. Zmiany schematów relacji . . . . . . . . . . . . . . . . . . . . . 333
5.7.5. Wartości domniemane . . . . . . . . . . . . . . . . . . . . . . . 334
5.7.6. Dziedziny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
5.7.7. Indeksy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
5.7.8. Ćwiczenia do podrozdziału 5.7 . . . . . . . . . . . . . . . . . . . 339
5.8. Definiowanie perspektyw . . . . . . . . . . . . . . . . . . . . . 340
5.8.1. Deklarowanie perspektyw . . . . . . . . . . . . . . . . . . . . . 340
5.8.2. Zapytania określane na perspektywach . . . . . . . . . . . . . . . 341
5.8.3. Przemianowanie atrybutów . . . . . . . . . . . . . . . . . . . . . 344
5.8.4. Modyfikowanie perspektyw . . . . . . . . . . . . . . . . . . . . 344
5.8.5. Interpretowanie zapytań, które działają na perspektywach . . . . . . 348
5.8.6. Ćwiczenia do podrozdziału 5.8 . . . . . . . . . . . . . . . . . . . 351
5.9. Wartości NULL oraz złączenia zewnętrzne . . . . . . . . . . . 352
5.9.1. Działania na wartości NULL . . . . . . . . . . . . . . . . . . . . 352
SPIS TREŚCI I S
5.9.2. Wartość logiczna UNKNOWN . . . . . . . . . . . . . . . . . . . 354
5.9.3. Wyrażanie złączeń w języku SQL2 . . . . . . . . . . . . . . . . . 356
5.9.4. Złączenie naturalne. . . . . . . . . . . . . . . . . . . . . . . . . 357
5.9.5. Złączenia zewnętrzne. . . . . . . . . . . . . . . . . . . . . . . . 358
5.9.6. Ćwiczenia do podrozdziału 5.9 . . . . . . . . . . . . . . . . . . . 361
5.10. Rekurencja w języku SQL. . . . . . . . . . . . . . . . . . . . . 362
5.10.1. Definiowanie relacji typu IDB w języku SQL3 . . . . . . . . . . . 363
5.10.2. Rekurencja liniowa. . . . . . . . . . . . . . . . . . . . . . . . . 366
5.10.3. Instrukcja WITH i perspektywy. . . . . . . . . . . . . . . . . . . 367
5.10.4. Negacja warstwowa . . . . . . . . . . . . . . . . . . . . . . . . 368
5.10.5. Wyrażenia wątpliwe w języku SQL3 . . . . . . . . . . . . . . . . 370
5.10.6. Ćwiczenia do podrozdziału 5.10 . . . . . . . . . . . . . . . . . . 373
5.11. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 5.12. Literatura do rozdziału S . . . . . . . . . . . . . . . . . . . . . 376
6
Więzy i wyzwalacze w języku SQL. . . . . . . . . . . . . . . . . 378
6.1. Klucze w języku SQL . . . . . . . . . . . . . . . . . . . . . . . 379 6.1.l . Definiowanie kluczy . . . . . . . . . . . . . . . . . . . . . . . . 379 6.1.2. Wymuszanie więzów klucza . . . . . . . . . . . . . . . . . . . . 381 6.1.3. Ćwiczenia do podrozdziału 6.1 . . . . . . . . . . . . . . . . . . . 382
6.2. Integralność referencyjna i klucze obce . . . . . . . . . . . . . 382 6.2.1. Deklarowanie więzów klucza obcego . . . . . . . . . . . . . . . . 383 6.2.2. Przestrzeganie zasad więzów integralności referencyjnej. . . . . . . 385 6.2.3. Ćwiczenia do podrozdziału 6.2 . . . . . . . . . . . . . . . . . . . 387
6.3. Więzy wartości atrybutów. . . . . . . . . . . . . . . . . . . . . 388
6.3.1. Więzy NOT-NULL. . . . . . . . . . . . . . . . . . . . . . . . . 389 6.3.2. Więzy CHECK. . . . . . . . . . . . . . . . . . . . . . . . . . . 390 6.3.3. Więzy dziedziny . . . . . . . . . . . . . . . . . . . . . . . . . . 392 6.3.4. Ćwiczenia do podrozdziału 6.3 . . . . . . . . . . . . . . . . . . . 393
6.4. Więzy globalne. . . . . . . . . . . . . . . . . . . . . . . . . . . 394 6.4.1. Krotkowe więzy CHECK. . . . . . . . . . . . . . . . . . . . . . 394 6.4.2. Asercje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 6.4.3. Ćwiczenia do podrozdziału 6.4 . . . . . . . . . . . . . . . . . . . 399
6.5. Modyfikowanie więzów . . . . . . . . . . . . . . . . . . . . . . 401
6.5.1. Nadawanie nazw więzom. . . . . . . . . . . . . . . . . . . . . . 401
6.5.2. Modyfikowanie więzów określonych dla tabel . . . . . . . . . . . 402
6.5.3. Zmiany więzów dziedziny . . . . . . . . . . . . . . . . . . . . . 404
6.5.4. Modyfikowanie asercji . . . . . . . . . . . . . . . . . . . . . . . 404
6.5.5. Ćwiczenia do podrozdziału 6.5 . . . . . . . . . . . . . . . . . . . 405
6.6. Wyzwalacze w języku SQL3 . . . . . . . . . . . . . . . . . . . 405 6.6.1. Wyzwalacze a więzy . . . . . . . . . . . . . . . . . . . . . . . . 406 6.6.2. Wyzwalacze w języku SQL3 . . . . . . . . . . . . . . . . . . . . 407
16
SPIS TREŚCI
6.6.3. Asercje wjęzyku SQL3. . . . . . . . . . . . . . . . . . . . . . . 410 6.6.4. Ćwiczenia do podrozdziału 6.6 . . . . . . . . . . . . . . . . . . . 412
6.7. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 6.8. Literatura do rozdziału 6 . . . . . . . . . . . . . . . . . . . . . 414
Systemowe aspekty języka SQL. . . . . . . . . . . . . . . . . . . 415
7.1. SQL w środowisku programistycznym. . . . . . . . . . . . . . 415
7.1.1. Problem niedopasowania falowego . . . . . . . . . . . . . . . . . 417
7.1.2. Interfejs między językiem SQL i językiem podstawowym . . . . . . 418
7.1.3. Sekcja DECLARE . . . . . . . . . . . . . . . . . . . . . . . . . 418
7.1.4. Stosowanie zmiennych dzielonych . . . . . . . . . . . . . . . . . 419
7.1.5. Instrukcje wyboru pojedynczych wierszy . . . . . . . . . . . . . . 421
7.1.6. Kursory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
7.1.7. Dokonywanie modyfikacji za pomocą kursorów. . . . . . . . . . . 425
7.1.8. Opcje kursora . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
7.1.9. Określanie kolęjności wczytywania krotek . . . . . . . . . . . . . 427
7.1.10. Ochrona przed j ednoczesnymi modytikacj ami . . . . . . . . . . . . 428
7.1.11. Przewijanie kursora . . . . . . . . . . . . . . . . . . . . . . . . 429
7.1.12. Dynamiczny SQL . . . . . . . . . . . . . . . . . . . . . . . . . 430
7.1.13. Ćwiczenia do podrozdziału 7.1 . . . . . . . . . . . . . . . . . . . 432
7.2. Transakcje w języku SQL . . . . . . . . . . . . . . . . . . . . . 434
7.2.1. Szeregowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
7.2.2. Niepodzielność. . . . . . . . . . . . . . . . . . . . . . . . . . . 437
7.2.3. Transakcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
7.2.4. Transakcje tylko do odczytu . . . . . . . . . . . . . . . . . . . . 440
7.2.5. Czytanie brudnopisu . . . . . . . . . . . . . . . . . . . . . . . . 442
7.2.6. Inne poziomy izolacji. . . . . . . . . . . . . . . . . . . . . . . . 444
7.2.7. Ćwiczenia do podrozdziału 7.2 . . . . . . . . . . . . . . . . . . . 446
7.3. Środowisko SQL . . . . . . . . . . . . . . . . . . . . . . . . . . 447
7.3.1. Srodowiska. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
7.3.2. Schematy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
7.3.3. Katalogi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
7.3.4. Klient-serwer w środowisku SQL . . . . . . . . . . . . . . . . . . 451
7.3.5. Połączenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
7.3.6. Sesje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
7.3.7. Moduły . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
7.4. Bezpieczeustwo i autoryzacja użytkownika w języku SQL2 . . 454
7.4.1. Prawa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
7.4.2. Tworzenie praw . . . . . . . . . . . . . . . . . . . . . . . . . . 455
7.4.3. Procedura sprawdzania praw dostępu . . . . . . . . . . . . . . . . 456
7.4.4. Nadawanie praw . . . . . . . . . . . . . . . . . . . . . . . . . . 458
7.4.5. Diagram GRANT . . . . . . . . . . . . . . . . . . . . . . . . . 460
7.4.6. Odbieranie praw . . . . . . . . . . . . . . . . . . . . . . . . . . 461
7.4.7. Ćwiczenia do podrozdziału 7.4 . . . . . . . . . . . . . . . . . . . 465
SPIS TRESCI I %
7.5. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 7.6. Literatura do rozdziału 7 . . . . . . . . . . . . . . . . . . . . . 468
ó
Zorientowane obiektowo języki zapytań . . . . . . . . . . . . . . 469
8.1. Elem enty zapytań w języku ODL. . . . . . . . . . . . . . . . . 470
8.1.1. Działania na obiektach . . . . . . . . . . . . . . . . . . . . . . . 470
8.1.2. Deklarowanie sygnatur metod . . . . . . . . . . . . . . . . . . . 471
8.1.3. Zasięg klasy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
8.1.4. Cwiczenia do podrozdziału 8.1 . . . . . . . . . . . . . . . . . . . 474
8.2. Wprowadzenie do języka OQL . . . . . . . . . . . . . . . . . . 476
8.2.1. Obiektowa wersja przykładu filmowego. . . . . . . . . . . . . . . 477
8.2.2. System typów . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
8.2.3. Wyrażenia ścieżkowe. . . . . . . . . . . . . . . . . . . . . . . . 479
8.2.4. Wyrażenia typu Select-Prom-Where . . . . . . . . . . . . . . . . 480
8.2.5. Eliminowanie powtórzeń . . . . . . . . . . . . . . . . . . . . . . 482
8.2.6. Złożone typy wyjścia. . . . . . . . . . . . . . . . . . . . . . . . 482
8.2.7. Podzapytania. . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
8.2.8. Porządkowanie wyniku . . . . . . . . . . . . . . . . . . . . . . . 484
8.2.9. Ćwiczenia do podrozdziału 8.2 . . . . . . . . . . . . . . . . . . . 485
8.3. Dodatkowe postacie wyrażeń w języku OQL . . . . . . . . . . 486
8.3.1. Wyrażenia kwantyfikowane . . . . . . . . . . . . . . . . . . . . 486
8.3.2. Wyrażenia agregujące . . . . . . . . . . . . . . . . . . . . . . . 487
8.3.3. Wyrażenia GROUP BY . . . . . . . . . . . . . . . . . . . . . . 488
8.3.4. Klauzula HAVING . . . . . . . . . . . . . . . . . . . . . . . . . 491
8.3.5. Operatory algebry zbiorów . . . . . . . . . . . . . . . . . . . . . 491
8.3.6. Ćwiczenia do podrozdziału 8.3 . . . . . . . . . . . . . . . . . . . 493
8.4. Tworzenie i przypisywanie obiektów w języku OQL . . . . . . 493
8.4.1. Przypisywanie wartości zmiennym języka podstawowego . . . . . . 494
8.4.2. Wydobywanie elementu z kolekcji . . . . . . . . . . . . . . . . . 494
8.4.3. Wydobywanie poszczególnych elementów kolekcji . . . . . . . . . 495
8.4.4. Tworzenie nowych obiektów . . . . . . . . . . . . . . . . . . . . 496
8.4.5. Ćwiczenia do podrozdziału 8.4 . . . . . . . . . . . . . . . . . . . 498
8.5. Obiekty krotkowe w języku SQL3 . . . . . . . . . . . . . . . . 499
8.5.1. Typ wiersza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
8.5.2. Deklarowanie relacji z typem wiersza. . . . . . . . . . . . . . . . 501
8.5.3. Dostęp do składowych typu wiersza. . . . . . . . . . . . . . . . . 501
8.5.4. Referencje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
8.5.5. Następstwo referencji. . . . . . . . . . . . . . . . . . . . . . . . 504
8.5.6. Zakres referencji . . . . . . . . . . . . . . . . . . . . . . . . . . 505
8.5.7. Identyfikatory obiektów jako wartości . . . . . . . . . . . . . . . 506
8.5.8. Ćwiczenia do podrozdziału 8.5 . . . . . . . . . . . . . . . . . . . 509
8.6. Abstrakcyjne typy danych w języku SQL3 . . . . . . . . . . . 510 8.6.1. Definiowanie abstrakcyjnych typów danych. . . . . . . . . . . . . 510 8.6.2. Definiowanie metod dla typów ADT . . . . . . . . . . . . . . . . 514
18
SPIS TREŚCI
8.6.3. Funkcje zewnętrzne . . . . . . . . . . . . . . . . . . . . . . . . 517 8.6.4. Ćwiczenia do podrozdziału 8.6 . . . . . . . . . . . . . . . . . . . 518
8.7. Porównanie koncepcji systemów ODL/OQL i SQL3 . . . . . . 519 8.8. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 8.9. Literatura do rozdziału 8 . . . . . . . . . . . . . . . . . . . . . 522 Skorowidz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523

Zgłoś problem

Użyj poniższego formularza aby zgłosić ewentualne problemy z plikami udostępnianymi na tej stronie. Opisz dokładnie problem i wskaż czego on dotyczy.

Przejdź do listy książek
Centrum Wsparcia Dydaktyki
Biuro ds. Osób z Niepełnosprawnościami
ul. Dobra 55,
00-312 Warszawa
Pokój 0.070 Parter
tel. 22 55 24 222
fax. 22 55 20 224
email: bon@uw.edu.pl

Strona główna BON: www.bon.uw.edu.pl
  • Deklaracja Dostępności
  • O Akademickiej Bibliotece Cyfrowej
  • Regulamin Nowej ABC

Fundusze Europejskie Uniwersytet Warszawski Level UP Unia Europejska

Fundusze Europejskie Uniwersytet Warszawski

Level UP Unia Europejska

Nowa konwersja dostępna jest na Twojej półce

Wykonała się konwersja pliku, którą zleciłeś.

Przejdź na półkę Konwersje aby pobrać plik.

Nowa konwersja dostępna jest na Twojej półce

Wykonała się podgląd pliku, który zleciłeś.

Przejdź na półkę Zbiory przeglądane on-line aby skorzystać z czytnika on-line.