Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Σχετικά έγγραφα
DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

3.1 Granična vrednost funkcije u tački

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

Teorijske osnove informatike 1

Operacije s matricama

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

numeričkih deskriptivnih mera.

SISTEMI NELINEARNIH JEDNAČINA

Binarno stablo (BinaryTree)

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

41. Jednačine koje se svode na kvadratne

ELEKTROTEHNIČKI ODJEL

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

Računarska grafika. Rasterizacija linije

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

Zavrxni ispit iz Matematiqke analize 1

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

5. Karakteristične funkcije

TRIGONOMETRIJA TROKUTA

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

Kaskadna kompenzacija SAU

Zadaci iz Osnova matematike

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

Elementi spektralne teorije matrica

Osnovne teoreme diferencijalnog računa

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

radni nerecenzirani materijal za predavanja

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

7 Algebarske jednadžbe

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Inženjerska grafika geometrijskih oblika (5. predavanje, tema1)

GRAFOVI. Ljubo Nedović. 21. februar Osnovni pojmovi 2. 2 Bipartitni grafovi 8. 3 Stabla 9. 4 Binarna stabla Planarni grafovi 12

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati:

Trigonometrijske nejednačine

Računarska grafika. Rasterizacija linije

Funkcije dviju varjabli (zadaci za vježbu)

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

I.13. Koliki je napon između neke tačke A čiji je potencijal 5 V i referentne tačke u odnosu na koju se taj potencijal računa?

Ispitivanje toka i skiciranje grafika funkcija

APROKSIMACIJA FUNKCIJA

Riješeni zadaci: Nizovi realnih brojeva

Obrada signala

Novi Sad god Broj 1 / 06 Veljko Milković Bulevar cara Lazara 56 Novi Sad. Izveštaj o merenju

Dijagonalizacija operatora

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

18. listopada listopada / 13

OBRTNA TELA. Vladimir Marinkov OBRTNA TELA VALJAK

Sistemi veštačke inteligencije primer 1

S t r a n a 1. 1.Povezati jonsku jačinu rastvora: a) MgCl 2 b) Al 2 (SO 4 ) 3 sa njihovim molalitetima, m. za so tipa: M p X q. pa je jonska jačina:

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

Čas 3: Sravnjivanje niski (string matching)

Pravilo 1. Svaki tip entiteta ER modela postaje relaciona šema sa istim imenom.

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Overviev BFS-analiza DFS algoritam. Predstavljanje grafova BFS algoritam. Grafovski algoritmi

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

INTELIGENTNO UPRAVLJANJE

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

Zadaci iz trigonometrije za seminar

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

3. razred gimnazije- opšti i prirodno-matematički smer ALKENI. Aciklični nezasićeni ugljovodonici koji imaju jednu dvostruku vezu.

NOMENKLATURA ORGANSKIH SPOJEVA. Imenovanje aromatskih ugljikovodika

IZVODI ZADACI (I deo)

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

Matematička analiza 1 dodatni zadaci

Program testirati pomoću podataka iz sledeće tabele:

PRIMJER 3. MATLAB filtdemo

IZVODI ZADACI (I deo)

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

1. Pojam fazi skupa. 2. Pojam fazi skupa. 3. Funkcija pripadnosti, osobine i oblici. 4. Funkcija pripadnosti, osobine i oblici

Linearno ispitivanje. Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF) algoritmi

Neka su A i B proizvoljni neprazni skupovi. Korespondencija iz skupa A u skup B definiše se kao proizvoljan podskup f Dekartovog proizvoda A B.

POVRŠINA TANGENCIJALNO-TETIVNOG ČETVEROKUTA

RIJEŠENI ZADACI I TEORIJA IZ

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

Algoritmi zadaci za kontrolni

( , 2. kolokvij)

U raznim oblastima se često javlja potreba da se izmed u izvesnih objekata uspostave izvesne veze, odnosi ili relacije.

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

1 Afina geometrija. 1.1 Afini prostor. Definicija 1.1. Pod afinim prostorom nad poljem K podrazumevamo. A - skup taqaka

Pošto pretvaramo iz veće u manju mjernu jedinicu broj 2.5 množimo s 1000,

Ĉetverokut - DOMAĆA ZADAĆA. Nakon odgledanih videa trebali biste biti u stanju samostalno riješiti sljedeće zadatke.

KONVEKSNI SKUPOVI. Definicije: potprostor, afin skup, konveksan skup, konveksan konus. 1/5. Back FullScr

