Systemy zarządzania bazami danych 3. Indeksy

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Wstawianie i wyszukiwanie kluczy w tablicach i drzewach binarnych
STRUKTURY DANYCH.
Próg rentowności.
INDEKSY I SORTOWANIE ZEWNĘTRZNE
Algorytm transportowy
„Program grający w szachy”
Elementarne struktury danych Piotr Prokopowicz
WPROWADZENIE DO BAZ DANYCH
Oryginał: Hector Garcia-Molina6. Optymalizacja zapytań1 Systemy zarządzania bazami danych 6. Optymalizacja zapytań
Systemy plików FAT12, FAT16, FAT32, NTFS.
Proste zapytania w języku SQL
Systemy plików FAT i FAT 32
METODY PODEJMOWANIA DECYZJI
Dynamiczne struktury danych 1
Ukryte indeksowanie semantyczne SVD Struktury danych
Niezbędne przyrządy kreślarskie do rzutowania prostokątnego. Ołówek H3
Wioleta Nowak Gimnazjum nr 20 w Poznaniu
Niezbędne przyrządy kreślarskie do wymiarowania. Ołówek H3 Ołówek B3
Niezbędne przyrządy kreślarskie do wykreślania przekrojów. Ołówek H3
Niezbędne przyrządy kreślarskie Ołówek H3 Ołówek B3 Ekierka Kątomierz
Fizyczna organizacja danych w bazie danych Wykład 7
Projektowanie fizycznej bazy danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Ochrona danych wykład 3.
Bibliografia Geologiczna Polski Baza danych
Systemy plików.
ANALIZA BADANIA STATYSTYCZNEGO
JO16-75 Dane techniczne: Wysokość-130 Płaszczyzna dolna-90
Teoria relacyjnych baz danych
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Systemy plików FAT12, FAT16, FAT32, NTFS.
Ogólnopolski Konkurs Wiedzy Biblijnej Analiza wyników IV i V edycji Michał M. Stępień
Podstawy programowania II
Algorytmy i struktury danych
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Algorytmy i struktury danych
Podstawy programowania II
ENERGETYKA POLSKA (ELEKTRO i CIEPLNA) ZUŻYWA OK
Bazy danych.
Temat 19: Organizacja informacji w bazie danych – część 2.
dr hab. Ryszard Walkowiak prof. nadzw.
Niezbędne przyrządy kreślarskie Ołówek H3 Ołówek B3 Ekierka Kątomierz
Systemy plików FAT, FAT32, NTFS
A-priori Partition Mateusz Mor, Kasper Rzepecki, Daniel Mendalka, Michał Samsonowski.
PROPOZYCJE MEXX JESIEŃ NOWA KOLEKCJA Ceny od 40zł.
FAT 16 FAT 32. Różnice między nimi
Związki między bokami i kątami w trójkątach.
EcoCondens BBS 2,9-28 E.
Określanie mimośrodu w elementach ściskanych
Systemy plików Bibliografia: Windows XP. Komendy i polecenia. Praktyczne przykłady, P. Czarny Windows XP. Naprawa i optymalizacja, B. Danowski Windows.
Wyniki badań dzieci 10 letnich z realizacji podstawy programowej z wychowania fizycznego po I etapie edukacyjnym- wrzesień 2013, luty- czerwiec 2014 Kuratorium.
User experience studio Użyteczna biblioteka Teraźniejszość i przyszłość informacji naukowej.
Materiały termoizolacyjne i temoprzewodzące
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
System plików.
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 03 cd. Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004.
Niezbędne przyrządy kreślarskie Ołówek H3 Ołówek B3 Ekierka Kątomierz
Elementy geometryczne i relacje
Powtórzenie wyk ł adu 10 Fizyczna organizacja danych w bazie danych. Indeksy.
Projektowanie i programowanie systemów informatycznych W. Bartkiewicz Wykład 6. Indeksowanie plików – Indeksy drzewiaste ISAM i drzewa B+
Projektowanie postaci formularza:
Ważone indeksy w badaniu podmiotów ekonomii społecznej Marek Bożykowski
Indeksy haszowe. Wprowadzenie Podstawowa idea techniki haszowania polega na wykorzystaniu funkcji haszowej, która odwzorowuje wartości atrybutu haszowego.
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Listy.
Zbiory rozłączne.
Indeksy.
Fizyczna organizacja danych w bazie danych Wykład 7
Zapis prezentacji:

