Tl”= T2”’
Różnica między rozwiązaniami: delta T = Tr-Tl”=0.9n
Wniosek: Rozwiązanie z dodatkowym indeksem na atrybucie typJytulu i podziałem tabeli Tytuł ma tę samą czasochłonność, jeśli pominie się czasochłonność obsługi indeksu. W przeciwnym wypadku czasochłonność obsługi indeksu powoduje, że podział tabel Tytuł jest najlepszy. Najgorszy przypadek to odczyt sekwencyjny bez indeksu i podziału tabel.
4.2.3. Pytania zawierające złączenia dwóch tabel - często zadawane pytanie o książki beletrystyczne
Tytuł (Id tytułu, tytuł, autor, ISBN, typ tytulu)
Ksiazka (Id ksiazki. numer, Id tytulu )
Np. Pytanie:
Select * From Tytuł, Ksiazka Where typ_ksiazka=’Beletrystyczna’
And Id_tytulu=Id_tytulu_;
i) liczba krotek w tabeli Ksiazka jest równa m
j) liczba krotek w tabeli Ksiazka odpowiadająca tytułom o wartości atrybutu typ_tytulu równym „Beletrystyczna’ jest równa q
k) na stronie pliku przechowuje się t krotek, stąd mamy m/t. Zakłada się najgorszy wariant, w którym każda krotka jest na innej stronie, czyli t=l
Czasochłonność w technice sekwencyjnej Do i:= 1 to n
if Tytul[i].typ_ksiazki=’Beletrystyczna’ //prawda dla O.ln krotek Do j:=l to ql //liczba krotek zarezerwowanych dla danego tytułu beletrystycznego
if Tytul[i].Id_tytułu = Ksiazka[j].Id_tytulu_//następuje bezpośredni odczyt
//w tabeli Ksiazka dzięki indeksowi na kluczu obcym Id_tytu/u_
Dodaj krotkę Ksiazka[j] * Tytul[i] do wynikowej tabeli
Tl’=tl’+t2’+t3’
tl ’= n - czasochłonność czytania krotek z tabeli Tytuł t2’=0.1 nq - czasochłonność czytania krotek z tabeli Ksiazka i testowań warunków (drugi argument to testowanie zaindeksowanych kluczy obcych dla (w sumie) q krotek z tabeli Ksiazka)
t3’= q - czasochłonność zapisu złączonych krotek z tabel Ksiazka i Tytuł Tl’=n+0.1nq+q
11 Internetowe bazy danych, Wykład 5
Zofia Kruczkiewicz, 1-6, p325 C3