Download presentation
Presentation is loading. Please wait.
Published byYuliani Hardja Modified over 6 years ago
1
Fizičke strukture podataka i pristupne metode: indeksiranje
Dušan Zornić 312/06 Nemanja Šekularac 331/06
2
Uvod Svaka organizacija podataka na disku predstavlja strukturu skladištenja. Svaka struktura ima drugačije karakteristike po pitanju performansi u različitim primenama Pristupno vreme za podatke sačuvane na disku je nekoliko redova veličina veće od glavne memorije Osnovna ideja iza različitih tehnika fizičkog predstavljanja i pristupa bazi podataka snimljenoj na disk je da se minimizuje broj osnovnih ulazno/izlaznih operacija
3
D.2 Pristup bazi podataka
1.DBMS odlucuje koji je zapis potreban , trazi od File manager-a da vrati zapis; 2.File manager u istom trenutku odredjuje koja strana sadrzi zapis, trazi od disk managera da vratu tu stranu; 3.Disk manager odredjuje fizicku lokaciju zeljene strane na disku, izvrsava neophodne ulazno izlazne zahteve na disku;
4
D.2 Pristup bazi podataka
5
D.2 Pristup bazi podataka
DISK MANAGER *Komponenta odgovorna za sve fizicke ulazno-izlazne operacije *Treba a bude svestan fizicke adrese diska *Kada disk manager trazi zapis po imenu file manager ne mora da zna tu informaciju *File sistem posmatra disk kao logicku kolekciju setova stranica, Svaka sadrzi kolekciju fiksirane velicine stranica *Svaki set stranica se identifikuje jedinstvenim pageset ID *Svaka stranica se identifikuje pomocu broja stranice(page number) koji je jedinstven unutar diska
6
D.2 Pristup bazi podataka D.2 Pristup bazi podataka
DISK MANAGER *Podrzane operacije na koje moze da odgovori : -Retrieve page p from page set s -Replace page p within page set s -Add a new page to page set s (i.e., acquire an empty page from the free-space pageset and return the new page number p). -Remove page p from page set s (i.e., return page p to the free-space page set).
7
D.2 Pristup bazi podataka
FILE MANAGER *koristi disk manager da omoguci svom korisniku DBMS da koristi disk kao kolekciju fajlova *Svaki file se identifikuje uz pomoc file name ili file ID, jedinstven bar u jednom setu stranica koji ga sadrzi *Zapis se identifikuje uz pomoc record name ili recor ID (RID) jedinstven bar u jednom file-u koji ga sadrzi
8
D.2 Pristup bazi podataka
FILE MANAGER Operacije : Retrieve record r from file f Replace record r within file f Add a new record to file f and return the new record ID r Remove record r from file f Create a new file f Destroy file f
9
D.2 Pristup bazi podataka
CLUSTERING Ideja : *Cuvanje zapise koji su logicki srodni fizicki blize jedan drugom; Pretpostavimo da je r1 zapis koji se najcesce koristi, a r2 sledeci. -r1 se nalazi na stranici p1, a r2 na stranici p2. 1.Ako su p1 i p2 iste stranice, onda pristup r2 ne zahteva nikakvu I/O Fizicku operaciju zato sto ce p2 vec biti u baferu glavne memorije; 2.Ako su p1 i p2 razlicite ali fizicki jedna blizu drugoj, onda pristup r2 zahteva fizicki I/O, ali vreme pretrazivanja u I/O bice malo, zato sto ce glava r/w biti blizu te pozicije;
10
D.2 Pristup bazi podataka
CLUSTERING Primer suppliers-and-parts database: Ako aplikacija stalno zahteva sekvencijalni pirstup svim dobavljacima po njihovom rednom broju () onda zapis dobavljaca treba da budu klasterovani tako da fizicki zapis dobavljaca s1 treba da se nalazi blizu s2, zapis dobavljaca s2 treba da bude blizu s3 I tako dalje. Ovo je primer intra-file clustering. Klastering se radi unutar jednog fajla. Ako aplikacija stalno zahteva pristup nekom specificnom dobavljacu zajedno sa svim njegovim isporukama onda zapis dobavljaca i isporuke mora da se cuvaju zajedno tako da zapis isporuke za dobavljaca s1 fizicki treba da bude blizu zapisa dobavljaca s1 onda zapis isporuke dobavljaca s2 I tako dalje..Ovo je inter-file clustering, odnosi se na organizaciju sa vise fajlova
11
D.2 Pristup bazi podataka
CLUSTERING *Naravno, dati file ili set file-ova moze da se fizicki realizuje na samo jedan nacin u bilo kom trenutku. *DBMS podrzava oba clustering-a tako sto smesta logicki srodne zapise na iste stranice gde je to moguce I na najblizoj gde nije moguce *Kada DBMS napravi novi zapis, file manager mora da dozvoli da novi zapis bude smesten blizu *Disk manager ce obezbediti da dve logicki bliske stranice budu I fizicki blizu na disku *Generalno DBMS moze znati koji clustering je potreban ako administrator baze moze da odredi
12
D.3 Setovi stranica i fajlovi
Page management Primer suppliers-and-parts database: Pretpostavimo da zeljeni logicki redosled zapisa po primarnom kljucu-dobavljaci su duzni da budu poredjanji po rednom broju, delovi po rednom broju delova, isporuke po rednom broju dela unutar rednog broja dobavljaca da bi pojednostavili stvari smatracemo da jedan fajl cini jedan set I da jedan zapis zauzima celu stranicu. Sada razmotrimo sledecu sekvencu dogadjaja:
13
D.3 Setovi stranica i fajlovi
14
D.3 Setovi stranica i fajlovi
15
D.3 Setovi stranica i fajlovi
16
D.3 Setovi stranica i fajlovi
17
D.3 Setovi stranica i fajlovi
Record management Pirmer Pretpostavljamo da na jednoj stranici imamo mesta za vise zapisa, umesto samo jednog kao u page management primeru. Takodje pretpostavljamo da zeljeni logicki poredak dobavljaca s1-s5 je sacuvan zajedno na stranici p, kao na slici. Primetiti da na stranici p ima slobodnog prostora.
18
D.3 Setovi stranica i fajlovi
19
D.3 Setovi stranica i fajlovi
20
D.3 Setovi stranica i fajlovi
21
Indeksiranje – uvod Naziv indeksi potiče od analogije sa indeksom pojmova u knjizi koji se sastoji od referenci tj brojeva stranica na kojima se pojam može pronaći Za datu datoteku formira se dodatna datoteka koja je indeksira po nekom polju Nova datoteka sadrži vrednosti polja koje se indeksira i “pokazivače” na mesta u indeksiranoj datoteci gde se u indeksiranom polju pojavljuje ta vrednost Napomene - Indeksi se još nazivaju invertovane liste - Datoteka sa indeksima po svakom polju se naziva potpuno invertovana
22
Indeksiranje – primer gS S Primer: Indeksiranje datoteke snabdevača S po gradovima - gS je indeks datoteka gradova iz S - S je indeksirana datoteka - Sadržaj datoteke gS su parovi grad – lokacija gradovi u leksikografskom poretku pokazivači na podatke u S koje u polju grad imaju datu vrednost
23
Indeksiranje – primer Primer operacije: - “naći sve snabdevače u Londonu” 1) Proći kroz datoteku S tražeći sve podatke koje u polju grad imaju vrednost “London” 2) Proći kroz gS, i u skladu sa poretkom prestati pretragu posle prvog grada koji je u leksikografskom posle Londona Druga operacija je mnogo efikasnija jer zahteva mnogo manje U/I operacija na disku - Ako postoje snabdevaci u gradovima koji su posle Londona u datom poretku neće ni biti uključeni u pretragu - Datoteka gS je mnogo manja od S, pa, i u slučaju da se cela pretraži zahteva manje čitanja sa diska
24
Upotreba indeksa Osnovna prednost indeksa je da ubrzavaju nalaženje podataka u bazi. Nedostatak je usporavanje operacija promene sadržaja jer se za svaku modifikovanu datoteku mora iznova formirati indeks Važna je procena opšteg ubrzanja upotrebom indeksa ili odluka da je brzo nalaženje važnije od promene sadržaja.
25
Upotreba indeksa Indeksi se upotrebljavaju na dva načina - sekvencijalni pristup - direktni pristup Sekvencijalni pristup u nekom željenom poretku po određenom polju datoteke Opštije, ubrzanje se ostvaruje u traženju podataka na osnovu opsega vrednosti indeksiranog polja, minimuma, maksimuma itd. Direktni pristup na osnovu vrednosti određenog polja ili pripadnosti skupu vrednosti
26
Upotreba indeksa Dodatno, određeni upiti, npr, testovi postojanja, se mogu izvoditi bez pristupa indeksiranoj datoteci ako postoje odgovarajući indeksi - “Da li postoje snabdevači iz Pariza?” Datoteka može imati proizvoljan broj indeksa i pretrage po njima se mogu kombinovati.
27
Upotreba indeksa Primer -“Snabdevači u Parizu sa statusom 30”
Pretraga u indeksu gradova po vrednosti “Pariz” vraća S1 i S4 Pretraga u indeksu statusa po vrednosti 30 vraća S3 i S4 Sada se može pristupiti čitanju vrednosti glavne datoteke samo po preseku S4
28
Indeksiranje po kombinaciji polja
Moguće je kombinovati polja pri formiranju indeksa, pa se prethodni primer “Snabdevači u Parizu sa statusom 30” može dodatno ubrzati pretragom samo jednog indeksa Ovako formiran indeks može da služi i kao samo indeks gradova, i uopšte, indeksi više polja mogu da služe i kao indeksi prvog, za ostale se moraju formirati posebni indeksi jer je poredak u kojem se vrednosti javljaju određen prvim poljem i ne mora biti smislen za ostala
29
Gusto i retko indeksiranje
Gusto indeksiranje podrazumeva da je svaki pokazivač na lokaciju pokazivač na određeni sačuvani podatak u indeksiranoj datoteci Može se indeksirati datoteka tako da svaki indeks pokazuje samo na stranicu na disku gde se podatak nalazi – ovo stvara dodatni posao pretrage stranice u glavnoj memoriji kada se učita ali broj osnovnih ulazno izlaznih operacija ostaje isti
30
Gusto i retko indeksiranje
Uzimajući u obzir fizičku strukturu datoteke na disku koja je grupisana(clustered) po odredjenom polju, može se formirati “redak” indeks po tom polju i samo po tom polju Ovo zahteva da SUBP bude svestan fizičke reprezentacije podataka u terminima sa kojima radi file manager Retki indeksi zauzimaju manje prostora i brži su za pretragu ali više ne dozvoljavaju testove postojanja samo na osnovu indeksa
31
Gusto i retko indeksiranje
Primer “retkog” indeksiranja datoteke snabdevača
32
B-Stabla Najvažniji i najrasprostranjeniji tip indeksa.
Većina relacionih sistema ih podržava kao glavnu a često i jedinu strukturu skladištenja podataka Ideja je da svaka datoteka ima indeks da bi se izbeglo sekvencijalna pretraga po samoj datoteci Ako je datoteka velika i sam indeks je veliki za stalno sekvencijalno pretraživanje
33
B-Stabla Indeks se onda formira u više nivoa u strukturi balansiranog drveta B+-Stablo se sastoji iz 2 dela - sequence set normalan indeks datoteke sa pokazivačima na podatke, sekvencijalni indeks, omogućava brz sekvencijalni pristup podacima u datoteci
34
B-Stabla index set stablo pretrage za brz direktan pristup sekvencijalnom indeksu i posledično, podacima u datoteci – B-Stablo Primer dela B-Stabla (Knuth-ova varijacija)
35
B-Stabla Pseudokod algoritma pretrage: /*
*neka je N trenutni cvor sa kojim radimo *X i Y su vrednosti u čvoru sa kojim radimo *V je vrednost po kojoj pretražujemo */ Postavi N na KorenStabla; Sve dok N nije čvor iz Sekvencijalnog Skupa: X, Y su vrednosti iz N; Ako je V <= X postavi N na levi čvor od N; Ako je X < V <= Y postavi N na srednji čvor od N; Ako je V > Y postavi N na desni čvor od N; kraj; Ako se V pojavljuje u N izađi /* nađeno */ Ako se V ne pojavljuje u N izađi /*nije nađeno*/
36
B-Stabla U opštem slučaju, čvorovi stabla ne sadrže isti broj vrednosti i sadrže i prazan prostor Definiše se red stabla Stablo reda n ima u svakom čvoru bar n a najviše 2n vrednosti. Svaki čvor ima jedan više pokazivač od broja vrednosti Svaka vrednost se u stablu pojavljuje najviše jednom Prvih nekoliko nivoa stabla ne zauzima puno prostora pa se može čuvati u glavnoj memoriji da bi se smanjio broj čitanja sa diska
37
B-Stabla Algoritmi za umetanje i brisanje definišu se tako da očuvaju balansiranost stabla Vrši se pretraga po vrednosti koja se umeće, npr V, ali ne do čvora iz sequence set-a već do najnižeg čvora index set-a kojem ta vrednost pripada logički, nazovimo ga N. Ako taj čvor sadrži prazan prostor vrednost se ubacuje u taj čvor i proces se prekida. Inače, pošto je čvor N popunjen, sadrži 2n vrednosti, gde je n red stabla, pa se sa novom vrednošću V 2n+1 vrednosti rastavlja tako da se n najnižih vrednosti postavlja u novi čvor N1 a n najviših u novi čvor N2, središnja vrednost, W, se postavlja kao kriterijum razdvajanja za N1 i N2 u roditeljskom čvoru P koji je sadržao pokazivač na N. Ako ubacivanje vrednosti W u čvor P ne uspe, što može da se desi samo ako je P popunjen, drugi korak se ponavlja, i cepanje se pokušava na višem nivou. U najgorem slučaju, cepanje se dešava u samom korenu, stablo dobija na visini ali ostaje balansirano. Algoritam za brisanje je u suštini obrnut algoritam umetanja, promena vrednosti se obavlja brisanjem stare i umetanjem nove.
38
Literatura C.J.Date Apendix D ftp://ftp.aw.com/cseng/authors/date/eight/AppD/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.