85

Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji
Page 2: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

Idź do

• Spis treści• Przykładowy rozdział• Skorowidz

• Katalog online

• Dodaj do koszyka

• Zamów cennik

• Zamów informacjeo nowościach

• Fragmenty książekonline

Helion SAul. Kościuszki 1c44-100 Gliwicetel. 32 230 98 63e-mail: [email protected]© Helion 1991–2011

Katalog książek

Twój koszyk

Cennik i informacje

Czytelnia

Kontakt

• Zamów drukowanykatalog

Systemy baz danych.Kompletny podręcznik.Wydanie IIAutorzy: Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom

Tłumaczenie: Tomasz Walczak

ISBN: 978-83-246-3303-6

Tytuł oryginału: Database Systems: The Complete Book (2nd Edition)

Format: 172×245, stron: 1048

Pierwsze tak szczegółowe, kompleksowe wprowadzenie!Trzej znani naukowcy z dziedziny IT nauczą Cię:

• profesjonalnego projektowania i korzystania z baz danych

• tworzenia i wdrażania złożonych aplikacji bazodanowych

• sprawnej implementacji systemów zarządzania bazami danych

Z kluczowej roli, jaką bazy danych odgrywają w codziennym życiu milionów ludzi, zdajemy sobie

sprawę za każdym razem, gdy wpisujemy hasło w wyszukiwarce Google, robimy zakupy

w internetowej księgarni czy logujemy się do swojego konta w banku. Szybkie, bezpieczne

i niezawodne przetwarzanie oraz przechowywanie ogromnych ilości informacji stało się dziś

strategicznym czynnikiem funkcjonowania większości firm, organizacji i instytucji państwowych.

Ten ogromny potencjał współczesnych baz danych jest dziś sumą wiedzy i technologii rozwijanych

przez kilka ostatnich dziesięcioleci. Owocem tych prac jest przede wszystkim wyspecjalizowane

oprogramowanie – systemy zarządzania bazami danych DBMS, czyli rozbudowane narzędzia do

wydajnego tworzenia dużych zbiorów informacji i zarządzania nimi. Niestety, mają one jedną

zasadniczą wadę – należą do najbardziej złożonych rodzajów oprogramowania!

W związku z tym trzech znanych naukowców w dziedzinie IT z Uniwersytetu Stanforda. Hector

Garcia-Molina, Jeffrey D. Ullman i Jennifer Widom – postanowiło stworzyć pierwszy tak

kompletny podręcznik, wprowadzający do systemów baz danych. Zawiera on opis najnowszych

standardów bazy danych SQL 1999, SQL/PSM, SQL/CLI, JDBC, ODL oraz XML – i to w znacznie

szerszym zakresie niż w większości publikacji. Podręcznik został przygotowany w taki sposób,

aby po jego przeczytaniu użytkowanie czy projektowanie baz danych, pisanie programów

w różnych językach związanych z systemami DBMS oraz ich sprawna implementacja nie stanowiły

dla Czytelnika najmniejszego problemu!

Kompleksowe podejście do systemów baz danychz punktu widzenia projektanta, użytkownika i programisty

Page 3: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

Spis tre�ci

Wst�p ..........................................................................................................................25

O autorach ...................................................................................................................29

1. �wiat systemów baz danych ..................................................................................311.1. Ewolucja systemów baz danych ...........................................................................................................31

1.1.1. Wczesne systemy zarz�dzania bazami danych .........................................................................321.1.2. Relacyjne systemy baz danych ...................................................................................................321.1.3. Coraz mniejsze systemy ..............................................................................................................331.1.4. Coraz wi�ksze systemy ................................................................................................................331.1.5. Integrowanie informacji .............................................................................................................34

1.2. Elementy systemu zarz�dzania bazami danych .................................................................................341.2.1. Polecenia w j�zyku definicji danych .........................................................................................341.2.2. Omówienie przetwarzania zapyta� ...........................................................................................351.2.3. Zarz�dzanie pami�ci� i buforem ...............................................................................................361.2.4. Przetwarzanie transakcji ............................................................................................................371.2.5. Procesor zapyta� .........................................................................................................................38

1.3. Zarys dziedziny systemów baz danych ...............................................................................................381.4. Literatura do rozdzia�u 1. .....................................................................................................................40

I Modelowanie relacyjnych baz danych .............................................412. Relacyjny model danych ........................................................................................43

2.1. Przegl�d modeli danych .......................................................................................................................432.1.1. Czym jest model danych? ...........................................................................................................432.1.2. Wa�ne modele danych ................................................................................................................442.1.3. Krótki opis modelu relacyjnego ................................................................................................442.1.4. Krótki opis modelu semistrukturalnego ..................................................................................452.1.5. Inne modele danych ...................................................................................................................462.1.6. Porównanie podej�� do modelowania .......................................................................................46

2.2. Podstawy modelu relacyjnego ..............................................................................................................472.2.1. Atrybuty .......................................................................................................................................472.2.2. Schematy ......................................................................................................................................472.2.3. Krotki ...........................................................................................................................................482.2.4. Dziedziny .....................................................................................................................................482.2.5. Równowa�ne reprezentacje relacji ............................................................................................49

Page 4: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

4 SPIS TRECI

2.2.6. Egzemplarze relacji .....................................................................................................................492.2.7. Klucze relacji ...............................................................................................................................492.2.8. Przyk�adowy schemat bazy danych ...........................................................................................502.2.9. wiczenia do podrozdzia�u 2.2 ..................................................................................................52

2.3. Definiowanie schematu relacji w j�zyku SQL ...................................................................................532.3.1. Relacje w SQL-u .........................................................................................................................532.3.2. Typy danych ................................................................................................................................542.3.3. Proste deklaracje tabel ................................................................................................................552.3.4. Modyfikowanie schematów relacji ............................................................................................562.3.5. Warto�ci domy�lne .....................................................................................................................572.3.6. Deklarowanie kluczy ..................................................................................................................572.3.7. wiczenia do podrozdzia�u 2.3 ..................................................................................................59

2.4. Algebraiczny j�zyk zapyta� ..................................................................................................................602.4.1. Dlaczego potrzebujemy specjalnego j�zyka zapyta�? ..............................................................612.4.2. Czym jest algebra? .......................................................................................................................612.4.3. Przegl�d algebry relacji ..............................................................................................................612.4.4. Operacje specyficzne dla zbiorów wykonywane na relacjach .................................................622.4.5. Projekcja ......................................................................................................................................632.4.6. Selekcja .........................................................................................................................................642.4.7. Iloczyn kartezja�ski ....................................................................................................................652.4.8. Z��czenia naturalne ....................................................................................................................652.4.9. Z��czenia warunkowe .................................................................................................................682.4.10. ��czenie operacji w celu tworzenia zapyta� ..........................................................................692.4.11. Nadawanie i zmienianie nazw .................................................................................................702.4.12. Zale�no�ci mi�dzy operacjami .................................................................................................712.4.13. Notacja liniowa wyra�e� algebraicznych ................................................................................722.4.14. wiczenia do podrozdzia�u 2.4 ................................................................................................73

2.5. Wi�zy relacji ..........................................................................................................................................792.5.1. Algebra relacji jako j�zyk wi�zów ..............................................................................................792.5.2. Wi�zy integralno�ci referencyjnej .............................................................................................802.5.3. Wi�zy klucza ................................................................................................................................812.5.4. Inne przyk�ady dotycz�ce wi�zów .............................................................................................822.5.5. wiczenia do podrozdzia�u 2.5 ..................................................................................................82

2.6. Podsumowanie rozdzia�u 2. .................................................................................................................832.7. Literatura do rozdzia�u 2. .....................................................................................................................84

3. Teoria projektowania relacyjnych baz danych ...................................................853.1. Zale�no�ci funkcyjne ............................................................................................................................85

3.1.1. Definicja zale�no�ci funkcyjnej .................................................................................................863.1.2. Klucze relacji ...............................................................................................................................873.1.3. Nadklucze ....................................................................................................................................883.1.4. wiczenia do podrozdzia�u 3.1 ..................................................................................................89

3.2. Regu�y dotycz�ce zale�no�ci funkcyjnych ..........................................................................................893.2.1. Wnioskowanie na temat zale�no�ci funkcyjnych ....................................................................903.2.2. Regu�a podzia�u i ��czenia .........................................................................................................903.2.3. Trywialne zale�no�ci funkcyjne ................................................................................................913.2.4. Obliczanie domkni�cia atrybutów ............................................................................................923.2.5. Dlaczego algorytm obliczania domkni�� dzia�a? .....................................................................943.2.6. Regu�a przechodnio�ci ...............................................................................................................963.2.7. Domykanie zbiorów zale�no�ci funkcyjnych ...........................................................................973.2.8. Projekcje zale�no�ci funkcyjnych ..............................................................................................983.2.9. wiczenia do podrozdzia�u 3.2 ..................................................................................................99

Page 5: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 5

3.3. Projektowanie schematów relacyjnych baz danych .........................................................................1013.3.1. Anomalie ....................................................................................................................................1013.3.2. Dekompozycja relacji ...............................................................................................................1023.3.3. Posta� normalna Boyce’a-Codda .............................................................................................1033.3.4. Dekompozycja do BCNF .........................................................................................................1043.3.5. wiczenia do podrozdzia�u 3.3 ................................................................................................107

3.4. Dekompozycja — dobre, z�e i okropne skutki .................................................................................1083.4.1. Odzyskiwanie informacji po dekompozycji ...........................................................................1083.4.2. Test dla z��cze� bezstratnych oparty na algorytmie chase ...................................................1113.4.3. Dlaczego algorytm chase dzia�a? .............................................................................................1133.4.4. Zachowywanie zale�no�ci .........................................................................................................1143.4.5. wiczenia do podrozdzia�u 3.4 ................................................................................................115

3.5. Trzecia posta� normalna ....................................................................................................................1163.5.1. Definicja trzeciej postaci normalnej .......................................................................................1163.5.2. Algorytm syntezy do schematów o trzeciej postaci normalnej ............................................1173.5.3. Dlaczego algorytm syntezy do 3NF dzia�a? ...........................................................................1183.5.4. wiczenia do podrozdzia�u 3.5 ................................................................................................118

3.6. Zale�no�ci wielowarto�ciowe .............................................................................................................1193.6.1. Niezale�no�� atrybutów i wynikaj�ca z tego nadmiarowo�� .................................................1193.6.2. Definicja zale�no�ci wielowarto�ciowej ..................................................................................1203.6.3. Wnioskowanie na temat ZW ...................................................................................................1213.6.4. Czwarta posta� normalna .........................................................................................................1233.6.5. Dekompozycja do czwartej postaci normalnej .......................................................................1243.6.6. Zwi�zki mi�dzy postaciami normalnymi ...............................................................................1253.6.7. wiczenia do podrozdzia�u 3.6 ................................................................................................126

3.7. Algorytm wyprowadzania ZW ...........................................................................................................1273.7.1. Domkni�cie i algorytm chase ..................................................................................................1273.7.2. Rozszerzanie algorytmu chase na ZW ....................................................................................1283.7.3. Dlaczego algorytm chase dzia�a dla ZW? ...............................................................................1303.7.4. Projekcje ZW .............................................................................................................................1313.7.5. wiczenia do podrozdzia�u 3.7 ................................................................................................132

3.8. Podsumowanie rozdzia�u 3. ...............................................................................................................1323.9. Literatura do rozdzia�u 3. ...................................................................................................................134

4. Wysokopoziomowe modele baz danych ............................................................1354.1. Model zwi�zków encji .........................................................................................................................136

4.1.1. Zbiory encji ...............................................................................................................................1364.1.2. Atrybuty .....................................................................................................................................1364.1.3. Zwi�zki .......................................................................................................................................1374.1.4. Diagramy ER .............................................................................................................................1374.1.5. Egzemplarze diagramów ER ....................................................................................................1384.1.6. Krotno�� w zwi�zkach binarnych w modelu ER ...................................................................1394.1.7. Zwi�zki wieloargumentowe .....................................................................................................1394.1.8. Role w zwi�zkach ......................................................................................................................1404.1.9. Atrybuty zwi�zków ...................................................................................................................1424.1.10. Przekszta�canie zwi�zków wieloargumentowych na binarne .............................................1434.1.11. Podklasy w modelu ER ...........................................................................................................1444.1.12. wiczenia do podrozdzia�u 4.1 ..............................................................................................146

4.2. Zasady projektowania .........................................................................................................................1484.2.1. Wierno�� ....................................................................................................................................1484.2.2. Unikanie nadmiarowo�ci .........................................................................................................1494.2.3. Prostota ma znaczenie ..............................................................................................................149

Page 6: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

6 SPIS TRECI

4.2.4. Wybór odpowiednich zwi�zków ..............................................................................................1494.2.5. Wybór elementów odpowiedniego rodzaju ............................................................................1514.2.6. wiczenia do podrozdzia�u 4.2 ................................................................................................153

4.3. Wi�zy w modelu ER ............................................................................................................................1554.3.1. Klucze w modelu ER ................................................................................................................1554.3.2. Reprezentowanie kluczy w modelu ER ..................................................................................1554.3.3. Integralno�� referencyjna .........................................................................................................1564.3.4. Wi�zy stopni ..............................................................................................................................1574.3.5. wiczenia do podrozdzia�u 4.3 ................................................................................................157

4.4. S�abe zbiory encji ................................................................................................................................1584.4.1. Przyczyny tworzenia s�abych zbiorów encji ...........................................................................1584.4.2. Wymogi zwi�zane ze s�abymi zbiorami encji ........................................................................1604.4.3. Notacja do opisu s�abych zbiorów encji ..................................................................................1614.4.4. wiczenia do podrozdzia�u 4.4 ................................................................................................161

4.5. Z diagramów ER na projekty relacyjne ............................................................................................1624.5.1. Ze zbiorów encji na relacje .......................................................................................................1624.5.2. Ze zwi�zków ER na relacje .......................................................................................................1634.5.3. ��czenie relacji .........................................................................................................................1654.5.4. Przekszta�canie s�abych zbiorów encji ....................................................................................1664.5.5. wiczenia do podrozdzia�u 4.5 ................................................................................................168

4.6. Przekszta�canie struktur podklas na relacje .....................................................................................1694.6.1. Przekszta�canie w stylu modelu ER ........................................................................................1704.6.2. Podej�cie obiektowe ..................................................................................................................1714.6.3. Stosowanie warto�ci null do ��czenia relacji ..........................................................................1714.6.4. Porównanie podej�� ..................................................................................................................1724.6.5. wiczenia do podrozdzia�u 4.6 ................................................................................................173

4.7. J�zyk UML ..........................................................................................................................................1744.7.1. Klasy w j�zyku UML ................................................................................................................1744.7.2. Klucze klas w UML-u ..............................................................................................................1754.7.3. Asocjacje ....................................................................................................................................1754.7.4. Asocjacje zwrotne ......................................................................................................................1774.7.5. Klasy asocjacji ...........................................................................................................................1774.7.6. Podklasy w UML-u ...................................................................................................................1784.7.7. Agregacje i kompozycje ............................................................................................................1794.7.8. wiczenia do podrozdzia�u 4.7 ................................................................................................180

4.8. Z diagramów UML na relacje ............................................................................................................1814.8.1. Podstawy przekszta�cania diagramów UML na relacje .........................................................1814.8.2. Z podklas w UML-u na relacje ................................................................................................1814.8.3. Z agregacji i kompozycji na relacje .........................................................................................1824.8.4. Odpowiednik s�abych zbiorów encji w UML-u .....................................................................1834.8.5. wiczenia do podrozdzia�u 4.8 ................................................................................................184

4.9. J�zyk ODL ...........................................................................................................................................1844.9.1. Deklaracje klas ..........................................................................................................................1844.9.2. Atrybuty w ODL-u ...................................................................................................................1854.9.3. Zwi�zki w ODL-u .....................................................................................................................1864.9.4. Zwi�zki zwrotne ........................................................................................................................1864.9.5. Krotno�� zwi�zków ...................................................................................................................1874.9.6. Typy w ODL-u ..........................................................................................................................1884.9.7. Podklasy w ODL-u ...................................................................................................................1904.9.8. Deklarowanie kluczy w ODL-u ...............................................................................................1904.9.9. wiczenia do podrozdzia�u 4.9 ................................................................................................192

Page 7: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 7

4.10. Z projektów w ODL-u na projekty relacyjne .................................................................................1924.10.1. Z klas w ODL-u na relacje .....................................................................................................1934.10.2. Atrybuty z�o�one w klasach ...................................................................................................1934.10.3. Przedstawianie atrybutów warto�ci w formie zbioru ..........................................................1944.10.4. Reprezentowanie innych konstruktorów typów ..................................................................1954.10.5. Przedstawianie zwi�zków w ODL-u .....................................................................................1974.10.6. wiczenia do podrozdzia�u 4.10 ............................................................................................197

4.11. Podsumowanie rozdzia�u 4. .............................................................................................................1984.12. Literatura do rozdzia�u 4. .................................................................................................................200

II Programowanie relacyjnych baz danych ........................................201

5. Algebraiczne i logiczne j�zyki zapyta� ..............................................................2035.1. Operacje relacyjne na wielozbiorach .................................................................................................203

5.1.1. Dlaczego wielozbiory? ..............................................................................................................2045.1.2. Suma, cz��� wspólna i ró�nica dla wielozbiorów ...................................................................2055.1.3. Projekcje wielozbiorów .............................................................................................................2065.1.4. Selekcja na wielozbiorach ........................................................................................................2075.1.5. Iloczyn kartezja�ski wielozbiorów ..........................................................................................2075.1.6. Z��czenia wielozbiorów ............................................................................................................2085.1.7. wiczenia do podrozdzia�u 5.1 ................................................................................................209

5.2. Dodatkowe operatory algebry relacji ................................................................................................2105.2.1. Eliminowanie powtórze� .........................................................................................................2115.2.2. Operatory agregacji ...................................................................................................................2115.2.3. Grupowanie ...............................................................................................................................2125.2.4. Operator grupowania ................................................................................................................2135.2.5. Rozszerzanie operatora projekcji .............................................................................................2145.2.6. Operator sortowania .................................................................................................................2155.2.7. Z��czenia zewn�trzne ...............................................................................................................2165.2.8. wiczenia do podrozdzia�u 5.2 ................................................................................................218

5.3. Logika relacji .......................................................................................................................................2195.3.1. Predykaty i atomy .....................................................................................................................2195.3.2. Atomy arytmetyczne .................................................................................................................2205.3.3. Regu�y i zapytania w Datalogu ................................................................................................2205.3.4. Znaczenie regu� Datalogu ........................................................................................................2215.3.5. Predykaty ekstensjonalne i intensjonalne ..............................................................................2235.3.6. Regu�y Datalogu stosowane do wielozbiorów ........................................................................2245.3.7. wiczenia do podrozdzia�u 5.3 ................................................................................................225

5.4. Algebra relacji i Datalog .....................................................................................................................2265.4.1. Operacje logiczne ......................................................................................................................2265.4.2. Projekcja ....................................................................................................................................2275.4.3. Selekcja .......................................................................................................................................2285.4.4. Iloczyn kartezja�ski ..................................................................................................................2305.4.5. Z��czenia ....................................................................................................................................2305.4.6. Symulowanie w Datalogu operacji z�o�onych ........................................................................2315.4.7. Porównanie Datalogu i algebry relacji ....................................................................................2325.4.8. wiczenia do podrozdzia�u 5.4 ................................................................................................233

5.5. Podsumowanie rozdzia�u 5. ...............................................................................................................2345.6. Literatura do rozdzia�u 5. ...................................................................................................................235

Page 8: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

8 SPIS TRECI

6. SQL — j�zyk baz danych .....................................................................................2376.1. Proste zapytania w SQL-u ..................................................................................................................238

6.1.1. Projekcje w SQL-u ....................................................................................................................2406.1.2. Selekcja w SQL-u ......................................................................................................................2426.1.3. Porównywanie �a�cuchów znaków .........................................................................................2436.1.4. Dopasowywanie wzorców w SQL-u ........................................................................................2436.1.5. Data i czas ..................................................................................................................................2446.1.6. Warto�ci NULL i porównania z takimi warto�ciami ............................................................2456.1.7. Warto�� logiczna UNKNOWN ...............................................................................................2466.1.8. Porz�dkowanie danych wyj�ciowych ......................................................................................2486.1.9. wiczenia do podrozdzia�u 6.1 ................................................................................................249

6.2. Zapytania obejmuj�ce wi�cej ni� jedn� relacj� .................................................................................2516.2.1. Iloczyn kartezja�ski i z��czenia w SQL-u ..............................................................................2516.2.2. Jednoznaczne okre�lanie atrybutów ........................................................................................2526.2.3. Zmienne krotkowe ....................................................................................................................2536.2.4. Przetwarzanie zapyta� obejmuj�cych wiele relacji ................................................................2546.2.5. Suma, cz��� wspólna i ró�nica zapyta� ...................................................................................2566.2.6. wiczenia do podrozdzia�u 6.2 ................................................................................................258

6.3. Podzapytania ........................................................................................................................................2596.3.1. Podzapytania zwracaj�ce warto�ci skalarne ............................................................................2606.3.2. Warunki dotycz�ce relacji ........................................................................................................2616.3.3. Warunki obejmuj�ce krotki .....................................................................................................2626.3.4. Podzapytania skorelowane .......................................................................................................2636.3.5. Podzapytania w klauzulach FROM ........................................................................................2646.3.6. Wyra�enia ze z��czeniami w SQL-u ........................................................................................2656.3.7. Z��czenia naturalne ..................................................................................................................2666.3.8. Z��czenia zewn�trzne ...............................................................................................................2676.3.9. wiczenia do podrozdzia�u 6.3 ................................................................................................269

6.4. Operacje na ca�ych relacjach ..............................................................................................................2716.4.1. Eliminowanie powtórze� .........................................................................................................2716.4.2. Powtórzenia w sumach, cz��ciach wspólnych i ró�nicach ....................................................2726.4.3. Grupowanie i agregacja w SQL-u ............................................................................................2736.4.4. Operatory agregacji ...................................................................................................................2736.4.5. Grupowanie ...............................................................................................................................2746.4.6. Grupowanie, agregacja i warto�ci null ....................................................................................2766.4.7. Klauzule HAVING ...................................................................................................................2776.4.8. wiczenia do podrozdzia�u 6.4 ................................................................................................278

6.5. Modyfikowanie bazy danych .............................................................................................................2796.5.1. Wstawianie .................................................................................................................................2796.5.2. Usuwanie ....................................................................................................................................2816.5.3. Aktualizowanie ..........................................................................................................................2826.5.4. wiczenia do podrozdzia�u 6.5 ................................................................................................283

6.6. Transakcje w SQL-u ...........................................................................................................................2846.6.1. Mo�liwo�� szeregowania operacji ............................................................................................2846.6.2. Atomowo�� ................................................................................................................................2866.6.3. Transakcje ..................................................................................................................................2866.6.4. Transakcje tylko do odczytu ....................................................................................................2876.6.5. Odczyt „brudnych danych” .....................................................................................................2886.6.6. Inne poziomy izolacji ...............................................................................................................2916.6.7. wiczenia do podrozdzia�u 6.6 ................................................................................................292

6.7. Podsumowanie rozdzia�u 6. ...............................................................................................................2936.8. Literatura do rozdzia�u 6. ...................................................................................................................294

Page 9: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 9

7. Wi�zy i wyzwalacze ..............................................................................................2957.1. Klucze zwyk�e i klucze obce ..............................................................................................................295

7.1.1. Deklarowanie wi�zów klucza obcego ......................................................................................2967.1.2. Zachowywanie integralno�ci referencyjnej ............................................................................2977.1.3. Odroczone sprawdzanie wi�zów ..............................................................................................2997.1.4. wiczenia do podrozdzia�u 7.1 ................................................................................................301

7.2. Wi�zy atrybutów i krotek ...................................................................................................................3027.2.1. Wi�zy NOT NULL ..................................................................................................................3027.2.2. Wi�zy CHECK atrybutów .......................................................................................................3037.2.3. Wi�zy CHECK krotek ..............................................................................................................3047.2.4. Porównanie wi�zów krotek i atrybutów .................................................................................3057.2.5. wiczenia do podrozdzia�u 7.2 ................................................................................................306

7.3. Modyfikowanie wi�zów ......................................................................................................................3077.3.1. Przypisywanie nazw wi�zom ....................................................................................................3077.3.2. Modyfikowanie wi�zów tabel ...................................................................................................3087.3.3. wiczenia do podrozdzia�u 7.3 ................................................................................................309

7.4. Asercje ..................................................................................................................................................3097.4.1. Tworzenie asercji ......................................................................................................................3107.4.2. Stosowanie asercji .....................................................................................................................3107.4.3. wiczenia do podrozdzia�u 7.4 ................................................................................................311

7.5. Wyzwalacze ..........................................................................................................................................3127.5.1. Wyzwalacze w SQL-u ...............................................................................................................3137.5.2. Mo�liwo�ci w zakresie projektowania wyzwalaczy ................................................................3147.5.3. wiczenia do podrozdzia�u 7.5 ................................................................................................317

7.6. Podsumowanie rozdzia�u 7. ...............................................................................................................3197.7. Literatura do rozdzia�u 7. ...................................................................................................................319

8. Widoki i indeksy ...................................................................................................3218.1. Widoki wirtualne ................................................................................................................................321

8.1.1. Deklarowanie widoków ............................................................................................................3218.1.2. Zapytania o widoki ...................................................................................................................3238.1.3. Zmienianie nazw atrybutów ....................................................................................................3238.1.4. wiczenia do podrozdzia�u 8.1 ................................................................................................324

8.2. Modyfikowanie widoków ...................................................................................................................3248.2.1. Usuwanie widoku ......................................................................................................................3248.2.2. Widoki modyfikowalne ............................................................................................................3258.2.3. Wyzwalacze INSTEAD OF dla widoków ..............................................................................3278.2.4. wiczenia do podrozdzia�u 8.2 ................................................................................................328

8.3. Indeksy w SQL-u ................................................................................................................................3298.3.1. Cel stosowania indeksów ..........................................................................................................3298.3.2. Deklarowanie indeksów ...........................................................................................................3308.3.3. wiczenia do podrozdzia�u 8.3 ................................................................................................331

8.4. Wybieranie indeksów .........................................................................................................................3318.4.1. Prosty model kosztów ...............................................................................................................3318.4.2. Wybrane przydatne indeksy ....................................................................................................3328.4.3. Obliczanie najlepszych indeksów ............................................................................................3338.4.4. Automatyczne wybieranie tworzonych indeksów .................................................................3368.4.5. wiczenia do podrozdzia�u 8.4 ................................................................................................337

8.5. Widoki zmaterializowane ...................................................................................................................3378.5.1. Przechowywanie widoku zmaterializowanego .......................................................................3388.5.2. Okresowa konserwacja widoków zmaterializowanych ..........................................................339

Page 10: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

10 SPIS TRECI

8.5.3. Modyfikowanie zapyta� w celu zastosowania widoków zmaterializowanych ....................3408.5.4. Automatyczne tworzenie widoków zmaterializowanych ......................................................3428.5.5. wiczenia do podrozdzia�u 8.5 ................................................................................................342

8.6. Podsumowanie rozdzia�u 8. ...............................................................................................................3438.7. Literatura do rozdzia�u 8. ...................................................................................................................344

9. SQL w �rodowisku serwerowym ........................................................................3459.1. Architektura trójwarstwowa ...............................................................................................................345

9.1.1. Warstwa serwerów WWW .......................................................................................................3469.1.2. Warstwa aplikacji ......................................................................................................................3479.1.3. Warstwa bazy danych ...............................................................................................................347

9.2. rodowisko SQL-a ..............................................................................................................................3489.2.1. rodowiska .................................................................................................................................3489.2.2. Schematy ....................................................................................................................................3499.2.3. Katalogi ......................................................................................................................................3509.2.4. Klienty i serwery w �rodowisku SQL-a ..................................................................................3509.2.5. Po��czenia ..................................................................................................................................3519.2.6. Sesje ............................................................................................................................................3529.2.7. Modu�y .......................................................................................................................................352

9.3. Interfejs ��cz�cy SQL z j�zykiem macierzystym ..............................................................................3539.3.1. Problem niezgodno�ci impedancji ..........................................................................................3549.3.2. ��czenie SQL-a z j�zykiem macierzystym .............................................................................3559.3.3. Sekcja DECLARE .....................................................................................................................3559.3.4. U�ywanie zmiennych wspólnych ............................................................................................3569.3.5. Jednowierszowe instrukcje SELECT ......................................................................................3579.3.6. Kursory ......................................................................................................................................3579.3.7. Modyfikowanie danych za pomoc� kursora ...........................................................................3599.3.8. Zabezpieczanie si� przed jednoczesnymi aktualizacjami ......................................................3609.3.9. Dynamiczny SQL .....................................................................................................................3619.3.10. wiczenia do podrozdzia�u 9.3 ..............................................................................................362

9.4. Procedury sk�adowane ........................................................................................................................3639.4.1. Tworzenie funkcji i procedur w PSM-ie ................................................................................3649.4.2. Wybrane proste formy instrukcji w PSM-ie ..........................................................................3659.4.3. Instrukcje rozga��ziaj�ce ..........................................................................................................3669.4.4. Zapytania w PSM-ie .................................................................................................................3679.4.5. P�tle w PSM-ie ..........................................................................................................................3689.4.6. P�tle FOR ..................................................................................................................................3709.4.7. Wyj�tki w PSM-ie .....................................................................................................................3719.4.8. Stosowanie funkcji i procedur PSM-a ....................................................................................3739.4.9. wiczenia do podrozdzia�u 9.4 ................................................................................................373

9.5. U�ywanie interfejsu poziomu wywo�a� ............................................................................................3759.5.1. Wprowadzenie do SQL/CLI ....................................................................................................3759.5.2. Przetwarzanie instrukcji ..........................................................................................................3779.5.3. Pobieranie danych z wyników zapytania ................................................................................3789.5.4. Przekazywanie parametrów do zapyta� ..................................................................................3809.5.5. wiczenia do podrozdzia�u 9.5 ................................................................................................381

9.6. Interfejs JDBC .....................................................................................................................................3819.6.1. Wprowadzenie do JDBC ..........................................................................................................3819.6.2. Tworzenie instrukcji w JDBC .................................................................................................3829.6.3. Operacje na kursorach w JDBC ...............................................................................................3849.6.4. Przekazywanie parametrów ......................................................................................................3859.6.5. wiczenia do podrozdzia�u 9.6 ................................................................................................385

Page 11: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 11

9.7. PHP ......................................................................................................................................................3859.7.1. Podstawy PHP ...........................................................................................................................3869.7.2. Tablice ........................................................................................................................................3879.7.3. Biblioteka DB z repozytorium PEAR .....................................................................................3879.7.4. Tworzenie po��czenia z baz� danych za pomoc� biblioteki DB ..........................................3889.7.5. Wykonywanie instrukcji SQL-a ..............................................................................................3889.7.6. Operacje oparte na kursorze w PHP .......................................................................................3899.7.7. Dynamiczny SQL w PHP ........................................................................................................3899.7.8. wiczenia do podrozdzia�u 9.7 ................................................................................................390

9.8. Podsumowanie rozdzia�u 9. ...............................................................................................................3909.9. Literatura do rozdzia�u 9. ...................................................................................................................391

10. Zaawansowane zagadnienia z obszaru relacyjnych baz danych ..................39310.1. Bezpiecze�stwo i uwierzytelnianie u�ytkowników w SQL-u .....................................................393

10.1.1. Uprawnienia ........................................................................................................................39410.1.2. Tworzenie uprawnie� ........................................................................................................39510.1.3. Proces sprawdzania uprawnie� .........................................................................................39610.1.4. Przyznawanie uprawnie� ...................................................................................................39710.1.5. Diagramy przyznanych uprawnie� ...................................................................................39810.1.6. Odbieranie uprawnie� .......................................................................................................40010.1.7. wiczenia do podrozdzia�u 10.1 ........................................................................................403

10.2. Rekurencja w SQL-u ......................................................................................................................40410.2.1. Definiowanie relacji rekurencyjnych w SQL-u ...............................................................40410.2.2. Problematyczne wyra�enia w rekurencyjnym SQL-u ....................................................40710.2.3. wiczenia do podrozdzia�u 10.2 ........................................................................................409

10.3. Model obiektowo-relacyjny ............................................................................................................41010.3.1. Od relacji do relacji obiektowych ......................................................................................41110.3.2. Relacje zagnie�d�one ..........................................................................................................41110.3.3. Referencje ............................................................................................................................41310.3.4. Podej�cie obiektowe a obiektowo-relacyjne .....................................................................41410.3.5. wiczenia do podrozdzia�u 10.3 ........................................................................................415

10.4. Typy definiowane przez u�ytkownika w SQL-u .........................................................................41510.4.1. Definiowanie typów w SQL-u ...........................................................................................41510.4.2. Deklaracje metod w typach UDT .....................................................................................41710.4.3. Definicje metod ..................................................................................................................41710.4.4. Deklarowanie relacji za pomoc� typów UDT ..................................................................41810.4.5. Referencje ............................................................................................................................41810.4.6. Tworzenie identyfikatorów obiektów dla tabel ...............................................................41910.4.7. wiczenia do podrozdzia�u 10.4 ........................................................................................421

10.5. Operacje na danych obiektowo-relacyjnych .................................................................................42110.5.1. Pod��anie za referencjami .................................................................................................42110.5.2. Dost�p do komponentów krotek o typie UDT ................................................................42210.5.3. Generatory i modyfikatory ................................................................................................42310.5.4. Sortowanie elementów o typie UDT ................................................................................42510.5.5. wiczenia do podrozdzia�u 10.5 ........................................................................................426

10.6. Techniki OLAP ..............................................................................................................................42710.6.1. OLAP i hurtownie danych ................................................................................................42810.6.2. Aplikacje OLAP .................................................................................................................42810.6.3. Wielowymiarowe uj�cie danych w aplikacjach OLAP ...................................................42910.6.4. Schemat gwiazdy .................................................................................................................43010.6.5. Podzia� i wycinki ................................................................................................................43210.6.6. wiczenia do podrozdzia�u 10.6 ........................................................................................434

Page 12: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

12 SPIS TRECI

10.7. Kostki danych .................................................................................................................................43510.7.1. Operator kostki (CUBE) ....................................................................................................43510.7.2. Operator kostki w SQL-u ..................................................................................................43710.7.3. wiczenia do podrozdzia�u 10.7 ........................................................................................438

10.8. Podsumowanie rozdzia�u 10. .........................................................................................................43910.9. Literatura do rozdzia�u 10. ............................................................................................................441

III Modelowanie i programowanie danych semistrukturalnych ....44311. Semistrukturalny model danych ......................................................................445

11.1. Dane semistrukturalne ...................................................................................................................44511.1.1. Uzasadnienie powstania modelu danych semistrukturalnych .......................................44511.1.2. Reprezentowanie danych semistrukturalnych ................................................................44611.1.3. Integrowanie informacji za pomoc� danych semistrukturalnych .................................44711.1.4. wiczenia do podrozdzia�u 11.1 ........................................................................................449

11.2. XML .................................................................................................................................................44911.2.1. Znaczniki semantyczne ......................................................................................................44911.2.2. XML ze schematem i bez niego ........................................................................................45011.2.3. Poprawny sk�adniowo XML .............................................................................................45011.2.4. Atrybuty ...............................................................................................................................45211.2.5. Atrybuty ��cz�ce elementy .................................................................................................45211.2.6. Przestrzenie nazw ...............................................................................................................45311.2.7. XML i bazy danych ............................................................................................................45411.2.8. wiczenia do podrozdzia�u 11.2 ........................................................................................455

11.3. Definicje typów dokumentu ..........................................................................................................45511.3.1. Forma definicji DTD .........................................................................................................45611.3.2. Korzystanie z definicji DTD .............................................................................................45811.3.3. Listy atrybutów ...................................................................................................................45911.3.4. Identyfikatory i referencje .................................................................................................46011.3.5. wiczenia do podrozdzia�u 11.3 ........................................................................................461

11.4. XML Schema ..................................................................................................................................46211.4.1. Struktura dokumentów XML Schema .............................................................................46211.4.2. Elementy ..............................................................................................................................46211.4.3. Typy z�o�one .......................................................................................................................46311.4.4. Atrybuty ...............................................................................................................................46511.4.5. Typy proste z ograniczeniami ...........................................................................................46611.4.6. Klucze w XML Schema .....................................................................................................46711.4.7. Klucze obce w dokumentach XML Schema ...................................................................46911.4.8. wiczenia do podrozdzia�u 11.4 ........................................................................................471

11.5. Podsumowanie rozdzia�u 11. .........................................................................................................47111.6. Literatura do rozdzia�u 11. ............................................................................................................472

12. J�zyki programowania dla formatu XML .......................................................47312.1. XPath ...............................................................................................................................................473

12.1.1. Model danych w j�zyku XPath .........................................................................................47312.1.2. W�z�y dokumentu ..............................................................................................................47412.1.3. Wyra�enia XPath ................................................................................................................47512.1.4. Wzgl�dne wyra�enia XPath ...............................................................................................47612.1.5. Atrybuty w wyra�eniach XPath ........................................................................................47612.1.6. Osie .......................................................................................................................................47712.1.7. Kontekst wyra�e� ...............................................................................................................47812.1.8. Symbole wieloznaczne .......................................................................................................478

Page 13: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 13

12.1.9. Warunki w wyra�eniach XPath ........................................................................................47912.1.10. wiczenia do podrozdzia�u 12.1 ......................................................................................481

12.2. J�zyk XQuery ..................................................................................................................................48312.2.1. Podstawy j�zyka XQuery ...................................................................................................48412.2.2. Wyra�enia FLWR ..............................................................................................................48412.2.3. Zast�powanie zmiennych ich warto�ciami .......................................................................48812.2.4. Z��czenia w XQuery ...........................................................................................................48912.2.5. Operatory porównywania w XQuery ................................................................................49012.2.6. Eliminowanie powtórze� ...................................................................................................49112.2.7. Kwantyfikatory w XQuery ................................................................................................49212.2.8. Agregacje .............................................................................................................................49212.2.9. Rozga��zianie w wyra�eniach XQuery .............................................................................49312.2.10. Sortowanie wyników zapytania .......................................................................................49412.2.11. wiczenia do podrozdzia�u 12.2 ......................................................................................495

12.3. J�zyk XSLT .....................................................................................................................................49612.3.1. Podstawy j�zyka XSLT ......................................................................................................49612.3.2. Szablony ...............................................................................................................................49612.3.3. Pobieranie warto�ci z danych w formacie XML .............................................................49712.3.4. Rekurencyjne stosowanie szablonów ................................................................................49812.3.5. Iteracje w XSLT .................................................................................................................50012.3.6. Instrukcje warunkowe w XSLT ........................................................................................50112.3.7. wiczenia do podrozdzia�u 12.3 ........................................................................................502

12.4. Podsumowanie rozdzia�u 12. .........................................................................................................50312.5. Literatura do rozdzia�u 12. ............................................................................................................504

IV Implementowanie systemów baz danych .....................................505

13. Zarz�dzanie pami�ci� drugiego stopnia ..........................................................50713.1. Hierarchia pami�ci .........................................................................................................................507

13.1.1. Hierarchia pami�ci .............................................................................................................50713.1.2. Transfer danych mi�dzy poziomami ................................................................................50913.1.3. Pami�� nietrwa�a i trwa�a ...................................................................................................50913.1.4. Pami�� wirtualna ................................................................................................................51013.1.5. wiczenia do podrozdzia�u 13.1 ........................................................................................511

13.2. Dyski ................................................................................................................................................51113.2.1. Mechanika dysków .............................................................................................................51113.2.2. Kontroler dysku ..................................................................................................................51313.2.3. Cechy operacji dost�pu do dysku ......................................................................................51313.2.4. wiczenia do podrozdzia�u 13.2 ........................................................................................515

13.3. Przyspieszanie dost�pu do pami�ci drugiego stopnia .................................................................51613.3.1. Model przetwarzania oparty na wej�ciu-wyj�ciu .............................................................51613.3.2. Porz�dkowanie danych wed�ug cylindrów .......................................................................51713.3.3. U�ywanie wielu dysków .....................................................................................................51713.3.4. Tworzenie dysków lustrzanych .........................................................................................51813.3.5. Szeregowanie operacji dyskowych i algorytm windy ......................................................51813.3.6. Wst�pne pobieranie i buforowanie na du�� skal� ...........................................................52013.3.7. wiczenia do podrozdzia�u 13.3 ........................................................................................521

13.4. Problemy z dyskami .......................................................................................................................52213.4.1. Nieregularne b��dy .............................................................................................................52213.4.2. Sumy kontrolne ..................................................................................................................52313.4.3. Pami�� stabilna ...................................................................................................................524

Page 14: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

14 SPIS TRECI

13.4.4. Mo�liwo�ci obs�ugi b��dów w pami�ci stabilnej .............................................................52413.4.5. Przywracanie danych po awarii dysku .............................................................................52513.4.6. Tworzenie kopii lustrzanych jako technika zapewniania nadmiarowo�ci ...................52513.4.7. Bloki parzysto�ci .................................................................................................................52613.4.8. Usprawnienie — RAID 5 ...................................................................................................52913.4.9. Obs�uga awarii kilku dysków ............................................................................................52913.4.10. wiczenia do podrozdzia�u 13.4 ......................................................................................532

13.5. Porz�dkowanie danych na dysku ..................................................................................................53413.5.1. Rekordy o sta�ej d�ugo�ci ...................................................................................................53513.5.2. Umieszczanie rekordów o sta�ej d�ugo�ci w blokach ......................................................53613.5.3. wiczenia do podrozdzia�u 13.5 ........................................................................................537

13.6. Przedstawianie adresów bloków i rekordów ................................................................................53713.6.1. Adresy w systemach klient-serwer ....................................................................................53713.6.2. Adresy logiczne i ustrukturyzowane .................................................................................53813.6.3. Przemiana wska�ników ......................................................................................................53913.6.4. Zapisywanie bloków z powrotem na dysku .....................................................................54213.6.5. Rekordy i bloki przyklejone ..............................................................................................54313.6.6. wiczenia do podrozdzia�u 13.6 ........................................................................................544

13.7. Dane i rekordy o zmiennej d�ugo�ci .............................................................................................54513.7.1. Rekordy o polach o zmiennej d�ugo�ci .............................................................................54613.7.2. Rekordy z powtarzaj�cymi si� polami ..............................................................................54613.7.3. Rekordy o zmiennym formacie .........................................................................................54813.7.4. Rekordy, które nie mieszcz� si� w bloku .........................................................................54913.7.5. Obiekty BLOB ....................................................................................................................54913.7.6. Zapisywanie kolumn ..........................................................................................................55013.7.7. wiczenia do podrozdzia�u 13.7 ........................................................................................551

13.8. Modyfikowanie rekordów ..............................................................................................................55213.8.1. Wstawianie ..........................................................................................................................55213.8.2. Usuwanie .............................................................................................................................55313.8.3. Aktualizacje .........................................................................................................................55413.8.4. wiczenia do podrozdzia�u 13.8 ........................................................................................555

13.9. Podsumowanie rozdzia�u 13. .........................................................................................................55513.10. Literatura do rozdzia�u 13. ..........................................................................................................557

14. Struktury indeksów ............................................................................................55914.1. Podstawy struktur indeksów ..........................................................................................................560

14.1.1. Pliki sekwencyjne ...............................................................................................................56014.1.2. Indeksy g�ste .......................................................................................................................56114.1.3. Indeksy rzadkie ...................................................................................................................56214.1.4. Wiele poziomów indeksu ...................................................................................................56214.1.5. Indeksy pomocnicze ...........................................................................................................56314.1.6. Zastosowania indeksów pomocniczych ............................................................................56414.1.7. Poziom po�redni w indeksach pomocniczych .................................................................56514.1.8. Pobieranie dokumentów i indeksy odwrócone ................................................................56714.1.9. wiczenia do podrozdzia�u 14.1 ........................................................................................570

14.2. Drzewa zbalansowane .....................................................................................................................57114.2.1. Struktura drzew zbalansowanych .....................................................................................57214.2.2. Zastosowania drzew zbalansowanych ...............................................................................57414.2.3. Wyszukiwanie w drzewach zbalansowanych ...................................................................57614.2.4. Zapytania zakresowe ..........................................................................................................57614.2.5. Wstawianie elementów do drzew zbalansowanych .........................................................57714.2.6. Usuwanie elementów z drzew zbalansowanych ...............................................................579

Page 15: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 15

14.2.7. Wydajno�� drzew zbalansowanych ...................................................................................58214.2.8. wiczenia do podrozdzia�u 14.2 ........................................................................................582

14.3. Tablice z haszowaniem ...................................................................................................................58414.3.1. Tablice z haszowaniem w pami�ci drugiego stopnia ......................................................58414.3.2. Wstawianie elementów do tablicy z haszowaniem ..........................................................58514.3.3. Usuwanie elementów z tablicy z haszowaniem ...............................................................58614.3.4. Wydajno�� indeksów opartych na tablicy z haszowaniem .............................................58714.3.5. Tablice z haszowaniem rozszerzalnym .............................................................................58714.3.6. Wstawianie do tablic z haszowaniem rozszerzalnym ......................................................58814.3.7. Tablice z haszowaniem liniowym .....................................................................................59014.3.8. Wstawianie do tablic z haszowaniem liniowym ..............................................................59114.3.9. wiczenia do podrozdzia�u 14.3 ........................................................................................593

14.4. Indeksy wielowymiarowe ...............................................................................................................59514.4.1. Zastosowania indeksów wielowymiarowych ............................................................................... 59514.4.2. Wykonywanie zapyta� zakresowych za pomoc� tradycyjnych indeksów .............................. 59614.4.3. Wykonywanie zapyta� o najbli�szego s�siada z wykorzystaniem tradycyjnych indeksów .... 59714.4.4. Przegl�d struktur wielowymiarowych indeksów ........................................................................ 598

14.5. Struktury haszuj�ce na wielowymiarowe dane ............................................................................59814.5.1. Pliki siatki ...........................................................................................................................59814.5.2. Wyszukiwanie w pliku siatki .............................................................................................59914.5.3. Wstawianie danych do plików siatki ................................................................................60014.5.4. Wydajno�� plików siatki ....................................................................................................60214.5.5. Podzielone funkcje haszuj�ce ............................................................................................60314.5.6. Porównanie plików siatki i haszowania podzielonego ....................................................60414.5.7. wiczenia do podrozdzia�u 14.5 ........................................................................................605

14.6. Struktury drzewiaste dla danych wielowymiarowych .................................................................60614.6.1. Indeksy na wielu kluczach .................................................................................................60714.6.2. Wydajno�� indeksów na wielu kluczach ..........................................................................60714.6.3. Drzewa kd ............................................................................................................................60814.6.4. Operacje na drzewach kd ...................................................................................................61014.6.5. Przystosowywanie drzew kd do pami�ci drugiego stopnia ............................................61114.6.6. Drzewa czwórkowe .............................................................................................................61214.6.7. R-drzewa ..............................................................................................................................61314.6.8. Operacje na r-drzewach ......................................................................................................61414.6.9. wiczenia do podrozdzia�u 14.6 ........................................................................................616

14.7. Indeksy bitmapowe .........................................................................................................................61714.7.1. Uzasadnienie stosowania indeksów bitmapowych ..........................................................61814.7.2. Bitmapy skompresowane ...................................................................................................62014.7.3. Operacje na wektorach bitowych w postaci kodów d�ugo�ci serii .................................62114.7.4. Zarz�dzanie indeksami bitmapowymi ..............................................................................62214.7.5. wiczenia do podrozdzia�u 14.7 ........................................................................................623

14.8. Podsumowanie rozdzia�u 14. .........................................................................................................62314.9. Literatura do rozdzia�u 14. ............................................................................................................625

15. Wykonywanie zapyta� .......................................................................................62715.1. Wprowadzenie do operatorów z fizycznego planu zapytania .....................................................629

15.1.1. Skanowanie tabel ................................................................................................................62915.1.2. Sortowanie w trakcie skanowania tabel ............................................................................62915.1.3. Model oblicze� dla operatorów fizycznych ......................................................................63015.1.4. Parametry do pomiaru kosztów .........................................................................................63015.1.5. Koszty operacji wej�cia-wyj�cia dla operatorów skanowania .........................................63115.1.6. Iteratory do implementowania operatorów fizycznych ..................................................631

Page 16: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

16 SPIS TRECI

15.2. Algorytmy jednoprzebiegowe ........................................................................................................63415.2.1. Algorytmy jednoprzebiegowe dla operacji krotkowych ........................................................63515.2.2. Algorytmy jednoprzebiegowe dla jednoargumentowych operacji na ca�ych relacjach ....63615.2.3. Algorytmy jednoprzebiegowe dla operacji dwuargumentowych .........................................63815.2.4. wiczenia do podrozdzia�u 15.2 ...............................................................................................640

15.3. Z��czenia zagnie�d�one ..................................................................................................................64115.3.1. Krotkowe z��czenia zagnie�d�one ....................................................................................64115.3.2. Iterator dla krotkowych z��cze� zagnie�d�onych ...........................................................64215.3.3. Algorytm z��czenia zagnie�d�onego opartego na blokach .............................................64315.3.4. Analiza z��cze� zagnie�d�onych .......................................................................................64415.3.5. Przegl�d opisanych wcze�niej algorytmów ......................................................................64415.3.6. wiczenia do podrozdzia�u 15.3 ........................................................................................645

15.4. Algorytmy dwuprzebiegowe oparte na sortowaniu .....................................................................64515.4.1. Dwuetapowe wielo�cie�kowe sortowanie przez scalanie ................................................64615.4.2. Eliminowanie powtórze� za pomoc� sortowania ............................................................64715.4.3. Grupowanie i agregacja z wykorzystaniem sortowania ...................................................64715.4.4. Algorytm obliczania sumy oparty na sortowaniu ............................................................64815.4.5. Obliczanie za pomoc� sortowania cz��ci wspólnej i ró�nicy ..........................................64915.4.6. Prosty algorytm z��czenia oparty na sortowaniu .............................................................64915.4.7. Analiza prostego z��czenia przez sortowanie ...................................................................65015.4.8. Wydajniejsze z��czenie przez sortowanie .........................................................................65115.4.9. Omówienie algorytmów opartych na sortowaniu ............................................................65215.4.10. wiczenia do podrozdzia�u 15.4 ......................................................................................652

15.5. Dwuprzebiegowe algorytmy oparte na haszowaniu ....................................................................65315.5.1. Podzia� relacji przez haszowanie .......................................................................................65315.5.2. Algorytm usuwania powtórze� oparty na haszowaniu ...................................................65415.5.3. Grupowanie i agregacja oparte na haszowaniu ................................................................65415.5.4. Suma, cz��� wspólna i ró�nica oparte na haszowaniu .....................................................65515.5.5. Algorytm z��czenia przez haszowanie ..............................................................................65515.5.6. Zmniejszanie liczby dyskowych operacji wej�cia-wyj�cia ..............................................65615.5.7. Przegl�d algorytmów opartych na haszowaniu ................................................................65815.5.8. wiczenia do podrozdzia�u 15.5 ........................................................................................659

15.6. Algorytmy oparte na indeksach .....................................................................................................65915.6.1. Indeksy klastruj�ce i nieklastruj�ce ..................................................................................65915.6.2. Selekcja oparta na indeksie ................................................................................................66015.6.3. Z��czenie za pomoc� indeksu ............................................................................................66215.6.4. Z��czenia z wykorzystaniem posortowanego indeksu ....................................................66315.6.5. wiczenia do podrozdzia�u 15.6 ........................................................................................664

15.7. Zarz�dzanie buforem ......................................................................................................................66515.7.1. Architektura mened�era buforów .....................................................................................66515.7.2. Strategie zarz�dzania buforami .........................................................................................66715.7.3. Zwi�zki mi�dzy fizycznym operatorem selekcji a zarz�dzaniem buforami ..................66815.7.4. wiczenia do podrozdzia�u 15.7 ........................................................................................669

15.8. Algorytmy o wi�cej ni� dwóch przebiegach .................................................................................67015.8.1. Wieloprzebiegowe algorytmy oparte na sortowaniu .......................................................67015.8.2. Wydajno�� wieloprzebiegowych algorytmów opartych na sortowaniu .........................67115.8.3. Wieloprzebiegowe algorytmy oparte na haszowaniu ......................................................67215.8.4. Wydajno�� wieloprzebiegowych algorytmów opartych na haszowaniu ........................67215.8.5. wiczenia do podrozdzia�u 15.8 ........................................................................................673

15.9. Podsumowanie rozdzia�u 15. .........................................................................................................67315.10. Literatura do rozdzia�u 15. ..........................................................................................................675

Page 17: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 17

16. Kompilator zapyta� ............................................................................................67716.1. Parsowanie i przetwarzanie wst�pne .............................................................................................678

16.1.1. Analiza sk�adni i drzewa wyprowadzenia ........................................................................67816.1.2. Gramatyka prostego podzbioru SQL-a .............................................................................67916.1.3. Preprocesor ..........................................................................................................................68116.1.4. Przetwarzanie wst�pne zapyta� obejmuj�cych widoki ...................................................68216.1.5. wiczenia do podrozdzia�u 16.1 ........................................................................................685

16.2. Prawa algebraiczne pomocne przy ulepszaniu planów zapyta� .................................................68516.2.1. Prawa przechodnio�ci i ��czno�ci ......................................................................................68516.2.2. Prawa obejmuj�ce selekcj� .................................................................................................68716.2.3. Przenoszenie selekcji ..........................................................................................................68916.2.4. Prawa obejmuj�ce projekcj� ...............................................................................................69116.2.5. Prawa dotycz�ce z��cze� i iloczynów ................................................................................69216.2.6. Prawa obejmuj�ce eliminowanie powtórze� ....................................................................69316.2.7. Prawa dotycz�ce grupowania i agregacji ..........................................................................69316.2.8. wiczenia do podrozdzia�u 16.2 ........................................................................................695

16.3. Od drzewa wyprowadzenia do logicznych planów zapyta� ........................................................69716.3.1. Przekszta�canie na algebr� relacji .....................................................................................69716.3.2. Eliminowanie podzapyta� z warunków ...........................................................................69916.3.3. Usprawnianie logicznego planu zapytania .......................................................................70316.3.4. Grupowanie operatorów ��cznych i przechodnich ..........................................................70416.3.5. wiczenia do podrozdzia�u 16.3 ........................................................................................705

16.4. Szacowanie kosztów operacji .........................................................................................................70616.4.1. Szacowanie wielko�ci relacji po�rednich ..........................................................................70716.4.2. Szacowanie rozmiaru po projekcji ....................................................................................70716.4.3. Szacowanie rozmiaru relacji po selekcji ...........................................................................70816.4.4. Szacowanie rozmiaru wyniku z��czenia ...........................................................................71016.4.5. Z��czenia naturalne oparte na wielu atrybutach .............................................................71116.4.6. Z��czenia wielu relacji ........................................................................................................71216.4.7. Szacowanie rozmiaru wyników innych operacji .............................................................71316.4.8. wiczenia do podrozdzia�u 16.4 ........................................................................................714

16.5. Wprowadzenie do wyboru planu na podstawie kosztów .............................................................71516.5.1. Szacowanie parametrów zwi�zanych z rozmiarem ..........................................................71616.5.2. Obliczanie statystyk ...........................................................................................................71816.5.3. Heurystyki zmniejszania kosztów logicznych planów zapyta� .....................................71916.5.4. Sposoby wyliczania planów fizycznych ............................................................................72116.5.5. wiczenia do podrozdzia�u 16.5 ........................................................................................723

16.6. Okre�lanie kolejno�ci z��cze� ........................................................................................................72416.6.1. Znaczenie lewego i prawego argumentu z��czenia ..........................................................72416.6.2. Drzewa z��cze� ...................................................................................................................72516.6.3. Lewostronnie zag��bione drzewa z��cze� ........................................................................72616.6.4. Programowanie dynamiczne przy okre�laniu kolejno�ci z��cze� i grupowaniu ..........72816.6.5. Programowanie dynamiczne i bardziej szczegó�owe funkcje obliczania kosztów .......73216.6.6. Algorytm zach�anny wyboru kolejno�ci z��czenia ..........................................................73316.6.7. wiczenia do podrozdzia�u 16.6 ........................................................................................734

16.7. Uzupe�nianie fizycznego planu zapytania ....................................................................................73416.7.1. Wybór metody selekcji .......................................................................................................73516.7.2. Wybieranie metody z��czenia ............................................................................................73716.7.3. Przekazywanie potokowe a materializacja .......................................................................73816.7.4. Przekazywanie potokowe w operacjach jednoargumentowych ......................................73816.7.5. Przekazywanie potokowe w operacjach dwuargumentowych ........................................739

Page 18: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

18 SPIS TRECI

16.7.6. Notacja dla fizycznych planów zapyta� ............................................................................74116.7.7. Porz�dkowanie operacji fizycznych ..................................................................................74416.7.8. wiczenia do podrozdzia�u 16.7 ........................................................................................745

16.8. Podsumowanie rozdzia�u 16. .........................................................................................................74616.9. Literatura do rozdzia�u 16. ............................................................................................................747

17. Radzenie sobie z awariami systemu .................................................................74917.1. Problemy i modele z obszaru odpornych operacji .......................................................................749

17.1.1. Rodzaje awarii .....................................................................................................................75017.1.2. Wi�cej o transakcjach .........................................................................................................75117.1.3. Prawid�owe wykonywanie transakcji ................................................................................75217.1.4. Operacje podstawowe w transakcjach ...............................................................................75317.1.5. wiczenia do podrozdzia�u 17.1 ........................................................................................755

17.2. Rejestrowanie z mo�liwo�ci� wycofywania ..................................................................................75617.2.1. Rekordy dziennika .............................................................................................................75617.2.2. Regu�y rejestrowania z mo�liwo�ci� wycofywania ..........................................................75717.2.3. Przywracanie stanu z wykorzystaniem rejestrowania z mo�liwo�ci� wycofywania .....75917.2.4. Tworzenie punktów kontrolnych .....................................................................................76117.2.5. Nieblokuj�ce punkty kontrolne ........................................................................................76217.2.6. wiczenia do podrozdzia�u 17.2 ........................................................................................765

17.3. Rejestrowanie z mo�liwo�ci� powtarzania ....................................................................................76617.3.1. Regu�a rejestrowania z mo�liwo�ci� powtarzania ............................................................76617.3.2. Przywracanie stanu przy stosowaniu rejestrowania z mo�liwo�ci� powtarzania .........76717.3.3. Tworzenie punktów kontrolnych w dzienniku z mo�liwo�ci� powtarzania ................76817.3.4. Przywracanie stanu za pomoc� dziennika

z mo�liwo�ci� powtarzania z punktami kontrolnymi ...................................................76917.3.5. wiczenia do podrozdzia�u 17.3 ........................................................................................771

17.4. Rejestrowanie z mo�liwo�ci� wycofywania i powtarzania ..........................................................77117.4.1. Regu�y wycofywania i powtarzania ...................................................................................77217.4.2. Przywracanie stanu przy rejestrowaniu z mo�liwo�ci� wycofywania i powtarzania ....77217.4.3. Tworzenie punktów kontrolnych w dziennikach

z mo�liwo�ci� wycofywania i powtarzania .....................................................................77317.4.4. wiczenia do podrozdzia�u 17.4 ........................................................................................775

17.5. Zabezpieczanie si� przed uszkodzeniem no�nika ........................................................................77617.5.1. Archiwum ............................................................................................................................77617.5.2. Archiwizowanie nieblokuj�ce ............................................................................................77717.5.3. Przywracanie stanu za pomoc� archiwum i dziennika ...................................................77917.5.4. wiczenia do podrozdzia�u 17.5 ........................................................................................780

17.6. Podsumowanie rozdzia�u 17. .........................................................................................................78017.7. Literatura do rozdzia�u 17. ............................................................................................................782

18. Sterowanie wspó�bie�no�ci� .............................................................................78318.1. Harmonogramy szeregowe i szeregowalne ...................................................................................784

18.1.1. Harmonogramy ...................................................................................................................78418.1.2. Harmonogramy szeregowe .................................................................................................78418.1.3. Harmonogramy szeregowalne ...........................................................................................78618.1.4. Skutki semantyki dzia�ania transakcji .............................................................................78718.1.5. Notacja do opisu transakcji i harmonogramów ...............................................................78818.1.6. wiczenia do podrozdzia�u 18.1 ........................................................................................789

18.2. Szeregowalno�� konfliktowa ..........................................................................................................78918.2.1. Konflikty .............................................................................................................................78918.2.2. Grafy poprzedzania i sprawdzanie szeregowalno�ci konfliktowej .................................791

Page 19: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 19

18.2.3. Dlaczego test z wykorzystaniem grafu poprzedzania dzia�a? .........................................79318.2.4. wiczenia do podrozdzia�u 18.2 ........................................................................................794

18.3. Wymuszanie szeregowalno�ci za pomoc� blokad ........................................................................79518.3.1. Blokady ................................................................................................................................79618.3.2. Program szereguj�cy z funkcj� blokowania .....................................................................79818.3.3. Blokowanie dwufazowe ......................................................................................................79918.3.4. Dlaczego blokowanie dwufazowe dzia�a? .........................................................................79918.3.5. wiczenia do podrozdzia�u 18.3 ........................................................................................800

18.4. Systemy blokowania z kilkoma rodzajami blokad .......................................................................80218.4.1. Blokady dzielone i na wy��czno�� .....................................................................................80218.4.2. Macierze zgodno�ci ............................................................................................................80418.4.3. „Rozwijanie” blokad ...........................................................................................................80518.4.4. Blokady z aktualizacj� ........................................................................................................80618.4.5. Blokady inkrementacji .......................................................................................................80718.4.6. wiczenia do podrozdzia�u 18.4 ........................................................................................809

18.5. Architektura programu szereguj�cego z funkcj� blokowania .....................................................81118.5.1. Program szereguj�cy wstawiaj�cy operacje zwi�zane z blokadami ................................81118.5.2. Tablica blokad .....................................................................................................................81318.5.3. wiczenia do podrozdzia�u 18.5 ........................................................................................816

18.6. Hierarchie elementów bazy danych ..............................................................................................81618.6.1. Blokady o ró�nej szczegó�owo�ci ......................................................................................81618.6.2. Blokady ostrzegawcze .........................................................................................................81718.6.3. Fantomy i poprawna obs�uga wstawiania ........................................................................82018.6.4. wiczenia do podrozdzia�u 18.6 ........................................................................................820

18.7. Protokó� drzewa ..............................................................................................................................82118.7.1. Uzasadnienie blokowania opartego na drzewach ............................................................82118.7.2. Regu�y dost�pu do danych w strukturach drzewiastych ................................................82218.7.3. Dlaczego protokó� drzewa dzia�a? .....................................................................................82318.7.4. wiczenia do podrozdzia�u 18.7 ........................................................................................826

18.8. Sterowanie wspó�bie�no�ci� za pomoc� znaczników czasu ........................................................82618.8.1. Znaczniki czasu ...................................................................................................................82718.8.2. Fizycznie niewykonalne dzia�ania ....................................................................................82818.8.3. Problemy z „brudnymi” danymi .......................................................................................82918.8.4. Regu�y szeregowania na podstawie znaczników czasu ....................................................83018.8.5. Wielowersyjne znaczniki czasu .........................................................................................83118.8.6. Znaczniki czasu a blokowanie ...........................................................................................83318.8.7. wiczenia do podrozdzia�u 18.8 ........................................................................................833

18.9. Sterowanie wspó�bie�no�ci� przez sprawdzanie poprawno�ci ....................................................83418.9.1. Architektura programu szereguj�cego opartego na sprawdzaniu poprawno�ci ...........83418.9.2. Regu�y sprawdzania poprawno�ci .....................................................................................83518.9.3. Porównanie trzech mechanizmów sterowania wspó�bie�no�ci� ....................................83818.9.4. wiczenia do podrozdzia�u 18.9 ........................................................................................839

18.10. Podsumowanie rozdzia�u 18. .......................................................................................................83918.11. Literatura do rozdzia�u 18. ..........................................................................................................841

19. Wi�cej o zarz�dzaniu transakcjami ..................................................................84319.1. Szeregowalno�� a mo�liwo�� przywracania stanu ........................................................................843

19.1.1. Problem „brudnych” danych ............................................................................................84419.1.2. Kaskadowe ponawianie ......................................................................................................84519.1.3. Harmonogramy odtwarzalne .............................................................................................84519.1.4. Harmonogramy zapobiegaj�ce kaskadowemu ponawianiu ............................................846

Page 20: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

20 SPIS TRECI

19.1.5. Zarz�dzanie ponawianiem przy u�yciu blokad ................................................................84719.1.6. Zatwierdzanie grupowe ......................................................................................................84919.1.7. Rejestrowanie logiczne .......................................................................................................84919.1.8. Przywracanie stanu na podstawie dzienników logicznych .............................................85219.1.9. wiczenia do podrozdzia�u 19.1 ........................................................................................853

19.2. Zakleszczenie ...................................................................................................................................85419.2.1. Wykrywanie zakleszczenia za pomoc� limitów czasu .....................................................85419.2.2. Graf oczekiwania .................................................................................................................85519.2.3. Zapobieganie zakleszczeniu przez porz�dkowanie elementów ......................................85719.2.4. Wykrywanie zakleszcze� za pomoc� znaczników czasu .................................................85819.2.5. Porównanie metod zarz�dzania zakleszczeniem .............................................................86019.2.6. wiczenia do podrozdzia�u 19.2 ........................................................................................861

19.3. D�ugie transakcje ............................................................................................................................86219.3.1. Problemy z d�ugimi transakcjami .....................................................................................86219.3.2. Sagi .......................................................................................................................................86419.3.3. Transakcje kompensuj�ce ..................................................................................................86519.3.4. Dlaczego transakcje kompensuj�ce dzia�aj�? ...................................................................86619.3.5. wiczenia do podrozdzia�u 19.3 ........................................................................................867

19.4. Podsumowanie rozdzia�u 19. .........................................................................................................86719.5. Literatura do rozdzia�u 19. ............................................................................................................868

20. Równoleg�e i rozproszone bazy danych ...........................................................86920.1. Równoleg�e algorytmy dzia�aj�ce na relacjach .............................................................................869

20.1.1. Modele równoleg�o�ci ........................................................................................................87020.1.2. Równoleg�e wykonywanie operacji dzia�aj�cych krotka po krotce ...............................87220.1.3. Algorytmy równoleg�e dla operacji dzia�aj�cych na ca�ych relacjach ...........................87320.1.4. Wydajno�� algorytmów równoleg�ych ..............................................................................87320.1.5. wiczenia do podrozdzia�u 20.1 ........................................................................................875

20.2. System map-reduce do obs�ugi równoleg�o�ci .............................................................................87620.2.1. Model pami�ci .....................................................................................................................87620.2.2. Funkcja odwzorowuj�ca .....................................................................................................87620.2.3. Funkcja redukuj�ca ............................................................................................................87720.2.4. wiczenia do podrozdzia�u 20.2 ........................................................................................878

20.3. Rozproszone bazy danych ..............................................................................................................87920.3.1. Podzia� danych ....................................................................................................................87920.3.2. Transakcje rozproszone .....................................................................................................88020.3.3. Replikacja danych ...............................................................................................................88020.3.4. wiczenia do podrozdzia�u 20.3 ........................................................................................881

20.4. Przetwarzanie zapyta� rozproszonych ..........................................................................................88120.4.1. Problem z��czenia w �rodowisku rozproszonym .............................................................88120.4.2. Redukcje za pomoc� z��cze� cz��ciowych ........................................................................88220.4.3. Z��czenia wielu relacji ........................................................................................................88320.4.4. Hipergrafy acykliczne ........................................................................................................88420.4.5. Ci�gi kompletnej redukcji dla hipergrafów acyklicznych ..............................................88620.4.6. Dlaczego algorytm pe�nej redukcji dzia�a? ......................................................................88720.4.7. wiczenia do podrozdzia�u 20.4 ........................................................................................887

20.5. Zatwierdzanie w �rodowisku rozproszonym ................................................................................88820.5.1. Zapewnianie atomowo�ci w �rodowisku rozproszonym .................................................88820.5.2. Dwufazowe zatwierdzanie ..................................................................................................88920.5.3. Przywracanie stanu przy transakcjach rozproszonych ...................................................89120.5.4. wiczenia do podrozdzia�u 20.5 ........................................................................................893

Page 21: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 21

20.6. Blokowanie w �rodowisku rozproszonym ....................................................................................89320.6.1. Scentralizowane systemy blokad .......................................................................................89420.6.2. Model kosztów dla algorytmów blokowania rozproszonego ..........................................89420.6.3. Blokowanie zreplikowanych elementów ..........................................................................89520.6.4. Blokowanie kopii podstawowej .........................................................................................89620.6.5. Blokady globalne oparte na blokadach lokalnych ...........................................................89620.6.6. wiczenia do podrozdzia�u 20.6 ........................................................................................898

20.7. Wyszukiwanie rozproszone w systemach P2P .............................................................................89820.7.1. Sieci P2P ..............................................................................................................................89920.7.2. Problem z haszowaniem rozproszonym ...........................................................................89920.7.3. Scentralizowane rozwi�zania z obszaru haszowania rozproszonego .............................90020.7.4. Okr�g z ci�ciwami ...............................................................................................................90020.7.5. Odno�niki w okr�gach z ci�ciwami ..................................................................................90120.7.6. Wyszukiwanie z wykorzystaniem tablicy podr�cznej .....................................................90220.7.7. Dodawanie nowych w�z�ów ...............................................................................................90420.7.8. Opuszczanie sieci przez w�z�y ...........................................................................................90720.7.9. Awaria w�z�a .......................................................................................................................90720.7.10. wiczenia do podrozdzia�u 20.7 ......................................................................................907

20.8. Podsumowanie rozdzia�u 20. .........................................................................................................90820.9. Literatura do rozdzia�u 20. ............................................................................................................909

V Inne zagadnienia z obszaru zarz�dzania du�ymi zbiorami danych ....911

21. Integrowanie informacji ....................................................................................91321.1. Wprowadzenie do integrowania informacji .................................................................................913

21.1.1. Po co stosowa� integrowanie informacji? .........................................................................91421.1.2. Problem heterogeniczno�ci ................................................................................................915

21.2. Tryby integrowania informacji .....................................................................................................91721.2.1. Federacyjne systemy baz danych ......................................................................................91721.2.2. Hurtownie danych ..............................................................................................................91921.2.3. Mediator ..............................................................................................................................92021.2.4. wiczenia do podrozdzia�u 21.2 ........................................................................................922

21.3. Nak�adki w systemach opartych na mediatorze ..........................................................................92321.3.1. Szablony wzorców zapyta� ................................................................................................92421.3.2. Generatory nak�adek ..........................................................................................................92521.3.3. Filtry ....................................................................................................................................92621.3.4. Inne operacje nak�adki .......................................................................................................92721.3.5. wiczenia do podrozdzia�u 21.3 ........................................................................................928

21.4. Optymalizacja oparta na mo�liwo�ciach .......................................................................................92921.4.1. Problem ograniczonych mo�liwo�ci �róde� .....................................................................92921.4.2. Notacja do opisywania mo�liwo�ci �róde� ........................................................................93021.4.3. Wybór planu zapytania na podstawie mo�liwo�ci ...........................................................93121.4.4. Do��czanie optymalizacji na podstawie kosztów .............................................................93221.4.5. wiczenia do podrozdzia�u 21.4 ........................................................................................933

21.5. Optymalizowanie zapyta� mediatora ............................................................................................93321.5.1. Uproszczona notacja dla ozdobników ..............................................................................93421.5.2. Uzyskiwanie wyników podzada� ......................................................................................93421.5.3. Algorytm �a�cuchowy ........................................................................................................93521.5.4. Sumowanie widoków w mediatorze ..................................................................................93821.5.5. wiczenia do podrozdzia�u 21.5 ........................................................................................939

Page 22: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

22 SPIS TRECI

21.6. Mediator lokalny w formie widoku ...............................................................................................94021.6.1. Uzasadnienie stosowania mediatorów LAV ....................................................................94021.6.2. Terminologia dotycz�ca mediatorów LAV ......................................................................94121.6.3. Rozszerzanie rozwi�za� ......................................................................................................94221.6.4. Zawieranie si� zapyta� koniunkcyjnych ..........................................................................94421.6.5. Dlaczego test na istnienie odwzorowania zawieraj�cego dzia�a? ...................................94521.6.6. Wyszukiwanie rozwi�za� dla zapyta� mediatora ............................................................94621.6.7. Dlaczego twierdzenie LMSS jest prawdziwe? .................................................................94721.6.8. wiczenia do podrozdzia�u 21.6 ........................................................................................948

21.7. Okre�lanie encji ...............................................................................................................................94821.7.1. Okre�lanie, czy rekordy reprezentuj� t� sam� encj� .......................................................94821.7.2. Scalanie podobnych rekordów ..........................................................................................95021.7.3. Przydatne cechy funkcji okre�lania podobie�stwa i scalania .........................................95121.7.4. Algorytm R-Swoosh dla rekordów ICAR .........................................................................95221.7.5. Dlaczego algorytm R-Swoosh dzia�a? ...............................................................................95421.7.6. Inne sposoby okre�lania encji ............................................................................................95421.7.7. wiczenia do podrozdzia�u 21.7 ........................................................................................955

21.8. Podsumowanie rozdzia�u 21. .........................................................................................................95721.9. Literatura do rozdzia�u 21. ............................................................................................................958

22. Dr��enie danych .................................................................................................96122.1. Wyszukiwanie cz�sto wyst�puj�cych zbiorów elementów ..........................................................961

22.1.1. Model koszyka zakupów ....................................................................................................96222.1.2. Podstawowe definicje .........................................................................................................96322.1.3. Regu�y asocjacji ...................................................................................................................96422.1.4. Model oblicze� dla cz�sto wyst�puj�cych zbiorów elementów ......................................96522.1.5. wiczenia do podrozdzia�u 22.1 ........................................................................................966

22.2. Algorytmy do wyszukiwania cz�sto wyst�puj�cych zbiorów elementów ..................................96722.2.1. Rozk�ad cz�sto wyst�puj�cych zbiorów elementów ........................................................96722.2.2. Naiwny algorytm wyszukiwania cz�stych zbiorów elementów .....................................96822.2.3. Algorytm a-priori ................................................................................................................96922.2.4. Implementacja algorytmu a-priori ....................................................................................97022.2.5. Lepsze wykorzystanie pami�ci g�ównej ...........................................................................97122.2.6. Kiedy warto stosowa� algorytm PCY? .............................................................................97222.2.7. Algorytm wieloetapowy .....................................................................................................97322.2.8. wiczenia do podrozdzia�u 22.2 ........................................................................................974

22.3. Wyszukiwanie podobnych elementów ..........................................................................................97522.3.1. Miara podobie�stwa Jaccarda ............................................................................................97522.3.2. Zastosowania podobie�stwa Jaccarda ...............................................................................97622.3.3. Minhashing .........................................................................................................................97722.3.4. Minhashing i odleg�o�� Jaccarda ......................................................................................97822.3.5. Dlaczego minhashing dzia�a? ............................................................................................97822.3.6. Implementowanie minhashingu .......................................................................................97922.3.7. wiczenia do podrozdzia�u 22.3 ........................................................................................980

22.4. LSH ..................................................................................................................................................98122.4.1. Okre�lanie encji i przyk�ad zastosowania LSH ...............................................................98122.4.2. Zastosowanie LSH do sygnatur ........................................................................................98222.4.3. ��czenie minhashingu i LSH ...........................................................................................98422.4.4. wiczenia do podrozdzia�u 22.4 ........................................................................................985

Page 23: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SPIS TRECI 23

22.5. Grupowanie du�ych zbiorów danych ............................................................................................98622.5.1. Zastosowania grupowania ..................................................................................................98622.5.2. Miary odleg�o�ci .................................................................................................................98822.5.3. Grupowanie aglomeracyjne ...............................................................................................99022.5.4. Algorytmy oparte na k-�rednich .......................................................................................99222.5.5. Algorytm k-�rednich dla du�ych zbiorów danych ..........................................................99322.5.6. Przetwarzanie porcji punktów z pami�ci .........................................................................99522.5.7. wiczenia do podrozdzia�u 22.5 ........................................................................................997

22.6. Podsumowanie rozdzia�u 22. .........................................................................................................99822.7. Literatura do rozdzia�u 22. ............................................................................................................999

23. Systemy baz danych i internet ........................................................................100123.1. Architektura wyszukiwarek .........................................................................................................1001

23.1.1. Komponenty wyszukiwarek ............................................................................................100123.1.2. Roboty internetowe ..........................................................................................................100223.1.3. Przetwarzanie zapyta� w wyszukiwarkach ....................................................................100523.1.4. Tworzenie rankingu stron ...............................................................................................1005

23.2. Okre�lanie wa�nych stron za pomoc� wska�nika PageRank ....................................................100623.2.1. Intuicyjne podstawy algorytmu PageRank ....................................................................100623.2.2. Rekurencyjne uj�cie wska�nika PageRank — pierwsze podej�cie ..............................100723.2.3. Pu�apki i �lepe uliczki ......................................................................................................100923.2.4. Wska�nik PageRank z uwzgl�dnieniem pu�apek i �lepych uliczek ............................101123.2.5. wiczenia do podrozdzia�u 23.2 ......................................................................................1013

23.3. Wska�nik PageRank specyficzny dla tematu .............................................................................101423.3.1. Zbiór teleportacji ..............................................................................................................101423.3.2. Obliczanie wska�nika PageRank specyficznego dla tematu .........................................101523.3.3. Spam odno�nikami ...........................................................................................................101623.3.4. Wska�nik PageRank specyficzny dla tematu i spam odno�nikami .............................101723.3.5. wiczenia do podrozdzia�u 23.3 ......................................................................................1018

23.4. Strumienie danych ........................................................................................................................101923.4.1. Systemy zarz�dzania strumieniami danych ...................................................................101923.4.2. Zastosowania strumieni ...................................................................................................102023.4.3. Model danych oparty na strumieniach ...........................................................................102123.4.4. Przekszta�canie strumieni na relacje ..............................................................................102223.4.5. Przekszta�canie relacji na strumienie .............................................................................102323.4.6. wiczenia do podrozdzia�u 23.4 ......................................................................................1025

23.5. Dr��enie danych w strumieniach ................................................................................................102523.5.1. Uzasadnienie .....................................................................................................................102623.5.2. Okre�lanie liczby bitów ....................................................................................................102723.5.3. Okre�lanie liczby ró�nych elementów ............................................................................103023.5.4. wiczenia do podrozdzia�u 23.5 ......................................................................................1031

23.6. Podsumowanie rozdzia�u 23. .......................................................................................................103223.7. Literatura do rozdzia�u 23. ..........................................................................................................1034

Skorowidz ................................................................................................................1037

Page 24: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15Wykonywanie zapyta�

Obszerne zagadnienie przetwarzania zapyta� opisano w tym i nast�pnym (16.) rozdziale.Procesor zapyta� to grupa komponentów systemu DBMS, które przekszta�caj� zapytania u�yt-kownika i polecenia modyfikacji danych na ci�g operacji na bazie danych oraz wykonuj� je.Poniewa� SQL umo�liwia wyra�anie zapyta� na bardzo wysokim poziomie, procesor zapyta�musi obs�ugiwa� wiele szczegó�ów dotycz�cych wykonywania zapyta�. Ponadto naiwna strategiawykonywania zapyta� mo�e spowodowa� nieoptymalne wykorzystanie czasu.

Na rysunku 15.1 przedstawiono podzia� zagadnie� z rozdzia�ów 15. i 16. Ten rozdzia� do-tyczy g�ównie wykonywania zapyta� — algorytmów manipuluj�cych danymi z bazy. Skoncen-trowano si� na operacjach rozszerzonej algebry relacji opisanych w podrozdziale 5.2. Poniewa�SQL dzia�a zgodnie z modelem opartym na wielozbiorach, za�o�ono, �e relacje to wielozbiory,dlatego u�yto przeznaczonych dla nich operatorów z podrozdzia�u 5.1.

15.1. G�ówne elementy procesora zapyta�

Omówiono podstawowe metody wykonywania operacji algebry relacji. Metody te ró�ni� si�podstawow� strategi�. G�ówne podej�cia to skanowanie, haszowanie, sortowanie i indeksowanie.Techniki ró�ni� si� te� za�o�eniami dotycz�cymi ilo�ci dost�pnej pami�ci g�ównej. Niektórealgorytmy wymagaj�, aby pami�� g�ówna umo�liwia�a zapisanie przynajmniej jednej z relacjiuwzgl�dnianych w operacji. W innych przyj�to, �e argumenty operacji s� za du�e, aby mie�ci�ysi� w pami�ci. Poszczególne algorytmy ró�ni� si� kosztem i u�ywanymi strukturami.

Page 25: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

628 15. WYKONYWANIE ZAPYTA�

Wst�p do kompilowania zapyta�Aby wykonywaniu zapytania nada� kontekst, przedstawiono bardzo krótki zarys nast�pnegorozdzia�u. Kompilacja zapytania dzieli si� na trzy g�ówne kroki pokazane na rysunku 15.2.

a) Parsowanie. Tworzone jest drzewo wyprowadzenia dla zapytania. b) Przepisywanie zapytania. Drzewo wyprowadzenia jest przekszta�cane na wyj�ciowy plan

zapytania, który zwykle stanowi algebraiczn� reprezentacj� zapytania. Wyj�ciowy plan jestnast�pnie przekszta�cany na równowa�ny, którego wykonanie powinno zaj�� mniej czasu.

c) Generowanie planu fizycznego. Abstrakcyjny plan zapytania z punktu b), cz�sto nazywanylogicznym planem zapytania, jest przekszta�cany na fizyczny plan zapytania przez wybóralgorytmów b�d�cych implementacj� operatorów z planu logicznego, a tak�e przez wybórkolejno�ci stosowania tych operatorów. Plan fizyczny, podobnie jak efekt parsowaniai plan logiczny, jest reprezentowany jako drzewo wyra�enia. Plan fizyczny obejmuje te�takie szczegó�y jak sposób dost�pu do relacji z zapytania, a tak�e informacje o tym kiedy(i czy w ogóle) relacj� nale�y sortowa�.

15.2. Zarys procesu kompilowania zapyta�

Kroki b) i c) zwi�zane s� z optymalizatorem zapyta� i stanowi� trudne aspekty kompilowaniazapytania. Aby wybra� najlepszy plan zapytania, trzeba ustali� pewne rzeczy.

(1) Która z algebraicznie równowa�nych postaci zapytania prowadzi do powstania najwydaj-niejszego algorytmu ustalania odpowiedzi?

(2) Których algorytmów nale�y u�y� jako implementacji ka�dej operacji z wybranej postacizapytania?

(3) Jak operacje powinny przekazywa� dane mi�dzy sob� — potokowo, przez bufory pami�cig�ównej czy przez dysk?

Ka�dy wybór oparty jest na metadanych dotycz�cych bazy. Typowe metadane dost�pne dlaoptymalizatora zapyta� obejmuj� rozmiar ka�dej relacji, statystyki w rodzaju przybli�onej liczbyi cz�stotliwo�ci wyst�powania ró�nych warto�ci atrybutu, informacje o istnieniu okre�lonychindeksów i informacje o uk�adzie danych na dysku.

Page 26: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.1. WPROWADZENIE DO OPERATORÓW Z FIZYCZNEGO PLANU ZAPYTANIA 629

15.1. Wprowadzenie do operatorówz fizycznego planu zapytaniaFizyczne plany zapytania bazuj� na operatorach, z których ka�dy stanowi implementacj� jed-nego kroku planu. Operatory fizyczne zwykle s� konkretnymi implementacjami jednej z ope-racji algebry relacji. Potrzebne s� te� operatory fizyczne do wykonywania zada�, które nieobejmuj� operacji algebry relacji. Przyk�adowo cz�sto trzeba „przeskanowa�” tabel�, czyli przenie��do pami�ci g�ównej ka�d� krotk� relacji. Relacja jest zwykle operandem pewnej innej operacji.

W tym podrozdziale wprowadzono podstawowe cegie�ki fizycznych planów zapyta�. W dal-szych podrozdzia�ach omówiono bardziej skomplikowane algorytmy, które s� wydajn� imple-mentacj� operatorów algebry relacji. Algorytmy te stanowi� kluczow� cz��� fizycznych planówzapyta�. Wprowadzono te� iteratory — jest to wa�ne narz�dzie, które operatorom z fizycznegoplanu zapytania umo�liwia przekazywanie mi�dzy sob� ��da� krotek i odpowiedzi.

15.1.1. Skanowanie tabelPrawdopodobnie najbardziej podstawowym zadaniem w fizycznym planie zapytania jest wczy-tanie ca�ej zawarto�ci relacji R. Odmiana tej operacji obejmuje prosty predykat, co umo�liwiawczytanie tylko tych krotek relacji R, które spe�niaj� predykat. S� dwa podstawowe podej�ciado znajdowania krotek relacji R.

(1) Cz�sto relacja R jest przechowywana w pami�ci drugiego stopnia, a krotki s� uporz�dko-wane w blokach. System „wie”, w których blokach znajduj� si� krotki relacji R, i mo�epobiera� bloki jeden po drugim. Operacja ta to skanowanie tabeli.

(2) Je�li istnieje indeks na dowolnym atrybucie relacji R, mo�na go u�y�, aby uzyska� dost�pdo wszystkich krotek z R. Przyk�adowo indeks rzadki relacji R mo�na, co opisano w punk-cie 14.1.3, wykorzysta� do przej�cia do wszystkich bloków przechowuj�cych R, nawet je�linie wiadomo, które to bloki. Ta operacja to skanowanie indeksu.

Skanowanie indeksu opisano ponownie w punkcie 15.6.2, w ramach omówienia implemen-towania selekcji. Na razie warto zaobserwowa�, �e indeks mo�na wykorzysta� nie tylko do po-brania wszystkich krotek indeksowanej relacji, ale te� krotek o okre�lonej warto�ci (lub prze-dzia�u warto�ci) atrybutu lub atrybutów stanowi�cych klucz wyszukiwania dla indeksu.

15.1.2. Sortowanie w trakcie skanowania tabelJest wiele powodów, dla których przydatne jest sortowanie relacji w czasie wczytywania krotek.Zapytanie mo�e obejmowa� klauzul� ORDER BY, wymagaj�c� posortowania relacji. Ponadto niektóretechniki implementowania operacji algebry relacji wymagaj�, aby jeden lub oba argumenty by�yposortowanymi relacjami. Algorytmy te wyst�puj� w podrozdziale 15.4 i w innych miejscach.

Operator sortowania w czasie skanowania w fizycznym planie zapytania przyjmuje relacj� Roraz wykaz atrybutów, wed�ug których nale�y posortowa� dane, i zwraca posortowan� relacj�R. Sortowanie w czasie skanowania mo�na zaimplementowa� na kilka sposobów. Je�li relacj� Rtrzeba posortowa� wed�ug atrybutu a i istnieje indeks w postaci drzewa zbalansowanego na a,skanowanie indeksu umo�liwia uporz�dkowanie R w po��danej kolejno�ci. Je�eli relacja R jestna tyle ma�a, �e mie�ci si� w pami�ci g�ównej, mo�na pobra� krotki przez skanowanie tabelilub indeksu, a nast�pnie wykorzysta� algorytm sortowania w pami�ci g�ównej. Je�li R jest zbytdu�a, aby zapisa� j� w pami�ci g�ównej, mo�na wykorzysta� wielo�cie�kowe sortowanie przezscalanie, co omówiono w punkcie 15.4.1.

Page 27: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

630 15. WYKONYWANIE ZAPYTA�

15.1.3. Model oblicze� dla operatorów fizycznychZwykle zapytanie obejmuje kilka operacji algebry relacji, a powi�zany fizyczny plan zapytaniazawiera kilka operatorów fizycznych. Poniewa� rozs�dny wybór operatorów do planu fizyczne-go jest w procesorze zapyta� kluczowy, mo�liwe musi by� oszacowanie kosztu ka�dego u�ywa-nego operatora. Jako miary kosztu u�ywamy tu liczby dyskowych operacji wej�cia-wyj�cia.Miara ta jest spójna z za�o�eniem (punkt 13.3.1), �e d�u�ej trwa pobieranie danych z dysku ni�wykonywanie przydatnych operacji na nich po przeniesieniu ich do pami�ci g�ównej.

Przy porównywaniu algorytmów dla tych samych operacji obowi�zuje za�o�enie, które po-cz�tkowo mo�e wydawa� si� zaskakuj�ce.

� Przyjmujemy, �e argumenty operatora znajduj� si� na dysku, natomiast wynik zostaje za-pisany pami�ci g�ównej.

Je�li operator tworzy ostateczn� odpowied� na zapytanie, a wynik jest zapisywany na dysku,koszt wykonania tej operacji zale�y tylko od wielko�ci odpowiedzi, a nie od sposobu jej obli-czenia. Wystarczy doda� koszt ostatecznego zapisu do ��cznego kosztu zapytania. Jednak w wieluzastosowaniach odpowied� w ogóle nie jest zapisywana na dysku, tylko wy�wietlana lub prze-kazywana do programu formatuj�cego. Koszt dyskowych operacji wej�cia-wyj�cia wynosi wte-dy zero lub zale�y od tego, co pewna nieznana aplikacja robi z danymi. W obu sytuacjach kosztzapisania odpowiedzi nie wp�ywa na wybór algorytmu wykonywania operacji.

Podobnie wynik operacji stanowi�cej cz��� zapytania (w odró�nieniu od ca�ego zapytania)cz�sto nie jest zapisywany na dysku. W punkcie 15.1.6 omówiono iteratory. Dzia�aj� one tak —wynik uruchomienia jednego operatora O1 jest tworzony w pami�ci g�ównej, cz�sto po ma�ymfragmencie, i przekazywany jako argument do innego operatora O2. Wtedy nigdy nie trzebazapisywa� wyniku dzia�ania operatora O1 na dysku. Ponadto mo�na unikn�� ponoszenia kosztuwczytywania z dysku argumentu operatora O2.

15.1.4. Parametry do pomiaru kosztówWprowad�my teraz parametry (nazywane czasem statystykami) s�u��ce do wyra�ania kosztówoperatorów. Oszacowanie kosztów jest niezb�dne, je�li optymalizator ma okre�la�, który z wieluplanów zapytania prawdopodobnie b�dzie dzia�a� najszybciej. W podrozdziale 16.5 pokazano,jak wykorzysta� szacunki kosztów.

Potrzebny jest parametr reprezentuj�cy cz��� pami�ci g�ównej wykorzystywan� przez ope-rator, a tak�e inne parametry okre�laj�ce rozmiar jego argumentów. Za�ó�my, �e pami�� g�ów-na jest podzielona na bufory o rozmiarze równym wielko�ci bloków dysku. M oznacza liczb�buforów w pami�ci g�ównej dost�pnych przy dzia�aniu konkretnego operatora.

Czasem mo�na traktowa� M jak ca�� pami�� g�ówn� lub wi�kszo�� tej pami�ci. Zdarzaj� si�jednak sytuacje, w których kilka operacji wspó�u�ytkuje pami�� g�ówn�, dlatego M mo�e by�znacznie mniejsza ni� ��czna wielko�� pami�ci g�ównej. W praktyce, jak opisano to w podroz-dziale 15.7, liczba buforów dost�pnych operacji mo�e nie by� przewidywaln� sta��. Nieraz jestustalana w trakcie wykonywania programu na podstawie tego, jakie inne procesy dzia�aj� w tymsamym czasie. Wtedy M to szacunkowa liczba buforów dost�pnych operacji.

Rozwa�my teraz parametry do pomiaru kosztu dost�pu do argumentów (czyli do relacji).Parametry te, mierz�ce rozmiar i rozk�ad danych w relacji, cz�sto s� obliczane okresowo, abyoptymalizatorowi zapyta� u�atwi� wybór operatorów fizycznych.

Przyj�to tu upraszczaj�ce za�o�enie, zgodnie z którym dane s� pobierane z dysku po jednymbloku. W praktyce czasem mo�na zastosowa� jedn� z technik omówionych w podrozdziale 13.3

Page 28: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.1. WPROWADZENIE DO OPERATORÓW Z FIZYCZNEGO PLANU ZAPYTANIA 631

do przyspieszenia pracy algorytmu, je�li mo�liwe jest jednoczesne wczytanie wielu blokówz dan� relacj�, przylegaj�cych do siebie na �cie�ce. Istniej� trzy rodziny parametrów — B, T i V.

� Przy opisywaniu rozmiaru relacji R najcz��ciej wa�na jest liczba bloków potrzebnych doprzechowywania wszystkich krotek relacji. Liczb� bloków oznacza si� jako B(R) lub —je�li wiadomo, �e chodzi o relacj� R — samo B. Zwykle zak�ada si�, �e R jest sklastrowana(ang. clustered; jest zapisana w B lub oko�o B bloków).

� Czasem trzeba ustali� liczb� krotek w R. Warto�� t� oznacza si� jako T(R) lub — gdywiadomo, �e chodzi o R — samo T. Je�li potrzebna jest liczba krotek relacji R mieszcz�-cych si� w jednym bloku, mo�na wykorzysta� stosunek T/B.

� Czasem warto te� okre�li� liczb� ró�nych warto�ci pojawiaj�cych si� w kolumnie relacji.Je�li R to relacja, a jednym z jej atrybutów jest a, wyra�enie V(R, a) oznacza liczb� ró�-nych warto�ci kolumny a w R. Bardziej ogólnie — je�li [a1, a2, …, an] to lista atrybutów,V(R, [a1, a2, …, an]) to liczba ró�nych n krotek w kolumnach relacji R odpowiadaj�cychatrybutom a1, a2, …, an. Formalnie mo�na stwierdzi�, �e jest to liczba krotek w (�a1, a2, …, an(R)).

15.1.5. Koszty operacji wej�cia-wyj�ciadla operatorów skanowaniaW ramach prostego zastosowania przedstawionych parametrów mo�na zapisa� liczb� dysko-wych operacji wej�cia-wyj�cia potrzebnych dla ka�dego z omówionych operatorów skanowaniatabeli. Je�li relacja R jest sklastrowana, liczba dyskowych operacji wej�cia-wyj�cia dla takichoperatorów to w przybli�eniu B. Je�eli R mie�ci si� w pami�ci g�ównej, mo�na zaimplemento-wa� sortowanie w czasie skanowania, wczytuj�c R do pami�ci i wykonuj�c sortowanie w pa-mi�ci, co tak�e wymaga tylko B dyskowych operacji wej�cia-wyj�cia.

Je�li jednak R nie jest sklastrowana, liczba potrzebnych dyskowych operacji wej�cia-wyj�ciajest zwykle du�o wi�ksza. Je�eli R jest rozproszona mi�dzy krotkami innych relacji, przegl�-danie tabeli dla relacji R mo�e wymaga� wczytania tylu bloków, ile jest krotek w R (kosztoperacji wej�cia-wyj�cia wynosi T). Podobnie przy sortowaniu relacji R mieszcz�cej si� w pa-mi�ci potrzeba T dyskowych operacji wej�cia-wyj�cia do przeniesienia ca�ej R do pami�ci.

Na koniec rozwa�my koszt skanowania indeksu. Ogólnie indeks na relacji R zajmujeznacznie mniej ni� B(R) bloków. Dlatego skanowanie ca�ej R, na co potrzeba przynajmniej Bdyskowych operacji wej�cia-wyj�cia, wymaga znacznie wi�cej operacji ni� sprawdzenie ca�egoindeksu. Dlatego, cho� skanowanie indeksu wymaga sprawdzenia zarówno relacji, jak i indeksu, to:

� nadal mo�na u�ywa� B (lub T) do szacowania kosztu dost�pu do ca�ych sklastrowanych(lub niesklastrowanych) relacji z wykorzystaniem indeksu.

Je�li jednak potrzebna jest tylko cz��� R, cz�sto mo�na unikn�� sprawdzania ca�ego indeksui ca�ej R. Analiz� takich zastosowa� indeksu odk�adamy do punktu 15.6.2.

15.1.6. Iteratory do implementowania operatorów fizycznychWiele operatorów fizycznych mo�na zaimplementowa� jako iterator. Iterator ��czy trzy metodyumo�liwiaj�ce odbiorcy wyniku dzia�ania fizycznego operatora pobieranie danych krotka pokrotce. Oto te metody.

Page 29: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

632 15. WYKONYWANIE ZAPYTA�

(1) Open(). Metoda rozpoczyna proces pobierania krotek, jednak ich nie wczytuje. Inicjujestruktury danych potrzebne do wykonania operacji i wywo�uje metod� Open() dla jejargumentów.

(2) GetNext(). Zwraca nast�pn� krotk� z wyniku i — je�li trzeba — dostosowuje strukturydanych, aby umo�liwi� pobranie kolejnych krotek. Przy pobieraniu nast�pnej krotkiz wyniku zwykle wywo�uje raz lub kilka razy metod� GetNext() dla argumentów. Je�elinie mo�na zwróci� dalszych krotek, GetNext() zwraca specjaln� warto�� NotFound (zak�a-damy, �e nie mo�na jej pomyli� z krotk�).

(3) Close(). Ta metoda ko�czy iterowanie po pobraniu wszystkich krotek (lub krotek ��da-nych przez odbiorc�). Zwykle wywo�uje metod� Close() dla argumentów operatora.

W opisie iteratorów i ich metod zak�adamy, �e dla ka�dego typu iteratora (na przyk�ad dlaka�dego typu operatora fizycznego zaimplementowanego jako iterator) istnieje klasa, w którejzdefiniowano metody Open(), GetNext() i Close() dzia�aj�ce na jej egzemplarzach.

Przyk�ad 15.1. Prawdopodobnie najprostszy jest iterator b�d�cy implementacj� operatora ska-nowania tabeli. Iterator jest zaimplementowany jako klasa TableScan, a operator skanowaniatabeli w planie zapytania to egzemplarz klasy maj�cy parametr w postaci skanowanej relacji R.Za�ó�my, �e R to relacja sklastrowana w li�cie bloków, do której mo�na w wygodny sposóbuzyska� dost�p (przyjmujemy, i� operacja „pobierz nast�pny blok R” jest zaimplementowanaw systemie pami�ci i nie trzeba jej szczegó�owo opisywa�). Ponadto zak�adamy, �e w blokuznajduje si� katalog rekordów (krotek), dlatego mo�na �atwo pobra� nast�pn� krotk� z blokulub stwierdzi�, i� osi�gni�to ostatni� krotk�.

Na listingu 15.3 znajduje si� zarys trzech metod iteratora. Zak�adamy, �e istnieje wska�nikb do bloku i wska�nik t do krotki w bloku wskazywanym przez b. Oba wska�niki mog� prowa-dzi� „poza” ostatni blok lub ostatni� krotk� w bloku. Mo�na wykry� wyst�pienie tych warun-ków. Zauwa�my, �e metoda Close() w przyk�adzie nie wykonuje �adnych dzia�a�. W praktycemo�e ona na ró�ne sposoby porz�dkowa� wewn�trzn� struktur� systemu DBMS. Mo�e infor-mowa� mened�er bufora, �e niektóre bufory nie s� ju� potrzebne, lub mened�er wspó�bie�no�cio zako�czeniu wczytywania relacji. �

Open() { b := pierwszy blok R; t := pierwsza krotka bloku b;}

GetNext() { IF (t prowadzi poza ostatni� krotk� bloku b) { zwi�ksz b, aby prowadzi� do nast�pnego bloku; IF (nie ma nast�pnego bloku) RETURN NotFound; ELSE /* b to nowy blok. */ t := pierwsza krotka bloku b; } /* Teraz mo na zwróci� i zwi�kszy� t. */ oldt := t; zwi�kszanie t, aby prowadzi� do nast�pnej krotki b; RETURN oldt;}

Close() {}

15.3. Metody iteratora dla operatora skanowania tabeli dla relacji R

Page 30: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.1. WPROWADZENIE DO OPERATORÓW Z FIZYCZNEGO PLANU ZAPYTANIA 633

Przyk�ad 15.2. Teraz rozwa�my przyk�ad, w którym iterator wykonuje wi�kszo�� zada� w me-todzie Open(). U�ywamy operatora sortowania przy skanowaniu. Wczytuje on krotki relacji Ri zwraca je w posortowanej kolejno�ci. Do czasu sprawdzenia wszystkich krotek w R nie mo�nazwróci� nawet pierwszej krotki. Dla uproszczenia za�ó�my, i� relacja R jest na tyle ma�a, �emie�ci si� w pami�ci g�ównej.

Metoda Open() musi wczytywa� ca�� relacj� R do pami�ci g�ównej. Mo�e te� sortowa�krotki z R. Wtedy GetNext() musi tylko zwróci� po kolei ka�d� krotk� w posortowanej kolej-no�ci. Metoda Open() mo�e te� pozostawi� R nieposortowan�. Wtedy w GetNext() nale�y po-biera� pierwsz� z pozosta�ych krotek, co w efekcie oznacza wykonanie jednego przebiegu sor-towania przez wybieranie. �

Przyk�ad 15.3. Na koniec rozwa�my prosty przyk�ad ��czenia iteratorów przez wywo�ywanieinnych iteratorów. Operacja to suma wielozbiorów R � S, w której najpierw nale�y zwróci�wszystkie krotki R, a nast�pnie wszystkie krotki S bez eliminowania powtórze�. Niech R i Soznaczaj� iteratory zwracaj�ce relacje R i S (tym samym s� dzie�mi operatora sumy w planiezapytania dla operacji R � S). Iteratory R i S mog� odpowiada� skanowaniu tabeli relacji sk�a-dowanych R i S. Ponadto mog� by� iteratorami, które wywo�uj� zestaw innych iteratorów w celuobliczenia R i S. Niezale�nie od tego wa�ne jest, aby dost�pne by�y metody R.Open(), R.GetNext()i R.Close() oraz odpowiadaj�ce im metody iteratora S.

Zarys metod iteratora dla sumy przedstawiono na listingu 15.4. Ciekawe jest to, �e metodykorzystaj� ze zmiennej wspó�u�ytkowanej ObecRel przechowuj�cej R lub S (w zale�no�ci odtego, która relacja jest obecnie wczytywana). �

Open() { R.Open(); ObecRel := R;}

GetNext() { IF (ObecRel = R) { t := R.GetNext(); IF (t <> NotFound) /* R nie zosta�a pobrana w ca�o�ci. */ RETURN t; ELSE /* R zosta�a pobrana w ca�o�ci. */ { S.Open(); ObecRel := S; } } /* Tu trzeba wczyta� dane z S. */ RETURN S.GetNext(); /* Zauwa my, e je�li pobrano ca�� S, S.GetNext() zwróci NotFound, co jest prawid�owym dzia�aniem metody GetNext. */}

Close() { R.Close(); S.Close();}

15.4. Tworzenie iteratorów dla sumy na podstawie iteratorów R i S

Page 31: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

634 15. WYKONYWANIE ZAPYTA�

Dlaczego iteratory?

W podrozdziale 16.7 pokazano, �e po��czenie iteratorów w planie zapytania pozwala uzy-ska� wysok� wydajno��. Inaczej dzia�a materializacja, kiedy to wynik dzia�ania ka�degooperatora jest zwracany w ca�o�ci — zostaje zapisany albo na dysku, albo w pami�ci g�ów-nej. Przy stosowaniu iteratorów jednocze�nie aktywnych jest wiele operacji. Krotki s�przekazywane mi�dzy operatorami na ��danie, co zmniejsza zapotrzebowanie na pami��.Oczywi�cie, co opisano dalej, nie wszystkie operatory fizyczne umo�liwiaj� sensown� ob-s�ug� iteracji (potokowania). Czasem prawie wszystkie zadania trzeba wykona� w metodzieOpen(), co przypomina materializacj�.

15.2. Algorytmy jednoprzebiegoweW tym miejscu rozpoczyna si� omówienie bardzo wa�nego zagadnienia w obszarze optymali-zowania zapyta�: „Jak nale�y wykonywa� ka�dy z poszczególnych kroków — na przyk�ad z��-czenie lub selekcj� — logicznego planu zapytania?”. Wybór algorytmu dla ka�dego operatorato kluczowa cz��� procesu przekszta�cania logicznego planu zapytania na plan fizyczny. Cho�zaproponowano wiele algorytmów dla operatorów, nale�� one g�ównie do trzech klas.

(1) Metody oparte na sortowaniu (podrozdzia� 15.4).(2) Metody oparte na haszowaniu (podrozdzia�y 15.5 i 20.1).(3) Metody oparte na indeksach (podrozdzia� 15.6).

Ponadto algorytmy dzia�ania operatorów mo�na podzieli� na trzy „stopnie” na podstawietrudno�ci i kosztów.

a) Niektóre metody wymagaj� tylko jednokrotnego wczytania danych z dysku. S� to algo-rytmy jednoprzebiegowe. Omówiono je w tym podrozdziale. Zwykle przynajmniej jedenz argumentów musi mie�ci� si� w pami�ci g�ównej, cho� zdarzaj� si� wyj�tki, zw�aszczaw zakresie selekcji i projekcji, co opisano w podrozdziale 15.2.1.

b) Niektóre metody dzia�aj� dla danych, które nie mieszcz� si� w dost�pnej pami�ci g�ównej,ale nie dzia�aj� dla najwi�kszych wyobra�alnych zbiorów danych. S� to algorytmy dwu-przebiegowe, cechuj�ce si� pocz�tkowym odczytem danych z dysku, przetwarzaniem ichw pewien sposób, zapisem wszystkich (lub prawie wszystkich) na dysku i pó�niejszymwczytywaniem ich po raz wtóry w celu dalszego przetwarzania w ramach drugiego przebiegu.Algorytmy tego typu pojawiaj� si� w podrozdzia�ach 15.4 i 15.5.

c) Niektóre metody dzia�aj� dla dowolnie du�ych danych. Metody te wymagaj� trzech lubwi�cej przebiegów i s� naturalnym, rekurencyjnym uogólnieniem algorytmów dwuprze-biegowych. Metody wieloprzebiegowe omówiono w podrozdziale 15.8.

W tym podrozdziale skoncentrowano si� na metodach jednoprzebiegowych. Tu i w dal-szych punktach operatory dzielone s� na trzy ogólne grupy.

(1) Krotkowe operacje jednoargumentowe (dzia�aj�ce na pojedynczych krotkach). Te operacje —selekcja i projekcja — nie wymagaj� jednoczesnego zapisania ca�ej relacji (a nawet du�ejjej cz��ci) w pami�ci. Dlatego mo�na wczytywa� dane blok po bloku, u�ywa� jednego buforaw pami�ci g�ównej i generowa� dane wyj�ciowe.

Page 32: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.2. ALGORYTMY JEDNOPRZEBIEGOWE 635

(2) Operacje jednoargumentowe na ca�ych relacjach. Jednoargumentowe operacje tego typu wy-magaj� jednoczesnego umieszczenia w pami�ci wszystkich lub wi�kszo�ci krotek, dlategoalgorytmy jednoprzebiegowe dzia�aj� tylko dla relacji o rozmiarze M (liczba dost�pnychbuforów pami�ci g�ównej) lub mniejszym. Operacje tej klasy to � (grupowanie) i (usuwaniepowtórze�).

(3) Operacje dwuargumentowe na ca�ych relacjach. Do tej klasy nale�� wszystkie pozosta�e operacje— suma, cz��� wspólna, ró�nica, z��czenia i iloczyny w wersjach dla zbiorów oraz wielo-zbiorów. Aby zastosowa� algorytm jednoprzebiegowy, w ka�dej operacji, z wyj�tkiem sumywielozbiorów, przynajmniej jeden argument musi mie� rozmiar nie wi�kszy ni� M.

15.2.1. Algorytmy jednoprzebiegowe dla operacji krotkowychOperacjom krotkowym, �(R) i �(R), odpowiadaj� oczywiste algorytmy niezale�nie od tego, czyrelacja mie�ci si� w pami�ci g�ównej. Nale�y wczytywa� bloki relacji R jeden po drugim dobufora wej�ciowego, wykonywa� operacje na ka�dej krotce i przenosi� pobrane lub zrzutowanekrotki do bufora wyj�ciowego, co pokazano na rysunku 15.5. Poniewa� bufor wyj�ciowy mo�eby� buforem wej�ciowym innego operatora lub udost�pnia� dane u�ytkownikowi albo aplikacji,nie uwzgl�dniono bufora wyj�ciowego przy obliczaniu potrzebnej pami�ci. Dlatego koniecznejest tylko, aby — niezale�nie od B — M � 1 dla bufora wej�ciowego.

15.5. Przeprowadzanie selekcji lub projekcji na relacji R

Liczba dyskowych operacji wej�cia-wyj�cia zale�y tylko od sposobu udost�pniania relacji Rb�d�cej argumentem. Je�li R pocz�tkowo znajduje si� na dysku, koszt odpowiada skanowaniutabeli lub indeksu dla R. Koszt tego typu omówiono w punkcie 15.1.5 — zwykle wynosi B dlasklastrowanej R i T dla niesklastrowanej R. Warto jednak pami�ta� o wa�nym wyj�tku, kiedyw warunku selekcji sta�a porównywana jest z atrybutem, na którym oparty jest indeks. Wtedymo�na u�y� indeksu do pobrania podzbioru bloków przechowuj�cych R i poprawienia w tensposób wydajno�ci — cz�sto w znacznym stopniu.

Dodatkowe bufory pozwalaj� przyspieszy� operacje

Cho� operacje dzia�aj�ce krotka po krotce mo�na wykona� z jednym buforem wej�ciowymi jednym buforem wyj�ciowym, co pokazano na rysunku 15.5, cz�sto mo�na przyspieszy�przetwarzanie przez przydzia� dodatkowych buforów wej�ciowych. Pomys� ten po razpierwszy pojawi� si� w punkcie 13.3.2. Je�li R jest zapisana w cylindrach w przyleg�ychblokach, mo�na do buforów wczyta� ca�y cylinder. Koszt wyszukiwania i opó�nienia ob-rotowego ponoszony jest tylko dla jednego bloku na cylinder. Podobnie je�li dane wyj�cioweoperacji mo�na zapisa� w pe�nych cylindrach, zapis nie wi��e si� z prawie �adn� strat� czasu.

Page 33: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

636 15. WYKONYWANIE ZAPYTA�

15.2.2. Algorytmy jednoprzebiegowedla jednoargumentowych operacji na ca�ych relacjachRozwa�my teraz operacje jednoargumentowe stosowane do ca�ych relacji, a nie do pojedyn-czych krotek, czyli eliminowanie powtórze� () i grupowanie (�).

Eliminowanie powtórze�Aby wyeliminowa� powtórzenia, mo�na wczyta� jeden po drugim ka�dy blok z R, przy czymdla ka�dej krotki trzeba ustali�, czy:

(1) jest to pierwsze wyst�pienie danej krotki (wtedy nale�y skopiowa� j� do danych wyj�ciowych);(2) krotka pojawi�a si� ju� wcze�niej (wtedy nie nale�y jej zwraca�).

Aby to ustali�, trzeba przechowywa� w pami�ci jedn� kopi� ka�dej napotkanej krotki, copokazano na rysunku 15.6. Jeden bufor przechowuje w pami�ci jeden blok krotek z R, a pozo-sta�e M – 1 buforów mo�na wykorzysta� do przechowywania pojedynczych egzemplarzy ka�dejpobranej krotki.

15.6. Zarz�dzanie pami�ci� przy jednoprzebiegowym eliminowaniu powtórze�

Do zapisywania napotkanych krotek trzeba odpowiednio dobra� struktur� danych w pami�cig�ównej. Naiwne podej�cie to u�ycie listy krotek. Przy sprawdzaniu nowej krotki z R nale�ywtedy porówna� j� ze wszystkimi napotkanymi krotkami. Je�li nie jest równa �adnej z nich, trzebaskopiowa� j� do danych wyj�ciowych i doda� do przechowywanej w pami�ci listy pobranych krotek.

Je�li jednak w pami�ci g�ównej znajduje si� n krotek, ka�da nowa krotka zajmuje czas pro-cesora proporcjonalnie do n, dlatego ca�a operacja potrzebuje czasu proporcjonalnego do n2.Poniewa� n mo�e by� bardzo du�e, ilo�� potrzebnego czasu podaje w w�tpliwo�� za�o�enie, �ewa�ny jest tylko czas wykonywania dyskowych operacji wej�cia-wyj�cia. Dlatego w pami�cig�ównej potrzebna jest struktura umo�liwiaj�ca dodanie nowej krotki i okre�lenie w czasie ro-sn�cym powoli wzgl�dem n, czy dana krotka ju� si� pojawi�a.

Mo�na na przyk�ad u�y� tablicy z haszowaniem z du�� liczb� kube�ków lub jednej z wersjizbalansowanego binarnego drzewa wyszukiwa�1. Ka�da z tych struktur wymaga dodatkowego

1 Omówienie odpowiednich struktur pami�ci g�ównej mo�na znale�� w: A. V. Aho, J. E. Hopcroft i J. D.

Ullman, Data Structures and Algorithms, 1983 (wydanie polskie: Algorytmy i struktury danych, Helion, 2003).Przetwarzanie n elementów za pomoc� haszowania zajmuje �rednio O(n), a z wykorzystaniem drzew zba-lansowanych — O(n log n). W obu przypadkach wzrost d�ugo�ci czasu przetwarzania jest wystarczaj�cobliski liniowemu, jak na nasze potrzeby.

Page 34: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.2. ALGORYTMY JEDNOPRZEBIEGOWE 637

miejsca obok pami�ci potrzebnej na przechowywanie krotek. Przyk�adowo tablica z haszowa-niem w pami�ci g�ównej wymaga tablicy kube�ków i miejsca na wska�niki prowadz�ce do kro-tek w kube�ku. Jednak dodatkowe koszty s� niskie w porównaniu z pami�ci� potrzebn� na za-pisanie krotek, dlatego w tym rozdziale je pomini�to.

Zgodnie z tym za�o�eniem w M – 1 dost�pnych buforach pami�ci g�ównej mo�na zapisa�tyle krotek, ile mie�ci si� w M – 1 blokach relacji R. Je�li w pami�ci g�ównej ma zmie�ci� si�jedna kopia ka�dej niepowtarzalnej krotki z R, B((R)) musi by� nie wi�ksze ni� M – 1.Poniewa� zak�adamy, �e M jest znacznie wi�ksze ni� 1, zwykle stosowane jest uproszczoneprzybli�enie tej regu�y:

� B((R)) � M

Zauwa�my, �e zwykle nie mo�na okre�li� rozmiaru (R), nie obliczaj�c samego (R). Je�lirzeczywisty rozmiar b�dzie wi�kszy od oszacowanego (B((R)) jest wi�ksze od M), trzeba po-nie�� istotne koszty zwi�zane z prze�adowywaniem, poniewa� bloki przechowuj�ce ró�ne krot-ki z R trzeba cz�sto przenosi� do pami�ci i z niej usuwa�.

GrupowanieOperacja grupowania, �L, zwraca zero lub wi�cej atrybutów grupuj�cych i zwykle jeden lubwi�cej atrybutów zagregowanych. Po utworzeniu w pami�ci g�ównej jednego wpisu dla ka�dejgrupy — dla ka�dej warto�ci atrybutów grupuj�cych — mo�na przejrze� krotki z R po jednymbloku na raz. Wpis dla grupy sk�ada si� z warto�ci atrybutów grupuj�cych i zakumulowanejwarto�ci ka�dej agregacji.

� Dla agregacji MIN(a) lub MAX(a) nale�y zapisa� minimaln� lub maksymaln� warto�� atry-butu a dla wszystkich sprawdzonych ju� krotek z grupy. Je�li to konieczne, nale�y zmie-ni� minimum lub maksimum przy pobraniu ka�dej krotki z grupy.

� Dla agregacji COUNT nale�y doda� 1 dla ka�dej pobranej krotki z danej grupy.� Dla agregacji SUM(a) nale�y doda� warto�� atrybutu a do zakumulowanej sumy dla danej

grupy (pod warunkiem, �e a jest ró�ne od NULL).� AVG(a) to trudny przypadek. Trzeba przechowywa� dwie zakumulowane warto�ci — liczb�

krotek w grupie i sum� warto�ci atrybutu a w tych krotkach. Obie warto�ci nale�y oblicza�tak, jak dla agregacji COUNT i SUM. Po sprawdzeniu wszystkich krotek z R trzeba podzieli�sum� przez liczb� krotek, aby uzyska� �redni�.

Po wczytaniu wszystkich krotek z R do bufora wej�ciowego i u�yciu ich do obliczenia agre-gacji dla odpowiednich grup mo�na utworzy� dane wyj�ciowe, zapisuj�c krotk� dla ka�dej grupy.Warto zauwa�y�, �e do czasu sprawdzenia ostatniej krotki nie mo�na rozpocz�� tworzenia da-nych wyj�ciowych dla operacji �. Dlatego algorytm ten nie pasuje do modelu dzia�ania iteratorów.W metodzie Open trzeba zako�czy� grupowanie, zanim za pomoc� metody GetNext b�dzie mo�napobra� pierwsz� krotk�.

Aby przetwarzanie ka�dej krotki w pami�ci by�o wydajne, trzeba w pami�ci g�ównej u�y�struktury danych umo�liwiaj�cej znalezienie wpisu dla ka�dej grupy na podstawie warto�ciatrybutów grupuj�cych. Jak opisano to w kontek�cie operacji , dobrze nadaj� si� do tego ty-powe struktury danych stosowane w pami�ci g�ównej, takie jak tablice z haszowaniem i drzewazbalansowane. Nale�y jednak pami�ta�, �e kluczem wyszukiwania dla tych struktur s� tylkoatrybuty grupuj�ce.

Page 35: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

638 15. WYKONYWANIE ZAPYTA�

Operacje na niesklastrowanych danych

Wszystkie obliczenia dotycz�ce liczby dyskowych operacji wej�cia-wyj�cia wymaganychdla omawianych operacji s� oparte na za�o�eniu, �e relacje podane jako operandy s� skla-strowane. W — zwykle rzadkich — sytuacjach, kiedy operand R nie jest sklastrowany,wczytanie wszystkich krotek z R mo�e wymaga� T(R), a nie B(R) dyskowych operacjiwej�cia-wyj�cia. Zauwa�my jednak, �e mo�na przyj��, i� ka�da relacja zwracana przezoperator jest sklastrowana — nie ma powodu, aby zapisywa� tymczasow� relacj� w nie-sklastrowany sposób.

Liczba dyskowych operacji wej�cia-wyj�cia potrzebnych dla tego jednoprzebiegowego algo-rytmu wynosi B (jest tak w ka�dym jednoprzebiegowym algorytmie dla operatora jednoargu-mentowego). Liczba niezb�dnych buforów pami�ci M nie jest powi�zana z B w �aden prostysposób, cho� zwykle M ma warto�� mniejsz� ni� B. Problem polega na tym, �e wpisy dla grupmog� by� d�u�sze lub krótsze ni� krotki z R, a liczba grup mo�e by� równa liczbie krotek z Rlub mniejsza. Jednak zwykle wpisy dla grup nie s� d�u�sze od krotek z R, a grup jest du�omniej ni� krotek.

15.2.3. Algorytmy jednoprzebiegowedla operacji dwuargumentowychDalej opisano operacje dwuargumentowe — sum�, cz��� wspóln�, ró�nic�, iloczyn i z��czenie.Poniewa� w niektórych przypadkach trzeba odró�ni� wersje operatorów oparte na zbiorachi wielozbiorach, wyst�puj� przy nich indeksy dolne Z (dla zbiorów) i W (dla wielozbiorów).Przyk�adowo �W oznacza sum� wielozbiorów, a –Z — ró�nic� zbiorów. Aby upro�ci� omawia-nie z��cze�, uwzgl�dniono tylko z��czenia naturalne. Z��czenie równo�ciowe mo�na zaimple-mentowa� w ten sam sposób (po odpowiednim przemianowaniu atrybutów), a z��czeniawarunkowe mo�na potraktowa� jak iloczyn lub z��czenie równo�ciowe, po którym nast�pujeselekcja dla warunków niewyra�alnych w z��czeniu równo�ciowym.

Sum� wielozbiorów mo�na obliczy� za pomoc� bardzo prostego algorytmu jednoprzebie-gowego. Aby obliczy� R �W S, nale�y skopiowa� do danych wyj�ciowych ka�d� krotk� z R,a nast�pnie z S, tak jak w przyk�adzie 15.3. Liczba dyskowych operacji wej�cia-wyj�cia to B(R)+ B(S), jak zawsze w jednoprzebiegowych algorytmach na operandach R i S, natomiast M = 1jest wystarczaj�c� warto�ci� niezale�nie od wielko�ci R i S.

Inne operacje dwuargumentowe wymagaj� wczytania mniejszego z operandów R i S dopami�ci g�ównej oraz utworzenia odpowiedniej struktury danych, tak aby krotki mo�na by�oszybko wstawia� i znajdowa�, co opisano w punkcie 15.2.2. Tak jak wcze�niej, wystarczaj�cajest tablica z haszowaniem lub drzewo zbalansowane. Dlatego w przybli�eniu mo�na okre�li�wymóg dla operacji dwuargumentowych na relacjach R i S, je�li maj� by� wykonywane w jednymprzebiegu:

� min(B(R), B(S)) � M

Ujmijmy to dok�adniej — jeden bufor s�u�y do wczytywania bloków wi�kszej relacji, na-tomiast oko�o M buforów trzeba na ca�� mniejsz� relacj� i jej struktur� danych przechowywan�w pami�ci g�ównej.

Dalej przedstawiono szczegó�y ró�nych operacji. W ka�dym przypadku za�o�ono, �e R jestwi�ksz� z relacji, dlatego S jest przechowywana w pami�ci g�ównej.

Page 36: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.2. ALGORYTMY JEDNOPRZEBIEGOWE 639

Suma zbiorówNale�y wczyta� S do M – 1 buforów w pami�ci g�ównej i zbudowa� u�atwiaj�c� wyszukiwaniestruktur�, której kluczem wyszukiwania jest ca�a krotka. Wszystkie krotki s� te� kopiowane dodanych wyj�ciowych. Nast�pnie trzeba wczyta� jeden po drugim ka�dy blok z R do M-tegobufora. Dla ka�dej krotki t z R trzeba sprawdzi�, czy t znajduje si� w S. Je�li nie, nale�y sko-piowa� t do danych wyj�ciowych. Je�eli t wyst�puje w S, t mo�na pomin��.

Cz�� wspólna zbiorówNale�y wczyta� S do M – 1 buforów i zbudowa� u�atwiaj�c� wyszukiwanie struktur�, którejkluczem wyszukiwania s� ca�e krotki. Trzeba wczyta� ka�dy blok R i dla ka�dej krotki z Rsprawdzi�, czy t znajduje si� tak�e w S. Je�li tak, nale�y skopiowa� t do danych wyj�ciowych;w przeciwnym razie t mo�na pomin��.

Ró�nica zbiorówPoniewa� ró�nica nie jest przemienna, trzeba rozró�ni� wyra�enie R –Z S od S –Z R (nadalobowi�zuje za�o�enie, �e R to wi�ksza relacja). W obu przypadkach nale�y wczyta� S do M – 1buforów i zbudowa� u�atwiaj�c� wyszukiwanie struktur�, której kluczem wyszukiwania s� ca�ekrotki.

Aby obliczy� R –Z S, trzeba wczyta� ka�dy blok z R i sprawdzi� ka�d� krotk� t z tego bloku.Je�li t znajduje si� w S, nale�y pomin�� t; w przeciwnym razie trzeba skopiowa� t do danychwyj�ciowych.

Aby obliczy� S –Z R, tak�e trzeba wczyta� wszystkie bloki R i po kolei sprawdzi� ka�d�krotk� t. Je�li t znajduje si� w S, nale�y usun�� t z przechowywanej w pami�ci g�ównej kopii S.Je�eli t nie wyst�puje w S, nie trzeba nic robi�. Po sprawdzeniu wszystkich krotek z R mo�naskopiowa� do danych wyj�ciowych wszystkie pozosta�e krotki z S.

Cz�� wspólna wielozbiorówNale�y wczyta� S do M – 1 buforów i powi�za� ka�d� warto�� krotki z licznikiem, który pocz�t-kowo mierzy liczb� wyst�pie� krotki w S. Poszczególne kopie krotki t nie s� przechowywaneosobno. Zamiast tego nale�y zapisa� jedn� kopi� t i powi�za� j� z licznikiem okre�laj�cym liczb�wyst�pie� t.

Je�li powtórze� jest niewiele, struktura ta mo�e zaj�� nieco wi�cej ni� B(S) bloków, cho�cz�sto pozwala zmniejszy� S. Dlatego nadal obowi�zuje za�o�enie, �e B(S) � M wystarczy dodzia�ania algorytmu jednoprzebiegowego, cho� ten warunek to tylko przybli�enie.

Nast�pnie trzeba wczyta� ka�dy blok R i dla ka�dej krotki t z R sprawdzi�, czy t wyst�pujew S. Je�li nie, mo�na pomin�� t — krotka ta nie nale�y do cz��ci wspólnej. Je�eli jednak t po-jawia si� w S, a licznik powi�zany z t ma warto�� dodatni�, trzeba doda� t do danych wyj�cio-wych i zmniejszy� licznik o 1. Je�li t wyst�puje w S, jednak licznik doszed� do 0, nie nale�yzwraca� t — w danych wyj�ciowych znajduje si� ju� tyle kopii t, ile istnia�o ich w S.

Ró�nica wielozbiorówAby obliczy� S –W R, nale�y wczyta� krotki z S do pami�ci g�ównej i ustali� liczb� wyst�pie�krotek o ró�nych warto�ciach (tak jak dla cz��ci wspólnej wielozbiorów). Przy wczytywaniuka�dej krotki t z R nale�y sprawdzi�, czy wyst�puje ona w S. Je�li tak, trzeba zmniejszy� war-to�� powi�zanego licznika. Na koniec trzeba skopiowa� z pami�ci g�ównej do danych wyj�cio-wych ka�d� krotk� o pozytywnej warto�ci licznika (warto�� ta wyznacza liczb� kopii).

Aby obliczy� R –W S, tak�e trzeba wczyta� krotki z S do pami�ci g�ównej i ustali� liczb�wyst�pie� ró�nych krotek. Krotk� t z licznikiem o warto�ci c mo�na traktowa� jak c powodów,

Page 37: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

640 15. WYKONYWANIE ZAPYTA�

aby nie kopiowa� t do danych wyj�ciowych przy wczytywaniu krotek z R. Przy wczytywaniukrotki t z R nale�y sprawdzi�, czy t wyst�puje w S. Je�li nie, t kopiowana jest do danych wyj-�ciowych. Je�eli t pojawia si� w S, trzeba sprawdzi� warto�� c powi�zan� z t. Je�li c = 0, nale�yskopiowa� t do danych wyj�ciowych. Przy c > 0 t nie jest kopiowana, natomiast trzeba zmniejszy�warto�� c o 1.

IloczynNale�y wczyta� S do M – 1 buforów pami�ci g�ównej. Nie jest potrzebna �adna specjalna struk-tura danych. Nast�pnie wczytywany jest ka�dy blok z R. Ka�d� krotk� t z R nale�y z��czy�t z ka�d� krotk� S z pami�ci g�ównej. Z��czone krotki trzeba doda� do danych wyj�ciowych.

Algorytm ten wymaga du�ej ilo�ci czasu procesora na krotk� z R, poniewa� ka�d� z nichtrzeba dopasowa� do M – 1 bloków pe�nych krotek. Jednak dane wyj�ciowe tak�e s� du�e,a czas w przeliczeniu na krotk� z tych danych jest krótki.

Z��czenie naturalneW tym i innych algorytmach z��czenia przyj�to, �e relacja R(X, Y) jest z��czana z S(Y, Z),gdzie Y reprezentuje wszystkie atrybuty wspólne dla R i S, X to wszystkie atrybuty z R, którenie wyst�puj� w S, a Z to atrybuty z S nieobecne w R. Nadal zak�adamy, �e S to mniejsza relacja.Aby obliczy� z��czenie naturalne, nale�y wykona� nast�puj�ce operacje.

(1) Wczyta� wszystkie krotki z S i umie�ci� je w pami�ci g�ównej we wspomagaj�cej wyszu-kiwanie strukturze (z atrybutami Y jako kluczem wyszukiwania). Mo�na wykorzysta� nato M – 1 bloków pami�ci.

(2) Wczyta� ka�dy blok z R do jednego pozosta�ego bufora pami�ci g�ównej. U�ywaj�c struk-tury u�atwiaj�cej wyszukiwanie, nale�y dla ka�dej krotki t z R znale�� krotki z S o zgod-nych atrybutach Y. Dla ka�dej pasuj�cej krotki z S trzeba utworzy� krotk� przez z��czeniejej z t. Wynikowa krotka jest umieszczana w danych wyj�ciowych.

Podobnie jak wszystkie jednoprzebiegowe algorytmy dwuargumentowe, ten wymaga B(R)+ B(S) dyskowych operacji wej�cia-wyj�cia do wczytania operandów. Dzia�a dla B(S) � M – 1(w przybli�eniu dla B(S) � M).

Nie omawiamy tu z��cze� innych ni� naturalne. Warto pami�ta�, �e z��czenie równo�ciowejest obliczane w zasadzie tak samo, jednak trzeba uwzgl�dni� fakt, i� równe atrybuty z obu re-lacji mog� mie� ró�ne nazwy. Z��czenie warunkowe, które nie jest z��czeniem równo�ciowym,mo�na zast�pi� z��czeniem równo�ciowym lub iloczynem, po którym nast�puje selekcja.

15.2.4. wiczenia do podrozdzia�u 15.2wiczenie 15.2.1. Dla ka�dej z podanych operacji napisz iterator z wykorzystaniem algorytmuopisanego w tej sekcji: a) projekcja, b) usuwanie powtórze� (), c) grupowanie (�L), d) sumazbiorów, e) cz��� wspólna zbiorów, f) ró�nica zbiorów, g) cz��� wspólna wielozbiorów, h) ró�-nica wielozbiorów, i) iloczyn, j) z��czenie naturalne.

wiczenie 15.2.2. Dla ka�dego z operatorów z �wiczenia 15.2.1 okre�l, czy operator jest blokuj�cy(czyli czy pierwsze dane wyj�ciowe mo�na utworzy� dopiero po wczytaniu wszystkich danychwej�ciowych). Ujmijmy to inaczej — operator blokuj�cy to taki, dla którego jedyne mo�liweiteratory wykonuj� wszystkie wa�ne zadania w funkcji Open.

Page 38: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.3. Z��CZENIA ZAGNIE�D�ONE 641

wiczenie 15.2.3. W tabeli 15.9 pokazano wymogi dotycz�ce pami�ci i dyskowych operacjiwej�cia-wyj�cia dla algorytmów opisanych w tym i nast�pnym podrozdziale. Za�o�ono jednak,�e wszystkie argumenty s� sklastrowane. Jak zmieni� si� warto�ci, je�li jeden lub oba argumentynie s� sklastrowane?

! wiczenie 15.2.4. Przedstaw algorytmy jednoprzebiegowe dla ka�dego z poni�szych operato-rów z rodziny z��cze�:

a) R S przy za�o�eniu, �e R mie�ci si� w pami�ci (definicj� z��czenia cz��ciowego przed-stawiono w �wiczeniu 2.4.8).

b) R S przy za�o�eniu, �e S mie�ci si� w pami�ci. c) R S przy za�o�eniu, �e R mie�ci si� w pami�ci (definicj� nierównoz��czenia cz��cio-

wego przedstawiono w �wiczeniu 2.4.9). d) R S przy za�o�eniu, �e S mie�ci si� w pami�ci. e) R L S przy za�o�eniu, �e R mie�ci si� w pami�ci (definicje z��cze� zewn�trznych zawiera

punkt 5.2.7). f) R L S przy za�o�eniu, �e S mie�ci si� w pami�ci. g) R R S przy za�o�eniu, �e R mie�ci si� w pami�ci. h) R R S przy za�o�eniu, �e S mie�ci si� w pami�ci. i) R S przy za�o�eniu, �e R mie�ci si� w pami�ci.

15.3. Z��czenia zagnie�d�onePrzed przej�ciem do bardziej z�o�onych algorytmów przedstawionych w nast�pnych podroz-dzia�ach warto przyjrze� si� rodzinie algorytmów dla operatora z��czenia zagnie�d�onego(z p�tl�). Algorytmy te wykonuj� w pewnym sensie pó�tora przebiegu, poniewa� w ka�dej wer-sji dla jednego z dwóch argumentów krotki wczytywane s� tylko raz, natomiast dla drugiego —wielokrotnie. Z��cze� zagnie�d�onych mo�na u�ywa� dla relacji dowolnej wielko�ci. Nie jestkonieczne, aby jedna z relacji mie�ci�a si� w pami�ci g�ównej.

15.3.1. Krotkowe z��czenia zagnie�d�oneNajprostsza odmiana z��cze� zagnie�d�onych obejmuje p�tle przechodz�ce po poszczególnychkrotkach u�ywanych relacji. W tym algorytmie, krotkowym z��czeniu zagnie�d�onym, z��czenieR(X, Y) S(Y, Z) obliczane jest tak:

FOR ka�da krotka s z S DO FOR ka�da krotka r z R DO IF r i s mo�na z��czy w krotk� t THEN zwró t;

Page 39: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

642 15. WYKONYWANIE ZAPYTA�

Przy nieostro�nym buforowaniu bloków relacji R i S algorytm mo�e wymaga� a� T(R)T(S)dyskowych operacji wej�cia-wyj�cia. Jednak w wielu sytuacjach algorytm mo�na zmodyfiko-wa�, tak aby znacznie obni�y� koszty. Jedn� z mo�liwo�ci jest u�ycie indeksu na atrybucie lubatrybutach z R uwzgl�dnianych w z��czeniu, aby znale�� krotki z R pasuj�ce do danej krotkiz S bez konieczno�ci wczytywania ca�ej relacji R. Z��czenia oparte na indeksach omówionow punkcie 15.6.3. Drugie usprawnienie wymaga starannego okre�lenia podzia�u krotek z R i Sna bloki. Nale�y wykorzysta� maksymalnie du�o pami�ci, aby zmniejszy� liczb� dyskowychoperacji wej�cia-wyj�cia przy przechodzeniu przez p�tl� wewn�trzn�. W punkcie 15.3.3 omó-wiono wersj� z��cze� zagnie�d�onych opart� na blokach.

15.3.2. Iterator dla krotkowych z��cze� zagnie�d�onychZalet� z��cze� zagnie�d�onych jest to, �e dobrze wpasowuj� si� w model iteratorów, co — jakopisano w punkcie 16.7.3 —w niektórych sytuacjach pozwala unikn�� zapisywania relacji po-�rednich na dysku. Iterator dla operacji R S mo�na �atwo utworzy� na podstawie iteratorówdla R i S, które obs�uguj� metody R.Open() i inne opisane w punkcie 15.1.6. Kod trzech metoditeratora dla z��cze� zagnie�d�onych pokazano na listingu 15.7 (przyj�to za�o�enie, �e R i S nies� puste).

Open() { R.Open(); S.Open(); s := S.GetNext();}

GetNext() { REPEAT { r := R.GetNext(); IF (r = NotFound) { /* Pobrano ca�� relacj� R dla obecnego s. */ R.Close(); s := S.GetNext(); IF (s = NotFound) RETURN NotFound; /* Pobrano ca�e relacje R i S. */ R.Open(); r := R.GetNext(); } } UNTIL (r i s zostan� z��czone); RETURN z��czenie r i s;}

Close() { R.Close(); S.Close();}

15.7. Metody iteratora dla krotkowych z��cze� zagnie�d�onych dla relacji R i S

Page 40: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.3. Z��CZENIA ZAGNIE�D�ONE 643

15.3.3. Algorytm z��czenia zagnie�d�onegoopartego na blokachMo�na usprawni� przedstawione w punkcie 15.3.1 krotkowe z��czenie zagnie�d�one. Przy ob-liczaniu R S warto zadba� o:

(1) zapewnienie dost�pu do obu argumentów (relacji) wed�ug bloków,(2) wykorzystanie maksymalnej ilo�ci pami�ci g�ównej do zapisania krotek nale��cych do

relacji S (relacji z p�tli zewn�trznej).

Punkt 1. gwarantuje, �e przy przechodzeniu w wewn�trznej p�tli po krotkach R do wczyta-nia R potrzebna b�dzie jak najmniejsza liczba dyskowych operacji wej�cia-wyj�cia. Punkt 2.pozwala z��czy� ka�d� wczytan� krotk� z R z tyloma krotkami z S, ile mie�ci si� w pami�ci.

Tak jak w punkcie 15.2.3, za�ó�my, �e B(S) � B(R). Przyjmijmy jednak, �e B(S) > M (�ad-na relacja nie mie�ci si� w ca�o�ci w pami�ci g�ównej). Trzeba wielokrotnie wczyta� M – 1 blo-ków z S do buforów pami�ci g�ównej. Dla krotek S w pami�ci g�ównej nale�y utworzy� wspo-magaj�c� wyszukiwanie struktur�, której klucze wyszukiwania to wspólne atrybuty R i S.Nast�pnie trzeba przej�� przez wszystkie bloki relacji R, wczytuj�c po kolei ka�dy z nich doostatniego bloku pami�ci. Wtedy mo�na porówna� wszystkie krotki bloku R ze wszystkimikrotkami z bloków S wczytanych do pami�ci g�ównej. Pasuj�ce krotki nale�y zwróci� jako z��-czon� krotk�. Struktura p�tli zagnie�d�onej z tego algorytmu jest widoczna w bardziej formal-nym jego uj�ciu na listingu 15.8. Algorytm z listingu jest czasem nazywany blokowym z��cze-niem zagnie�d�onym. Dalej nazywamy go po prostu z��czeniem zagnie�d�onym, poniewa� jest towersja rozwi�zania z p�tl� zagnie�d�on� najcz��ciej stosowana w praktyce.

FOR ka�dej porcji M-1 bloków S DO BEGIN wczytaj bloki do buforów pami�ci g�ównej; uporz�dkuj krotki we wspomagaj�cej wyszukiwanie strukturze, której kluczem wyszukiwania s� wspólne atrybuty R i S; FOR ka�dego bloku b z R DO BEGIN wczytaj b do pami�ci g�ównej; FOR ka�dej krotki t z b DO BEGIN znajd w pami�ci g�ównej krotki z S, które mo�na z��czy z t; zwró z��czenie t z ka�d� z takich krotek; END; END;END;

15.8. Algorytm z��czenia zagnie�d�onego

Program z listingu 15.8 wygl�da tak, jakby mia� trzy p�tle zagnie�d�one. Je�li jednak spoj-rze� na kod na odpowiednim poziomie abstrakcji, w rzeczywisto�ci istniej� tylko dwie p�tle.Pierwsza, zewn�trzna, przechodzi po krotkach z S. Dwie pozosta�e przechodz� po krotkach z R— u�yto tu dwóch p�tli, aby podkre�li� fakt, �e kolejno�� przechodzenia po krotkach z R niejest dowolna. Trzeba sprawdza� krotki blok po bloku (s�u�y do tego druga p�tla), a w blokunale�y sprawdzi� wszystkie krotki przed przej�ciem do nast�pnego bloku (odpowiada za totrzecia p�tla).

Page 41: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

644 15. WYKONYWANIE ZAPYTA�

Przyk�ad 15.4. Niech B(R) = 1000, B(S) = 500, a M = 101. 100 bloków pami�ci pos�u�y dobuforowania S w 100-blokowych cz��ciach, dlatego zewn�trzna p�tla z listingu 15.8 zostaniewykonana pi�� razy. W ka�dej iteracji trzeba wykona� 100 dyskowych operacji wej�cia-wyj�ciado wczytania cz��ci relacji S, a poniewa� w drugiej p�tli trzeba wczyta� ca�� relacj� R, zajmujeto 1000 dyskowych operacji wej�cia-wyj�cia. Tak wi�c ��czna liczba takich operacji to 5500.

Zauwa�my, �e po zamianie rolami relacji R i S algorytm b�dzie wymaga� nieco wi�cej dys-kowych operacji wej�cia-wyj�cia. Trzeba 10 razy wykona� zewn�trzn� p�tl�, a w ka�dym po-wtórzeniu wykona� 600 operacji, co w sumie daje ich 6000. Przetwarzanie mniejszej relacjiw zewn�trznej p�tli zwykle daje pewne korzy�ci. �

15.3.4. Analiza z��cze� zagnie�d�onychAnalizy z przyk�adu 15.4 mo�na powtórzy� dla dowolnego B(R), B(S) i M. Przy za�o�eniu, �e Sto mniejsza relacja, liczba jej cz��ci (iteracji zewn�trznej p�tli) wynosi B(S)/(M – 1). W ka�dejiteracji nale�y wczyta� M – 1 bloków z S i B(R) bloków z R. Liczba dyskowych operacji wej-�cia-wyj�cia wynosi wi�c B(S)(M – 1 + B(R))/(M – 1) lub B(S) + (B(S)B(R))/(M – 1).

Przy za�o�eniu, �e M, B(S) i B(R) to du�e warto�ci, jednak M jest najmniejsz� z nich, przy-bli�eniem powy�szego wzoru jest B(S)B(R)/M. Oznacza to, �e koszt jest proporcjonalny do ilo-czynu rozmiarów obu relacji podzielonego przez ilo�� dost�pnej pami�ci g�ównej. Je�li obierelacje s� du�e, mo�na uzyska� znacznie wy�sz� wydajno�� ni� dla z��cze� zagnie�d�onych.Jednak dla ma�ych relacji, takich jak w przyk�adzie 15.4, koszt dla takich z��cze� nie jest du�owy�szy ni� dla z��czenia jednoprzebiegowego, które tu wymaga�oby 1500 operacji. W rzeczywi-sto�ci dla B(S) � M – 1 z��czenie zagnie�d�one dzia�a tak samo jak jednoprzebiegowy algorytmz��czenia opisany w punkcie 15.2.3.

Cho� z��czenie zagnie�d�one zwykle nie jest najwydajniejszym algorytmem z��czenia, war-to zauwa�y�, �e w niektórych wczesnych relacyjnych systemach DBMS by�a to jedyna dost�p-na metoda. Nawet obecnie jest ona czasem potrzebna jako podprocedura w wydajniejszych al-gorytmach z��czenia, na przyk�ad wtedy, kiedy du�a liczba krotek z ka�dej relacji ma t� sam�warto�� atrybutów u�ywanych przy z��czeniu. Przyk�ad, w którym z��czenie zagnie�d�one jestniezb�dne, przedstawiono w punkcie 15.4.6.

15.3.5. Przegl�d opisanych wcze�niej algorytmówW tabeli 15.9 pokazano wymogi zwi�zane z pami�ci� g�ówn� i dyskowymi operacjami wej�cia-wyj�cia dla algorytmów omówionych w podrozdzia�ach 15.2 i 15.3. Wymogi dotycz�ce pami�cidla operacji � i s� bardziej z�o�one — M = B to tylko lu�ne przybli�enie. Dla � M zale�y odliczby grup, a dla — od liczby ró�nych krotek.

Operatory Potrzebne M (w przybli�eniu) Operacje dyskowe Punkt

�, � 1 B 15.2.1

�, B B 15.2.2

�, �, –, ×, min(B(R), B(S)) B(R) + B(S) 15.2.3

Dowolne M � 2 B(R)B(S)/M 15.3.3

15.9. Wymogi zwi�zane z pami�ci� g�ówn� i dyskowymi operacjami wej�cia-wyj�ciadla algorytmów jednoprzebiegowych oraz zagnie�d�onych

Page 42: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.4. ALGORYTMY DWUPRZEBIEGOWE OPARTE NA SORTOWANIU 645

15.3.6. wiczenia do podrozdzia�u 15.3wiczenie 15.3.1. Przedstaw trzy metody iteratora dla wersji z��cze� zagnie�d�onych opartejna blokach.

wiczenie 15.3.2. Za�ó�my, �e B(R) = B(S) = 10 000, a M = 1000. Oblicz koszt dyskowychoperacji wej�cia-wyj�cia dla z��czenia zagnie�d�onego.

wiczenie 15.3.3. U�ywane s� relacje z �wiczenia 15.3.2. Jaka warto�� M jest potrzebna do ob-liczenia R S za pomoc� algorytmu zagnie�d�onego w nie wi�cej ni�: a) 100 000, !b) 25 000,!c) 15 000 dyskowych operacji wej�cia-wyj�cia?

! wiczenie 15.3.4. Mo�e si� wydawa�, �e je�li R i S s� niesklastrowane, z��czenie zagnie�d�onewymaga oko�o T(R)T(S)/M dyskowych operacji wej�cia-wyj�cia.

a) Jak mo�na w istotny sposób zmniejszy� ten koszt? b) Jak mo�na przeprowadzi� z��czenie zagnie�d�one, je�li tylko jedna relacja (R lub S) jest

niesklastrowana? Rozwa� zarówno przypadek, kiedy niesklastrowana jest wi�ksza relacja,jak i sytuacj�, kiedy niesklastrowana jest mniejsza relacja.

! wiczenie 15.3.5. Iterator z listingu 15.7 nie dzia�a poprawnie, je�li R lub S jest pusta.Zmodyfikuj metody, tak aby dzia�a�y nawet wtedy, kiedy jedna lub obie relacje s� puste.

15.4. Algorytmy dwuprzebiegowe opartena sortowaniuOd tego miejsca rozpoczyna si� omówienie algorytmów wieloprzebiegowych. S�u�� one do wy-konywania operacji algebry relacji na relacjach zbyt du�ych dla jednoprzebiegowych algoryt-mów z podrozdzia�u 15.2. Skoncentrowano si� tu na algorytmach dwuprzebiegowych, w którychdane z operandów (relacji) s� wczytywane do pami�ci g�ównej, przetwarzane w pewien sposób,ponownie zapisywane na dysku, a nast�pnie powtórnie wczytywane z dysku w celu doko�cze-nia operacji. Naturalnie mo�na rozwin�� t� technik� do dowolnej liczby przebiegów, w którychdane s� wielokrotnie wczytywane do pami�ci g�ównej. Skoncentrowano si� jednak na algoryt-mach dwuprzebiegowych, poniewa�:

a) dwa przebiegi to zwykle wystarczaj�ca liczba nawet dla bardzo du�ych relacji, b) uogólnienie na wi�cej ni� dwa przebiegi nie jest trudne. Omówiono je w punkcie 15.4.1

i — bardziej ogólnie — w podrozdziale 15.8.

Na pocz�tku opisano implementacj� operatora sortowania, �, aby zilustrowa� ogólne podej-�cie — podzia� relacji R, dla której B(R) > M, na porcje o wielko�ci M, sortowanie ich, a na-st�pnie przetwarzanie posortowanych podlist, tak �e w danym momencie w pami�ci g�ównejpotrzebny jest tylko jeden blok z posortowan� podlist�.

Page 43: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

646 15. WYKONYWANIE ZAPYTA�

15.4.1. Dwuetapowe wielo�cie�kowe sortowanie przez scalanieBardzo du�e relacje mo�na sortowa� w dwóch przebiegach, u�ywaj�c algorytmu dwuetapowegowielo�cie�kowego sortowania przez scalanie (DWSPS; ang. two-phase, multiway merge sort). Za�ó�-my, �e przy sortowaniu mo�na u�y� M buforów w pami�ci g�ównej. DWSPS sortuje relacj� Rw nast�puj�cy sposób.

� Etap 1. Nale�y wielokrotnie zape�ni� M buforów nowymi krotkami z R i posortowa� je,u�ywaj�c algorytmu sortowania w pami�ci g�ównej. Ka�d� posortowan� podlist� trzeba za-pisa� w pami�ci drugiego stopnia.

� Etap 2. Nale�y scali� posortowane podlisty. Ten etap wymaga, aby istnia�o co najwy�ej M –1 posortowanych podlist, co ogranicza rozmiar R. Potrzebny jest jeden blok wej�ciowy naka�d� posortowan� podlist� i jeden blok na dane wyj�ciowe. Wykorzystanie buforów po-kazano na rysunku 15.10. Wska�nik do ka�dego bloku wej�ciowego okre�la pierwszy z posor-towanych elementów, którego nie przeniesiono jeszcze do danych wyj�ciowych. Posortowanepodlisty scalane s� w jedn� posortowan� list� wszystkich rekordów w nast�puj�cy sposób.

(1) Znajdowanie najmniejszego klucza w�ród pierwszych niewybranych elementów nawszystkich listach. Poniewa� porównywanie odbywa si� w pami�ci g�ównej, odpo-wiednie jest wyszukiwanie liniowe. Liczba instrukcji maszynowych jest proporcjonalnado liczby podlist. Je�li jednak trzeba, mo�na zastosowa� metod� opart� na kolejkachpriorytetowych2. Czas znajdowania najmniejszego elementu jest wtedy proporcjonalnydo logarytmu liczby podlist.

(2) Przenoszenie najmniejszego elementu na pierwsz� dost�pn� pozycj� w bloku danychwyj�ciowych.

(3) Je�li blok danych wyj�ciowych jest pe�ny, nale�y zapisa� go na dysku i ponownie za-inicjowa� ten sam bufor w pami�ci g�ównej dla nast�pnego bloku wyj�ciowego.

(4) Je�eli blok, z którego pobrano najmniejszy element, jest ju� pusty, nale�y wczyta�kolejny blok tej samej posortowanej podlisty do bufora zajmowanego przez opró�nionyblok. Je�li nie ma wi�cej bloków, bufor pozostaje pusty i przy dalszym wyszukiwaniunajmniejszego z pozosta�ych elementów nie nale�y uwzgl�dnia� elementów z tej listy.

15.10. Uporz�dkowanie pami�ci g�ównej dla wielo�cie�kowego scalania

2 Zobacz: A. V. Aho i J. D. Ullman, Foundations of Computer Science, Computer Science Press, 1992.

Page 44: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.4. ALGORYTMY DWUPRZEBIEGOWE OPARTE NA SORTOWANIU 647

Aby DWSPS dzia�a�, nie mo�e istnie� wi�cej ni� M – 1 podlist. Za�ó�my, �e R mie�ci si�w B blokach. Poniewa� ka�da podlista sk�ada si� z M bloków, liczba podlist wynosi B/M. Dlategokonieczne jest, aby: B/M � M – 1 lub B � M(M – 1) (oko�o B � M2).

Algorytm wymaga wczytania w pierwszym przebiegu B bloków i kolejnych B dyskowychoperacji wej�cia-wyj�cia na zapis posortowanych podlist. Ka�da posortowana podlista jest po-nownie wczytywana w drugim przebiegu, co daje w sumie 3B operacji. Je�li — jak zwykle —pomijamy koszty zapisu wyniku na dysku (poniewa� wynik mo�na przekazywa� w potoku bezzapisywania na dysku), 3B to wszystkie operacje potrzebne dla operatora sortowania �. Je�elijednak trzeba zapisa� wynik na dysku, niezb�dnych jest 4B operacji.

Przyk�ad 15.5. Za�ó�my, �e bloki maj� po 64 000 bajtów, a pami�� g�ówna ma jeden gigabajtpojemno�ci. M ma wi�c warto�� 16 000. Dlatego relacj� mieszcz�c� si� w B blokach mo�na po-sortowa�, o ile B nie wynosi wi�cej ni� (16 000)2 = 228. Poniewa� bloki maj� rozmiar 64 000 = 216,relacj� mo�na posortowa�, o ile ma nie wi�cej ni� 244 bajtów, czyli 16 terabajtów. �

W przyk�adzie 15.5 pokazano, �e nawet w przeci�tnym komputerze DWSPS wystarcza doposortowania w dwóch przebiegach wszystkich relacji, oprócz niezwykle du�ych. Je�li jednaknawet relacja jest wi�ksza, ten sam pomys� mo�na zastosowa� rekurencyjnie. Nale�y podzieli�relacj� na porcje o wielko�ci M(M – 1), wykorzysta� DWSPS do posortowania ka�dej z nich,a nast�pnie potraktowa� uzyskane posortowane listy jako podlisty w trzecim przebiegu.W podobny sposób rozwi�zanie mo�na rozwin�� do dowolnej liczby przebiegów.

15.4.2. Eliminowanie powtórze� za pomoc� sortowaniaAby wykona� operacj� (R) w dwóch przebiegach, nale�y posortowa� krotki z R w podlistach,tak jak w DWSPS. W drugim przebiegu dost�pn� pami�� g�ówn� trzeba wykorzysta� na prze-chowywanie jednego bloku z ka�dej posortowanej podlisty i jednego bloku wyj�ciowego, takjak w DWSPS. Jednak zamiast sortowa� dane w drugim przebiegu, nale�y wielokrotnie pobie-ra� pierwsz� (w kolejno�ci sortowania) niesprawdzon� krotk� t z wszystkich posortowanychpodlist. W danych wyj�ciowych trzeba zapisa� jedn� kopi� t, a z bloków wej�ciowych usun��wszystkie wyst�pienia t. W ten sposób dane wyj�ciowe b�d� zawiera� dok�adnie jedn� kopi�ka�dej krotki z R (krotki te b�d� posortowane). Kiedy blok wyj�ciowy jest pe�en (lub blok wej-�ciowy jest pusty), zarz�dzanie buforami odbywa si� tak jak w DWSPS.

Liczba dyskowych operacji wej�cia-wyj�cia w tym algorytmie (jak zawsze, z pomini�ciemobs�ugi danych wyj�ciowych) jest taka sama jak przy sortowaniu — 3B(R). Warto porówna� t�liczb� z warto�ci� B(R) dla algorytmu jednoprzebiegowego z punktu 15.2.2. Jednak algorytmdwuprzebiegowy dzia�a dla du�o wi�kszych plików ni� algorytm jednoprzebiegowy. W DWSPSdla algorytmu dwuprzebiegowego obowi�zuje wymóg B � M2, natomiast dla algorytmu jedno-przebiegowego — B � M. Ujmijmy to inaczej — wyeliminowanie powtórze� za pomoc� algorytmudwuprzebiegowego wymaga tylko )(RB bloków pami�ci g�ównej w porównaniu z B(R) blokówniezb�dnych w algorytmie jednoprzebiegowym.

15.4.3. Grupowanie i agregacja z wykorzystaniem sortowaniaAlgorytm dwuprzebiegowy dla operacji �L(R) przypomina algorytm dla operacji (R) lubDWSPS. Oto jego krótki opis.

Page 45: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

648 15. WYKONYWANIE ZAPYTA�

(1) Nale�y wczyta� do pami�ci krotki z R po M bloków na raz. Krotki trzeba posortowa�w ka�dym zbiorze M bloków, u�ywaj�c jako klucza sortowania atrybutów grupuj�cych z L.Ka�da posortowana podlista zapisywana jest na dysku.

(2) Trzeba u�y� jednego bufora pami�ci g�ównej na ka�d� podlist� i pocz�tkowo wczyta� dobufora pierwszy blok ka�dej podlisty.

(3) Nale�y wielokrotnie znajdowa� najmniejsz� warto�� klucza sortowania (atrybutów gru-puj�cych) w�ród pierwszych dost�pnych krotek z buforów. Warto�� ta, v, staje si� nast�pn�grup�, dla której:

(a) nast�puj� przygotowania do obliczenia wszystkich agregacji z listy L tej grupy; tak jakw punkcie 15.2.2, mo�na u�y� liczby elementów i sumy zamiast �redniej,

(b) sprawdzana jest ka�da krotka o kluczu sortowania v i nast�puje akumulacja warto�cidla potrzebnych agregacji,

(c) je�li bufor staje si� pusty, nale�y zast�pi� go nast�pnym blokiem z danej podlisty.

Kiedy nie ma ju� wi�cej krotek o kluczu sortowania v, nale�y zwróci� krotk� sk�adaj�c�si� z atrybutów grupuj�cych z L i powi�zanych warto�ci agregacji obliczonych dla grupy.

Dwuprzebiegowy algorytm dla , podobnie jak dla �, wymaga 3B(R) dyskowych operacjiwej�cia-wyj�cia i dzia�a dla B(R) � M2.

15.4.4. Algorytm obliczania sumy oparty na sortowaniuKiedy potrzebna jest suma wielozbiorów, jednoprzebiegowy algorytm z punktu 15.2.3 (w któ-rym po prostu kopiowane s� obie relacji) dzia�a niezale�nie od wielko�ci argumentów, dlategonie trzeba rozwa�a� dwuprzebiegowego algorytmu dla �W. Jednak jednoprzebiegowy algorytmdla �Z funkcjonuje tylko wtedy, kiedy przynajmniej jedna relacja mie�ci si� w pami�ci g�ównej,dlatego trzeba pozna� algorytm dwuprzebiegowy dla sumy zbiorów. Opisana metoda dzia�a dlacz��ci wspólnej i ró�nicy zbiorów oraz wielozbiorów, co opisano w punkcie 15.4.5. Aby obliczy�R �Z S, nale�y zmodyfikowa� DWSPS w nast�puj�cy sposób.

(1) W pierwszym kroku na podstawie R i S trzeba utworzy� posortowane podlisty.(2) Nale�y u�y� po jednym buforze pami�ci g�ównej na ka�d� podlist� z R i S oraz zainicjowa�

bufory pierwszym blokiem odpowiedniej podlisty.(3) Trzeba wielokrotnie znajdowa� pierwsz� krotk� t z wszystkich buforów, kopiowa� t do

danych wyj�ciowych i usuwa� z buforów wszystkie jej kopie (je�li R i S to zbiory, istniej�najwy�ej dwie kopie). Zarz�dzanie pustymi buforami wej�ciowymi i pe�nym buforemwyj�ciowym odbywa si� tak jak w DWSPS.

Zauwa�my, �e ka�da krotka z R i S jest wczytywana do pami�ci g�ównej dwukrotnie —przy tworzeniu podlist i jako element jednej z nich. Krotka jest ponadto raz zapisywana nadysku jako cz��� nowo utworzonej podlisty. Dlatego koszt dyskowych operacji wej�cia-wyj�ciawynosi 3(B(R) + B(S)).

Algorytm dzia�a, o ile ��czna liczba podlist dla dwóch relacji nie przekracza M – 1, poniewa�potrzebny jest jeden bufor na ka�d� podlist� i jeden na dane wyj�ciowe. Dlatego suma rozmia-rów obu relacji nie mo�e przekracza� M2 — B(R) + B(S) � M2.

Page 46: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.4. ALGORYTMY DWUPRZEBIEGOWE OPARTE NA SORTOWANIU 649

15.4.5. Obliczanie za pomoc� sortowaniacz��ci wspólnej i ró�nicyNiezale�nie od wersji (dla zbiorów lub wielozbiorów) algorytmy dzia�aj� w zasadzie tak samojak w punkcie 15.4.4, natomiast inaczej traktowane s� kopie krotki t na pocz�tku posortowa-nych podlist. W ka�dym algorytmie u�ywana jest krotka t najmniejsza (w kolejno�ci sortowa-nia) spo�ród wszystkich pozosta�ych w buforach wej�ciowych. Nale�y utworzy� dane wyj�ciowew opisany sposób, a nast�pnie usun�� wszystkie kopie t z buforów wej�ciowych.

� Dla cz��ci wspólnej zbiorów nale�y zwróci� t, je�li wyst�puje zarówno w R, jak i w S.� Dla cz��ci wspólnej wielozbiorów nale�y zwróci� t tyle razy, ile razy minimalnie wyst�-

puje w R i S. Zauwa�my, �e t nie jest zwracana, je�li liczba ta wynosi 0 (czyli t nie wyst�-puje w jednej lub obu relacjach).

� Dla ró�nicy zbiorów (R –Z S) nale�y zwróci� t wtedy i tylko wtedy, je�li wyst�puje w R,ale nie w S.

� Dla ró�nicy wielozbiorów (R –W S) nale�y zwróci� t tyle razy, ile wyst�puje w R, minusliczb� jej wyst�pie� w S. Oczywi�cie, je�li t pojawia si� w S przynajmniej tyle razy, co w R,w ogóle nie nale�y jej zwraca�.

W operacjach na wielozbiorach trzeba pami�ta� o pewnym drobiazgu. Przy liczeniu wyst�-pie� t mo�e si� okaza�, �e wszystkie pozosta�e krotki w buforze wej�ciowym to t. Wtedy w na-st�pnym bloku podlisty mog� pojawia� si� dalsze t. Dlatego je�li w buforze pozostaj� same t,trzeba wczyta� kolejny blok podlisty i kontynuowa� liczenie t. Proces ten mo�e obejmowa� kil-ka bloków i podlist.

Analizy dla tej rodziny algorytmów s� takie same jak dla algorytmu obliczania sumy zbiorówopisanego w punkcie 15.4.4. Potrzeba:

� 3(B(R) + B(S)) dyskowych operacji wej�cia-wyj�cia,� w przybli�eniu B(R) + B(S) � M2, aby algorytm móg� dzia�a�.

15.4.6. Prosty algorytm z��czenia oparty na sortowaniuIstnieje kilka sposobów na wykorzystanie sortowania do z��czenia du�ych relacji. Przed analiz�algorytmów zwrócimy uwag� na problem, który mo�e wyst�pi� przy z��czeniu, cho� nie doty-czy� wcze�niejszych operacji dwuargumentowych. Przy z��czeniu liczba krotek relacji, któremaj� t� sam� warto�� porównywanych atrybutów, a tym samym musz� jednocze�nie znajdowa�si� w pami�ci g�ównej, mo�e przekroczy� pojemno�� pami�ci. Skrajny przypadek wyst�puje,kiedy porównywane atrybuty maj� tylko jedn� warto��, dlatego ka�d� krotk� jednej relacjitrzeba z��czy� z wszystkimi krotkami drugiej. Wtedy nie ma innego wyboru, jak zastosowaniez��czenia zagnie�d�onego dla dwóch zbiorów krotek o identycznych warto�ciach porównywa-nych atrybutów.

Aby tego unikn��, mo�na spróbowa� zmniejszy� wykorzystanie pami�ci g�ównej przez inneelementy algorytmu i udost�pni� du�� liczb� buforów na krotki o danej warto�ci porównywa-nych atrybutów. W tym punkcie opisano algorytm, który zapewnia najwi�ksz� liczb� buforówna takie krotki. W punkcie 15.4.8 omówiono inny algorytm oparty na sortowaniu, który wy-maga mniej dyskowych operacji wej�cia-wyj�cia, ale mo�e prowadzi� do problemów przy du�ejliczbie krotek o tej samej warto�ci porównywanych atrybutów.

Page 47: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

650 15. WYKONYWANIE ZAPYTA�

Przy z��czeniu relacji R(X, Y) i S(Y, Z) oraz M blokach pami�ci g�ównej na bufory nale�ywykona� nast�puj�ce kroki.

(1) Posortowa� R algorytmem DWSPS z Y jako kluczem sortuj�cym.(2) W podobny sposób posortowa� S.(3) Scali� posortowane R i S. Wystarcz� do tego dwa bufory — jeden na aktualny blok z R

i drugi na aktualny blok z S. Poni�sze kroki s� wykonywane wielokrotnie.

(a) Wyszukiwanie najmniejszej warto�ci y porównywanych atrybutów Y na pocz�tku blo-ków R i S.

(b) Je�li y nie pojawia si� na pocz�tku drugiej relacji, nale�y usun�� krotki o kluczu sor-towania y.

(c) W przeciwnym razie w obu relacjach trzeba znale�� wszystkie krotki o kluczu sorto-wania y. Je�li trzeba, nale�y wczytywa� bloki z posortowan� relacj� R i (lub) S domomentu, kiedy wiadomo, �e w �adnej relacji nie ma ju� y. Mo�na do tego wykorzy-sta� M buforów.

(d) Zwracanie wszystkich krotek utworzonych przez z��czenie krotek z R i S o identycznejwarto�ci y atrybutów Y.

(e) Je�li w pami�ci g�ównej nie ma niesprawdzonych krotek z której� z relacji, nale�y dlatej relacji ponownie wczyta� dane do bufora.

Przyk�ad 15.6. Rozwa�my relacje R i S z przyk�adu 15.4. Przypominamy, �e relacje zajmuj�1000 i 500 bloków, a liczba buforów w pami�ci g�ównej to M = 101. Przy stosowaniu dla relacjialgorytmu DWSPS i zapisywaniu wyniku na dysku potrzeba czterech dyskowych operacjiwej�cia-wyj�cia na blok (po dwie na ka�dy etap). Dlatego sortowanie R i S wymaga 4(B(R) +B(S)) (6000) dyskowych operacji wej�cia-wyj�cia.

Przy scalaniu posortowanych R i S w celu znalezienia z��czonych krotek ka�dy blok z R i Swczytywany jest po raz pi�ty, co daje kolejnych 1500 operacji. Przy scalaniu zwykle potrzebnes� tylko dwa spo�ród 101 bloków pami�ci. Je�li jednak trzeba, mo�na wykorzysta� wszystkie101 bloków na krotki R i S o wspólnej warto�ci y atrybutów Y. Dlatego wystarczy, je�li dla�adnego y krotki z R i S o tej warto�ci atrybutów Y nie zajmuj� razem wi�cej ni� 101 bloków.

Zauwa�my, �e ��czna liczba dyskowych operacji wej�cia-wyj�cia w tym algorytmie to 7500(z��czenie zagnie�d�one z przyk�adu 15.4 wymaga�o ich 5500). Jednak z��czenie zagnie�d�one toz natury algorytm o z�o�ono�ci kwadratowej, dzia�aj�cy w czasie proporcjonalnym do B(R)B(S),natomiast koszt operacji wej�cia-wyj�cia w z��czeniu przez sortowanie ro�nie liniowo, propor-cjonalnie do B(R) + B(S). Jedynie sta�e czynniki i ma�y rozmiar przyk�adowych relacji (ka�dajest tylko 5 do 10 razy wi�ksza od pojemno�ci przydzielonych buforów) sprawiaj�, �e tu z��czeniezagnie�d�one jest wydajniejsze. �

15.4.7. Analiza prostego z��czenia przez sortowanieJak wspomniano w przyk�adzie 15.6, algorytm z punktu 15.4.6 wykonuje pi�� dyskowych ope-racji wej�cia-wyj�cia na ka�dy blok relacji podanych jako argumenty. Trzeba te� ustali�, jakdu�e musi by� M, aby proste z��czenie przez sortowanie dzia�a�o. Podstawowe ograniczeniedotyczy tego, �e mo�liwe musi by� przeprowadzenie dla relacji R i S dwuetapowego wielo-�cie�kowego sortowania przez scalanie. W punkcie 15.4.1 stwierdzono, �e wymaga to, aby B(R)� M2 i B(S) � M2. Ponadto konieczne jest, aby wszystkie krotki o tej samej warto�ci atrybutówY mie�ci�y si� w M buforach. Podsumujmy.

Page 48: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.4. ALGORYTMY DWUPRZEBIEGOWE OPARTE NA SORTOWANIU 651

� Proste z��czenie przez sortowanie wymaga 5(B(R) + B(S)) dyskowych operacji wej�cia--wyj�cia.

� Do dzia�ania konieczne jest, aby: B(R) � M2 i B(S) � M2.� Krotki o tej samej warto�ci porównywanych atrybutów musz� mie�ci� si� w M blokach.

15.4.8. Wydajniejsze z��czenie przez sortowanieJe�li bardzo du�a liczba krotek o identycznej warto�ci z��czanych atrybutów nie stanowi zagro-�enia, mo�na zaoszcz�dzi� dwie dyskowe operacje wej�cia-wyj�cia na blok przez po��czeniedrugiego etapu sortowania z samym z��czeniem. Ten algorytm to z��czenie przez sortowanie(ang. sort join; inne nazwy to z��czenie przez scalanie lub z��czenie przez sortowanie ze scala-niem). Aby obliczy� R(X, Y) S(Y, Z) z wykorzystaniem M buforów w pami�ci g�ównej,nale�y wykona� poni�sze kroki.

(1) Utworzy� posortowane podlisty o wielko�ci M przy u�yciu Y jako klucza sortowaniadla R i S.

(2) Przenie�� pierwszy blok ka�dej podlisty do bufora. Zak�adamy, �e liczba podlist nie prze-kracza M.

(3) Wielokrotnie znale�� najmniejsz� warto�� y atrybutów Y w�ród pierwszych dost�pnychkrotek wszystkich podlist. Trzeba znale�� wszystkie krotki z obu relacji o warto�ci y, naprzyk�ad u�ywaj�c niektórych z M dost�pnych buforów na ich zapisanie, je�li istniejemniej ni� M podlist. Nale�y zwróci� z��czenie wszystkich krotek z R z wszystkimi krot-kami z S maj�cymi t� sam� warto�� atrybutów Y. Je�li bufor jednej z podlist zostanieopró�niony, trzeba usun�� go z dysku.

Przyk�ad 15.7. Ponownie wró�my do problemu z przyk�adu 15.4 — z��czenia relacji R i So rozmiarach 1000 oraz 500 bloków przy dost�pnych 101 buforach. Nale�y podzieli� R na 10,a S — na 5 podlist (ka�da o d�ugo�ci 100) i je posortowa�3. 15 buforów mo�na wykorzysta� naanalizowane bloki ka�dej z podlist. Je�li zdarzy si� sytuacja, w której wiele krotek ma t� sam�warto�� atrybutów Y, mo�na zapisa� je w pozosta�ych 86 buforach.

Na ka�dy blok danych wykonywane s� trzy dyskowe operacje wej�cia-wyj�cia. Dwie z nichs�u�� do tworzenia posortowanych podlist. Nast�pnie ka�dy blok ka�dej takiej podlisty nale�yponownie wczyta� do pami�ci g�ównej w procesie wielo�cie�kowego scalania. Dlatego ��cznaliczba dyskowych operacji wej�cia-wyj�cia to 4500. �

Ten algorytm z��czenia przez sortowanie jest wydajniejszy od algorytmu z punktu 15.4.6,cho� nie zawsze mo�na z niego skorzysta�. W przyk�adzie 15.7 stwierdzono, �e liczba dysko-wych operacji wej�cia-wyj�cia wynosi tu 3(B(R) + B(S)). Algorytm mo�na zastosowa� do da-nych niemal tak du�ych, jak w poprzednim algorytmie. Rozmiar posortowanych podlist toM bloków, a na dwóch listach mo�e by� najwy�ej M podlist. Dlatego wystarczaj�cy jest wymóg:B(R) + B(S) � M2.

3 Technicznie mo�na uporz�dkowa� podlisty, aby mia�y d�ugo�� po 101 bloków. Wtedy ostatnia podlista

z R ma 91 bloków, a ostatnia podlista z S — 96 bloków. Jednak wtedy koszty s� dok�adnie takie same.

Page 49: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

652 15. WYKONYWANIE ZAPYTA�

15.4.9. Omówienie algorytmów opartych na sortowaniuW tabeli 15.11 zamieszczono analizy algorytmów omówionych w podrozdziale 15.4. W punk-tach 15.4.6 i 15.4.8 napisano, �e w algorytmach z��czenia obowi�zuj� ograniczenia dotycz�celiczby krotek o tej samej warto�ci porównywanych atrybutów. Przy naruszeniu ograniczeniakonieczne mo�e by� zastosowanie z��czenia zagnie�d�onego.

Operatory Potrzebne M (w przybli�eniu) Dyskowe operacje wej�cia-wyj�cia Punkt

�, �, B 3B 15.4.1, 15.4.2, 15.4.3

�, �, – )()( SBRB � 3(B(R) + B(S)) 15.4.4, 15.4.5

)(),(max( SBRB 5(B(R) + B(S)) 15.4.6

)()( SBRB � 3(B(R) + B(S)) 15.4.8

15.11. Wymogi zwi�zane z pami�ci� g�ówn� i dyskowymi operacjami wej�cia-wyj�cia dla algorytmów opartych na sortowaniu

15.4.10. wiczenia do podrozdzia�u 15.4wiczenie 15.4.1. Dla ka�dej z podanych operacji napisz iterator, który wykorzystuje algorytmopisany w podrozdziale: a) eliminowanie powtórze� (), b) grupowanie (�L), c) cz��� wspólnazbiorów, d) ró�nica wielozbiorów, e) z��czenie naturalne.

wiczenie 15.4.2. Je�li B(R) = B(S) = 10 000 i M = 1000, jakie s� wymogi dotycz�ce dysko-wych operacji wej�cia-wyj�cia dla: a) sumy zbiorów, b) prostego z��czenia przez sortowanie, c)wydajniejszego z��czenia przez sortowanie opisanego w punkcie 15.4.8.

! wiczenie 15.4.3. Za�ó�my, �e drugi przebieg algorytmu opisanego w podrozdziale nie wyma-ga wszystkich M buforów, poniewa� istnieje mniej ni� M podlist. Jak mo�na zmniejszy� liczb�dyskowych operacji wej�cia-wyj�cia, wykorzystuj�c dodatkowe bufory?

! wiczenie 15.4.4. W przyk�adzie 15.6 omówiono z��czenie dwóch relacji R i S o 1000 blokóworaz 500 blokach dla M = 101. Jednak potrzebne s� dodatkowe dyskowe operacje wej�cia-wyj�cia,je�li istnieje tyle krotek o danej warto�ci, �e krotki z �adnej z relacji nie mieszcz� si� w pami�cig�ównej. Okre�l ��czn� liczb� operacji potrzebnych, je�li:

a) istniej� tylko dwie warto�ci atrybutów Y, a ka�da pojawia si� w po�owie krotek z Ri w po�owie krotek z S (Y to atrybut lub atrybuty, na których oparte jest z��czenie),

b) istnieje pi�� warto�ci atrybutów Y, a ka�da wyst�puje w obu relacjach równie cz�sto, c) istnieje 10 warto�ci atrybutów Y, a ka�da wyst�puje w obu relacjach równie cz�sto.

! wiczenie 15.4.5. Wykonaj �wiczenie 15.4.4 dla wydajniejszego z��czenia przez sortowanie,opisanego w punkcie 15.4.8.

Page 50: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.5. DWUPRZEBIEGOWE ALGORYTMY OPARTE NA HASZOWANIU 653

wiczenie 15.4.6. Ile pami�ci potrzeba, aby mo�na zastosowa� dwuprzebiegowy oparty na sor-towaniu algorytm dla relacji obejmuj�cych po 10 000 bloków, je�li operacj� jest: a) , b) �,c) operacja dwuargumentowa, na przyk�ad z��czenie lub suma.

wiczenie 15.4.7. Opisz dwuprzebiegowy oparty na sortowaniu algorytm dla ka�dego z opera-torów z rodziny z��cze� wymienionego w �wiczeniu 15.2.4.

! wiczenie 15.4.8. Za�ó�my, �e rekordy mog� by� wi�ksze ni� bloki (wyst�puj� rekordy dzielo-ne). Jak zmienia to wymogi dotycz�ce pami�ci dla dwuprzebiegowych algorytmów opartych nasortowaniu?

!! wiczenie 15.4.9. Czasem mo�na zaoszcz�dzi� kilka dyskowych operacji wej�cia-wyj�cia,zostawiaj�c ostatni� podlist� w pami�ci. W celu wykorzystania tego podej�cia sensowne mo�eby� nawet zastosowanie podlist o mniej ni� M blokach. Ile dyskowych operacji wej�cia-wyj�ciamo�na zaoszcz�dzi� w ten sposób?

15.5. Dwuprzebiegowe algorytmy oparte nahaszowaniuIstnieje rodzina opartych na haszowaniu algorytmów, które rozwi�zuj� problemy omówionew podrozdziale 15.4. Wszystkie te algorytmy oparte s� na podstawowym pomy�le — je�li danes� za du�e, aby zmie�ci� je w buforach pami�ci g�ównej, nale�y utworzy� skrót ka�dej krotkiz argumentu (lub argumentów), u�ywaj�c odpowiedniego klucza haszuj�cego. We wszystkichstandardowych operacjach istnieje sposób na taki dobór klucza haszuj�cego, aby wszystkiekrotki, które trzeba przetwarza� wspólnie, trafia�y do tego samego kube�ka.

Nast�pnie operacje wykonywane s� kube�ek po kube�ku (lub na parach kube�ków o tejsamej warto�ci skrótu w operacjach dwuargumentowych). W efekcie wielko�� operandówzmniejsza si� tyle razy, ile jest kube�ków (czyli mniej wi�cej M razy). Zauwa�my, �e w opisa-nych w podrozdziale 15.4 algorytmach opartych na sortowaniu mo�na osi�gn�� podobne ko-rzy�ci przez wst�pne przetwarzanie, cho� w podej�ciach zwi�zanych z sortowaniem i haszowa-niem s�u�� do tego ró�ne �rodki.

15.5.1. Podzia� relacji przez haszowanieZacznijmy od omówienia podzia�u (z wykorzystaniem M buforów) relacji R na M – 1 kube�-ków o mniej wi�cej równej wielko�ci. Funkcja h to funkcja haszuj�ca, przyjmuj�ca jako argu-ment kompletne krotki z R (wszystkie atrybuty z R s� cz��ci� klucza haszuj�cego). Ka�dy ku-be�ek wi�zany jest z jednym buforem. Ostatni bufor przechowuje kolejne bloki z R. Nale�yobliczy� skrót h(t) dla ka�dej krotki t z tego bloku i skopiowa� j� do odpowiedniego bufora.Je�li bufor jest pe�ny, nale�y zapisa� go na dysku i dla tego samego kube�ka zainicjowa� innyblok. Ostatecznie zapisywany jest ostatni blok ka�dego kube�ka (je�li nie jest pusty). Bardziejszczegó�owy opis algorytmu znajduje si� na listingu 15.12.

Page 51: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

654 15. WYKONYWANIE ZAPYTA�

zainicjuj M-1 kube�ków za pomoc� M-1 pustych buforów;FOR ka�dego bloku b z relacji R DO BEGIN wczytaj blok b do M-tego bufora; FOR ka�dej krotki t z b DO BEGIN IF w buforze dla kube�ka h(t) nie ma miejsca na t THEN BEGIN skopiuj bufor na dysk; zainicjuj nowy pusty blok w danym buforze; END; skopiuj t do bufora dla kube�ka h(t); END;END;FOR ka�dego kube�ka DO IF bufor dla kube�ka nie jest pusty THEN zapisz bufor na dysku;

15.12. Podzia� relacji R na M – 1 kube�ków

15.5.2. Algorytm usuwania powtórze� oparty na haszowaniuRozwa�my teraz szczegó�y opartych na haszowaniu algorytmów dla ró�nych operacji algebryrelacji, które mog� wymaga� algorytmów dwuprzebiegowych. Po pierwsze, rozwa�my usuwaniepowtórze� — (R). Za pomoc� haszowania nale�y podzieli� R na M – 1 kube�ków, tak jak nalistingu 15.12. Zauwa�my, �e dwie kopie tej samej krotki t trafiaj� do tego samego kube�ka.Dlatego mo�na przetwarza� kube�ek po kube�ku, wykonywa� na ka�dym kube�ku osobnoi obliczy� odpowied� jako sum� (Ri), gdzie Ri to cz��� relacji R z i-tego kube�ka. Jednoprze-biegowy algorytm z punktu 15.2.2 mo�na zastosowa� do usuni�cia powtórze� kolejno z ka�degoRi i zapisania uzyskanych niepowtarzalnych krotek.

Ta metoda dzia�a, o ile poszczególne Ri s� na tyle ma�e, �e mieszcz� si� w pami�ci g�ównej,co pozwala zastosowa� algorytm jednoprzebiegowy. Poniewa� mo�na przyj��, �e funkcja ha-szuj�ca h dzieli R na kube�ki o równym rozmiarze, ka�da Ri zajmuje oko�o B(R)/(M – 1) blo-ków. Je�li liczba bloków jest nie wi�ksza ni� M (B(R) � M(M – 1)), mo�na u�y� dwuprzebiego-wego algorytmu opartego na haszowaniu. Jak opisano to w punkcie 15.2.2, konieczne jest tylko,aby liczba ró�nych krotek w jednym kube�ku mie�ci�a si� w M buforach. Dlatego wed�ugostro�nych szacunków (przy za�o�eniu, �e M i M – 1 to prawie to samo) wymagane jest, abyB(R) � M2, dok�adnie tak, jak w opartym na sortowaniu dwuprzebiegowym algorytmie dla .

Liczba dyskowych operacji wej�cia-wyj�cia jest tak�e podobna do tej w algorytmie opartymna sortowaniu. Ka�dy blok z R wczytywany jest raz przy haszowaniu krotek, a ponadto ka�dyblok wszystkich kube�ków zapisywany jest na dysku. Nast�pnie nale�y ponownie wczyta� ka�dyblok wszystkich kube�ków w jednoprzebiegowym algorytmie dzia�aj�cym dla danego kube�ka.Dlatego ��czna liczba dyskowych operacji wej�cia-wyj�cia to 3B(R).

15.5.3. Grupowanie i agregacja oparte na haszowaniuAby wykona� operacj� �L(R), nale�y ponownie zacz�� od haszowania wszystkich krotek z Rw celu zapisania ich w M – 1 kube�kach. Jednak �eby si� upewni�, �e wszystkie krotki z tej samejgrupy znajd� si� w jednym kube�ku, trzeba wybra� funkcj� haszuj�c� opart� wy��cznie na atry-butach grupuj�cych z listy L.

Page 52: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.5. DWUPRZEBIEGOWE ALGORYTMY OPARTE NA HASZOWANIU 655

Po podzieleniu R na kube�ki mo�na wykorzysta� jednoprzebiegowy algorytm dla � (opisa-ny w punkcie 15.2.2) do przetworzenia po kolei ka�dego kube�ka. Jak wyja�niono w kontek�cie w punkcie 15.5.2, ka�dy kube�ek mo�na przetworzy� w pami�ci g�ównej, pod warunkiem, �eB(R) � M2.

Jednak w drugim przebiegu przy przetwarzaniu ka�dego kube�ka potrzebny jest tylko je-den rekord na grup�. Dlatego je�li nawet rozmiar kube�ka jest wi�kszy ni� M, mo�na obs�u�y�kube�ek w jednym przebiegu, pod warunkiem �e rekordy dla wszystkich grup z kube�ka zaj-muj� nie wi�cej ni� M buforów. Tak wi�c dla du�ych grup mo�na obs�u�y� znacznie wi�kszerelacje R, ni� okre�la to regu�a B(R) � M2. Je�li jednak M jest wi�ksze ni� liczba grup, niemo�na zape�ni� wszystkich kube�ków. Dlatego ograniczenie rozmiaru R za pomoc� funkcji odM jest skomplikowane. Wed�ug ostro�nych szacunków ograniczenie to B(R) � M2. Zauwa�myte�, �e liczba dyskowych operacji wej�cia-wyj�cia dla �, podobnie jak dla , to 3B(R).

15.5.4. Suma, cz��� wspólna i ró�nica oparte na haszowaniuW operacjach dwuargumentowych trzeba zastosowa� t� sam� funkcj� haszuj�ca dla krotek z obuargumentów. Aby na przyk�ad obliczy� R �Z S, nale�y umie�ci� ka�d� z relacji R i S w M – 1kube�kach (na przyk�ad w R1, R2, …, RM-1 i S1, S2, …, SM-1). Nast�pnie mo�na obliczy� sum�zbiorów Ri i Si dla wszystkich i oraz zwróci� wynik. Zauwa�my, �e je�li krotka t wyst�puje w R i S,dla pewnego i znajduje si� zarówno w Ri, jak i w Si. Dlatego przy obliczaniu sumy dwóch kube�kównale�y zwróci� tylko jedn� kopi� t i nie ma mo�liwo�ci, �e w wyniku pojawi� si� powtórzenia.Dla operacji �W zalecany jest prosty algorytm obliczania sumy wielozbiorów (punkt 15.2.3).

Aby obliczy� cz��� wspóln� lub ró�nic� R i S, nale�y — tak jak dla sumy zbiorów — utwo-rzy� 2(M – 1) kube�ków i zastosowa� odpowiedni algorytm jednoprzebiegowy do ka�dej parypowi�zanych kube�ków. Zauwa�my, �e wszystkie algorytmy jednoprzebiegowe wymagaj� B(R)+ B(S) dyskowych operacji wej�cia-wyj�cia. Do tej liczby trzeba doda� dwie dyskowe operacjewej�cia-wyj�cia na blok niezb�dne do podzia�u przez haszowanie krotek z dwóch relacji i zapi-sania kube�ków na dysku, co w sumie daje 3(B(R) + B(S)) operacji.

Algorytmy wymagaj� do dzia�ania, aby w jednym przebiegu mo�na by�o obliczy� sum�,cz��� wspóln� lub ró�nic� Ri i Si, których rozmiary to w przybli�eniu B(R)/(M – 1) orazB(S)/(M – 1). Przypominamy, �e jednoprzebiegowe algorytmy dla tych operacji wymagaj�,�eby mniejszy operand mie�ci� si� w M – 1 blokach. Dlatego dwuprzebiegowe algorytmy opartena haszowaniu wymagaj�, aby — w przybli�eniu — min(B(R), B(S)) � M2.

15.5.5. Algorytm z��czenia przez haszowanieAby obliczy� R(X, Y) S(Y, Z) za pomoc� dwuprzebiegowego algorytmu opartego na haszo-waniu, mo�na post�powa� niemal tak samo jak przy innych operacjach dwuargumentowych,opisanych w punkcie 15.5.4. Jedyna ró�nica polega na tym, �e jako klucza haszuj�cego trzebau�y� tylko atrybutów uwzgl�dnianych przy z��czeniu (Y). Wiadomo wtedy, �e z��czane krotkiR i S znajduj� si� w odpowiadaj�cych sobie kube�kach Ri i Si dla pewnego i. Jednoprzebiegowez��czenie wszystkich par z powi�zanych kube�ków ko�czy algorytm (nazywamy go z��czeniemprzez haszowanie4).

4 Czasem nazwa z��czenie przez haszowanie jest zarezerwowana dla odmiany jednoprzebiegowego algo-

rytmu z��czenia z punktu 15.2.3, w którym wspomagaj�c� wyszukiwanie struktur� w pami�ci g�ównej jesttablica z haszowaniem. Wtedy opisany tu algorytm dwuprzebiegowy nazywany jest z��czeniem przez ha-szowanie z podzia�em.

Page 53: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

656 15. WYKONYWANIE ZAPYTA�

Przyk�ad 15.8. Przypominamy dwie relacje R i S z przyk�adu 15.4, których wielko�� to 1000 i 500bloków. W pami�ci g�ównej dost�pnych jest 101 buforów. Za pomoc� haszowania mo�na zapi-sa� ka�d� relacj� w 100 kube�kach, tak �e �rednia wielko�� kube�ków to 10 (dla R) lub 5 blo-ków (dla S). Poniewa� mniejsza liczba, 5, jest znacznie ni�sza ni� liczba dost�pnych buforów,mo�na oczekiwa�, �e jednoprzebiegowe z��czenie ka�dej pary kube�ków nie sprawi problemów.

Liczba dyskowych operacji wej�cia-wyj�cia wynosi 1500 przy wczytywaniu R i S w czasiehaszowania, kolejne 1500 operacji potrzeba na zapis wszystkich kube�ków na dysku, a trzecie1500 operacji zajmuje ponowne wczytanie ka�dej pary kube�ków do pami�ci g�ównej w czasiejednoprzebiegowego z��czenia powi�zanych kube�ków. Tak wi�c liczba potrzebnych operacjito 4500, tak jak dla wydajnego z��czenia przez sortowanie z punktu 15.4.8. �

Przyk�ad 15.8 mo�na uogólni�, stwierdzaj�c, �e:

� z��czenie przez haszowanie wymaga 3(B(R) + B(S)) dyskowych operacji wej�cia-wyj�cia,� dwuprzebiegowy algorytm z��czenia przez haszowanie dzia�a, je�li (w przybli�eniu)

min(B(R), B(S)) � M2.

Ostatni punkt wynika z tego, co w innych operacjach dwuargumentowych — jeden kube�ekz ka�dej pary musi mie�ci� si� w M – 1 buforach.

15.5.6. Zmniejszanie liczby dyskowych operacji wej�cia-wyj�ciaJe�li w pierwszym przebiegu mamy dost�p do wi�kszej ilo�ci pami�ci ni� potrzeba na przecho-wywanie jednego bloku na kube�ek, mo�na zmniejszy� liczb� dyskowych operacji wej�cia-wyj�cia. Jedn� z mo�liwo�ci jest zastosowanie kilku bloków dla ka�dego kube�ka i zapisanie ichjako grupy w przyleg�ych blokach na dysku. Ujmijmy to �ci�le — technika ta nie zmniejszaliczby operacji, ale je przyspiesza, poniewa� przy zapisie mo�na pomin�� czas wyszukiwania i opó�-nienie obrotowe.

Istnieje jednak kilka sztuczek stosowanych w celu unikni�cia zapisu niektórych kube�kówna dysku i ponownego ich odczytu. Tu opisano najwydajniejsz� technik�, hybrydowe z��czenieprzez haszowanie. Przyjmijmy, �e w celu obliczenia z��czenia R S (S to mniejsza relacja)trzeba utworzy� k kube�ków, co wymaga znacznie mniej ni� M pami�ci (jest to ilo�� dost�pnejpami�ci). W czasie haszowania S mo�na zdecydowa� si� na przechowywanie m spo�ród k kube�kóww ca�o�ci w pami�ci g�ównej i zachowa� tylko jeden blok na ka�dy z pozosta�ych k – m kube�ków.Jest to mo�liwe, pod warunkiem �e oczekiwany rozmiar kube�ków w pami�ci plus jeden blokna ka�dy z pozosta�ych kube�ków nie przekracza M, czyli:

mB(S)/k + k – m � M (15.1)

Oto wyja�nienie — oczekiwany rozmiar kube�ka to B(S)/k, a w pami�ci znajduje si�m kube�ków.

Teraz, przy wczytywaniu krotek z drugiej relacji (R) w celu jej podzia�u na kube�ki w pa-mi�ci przechowywane s�:

(1) m niezapisanych na dysku kube�ków z S

oraz

(2) jeden blok dla ka�dego z k – m kube�ków z R, dla których powi�zane kube�ki z S zapisanona dysku.

Page 54: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.5. DWUPRZEBIEGOWE ALGORYTMY OPARTE NA HASZOWANIU 657

Je�li krotka t z R trafia w wyniku haszowania do jednego z pierwszych m kube�ków, mo�nanatychmiast z��czy� j� z wszystkimi krotkami z powi�zanego kube�ka dla S, tak jak przy jed-noprzebiegowym z��czeniu przez haszowanie. Do usprawnienia z��czenia niezb�dne jest upo-rz�dkowanie ka�dego z dost�pnych w pami�ci kube�ków z S w wydajn� struktur� wspomagaj�c�wyszukiwanie, tak jak przy z��czeniu jednoprzebiegowym. Je�li t trafia do jednego z kube�ków,dla których powi�zany kube�ek z S znajduje si� na dysku, t nale�y zapisa� w bloku kube�kaw pami�ci g�ównej, a nast�pnie na dysku, tak jak dla dwuprzebiegowego z��czenia opartego nahaszowaniu.

W drugim przebiegu powi�zane kube�ki z R i S mo�na z��czy� w standardowy sposób. Nietrzeba jednak z��cza� par kube�ków, dla których kube�ek z S znajdowa� si� w pami�ci. Algo-rytm ju� z��czy� te kube�ki i zwróci� wyniki.

Oszcz�dno�� dyskowych operacji wej�cia-wyj�cia to dwa na ka�dy pozostawiony w pami�ciblok kube�ków z S i powi�zanych kube�ków z R. Poniewa� w pami�ci znajduje si� m/k kube�-ków, oszcz�dno�ci wynosz� 2(m/k)(B(R) + B(S)). Trzeba wi�c ustali�, jak zmaksymalizowa�warto�� m/k z uwzgl�dnieniem ogranicze� z równania (15.1). Zaskakuj�ca odpowied� jest taka:nale�y wybra� m = 1, a nast�pnie mo�liwie najmniejsze k.

Oto intuicyjne uzasadnienie — wszystkie oprócz k – m buforów z pami�ci g�ównej mo�nawykorzysta� do przechowywania krotek z S w tej pami�ci. Im wi�cej jest tych krotek, tymmniej trzeba dyskowych operacji wej�cia-wyj�cia. Dlatego warto zminimalizowa� k, czyli��czn� liczb� kube�ków. W tym celu nale�y utworzy� kube�ki tak du�e, �e ledwo mieszcz� si�w pami�ci g�ównej. Kube�ki maj� mie� rozmiar M, a tym samym k = B(S)/M. Wtedy w dodat-kowej pami�ci g�ównej znajduje si� miejsce na tylko jeden kube�ek (m = 1).

W praktyce kube�ki musz� by� nieco mniejsze ni� M. W przeciwnym razie zabraknie miejscana jeden kompletny kube�ek i jeden blok dla pozosta�ych k – 1 kube�ków przechowywanychw danym czasie w pami�ci. Je�li dla uproszczenia za�o�ymy, �e k to oko�o B(S)/M, a m = 1,wtedy liczba dyskowych operacji wej�cia-wyj�cia b�dzie mniejsza o:

2M(B(R) + B(S))/B(S)

��czny koszt wynosi (3 – 2M/B(S))(B(R) + B(S)).

Przyk�ad 15.9. Rozwa�my problem z przyk�adu 15.4. Trzeba z��czy� relacje R i S o 1000 blo-ków oraz 500 blokach, u�ywaj�c M = 101. Przy stosowaniu hybrydowego z��czenia przezhaszowanie k (liczba kube�ków) powinna wynosi� oko�o 500/101. Za�ó�my, �e k = 5. Wtedykube�ek ma �rednio 100 bloków z krotkami z S. Przy próbie umieszczenia jednego z takichkube�ków i czterech dodatkowych bloków na cztery pozosta�e kube�ki potrzeba 104 blokówpami�ci g�ównej, a nie mo�na ryzykowa�, �e przechowywany w pami�ci kube�ek si� w niej niezmie�ci.

Dlatego lepiej wybra� k = 6. Teraz przy haszowaniu S w pierwszym przebiegu dost�pnychjest pi�� buforów na pi�� kube�ków i do 96 buforów na kube�ek przechowywany w pami�ci,którego oczekiwany rozmiar to 500/6, czyli 83. Liczba dyskowych operacji wej�cia-wyj�ciau�ywanych dla S w pierwszym przebiegu to 500 na wczytanie ca�ej S i 500 – 83 = 417 na zapispi�ciu kube�ków na dysku. Przy przetwarzaniu R w pierwszym przebiegu trzeba wczyta� ca��R (1000 dyskowych operacji wej�cia-wyj�cia) i zapisa� 5 z 6 kube�ków (833 operacje).

W drugim przebiegu wczytywane s� wszystkie kube�ki zapisane na dysku, co daje 417 + 833= 1250 dodatkowych operacji. ��czna liczba dyskowych operacji wej�cia-wyj�cia wynosi wi�c1500 na wczytanie R i S, 1250 na wczytanie 5 z 6 relacji i kolejne 1250 na ponowne wczytanie krotek,co daje 4000 operacji. Mo�na porówna� t� liczb� z 4500 dyskowych operacji wej�cia-wyj�ciapotrzebnych przy prostym z��czeniu przez haszowanie lub z��czeniu przez sortowanie. �

Page 55: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

658 15. WYKONYWANIE ZAPYTA�

15.5.7. Przegl�d algorytmów opartych na haszowaniuW tabeli 15.13 przedstawiono wymogi dotycz�ce pami�ci i dyskowych operacji wej�cia-wyj�ciadla ka�dego z algorytmów omówionych w podrozdziale. Podobnie jak w innych rodzajach al-gorytmów, szacunki dla � i s� ostro�ne, poniewa� operacje te zale�� od liczby powtórze� lubgrup, a nie od liczby krotek w relacji podanej jako argument.

Operatory Potrzebne M (w przybli�eniu) Dyskowe operacje wej�cia-wyj�cia Punkt

�, B 3B 15.5.2, 15.5.3

�, �, – )(SB 3(B(R) + B(S)) 15.5.4

)(SB 3(B(R) + B(S)) 15.5.5

)(SB (3 – 2M/B(S))(B(R) + B(S)) 15.5.6

15.13. Wymogi dotycz�ce pami�ci g�ównej i dyskowych operacji wej�cia-wyj�ciaw algorytmach opartych na haszowaniu; dla operacji binarnych zak�adamy, �e B(S) � B(R)

Zauwa�my, �e wymogi dla algorytmów opartych na sortowaniu i odpowiadaj�cych im algoryt-mów opartych na haszowaniu s� niemal identyczne. Oto istotne ró�nice mi�dzy dwoma podej�ciami.

(1) Wymogi dotycz�ce rozmiaru w opartych na haszowaniu algorytmach dla operacji dwuar-gumentowych zale�� tylko od mniejszego z dwóch argumentów, a nie — tak jak w algo-rytmach opartych na sortowaniu — od sumy ich rozmiarów.

(2) Algorytmy oparte na sortowaniu czasem umo�liwiaj� utworzenie wyniku w posortowanejpostaci i pó�niejsze wykorzystanie tego faktu. Wyniku mo�na u�y� w innym opartym nasortowaniu algorytmie dla dalszego operatora lub poda� go jako odpowied� na zapytanie,je�li dane maj� by� posortowane.

(3) Algorytmy oparte na haszowaniu wymagaj�, aby kube�ki mia�y równy rozmiar. Poniewa�zwykle wyst�puj� przynajmniej niewielkie ró�nice w wielko�ci, nie mo�na wykorzysta�kube�ków, które �rednio zajmuj� M bloków. Trzeba ograniczy� rozmiar do nieco mniej-szej warto�ci. Jest to szczególnie odczuwalne, je�li liczba ró�nych kluczy haszuj�cych jestniewielka (przy ma�ej liczbie grup w czasie grupowania lub niewielkiej liczbie warto�ciatrybutów uwzgl�dnianych przy z��czeniu).

(4) W algorytmach opartych na sortowaniu posortowane podlisty mo�na zapisa� w przyle-g�ych blokach dysku (je�li dysk jest odpowiednio uporz�dkowany). Dlatego jedna na trzydyskowe operacje wej�cia-wyj�cia na blok mo�e wi�za� si� z ma�ym opó�nieniem obroto-wym lub czasem wyszukiwania i przebiega� du�o szybciej ni� takie operacje w algorytmachopartych na haszowaniu.

(5) Ponadto je�li warto�� M jest znacznie wi�ksza ni� liczba posortowanych podlist, mo�najednocze�nie wczyta� kilka przyleg�ych bloków posortowanej podlisty, co tak�e pozwalaskróci� opó�nienie i czas wyszukiwania.

(6) Je�li jednak w algorytmie opartym na haszowaniu wystarczy utworzy� mniej ni� M ku-be�ków, mo�na jednocze�nie zapisa� kilka bloków z kube�ka. Zapewnia to na etapie zapi-sywania przy haszowaniu te same korzy�ci, które uzyskujemy przy drugim odczycie w al-gorytmach opartych na sortowaniu, co opisano w punkcie 5. Tak�e tu mo�na uporz�dkowa�dysk w taki sposób, aby zapisa� kube�ek w kolejnych blokach �cie�ki. Wtedy kube�kimo�na wczytywa� z niewielkim opó�nieniem i czasem wyszukiwania — tak jak w punkcie4. mo�liwy by� wydajny zapis posortowanych podlist.

Page 56: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.6. ALGORYTMY OPARTE NA INDEKSACH 659

15.5.8. wiczenia do podrozdzia�u 15.5wiczenie 15.5.1. Pomys� wykorzystany w hybrydowym z��czeniu przez haszowanie, zapisy-wanie jednego kube�ka w pami�ci g�ównej, mo�na zastosowa� tak�e do innych operacji. Poka�,jak zmniejszy� koszt o zapisywanie i wczytywanie jednego kube�ka z ka�dej relacji w opartymna haszowaniu dwuprzebiegowym algorytmie dla operacji: a) , b) �, c) �W, d) –Z.

wiczenie 15.5.2. Je�li B(S) = B(R) = 10 000, a M = 1000, ile dyskowych operacji wej�cia-wyj�ciatrzeba na hybrydowe z��czenie przez haszowanie?

wiczenie 15.5.3. Napisz iteratory b�d�ce implementacj� opartych na haszowaniu dwuprze-biegowych algorytmów dla operacji: a) , b) �, c) �W, d) –Z, e) .

! wiczenie 15.5.4. Wykonywana jest oparta na haszowaniu dwuprzebiegowa operacja grupowa-nia na relacji R o odpowiednim rozmiarze — B(R) � M2. Istnieje jednak tak ma�o grup, �e nie-które z nich s� wi�ksze ni� M (nie mo�na zapisa� ich w ca�o�ci w pami�ci g�ównej). Jakie mo-dyfikacje, je�li w ogóle, s� potrzebne w przedstawionym algorytmie?

! wiczenie 15.5.5. Za�ó�my, �e zastosowano dysk, w którym czas do przeniesienia g�owicy nadblok wynosi 100 milisekund, a odczyt jednego bloku trwa ½ milisekundy. Tak wi�c odczyt kkolejnych bloków po umiejscowieniu g�owicy zajmuje k/2 milisekund. Wykonujemy dwuprze-biegowe z��czenie przez haszowanie R S, gdzie B(R) = 1000, B(S) = 500, a M = 101. Abyprzyspieszy� z��czenie, nale�y u�y� jak najmniejszej liczby kube�ków (zak�adamy, �e rozk�adkrotek w kube�kach jest równomierny) oraz wczytywa� i zapisywa� mo�liwie du�o bloków nakolejnych pozycjach dysku. Liczymy 100,5 milisekundy na losow� dyskow� operacj� wej�cia-wyj�ciai 100 + k/2 milisekundy na odczyt (lub zapis) k kolejnych bloków z dysku (albo na dysk).

a) Ile czasu zajmuje dyskowa operacja wej�cia-wyj�cia? b) Ile czasu zajmuje taka operacja w hybrydowym z��czeniu przez haszowanie w wersji

z przyk�adu 15.9? c) Ile czasu w tych samych warunkach zajmuje z��czenie oparte na sortowaniu przy za�o�eniu,

�e posortowane podlisty zapisywane s� w kolejnych blokach dysku?

15.6. Algorytmy oparte na indeksachIstnienie indeksu na jednym lub kilku atrybutach relacji pozwala zastosowa� pewne algorytmyniedost�pne bez indeksu. Algorytmy oparte na indeksach s� szczególnie przydatne dla operato-ra selekcji, jednak mo�na je z bardzo dobrymi efektami stosowa� tak�e przy z��czeniu i innychoperacjach dwuargumentowych. W tym podrozdziale przedstawiono te algorytmy. Kontynu-owane jest te� rozpocz�te w punkcie 15.1.1 omówienie operatora skanowania indeksu, s�u��cegodo dost�pu do tabel sk�adowanych z indeksem. Aby zrozumie� wiele zagadnie�, najpierw trzebazapozna� si� z dygresj� i indeksami klastruj�cymi (ang. clustering index).

15.6.1. Indeksy klastruj�ce i nieklastruj�ceW punkcie 15.1.3 stwierdzono, �e relacja jest sklastrowana, je�li krotki s� upakowane w prawieminimalnej liczbie bloków potrzebnych do ich zapisania. We wszystkich dotychczasowychanalizach zak�adano, �e relacje s� sklastrowane.

Page 57: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

660 15. WYKONYWANIE ZAPYTA�

Istniej� te� indeksy klastruj�ce. S� to indeksy na atrybucie lub atrybutach, dzi�ki którymwszystkie krotki o danej warto�ci klucza wyszukiwania dla tego indeksu pojawiaj� si� w prawieminimalnej liczbie bloków. Warto pami�ta�, �e relacja niesklastrowana nie mo�e mie� indeksuklastruj�cego5, jednak nawet relacja sklastrowana mo�e mie� indeksy nieklastruj�ce.

Przyk�ad 15.10. Relacja R(a, b) posortowana wed�ug atrybutu a i upakowana w blokach w tejkolejno�ci jest sklastrowana. Indeks na a jest klastruj�cy, poniewa� dla danej warto�ci a, a1,wszystkie krotki o tej warto�ci znajduj� si� obok siebie. Dlatego wyst�puj� upakowane w bloki,czasem z wyj�tkiem pierwszego i ostatniego bloku zawieraj�cego warto�� a1 atrybutu a, co po-kazano na rysunku 15.14. Jednak indeks na b zwykle nie jest klastruj�cy, poniewa� krotkio danej warto�ci b s� rozproszone po ca�ym pliku (chyba �e warto�ci a i b s� bardzo �ci�leskorelowane). �

15.14. Indeks klastruj�cy powoduje zapisanie wszystkich krotek o danej warto�ciw (prawie) minimalnej mo�liwej liczbie bloków

15.6.2. Selekcja oparta na indeksieW punkcie 15.1.1 omówiono implementacj� selekcji, �C(R), przez wczytanie wszystkich krotekrelacji R, sprawdzenie warunku C i zwrócenie tych krotek, które go spe�niaj�. Je�li nie istniej�indeksy dla R, jest to najlepsze rozwi�zanie. Liczba dyskowych operacji wej�cia-wyj�cia wynosiB(R) lub — je�li R nie jest sklastrowana6 — nawet T(R) (jest to liczba krotek z R). Za�ó�myjednak, �e warunek C ma posta� a = v, gdzie a to atrybut, na którym oparty jest indeks, a v towarto��. Mo�na wtedy poszuka� w indeksie warto�ci v i otrzyma� wska�niki do krotek z Ro warto�ci v atrybutu a. Krotki te stanowi� wynik operacji �a=v(R), dlatego wystarczy je pobra�.

Je�li indeks na R.a jest klastruj�cy, liczba dyskowych operacji wej�cia-wyj�cia przy pobie-raniu zbioru �a=v(R) wynosi �rednio B(R)/V(R, a). Rzeczywista liczba z kilku przyczyn mo�eby� nieco wy�sza.

(1) Cz�sto indeks nie jest w ca�o�ci przechowywany w pami�ci g�ównej, dlatego potrzebne s�dyskowe operacje wej�cia-wyj�cia na wyszukiwanie indeksu.

(2) Cho� wszystkie krotki o a = v mo�na zmie�ci� w b blokach, krotki mog� by� zapisanew b + 1 blokach, poniewa� nie zaczynaj� si� od pocz�tku bloku.

Je�li nawet krotki z R s� sklastrowane, czasem nie s� upakowane w blokach mo�liwie �ci�le.Dost�pne mo�e by� na przyk�ad dodatkowe miejsce na krotki pó�niej wstawiane do R. RelacjaR mo�e te� znajdowa� si� w sklastrowanym pliku, co omówiono w punkcie 14.1.6.

5 Technicznie je�li indeks jest oparty na kluczu relacji, istnieje tylko jedna krotka o danej warto�ci klucza

indeksowania, dlatego indeks zawsze jest klastruj�cy, nawet wtedy, kiedy relacja nie jest sklastrowana.Je�eli jednak istnieje tylko jedna krotka na warto�� klucza indeksowania, klastrowanie nie daje korzy�ci,a wydajno�� indeksu jest taka sama jak indeksu nieklastruj�cego.

6 Przypominamy notacj� opisan� w punkcie 15.1.3: T(R) oznacza liczb� krotek z R, B(R) to liczba bloków,w których mie�ci si� R, a V(R, L) okre�la liczb� ró�nych krotek w L(R).

Page 58: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.6. ALGORYTMY OPARTE NA INDEKSACH 661

Ponadto wynik trzeba zaokr�gli� w gór�, je�li iloraz B(R)/V(R, a) nie jest liczb� ca�kowit�.Najwa�niejsze jest to, �e je�li a to klucz R, wtedy V(R, a) = T(R), co jest zwykle du�o wi�ksz�warto�ci� ni� B(R). Potrzebne s� wtedy jedna dyskowa operacja wej�cia-wyj�cia na pobraniekrotki o kluczu o warto�ci v plus inne takie operacje przy dost�pie do indeksu.

Rozwa�my teraz, co si� dzieje, kiedy indeks na R.a jest nieklastruj�cy. Oto pierwsze przy-bli�enie. Ka�da pobierana krotka znajduje si� w innym bloku, dlatego trzeba uzyska� dost�pdo T(R)/V(R, a) krotek. Dlatego szacunkowo potrzeba T(R)/V(R, a) dyskowych operacji wej-�cia-wyj�cia. Warto�� ta mo�e by� wy�sza, je�li trzeba wczyta� z dysku bloki indeksu. Mo�e te�by� ni�sza, je�eli szcz��liwie niektóre pobrane krotki znajduj� si� w tym samym bloku, a samblok pozostaje zbuforowany w pami�ci.

Przyk�ad 15.11. Za�ó�my, �e B(R) = 1000, a T(R) = 20 000. Relacja R ma wi�c 20 000 krotekupakowanych maksymalnie po 20 na blok. Niech a b�dzie jednym z atrybutów relacji R.Przyjmijmy, �e istnieje indeks na a i nale�y wykona� operacj� �a=0(R). Oto kilka mo�liwychsytuacji i liczba dyskowych operacji wej�cia-wyj�cia potrzebnych w najgorszym przypadku.Koszt dost�pu do bloków indeksu jest pomijany.

(1) Je�li R jest sklastrowana, natomiast nie u�yto indeksu, koszt wynosi 1000 dyskowych ope-racji wej�cia-wyj�cia. Trzeba pobra� ka�dy blok R.

(2) Je�eli R nie jest sklastrowana, koszt to 20 000 dyskowych operacji wej�cia-wyj�cia.(3) Je�li V(R, a) = 100, a indeks jest klastruj�cy, algorytm oparty na indeksie wymaga

1000/100 = 10 dyskowych operacji wej�cia-wyj�cia plus operacje potrzebne na dost�p doindeksu.

(4) Je�li V(R, a) = 10, a indeks jest nieklastruj�cy, algorytm oparty na indeksie wymaga20 000/10 = 2000 dyskowych operacji wej�cia-wyj�cia. Jest to koszt wy�szy ni� przy prze-gl�daniu ca�ej relacji R, je�li R jest sklastrowana, natomiast indeks nie istnieje.

(5) Je�li V(R, a) = 20 000, czyli a jest kluczem, algorytm oparty na indeksie wymaga 1 dys-kowej operacji wej�cia-wyj�cia plus operacje potrzebne na dost�p do indeksu. Nie ma zna-czenia, czy indeks jest klastruj�cy.

Przegl�danie indeksu jako metoda dost�pu jest pomocne tak�e w kilku innych rodzajachoperacji selekcji.

a) Indeks w rodzaju drzewa zbalansowanego umo�liwia wydajny dost�p do warto�ci kluczawyszukiwania z okre�lonego przedzia�u. Je�li istnieje indeks na atrybucie a relacji R,mo�na wykorzysta� go do pobrania krotek z odpowiedniego przedzia�u z R w operacjachselekcji podobnych do �a�10(R), a nawet �a�10 AND a�20(R).

b) Selekcj� ze z�o�onym warunkiem C mo�na czasem zaimplementowa� jako skanowanieindeksu, po którym nast�puje kolejna selekcja dotycz�ca tylko krotek zwróconych przyprzegl�daniu indeksu. Je�li C ma posta� a = v AND C`, gdzie C` to dowolny warunek,mo�na rozbi� selekcj� na dwie takie operacje. Pierwsza powinna sprawdza� tylko równo��a = v, natomiast druga — warunek C`. W pierwszej mo�na zastosowa� operator skano-wania indeksu. Rozbicie operacji selekcji to jedno z wielu usprawnie�, jakie optymalizatorzapyta� mo�e wprowadzi� w logicznym planie zapytania. Zagadnienie to opisano przedewszystkim w punkcie 16.7.1.

Page 59: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

662 15. WYKONYWANIE ZAPYTA�

15.6.3. Z��czenie za pomoc� indeksuWe wszystkich rozwa�anych operacjach dwuargumentowych, a tak�e w jednoargumentowychoperacjach � i na pe�nych relacjach, mo�na z powodzeniem korzysta� z pewnych indeksów.Opracowanie wi�kszo�ci algorytmów pozostawiamy jako �wiczenia, natomiast tu koncentruje-my si� na z��czeniach. Szczególnie analizowane jest z��czenie naturalne R(X, Y) S(Y, Z).Przypominamy, �e X, Y i Z mog� oznacza� zbiory atrybutów, cho� mo�na te� traktowa� je jakpojedyncze atrybuty.

W pierwszym algorytmie z��czenia opartym na indeksie za�ó�my, �e w S istnieje indeks naatrybutach Y. Jednym ze sposobów na obliczenie z��czenia jest pobranie ka�dego bloku z Ri w ramach wszystkich bloków sprawdzenie ka�dej krotki t. Niech tY oznacza komponent lubkomponenty t odpowiadaj�ce atrybutom Y. Za pomoc� indeksu mo�na znale�� w S wszystkiekrotki, w których tY to komponenty atrybutów Y. Te krotki S mo�na z��czy� z krotk� t z R,dlatego nale�y zwróci� takie z��czenia.

Liczba dyskowych operacji wej�cia-wyj�cia zale�y od wielu czynników. Po pierwsze, je�li Rjest sklastrowana, nale�y wczyta� B(R) bloków w celu pobrania wszystkich krotek z R. Je�eli Rnie jest sklastrowana, potrzebnych mo�e by� do T(R) dyskowych operacji wej�cia-wyj�cia.

Dla ka�dej krotki t z R trzeba wczyta� �rednio T(S)/V(S,Y) krotek z S. Je�li dla S istniejeniesklastrowany indeks na Y, liczba dyskowych operacji wej�cia-wyj�cia potrzebnych do wczy-tania S wynosi T(R)T(S)/V(S,Y). Je�eli jednak indeks jest sklastrowany, wystarczy T(R)B(S)/V(S,Y)operacji7. W obu sytuacjach konieczne mo�e by� dodanie kilku dyskowych operacji wej�cia-wyj�ciana warto�� Y, aby uwzgl�dni� wczytywanie samego indeksu.

Niezale�nie od tego, czy R jest sklastrowana, najistotniejszy jest koszt dost�pu do krotek z S.Po pomini�ciu kosztu wczytywania R nale�y przyj�� T(R)T(S)/V(S,Y) lub T(R)(max(1, B(S)/V(S,Y)))jako koszt dla tej metody z��czenia dla przypadków z niesklastrowanym i sklastrowanym in-deksem dla S.

Przyk�ad 15.12. Wykorzystajmy podstawowy przyk�ad — relacje R(X, Y) i S(Y, Z) obejmuj�ce1000 i 500 bloków. Za�ó�my, �e w bloku mie�ci si� po 10 krotek z ka�dej relacji, zatem T(R) =10 000, a T(S) = 5000. Przyjmijmy te�, i� V(S, Y) = 100 (w krotkach z S istnieje 100 ró�nychwarto�ci Y).

Za�ó�my, �e R jest sklastrowana i dla S istnieje indeks klastruj�cy na Y. Wtedy przybli�onaliczba dyskowych operacji wej�cia-wyj�cia, z pomini�ciem dost�pu do samego indeksu, wynosi1000 na odczyt bloków z R plus 10 000 × 500 / 100 = 50 000. Liczba ta jest wyra�nie wy�szani� dla opisanych wcze�niej metod dzia�aj�cych na tych samych danych. Je�li R lub indeks dlaS nie s� sklastrowane, koszt jest jeszcze wy�szy. �

Cho� na podstawie przyk�adu 15.12 mo�e si� wydawa�, �e z��czenie oparte na indeksie tobardzo z�y pomys�, istniej� inne sytuacje, w których z��czenie R S ma wi�kszy sens. Naj-cz��ciej dzieje si� tak, kiedy R jest bardzo ma�a w porównaniu z S, a warto�� V(S, Y) jest du�a.W �wiczeniu 15.6.5 opisano typowe zapytanie, w którym selekcja przed z��czeniem sprawia, �eR jest ma�a. Wtedy wi�ksza cz��� S nie jest sprawdzana przez algorytm, poniewa� wi�kszo��warto�ci Y w ogóle nie wyst�puje w R. Z kolei w z��czeniu opartym na sortowaniu i haszowaniuka�da krotka z S sprawdzana jest przynajmniej raz.

7 Trzeba jednak pami�ta�, �e je�li B(S)/V(S,Y) ma warto�� poni�ej 1, trzeba zast�pi� j� liczb� 1, co opisano

w punkcie 15.6.2.

Page 60: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.6. ALGORYTMY OPARTE NA INDEKSACH 663

15.6.4. Z��czenia z wykorzystaniem posortowanego indeksuJe�li indeks jest drzewem zbalansowanym (lub inn� struktur�, z której mo�na �atwo pobra�posortowane krotki relacji), istnieje wiele innych mo�liwo�ci zastosowania go. Prawdopodob-nie najprostsz� jest obliczanie R(X, Y) S(Y, Z), kiedy istnieje odpowiedni indeks na Y dlaR lub S. Mo�na wtedy zastosowa� zwyk�e z��czenie przez sortowanie, jednak nie trzeba wyko-nywa� po�redniego kroku, polegaj�cego na sortowaniu jednej z relacji wed�ug Y.

Skrajnym przypadkiem jest sytuacja, kiedy indeksy na Y istniej� zarówno dla R, jak i dla S.Wtedy trzeba wykona� tylko ostatni krok prostego z��czenia opartego na sortowaniu (punkt15.4.6). Metoda ta jest czasem nazywana z��czeniem zig-zag, poniewa� polega na przechodzeniumi�dzy indeksami tam i z powrotem w celu znalezienia wspólnych warto�ci Y. Zauwa�my, �enie trzeba pobiera� krotek z R o warto�ci Y, która nie wyst�puje w S (i na odwrót).

Przyk�ad 15.13. Przyjmijmy, �e istniej� relacje R(X, Y) i S(Y, Z) o indeksach na Y w obu rela-cjach. Niech klucze wyszukiwania (warto�ci Y) dla krotek z R maj� warto�ci 1, 3, 4, 4, 4, 5, 6,a dla krotek z S — 2, 2, 4, 4, 6, 7. Zaczynamy od pierwszych kluczy z R i S, czyli 1 i 2. Poniewa�1 < 2, nale�y pomin�� pierwszy klucz z R i sprawdzi� drugi klucz, 3. Teraz obecny klucz z S jestmniejszy ni� aktualny klucz z R, dlatego mo�na pomin�� dwie 2 z S i doj�� do 4.

Na tym etapie klucz 3 z R ma warto�� mniejsz� ni� klucz z S, dlatego mo�na pomin�� kluczz R. Teraz oba klucze maj� warto�� 4. Nale�y pod��y� za wska�nikami powi�zanymi z wszyst-kimi kluczami o warto�ci 4 z obu relacji, pobra� odpowiednie krotki i z��czy� je. Zauwa�my, �edo czasu natrafienia na wspólny klucz, 4, nie pobrano z relacji �adnych krotek.

Po wyczerpaniu warto�ci 4 nale�y przej�� do klucza 5 w R i 6 w S. Poniewa� 5 < 6, prze-chodzimy do nast�pnego klucza w R. Teraz oba klucze maj� warto�� 6, dlatego nale�y pobra�powi�zane krotki i je z��czy�. Poniewa� pobrano ca�� R, wiadomo, �e w relacjach nie ma wi�cejpar krotek, które mo�na by z��czy�. �

Je�li indeksy to drzewa zbalansowane, mo�na sprawdzi� li�cie obu drzew w kolejno�ci odlewej do prawej, u�ywaj�c wbudowanych w struktur� wska�ników do li�ci, co pokazano na ry-sunku 15.15. Je�li R i S s� sklastrowane, pobranie wszystkich krotek o danym kluczu wymagabardzo ma�ej liczby dyskowych operacji wej�cia-wyj�cia. Zauwa�my, �e w skrajnych sytu-acjach, kiedy istnieje tyle krotek z R i S, i� nie mieszcz� si� one w pami�ci g�ównej, trzeba za-stosowa� poprawk�, tak� jak omówiona w punkcie 15.4.6. Jednak w typowych przypadkachetap z��czenia wszystkich krotek o identycznej warto�ci Y mo�na wykona� za pomoc� tyludyskowych operacji wej�cia-wyj�cia, ile potrzeba na wczytanie krotek.

15.15. Z��czenie zig-zag z wykorzystaniem dwóch indeksów

Page 61: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

664 15. WYKONYWANIE ZAPYTA�

Przyk�ad 15.14. Kontynuujmy przyk�ad 15.12, aby zobaczy�, jak� wydajno�� dla przyk�ado-wych danych ma z��czenie z wykorzystaniem sortowania i indeksów. Po pierwsze, za�ó�my, �edla S istnieje indeks na Y umo�liwiaj�cy pobranie krotek z S posortowanych wed�ug Y.W przyk�adzie przyjmujemy te�, �e obie relacje i indeks s� sklastrowane. Na razie za�ó�my, �enie ma indeksu dla R.

Je�li dost�pnych jest 101 bloków pami�ci g�ównej, mo�na wykorzysta� je do utworzenia 10posortowanych podlist dla 1000-blokowej relacji R. Liczba dyskowych operacji wej�cia-wyj�ciaprzy odczycie i zapisie ca�ej R wynosi 2000. Nast�pnie mo�na u�y� 11 bloków pami�ci — 10 napodlisty z R i 1 na blok z krotkami z S pobranymi za pomoc� indeksu. Pomijamy operacjei bufory pami�ci potrzebne do manipulowania indeksem. Je�li jednak indeks to drzewo zbalan-sowane, koszty i tak s� niskie. W drugim przebiegu nale�y wczyta� wszystkie krotki z R i S, cozajmuje w sumie 1500 dyskowych operacji wej�cia-wyj�cia plus ma�a liczba potrzebna na jed-nokrotne wczytanie bloków indeksu. Dlatego ��czna liczba dyskowych operacji wej�cia-wyj�ciato 3500, czyli mniej ni� w omawianych wcze�niej metodach.

Przyjmijmy teraz, �e w R i S istniej� indeksy na Y. Nie trzeba wtedy sortowa� �adnej relacji.Wystarczy 1500 dyskowych operacji wej�cia-wyj�cia na wczytanie bloków z R i S za pomoc�indeksów. W praktyce ustalenie na podstawie samych indeksów, �e du�ej cz��ci krotek z R lubS nie mo�na z��czy� z krotkami drugiej relacji, pozwala zmniejszy� ��czny koszt znacznie po-ni�ej 1500 dyskowych operacji wej�cia-wyj�cia. Jednak zawsze nale�y doda� ma�� liczb� opera-cji potrzebnych na wczytanie samych indeksów. �

15.6.5. wiczenia do podrozdzia�u 15.6wiczenie 15.6.1. Za�ó�my, �e istnieje indeks na atrybucie R.a. Opisz, jak mo�na wykorzysta�ten indeks, aby usprawni� wykonywanie poni�szych operacji. W jakich warunkach algorytmoparty na indeksie jest wydajniejszy od algorytmów opartych na sortowaniu lub haszowaniu?

a) R �Z S (przyjmij, �e R i S nie zawieraj� powtórze�, cho� w obu mo�e znajdowa� si� iden-tyczna krotka).

b) R �Z S (tak�e tu R i S to zbiory). c) (R).

wiczenie 15.6.2. Za�ó�my, �e B(R) = 10 000, T(R) = 500 000, istnieje indeks na R.a, a V(R, a) = kdla pewnego k. Okre�l koszt operacji �a=0(R) jako funkcj� od k w podanych dalej warunkach.Mo�esz pomin�� dyskowe operacje wej�cia-wyj�cia potrzebne do uzyskania dost�pu do samegoindeksu.

a) Indeks jest klastruj�cy. b) Indeks nie jest klastruj�cy. c) R jest sklastrowane, natomiast indeks nie jest u�ywany.

wiczenie 15.6.3. Wykonaj �wiczenie 15.6.2 dla zapytania zakresowego — �C�a AND a�D(R).Mo�na przyj��, �e C i D to sta�e, takie �e w przedziale znajduje si� k/10 warto�ci.

! wiczenie 15.6.4. Je�li R jest sklastrowana, natomiast indeks na R.a nie jest klastruj�cy,w zale�no�ci od k korzystniejsze mo�e by� zaimplementowanie zapytania za pomoc� skanowa-nia tabeli R lub indeksu. Dla jakich warto�ci k lepszy b�dzie indeks, je�li relacja i zapytanie s�takie jak w: a) �wiczeniu 15.6.2, b) �wiczeniu 15.6.3.

Page 62: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.7. ZARZ�DZANIE BUFOREM 665

wiczenie 15.6.5. Rozwa�my zapytanie SQL:

SELECT dataUrodzenia FROM GwiazdyWFilmie, GwiazdaFilmowaWHERE tytulFilmu = 'King Kong' AND nazwiskoGwiazdy = nazwisko;

W zapytaniu wykorzystano „filmowe” relacje:

GwiazdyWFilmie(tytulFilmu, rokFilmu, nazwiskoGwiazdy)GwiazdaFilmowa(nazwisko, adres, plec, dataUrodzenia)

Po przekszta�ceniu zapytania na algebr� relacji kluczowe b�dzie z��czenie równo�ciowe pomi�dzy:

�tytulFilmu='King Kong'(GwiazdyWFilmie)

i relacj� GwiazdaFilmowa, które mo�na zaimplementowa� jako z��czenie naturalne R S.Poniewa� istniej� tylko trzy filmy o tytule King Kong, warto�� T(R) jest bardzo ma�a. Za�ó�my,�e dla S (relacja GwiazdaFilmowa) dost�pny jest indeks na atrybucie nazwisko. Porównaj dlaoperacji R S koszt z��czenia opartego na indeksie z kosztem z��czenia opartego na sorto-waniu lub haszowaniu.

! wiczenie 15.6.6. W przyk�adzie 15.14 okre�lono liczb� dyskowych operacji wej�cia-wyj�ciadla z��czenia R S, w którym dla R i (lub) S istniej� indeksy sortowania na atrybutachuwzgl�dnianych w z��czeniu. Jednak metody opisane w owym przyk�adzie nie zadzia�aj�, je�liistnieje zbyt wiele krotek o identycznych warto�ciach tych atrybutów. Poni�ej jakiej liczbybloków zajmowanych przez krotki o tej samej warto�ci w opisanych metodach nie potrzebadodatkowych dyskowych operacji wej�cia-wyj�cia?

15.7. Zarz�dzanie buforemPrzyj�to, �e dla operatorów dzia�aj�cych na relacjach dost�pna jest w pami�ci g�ównej pewnaliczba M buforów, które mo�na wykorzysta� na potrzebne dane. W praktyce bufory rzadkos� z góry przydzielane operatorowi, a warto�� M mo�e si� zmienia� w zale�no�ci od warunkóww systemie. Za g�ówne zadanie, czyli udost�pnianie buforów pami�ci g�ównej procesom (naprzyk�ad zapytaniom) dzia�aj�cym na bazie danych, odpowiada mened�er buforów. Mened�erodpowiada za udost�pnianie procesom potrzebnej pami�ci i minimalizowanie przy tym opó�-nienia oraz liczby ��da� niemo�liwych do zrealizowania. Zadania mened�era buforów przed-stawiono na rysunku 15.16.

15.7.1. Architektura mened�era buforówIstniej� dwie ogólne architektury mened�erów buforów.

(1) Mened�er buforów bezpo�rednio kontroluje pami�� g�ówn� (tak dzia�a wiele relacyjnychsystemów DBMS).

(2) Mened�er buforów przydziela bufory w pami�ci wirtualnej i umo�liwia systemowi opera-cyjnemu okre�lenie, które bufory znajduj� si� w danym momencie w pami�ci g�ównej,a które pozostaj� w zarz�dzanej przez system przestrzeni wymiany na dysku. W ten sposóbdzia�a wiele systemów DBMS opartych na pami�ci g�ównej i obiektowych.

Page 63: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

666 15. WYKONYWANIE ZAPYTA�

15.16. Mened�er buforów odpowiada na ��dania dost�pu do bloków dysku w pami�ci g�ównej

Niezale�nie od podej�cia zastosowanego w systemie DBMS powstaje ten sam problem: me-ned�er buforów powinien ogranicza� liczb� u�ywanych buforów, tak aby mie�ci�y si� w do-st�pnej pami�ci g�ównej. Kiedy mened�er buforów bezpo�rednio kontroluje pami�� g�ówn�,a za��dano zbyt du�ej ilo�ci pami�ci, mened�er musi okre�li� zwalniany bufor i zwróci� jegozawarto�� na dysk. Je�eli blok w buforze si� nie zmieni�, wystarczy usun�� go z pami�ci g�ów-nej, jednak po wprowadzeniu zmian blok trzeba z powrotem zapisa� na jego miejscu na dysku.Je�li mened�er buforów przedziela pami�� w pami�ci wirtualnej, mo�e przydzieli� wi�cej bufo-rów, ni� mie�ci si� w pami�ci g�ównej. Je�eli jednak rzeczywi�cie u�ywane s� wszystkie bufory,nast�pi prze�adowanie — standardowy problem w systemie operacyjnym, kiedy to wiele blo-ków jest przenoszonych do i z przestrzeni wymiany dysku. W tej sytuacji system po�wi�cawi�kszo�� czasu na wymian� bloków i wykonuje bardzo niewiele u�ytecznych operacji.

Standardowo liczba buforów to parametr ustawiany w czasie inicjowania systemu DBMS.Mo�na oczekiwa�, �e zgodnie z ustawieniami bufory b�d� zajmowa� dost�pn� pami�� g�ówn�niezale�nie od tego, czy s� alokowane w pami�ci g�ównej czy wirtualnej. W dalszych punktachtryb buforowania nie ma znaczenia. Przyj�to, �e istnieje pula buforów o sta�ym rozmiarze, czylizestaw buforów dost�pnych przy obs�udze zapyta� i innych operacji na bazie danych.

Zarz�dzanie pami�ci� przy przetwarzaniu zapyta�

Zak�adamy, �e mened�er buforów przydziela operatorowi M buforów w pami�ci g�ównej,przy czym warto�� M zale�y od warunków w systemie (w tym innych przetwarzanychoperatorów i zapyta�) oraz mo�e zmienia� si� dynamicznie. Kiedy operator ma dost�p doM buforów, mo�e u�ywa� niektórych z nich do wczytywania stron dysku, innych na stro-ny indeksu, a jeszcze innych — na etapy sortowania lub tablice haszuj�ce. W niektórychsystemach DBMS pami�� nie jest przydzielana z jednej puli, ale raczej z odr�bnych pulpami�ci (z ró�nymi mened�erami buforów) o odmiennym przeznaczeniu. Operator mo�eotrzyma� D buforów z puli na strony wczytane z dysku i H buforów na tablic� haszuj�c�.To podej�cie zapewnia wi�ksze mo�liwo�ci w zakresie konfigurowania i dostrajania systemu,jednak nie zawsze prowadzi do optymalnego globalnego wykorzystania pami�ci.

Page 64: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.7. ZARZ�DZANIE BUFOREM 667

15.7.2. Strategie zarz�dzania buforamiKrytyczny wybór dokonywany w mened�erze buforów dotyczy tego, który blok nale�y usun��z puli buforów, kiedy potrzebny jest bufor na w�a�nie za��dany blok. Popularne strategie wy-miany buforów mog� by� znane z zastosowa� regu� szeregowania w innym kontek�cie (na przy-k�ad w systemach operacyjnych). Oto niektóre strategie.

Algorytm LRURegu�a LRU (ang. least-recently used, czyli najd�u�ej nieu�ywany) polega na usuwaniu bloku,który nie by� wczytywany ani zapisywany przez najd�u�szy czas. Metoda ta wymaga, aby me-ned�er buforów przechowywa� tabel� z czasem ostatniego dost�pu do bloku w ka�dym buforze.Przy ka�dym dost�pie do bazy danych trzeba te� doda� wpis do tabeli, dlatego przechowywanieinformacji jest pracoch�onne. Jednak LRU to efektywna strategia. Intuicyjnie mo�na stwier-dzi�, �e d�ugo nieu�ywane bufory prawdopodobnie b�d� potrzebne pó�niej od tych u�ywanychniedawno.

Pierwszy na wej�ciu, pierwszy na wyj�ciu (FIFO)Kiedy potrzebny jest bufor, a zastosowano strategi� FIFO, bufor najd�u�ej zajmowany przezten sam blok jest opró�niany, a nast�pnie wykorzystywany na nowy blok. W tym podej�ciumened�er buforów musi zna� tylko czas wczytania do bufora obecnie zajmuj�cego go bloku.Wpis w tabeli mo�na wi�c doda� w czasie wczytywania bloku z dysku. Nie trzeba modyfikowa�tabeli przy dost�pie do bloku. Strategia FIFO wymaga mniej pracy ni� LRU, ale powodujewi�cej b��dów. Cz�sto u�ywany blok, na przyk�ad blok z korzeniem indeksu w postaci drzewazbalansowanego, ostatecznie staje si� najstarszym blokiem w buforze. Jest wtedy zapisywanyz powrotem na dysku, po czym wkrótce trzeba wczyta� go do innego bufora.

Algorytm „zegarowy” (drugiej szansy)Algorytm ten to cz�sto stosowane, wydajne przybli�enie strategii LRU. Mo�na wyobrazi� so-bie, �e bufory uporz�dkowane s� w okr�g, co pokazano na rysunku 15.17. „Wskazówka” poka-zuje jeden z buforów i porusza si� zgodnie z ruchem wskazówek zegara, kiedy trzeba znale��bufor, w którym nale�y umie�ci� blok z dysku. Ka�dy bufor jest powi�zany z „flag�” o warto�ci0 lub 1. Bufory z warto�ci� 0 s� nara�one na przes�anie zawarto�ci z powrotem na dysk; buforyz warto�ci� 1 s� na to odporne. Przy wczytywaniu bloku do bufora flag� nale�y ustawi� na 1.Tak�e dost�p do zawarto�ci bufora powoduje ustawienie flagi na 1.

15.17. Algorytm „zegarowy” przechodzi po kolejnych buforach i zast�puje flagi 01…1 flagami 10…0

Page 65: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

668 15. WYKONYWANIE ZAPYTA�

Inne sztuczki dotycz�ce algorytmu „zegarowego”

Algorytm „zegarowy” wyboru zwalnianych buforów nie ogranicza si� do schematu opisa-nego w punkcie 15.7.2, gdzie flagi przyjmowa�y warto�ci 0 i 1. Do wa�nej strony mo�napocz�tkowo przypisa� flag� o warto�ci wi�kszej ni� 1 i zmniejsza� j� o 1 przy ka�dymprzej�ciu wskazówki. W praktyce mo�na zastosowa� przyklejanie bloków, przypisuj�c dobloku flag� o niesko�czonej warto�ci. W odpowiednim momencie system zwalnia blok,ustawiaj�c flag� na 0.

Kiedy mened�er buforów potrzebuje bufor na nowy blok, szuka pierwszej warto�ci 0, poru-szaj�c si� zgodnie z ruchem wskazówek zegara. Je�li natrafia na flag� 1, ustawia j� na 0. Dlategoblok jest usuwany z bufora tylko wtedy, je�li nie u�ywano go przez czas potrzebny wskazówcena wykonanie pe�nego obrotu i ustawienie flagi na 0, a nast�pnie wykonanie kolejnego pe�negoobrotu oraz znalezienie bufora z niezmodyfikowan� flag� 0. Przyk�adowo na rysunku 15.17wskazówka spowoduje ustawienie flagi 1 na 0 w nast�pnym buforze, a nast�pnie przejdzie dobufora z flag� 0, zast�pi jego blok i ustawi flag� na 1.

Kontrola ze strony systemuProcesor zapyta� lub inne komponenty systemu DBMS mog� dawa� mened�erowi buforówwskazówki pozwalaj�ce unikn�� pewnych b��dów, które mog� wyst�pi� przy �cis�ym przestrze-ganiu algorytmów LRU, FIFO lub „zegarowego”. W punkcie 13.6.5 wspomniano, �e czasemz przyczyn technicznych nie mo�na przenie�� bloku z pami�ci g�ównej na dysk bez wcze�niejszegozmodyfikowania pewnych innych prowadz�cych do niego bloków. Bloki te s� przyklejone,a mened�er buforów musi zmodyfikowa� strategi� wymiany buforów, aby unikn�� usuni�ciatakich bloków. Daje to mo�liwo�� wymuszenia pozostawienia pewnych bloków w pami�cig�ównej przez oznaczenie ich jako przyklejonych, nawet je�li nie ma technicznych przyczyn,dla których nie mo�na zapisa� ich na dysku. Przyk�adowo rozwi�zanie problemu z algorytmemFIFO (zwi�zanego z korzeniem drzewa zbalansowanego) polega na przyklejeniu korzenia, cowymusza sta�e utrzymywanie go w pami�ci. Podobnie w algorytmach w rodzaju jednoprzebie-gowego z��czenia przez haszowanie procesor zapyta� mo�e przyklei� bloki mniejszej relacji,aby zagwarantowa�, �e na sta�e pozostan� w pami�ci g�ównej.

15.7.3. Zwi�zki mi�dzy fizycznym operatorem selekcjia zarz�dzaniem buforamiOptymalizator zapyta� ostatecznie wybiera zbiór operatorów fizycznych u�ywanych do wyko-nania danego zapytania. Wybór mo�e by� oparty na za�o�eniu, �e przy przetwarzaniu ka�degooperatora dost�pnych jest M buforów. Jednak, jak pokazano, w mened�erze buforów nie zawszepo��dane lub mo�liwe jest zagwarantowanie dost�pno�ci M buforów na czas wykonywaniazapytania. Dlatego trzeba zada� dwa powi�zane pytania na temat operatorów fizycznych.

(1) Czy algorytm potrafi dostosowa� si� do zmian w warto�ci M (liczbie buforów dost�pnychw pami�ci g�ównej)?

(2) Je�li oczekiwana liczba M buforów nie jest dost�pna, a niektóre bloki, które powinnyznajdowa� si� w pami�ci, mened�er buforów przeniós� na dysk, w jaki sposób strategiawymiany buforów stosowana przez mened�era wp�ywa na liczb� dodatkowych potrzebnychoperacji wej�cia-wyj�cia?

Page 66: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.7. ZARZ�DZANIE BUFOREM 669

Przyk�ad 15.15. Jako ilustracja tych problemów pos�u�y oparte na blokach z��czenie zagnie�-d�one z rysunku 15.8. Podstawowy algorytm nie zale�y od warto�ci M, cho� wp�ywa ona najego wydajno��. Dlatego M mo�na ustali� tu� przed rozpocz�ciem dzia�ania algorytmu.

Mo�liwe jest nawet to, �e M zmieni si� mi�dzy iteracjami p�tli zewn�trznej. Przy ka�dymwczytywaniu do pami�ci g�ównej cz��ci relacji S (relacji z p�tli zewn�trznej) mo�na wykorzy-sta� wszystkie dost�pne w tym czasie bufory oprócz jednego. Ostatni bufor zarezerwowany jestna blok z R (relacji z p�tli wewn�trznej). Tak wi�c liczba powtórze� p�tli zewn�trznej zale�yod �redniej liczby buforów dost�pnych w ka�dej iteracji. Jednak o ile �rednio dost�pnych jest Mbuforów, analizy kosztów z punktu 15.3.4 s� poprawne. W skrajnym przypadku mo�na mie�szcz��cie i odkry�, �e w pierwszej iteracji dost�pne s� bufory na zapisanie ca�ej S. Wtedy z��-czenie zagnie�d�one dzia�a tak jak z��czenie jednoprzebiegowe, opisane w punkcie 15.2.3.

Oto inny przyk�ad zale�no�ci buforowania i z��czenia zagnie�d�onego. Za�ó�my, �e do wymianybuforów zastosowano strategi� LRU, a na bloki z R dost�pnych jest k buforów. Przy wczytywaniukolejno ka�dego bloku z R pod koniec iteracji p�tli zewn�trznej w buforach b�dzie znajdowa� si� kostatnich bloków z R. Nast�pnie mo�na wczyta� do M – 1 buforów przeznaczonych na S nowe blokiz S i ponownie rozpocz�� wczytywanie bloków z R (w nast�pnej iteracji w p�tli zewn�trznej). Je�lijednak wczytywanie ponownie zacznie si� od pocz�tku, trzeba wymieni� k buforów przeznaczonychdla R. Samo k > 1 nie zapewnia wtedy zmniejszenia liczby dyskowych operacji wej�cia-wyj�cia.

Lepsza implementacja z��czenia zagnie�d�onego (przy stosowaniu strategii LRU do wy-miany buforów) polega na pobieraniu bloków z R w naprzemiennej kolejno�ci: od pocz�tku doko�ca i od ko�ca do pocz�tku (tak zwane odbijanie). W ten sposób przy k buforach dost�pnychdla R w ka�dej (oprócz pierwszej) iteracji p�tli zewn�trznej mo�na zaoszcz�dzi� k dyskowychoperacji wej�cia-wyj�cia. Oznacza to, �e druga i kolejne iteracje wymagaj� tylko B(R) – k opera-cji dla R. Zauwa�my, �e nawet dla k = 1 (czyli bez dodatkowych buforów dost�pnych dla R)oszcz�dno�� wynosi jedn� operacj� na iteracj�. �

Zmienna warto�� M i strategia wymiany buforów u�ywana w mened�erze buforów maj�znaczenie tak�e w innych algorytmach. Oto kilka przydatnych spostrze�e�.

� Algorytm oparty na sortowaniu mo�na dostosowa� do zmiany warto�ci M. Je�li M maleje,mo�na zmieni� rozmiar podlist, poniewa� opisane algorytmy oparte na sortowaniu niewymagaj�, aby podlisty mia�y sta�� wielko��. G�ównym ograniczeniem przy zmniejszeniuM jest to, �e czasem trzeba utworzy� tyle podlist, �e nie mo�na przydzieli� bufora na ka�d�z nich w procesie scalania.

� W algorytmach opartych na haszowaniu po zmniejszeniu M mo�na ograniczy� liczb� ku-be�ków, o ile nie stan� si� one tak du�e, �e przestan� mie�ci� si� w przydzielonej pami�cig�ównej. Jednak — inaczej ni� w algorytmach opartych na sortowaniu — nie mo�na re-agowa� na zmiany w M w czasie dzia�ania algorytmu. Po okre�leniu liczba kube�ków po-zostaje sta�a w czasie pierwszego przebiegu. Je�li bufory stan� si� niedost�pne, bloki nale-��ce do niektórych kube�ków trzeba b�dzie usun�� na dysk.

15.7.4. wiczenia do podrozdzia�u 15.7wiczenie 15.7.1. Za�ó�my, �e chcemy przeprowadzi� z��czenie R S, a dost�pna pami��waha si� mi�dzy M i M/2. Za pomoc� M, B(R) i B(S) podaj warunki, które gwarantuj� mo�li-wo�� wykonania poni�szych algorytmów:

a) jednoprzebiegowego z��czenia, b) dwuprzebiegowego z��czenia opartego na haszowaniu, c) dwuprzebiegowego z��czenia opartego na sortowaniu.

Page 67: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

670 15. WYKONYWANIE ZAPYTA�

! wiczenie 15.7.2. Jak zmniejsza si� liczba dyskowych operacji wej�cia-wyj�cia w z��czeniuzagnie�d�onym po udost�pnieniu dodatkowych buforów, je�li strategi� wymiany buforów jest:

a) pierwszy na wej�ciu, pierwszy na wyj�ciu, b) algorytm „zegarowy”.

!! wiczenie 15.7.3. W przyk�adzie 15.15 zasugerowano, �e w czasie z��czenia mo�na wykorzy-sta� dodatkowe dost�pne bufory, przechowuj�c w nich wi�cej ni� jeden blok z R i przegl�daj�cbloki z R w odwrotnej kolejno�ci w parzystych iteracjach p�tli zewn�trznej. Mo�na te� jednakudost�pni� tylko jeden bufor na R i zwi�kszy� liczb� buforów dost�pnych dla S. Która strategiaprowadzi do najmniejszej liczby dyskowych operacji wej�cia-wyj�cia?

15.8. Algorytmy o wi�cej ni� dwóch przebiegachCho� dwa przebiegi wystarczaj� przy operacjach na wszystkich relacjach, oprócz tych najwi�k-szych, nale�y wiedzie�, �e podstawowe techniki omówione w podrozdzia�ach 15.4 i 15.5 mo�nauogólni� na algorytmy, które — w odpowiedniej liczbie przebiegów — przetwarzaj� relacjeo dowolnym rozmiarze. W tym podrozdziale omówiono uogólnienie podej�� opartych na sor-towaniu i haszowaniu.

15.8.1. Wieloprzebiegowe algorytmy oparte na sortowaniuW punkcie 15.4.1 napomkni�to, �e DWSPS mo�na rozwin�� w algorytm trzyprzebiegowy. Istniejeprosta rekurencyjna technika sortowania, które umo�liwia kompletne sortowanie dowolniedu�ych relacji lub tworzenie n posortowanych podlist dla dowolnego n.

Za�ó�my, �e do sortowania relacji R mo�na wykorzysta� M buforów w pami�ci g�ównej(przyjmujemy, �e R jest sklastrowana). Oto potrzebne operacje.

PRZYPADEK PODSTAWOWY: Je�li R mie�ci si� w M blokach (B(R) � M), nale�y wczyta�R do pami�ci g�ównej, posortowa� za pomoc� dowolnego algorytmu sortuj�cego w pami�cig�ównej i zapisa� posortowan� relacj� na dysku.

INDUKCJA: Je�eli R nie mie�ci si� w pami�ci g�ównej, trzeba podzieli� bloki z R na M grup— R1, R2, …, RM. Nale�y rekurencyjnie posortowa� Ri dla i = 1, 2, …, M, a nast�pnie scali�M posortowanych podlist, tak jak w punkcie 15.4.1.

Je�li ma miejsce nie tylko sortowanie R, ale te� wykonywanie na R operacji jednoargumen-towej, na przyk�ad � lub , nale�y zmodyfikowa� powy�szy algorytm, tak aby przy ostatecznymscalaniu wykona� dzia�ania na krotkach z pocz�tków posortowanych podlist. Oto te dzia�ania.

� Dla nale�y zwróci� jedn� kopi� ka�dej specyficznej krotki i pomin�� jej pozosta�ewyst�pienia.

� Dla � trzeba posortowa� dane tylko wed�ug atrybutów grupuj�cych i w odpowiedni sposóbpo��czy� krotki o danej warto�ci tych atrybutów, tak jak opisano to w punkcie 15.4.3.

Page 68: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.8. ALGORYTMY O WI CEJ NI� DWÓCH PRZEBIEGACH 671

Przy wykonywaniu operacji dwuargumentowej, takiej jak obliczanie cz��ci wspólnej lub z��-czenia, stosowany jest ten sam pomys�, przy czym dwie pierwsze relacje nale�y najpierw po-dzieli� na ��cznie M podlist. Nast�pnie ka�d� podlist� trzeba posortowa� za pomoc� opisanegoalgorytmu rekurencyjnego. Na zako�czenie ka�da z M podlist wczytywana jest do jednego buforai mo�na wykona� operacje w sposób omówiony w odpowiednich punktach podrozdzia�u 15.4.

M buforów mo�na podzieli� mi�dzy relacje R i S w dowolny sposób. Aby jednak zminima-lizowa� ��czn� liczb� przebiegów, zwykle nale�y podzieli� bufory proporcjonalnie do liczbybloków zajmowanych przez relacje. Na R nale�y przeznaczy� M × B(R)/(B(R) + B(S)) buforów,a na S — reszt�.

15.8.2. Wydajno�� wieloprzebiegowych algorytmówopartych na sortowaniuRozwa�my teraz zwi�zek mi�dzy liczb� potrzebnych dyskowych operacji wej�cia-wyj�cia, roz-miarem relacji i pojemno�ci� pami�ci g�ównej. Niech s(M, k) b�dzie maksymalnym rozmiaremrelacji, któr� mo�na posortowa� za pomoc� M buforów i k przebiegów. Wtedy mo�na obliczy�s(M, k) w nast�puj�cy sposób.

PRZYPADEK PODSTAWOWY: Je�li k = 1 (dopuszczalny jest jeden przebieg), koniecznejest, aby B(R) � M. Ujmijmy to inaczej — s(M, 1) = M.

INDUKCJA: Przyjmijmy, �e k > 1. Wtedy mo�na podzieli� R na M cz��ci, z których ka�d�mo�na posortowa� w k – 1 przebiegach. Je�li B(R) = s(M, k), to s(M, k)/M (czyli rozmiar ka�dejz M cz��ci R) nie mo�e przekracza� s(M, k – 1). Tak wi�c s(M, k) = M s(M, k – 1).

Po rozwini�ciu rekurencji okazuje si�, �e:

s(M, k) = M s(M, k – 1) = M2s(M, k – 2) = … = Mk-1s(M, 1)

Poniewa� s(M, 1) = M, okazuje si�, �e s(M, k) = Mk. W k przebiegach mo�na posortowa�relacj� R, je�li B(R) � Mk. Ujmijmy to inaczej — przy sortowaniu relacji R w k przebiegachminimaln� liczb� buforów jest M = (B(R))1/k.

Algorytm sortuj�cy w ka�dym przebiegu wczytuje wszystkie dane z dysku i ponownie je zapisuje.Dlatego k-przebiegowy algorytm sortuj�cy wymaga 2kB(R) dyskowych operacji wej�cia-wyj�cia.

Rozwa�my teraz koszt wieloprzebiegowego z��czenia R(X, Y) S(Y, Z) (jest to reprezen-tatywna operacja dwuargumentowa na relacjach). Niech j(M, k) to najwi�ksza liczba bloków,taka �e w k przebiegach z wykorzystaniem M buforów mo�na z��czy� relacje maj�ce w sumiej(M, k) lub mniej bloków. Oznacza to, �e z��czenie jest mo�liwe, je�li B(R) + B(S) � j(M, k).

W ostatnim przebiegu nale�y scali� M posortowanych podlist z obu relacji. Ka�da z podlistjest sortowana za pomoc� k – 1 przebiegów, dlatego nie mo�e by� d�u�sza ni� s(M, k – 1) = Mk – 1,co w sumie daje M s(M, k – 1) = Mk. Tak wi�c B(R) + B(S) � Mk. Po odwróceniu ról parametrówmo�na ponadto stwierdzi�, �e do obliczenia z��czenia w k przebiegach potrzeba (B(R) + B(S))1/k

buforów.Przy okre�laniu liczby dyskowych operacji wej�cia-wyj�cia potrzebnych w algorytmach

wieloprzebiegowych nale�y pami�ta�, �e — inaczej ni� przy sortowaniu — dla z��cze� i innychoperacji na relacjach nie trzeba uwzgl�dnia� zapisu ko�cowego wyniku na dysk. Dlatego sor-towanie podlist wymaga 2(k – 1)(B(R) + B(S)) operacji, a kolejnych B(R) + B(S) operacjipotrzeba na wczytanie posortowanych podlist w ostatnim przebiegu. W sumie oznacza to(2k – 1)(B(R) + B(S)) operacji.

Page 69: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

672 15. WYKONYWANIE ZAPYTA�

15.8.3. Wieloprzebiegowe algorytmy oparte na haszowaniuW operacjach na du�ych relacjach istnieje powi�zana rekurencyjna technika haszowania. Rela-cj� (lub relacje) nale�y podzieli� przez haszowanie na M – 1 kube�ków, przy czym M to liczbadost�pnych buforów w pami�ci. Operacje jednoargumentowe nale�y wykona� osobno na ka�-dym kube�ku. Operacje dwuargumentowe, takie jak z��czenie, trzeba przeprowadzi� na ka�dejparze odpowiadaj�cych sobie kube�ków, tak jakby by�y ca�ymi relacjami. Technik� t� mo�naopisa� rekurencyjnie.

PRZYPADEK PODSTAWOWY: Je�li w operacji jednoargumentowej relacja mie�ci si� w Mbuforach, nale�y wczyta� j� do pami�ci i wykona� operacj�. Je�eli w operacji dwuargumentowejjedna z relacji mie�ci si� w M – 1 buforach, trzeba wykona� operacj�, wczytuj�c relacj� do pa-mi�ci g�ównej, a nast�pnie wczyta� drug� relacj� blok po bloku do M-tego bufora.

INDUKCJA: Je�eli �adna relacja nie mie�ci si� w pami�ci g�ównej, nale�y za pomoc� haszo-wania podzieli� obie na M – 1 kube�ków, co opisano w punkcie 15.5.1. Nast�pnie trzeba reku-rencyjnie wykonywa� operacj� na ka�dym kube�ku (lub ka�dej parze) i akumulowa� dane wyj-�ciowe z wszystkich kube�ków (lub par).

15.8.4. Wydajno�� wieloprzebiegowych algorytmówopartych na haszowaniuDalej w tek�cie obowi�zuje za�o�enie, �e przy haszowaniu relacji krotki dzielone s� mo�liwierównomiernie mi�dzy kube�ki. W praktyce za�o�enie mo�na cz��ciowo spe�ni�, wybieraj�cw pe�ni losow� funkcj� haszuj�c�, jednak rozk�ad krotek w kube�kach zawsze b�dzie nieco nie-równomierny.

Najpierw rozwa�my operacj� jednoargumentow�, na przyk�ad � lub na relacji R z wyko-rzystaniem M buforów. Niech u(M, k) b�dzie liczb� bloków najwi�kszej relacji, jak� mo�eobs�u�y� k-przebiegowy algorytm haszowania. Liczb� u mo�na zdefiniowa� rekurencyjniew nast�puj�cy sposób.

PRZYPADEK PODSTAWOWY: u(M, 1) = M, poniewa� relacja R musi mie�ci� si� w Mbuforach (a wi�c B(R) � M).

INDUKCJA: Zak�adamy, �e pierwszy krok to podzia� relacji R na M – 1 kube�ków o równejwielko�ci. Dlatego mo�na obliczy� u(M, k) w opisany tu sposób. Kube�ki w nast�pnym prze-biegu musz� by� na tyle ma�e, �e mo�na je obs�u�y� w k – 1 przebiegach. Kube�ki maj� wi�crozmiar u(M, k – 1). Poniewa� R dzielona jest na M – 1 kube�ków, konieczne jest, aby u(M, k)= (M – 1)u(M, k – 1).

Po rozwini�ciu rekurencji okazuje si�, �e u(M, k) = M(M – 1)k – 1 lub — w przybli�eniu dladu�ego M — u(M, k) = Mk. Mo�na te� wykona� jedn� z jednoargumentowych operacji na rela-cji R w k przebiegach przy M buforach i za�o�eniu, �e M � (B(R))1/k.

Podobn� analiz� mo�na przeprowadzi� dla operacji dwuargumentowych. Rozwa�my z��-czenie (tak jak w punkcie 15.8.2). Niech j(M, k) b�dzie górnym ograniczeniem rozmiaru mniej-szej z dwóch relacji R i S ze z��czenia R(X, Y) S(Y, Z). Tak jak wcze�niej M to liczba do-st�pnych buforów, a k to liczba przebiegów.

PRZYPADEK PODSTAWOWY: j(M, 1) = M – 1. Oznacza to, �e przy stosowaniu jedno-przebiegowego algorytmu z��czenia R lub S musi mie�ci� si� w M – 1 blokach, co opisanow punkcie 15.2.3.

Page 70: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.9. PODSUMOWANIE ROZDZIA�U 15. 673

INDUKCJA: j(M, k) = (M – 1)j(M, k – 1). Oznacza to, �e w pierwszym z k przebiegów mo�napodzieli� ka�d� relacj� na M – 1 kube�ków i oczekiwa�, i� ka�dy kube�ek b�dzie stanowi� 1/(M – 1)ca�ej relacji. Mo�liwe musi by� z��czenie ka�dej pary odpowiadaj�cych sobie kube�ków w M – 1przebiegach.

Rozwijaj�c rekurencj� dla j(M, k), ustalamy, �e j(M, k) = (M – 1)k. Przy za�o�eniu, �e M jest du�e,mo�na w przybli�eniu okre�li�, i� j(M, k) = Mk. Oznacza to, �e z��czenie R(X, Y) S(Y, Z)mo�na przeprowadzi� w k przebiegach za pomoc� M buforów, je�li (B(R) + B(S)) � Mk.

15.8.5. wiczenia do podrozdzia�u 15.8wiczenie 15.8.1. Za�ó�my, �e B(R) = 20 000, B(S) = 50 000 i M = 101. Opisz dzia�anie po-ni�szych algorytmów przy obliczaniu R S.

a) Trójprzebiegowy algorytm oparty na sortowaniu. b) Trójprzebiegowy algorytm oparty na haszowaniu.

! wiczenie 15.8.2. Istnieje kilka sztuczek do zwi�kszania wydajno�ci algorytmów dwuprzebie-gowych. Okre�l, czy poni�sze sztuczki mo�na wykorzysta� w algorytmie wieloprzebiegowym,a je�li tak, to w jaki sposób.

a) Sztuczka z hybrydowego z��czenia przez haszowanie z punktu 15.5.6. b) Usprawnienie algorytmu opartego na sortowaniu przez zapisywanie bloków obok siebie

na dysku (punkt 15.5.7). c) Usprawnienie algorytmu opartego na haszowaniu przez zapisywanie bloków obok siebie

na dysku (punkt 15.5.7).

15.9. Podsumowanie rozdzia�u 15.� Przetwarzanie zapytania. Zapytania s� kompilowane (co obejmuje rozbudowane optymali-

zowanie), a nast�pnie wykonywane. Poznawanie dziedziny wykonywania zapyta� obej-muje nauk� metod wykonywania operacji algebry relacji oraz pewnych rozszerze� zapew-niaj�cych mo�liwo�ci SQL-a.

� Plany zapyta�. Zapytania s� kompilowane najpierw do logicznych planów zapyta� (którecz�sto przypominaj� wyra�enia algebry relacji), a nast�pnie s� przekszta�cane na fizycznyplan zapytania przez wybranie implementacji ka�dego operatora, okre�lenie kolejno�ciz��cze� i dokonanie innych wyborów, co opisano w rozdziale 16.

� Skanowanie tabeli. Dost�p do krotek relacji zapewnia kilka operatorów fizycznych. Operatorskanowania tabeli wczytuje ka�dy blok z krotkami relacji. Przegl�danie indeksu polega nazastosowaniu indeksu do znajdowania krotek, a skanowanie z sortowaniem powoduje po-sortowanie krotek.

� Miary kosztów dzia�ania operatorów fizycznych. Zwykle najwi�kszy wp�yw na czas ma liczbadyskowych operacji wej�cia-wyj�cia potrzebnych do wykonania danej operacji. W u�ytymtu modelu wa�ny jest tylko czas dyskowych operacji wej�cia-wyj�cia, przy czym uwzgl�d-niono wy��cznie czas i pami�� potrzebne na wczytanie argumentów, a nie na zapisaniewyniku.

Page 71: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

674 15. WYKONYWANIE ZAPYTA�

� Iteratory. Kilka operacji zwi�zanych z wykonywaniem zapytania mo�na wygodnie po��-czy�, je�li przeprowadzi si� je za pomoc� operatora. Mechanizm ten obejmuje trzy metody— rozpoczynaj�c� tworzenie relacji, generuj�c� nast�pn� krotk� relacji i ko�cz�c� proces.

� Algorytmy jednoprzebiegowe. O ile jeden z argumentów operatora algebry relacji mie�ci si�w pami�ci g�ównej, mo�na wykona� operacj� przez wczytanie mniejszej relacji do pami�cii wczytywanie drugiego argumentu blok po bloku.

� Z��czenie zagnie�d�one. Ten prosty algorytm z��czenia dzia�a nawet wtedy, kiedy �adenargument nie mie�ci si� w pami�ci g�ównej. Wczytuje jak najwi�ksz� cz��� mniejszej rela-cji do pami�ci i porównuje j� z ca�ym drugim argumentem. Proces nale�y powtarza� doczasu wczytania kolejno wszystkich cz��ci mniejszej relacji do pami�ci.

� Algorytmy dwuprzebiegowe. Oprócz z��czenia zagnie�d�onego, wi�kszo�� algorytmów dlaargumentów niemieszcz�cych si� w pami�ci oparta jest na sortowaniu, haszowaniu lubindeksie.

� Algorytmy oparte na sortowaniu. Dziel� argumenty na posortowane podlisty o wielko�cipami�ci g�ównej. Podlisty te s� odpowiednio scalane w po��dany wynik. Przyk�adowo doscalania krotek wszystkich podlist w posortowanej kolejno�ci s�u�y dwuetapowe wielo-�cie�kowe sortowanie przez scalanie.

� Algorytmy oparte na haszowaniu. Tu do podzia�u argumentów na kube�ki s�u�y funkcja ha-szuj�ca. Nast�pnie operacj� nale�y zastosowa� dla odr�bnych kube�ków (w operacjachjednoargumentowych) lub dla ich par (dla operacji dwuargumentowych).

� Haszowanie a sortowanie. Algorytmy oparte na haszowaniu s� cz�sto lepsze od opartych nasortowaniu, poniewa� tylko jeden z ich argumentów musi by� „ma�y”. Algorytmy opartena sortowaniu dzia�aj� dobrze, je�li istnieje inna przyczyna do przechowywania danychw posortowanej postaci.

� Algorytmy oparte na indeksach. U�ycie indeksu to doskona�y sposób na przyspieszenie se-lekcji, w której w warunku atrybut z indeksu porównywany jest ze sta��. Z��czenia opartena indeksie to znakomita technika, je�li jedna z relacji jest ma�a, a dla drugiej istniejeindeks oparty na atrybutach u�ywanych w z��czeniu.

� Mened�er buforów. Dost�pno�� bloków pami�ci kontroluje mened�er buforów. Kiedy w pa-mi�ci potrzebny jest nowy bufor, mened�er stosuje jedn� ze znanych strategii wymiany(na przyk�ad LRU) do okre�lenia, który bufor zostanie zapisany na dysku.

� Radzenie sobie ze zmienn� liczb� buforów. Cz�sto nie mo�na z góry przewidzie� liczby bufo-rów w pami�ci g�ównej dost�pnych dla operacji. Wtedy wydajno�� algorytmu wykonywaniaoperacji powinna �agodnie male� wraz ze zmniejszaniem si� liczby dost�pnych buforów.

� Algorytmy wieloprzebiegowe. Algorytmy dwuprzebiegowe oparte na sortowaniu lub haszo-waniu maj� naturalne rekurencyjne odpowiedniki, które wymagaj� trzech lub wi�cej prze-biegów i dzia�aj� dla wi�kszych ilo�ci danych.

Page 72: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

15.10. LITERATURA DO ROZDZIA�U 15. 675

15.10. Literatura do rozdzia�u 15.[6] i [2] to dwa przegl�dy optymalizacji zapyta�. [8] zawiera przegl�d optymalizacji zapyta�rozproszonych.

W [5] opisano wczesne badania metod z��czenia. W [3] znajduj� si� analizy, przegl�d i uspraw-nienia zarz�dzania pul� buforów.

Pierwszy opis zastosowania technik opartych na sortowaniu znajduje si� w [1]. Zalety algo-rytmów opartych na haszowaniu przedstawiono w [7] i [4]; ta ostatnia praca to �ród�o hybry-dowego z��czenia opartego na haszowaniu.

(1) M. W. Blasgen i K. P. Eswaran, Storage access in relational databases, „IBM Systems J.”16:4 (1977), s. 363 – 378.

(2) S. Chaudhuri, An overview of query optimization in relational systems, „Proc. SeventeenthAnnual ACM Symposium on Principles of Database Systems”, s. 34 – 43, czerwiec, 1998.

(3) H.-T. Chou i D. J. DeWitt, An evaluation of buffer management strategies for relational databasesystems, „Intl. Conf. on Very Large Databases”, s. 127 – 141, 1985.

(4) D. J. DeWitt, R. H. Katz, F. Olken, L. D. Shapiro, M. Stonebraker i D. Wood, Imple-mentation techniques for main-memory database systems, „Proc. ACM SIGMOD Intl. Conf. onManagement of Data” (1984), s. 1 – 8.

(5) L. R. Gotlieb, Computing joins of relations, „Proc. ACM SIGMOD Intl. Conf. on Manage-ment of Data” (1975), s. 55 – 63.

(6) G. Graefe, Query evaluation techniques for large databases, „Computing Surveys” 25:2 (czerwiec,1993), s. 73 – 170.

(7) M. Kitsuregawa, H. Tanaka i T. Moto-oka, Application of hash to data base machine and itsarchitecture, „New Generation Computing” 1:1 (1983), s. 66 – 74.

(8) D. Kossman, The state of the art in distributed query processing, „Computing Surveys” 32:4(grudzie�, 2000), s. 422 – 469.

Page 73: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

Skorowidz

3NF, Patrz trzecia posta�normalna

4NF, Patrz czwarta posta�normalna

Aadapter, 917, Patrz nak�adkaadornment, Patrz ozdobikadres

fizyczny, Patrz pami�� adresfizyczny

logiczny, Patrz pami�� adreslogiczny

agent, Patrz SQL agentagglomerative, Patrz grupowanie

aglomeracyjneagregacja, 174, 179, 182, 210, 213,

232, 234, 273, 276, 427, 429,435, 492, 647, 654, 693, 714

akcja, 313, 319, 395aksjomaty Armstronga, 97algebra relacji, 38, 45, 60, 69, 203,

232, 234, 255, 629, 703, 741algorytm, 722

a-priori, 969, 970, 998, 999BFR, 994, 999chase, 111, 113, 127, 128, 130dwuargumentowy na ca�ych

relacjach, 635, 638dwuetapowego

wielo�cie�kowegosortowania przez scalanie,Patrz DWSPS

dwuprzebiegowy, 634, 644,645, 647, 648, 654, 655, 674

FIFO, Patrz FIFOjednoargumentowy

krotkowy, 634, 635na ca�ych relacjach, 635, 636

jednoprzebiegowy, 634, 636,638, 644, 648, 674, 875, 969

k-�rednich, 992, 993LRU, Patrz LRU�a�cuchowy, 934, 935, 957naiwny, 968, 969okr�g z ci�ciwami, 900, 901,

902, 909okre�lania domkni�cia,

Patrz domkni�cieoparty na haszowaniu, 634,

653, 654, 655, 658, 669,672, 674

oparty na indeksach, 634, 659,660, 662, 674

oparty na sortowaniu, 634,645, 648, 649, 650, 652,658, 669, 670, 671, 674

PCY, 971, 972, 973, 998quicksort, 44równoleg�y, 872, 873, 875, 908R-Swoosh, 952, 953, 954,

958, 981Soundex, 950syntezy do schematów

o trzeciej postacinormalnej, 117

trzyprzebiegowy, 670wieloetapowy, 973, 974, 998wieloprzebiegowy, 634, 671,

672, 674windy, 518, 520, 555wspinaczkowy, 722zach�anny, 733, 935, 957zegarowy, 667z��czenia zagnie�d�onego

krotkowego, 641z��czenia zagnie�d�onego

opartego na blokach, 643

Amazon.com, 33, 346, 929, 962American National Standards

Institute, Patrz SQL ANSIanomalie, 101, 108, 149, 195

aktualizacji, 102, 149usuwania, 102, 103, 149

ANSI, Patrz SQL ANSIarchitektura

bez wspó�u�ytkowania, 869,870, 871, 872, 876, 879, 908

klient-serwer, 345, 390, 537trójwarstwowa, 345, 390, 915

archiwizacja, 776, 777, 779, 781nieblokuj�ca, 777, 781zrzut pe�ny, 777zrzut przyrostowy, 777, 781

arkusz stylów, 496Armstrong, Patrz aksjomaty

Armstrongaarray, Patrz tablicaasercja, 309, 310, 319, 394asocjacja, 174, 175, 179, 181, 199

klasa, 177regu�a, 964, 998zwrotna, 177

atak DoS, 1004atom, 219, 235, 678

arytmetyczny, 220relacji, 220relacyjny, 220

atomicity, Patrz atomowo��atomowo��, 31, 36, 37, 48, 284,

286, 294, 411, 751, 753, 768,888, 889

atrybut, 47, 48, 49, 50, 51, 53, 55,56, 57, 58, 59, 61, 63, 64, 65,68, 71, 78, 79, 136, 137, 142,151, 155, 174, 183, 185, 216,239, 394, 411, 452, 465, 474,476, 484, 489, 503, 682

Page 74: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

1038 SKOROWIDZ

atrybutdowolny, 478histogram, 716, 718nazwa, 70o wspólnej nazwie, 252podstawowy, 116wej�ciowy, 691wi�zy, Patrz wi�zy, wi�zy

atrybutuwyj�ciowy, 691zale�ny, 430

authorization id, Patrzidentyfikatoruwierzytelniania

awaria, 749, 757, 776, 779, 850,Patrz te� dysk magnetycznyawariasystemu, 750, 780

Bbag, Patrz wielozbiórbaza danych, 31, 48, 50, 390, 510

adres, 540, 541, 542, 543, 556egzemplarz, 138ekstensjonalna, Patrz EBDintegracja, 347integrowanie, 445, 447intensjonalna, Patrz IBDkopia, 776, 777, 781modelowanie, Patrz

modelowaniemodyfikowanie, 39, 279programowanie, Patrz

programowanieprzestrze� adresowa, 537, 540relacyjna, 33, 445rozproszona, 879, 880, 908schemat, 48, 49, 101, 309stan, 752

niespójny, 752spójny, 752

system federacyjny, 917wirtualna, 917

baza minimalna relacji, Patrzrelacja baza minimalna

BCNF, 103, 104, 108, 114, 195bezpiecze�stwo danych, 32biblioteka

DB, 387PEAR, 387

binary large objects, Patrzbitmapa, 972, 973

skompresowana, 620, 625BLOB, 549, 556

pobieranie, 550przechowywanie, 550

blokobs�ugi wyj�tków, 371przepe�nienia, Patrz dysk

magnetyczny blokprzepe�nienia

blokada, 37, 783, 795, 796, 798,799, 800, 802, 803, 804, 807,808, 811, 812, 813, 814, 815,816, 817, 818, 820, 821, 822,826, 833, 838, 840, 864, 867dzielona, 802, 803, 814, 840, 897inkrementacji, 807, 808, 847mened�er, 894miejsce obs�ugi, 894, 909na wy��czno��, 802, 803, 814,

840, 848, 863, 897ostrzegawcza, 817, 818rozwijanie, 805, 806tablica, 37, 894, 895, 896z aktualizacj�, 806, 807, 814, 840

blokowanie, 833, 893, 895, 896, 909dost�pu, 285, 287dwufazowe, 783, 797, 799, 801,

802, 803, 821, 822, 833, 840rygorystyczne, 847, 867z kilkoma rodzajami blokad, 802

broadcast, Patrz emisjabrudne dane, Patrz dane brudneB-tree, Patrz drzewo

zbalansowanebucket, Patrz kube�ekbufor, 665, 753, 754, 811

mened�er, 36, 665, 666, 667,668, 674, 727, 751, 757, 783

strategia wymiany, 667

CCall-Level Interface, Patrz CLIchain, Patrz algorytm

�a�cuchowycheck point, Patrzpunkt

kontrolnycheck-out-check-in, Patrz system

wypo�yczania i zwracaniachord circle, Patrz algorytm

okr�g z ci�ciwamicia�o, 220, 233ci�g

elementów, 476, 478, 484, 485,487, 488

jednoelementowy, 490opisanych pól, 548

CLI, 39, 375clustered file, Patrz plik

klastrowy

clustering, Patrz grupowanieCodd Ted, 32collaborative filtering, Patrz

filtrowanie asocjacyjneCOMMIT, Patrz dziennik

rekord COMMITconsistency, Patrz spójno��cost-based enumeration, Patrz

wyliczenie oparte na kosztachcrawler, Patrz robot internetowyczas, 244, 245

GMT, 245czwarta posta� normalna, 123,

125, 131, 195

Ddane, 36

agregacja, Patrz agregacjaaktualizowanie, 282, 439brudne, 288, 829, 844, 845,

846, 848, 849, 854, 867dr��enie, 40, 961, 976, 998,

999, 1025finansowe, 1021hurtownia, Patrz hurtownia

danychkompresja, 551, 620, 621kopia zapasowa, 880, 908kostka, Patrz kostka danychlogiczna jednostka, Patrz

pami�� jednostka logicznamanipulowanie, 60model, 32, 43, 44, 46

drzewiasty, Patrz danemodel hierarchiczny

fizyczny, 43hierarchiczny, 32, 46obiektowo-relacyjny, 46obiektowy, 46relacyjny, 44, 46, 47, 48, 60semistrukturalny, 44, 45, 46sieciowy, 46

nadmiarowe, Patrznadmiarowo��

operacja, 44podzia�, 879, 880, 908przywracanie, 528, 529, 531, 543replikacja, 880, 908rozproszone, 908samoopisowe, 446satelitarne, 1020semistrukturalne, 39, 445,

446, 448, 450, 452, 468,471, 477modelowanie, 39

Page 75: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SKOROWIDZ 1039

struktura, 34, 43strumie�, 1019, 1021, 1025,

1033szyfrowanie, 551�redni czas do utraty, Patrz

dysk magnetyczny �redniczas do utraty danych

typ, 54usuwanie, 281wielowymiarowe, 429, 440,

598, 606, 608, 613wi�zy, 44, 45, 46wstawianie, 279z czujników, 1020

data, 244database management system,

Patrz DBMSData-Definition Language,

Patrz DDLDatalog, 203, 219, 224, 232, 234,

405, 935, 938operacja z�o�ona, 231regu�a, 220, 221, 235

Data-Manipulation Language,Patrz DML

data-stream-managementsystem, Patrz DSMS

DBMS, 31, 32, 33, 34, 35, 36, 37,44, 204, 284, 329, 510, 516,537, 545, 749, 774, 862obiektowo-relacyjny, 175

DDL, 31, 34dead end, Patrz �lepa uliczkaDECLARE, 355definicja

DTD, Patrz DTDdefinicja typu dokumentu,

Patrz DTDdekompozycja, Patrz relacja

dekompozycjaDELETE, 281denial of service, Patrz atak DoSdiagram

encji-relacji, Patrz diagram ERER, 135, 137, 138, 155, 162, 166GRANT, Patrz uprawnienia

diagramUML, 181, 199zwi�zków encji, 198

dictionary, Patrz s�ownikdistinct-values, 491DML, 35, 36Document Type Definitions,

Patrz DTDdokument, 474, 484, 489, 496,

503, 567

domena, 350domkni�cie, 93, 99, 127dost�p, 31, 32, 37, 422, 440, 454,

510, 513, 551sekwencyjny, 518szybko��, 507, 508, 510, 555

dr��enie danych, Patrz danedr��enie

druga posta� normalna, 116drzewo, 45, 46, 446, 468, 598, 744

czwórkowe, 606, 612, 613, 625kd, 606, 608, 610, 611, 624krzaczaste, 744operatorów algebraicznych, 38protokó�, 822, 823, 826r, 606, 613, 614, 625w�ze� wewn�trzny, 72, 231wyprowadzenia, 38, 628, 678,

681, 682, 697, 746wyszukiwa� binarnych, 329zbalansowane, 39, 542, 559,

571, 572, 574, 576, 596,607, 611, 624, 629, 636,638, 661, 663, 668, 821,822, 840, 850usuwanie elementów, 579wstawianie elementów, 577wydajno��, 582

zbalansowane bloków dysku, 39z��cze�, 725

bie��ce, 733krzaczaste, 726lewostronnie zag��bione,

726, 727, 728, 729,733, 747

prawostronnie zag��bione,726, 728

DSMS, 1019, 1020, 1033, 1034DTD, 39, 450, 455, 456, 469, 471durability, Patrz transakcja

trwa�o��du�y obiekt binarny, Patrz

BLOBDWSPS, 646, 647, 650, 670dysjunkcyjna posta� normalna, 228dysk magnetyczny, 508, 510,

511, 555adres bloku, 537awaria, 522, 525, 528, 529,

531, 555, 750, 876blok, 509, 510, 511, 513, 534,

536, 537, 538, 550, 555,556, 752, 780

blok przepe�nienia, 553, 554b��dy, 511, 522, 523, 524, 555cylinder, 511, 550, 555, 876

czas dost�pu, 514, 516, 517,518, 520, 555

dost�p, 513, 516kontroler, 513, 518, 555lustrzany, 516, 518, 525, 526,

534, 555nadmiarowy, 525, 526, 528,

529, 533, 534opó�nienie, 514, 555przepustowo��, 516, 518rekord, Patrz rekordsektor, 511, 513, 524, 555strona, 752�cie�ka, 511, 555�redni czas do awarii, 525�redni czas do utraty

danych, 525talerz, 511uszkodzenie no�nika, 522,

524, 555, 750wspó�u�ytkowanie, 871zespó� dyskowy, 511zespó� g�owicowy, 511, 512, 513

dziedzina, 48dziennik, 37, 751, 756, 757, 761,

769, 776, 780, 849, 880, 890,891, 892logiczny, 852mened�er, 751, 756, 843numer porz�dkowy, 852opró�nienie, 757punkt kontrolny, Patrz punkt

kontrolnyrekord, 756

ABORT, 760aktualizacji, 757COMMIT, 756, 757, 759,

760, 766, 767, 781START, 756, 759

z mo�liwo�ci� powtarzania,Patrz rejestrowaniez mo�liwo�ci� powtarzania

z mo�liwo�ci� wycofywania,Patrz rejestrowaniez mo�liwo�ci� wycofywania

zatwierdzanie, 756

EEBD, 224, 235egzemplarz, 49, 53, 138ekstensja, 223ekstraktor, 917, 957element, 456, 462, 463, 474, 476,

484, 503zagnie�d�ony, 45

Page 76: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

1040 SKOROWIDZ

emisja, 897encja, 136, 157, 199, 948, 955,

958, 981atrybut, 136zbiór, 136, 137, 143, 151, 162,

165, 170, 174zbiór ��cz�cy, 143zbiór s�aby, 158, 160, 161, 166,

168, 183, 191, 198entity-relationship, Patrz model

zwi�zków encjiER, Patrz model zwi�zków encjietykieta, 446, 450, 471extensible hash table, Patrz

tablica z haszowaniemrozszerzalnym

Extensible Markup Language,Patrz XML

eXtensible Modeling Language,Patrz XML

Extensible Stylesheet Languagefor Transformations, PatrzXSLT

Extensible Stylesheet LanguageTransform, Patrz XSLT

Ffantom, 820FIFO, 667, 668filtrowanie, 926

asocjacyjne, 963, 976, 987Flickr, 33flush log, Patrz dziennik

opró�nienieFLUSH LOG, 757, 759FLWOR, 484, 487, 494, 503FLWR, Patrz FLWORfunkcja

dominacji, 955haszuj�ca, 584, 585, 587, 588,

591, 595, 598, 599, 604,624, 653, 872, 873, 874,900, 901, 909, 974

odwzorowuj�ca, 876, 877,878, 908

okre�lania podobie�stwa, 951redukuj�ca, 876, 877, 908scalania, 951

GGAV, Patrz mediator globalnygenerator, 423gigabajt, 33global-as-view, Patrz mediator

globalny

g��boko�� wyszukiwania, 1003,1032

Google, 33, 900, 1006graf, 45, 46, 137, 446, 452, 471,

477, 864, 953acykliczny, 791, 792, 793,

824, 840hipergraf, Patrz hipergrafoczekiwania, 855, 858, 861, 868ogon, 793poprzedzania, 791, 793, 794,

824, 840zale�no�ci, 406

grupowanie, 210, 212, 213, 232,234, 273, 274, 276, 432, 637,647, 654, 693, 714, 961, 986,987, 992, 993aglomeracyjne, 986, 990hierarchiczne, 990, 992

HHamming, Patrz odleg�o��

Hamminga, kod Hammingaharmonogram, 783, 784, 786,

787, 788, 791, 793, 795, 796,802, 803, 808, 826, 839, 840odtwarzalny, 846, 847poprawny, 801, 803rygorystyczny, 847, 848szeregowalny, 786, 787, 788,

790, 792, 801, 811, 820,822, 839, 840, 847konfliktowo, 790, 791, 792,

793, 794, 799, 801, 840szeregowy, 784, 786, 793, 794,

799, 800, 839haszowanie, 874, 908, Patrz te�

funkcja haszuj�ca, tablicaz haszowaniem

heterogeniczno��, 915, 916heurystyka, 685, 715, 722, 728, 733

przekszta�cania zapyta�, 719hierarchia, 182, 199hipergraf, 884, 885, 886, 888, 908

acykliczny, 885, 886, 887, 908redukcja, 885redukcja uszu, 885, 886, 887, 908

histogram, 746, Patrz atrybuthistogram

hurtownia danych, 34, 428, 429,440, 917, 919, 923, 924, 957

IIBD, 224, 231, 233, 235ICAR, 952, 953, 954, 958identyfikator, 460, 471, 892

obiektu, 419, 440identyfikator uwierzytelniania, 393

bie��cy, 396PUBLIC, 393, 439

iloczyn kartezja�ski, 61, 65, 230,251, 255

increment lock, Patrz blokadainkrementacji

indeks, 36, 38, 329, 331, 333, 336,342, 343, 387, 550, 559, 567,574, 584, 737, 741, 821bitmapowy, 617, 618, 620,

622, 623, 625deklarowanie, 330g�sty, 560, 561, 563, 574,

576, 623g�ówny, 560jednowymiarowy, 595, 596, 598klastruj�cy, 660koszt skanowania, 631na atrybucie, 660na wielu kluczach, 606, 607, 624odwrócony, 560, 567, 570, 624,

1002, 1005, 1032pomocniczy, 560, 563, 564,

565, 567, 596, 622, 624rzadki, 560, 562, 574, 623skanowanie, 629, 661, 673struktura, 560wieloatrybutowy, 329, 330wielopoziomowy, 562, 571,

577, 623wielowymiarowy, 595, 596, 598

inkrementacja, 802, 807, 808,811, 818, 840

INSERT, 279instrukcja

ALTER TABLE, 308COMMIT, 287, 288, 751CREATE INDEX, 330CREATE TABLE, 53, 57,

192, 296, 302CREATE VIEW, 321DELETE, 281, 294, 359DROP INDEX, 331INSERT, 279, 294przyznawania uprawnie�, 350ROLLBACK, 287, 288, 751SELECT, 357SELECT-FROM-WHERE, 247SET CONSTRAINT, 308

Page 77: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SKOROWIDZ 1041

SET TRANSACTIONISOLATION, 291

SET TRANSACTION READONLY, 288

SET TRANSACTION READWRITE, 288

UPDATE, 282, 294, 359integralno�� referencyjna, 160, 297integrowanie informacji, 34, 40,

445, 447, 913, 914, 948, 957interfejs

JDBC, Patrz JDBCODBC, Patrz ODBCpoziomu wywo�a�, 354,

Patrz CLIuniwersalny, 287uniwersalny SQL, Patrz SQL

interfejs uniwersalnyzapyta�, Patrz zapytanie

interfejs uniwersalnyinverted index, Patrz indeks

odwróconyisolation, Patrz izolowanieiterator, 629, 630, 631, 634, 642,

674, 738izolacja, Patrz transakcja izolacjaizolowanie, 31, 36, 37, 288, 784, 839

JJava Database Interconnectivity,

Patrz JDBCJDBC, 39, 375, 382, 384, 387, 391j�zyk

Datalog, Patrz Datalogdefinicji danych, Patrz DDLfunkcyjny, 484, 503macierzysty, 39, 238, 353,

354, 375manipulowania danymi, Patrz

DML, j�zyk zapyta�obiektowy, 915ODL, Patrz ODLPHP, Patrz PHPskryptowy, 385UML, Patrz UMLXML, Patrz XMLXML Schema, Patrz XML

SchemaXPath, Patrz XPathXPATH, Patrz XPATHXQuery, Patrz XQueryXSLT, Patrz XSLTzapyta�, 31, 32, 496, 503, 504

CODASYL, 32SQL, Patrz SQLwysokopoziomowy, 32

Kkatalog, 348, 350, 390kategoria sk�adniowa, 678, 680klasa, 174, 177, 178, 181, 183,

184, 193, 467, 915klucz, 190nazwa, 188roz��czna, 178

klaster, 348, 390, 986, 990, 991,993, 994, 995, 997, 999, Patrzte� rekord grupowanie

klastrowanie, 955klauzula, Patrz s�owo kluczoweklient, 346, 350, 351, 390klucz, 49, 50, 51, 53, 57, 85, 87,

89, 97, 119, 155, 158, 160, 163,166, 175, 183, 190, 387, 416,467, 472, 538, 560, 561, 562,585, 587, 598, 876, 877g�ówny, 88, 175, 178, 295, 296,

552, 560, 564, 574haszuj�cy, 584, 653, 655, 813indeksu, 329kandyduj�cy, 89minimalny, 88, 89obcy, 296, 297, 299, 430,

469, 472wi�zy, 79, 81, 308wyszukiwania, 559, 560, 561,

562, 563, 565, 567, 568,572, 574, 575, 576, 577,582, 584, 592, 595, 600,607, 624, 661

k-means, Patrz algorytmk-�rednich

kodb��du, 288odleg�o�� minimalna, Patrz

odleg�o�� minimalna koduosadzony SQL, Patrz SQL

kod osadzonyHamminga, 529korekcyjny, Patrz teoria

kodów korekcyjnychwyj�tku, 288

kodowanie j�zyka, Patrz kolacjakolacja, 350kompilator zapyta�, Patrz

zapytanie kompilatorkomponent, 34, 48, 57, 59, 82,

380, 422kompozycja, 174, 179, 182kompresja, Patrz dane kompresjakonflikt, 789, 790, 800, 818,

819, 822

koordynator, 889, 890, 891,893, 895wybór, 892

kopiaprzyrostowa, Patrz

archiwizacja zrzutprzyrostowy

zapasowa, 32, 525, 556, 750korze�, 145, 169, 178, 198, 446,

450, 476, 496, 572, 577, 683,821, 825

kostka danych, 429, 432, 440formalna, 429, 435

koszt, 630, 631, 657, 662, 673,706, 707, 708, 715, 719, 721,722, 723, 729, 732, 736, 737,739, 746, 777, 879, 894, 897,929, 957

koszyk zakupów, 876krotka, 35, 48, 49, 53, 56, 57, 58,

61, 64, 65, 66, 67, 68, 71, 78,79, 82, 86, 111, 128, 138, 165,167, 172, 194, 203, 206, 224,234, 238, 276, 378, 389, 414,435, 439, 473, 489, 534, 536,539, 550, 560, 629, 632, 636,698, 752, 780, 813, 872fantomowa, 820identyfikator, 411, 440to�samo��, 418wi�zy, Patrz wi�zy krotkiwisz�ca, 210, 216

kube�ek, 565, 569, 584, 585, 587,590, 591, 592, 593, 594, 598,599, 600, 601, 602, 605, 624,636, 653, 669, 872, 873, 874,908, 971, 972, 1028, 1029,1033tablica, 584, 588, 589, 590,

591, 599kursor, 357, 359, 377, 384, 391

LLAV, Patrz mediator lokalnyleast-recently used, Patrz LRUliczba binarna, 619, 620limit czasu, 855, 867, 896linia siatki, 598link spam, Patrz spam

odno�nikamilist, Patrz listalista, 189, 196, 210

FROM, 679, 681SELECT, 679, 682

li��, 446, 452, 572, 576, 682, 741

Page 78: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

1042 SKOROWIDZ

local-as-view, Patrz mediatorlokalny

log, Patrz dzienniklogika biznesowa, 347logika zbiorów, 224LRU, 667LSH, 981, 982, 984, 987, 999

��a�cuch

bitowy, 54znaków, 54, 55, 138, 189, 211,

243, 386, 387, 471, 489,497, 949

�uk, 446, 450, 471

Mmacierz

przej��, 876, 1007, 1032zgodno�ci, 802, 804, 806,

818, 840magistrala, 870map-reduce, 869, 876, 878, 908, 909market-basket, Patrz koszyk

zakupówmaterializacja, 634, 735, 738, 739,

741, 744, 747mechanizm przekszta�caj�cy, 917mediator, 917, 920, 921, 922, 924,

926, 927, 929, 931, 934, 938,940, 946, 957, 958globalny, 940lokalny, 940, 941, 957, 958

mened�erblokady Patrz blokada

mened�erbufora, Patrz bufor mened�erdziennika, Patrz dziennik

mened�erkontroli wspó�bie�no�ci, 36,

37, 38, 783, 789, 790, 796,804, 811, 812, 827, 830,839, 841, 843, 847oparty na sprawdzaniu

poprawno�ci, 834, 845oparty na znacznikach

czasu, 828, 841, 845z funkcj� blokowania, 798

przywracania stanu, Patrzprzywracanie stanu

rejestrowania, 37, 38rejestrowania zdarze�

i przywracania stanu, 36

transakcji, Patrz transakcjamened�er

zasobów, 35metadane, 34, 36, 38, 628metoda, 411, 417, 440

createStatement, 382definiowanie, 417executeQuery, 383executeUpdate, 383getFloat, 384getInt, 384getString, 384modyfikatora, 423, 440next, 384obserwatora, 422, 423, 440prepareStatement, 382UDT, 417

miara odleg�o�ci, 988, 999middleware, Patrz warstwa

po�redniaminhashing, 977, 978, 979, 984,

987, 998, 999model

danych, Patrz dane modelER, Patrz model zwi�zków

encjikoszyka zakupów, 962, 998obiektowo-relacyjny, 410,

414, 440obiektowy, 414, 440poj�ciowy, 43przetwarzania oparty na

wej�ciu-wyj�ciu, 516relacyjny, 410, 440, 445zwi�zków encji, 39, 136, 139,

143, 146, 148, 149, 155,157, 163, 170, 172, 174,175, 183, 187, 198, 445

modelowanie, 38danych

semistrukturalne, 39modu�, 352, 353, 364, 391modyfikacja, 35, 36, 44modyfikator, 423MOLAP, 430, 440monotoniczno��, 407, 408, 439, 969Moore Gordon, 510

Nnadklasa, 144, 146, 178nadklucz, 88, 89, 97, 103, 116nadmiarowo��, 101, 103, 119,

123, 125, 149, 413, 491, 504,525, 531, 533, 714

nak�adka, 448, 913, 917, 920, 921,924, 925, 928, 957, 958generator, 925

Napster, 899niejednolity dost�pem do

pami�ci, Patrz NUMAniezgodno�� impedancji, 354, 390nonuniform memory access,

Patrz NUMAnormalizacja, 38, 950NULL, 57, 58, 171, 245, 246,

276, 293, 546NUMA, 870

Oobiekt, 414, 422, 471, 534, 752

BLOB, Patrz BLOBObject Definition Language,

Patrz ODLobraz, 111ODBC, 375, 391ODL, 39, 143, 184, 192, 199, 410,

414, 445odleg�o��

edycyjna, 949, 982, 985, 987, 990Hamminga, 534Jaccarda, 978, 989, 999kosinusowa, 989, 990Manhattan, 997, 999minimalna kodu, 534�rednia, 991

odwzorowaniezawieraj�ce, 944, 945, 947, 948wyznaczane przez metod�, 426

okno, 1021, 1025, 1027, 1033okr�g z ci�ciwami, Patrz

algorytm okr�g z ci�ciwamiOLAP, 339, 427, 428, 429, 430, 440

relacyjny, Patrz ROLAPwielowymiarowy, Patrz

MOLAPOn-Line Analytic Processin,

Patrz OLAPOpen Database Connectivity,

Patrz ODBCoperacja, 61, 71

kompensuj�ca, 868logiczna, 226��cz�ca krotki z dwóch relacji,

61, 65, 68modyfikacji, Patrz modyfikacjana zbiorach, 61, 62przemianowania, 61usuwaj�ca fragmenty relacji, 61

Page 79: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SKOROWIDZ 1043

operand, 682, 742atomowy, 61

operator, 61, 210, 226, 261agregacji, 210, 211, 234, 273, 310ALL, 261, 293ANY, 261, 262, 293CUBE, 435EXCEPT, 272, 273EXISTS, 261, 293filtrowania, 721fizyczny, 629, 631, 668, 673,

719, 721, 742grupowania, 210, 212, 213,

234, 273IN, 261, 293INTERSECT, 272, 273kostki, Patrz operator CUBEli�cia, 742logiczny, 228��czny, 704, 746NATURAL JOIN, 293OUTER JOIN, 294porównywania, 490, 491, 504projekcji, 63przechodni, 704, 746przekszta�caj�cy wielozbiory

na zbiory, 211rozszerzonej projekcji, 210,

213, 214selekcji, 64, 242, 255, 659,

735, 872skanowania, 741sortowania, 210, 215, 629, 742UNION, 272usuwania powtórze�, 210, 211z��czenia, 881

zagnie�d�onego, 641zewn�trznego, 210, 216

�, 213, 273�, 211, 213�, 63, 210, 214 S, 70

optymalizacja Selingera, 721,722, 732, 746

o�, 477, 478, 503atrybutu, 477dziecka, 477kolejnego brata, 477, 478poprzedniego brata, 477potomka, 477, 503przodka, 477, 478rodzica, 477, 478, 503w�z�a kontekstowego, 477

outerjoin, Patrz operatorz��czenia zewn�trznego

ozdobnik, 930, 931, 934, 957

PP2P, Patrz system wymiany

plikówPageRank, Patrz wska�nik

PageRankpami��

adres, 539, 540, 542, 543, 556fizyczny, 538, 539, 556logiczny, 538, 556ustrukturyzowany, 539,

553blok przyklejony, 543, 556, 668bufor, 509dost�p niejednolity, Patrz

NUMAdrugiego stopnia, 36, 507, 508,

509, 511, 535, 537, 555,584, 629, 811

dyskowa, Patrz dyskmagnetyczny

flash, 510g�ówna, 36, 37, 508, 535, 536,

555, 584, 608, 630, 747,750, 811, 870, 971

hierarchia, 507, 509, 510, 555jednostka logiczna, 511, 555jednostki, 509lokalna, 870nietrwa�a, 509podr�czna, 508, 509, 555, 870stabilna, 522, 524, 556strona, 509, 510trwa�a, 509trzeciego stopnia, 508, 509, 555wiersz, 509wirtualna, 510wspó�u�ytkowanie, 870

parsowanie, 628, 678, 679, 706,734, 746

parzysto��, 522, 525, 526, 555, 556peer-to-peer, Patrz system

wymiany plikówPersistent Stored Modules,

Patrz PSMpetabajt, 33p�tla, 500, 504

zagnie�d�ona, 254PHP, 39, 375, 385, 391pierwsza posta� normalna, 116PK, Patrz klucz g�ównyplan przetwarzania zapytania,

Patrz zapytanie planprzetwarzania

plik, 560danych, 35, 560, 565, 574, 622indeksu, 36, 560

klastrowy, 564sekwencyjny, 560, 623siatki, 598, 599, 600, 624

wydajno��, 602podelement, 451, 455, 456, 471,

489, 500podj�zyk

definiowania danych, 53manipulowania danymi, 53

podklasa, 144, 146, 174, 178, 181,190, 198, 199

podobie�stwoelementów, 975Jaccarda, 976, 977, 983, 984,

987, 998, 999sygnatur, 977

podwarstwa, 347integracji, 347

podwójne buforowanie, 520podzadanie, 220, 229, 407podzapytanie, 259, 261, 264, 293,

305, 484, 746skorelowane, 263, 698

pole, 467, 469polityka

kaskadowa, 297ustawiania warto�ci null, 298

po��czenie, 351u�pione, 351

ponawianie kaskadowe, 845,846, 867

poprawno��, 783, 803, 834, 835, 838porcja, 876posta� normalna

dysjunkcyjna, 228Boyce’a-Codda, Patrz BCNF

po�rednik, Patrz warstwapo�rednia

potokowanie, 634, 735, 738,739, 744

pó�krata, 952, 955, 956prawo

algebraiczne, 207autorskie, 899DeMorgana, 305dotycz�ce grupowania i

agregacji, 693��czno�ci, 685, 692, 722Moore’a, 510obejmuj�ce eliminowanie

powtórze�, 693podzia�u, 687przechodnio�ci, 685, 692przemienno�ci, 722przenoszenia selekcji, 688rozdzielno�ci, 207

Page 80: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

1044 SKOROWIDZ

predykat, 219, 235, 406ekstensjonalny, 223intensjonalny, 223, 224

preprocesor, 681, 682primary key, Patrz klucz g�ównyprobe relation, Patrz relacja

dopasowywanaproblem dawnych baz danych, 448procedura sk�adowana, 350procesor

polece� DDL, 34transakcji, Patrz mened�er

transakcjizapyta�, 38, 627, 628, 746

produkt, Patrz iloczynkartezja�ski

program szereguj�cy, Patrzmened�er kontroliwspó�bie�no�ci

programowanie, 39dynamiczne, 721, 722, 729, 732

projekcja, 210, 215, 227, 240, 634,691, 738, 935rozszerzona, 707

protokó� HTTP, Patrz HTTPpróg cz�stotliwo�ci, 963, 967,

969, 970, 971, 972, 974, 998przechodnio��, 97przekazywanie potokowe, Patrz

potokowanieprze��cznik, 870przeplot, 550, 556przestrze� adresowa, 537, 753

bloków dysku, 753pami�ci wirtualnej, 753transakcji, 753

przetwarzanierównoleg�e, 869, 908siatkowe, 898

przyklejanie, Patrz pami�� blokprzyklejony

przypisanie, 484równoleg�e, 255spójne, 225

przywracanie stanu, 751, 760,761, 767, 769, 772, 774, 779,780, 781, 891mened�er, 759

PSM, 39, 353, 363, 373instrukcje, 365instrukcje rozga��ziaj�ce, 366p�tla, 368p�tla FOR, 370wyj�tki, 371zapytanie, 367

pu�apka, 1009, 1011, 1012, 1033

punkt kontrolny, 761, 762, 768,781, 769nieblokuj�cy, 762, 773, 777, 781

RRAID, 525, 526, 529, 533, 534,

556, 750range query, Patrz zapytanie

zakresower-drzewo, Patrz drzewo rredukcja, 908redukcja uszu, Patrz hipergraf

redukcja uszuRedundant Arrays of

Independent Disks, PatrzRAID

referencja, 411, 413, 418, 421,460, 469, 471

regu�aasocjacji, 964, 998ECA, Patrz wyzwalaczgramatyki j�zyka, 678��czenia, 90podzia�u, 90, 97przechodnio�ci, 96rejestrowania, 843rejestrowania z zapisem z

wyprzedzeniem, 766scalania, 950szeregowania, 830wycofywania i powtarzania, 772zale�no�ci trywialnej, 92, 96zapisu Thomasa, 829zmienna, 221, 222

rejestrowanielogiczne, 850, 865, 867, 868z mo�liwo�ci� powtarzania,

757, 766, 767, 768, 771,772, 773, 780, 781

z mo�liwo�ci� wycofywania,756, 757, 766, 769, 771,773, 777, 781

rekord, 35, 534, 538, 550, 552, 556COMMIT, 773, 846, 850, 867dzielony, 549, 556END CKPT, 774grupowanie, 955instrukcji, 375, 377klucz-warto��, 876, 899niemieszcz�cy si� w bloku,

549, 556o sta�ej d�ugo�ci, 535, 536, 554o zmiennej d�ugo�ci, 545, 546,

554, 622o zmiennym formacie, 548

opisów, 375po��czenia, 375rejestru, 36scalanie, 950, 958, 981�rodowiska, 375usuwanie, 553wstawianie, 552

rekurencja, 233, 404, 439, 498,576, 577, 670, 672, 674, 845liniowa, 407

relacja, 32, 34, 35, 43, 44, 45, 46,47, 48, 49, 51, 52, 60, 61, 65,66, 71, 76, 78, 111, 135, 162,168, 169, 181, 193, 199, 203,204, 210, 234, 418, 534, 629,732, 752, 780baza minimalna, 97dekompozycja, 85, 102, 103,

104, 108, 114, 117, 124dopasowywana, 725ekstensjonalna, 224, 231generowana za pomoc�

oblicze�, Patrz widokintensjonalna, 224klucz, Patrz kluczniesko�czona, 220niezmienna, 220obiektowa, 411, 413operacje, 271podstawowa, 725projekcja, 204, 240pusta, 689rekurencyjna, 404, 439schemat, 47, 48, 49, 50, 53,

59, 60sklastrowana, 631, 635, 638,

659, 660sk�adowana, 322, Patrz tabelasko�czona, 220suma, 204synteza do trzeciej postaci

normalnej, 117tymczasowa, 404wi�zy, 49, 79wirtualna, Patrz widokwyniki tymczasowe, Patrz

wyniki tymczasowezagnie�d�ona, 411, 413, 440

relacja podobie�stwa, 952reprezentatywno��, 952robot internetowy, 1002, 1004,

1007, 1011, 1012, 1032rola, 140ROLAP, 430, 440rozk�ad Zipfa, 708rozszerzanie, 97

Page 81: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SKOROWIDZ 1045

rozwijanie, 433równoleg�o��, 869, 878równo�� wyznaczana przez

metod�, 426równowa�no��, 207, 866

Ssaga, 864, 865, 866, 868scalanie, 952, 991, 999schemat, 348, 349, 390, 395, 411,

445, 462, 469, 535gwiazdy, 430, 440INFORMATION_SCHEMA,

348sekwencyjno��, 285selekcja, 228, 634, 659, 660, 687,

689, 708, 713, 721, 735, 738, 874dwuargumentowa, 699przenoszenie w dó� drzewa,

689, 715, 719selektor, 467selektywno��, 733Selinger, Patrz optymalizacja

Selingerasemantyka, 681, 787semilattice, Patrz pó�krataseria, 620

kodowanie d�ugo�ci, 620,621, 625

serwerApache/Tomcat, 346aplikacji, 345, 390baz danych, 345, 390SQL, Patrz SQL serwerWWW, 345, 346, 390

sesja, 352set, Patrz zbiórshared-nothing, Patrz

architektura bezwspó�u�ytkowania

silnik przetwarzania zapyta�,Patrz zapytanie silnikprzetwarzania

silnik wykonawczy, 34, 35, 36, 38skanowanie, 706SLQ, 439s�ownik, 189, 196s�owo

kodowe, 534pomijane, 570

s�owo kluczowe, 560, 567, 570ADD, 308ALTER TABLE, 56AS, 253ASC, 248

AUTHORIZATION, 351, 395CHECK, 303, 304, 305, 319CONSTRAINT, 307CREATE FUNCTION,

364, 417CREATE TABLE, 55DATE, 54, 244DEFAULT, 57DESC, 248DISTINCT, 271, 272, 273,

294, 440EMPTY, 456EXCEPT, 256, 293EXEC SQL, 355for, 485, 494, 503FROM, 238, 239, 242, 251,

253, 263, 264, 265, 271,293, 325, 494

GROUP BY, 248, 274, 275,277, 440

HAVING, 248, 277INTERSECT, 256, 293INTO, 357inverse, 186JOIN, 265key, 191keys, 191let, 484, 494, 503METHOD, 417NATURAL, 268NATURAL JOIN, 266NOT NULL, 302ON, 265, 268order, 494ORDER BY, 248, 440, 629PRIMARY KEY, 58, 295, 296relationship, 186return, 484, 487, 488, 494, 503SELECT, 238, 239, 241, 251,

253, 254, 271, 293, 325,494, 678, 682

Struct, 186TIME, 54, 245TIMESTAMP, 245UNION, 256, 293UNIQUE, 295, 296UNIQUE, 58where, 487, 491, 503WHERE, 238, 239, 242, 251,

253, 254, 260, 271, 293,304, 325, 359, 494, 576, 682

sortowanie, 210, 215, 234, 425,440, 494, 504, 552, 560, 598,623, 629, 670, 706, 722, 742b�belkowe, 44danych wyj�ciowych, 248w czasie skanowania, 629, 631

spam odno�nikami, 1008, 1016,1018, 1033, 1034

spanned record, Patrz rekorddzielony

specyfikacja mo�liwo�ci, 930spider trap, Patrz pu�apkaspójno��, 37, 783, 784, 786, 799,

839, 991, 996SQL, 33, 39, 47, 53, 210, 237,

259, 271, 293, 388, 484, 504, 7462003, 23792, 23799, 237, 330, 404agent, 353, 390ANSI, 237dynamiczny, 361, 389, 391interfejs uniwersalny, 287,

352, 353kod bezpo�rednio osadzony, 354kod osadzony, 353, 391PSM, Patrz PSMserwer, 350, 351, 390SQL2, 237SQL3, 237�rodowisko, 348, 390transakcja, 284, Patrz

transakcjawzorzec, 243

START, Patrz dziennik rekordSTART

statystyki, 36, 38, 718, 719przybli�one, 718

striping, Patrz technikaprzeplatania

Structured Query Language,Patrz SQL

struktura, 189danych, Patrz dane strukturadrzewiasta, 816

strumie�bitowy, 1025danych, Patrz dane strumie�klikni��, 1020pakietów, 1020

styl systemu R, Patrzoptymalizacja Selingera

suma kontrolna, 523, 524, 555support threshold, Patrz próg

cz�stotliwo�cisupporting relationship, Patrz

zwi�zek pomocniczysystem

bankowy, 32informacji geograficznej, 595obs�ugi strumieni danych, 40plików, 32

Page 82: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

1046 SKOROWIDZ

systemprojektowy, 862rezerwacji biletów, 32sterowania procesem pracy, 863wymiany plików, 33, 40, 899,

907, 909wypo�yczania i zwracania, 862zarz�dzania bazami danych,

Patrz DBMSzarz�dzania strumieniami

danych, Patrz DSMSsystem plików, 36szablon, 496, 504

rekurencyjny, 498szeregowalno��, 783, 787, 789, 790,

792, 795, 796, 801, 802, 822, 826,838, 839, 840, 843, 880konfliktowa, 783, 789, 840

��cie�ka, 477, 503, 572�cis�a równo�� obiektów, 426�lepa uliczka, 1009, 1011, 1012,

1033�rednica, 991�rodowisko SQL, Patrz SQL

�rodowisko

Ttabela, 43, 44, 53, 240, 348, 418,

421, Patrz te� relacjaCUBE, 435dwuwymiarowa, 47faktów, 429, 430, 435, 440obs�uguj�ca referencje, 419skanowanie, 629, 673tymczasowa, 53wymiarów, 430, 440

tableau, Patrz obraztablica, 189, 196, 729

asocjacyjna, 387blokad, 798, 811, 812, 813,

838, 855haszowaniem, 968konwersji, 540, 541kube�ków, Patrz kube�ek

tablicaliczników, 972numeryczna, 387, 389odwzorowa�, 538, 540przesuni��, 539, 553wska�ników, 584z haszowaniem, 559, 584, 598,

599, 607, 624, 637, 638, 813

dynamiczna, 587, 601liniowym, 590, 591, 624podzielonym, 598, 603,

604, 624rozproszonym, 898, 900, 909rozszerzalnym, 587, 588,

590, 624statyczna, 587, 588usuwanie elementów, 586wstawianie elementów, 585wydajno��, 587

tag, 39, 45, 46tagged field, Patrz ci�g

opisanych póltechnika

LSH, Patrz LSHOLAP, Patrz OLAPprzeplatania, 517

teleportacja, 1012, 1014, 1015,1016, 1017, 1018, 1033

teoria kodów korekcyjnych,529, 534

terabajt, 33tombstone, Patrz znacznik

usuni�ciato�samo��, 183, 489transakcja, 36, 37, 39, 237, 284,

286, 287, 294, 428, 535, 750, 780anulowanie, 756, 762atomowa, Patrz atomowo��d�uga, 862izolacja, 288, 290, 291, 294,

784, 839kompensuj�ca, 852, 864,

865, 866komponent, 880mened�er, 37, 751, 780niekompletna, 759niezatwierdzona, 759odraczanie, 812przetwarzanie, 39rozproszona, 888, 889, 893,

908, 909sekwencyjna, 428spójno��, 796, 803stan, 750trwa�o��, 36tylko do odczytu, 287, 288wycofanie, 288, 294, 773z blokowaniem dwufazowym,

799, 801, 803zatwierdzanie, 889, 909zatwierdzanie grupowe, 849,

850, 867zatwierdzona, 759, 768

transition matrix, Patrzmacierz przej��

trend, 427trwa�o��, Patrz transakcja

trwa�o��tryb

IN, 364INOUT, 364OUT, 364

trzecia posta� normalna, 116,118, 125

twierdzenie LMSS, 946, 947two-phase, multiway merge sort,

Patrz DWSPStyp, 682

BOOLEAN, 54CHAR, 54, 243DATE, 55DECIMAL, 55definiowany przez

u�ytkownika, Patrz UDTDOUBLE PRECISION, 55FLOAT, 55INT, 54INTEGER, Patrz typ INTkolekcji, 189NUMERIC, 55podstawowy, 473, 484, 491, 503prosty, 188, 189, 193, 471

z ograniczeniami, 466, 471REAL, Patrz typ FLOATSHORTINT, 54TIME, 55TIMESTAMP, 245VARCHAR, 54, 243wska�nikowy, 418, 421, 440wyliczeniowy, 466z�o�ony, 463, 465, 472

Uuchwyt, 376

instrukcji, 378UDT, 415, 416, 421, 422, 423,

425, 440UML, 39, 135, 143, 174, 178, 181,

199, 445Unified Modeling Language,

Patrz UMLUPDATE, 282update lock, Patrz blokada

z aktualizacj�uprawnienia, 393, 394, 439

diagram, 398, 439przyznawanie, 397, 439

user-defined type, Patrz UDTusuwanie danych, 281UTF-8, 450

Page 83: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

SKOROWIDZ 1047

Vvalid, Patrz XML prawid�owy

Wwalidacja, Patrz poprawno��warning lock, Patrz blokada

ostrzegawczawarstwa

abstrakcji, Patrz warstwapo�rednia

aplikacji, 346, 347bazy danych, 347po�rednia, 34, 914, 915, 916

warto��domy�lna, 57, 463FALSE, 246, 247logiczna, 220, 242, 261, 310minhash, 977, 978, 979, 981,

989, 998, 999, 1032null, 169, 171, 172, 199, 210,

234, 245, 276, 293pusta, Patrz warto�� nullskalarna, 260, 261, 273TRUE, 247UNKNOWN, 246, 247

warunek, 313, 319, 395, 479, 503,678, 689bezpiecze�stwa, 222

wektor bitowy, 621, 622, 625well-formed, Patrz XML

poprawny sk�adniowow�ze�, 137, 231, 446, 468, 471,

474, 475, 484, 503, 577, 598,678, 697, 825, 899, 900awaria, 907ko�cowy, 446pocz�tkowy, 446potomny, 198równorz�dny, 900, 904, 905wewn�trzny, 446, 608, 611, 612

widok, 53, 321, 343, 348, 681,682, 746, 920, 938, 940, 957atrybut, 323kandyduj�cy, 342modyfikacja, 324, 325, 327modyfikowalny, 324, 325, 343usuwanie, 324zapytanie, 323zmaterializowany, 337, 339,

340, 342, 344wielozbiór, 188, 189, 195, 203,

204, 224, 232, 234, 271, 294,414, 473, 638, 687, 693

cz��� wspólna, 205, 206, 639,648, 649, 713

iloczyn, 640iloczyn kartezja�ski, 207krotek, 473prawa algebraiczne, 207projekcja, 206ró�nica, 205, 639, 648, 713selekcja, 207suma, 205, 635, 648, 713z��czanie, 208z��czenie naturalne, 640

wi�zy, 39, 79, 82, 91, 176, 237,416, 750atrybutu, 302, 303, 305, 319, 394cykliczne, 299danych, Patrz dane wi�zydziedziny atrybutu, 82integralno�ci referencyjnej,

79, 80, 155, 156, 295, 297,319, 394

klucza, Patrz klucz wi�zyklucza obcego, 295, 296, 297, 299krotki, 302, 304, 305, 308, 310,

319, 394modyfikowanie, 307nazwa, 307, 308relacji, Patrz relacja wi�zysprawdzanie, 308, 319usuwanie, 307

w�a�ciciel, 395wrapper, Patrz nak�adkawska�nik, 440, 539, 540, 546, 554,

560, 561, 562, 574, 596, 624PageRank, 1004, 1005, 1006,

1007, 1008, 1010, 1012,1014, 1015, 1016, 1017,1032, 1033

przemienianie, 539, 540, 542,543, 556automatyczne, 541, 556na ��danie, 541, 556

TrustRank, 1017, 1018negatywny, 1018

wyszukiwanie, 541wspó�bie�no��, 783, 816, 821,

827, 834, 864wspó�czynnik spamu, 1018wspó�u�ytkowanie, 869wstawianie danych, 280wst�pne pobieranie, 520wycofywanie, 756, 757, 759wyliczenie oparte na kosztach, 706wymiar, 430wynik po�redni, Patrzwyniki tymczasowe, 322

wyra�enia równowa�ne, 70wyra�enie

algebraiczne, 685, 746LIKE, 244, 245logiczne, 309warunkowe, 242wzgl�dne, 476XPath, 475, 479

wyszukiwarka, 40, 1001, 1005,1006, 1008, 1016, 1017,1018, 1032

wyzwalacz, 39, 237, 309, 312, 313,314, 319, 324, 348, 395, 750INSTEAD OF, 327, 343

wzorzec, 243, 427

XXML, 39, 44, 45, 445, 449, 454,

471, 496, 503, 504, 915poprawny sk�adniowo, 450prawid�owy, 450Schema, 453, 462, 463, 467,

469, 471XML Schema, 39XPath, 468, 473, 475, 479, 484,

496, 503XPATH, 39XQuery, 39, 473, 483, 484, 489,

490, 491, 503, 915kwantyfikator, 492rozga��zienie, 493

XSLT, 39, 496, 500, 504rozga��zienie, 501

YYouTube, 33

Zzag�odzenie, 860zakleszczenie, 37, 756, 801, 806,

854, 855, 856, 857, 860, 861,867, 868, 896

zale�no��funkcyjna, 85, 87, 88, 89, 90,

96, 97, 116, 118, 119, 123,125, 127, 128, 130

��czenie kaskadowe, 96nietrywialna, 103, 105, 120projekcja, 98, 131trywialna, 91, 94wielowarto�ciowa, 119, 120,

121, 123, 125, 127, 128, 130

Page 84: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji

1048 SKOROWIDZ

zapytanie, 35, 36, 39, 44, 53, 238,251, 281, 323, 340, 344, 378,380, 388, 389, 427, 503, 565,567, 679, 703, 946, 1002, 1029ci�g�e, 1023cz��� wspólna, 256do wyszukiwarki, 1005, 1032FLWR, Patrz FLWORinterfejs uniwersalny, 238kompilator, 35, 38, 685, 706, 746kompilowanie, 39koniunkcyjne, 941, 942, 944,

945, 947, 948, 957, 958o po�o�enie, 596, 624o s�siada, 596, 603, 607, 608, 624OLAP, Patrz OLAPoptymalizator, 38, 628, 668optymalizowanie

na mo�liwo�ciach, 929,939, 957

na podstawie kosztów, 929,932, 957

parser, 38plan fizyczny, 628, 629, 630,

673, 703, 706, 707, 715,721, 722, 734, 735, 736,741, 742, 744, 746, 747

plan logiczny, 628, 634, 673,697, 703, 704, 706, 715,719, 721, 734, 741, 746

plan przetwarzania, 35, 38,39, 931

preprocesor, 38procesor, Patrz procesor

zapyta�rozproszone, 881ró�nica, 256SELECT-FROM-WHERE,

238, 239, 260, 263, 265,271, 293, 310, 357, 358,484, 559, 678

semantyka, 38silnik przetwarzania, 1002suma, 256szablon, 924wspomagaj�ce podejmowanie

decyzji, Patrz OLAPz dopasowaniem cz��ciowym,

596, 602, 608, 611, 624zagnie�d�one, 264zakresowe, 576, 596, 602, 607,

608, 611, 624

zarz�dzanie pami�ci�, 39zasada poprawno�ci, 752, 753, 784zbiór, 161, 163, 169, 174, 188,

189, 204, 414, 638, 687cz��� wspólna, 639, 648, 649iloczyn, 640logika, Patrz logika zbiorówprawa algebraiczne, 207ró�nica, 639, 648s�aby, 158suma, 639z��czenie naturalne, 640

zbiór zwi�zku, 138ZF, Patrz zale�no�� funkcyjnaZipf, Patrz rozk�ad Zipfaz��czenie, 216, 251, 489, 634, 649,

650, 659, 703, 713, 722, 874,917, 931argument, 725bezstratne, 108, 111, 113,

117, 118cz��ciowe, 882, 883, 884,

886, 908drzewo, Patrz drzewo z��cze�jednoprzebiegowe, 727, 737kolejno��, 724, 728naturalne, 65, 68, 110, 111,

266, 638, 662, 704, 710,711, 712, 882, 883, 884

oparte na indeksie, 662, 663przez haszowanie, 655, 657,

668, 722hybrydowe, 656

przez sortowanie, 650, 651,652, 722, 737

równo�ciowe, 638, 710, 883teta, Patrz z��czenie

warunkowewarunkowe, 68, 266, 268, 638,

689, 704, 710wieloargumentowe, 704wieloprzebiegowe, 737wielu relacji, 712zagnie�d�one, 641, 642, 644,

674, 727zewn�trzne, 216, 234, 246,

267, 268lewe, 268prawe, 268

zmienna, 221, 230, 386, 489anonimowa, 221krotkowa, 253, 254, 255, 264,

423, 494lokalna, 227wspólna, 355, 356, 390

znacznik, 462, 474, 480, 496czasu, 783, 826, 827, 829, 830,

831, 833, 834, 838, 839,841, 858, 868

dowolny, 478g�ówny, 456, 475otwieraj�cy, 449, 456, 471semantyczny, 449usuni�cia, 539, 554, 556zamykaj�cy, 449, 456, 471

znakucieczki, 245wielko��, 241, 483

zrzutpe�ny, Patrz archiwizacja

zrzut pe�nyprzyrostowy, Patrz

archiwizacja zrzutprzyrostowy

ZW, Patrz zale�no��wielowarto�ciowa

zwi�zek, 137, 151, 199, 416atrybut, 142binarny, 139, 143, 160, 174,

175, 187, 199jeden do jednego, 139, 140,

144, 188, 199jeden do wielu, 186jest, 144, 146, 155, 169, 170, 198krotno��, 139, 187, 198pomocniczy, 160, 161, 168wiele do jednego, 139, 140,

143, 156, 160, 165, 174,186, 188, 191, 197, 199, 564

wiele do wielu, 139, 186, 188,199, 545

wieloargumentowy, 140,174, 175

zwrotny, 186, 187, 199zwijanie, 433zwrotno��, 97

Page 85: Systemy baz danych. - HelionTrzej znani naukowcy z dziedziny IT nauczą Cię: • profesjonalnego projektowania i korzystania z baz danych • tworzenia i wdrażania złożonych aplikacji