Systemy zarządzania bazami danych 3. Indeksy Oryginał: Hector Garcia-Molina 3. Indeksy

Indeksowanie i haszowanie wartość Indeksy konwencjonalne B-drzewa i B+drzewa Haszowanie rekord(y) ? wartość Oryginał: Hector Garcia-Molina 3. Indeksy

Plik uporządkowany 20 10 40 30 60 50 80 70 100 90 Oryginał: Hector Garcia-Molina 3. Indeksy

Plik uporządkowany Indeks gęsty 10 20 30 40 50 60 70 80 90 100 10 20 110 120 100 90 Oryginał: Hector Garcia-Molina 3. Indeksy

Indeks rzadki Plik uporządkowany 10 20 30 40 50 60 70 80 90 100 10 30 110 130 150 60 50 80 70 170 190 210 230 100 90 Oryginał: Hector Garcia-Molina 3. Indeksy

Rzadki indeks Plik uporządkowany 2. poziomu 10 20 30 40 50 60 70 80 90 170 250 10 30 50 70 40 30 90 110 130 150 330 410 490 570 60 50 80 70 170 190 210 230 100 90 Oryginał: Hector Garcia-Molina 3. Indeksy

Pytanko Czy ma sens gęsty indeks drugiego poziomu? Oryginał: Hector Garcia-Molina 3. Indeksy

Wskaźniki do rekordów Wskaźnik do bloku (w indeksie rzadkim) jest mniejszy niż wskaźnik do rekordu WdB WdR Jeśli plik jest fizycznie ciągły, możemy wyliczać wskaźniki (i ich nie zapisywać) Oryginał: Hector Garcia-Molina 3. Indeksy

K1 K2 K3 K4 R1 R2 Załóżmy, że bloki mają 1KB R3 R4 rekordu o kluczu K3 szukamy w bloku o offsecie (3-1)1024 = 2048 bajtów K2 K3 R3 K4 R4 Oryginał: Hector Garcia-Molina 3. Indeksy

Kompromis: indeks gęsty czy rzadki? Mniej miejsca na indeks Więcej indeksu mieści się w RAM Gęsty Możemy sprawdzić, czy jest taki rekord bez zaglądania do pliku Możliwe użycie strategii „tylko-indeks” Oryginał: Hector Garcia-Molina 3. Indeksy

Pojęcia Uporządkowany plik indeksowy Klucz wyszukiwania (nie zawsze klucz!) Indeks główny (na polu porządkującym) Indeks niegłówny (drugorzędny) Indeks gęsty lub rzadki Indeks pogrupowany lub niepogrupowany Indeks wewnętrzny lub zewnętrzny Indeks wielopoziomowy Oryginał: Hector Garcia-Molina 3. Indeksy

Powtarzalne klucze 10 20 10 30 20 30 45 40 Oryginał: Hector Garcia-Molina 3. Indeksy

Powtarzalne klucze Czy indeks gęsty to jedyna możliwość? 10 10 20 10 30 20 30 20 20 20 30 30 30 30 30 30 30 30 45 40 45 40 Oryginał: Hector Garcia-Molina 3. Indeksy

Powtarzalne klucze Indeks gęsty, czy lepszy pomysł? 10 10 20 20 30 30 40 30 20 30 45 40 Oryginał: Hector Garcia-Molina 3. Indeksy

Powtarzalne klucze A może jednak rzadki? Oto pierwszy pomysł: Starannie szukaj 20 i 30 10 10 10 20 20 10 30 30 20 30 45 40 Oryginał: Hector Garcia-Molina 3. Indeksy

Powtarzalne klucze Rzadki: tylko pierwszy nowy klucz z bloku Może 10 Może ma być 40? 10 20 30 20 10 30 30 20 30 45 40 Oryginał: Hector Garcia-Molina 3. Indeksy

Powtarzalne klucze, indeks główny Indeks może wskazywać tylko pierwsze wystąpienie każdej wartości klucza Plik Indeks a a a . b Oryginał: Hector Garcia-Molina 3. Indeksy