Dvanaesti praktikum iz Analize 1

OM2 V3 Ime i prezime: Index br: I SAVIJANJE SILAMA TANKOZIDNIH ŠTAPOVA

TRIGONOMETRIJSKE FUNKCIJE I I.1.

Neka su A i B skupovi. Kažemo da je A podskup od B i pišemo A B ako je svaki element skupa A ujedno i element skupa B. Simbolima to zapisujemo:

5 Ispitivanje funkcija

Transcript:

Struktura indeksa: B-stablo http://cis.stvincent.edu/html/tutoria ls/swd/btree/btree.html

Uvod ISAM (Index-Sequential Access Method, IBM sredina 60-tih godina 20. veka) Nedostaci: sekvencijalno pretraživanje indeksa Poboljšanje: indeks nad indeksom Uopštavanje: drvoidna indeksna struktura svaki nivo osim nivoa lista je redak indeks ilustracija

ISAM

Definicije Graf Usmereni graf Γ je uređeni par (A, r), gde je A konačni skup a r binarna relacija nad skupom A. Elemente skupa A zovemo čvorovi, a elemente skupa r potezi. Ako je (ai, aj ) r poteg, kaže se da je čvor ai neposredni prethodnik čvora aj, a da je čvor aj neposredni sledbenik čvora ai; takođe, čvor ai je izlazničvor potega (ai, aj ), a čvor aj je ulazničvor potega (ai, aj ). Ulazni red čvora ai je broj potega kojima je taj čvor ulazni čvor, a izlazni red čvora ai je broj potega kojima je taj čvor izlazni čvor. Putanja dužine n od čvora ai do čvora ak u grafu Γ je niz čvorova (ai, ai+1,..., ai+n), takvih da je ai+n = ak i (aj, aj+1) r za svako j = i, i + 1,..., i+n-1. Putanja od čvora ai do čvora ak, dužine veće od 1, za koju važi da je ai = ak, zove se ciklus.

Stablo Stablo Graf Γ je stablo ako zadovoljava sledeće uslove: ulazni red svakog čvora (osim jednog) je 1; ulazni red jednog čvora je 0, i taj čvor se zove koren stabla; izlazni red svakog čvora je 0 i konačan; graf Γ ne sadrži cikluse. čvorovi bez neposrednih sledbenika zovu se listovi stabla (izlazni red svakog lista je 0); visina stabla je maksimalna dužina putanje od korena do nekog lista stabla. čvorovi neposredni sledbenici istog čvora zovu se braća

Stablo reda m Stablo reda m je stablo u kome je izlazni red svakog čvora manji ili jednak m (svaki čvor ima najviše m sledbenika). Svaki čvor sadrži određen broj ključeva; čvor sa k sledbenika sadrži tačno k - 1 ključeva. Ako su ključevi i podstabla uređeni kao kod stabla pretrage, stablo reda m naziva se stablom pretrage reda m. Primer: stablo pretrage reda 4 (prvi red čvora prikazuje ključeve, drugi red pokazivače na čvorove sledbenike). U realnoj situaciji, umesto ključa biće ceo slog, pa će u prvom redu biti niz slogova koji uključuje ključ i pridružene podatke (ili ključ i redni broj sloga, ako su slogovi smešteni u posebnoj datoteci).

Stablo pretrage reda m: primer

