1 / 35

Indeksy

Indeksy. Wykład 9 Prowadzący: dr Paweł Drozda. Pamięć fizyczna. Pamięć operacyjna – zorganizowana w bloki Pamięć zewnętrzna – zorganizowana w pliki Dane z BD przechowywane w pamięci zewnętrznej: Rozmiar danych Koszt przechowywania Odporność na awarie. Dostęp do danych.

rae
Download Presentation

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. Indeksy Wykład 9 Prowadzący: dr Paweł Drozda

  2. Pamięć fizyczna • Pamięć operacyjna – zorganizowana w bloki • Pamięć zewnętrzna – zorganizowana w pliki • Dane z BD przechowywane w pamięci zewnętrznej: • Rozmiar danych • Koszt przechowywania • Odporność na awarie dr Paweł Drozda

  3. Dostęp do danych • Dane są zestawione w rekordy (proste, złożone, stała/zmienna długość) • Operacje na danych • Buforowanie danych z plików do bloków • Operacje w blokach (pamięć operacyjna) • Po modyfikacjach – zapis do pliku dr Paweł Drozda

  4. Rodzaje organizacji plików • Pliki nieuporządkowane (unordered files, heap files) • Pliki uporządkowane (ordered files) • Pliki haszowe (hash files) dr Paweł Drozda

  5. Plik nieuporządkowany • Nagłówek pliku zawierający wskaźnik do bloku danych • Blok danych zawiera wskaźnik do bloku następnego Ipoprzedniego • Rekordy wstawiane na koniec pliku dr Paweł Drozda

  6. Plik nieuporządkowany - operacje • Dodawanie – do ostatniego bloku pliku • Wyszukanie – przeszukanie liniowe wszystkich bloków (do momentu natrafienia na szukaną wartość) • Wyszukanie z przedziałem wartości – przeszukanie całego pliku • Usuwanie – przeszukanie liniowe wszystkich bloków, konieczność okresowej reorganizacji pliku • Sortowanie – trudne (na ogół odbywa się w pamięci operacyjnej fragmentami) dr Paweł Drozda

  7. Plik nieuporządkowany - cechy • Łatwe, efektywne wstawianie • Efektywne pozostałe operacje przy małych plikach • Właściwy do odczytu wszystkich rekordów • Potrzeba wspomagania (np. Indeksy) dr Paweł Drozda

  8. Plik uporządkowany • Rekordy uporządkowane według pola porządkującego dr Paweł Drozda

  9. Plik uporządkowany - operacje • Dodawanie – Wyszukanie miejsca wstawienia, przepisanie rekordów po wstawionym • Wyszukanie – binarne • Wyszukanie z przedziałem wartości – znalezienie początku oraz przejście przez rekordy z przedziału • Usuwanie - Wyszukanie miejsca usunięcia, przepisanie rekordów po usuniętym • Modyfikacja – gdy modyfikowany atrybut porządkujący – usunięcie + wstawienie rekordu dr Paweł Drozda

  10. Plik uporządkowany - cechy • Efektywny odczyt rekordów w kolejności pola porządkującego • Proste znalezienie następnego rekordu • Binarne wyszukanie w oparciu o pole porządkujące • Nieprzydatne, gdy nie używa się pola porządkującego przy wyszukiwaniu • Kosztowne wstawianie, usuwanie i modyfikacja dr Paweł Drozda

  11. Plik haszowy • Porządek rekordów w pliku określony na podstawietzw. pola haszowego • Koncepcja– zdefiniowanie funkcji haszowej (ang. hash function) • argument - wartość pola haszowego • wartość funkcji – adres bloku dla rekordu • Haszowanie • Wewnętrzne • zewnętrzne dr Paweł Drozda

  12. Haszowanie wewnętrzne • Dana tablica rekordów o M szczelinach których adresy odpowiadają indeksom tablicy haszowej • Funkcja: H(K)  {0,1,…,M-1} • Najczęściej spotykana H(K) = K mod M dr Paweł Drozda

  13. Haszowanie wewnętrzne - przykład szczelina Funkcja haszująca: H(nrindeksu) = nrindeksu mod 1000 dr Paweł Drozda

  14. Haszowanie wewnętrzne - operacje • Kolizje – gdy ta sama szczelina dla dwóch wartości pola haszowego • Trzy rodzaje rozwiązania kolizji • Adresowanie otwarte • Łańcuchowanie • Haszowanie wielokrotne • Dla każdej metody – różne algorytmy wstawiania, szukania, usuwania rekordów dr Paweł Drozda

  15. Haszowanie zewnętrzne • Podobnie jak wewnętrzne używa funkcji haszowej • Odwołuje się bezpośrednio do przestrzeni dyskowej • Rzadziej kolizje niż w wewnętrznym – w jednej szczelinie przechowywanych więcej rekordów dr Paweł Drozda

  16. Pliki haszowe - cechy • Ważna definicja funkcji haszowej, aby rozkładała rekordy równomiernie • Zakładany jest stały obszar przestrzeni haszowej – co po jakimś czasie powoduje częste kolizje • Nieefektywny odczyt w kolejności pola haszowego – funkcja haszująca burzy porządek tego pola dr Paweł Drozda

  17. Indeks - wprowadzenie • Problem – jak efektywnie wyszukiwać rekordów z zadanego zakresu wartości wybranego pola? • Stworzenie pliku zdefiniowanego na atrybucie po którym dokonywane jest wyszukanie • Zawartość pliku – rekordy odpowiadające wartościom pierwszych rekordów w poszczególnych blokach pliku danych <pierwszy klucz w bloku, wskaźnik do bloku> dr Paweł Drozda

  18. Indeks • Stworzony plik nazywamy indeksem • Cechy indeksu: • Przyśpiesza dostęp do danych • Zakładany na atrybutach relacji (atrybuty indeksowe) • Rekord indeksu zawiera dwa pola: • Klucz (odnosi się do atrybutu indeksowego) • Wskaźnik do bloku mającego ten sam klucz dr Paweł Drozda

  19. Indeks - SQL • CREATE INDEX nazwaindeksu ON nazwatabeli(pole1,pole2,…,polen); • tworzenie indeksu z pól od 1 do n dla tabeli nazwatabeli dr Paweł Drozda

  20. Typy rekordów indeksu • Rekord danych (o wartości klucza k) • Para <k, rid> - rid identyfikator rekordu danych o wartości klucza k • Para <k, rid-list> - rid-list lista identyfikatorów rekordów danych o wartości klucza k • Para <k, bitmapa> - bitmapa jest wektorem 0,1 reprezentującym zbiór rekordów danych dr Paweł Drozda

  21. Rodzaje indeksów • Atrybut indeksowy • Podstawowy – założony na atrybucie porządkującym unikalnym • Zgrupowany – założony na atrybucie porządkującym nieunikalnym • Wtórny – założony na atrybucie nieporządkującym dr Paweł Drozda

  22. Rodzaje indeksów • Wskazania do pliku danych: • Gęsty – posiada rekord indeksu dla każdego rekordu indeksowanego pliku danych • Rzadki – tylko dla wybranych rekordów pliku danych • Liczba poziomów: • Jednopoziomowe – indeks dla danych • Wielopoziomowe – indeks do indeksu dr Paweł Drozda

  23. Indeks podstawowy – przykład Wartość indeksowana wskaźnik do bloku dr Paweł Drozda Pole porządkujące unikalne

  24. Indeks zgrupowany – przykład Wartość indeksowana wskaźnik do bloku dr Paweł Drozda

  25. Indeks wtórny - przykład Wartość indeksowana wskaźnik do bloku dr Paweł Drozda

  26. Indeks o kluczu złożonym indeks<zarobki,nazwisko> indeks<nazwisko,zarobki> Atrybut wiodący - nazwisko Atrybut wiodący - zarobki dr Paweł Drozda

  27. Indeks wielopoziomowy Indeks pierwszego poziomu Indeks drugiego poziomu dr Paweł Drozda

  28. Indeks dynamiczny • Najczęściej stosowane – indeksy drzewiaste korzeń Poziom 0 A węzeł B D Poziom 1 C H Poziom 2 E F G liść I J K Poziom 3 dr Paweł Drozda

  29. Indeks – B+ drzewo • Zrównoważona struktura drzewiasta – każdy liść na tym samym poziomie • Węzły wspomagają wyszukiwanie • Liście wskazują na rekordy danych • Liście stanowią listę dwukierunkową • Wstawianie i usuwanie rekordów pozostawiają indeks zrównoważony • Wyszukanie rekordu – przejście od korzenia do liścia (długość ścieżki od korzenia do liścia – wysokość drzewa indeksu) dr Paweł Drozda

  30. Struktura indeksu B+ drzewa X>7 X<=7 Przestrzeń dyskowa dr Paweł Drozda

  31. Węzeł wewnętrzny • Struktura <P1, K1,…, Pn-1, Kn-1, Pn> , K1< K2<…< Kn Pi – wskaźnik do poddrzewa Ki – wartość klucza indeksu • Lewy wskaźnik klucza Ki odnosi się do poddrzewa z wartościami mniejszymi bądź równymi kluczowi, prawy do wartości większych • p – rząd indeksu = maksymalna liczba wskaźników w węźle dr Paweł Drozda

  32. Liść • Struktura <Pprev, <K1, P1>,…,<Kn, Pn>, Pnext> , K1< K2<…< Kn • Pprev – wskaźnik do poprzedniego liścia • Pnext – wskaźnik do następnego liścia dr Paweł Drozda

  33. Obliczanie rzędu indeksu p • Dane • rozmiar klucza - V • rozmiar wskaźnika do bloku - P • rozmiar bloku - B • liczba rekordów w pliku danych - r • liczba bloków pliku - b • Rząd indeksu p spełnia nierówność: (p*P)+(p-1)V<=B • min wysokość indeksu rzadkiego: • min wysokość indeksu gęstego: dr Paweł Drozda

  34. Rząd indeksu - przykład r=30000, B=1024B, R=100B, V=9B, P=6B indeks wtórny, rekordy nie są dzielone między bloki liczba rekordów w bloku rbl = B/R =10 liczba bloków b=r/rbl = 3000 Rząd indeksu p<=(V+B)/(P+V), p=68 min wysokość indeksu h=log6830000=3 dr Paweł Drozda

  35. Rząd indeksu – koszt wyszukania • bez indeksu: średnio liczba bloków danych/2=1500 • z B+ drzewem: wysokość drzewa + 1=4 odczytanie korzenia, odczytanie węzła, odczytanie liścia, odczytanie bloku rekordów zawierającego szukany rekord dr Paweł Drozda

More Related