Usuwanie z indeksu rzadkiego 20 10 10 30 50 40 30 70 60 50 90 110 130 80 70 150 Oryginał: Hector Garcia-Molina 3. Indeksy

Usuwanie z indeksu rzadkiego usuń rekord 40 20 10 10 30 50 40 30 70 60 50 90 110 130 80 70 150 Oryginał: Hector Garcia-Molina 3. Indeksy

Usuwanie z indeksu rzadkiego usuń rekord 30 20 10 10 40 30 50 40 30 70 60 50 90 110 130 80 70 150 Oryginał: Hector Garcia-Molina 3. Indeksy

Usuwanie z indeksu rzadkiego usuń rekordy 30 i 40 20 10 10 50 70 30 50 40 30 70 60 50 90 110 130 80 70 150 Oryginał: Hector Garcia-Molina 3. Indeksy

Usuwanie z indeksu gęstego 20 10 10 20 30 40 30 40 60 50 50 60 70 80 70 80 Oryginał: Hector Garcia-Molina 3. Indeksy

Usuwanie z indeksu gęstego usuń rekord 30 20 10 10 20 40 40 30 30 40 40 60 50 50 60 70 80 70 80 Oryginał: Hector Garcia-Molina 3. Indeksy

Wstawienie, indeks rzadki 20 10 10 30 40 30 60 50 40 60 Oryginał: Hector Garcia-Molina 3. Indeksy

Wstawienie, indeks rzadki wstaw rekord 34 20 10 10 30 40 30 34 dziś mamy szczęście! wolne miejsce jest tam gdzie go potrzebujemy 60 50 40 60 Oryginał: Hector Garcia-Molina 3. Indeksy

Wstawienie, indeks rzadki wstaw rekord 15 20 10 15 20 30 10 30 40 30 60 50 40 Tu: natychmiastowa reorganizacja Inne opcje: Dodać blok nadmiarowy Poprawić indeks 60 Oryginał: Hector Garcia-Molina 3. Indeksy

Wstawienie, indeks rzadki wstaw rekord 25 20 10 25 Lista bloków nadmiarowych (reorganizacji później...) 10 30 40 30 60 50 40 60 Oryginał: Hector Garcia-Molina 3. Indeksy

Wstawienie, indeks gęsty Podobnie Zwykle jednak bardziej kosztowne Oryginał: Hector Garcia-Molina 3. Indeksy

Indeksy drugorzędne 50 30 70 20 40 80 10 100 60 90 Oryginał: Hector Garcia-Molina 3. Indeksy

Indeksy drugorzędne Chyba nie zadziała? Indeks rzadki 30 50 20 70 80 100 70 20 90 ... 40 80 10 100 60 90 Oryginał: Hector Garcia-Molina 3. Indeksy

Indeksy drugorzędne Indeks gęsty rzadki wyższy poziom 30 50 20 70 80 10 20 30 40 50 60 70 ... 50 30 10 50 90 ... rzadki wyższy poziom 70 20 40 80 10 100 60 90 Oryginał: Hector Garcia-Molina 3. Indeksy

Indeksy drugorzędne Najniższy poziom musi być gęsty Wszystkie pozostałe są rzadkie Wskaźniki są wskaźnikami na rekordy Nie: wskaźniki blokowe Nie: wyliczane Oryginał: Hector Garcia-Molina 3. Indeksy

Klucze powtarzalne i indeks drugorzędny 10 20 40 20 40 10 40 10 40 30 Oryginał: Hector Garcia-Molina 3. Indeksy

Klucze powtarzalne i indeks drugorzędny Pierwszy pomysł... 10 20 10 20 Problem: Nadmierny narzut miejsce na dysku czas wyszukiwania 40 20 20 30 40 40 10 40 10 40 ... 40 30 Oryginał: Hector Garcia-Molina 3. Indeksy

Klucze powtarzalne i indeks drugorzędny Inny pomysł... 10 20 10 Problem: Indeks zawiera rekordy rozmiaru zmiennego 40 20 20 40 10 30 40 40 10 40 30 Oryginał: Hector Garcia-Molina 3. Indeksy

