1 / 91

Systemy zarządzania bazami danych 3. Indeksy

Systemy zarządzania bazami danych 3. Indeksy. Indeksowanie i haszowanie. rekord(y). wartość Indeksy konwencjonalne B-drzewa i B+drzewa Haszowanie. ?. wartość. 10. 30. 50. 70. 90. 20. 40. 60. 80. 100. Plik uporządkowany. 70. 50. 30. 10. 110. 90. 120. 80. 60. 40. 20.

hong
Download Presentation

Systemy zarządzania bazami danych 3. Indeksy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systemy zarządzania bazami danych3. Indeksy 3. Indeksy

  2. Indeksowanie i haszowanie rekord(y) wartość • Indeksy konwencjonalne • B-drzewa i B+drzewa • Haszowanie ? wartość 3. Indeksy

  3. 10 30 50 70 90 20 40 60 80 100 Plik uporządkowany 3. Indeksy

  4. 70 50 30 10 110 90 120 80 60 40 20 100 90 10 70 50 30 80 60 40 20 100 Plik uporządkowany Indeks gęsty 3. Indeksy

  5. 130 90 50 10 210 170 230 150 110 70 30 190 90 10 70 50 30 80 60 40 20 100 Plik uporządkowany Indeks rzadki 3. Indeksy

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

  7. Pytanko • Czy ma sens gęsty indeks drugiego poziomu? 3. Indeksy

  8. 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ć) 3. Indeksy

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

  10. Kompromis: indeks gęsty czy rzadki? • 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” 3. Indeksy

  11. 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 3. Indeksy

  12. 10 10 20 30 40 10 20 30 30 45 Powtarzalne klucze 3. Indeksy

  13. 40 10 20 30 40 30 10 10 10 20 20 10 30 30 10 45 45 30 30 20 Powtarzalne klucze • Czy indeks gęsty to jedyna możliwość? 10 10 10 10 10 10 20 20 20 20 30 30 30 30 30 30 3. Indeksy

  14. 30 10 10 20 40 45 30 30 10 20 Powtarzalne klucze • Indeks gęsty, czy lepszy pomysł? 10 20 30 40 3. Indeksy

  15. 30 10 10 20 40 45 30 30 10 20 Starannie szukaj 20 i 30 Powtarzalne klucze • A może jednak rzadki? Oto pierwszy pomysł: 10 10 20 30 3. Indeksy

  16. 30 10 10 20 40 45 30 30 10 20 Może ma być 40? Powtarzalne klucze • Rzadki: tylko pierwszy nowy klucz z bloku 10 20 30 30 3. Indeksy

  17. Powtarzalne klucze, indeks główny • Indeks może wskazywać tylko pierwsze wystąpienie każdej wartości klucza Plik Indeks a a a . . b 3. Indeksy

  18. 10 30 50 70 80 20 40 60 Usuwanie z indeksu rzadkiego 10 30 50 70 90 110 130 150 3. Indeksy

  19. 70 10 30 50 20 40 60 80 Usuwanie z indeksu rzadkiego • usuń rekord 40 10 30 50 70 90 110 130 150 3. Indeksy

  20. 10 30 50 70 20 40 60 80 40 40 Usuwanie z indeksu rzadkiego • usuńrekord 30 10 30 50 70 90 110 130 150 3. Indeksy

  21. 10 30 50 70 20 40 60 80 50 70 Usuwanie z indeksu rzadkiego • usuńrekordy 30 i 40 10 30 50 70 90 110 130 150 3. Indeksy

  22. 10 30 50 70 80 20 40 60 Usuwanie z indeksu gęstego 10 20 30 40 50 60 70 80 3. Indeksy

  23. 10 50 70 20 60 80 40 40 Usuwanie z indeksu gęstego • usuń rekord 30 10 20 30 30 40 40 50 60 70 80 3. Indeksy

  24. 10 30 40 60 20 50 Wstawienie, indeks rzadki 10 30 40 60 3. Indeksy

  25. 10 30 40 60 20 50 34 • dziś mamy szczęście! • wolne miejsce jest tam • gdzie go potrzebujemy Wstawienie, indeks rzadki • wstaw rekord 34 10 30 40 60 3. Indeksy

  26. 10 30 40 60 20 50 15 20 20 30 Wstawienie, indeks rzadki • wstaw rekord 15 10 30 40 60 • Tu: natychmiastowa reorganizacja • Inne opcje: • Dodać blok nadmiarowy • Poprawić indeks 3. Indeksy

  27. 10 30 40 60 25 20 50 Lista bloków nadmiarowych (reorganizacji później...) Wstawienie, indeks rzadki • wstawrekord 25 10 30 40 60 3. Indeksy

  28. Wstawienie, indeks gęsty • Podobnie • Zwykle jednak bardziej kosztowne 3. Indeksy

  29. 30 20 80 100 90 50 70 40 10 60 Indeksy drugorzędne 3. Indeksy

  30. 100 30 20 80 90 10 40 60 50 70 90 30 ... 20 80 100 Chyba nie zadziała? Indeksy drugorzędne • Indeks rzadki 3. Indeksy

  31. 90 100 30 80 20 60 10 70 50 40 10 50 10 60 50 20 70 90 30 ... ... 40 rzadki wyższy poziom Indeksy drugorzędne • Indeks gęsty 3. Indeksy

  32. 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 3. Indeksy

  33. 20 20 10 10 30 10 40 40 40 40 Klucze powtarzalne i indeks drugorzędny 3. Indeksy

  34. 30 20 20 10 10 10 40 40 40 40 10 20 40 30 10 40 10 ... 40 40 20 Klucze powtarzalne i indeks drugorzędny Pierwszy pomysł... • Problem: • Nadmierny narzut • miejsce na dysku • czas wyszukiwania 3. Indeksy

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

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

  37. 10 30 20 20 10 10 40 40 40 40 50 10 20 60 ... 30 40 Klucze powtarzalne i indeks drugorzędny kubełki 3. Indeksy

  38. 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 3. Indeksy

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

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

  41. 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 3. Indeksy

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

  43. 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) 3. Indeksy

  44. 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 3. Indeksy

  45. 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 3. Indeksy

  46. 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, ... 3. Indeksy

  47. 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ę 3. Indeksy

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

  49. 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 3. Indeksy

  50. Przykład B+drzewa n=3 100 Korzeń 120 150 180 30 3 5 11 120 130 180 200 100 101 110 150 156 179 30 35 3. Indeksy

More Related