wyk9


Indeksy
Wykład 9
Prowadzący: dr Paweł Drozda
Pamięć fizyczna
oðPamięć operacyjna  zorganizowana
w bloki
oðPamięć zewnÄ™trzna  zorganizowana
w pliki
oðDane z BD przechowywane w pamiÄ™ci
zewnętrznej:
Rozmiar danych
Koszt przechowywania
Odporność na awarie
dr Paweł Drozda
Dostęp do danych
oðDane sÄ… zestawione w rekordy (proste,
złożone, stała/zmienna długość)
oðOperacje na danych
Buforowanie danych z plików do bloków
Operacje w blokach (pamięć operacyjna)
Po modyfikacjach  zapis do pliku
dr Paweł Drozda
Rodzaje organizacji plików
oð Pliki nieuporzÄ…dkowane (unordered
files, heap files)
oð Pliki uporzÄ…dkowane (ordered files)
oð Pliki haszowe (hash files)
dr Paweł Drozda
Plik nieuporzÄ…dkowany
oðNagłówek pliku zawierajÄ…cy wskaznik
do bloku danych
oðBlok danych zawiera wskaznik do
bloku następnego I poprzedniego
oðRekordy wstawiane na koniec pliku
dr Paweł Drozda
Plik nieuporzÄ…dkowany - operacje
oð Dodawanie  do ostatniego bloku pliku
oð Wyszukanie  przeszukanie liniowe wszystkich
bloków (do momentu natrafienia na szukaną
wartość)
oð Wyszukanie z przedziaÅ‚em wartoÅ›ci 
przeszukanie całego pliku
oð Usuwanie  przeszukanie liniowe wszystkich
bloków, konieczność okresowej reorganizacji
pliku
oð Sortowanie  trudne (na ogół odbywa siÄ™ w
pamięci operacyjnej fragmentami)
dr Paweł Drozda
Plik nieuporzÄ…dkowany - cechy
oðAatwe, efektywne wstawianie
oðEfektywne pozostaÅ‚e operacje przy
małych plikach
oðWÅ‚aÅ›ciwy do odczytu wszystkich
rekordów
oðPotrzeba wspomagania (np. Indeksy)
dr Paweł Drozda
Plik uporzÄ…dkowany
oðRekordy uporzÄ…dkowane wedÅ‚ug pola
porzÄ…dkujÄ…cego Adam &
Adrian
Anna
Bartosz
Bernard
Bogumiła
Pankracy
Paulina
&
Roman
dr Paweł Drozda
Plik uporzÄ…dkowany - operacje
oð Dodawanie  Wyszukanie miejsca wstawienia,
przepisanie rekordów po wstawionym
oð Wyszukanie  binarne
oð Wyszukanie z przedziaÅ‚em wartoÅ›ci 
znalezienie początku oraz przejście przez
rekordy z przedziału
oð Usuwanie - Wyszukanie miejsca usuniÄ™cia,
przepisanie rekordów po usuniętym
oð Modyfikacja  gdy modyfikowany atrybut
porządkujący  usunięcie + wstawienie rekordu
dr Paweł Drozda
Plik uporzÄ…dkowany - cechy
oð Efektywny odczyt rekordów w kolejnoÅ›ci
pola porzÄ…dkujÄ…cego
oð Proste znalezienie nastÄ™pnego rekordu
oð Binarne wyszukanie w oparciu o pole
porzÄ…dkujÄ…ce
oð Nieprzydatne, gdy nie używa siÄ™ pola
porzÄ…dkujÄ…cego przy wyszukiwaniu
oð Kosztowne wstawianie, usuwanie i
modyfikacja
dr Paweł Drozda
Plik haszowy
oðPorzÄ…dek rekordów w pliku okreÅ›lony
na podstawie tzw. pola haszowego
oðKoncepcja  zdefiniowanie funkcji
haszowej (ang. hash function)
argument - wartość pola haszowego
wartość funkcji  adres bloku dla rekordu
oðHaszowanie
Wewnętrzne
zewnętrzne
dr Paweł Drozda
Haszowanie wewnętrzne
oðDana tablica rekordów o M szczelinach
których adresy odpowiadają indeksom
tablicy haszowej
oðFunkcja: H(K) Ä…ð {0,1,& ,M-1}
oðNajczęściej spotykana H(K) = K mod M
dr Paweł Drozda
Haszowanie wewnętrzne - przykład
szczelina
nrindeksu nazwisko adres
0 127000 Maliniak Åšwierkowa 6
123001 Kowal Akacjowa 1
1 123001 Kowal Akacjowa 1
127000 Maliniak Åšwierkowa 6
2 666002 Nowak Różana 4/78
666002 Nowak Różana 4/78
Funkcja haszujÄ…ca:
H(nrindeksu) = nrindeksu mod 1000
dr Paweł Drozda
Haszowanie wewnętrzne - operacje
oðKolizje  gdy ta sama szczelina dla
dwóch wartości pola haszowego
oðTrzy rodzaje rozwiÄ…zania kolizji
Adresowanie otwarte
Aańcuchowanie
Haszowanie wielokrotne
oðDla każdej metody  różne algorytmy
wstawiania, szukania, usuwania
rekordów
dr Paweł Drozda
Haszowanie zewnętrzne
oðPodobnie jak wewnÄ™trzne używa
funkcji haszowej
oðOdwoÅ‚uje siÄ™ bezpoÅ›rednio do
przestrzeni dyskowej
oðRzadziej kolizje niż w wewnÄ™trznym 
w jednej szczelinie przechowywanych
więcej rekordów
dr Paweł Drozda
Pliki haszowe - cechy
oðWażna definicja funkcji haszowej,
aby rozkładała rekordy równomiernie
oðZakÅ‚adany jest staÅ‚y obszar
przestrzeni haszowej  co po jakimÅ›
czasie powoduje częste kolizje
oðNieefektywny odczyt w kolejnoÅ›ci
pola haszowego  funkcja haszujÄ…ca
burzy porzÄ…dek tego pola
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