Klucze powtarzalne i indeks drugorzędny 10 20  10 20 30 40 40 20 40 10 50 60 ... 40 10  Trzeci pomysł: lista rekordów o tej samej wartości klucza? 40 30   Problemy: Dodatkowe pole w rekordzie Liniowe przeszukiwanie listy rekordów Oryginał: Hector Garcia-Molina 3. Indeksy

Klucze powtarzalne i indeks drugorzędny 10 20 10 20 30 40 40 20 50 60 ... 40 10 40 10 40 30 kubełki Oryginał: Hector Garcia-Molina 3. Indeksy

Pomysł z kubełkami jest dobry Po pierwsze rekordy indeksy stałej długości Przykładowy schemat Indeksy Rekordy Name: główny EMP (name,dept,floor,...) Dept: drugorzędny Floor: drugorzędny Oryginał: Hector Garcia-Molina 3. Indeksy

 Oblicz przecięcie obu kubełków, żeby znaleźć pasujących pracowników Znajdź pracowników z działu Toy i 2. piętra: (‘Toy’ = Dept) ^ (floor = 2 ) Indeks na Dept Plik EMP Indeks na floor Toy 2  Oblicz przecięcie obu kubełków, żeby znaleźć pasujących pracowników Oryginał: Hector Garcia-Molina 3. Indeksy

Ten pomysł jest stosowany do wydobywania informacji z tekstu (IR) Dokumenty Listy odwrócone cat dog ...the cat is fat ... ...was raining cats and dogs... ...Fido the dog ... Oryginał: Hector Garcia-Molina 3. Indeksy

Zapytania IR (Information Retrieval) Znajdź dokumenty zawierające “cat” i “dog” Znajdź dokumenty zawierające “cat” lub “dog” Znajdź dokumenty zawierające “cat” ale bez “dog” Znajdź dokumenty zawierające “cat” w tytule Znajdź dokumenty zawierające “cat” i “dog” w odległości co najwyżej 5 słów Oryginał: Hector Garcia-Molina 3. Indeksy

Więcej danych na liście odwróconej miejsce nr znaku wskaźnik d1 cat Tytuł 5 Autor 10 Streszczenie 57 d2 d3 dog Tytuł 100 Tytuł 12 Oryginał: Hector Garcia-Molina 3. Indeksy

Hasło = pozycja listy odwróconej Reprezentuje wystąpienie słowa w dokumencie Długość listy: 1 Słowa rzadkie (liczba haseł) lub błędy ortograficzne 106 Słowa często używane Rozmiar hasła: 10-15 bitów (po kompresji) Oryginał: Hector Garcia-Molina 3. Indeksy

Zagadnienia IR Słowa ignorowane Skracanie słów Wyrazy bliskoznaczne Fleksja (zwłaszcza w polskim: liczne pułapki) Po normalizacji słów okazało się że najczęściej w Panu Tadeuszu występuje słowo „oda” (od) Błędy ortograficzne Pełne teksty czy Streszczenia Model wektorowy Oryginał: Hector Garcia-Molina 3. Indeksy

Model przestrzeni wektorowej s1 s2 s3 s4 s5 s6 s7 … Dokument= <1 0 0 1 1 0 0 …> Zapytanie = <0 0 1 1 0 0 0 …> Koniunkcja= ... + 1 + … = punktacja Oryginał: Hector Garcia-Molina 3. Indeksy

Usprawnienia IR Model wektorowy przypomina listy bitmapowe Różne sposoby ważenia punktacji i normalizacji, np. Dopasowanie słowa częstego nie jest tak znaczące (wartościowe) jak słowa rzadkiego Implementacja: Google, Altavista, ... Oryginał: Hector Garcia-Molina 3. Indeksy

Indeksy konwencjonalne Zalety Proste Indeks jest plikiem uporządkowanym wygodnym przy pełnych przeglądach Wady Wstawienia są kosztowe lub Tracimy fizyczne uporządkowanie lub równowagę Oryginał: Hector Garcia-Molina 3. Indeksy

Przykład gnicia indeksu konwencjonalnego ciągła alokacja wolne miejsce 10 39 31 35 36 32 38 34 33 Bloki nadmiarowe (nieciągłe) 20 30 40 50 60 70 80 90 Oryginał: Hector Garcia-Molina 3. Indeksy

