Indeksy Wykad 9 Prowadzcy dr Pawe Drozda Indeks























- Slides: 23
Indeksy Wykład 9 Prowadzący: dr Paweł Drozda
Indeks - wprowadzenie o Problem – jak efektywnie wyszukiwać rekordów z zadanego zakresu wartości wybranego pola? o Stworzenie pliku zdefiniowanego na atrybucie po którym dokonywane jest wyszukanie o 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
Indeks o Stworzony plik nazywamy indeksem o Cechy indeksu: n Przyśpiesza dostęp do danych n Zakładany na atrybutach relacji (atrybuty indeksowe) n Rekord indeksu zawiera dwa pola: o Klucz (odnosi się do atrybutu indeksowego) o Wskaźnik do bloku mającego ten sam klucz dr Paweł Drozda
Indeks - SQL o CREATE INDEX nazwaindeksu ON nazwatabeli(pole 1, pole 2, …, polen); o tworzenie indeksu z pól od 1 do n dla tabeli nazwatabeli dr Paweł Drozda
Typy rekordów indeksu o Rekord danych (o wartości klucza k) o Para <k, rid> - rid identyfikator rekordu danych o wartości klucza k o Para <k, rid-list> - rid-lista identyfikatorów rekordów danych o wartości klucza k o Para <k, bitmapa> - bitmapa jest wektorem 0, 1 reprezentującym zbiór rekordów danych dr Paweł Drozda
Rodzaje indeksów o Atrybut indeksowy n Podstawowy – założony na atrybucie porządkującym unikalnym n Zgrupowany – założony na atrybucie porządkującym nieunikalnym n Wtórny – założony na atrybucie nieporządkującym dr Paweł Drozda
Rodzaje indeksów o Wskazania do pliku danych: n Gęsty – posiada rekord indeksu dla każdego rekordu indeksowanego pliku danych n Rzadki – tylko dla wybranych rekordów pliku danych o Liczba poziomów: n Jednopoziomowe – indeks dla danych n Wielopoziomowe – indeks do indeksu dr Paweł Drozda
Indeks podstawowy – przykład Adams Wartość indeksowana wskaźnik bloku do … Agor Adams Basior … … Berent Gawron … … Gawron Kawar … … … Gnied Kawar … Kozak dr Paweł Drozda Pole porządkujące unikalne
Indeks zgrupowany – przykład 1 Wartość indeksowana wskaźnik bloku do 1 2 2 3 4 5 3 … 3 10 3 … 4 … dr Paweł Drozda 11
Indeks wtórny - przykład 65 Wartość indeksowana wskaźnik bloku do 1 17 1 2 5 3 6 4 2 5 7 6 3 … 34 23 4 dr Paweł Drozda 11
Indeks o kluczu złożonym indeks<zarobki, nazwisko> indeks<nazwisko, zarobki> Gordon; 2800 Gordon; 4200 Wasiak; 3600 Wasiak; 4900 Gordon 2800 Wiązowa Gordon 4200 Akacjowa Wasiak 4900 Tęczowa Wasiak 3600 Słoneczna Atrybut wiodący nazwisko 2800; Gordon 3600; Wasiak 4200; Gordon 4900; Wasiak Atrybut wiodący zarobki dr Paweł Drozda
Indeks wielopoziomowy Indeks pierwszego poziomu 1 3 1 Indeks drugiego poziomu 4 4 8 7 8 10 9 18 1 10 32 51 25 10 32 15 38 44 18 22 51 58 25 67 26 dr Paweł Drozda
Indeks dynamiczny o Najczęściej stosowane – indeksy drzewiaste korzeń A B D C E F Poziom 0 węzeł Poziom 1 H G liść I dr Paweł Drozda J Poziom 2 K Poziom 3
Indeks – B+ drzewo o Zrównoważona struktura drzewiasta – każdy liść na tym samym poziomie n Węzły wspomagają wyszukiwanie n Liście wskazują na rekordy danych n Liście stanowią listę dwukierunkową o Wstawianie i usuwanie rekordów pozostawiają indeks zrównoważony o Wyszukanie rekordu – przejście od korzenia do liścia (długość ścieżki od korzenia do liścia – wysokość drzewa indeksu) dr Paweł Drozda
Struktura indeksu B+ drzewa 7 X>7 X<=7 5 1 4 6 10 7 8 10 Przestrzeń dyskowa dr Paweł Drozda 12 15 13 17 18
Węzeł wewnętrzny o Struktura <P 1, K 1, …, Pn-1, Kn-1, Pn> , K 1< K 2<…< Kn Pi – wskaźnik do poddrzewa Ki – wartość klucza indeksu o Lewy wskaźnik klucza Ki odnosi się do poddrzewa z wartościami mniejszymi bądź równymi kluczowi, prawy do wartości większych o p – rząd indeksu = maksymalna liczba wskaźników w węźle dr Paweł Drozda
Liść o Struktura <Pprev, <K 1, P 1>, …, <Kn, Pn>, Pnext> , K 1< K 2<…< Kn o Pprev – wskaźnik do poprzedniego liścia o Pnext – wskaźnik do następnego liścia dr Paweł Drozda
Obliczanie rzędu indeksu p o Dane n n n rozmiar klucza - V rozmiar wskaźnika do bloku - P rozmiar bloku - B liczba rekordów w pliku danych - r liczba bloków pliku - b o Rząd indeksu p spełnia nierówność: (p*P)+(p-1)V<=B o min wysokość indeksu rzadkiego: o min wysokość indeksu gęstego: dr Paweł Drozda
Rząd indeksu - przykład r=30000, B=1024 B, R=100 B, V=9 B, P=6 B 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=log 6830000=3 dr Paweł Drozda
Rząd indeksu – koszt wyszukania o bez indeksu: średnio liczba bloków danych/2=1500 o 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
Indeks binarny, bitmapowy o Stosowane przy niewielkiej liczbie różnych wartości atrybutu (skrajny przypadek – dane binarne) o Na kolumnach na których wykonywane są operacje logiczne (AND, OR, NOT) o Mało wydajne dla danych często akutalizowanych (nie nadają się do przetwarzania on-line) o Idealne dla baz danych tylko do odczytu o Łatwe do kompresji o Przy dużej liczbie różnych wartości indeks bitmapowy zajmuje dużo miejsca dr Paweł Drozda
Indeks bitmapowy- przykład Indeks na kolumnie: tytuł po studiach id magister inżynier licencjat doktor 1 1 0 0 0 1 0 0 2 3 0 0 0 1 4 0 0 1 0 5 0 1 0 0 6 0 1 0 0 7 0 1 0 0 8 1 0 0 0 dr Paweł Drozda
Porównanie B-Tree i Bitmapowy o http: //www. oracle. com/technetwork/ articles/sharma-indexes-093638. html dr Paweł Drozda