dr Paweł Drozda
Indeks
oðStworzony plik nazywamy indeksem
oðCechy indeksu:
Przyśpiesza dostęp do danych
Zakładany na atrybutach relacji
(atrybuty indeksowe)
Rekord indeksu zawiera dwa pola:
oðKlucz (odnosi siÄ™ do atrybutu indeksowego)
oðWskaznik do bloku majÄ…cego ten sam klucz
dr Paweł Drozda
Indeks - SQL
oðCREATE INDEX nazwaindeksu ON
nazwatabeli(pole1,pole2,& ,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 - rid identyfikator
rekordu danych o wartości klucza k
oðPara - rid-list lista
identyfikatorów rekordów danych o
wartości klucza k
oðPara - bitmapa jest
wektorem 0,1 reprezentującym zbiór
rekordów danych
dr Paweł Drozda
Rodzaje indeksów
oð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
Rodzaje indeksów
oðWskazania do pliku danych:
Gęsty  posiada rekord indeksu dla
każdego rekordu indeksowanego pliku
danych
Rzadki  tylko dla wybranych rekordów
pliku danych
oðLiczba poziomów:
Jednopoziomowe  indeks dla danych
Wielopoziomowe  indeks do indeksu
dr Paweł Drozda
Indeks podstawowy  przykład
Adams
Wartość
wskaznik &
indeksowana
do bloku
Agor
Adams
Basior
& &
Basior
Berent
& &
Gawron
Gawron
& &
&
Kawar
Gnied
& &
Kawar
&
Kozak
dr Paweł Drozda
Pole
porzÄ…dkujÄ…ce
unikalne
Indeks zgrupowany  przykład
1
Wartość
wskaznik 1
indeksowana
do bloku
2
1
2
2
2
3
3
4
5
3
&
3
10
3
&
4
&
dr Paweł Drozda 11
Indeks wtórny - przykład
65
Wartość wskaznik
1
indeksowana do bloku
17
1
2 5
6
3
2
4
5
7
6
3
&
34
23
4
dr Paweł Drozda 11
Indeks o kluczu złożonym
indeks
indeks
2800; Kozak
Kozak 2800 WiÄ…zowa
Gordon;4200 3600; Malec
Gordon 4200 Akacjowa
Kozak;2800 4200; Gordon
Wasiak 4900 Tęczowa
Malec;3600 4900; Wasiak
Malec 3600 SÅ‚oneczna
Wasiak;4900
Atrybut wiodÄ…cy - Atrybut wiodÄ…cy -
nazwisko zarobki
dr Paweł Drozda
Indeks wielopoziomowy  ISAM
(Index Sequential Access Method)
oð ISAM
Poziom pierwszy  indeks cylindrów adres indeksu ścieżki>
Poziom drugi  indeks ścieżki ścieżki>
Struktura związana ze sprzętem
Indeks statyczny (po usunięciu puste obszary,
bloki nadmiarowe dla wstawianych rekordów,
modyfikacja degeneruje indeks)
oð VSAM  Virtual Sequential Access Method
Rozwinięcie ISAM
Niezależne od sprzętu
dr Paweł Drozda
Indeks wielopoziomowy
Indeks pierwszego
1
poziomu
3
1
4
4
7
8
Indeks drugiego
8
poziomu
10
9
18
25
1
10
10
32
15
32
38
51
44
18
22
51
58
25
67
26
dr Paweł Drozda
Indeks dynamiczny
oðNajczęściej stosowane  indeksy
drzewiaste
korzeń
Poziom 0
A
węzeł
B
Poziom 1
D
C
Poziom 2
H
E F G
liść
Poziom 3
I J K
dr Paweł Drozda
Indeks  B+ drzewo
oð 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ą
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 10 15
1 4 6 7 8 10 12 13 17 18
Przestrzeń dyskowa
dr Paweł Drozda
Węzeł wewnętrzny
oð Struktura
, K1< K2<& < Kn
Pi  wskaznik do poddrzewa
Ki  wartość klucza indeksu
oð Lewy wskaznik klucza Ki odnosi siÄ™ do
poddrzewa z wartościami mniejszymi bądz
równymi kluczowi, prawy do wartości
większych
oð p  rzÄ…d indeksu = maksymalna liczba
wskazników w węzle
dr Paweł Drozda
Liść
oðStruktura
,& ,, Pnext> ,
K1< K2<& < Kn
oðPprev  wskaznik do poprzedniego
liścia
oðPnext  wskaznik do nastÄ™pnego liÅ›cia
dr Paweł Drozda
Obliczanie rzędu indeksu p
oð Dane
rozmiar klucza - V
rozmiar wskaznika 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
h =ð
oð min wysokość indeksu rzadkiego:
éðlog bÅ‚ð
p
h =ð
oð min wysokość indeksu gÄ™stego:
éðlog rÅ‚ð
p
dr Paweł Drozda
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
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


Wyszukiwarka

Podobne podstrony:
IB wyk9
wyk9
Wyk9 term
wyk9

więcej podobnych podstron