Lekarstwo Nowy rodzaj indeksu Rezygnujemy z ciągłej alokacji stron indeksu Staramy się by się sam równoważył Rodzaje drzew równoważących się: AVL, czerwono-czarne, B-drzewa W bazach danych B-drzewa, w właściwie B+drzewa Oryginał: Hector Garcia-Molina 3. Indeksy

Przykład B+drzewa n=3 Korzeń 100 120 150 180 30 3 5 11 120 130 180 200 35 100 101 110 150 156 179 Oryginał: Hector Garcia-Molina 3. Indeksy

Przykładowy węzeł wewnętrzny 57 81 95 do kluczy do kluczy do kluczy do kluczy < 57 57 k<81 81k<95 95 Oryginał: Hector Garcia-Molina 3. Indeksy

Przykładowy liść Z pewnego nie-liścia do następnego w kolejności 57 81 95 Do rekordu o kluczu 57 o kluczu 81 o kluczu 85 Oryginał: Hector Garcia-Molina 3. Indeksy

Rozmiar węzłów Rozmiar stały n wartości kluczy n+1 wskaźników jeśli klucze stałego rozmiaru... n wartości kluczy n+1 wskaźników Liść: n wskaźników na rekordy i fastryga Nie-liść: n+1 wskaźników na niższy poziom Oryginał: Hector Garcia-Molina 3. Indeksy

Węzły nie mogą być zbyt puste Zapełnienie co najmniej 50% Teoretycznie... Praktycznie w zasadzie tak, ale nie do końca Zapełnienie co najmniej Nie-liść: (n+1)/2 wskaźników Liść: (n+1)/2 wskaźników na dane Oryginał: Hector Garcia-Molina 3. Indeksy

Liczy się nawet gdy NULL Zapełniony Minimalny Nie-liść Liść 120 150 180 30 3 5 11 30 35 Liczy się nawet gdy NULL Oryginał: Hector Garcia-Molina 3. Indeksy

Reguły B+drzew Wszystkie liście są na tym samym poziomie (drzewo zrównoważone) Wskaźniki w liściach wskazują rekordy (z wyjątkiem fastrygi) Oryginał: Hector Garcia-Molina 3. Indeksy

3. Liczba wskaźników i kluczy Stopień drzewa = n Max Max Min Min wsk. klu. wsk.dane klu. Nie-liść (nie-korzeń) n+1 n (n+1)/2 (n+1)/2- 1 Liść (nie-korzeń) n+1 n (n+1)/2 (n+1)/2 Korzeń n+1 n 1 1 Oryginał: Hector Garcia-Molina 3. Indeksy

Wstawienie do B+drzewa (a) Przypadek najłatwiejszy Gdy w liściu jest wolne miejsce (b) Przepełnienie liścia (c) Przepełnienie węzła wewnętrznego (d) Nowy korzeń Oryginał: Hector Garcia-Molina 3. Indeksy

(a) Wstaw klucz = 32 n=3 100 30 3 5 11 30 31 32 Oryginał: Hector Garcia-Molina 3. Indeksy

(b) Wstaw klucz = 7 n=3 100 30 7 3 5 11 30 31 3 5 7 Oryginał: Hector Garcia-Molina 3. Indeksy

(c) Wstaw klucz = 160 n=3 100 160 120 150 180 180 150 156 179 180 200 160 179 Oryginał: Hector Garcia-Molina 3. Indeksy

(d) Wstaw 45 – nowy korzeń n=3 30 Nowy korzeń 10 20 30 40 1 2 3 10 12 25 30 32 40 40 45 Oryginał: Hector Garcia-Molina 3. Indeksy

Usunięcie z B+drzewa Przypadek najłatwiejszy Scal się z sąsiadem (bliźniakiem) Poprzerzucaj klucze Przypadki (b) lub (c) w nie-liściu Oryginał: Hector Garcia-Molina 3. Indeksy

n=4 (b) Scalenie z sąsiadem Usuń 50 10 40 100 40 10 20 30 40 50 Oryginał: Hector Garcia-Molina 3. Indeksy

n=4 (c) Poprzerzucaj klucze Usuń 50 10 40 100 35 10 20 30 35 40 50 Oryginał: Hector Garcia-Molina 3. Indeksy

