Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Adatbázisok 9. előadás Tikk Domonkos.

Hasonló előadás


Az előadások a következő témára: "Adatbázisok 9. előadás Tikk Domonkos."— Előadás másolata:

1 Adatbázisok 9. előadás Tikk Domonkos

2 Fastruktúra alapú indexek

3 Hashing – Emlékeztető Hash indexek egyenlőségi reláció kezelésére jók. Nem támogatják az intervallum alapú kereséseket. 2

4 Fa struktúrára épülő indexek
Fa struktúrára épülő indexek egyaránt támogatják az egyenlőségi reláció és az intervallum alapú kereséseket. ISAM (indexed sequential access method, indexszekvenciális hozzáférési módszer): statikus struktúra – az adatok a fa levelein (levéllap) találhatók, valamint túlcsordulási lapokon) B-fa és B+-fa: dinamikus, beszúráskor és törléskor úgy módosul, hogy a kiegyensúlyozottság megmaradjon 2

5 Intervallum keresések
Kik azok a dolgozók, kiknek fizetése > 2000 Ha az adatot rendezett fájlban tároljuk, akkor egy bináris keresést kell végrehajtani, megtalálni az első illeszkedő dolgozót, majd onnan visszaadni az összeset. A bináris keresés költsége nagy lehet (karbantartás) Alapötlet: Készítsünk indexfájlt k1 k2 kN indexfájl Page 1 Page 2 Page 3 adatfájl Page N 3

6 ISAM index bejegyzés P K P K P K P 1 1 2 2 m m Az indexfájl így is elég nagy lehet – de ha ismételten alkalmazzuk az eljárást, akkor egy fát építhetünk Köztes csomó- pontok Levél- lapok Túlcsordulási lap Elsődleges lapok A levéllapok tartalmazzák az adatot; jelölése *-gal 4

7 ISAM index létrehozása
Levéllapok (adat) Fájl létrehozása: Levéllapok allokálása szekvenciálisan, kulcs szerint rendezve; indexlapok allokálása, majd túlcsordulási lapoké. Indexbejegyzések: <kulcsérték, lap azonosító>; a megfelelő levéllapra mutatnak, ahol az adat található. Keresés: Kezdés a gyökérnél; a kulcsokkal való összehasonlítás alapján a levéllapok felé. Költség: log 𝑛 𝑁 ; ahol 𝑛 = fa rendje (# adat/indexlap), 𝑁 = # levéllap Beszúrás: Levéllap megkeresése és beszúrása. Törlés: Keresés, majd levéllapról törlés. Ha túlcsordulási lap üres lesz, törölni. Indexlapok Túlcsordulási lapok Statikus fa struktúra: beszúrás és törlés csak a levéllapokat érinti. 5

8 Példa: ISAM Gyökér 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 20

9 Beszúrás: 23*, 48*, 41*, 42* ... 40 20 33 51 63 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 23* 48* 41* 42* 7

10 Törlés: 42*, 51*, 97* 8

11 B-fa

12 Bináris fák maximum 2 gyerek Keresés:
log2N – ha a bináris fa kiegyensúlyozott, azaz „elegendően szimmetrikus”

13 Keresés kiegyensúlyozatlan esetben
Átlagos keresési idő: N/2 Kiegyensúlyozottá tétel költséges biztosítani beszúrás törlés

14 B-fák R. Bayer után elnevezve (1970) Alapstruktúra (𝑛,𝑚)-rendű B-fa
n a B-fa rendje a fa ún. lapokból áll egy lapon mutatók (𝑝𝑖) és kulcsok (𝑘𝑖) vannak mutatók és a rendezettség pi mutató olyan lapra mutat, ahol kulcsok ( 𝑘 𝑖 , 𝑘 𝑖+1 )-ben levéllap esetén: 𝑝𝑖 = NIL (𝑛,𝑚)-rendű B-fa minimum és maximum tételek egy lapon

15 B-fa tulajdonságai Minden lap legfeljebb 2𝑛 tételt tartalmaz
Minden lapon – kivéve gyökér – min. 𝑛 tétel van Ha egy lapon 𝑚 tétel van akkor vagy levéllap vagy 𝑚+1 gyereke van Minden levéllap ugyanazon a szinten van

16 Keresés B-fában Keresés átlagos lépésszáma a laphivatkozások számától függ 𝑁 elem és 𝑛-ed rendű fában log 𝑛 𝑁 𝑅 elem keresése, angol ábécé mássalhangzóiban

17 Példa: másodrendű B-fa

18 Műveletek B-fákon Beszúrás levéllapra beszúrni
ha a tételek száma > 2𝑛, akkor a középső elemet kiemeljük eggyel magasabb szintre 2 új 𝑛-elemű lapot hozunk létre Mindezt rekurzívan Ha a gyökérlapig feljutunk, akkor új gyökérlap, és nő a fa magassága

19 Példa beszúrásra új elem: 22 a levéllap telített
középső elem kiemel és felterjeszt lap 2 részre

20 Példa beszúrásra (2)

21 Kulcs törlése (1) Ha levélen van, és nem minimális számú, akkor törölhető F törlése

22 Kulcs törlése (2) Ha belső csomópont van, akkor a megelőzője lesz felmozgatva a helyére, ha van elég tétel a lapon M törlése, helyett L kerül fel

23 Kulcs törlése (3) Ha belső csomópont van, de a megelőzője nem mozgatható fel (nincs elég a lapon) törlendő elem lenyomása (G -> DEGJK) G törlése

24 Kulcs törlése (4) Fent min. a fa Összevonás Gyökér üres lesz
P C L T X Fent min. a fa Összevonás Gyökér üres lesz fa mérete csökken A B D E J K N O Q R S U V Y Z Delete D (Case 3.B) C L P T X A B E J K N O Q R S U V Y Z

25 Kulcs törlése (5) C L P T X A B E J K N O Q R S U V Y Z Case 0

26 Kulcs törlése (6) B helyére C C helyére E C L P T X A B E J K N O
Q R S U V Y Z Delete B (Case 3.A) E L P T X A C J K N O Q R S U V Y Z

27 Kulcs törlése (7) ld. animáció tree

28 B+-fák Gyakorlatban ezt használják az indexállományok készítésére
Az adatok mind a levéllapokon vannak, ezért a közbülső lapok és a levéllapok struktúrája eltérő


Letölteni ppt "Adatbázisok 9. előadás Tikk Domonkos."

Hasonló előadás


Google Hirdetések