Stablo pretrage reda m: osobine Čvor stabla pretrage reda m može da se predstavi strukturom sa brojem ključeva (int Broj) i dva niza: nizom Kljucevi od m-1 ključeva nekog tipa i nizom Grane od m pokazivača na strukture istog tipa Struct NodeType { int Broj; // broj ključeva smeštenih u tekućem čvoru tipkljuca Kljucevi[m-1]; // niz za najviše m-1 kljuceva struct NodeType *Grane [m]; // niz pokazivača } N; U tom slučaju, stablo pretrage reda 4 (slično za m) treba da zadovolji sledeće uslove u vezi sa uređenjem ključeva:

Stablo pretrage reda m: osobine Ključevi u svakom čvoru su u rastućem poretku. U svakom čvoru N važi: Podstablo koje počinje u strukturi N.Grane[0] sadrži ključeve koji su manji od N.Kljucevi[0]. Podstablo koje počinje u strukturi N.Grane[1] sadrži ključeve koji su veći od N.Kljucevi[0] i istovremeno manji od N.Kljucevi[1]. Podstablo koje počinje u strukturi N.Grane[2] sadrži ključeve koji su veći od N.Kljucevi[1] i istovremeno manji od N.Kljucevi[2]. Podstablo koje počinje u strukturi N.Grane[3] sadrži ključeve koji su veći od N.Kljucevi[2]. Ne govorimo o duplikatima

B-stablo Posebno poželjna osobina stabla pretrage reda m, kada je u pitanju efikasnost njegovog pretraživanja, jeste balansiranost koja označava da je dužina puta od korena do svakog lista jednaka. Visina stabla: logmbr, Br ukupan broj ključeva u stablu; obično 3-4 (npr. 10000000 ključeva, m=50, visina 4) Jedna specifična struktura balansiranog stabla, poznata kao B- stablo, poslužila je kao osnov za izgradnju niza struktura podataka koje se koriste u implementaciji indeksa. Struktura specijalizovana za korišćenje na disku Čvorovi blokovi fiksne veličine na disku stranice Puno ključeva na jednoj stranici, puno sledbenika, veliki red m velika efikasnost pristupa podacima na disku

B-stablo B-stablo reda m je stablo pretrage reda m takvo da: Svi listovi su na najnižem nivou (stablo je balansirano) Svi unutrašnji čvorovi (osim možda korena) imaju najmanje ceil(m / 2) (nepraznih) sledbenika. Koreni čvor, ako nije list, ima najmanje 2 sledbenika, a ako je istovremeno i list onda nema sledbenika (i stablo se sastoji samo od tog jednog čvora) Svaki list sadrži najmanje ceil(m / 2) - 1 ključeva B-stablo je osnovna drvoidna indeksna struktura Sadrži podatke (ključeve tj. slogove) na svim nivoima Popunjenost stranice min 50%, u proseku oko 70% Modifikacije: B* stablo, B+ stablo, sa većom popunjenošču / razdvojenim indeksom od podataka / sekvencijalnošću nad podacima

B-stablo: primer - red 5

Operacije nad B-stablom: pretraživanje (1) Neka je stranica N - korena stranica (2) Pretražiti stranicu N na ključ Klj (3) Ako je ključ Klj nađen, pretraživanje uspešno (4) Inače, Ako je stranica N list, pretraživanje je neuspešno Inače, naći među ključevima N.Kljucevi[0], N.Kljucevi[1], N.Kljucevi[2],, N.Kljucevi[Br-1] najmanji ključ koji je veći od Klj; neka je to ključ N.Kljucevi[j]; N postaje stranica na koju pokazuje pokazivač N.Grane[j-1]; preći na korak 2. Primer: pretražiti prethodno stablo na ključeve S, J, A

Operacije nad B-stablom: unošenje Pretražiti B-stablo ključem unošenja Ako ključ nije nađen, pretraga je završena u listu (1) Ako ima mesta u listu, uneti ključ u list uz eventualna pomeranja (2) Ako je list pun, treba ga pocepati : (2.1) oko polovine ključeva ostaje na starom listu (2.2) oko polovine ključeva ide na novi list desno od postojećeg (2.3) srednji ključ se penje u roditeljski čvor, pomeraju se ključevi i pokazivači

Operacije nad B-stablom: unošenje (nast.) (3) Ako u roditeljskom (unutrašnjem) čvoru nema mesta, i on se cepa : (3.1) oko polovine ključeva ostaje na starom čvoru (3.2) oko polovine ključeva ide u novi čvor desno od postojećeg (3.3.) srednji ključ se penje u roditeljski čvor, uz pomeranje ključeva i pokazivača (rekurzivno korak 3) (4) Ako se pocepa koreni čvor, srednji ključ ide u novi koreni čvor; visina stabla se povećava za 1 Ako je ključ nađen unošenje se ne vrši (slučaj bez duplikata)

B-stablo: unošenje - primer Unose se sledeća slova u (na početku) prazno B stablo reda 5: C N G A H E K Q M F W L T Z D P R X Y S Red 5 znači da čvor može da ima najviše 5 neposrednih sledbenika i 4 ključa (najmanje 3 neposredna sledbenika i 2 ključa). Svi čvorovi osim korena moraju da imaju najmanje 2 ključa (koren ima najmanje 1 ključ). Prva 4 slova (C N G A ) se unose u isti (prvi) čvor:

Unošenje ključeva H E K Q M: cepanje lista (H, 2), (M, 4)

Unošenje ključeva F W L T Z: cepanje lista (Z, 2)

Unošenje ključeva D P R X Y: cepanje lista (D)

Unošenje ključa S: cepanje lista i unutrašnje stranice; novi koren, povećanje visine stabla

B-stablo: brisanje - algoritam Brisanje se uvek svodi na brisanje iz lista (1) Ako se briše ključ iz lista onda (1.1) Ako ostaje dovoljno ključeva, vrši se samo pomeranje (1.2) Ako ne ostaje dovoljno ključeva onda (1.2.1) Ako susedni brat (čvor) ima višak ključeva, najmanji ključ iz desnog (odnosno najveći iz levog brata) se penje u čvor-prethodnik, a ključ iz prethodnika se spušta u čvor iz kojeg smo izbrisali ključ (1.2.2) Ako nijedan susedni brat nema višak ključeva, čvor iz kojeg smo izbrisali ključ spaja se sa levim ili desnim bratom, uz dodavanje razdvojnog ključa iz čvora-prethodnika. Ako čvor-prethodnik nema dovoljno ključeva, vrši se rotacija preko njegovog čvora-prethodnika, ili spajanje sa bratom (2) Ako se briše ključ iz unutrašnjeg čvora, onda se umesto njega penje najmanji ključ iz njegovog sledbenika; ključ koji se penje briše se iz čvora u kome je bio pravilo se primenjuje rekurzivno i svodi na brisanje iz lista

B stablo: brisanje - primer Izbrisati ključ H (pravilo 1.1)

Izbrisati ključ T (pravilo 2). Svodi se na brisanje, iz lista, neposrednog sledbenika u uređenju, W ( penje se na mesto T)

Izbrisati ključ R (pravilo 1.2.1). Svodi se na rotaciju, tj. prelivanje iz desnog suseda (X, penje se ) preko roditeljskog ključa W (spušta se)

Izbrisati ključ E (pravilo 1.2.2). Čvor se spaja sa levim bratom uz dodavanje ključa D iz roditeljskog čvora. Unutrašnji čvor sa ključem G spaja se sa bratom uz spuštanje ključa M. Visina drveta se smanjuje za 1.

B-stablo primer 2. Izbrisati ključ C korak 1 (pravilo 2):

Korak 2 (pravilo 1.2.2)

Korak 3 (pravilo 1.2.2 nast.). Čvor sa ključevima K, L promenio je prethodnika i braću!

http://www.csanimated.com/animation.php?t=b-tree http://wiki.algoviz.org/algovizwiki/b-trees http://www.cs.hut.fi/research/trakla2/e xercises/btree_insert.html

B*-stablo Cepanje pune stranice u B-stablu je skupa operacija Umesto cepanja prelivanje u susedne čvorove - braću B*-stablo pretrage reda m je balansirano stablo pretrage reda m za koje važi: Svaki čvor, osim korena i listova, ima najmanje (2m- 1)/3 neposrednih sledbenika (podstabala), što podiže popunjenost na najmanje 2/3 Koren ima najmanje 2 neposredna sledbenika Čvor koji nije list ima k neposrednih sledbenika i k-1 ključeva

B*-stablo - operacije Pretraživanje ključa je isto kao kod B-stabla Unošenje (uvek u list) analogno unošenju u B-stablo, OSIM što: Ako je list pun, pokušava se prelivanje desnim ili levim bratom: urede se svi ključevi iz lista, izabranog brata, razdvojni ključ (iz neposrednog prethodnika) i ključ koji se unosi (ukupno m-1+k+1+1 ključeva) floor((m+k+1)/2) ključeva (manjih ili većih, u zavisnosti od toga da li se preliva iz desnog ili levog brata) ostaje na starom listu, a ostali idu u desni / levi brat (središnji se penje ) Ako prelivanje ne uspe, cepaju se 2 čvora (i puni list i njegov brat) na 3 čvora, tako što u prvi ide floor((2m-2)/3), u drugi floor((2m-1)/3) a u treći floor((2m)/3) ključeva, a u čvor neposredni prethodnik idu dva razdvojna ključa Prethodno pravilo se propagira po potrebi sve do korena

B*-stablo - operacije Brisanje: spajanje 3 čvora u 2 (ako je potrebno) Bolja popunjenost, manja visina i efikasnije operacije u odnosu na B-stabla

B*-stablo - primer