n=4 (d) Scalenie nie-liści Usuń 37 25 25 10 20 30 40 40 30 25 26 1 3 Nowy korzeń 10 20 30 40 40 30 25 26 1 3 10 14 20 22 30 37 40 45 Oryginał: Hector Garcia-Molina 3. Indeksy

Usunięcia z B+drzew w praktyce Zwykle nie dokonuje się scalania Jest zbyt kosztowne i nie warto tego robić I tak trzeba co jakiś czas przebudować indeksy ze względu na błędy w SZBD Oryginał: Hector Garcia-Molina 3. Indeksy

B+drzewa a indeksy konwencjonalne Na podstawie [1] Held i Stonebraker “B-Trees Re-examined”, Communications of ACM, Feb. 1978 Oryginał: Hector Garcia-Molina 3. Indeksy

Wnioski z [1] W B+drzewach trudniej obsługiwać współbieżność B+drzewa zużywają więcej przestrzeni Założenia analizy blok = 512 bajtów klucz = wskaźnik = 4 bajty 4 rekordy w bloku Oryginał: Hector Garcia-Molina 3. Indeksy

1 blok indeksu statycznego danych 127 kluczy (127+1)4 = 512 bajtów -> wskaźniki wyliczane (offsety) do 127 bloków k1 k2 k2 k3 k3 Oryginał: Hector Garcia-Molina 3. Indeksy

1 blok B+drzewa k1 k2 63 klucze ... k63 63x(4+4)+8 = 512 bajtów danych 63 klucze 63x(4+4)+8 = 512 bajtów -> wskaźniki są konieczne do 63 bo B+drzewo nie jest ciągłe bloków k2 ... k2 k63 k3 - next Oryginał: Hector Garcia-Molina 3. Indeksy

Porównanie rozmiarów [1] Indeks statyczny B+drzewo liczba liczba bloków wysokość bloków wysokość 2 -> 127 2 2 -> 63 2 128 -> 16,129 3 64 -> 3968 3 16,130 -> 2,048,383 4 3969 -> 250,047 4 250,048 -> 15,752,961 5 Oryginał: Hector Garcia-Molina 3. Indeksy

Statyczne indeksy lepsze Wyniki analizy [1] W przypadku pliku 8000-blokowego po 32 000 wstawieniach po 16 000 wyszukiwaniach  Oszczedzamy tyle czasu, że starczy go na ręczną reorganizację Wniosek z [1] Statyczne indeksy lepsze Oryginał: Hector Garcia-Molina 3. Indeksy

DBA nie wie, kiedy reorganizować [2] M. Stonebraker, “Retrospective on a database system,” TODS, June 1980 Wniosek z [2] B+drzewa są lepsze! DBA nie wie, kiedy reorganizować DBA nie wie, jak bardzo zapełnić strony indeksu po reorganizacji Oryginał: Hector Garcia-Molina 3. Indeksy

Wnioski z [2] B+drzewa są lepsze Zarządzanie buforami B+drzewo ma stałą wymaganą wielkość bufora (liczbę bloków) Indeks statyczny musi być może doczytać kilka stron nadmiarowych (co wymaga większej i zmiennej liczby niezbędnych buforów) Oryginał: Hector Garcia-Molina 3. Indeksy

Zarządzanie buforami Czy LRU to dobra strategia zarządzania buforami? Oczywiście nie! Korzeń musi być przyszpilony w pamięci... I być może nizsze poziomy też Czyli MRU! Oryginał: Hector Garcia-Molina 3. Indeksy

Najlepszy stopień B+drzewa? … n to liczba kluczy w węzle Oryginał: Hector Garcia-Molina 3. Indeksy

Przykładowe założenia (1) Czas potrzebny na odczyt węzła z dysku (70+0.05n) ms (2) Gdy węzeł jest w pamieci, korzystamy z wyszukiwania binarnego (a + b LOG2 n) ms Dla pewnych stałych a,b; Zakładamy, że a << 70 (3) Założmy, że B+drzewo jest zapełnione liczba węzłów do przejrzenia to LOGnN gdzie N = liczba rekordów Oryginał: Hector Garcia-Molina 3. Indeksy

Minimalizujemy funkcję: f(n) = czas poszukiwania rekordu nopt n Oryginał: Hector Garcia-Molina 3. Indeksy

 Znajdź nopt => pochodna f’(n) = 0 nopt = kilkaset W praktyce koszt odczytu bloku nie zależy od n, bo węzeł = blok Ignorujemy koszt CPU Minimalizujemy więc LOGnN Czyli? Upychamy w bloku tyle kluczy, ile wlezie I tak wychodzi kilkaset Oryginał: Hector Garcia-Molina 3. Indeksy

A gdyby zwykłe Bdrzewo? [ bez + ] Unikamy duplikacji kluczy Wskaźniki do rekordów są też w węzłach wewnętrznych Oryginał: Hector Garcia-Molina 3. Indeksy

K1 W1 K2 W2 K3 W3 do rekordu do rekordu do rekordu do K1 z K2 z K3 do kluczy do kluczy do kluczy do kluczy < K1 K1<x<K2 K2<x<K3 >K3 K1 W1 K2 W2 K3 W3 Oryginał: Hector Garcia-Molina 3. Indeksy

Przykład Bdrzewa n=2 Fastryga jest teraz bezużyteczna! 65 125 25 45 85 105 145 165 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 Oryginał: Hector Garcia-Molina 3. Indeksy

Uwaga o wstawieniach Wstawiamy rekord z kluczem 25 Potem: 10 20 30 n=3 liść 10 20 – 25 30 Potem: Oryginał: Hector Garcia-Molina 3. Indeksy

Statystyka Bdrzew MAX MIN Wsk. Wsk. Klu. Wsk. Wsk. Klucze węz. rek. węz. rek. Nie-liść Nie-korzeń n+1 n n (n+1)/2 (n+1)/2-1 (n+1)/2-1 Liść Nie-korzeń 1 n n 1 (n+1)/2 (n+1)/2 Korzeń Nie-liść n+1 n n 2 1 1 Liść 1 n n 1 1 1 Oryginał: Hector Garcia-Molina 3. Indeksy

Wady i zalety  Bdrzewa pozwalają na szybsze wyszukiwanie niż B+drzewa  W Bdrzewach liście i nie-liście są różnych rozmiarów  W Bdrzewach usuwanie trudniejsze  B+drzewa lepsze! Oryginał: Hector Garcia-Molina 3. Indeksy

Ale... Jeśli bloki są stałego rozmiaru (a tak jest w przypadku wielu dysków): To wyszukiwanie w B+drzewach jest w istocie lepsze. Oryginał: Hector Garcia-Molina 3. Indeksy

Przykład Wskaźnik: 4 bajty Klucz 4 bajty Blok 100 bajtów (dla prostoty) Pełne dwupoziomowe drzewo Oryginał: Hector Garcia-Molina 3. Indeksy

Korzeń ma 8 kluczy + 8 wskaźników na rekordy + 9 wskaźników na synów Bdrzewo: Korzeń ma 8 kluczy + 8 wskaźników na rekordy + 9 wskaźników na synów = 8x4 + 8x4 + 9x4 = 100 bajtów Każdy z 9 synów: 12 wsk. na rek. +12 kluczy = 12x(4+4) + 4 = 100 bajtów 2-poziomowe Bdrzewo ma maksymalnie 12x9 + 8 = 116 rekordów Oryginał: Hector Garcia-Molina 3. Indeksy

Korzeń ma 12 kluczy + 0 wskaźników na rekordy + 13 wskaźników na synów B+drzewo: Korzeń ma 12 kluczy + 0 wskaźników na rekordy + 13 wskaźników na synów = 12x4 + 0x4 + 13x4 = 100 bajtów Każdy z 13 synów: 12 wsk. na rek. +12 kluczy = 12x(4+4) + 4 = 100 bajtów 2-poziomowe B+drzewo ma maksymalnie 13x12 = 156 rekordów Oryginał: Hector Garcia-Molina 3. Indeksy

Zatem? B+ B Wniosek W przypadku bloków stałego rozmiaru, 8 rekordów ooooooooooooo ooooooooo 156 rekordów 108 rekordów Razem = 116 B+ B Wniosek W przypadku bloków stałego rozmiaru, B+drzewa są lepsze, bo są bardziej krzaczaste Oryginał: Hector Garcia-Molina 3. Indeksy