George J. Klir Vilem Vychodil (Palacky University, Olomouc) State University of New York (SUNY) Binghamton, New York 13902, USA

Podobné dokumenty
Kapitola 11: Indexování a hešování. Základní představa

Složitosti základních operací B + stromu

1. Databázové systémy (MP leden 2010)

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

SQL tříhodnotová logika

Stromové struktury v relační databázi

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

PA152. Implementace databázových systémů

Algoritmy a datové struktury

Semestrální práce 2 znakový strom

Databázové systémy Tomáš Skopal

Datové struktury 2: Rozptylovací tabulky

Dynamické datové struktury IV.

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Databáze I. 5. přednáška. Helena Palovská

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Vědecký tutoriál, část I. A Tutorial. Vilém Vychodil (Univerzita Palackého v Olomouci)

Stromy. Jan Hnilica Počítačové modelování 14

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury)

Organizace a zpracování dat I

Algoritmizace prostorových úloh

04 - Databázové systémy

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Základní datové struktury

TÉMATICKÝ OKRUH Počítače, sítě a operační systémy

Stromy, haldy, prioritní fronty

Algoritmizace a programování

Maturitní otázky z předmětu PROGRAMOVÁNÍ

6. Fyzická (interní) úroveň databázového systému

AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující

Tvorba informačních systémů

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

a) b) c) Radek Mařík

Základní datové struktury III: Stromy, haldy

Systém souborů (file system, FS)

6. Fyzická (interní) úroveň databázového systému

Algoritmizace Hashing II. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace prostorových úloh

vyhledávací stromové struktury

Maturitní téma: Programovací jazyk JAVA

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Algoritmy výpočetní geometrie

Profilová část maturitní zkoušky 2017/2018

Prioritní fronta, halda

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Profilová část maturitní zkoušky 2013/2014

Základy algoritmizace c2007 Michal Krátký, Jiří Dvorský 1/57

IB111 Úvod do programování skrze Python

Informatika / file system KIT.PEF.CZU

TGH07 - Chytré stromové datové struktury

Algoritmizace prostorových úloh

3 Algoritmy řazení. prvku a 1 je rovněž seřazená.

TGH07 - Chytré stromové datové struktury

Jednoduché datové struktury a stromy

Datové struktury. Zuzana Majdišová

Návrh designu: Radek Mařík

Náplň. v Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Základy algoritmizace. Hašování

Databázové systémy Cvičení 5.2

DATABÁZE MS ACCESS 2010

Datové typy a struktury

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky

Jazyk C++ II. STL knihovna kontejnery část 2

Informatika Datové formáty

Pole a kolekce. v C#, Javě a C++

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

Databázové systémy. Úvod do teorie normalizace. Vilém Vychodil

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média

Binární vyhledávací stromy pokročilé partie

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

ADT/ADS = abstraktní datové typy / struktury

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Stromové struktury v relační databázi

S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:

vyhledávací stromové struktury

Dynamické datové struktury III.

TÉMATICKÝ OKRUH TZD, DIS a TIS

Databáze v MS ACCESS

Algoritmy II. Otázky k průběžnému testu znalostí

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Spojová implementace lineárních datových struktur

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Základní informace o předmětu Otázka:

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Návrh a tvorba WWW stránek 1/14. PHP a databáze

k-dimenzionálním prostoru. problém: Zkonstruovat strom, který rozděluje prostor polorovinami

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

Data v informačních systémech

Rozptylovací tabulky

Komprese dat (Komprimace dat)

TEORIE ZPRACOVÁNÍ DAT

Transkript:

A Tutorial Indexing structures in RDBMs George J Klir Vilem Vychodil (Palacky University, Olomouc) State University of New York (SUNY) Binghamton, New York 1390, USA gklir@binghamtonedu Palacky University, Olomouc, Czech Republic prepared for International Centre for Information and Uncertainty, Palacky University, Olomouc!!!! Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 1 / 31

Přehled seminářů 8 listopadu Vilém Vychodil Indexing structures in RDBMs 5 prosince Vilém Vychodil Query execution algorithms in RDBMs 1 prosince Ondřej Vaverka Survey of rank-aware approaches Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 / 31

Přehled 1 Organizace dat v relační databázi: pole, záznamy, soubory organizace dat do bloků, typy databázových souborů B-stromy a jejich modifikace: základní fakta vlastnosti vnitřních a listových uzlů, vkládání a mazání hodnot 3 Rozšiřitelné hashovací tabulky: základní principy, hashovací funkce, sloty, stránky, vkládání a mazání hodnot Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 3 / 31

Fyzická implementace základních pojmů z RM vycházíme z pojmu (logická vrstva): relace nad relačním schématem relační schéma = konečná množina atributů a jejich typů (domén) n-tice = zobrazení přiřazující atributům hodnoty jejich typů relace = konečná množina n-tic nad daným schématem na fyzické vrstvě musí SŘBD (efektivně) řešit: jak kódovat jména atributů a jejich typy jak kódovat relační schémata jak kódovat n-tice nad relačními schématy jak reprezentovat relace Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 4 / 31

Pole, záznamy, soubory pole: sekvence bytů (s pevnou nebo pohyblivou velikostí) kóduje hodnoty atributů (tj hodnoty daných typů) záznam: sekvence polí kóduje n-tice relací záznamy jsou ukládány do diskových bloků (stránek paměti) třeba udržovat hlavičku záznamu (informace o pořadí, jménu a typu položek) soubor ( jiný význam než v op syst): množina bloků obsahující záznamy stejného typu kóduje relaci nad daným schématem uvažujeme nesetříděný / setříděný Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 5 / 31

Pole typy kódování atributů daných typů: 1 hodnoty s pevnou velikostí kódu: 8B signed integer (little endian), 8B IEEE 754 double (binary64), 1B ASCII character, dvojice hodnot typu double (kódující bod v rovině), pravdivostní hodnoty, řetězce s omezenou délkou, znaky UTF-8, UTF-16, výčtové typy, hodnoty s pohyblivou velikostí kódu: řetězce bez omezené délky (styl kódování C a/nebo PASCAL), další objekty (obrázky, videa), Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 6 / 31

Záznam struktura záznamu: zřetězení jednotlivých polí dodatečná informace (hlavička): (ukazatel na) schéma záznamu délka záznamu časové značky (timestamps) kvůli synchronizaci a souběžnému přístupu typická organizace polí: pole s pevnou délkou jsou řazena jako první následují pole s pohyblivou délkou (délka je zaznamenána v hlavičce) ukazatel na schéma a další informace délka záznamu ID BIRTHDATE NAME ADDRESS Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 7 / 31

Záznamy a přetečení bloku problém přetečení bloku záznam se nevejde do aktuálního bloku pokud je záznam menší než blok, je možné alokovat jej v jiném bloku (fragmentace) pokud je záznam větší než blok, je rozdělen do několika bloků udržovaná informace: hlavička záznamu obsahuje příznak: záznam je celý / jedná se o fragment pokud je fragment, jsou zaznamenány další údaje: ukazatel na předchozí fragment ukazatel na další fragment alternativa: velké objekty (BLOBy) se udržují ve skupině (souvislých) bloků pole záznamu pro daný BLOB obsahuje adresy (tabulku adres) bloků Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 8 / 31

Typy databázových souborů nesetříděné soubory: typicky: perzistentní halda rychlé operace: vkládání, mazání pomalé operace: restrikce, modifikace (update) setříděné soubory: soubor je udržován jako setříděný pomocí primárního indexu typicky: perzistentní vyhledávací strom rychlé operace: restrikce (a další relační operace) za pomocí indexu pomalé operace: přidávání, mazání a modifikace dat (vše ostatní) primární sekundární indexy: sekundární indexy pomocné indexy podporující často prováděné dotazy problémy s reindexací Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 9 / 31

B + -stromy B-stromy: rodina vyvážených stromů (různé modifikace) vlastnosti: automaticky udržují potřebné množství úrovní indexů, kolik je potřeba pro data daného rozsahu spravují záznamy v blocích tak, že každý blok je nejvýš z poloviny prázdný implementační aspekty: perzistentní struktury uzly B-stromů mají velikost celého bloku (několika bloků) rozdíl oproti BVS uzly typicky obsahují několik (desítek) klíčů Bayer R, McCreight, E: Organization and Maintenance of Large Ordered Indexes Acta Informatica 1 (3): 173 189 (197) Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 10 / 31

Základní požadavky na B + -stromy parametr: n (přirozené číslo) n určuje počet možných klíčů a ukazatelů v každém uzlu stromu počet klíčů je n počet ukazatelů je n + 1 v praxi se n určuje z velikosti bloku, záznamů a ukazatelů základní podmínky, které musejí být splněny: 1 vyhledávací klíče v listových uzlech jsou kopie hodnot z datového souboru vyhledávací klíče v listových uzlech se nacházejí setříděné zleva-doprava 3 ukazatele v listech ukazují přímo na záznamy v datovém souboru 4 ukazatele ve vnitřních uzlech ukazují na další uzly stromu 5 kořenový uzel má vždy aspoň dva ukazatele (až na triviální případ, kdy indexujeme pouze jednu hodnotu, pak je kořen zároveň list) Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 11 / 31

Listové uzly B + -stromů listové uzly: poslední ukazatel ukazuje na další listový uzel v řadě (hodnoty uspořádané podle klíčů lze pohodlně procházet) ostatní ukazatele ukazují na záznamy (zakódované n-tice) nejméně n+1 ukazatelů (kromě posledního) je využito (i-tý ukazatel ukazuje na záznam i-tého klíče) nevyužité ukazatele jsou napravo od využitých příklad: pro n = 3 3 31 43 44 58 67 78 79 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 1 / 31

Vnitřní uzly B + -stromů vnitřní uzly: všech n + 1 ukazatelů může ukazovat na uzly stromu na nižších patrech nejméně n+1 ukazatelů je použito (s výjimkou kořene) pokud je použito j ukazatelů, v uzlu je zapsáno j 1 klíčů s následujícím významem: pro ukazatele P 1,, P j a klíče K 1,, K j 1 platí: P 1 ukazuje na uzel, kde jsou klíče ostře menší než K 1 P i ( i < j) ukazuje na uzel, kde jsou klíče z intervalu [K i 1, K i ) P j ukazuje na uzel, kde jsou klíče větší nebo rovny K j 1 nevyužité ukazatele jsou napravo od využitých 3 31 43 k < 3 3 k < 31 31 k < 43 43 k Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 13 / 31

Příklad B + -stromu pro n = 3 13 7 3 5 7 11 3 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 14 / 31

Využití B + -stromů v relačních databázích typické využití: 1 implementace primárního klíče (hustý index) implementace řídkého indexu v setříděném souboru vyhledávání jedné hodnoty v B + -stromu: zobecnění principu vyhledávání z BVS vyhledávání hodnoty začíná v kořenu pokud jsme v listovém uzlu, vyhledáme konkrétní hodnotu (binární vyhledávání) pokud jsme ve vnitřním uzlu, sestoupíme o patro níž, které odpovídá intervalu hodnot, do kterého padne aktuální hodnota (binární vyhledávání) vyhledávání intervalů hodnot v B + -stromu: nalezneme hodnotu odpovídající dolní mezi intervalu (nebo listový uzel, ve kterém by hodnota měla být) postupujeme zleva-doprava, dokud nenarazíme na horní mez intervalu Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 15 / 31

Modifikace B + -stromů: Vkládání základní schéma: nalezneme listový uzel, do kterého bychom chtěli vložit hodnotu klíče (pokud je v listu místo, úloha je triviální) pokud v daném listovém uzlu není místo (uzel je zaplněný), potom rozdělíme daný uzel na dva uzly, které jsou z poloviny zaplněné vkládaný klíč a hodnota bude v jednom ze dvou vzniklých uzlů potřeba propagovat změnu směrem k rodičovskému uzlu (rozdělení listu znamená přidat jeden klíč do rodiče) pokud je rodičovský uzel plný, rekurzivně pokračujeme s jeho dělením při pokusu vložit klíč do plného kořene je rozdělen kořen na dva (případ, kdy se zvýší výška stromu) Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 16 / 31

Příklad vložení hodnoty s klíčem 30 13 7 3 5 7 11 3 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 17 / 31

Příklad vložení hodnoty s klíčem 30 13 7 3 5 7 11 3 31 43 13 17 19 3 9 30 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 17 / 31

Příklad vložení hodnoty s klíčem 6 13 7 3 5 7 11 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 18 / 31

Příklad vložení hodnoty s klíčem 6 13 7 3 5 6 7 11 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 18 / 31

Příklad vložení hodnoty s klíčem 6 13 5 7 3 5 6 7 11 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 18 / 31

Příklad vložení hodnoty s klíčem 40 13 3 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 19 / 31

Příklad vložení hodnoty s klíčem 40 13 3 31 43 13 17 19 3 9 31 37 40 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 19 / 31

Příklad vložení hodnoty s klíčem 40 13 3 31 43 13 17 19 3 9 31 37 40 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 19 / 31

Příklad vložení hodnoty s klíčem 40 13 40 3 31 43 13 17 19 3 9 31 37 40 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 19 / 31

Modifikace B + -stromů: Mazání konzervativní přístup: data se nemažou vůbec, pouze se označují, jako smazaná (NULL pointer) rychlé, ale databáze může časem bobtnat (operace typu VACUUM) progresivní přístup: vyhledáme listový uzel, ze kterého chceme mazat (pokud po výmazu zůstane aspoň z poloviny zaplněný, úloha je triviální) pokud po výmazu klíče počet ukazateů klesne pod povolenou mez, potom: pokud má levý nebo pravý sourozenec daného uzlu zaplněnu víc než polovinu uzlů, pak můžeme k aktuálnímu uzlu přidat hodnotu ze sourozence (a aktualizovat rodiče) pokud má levý i pravý sourozenec minimální počet ukazetelů, pak sloučíme aktuální uzel s některým jeho levým/pravým sourozencem, dále je třeba: aktualizovat rodičovský uzel (odstranění jednoho ukazatele) případně propagovat změnu dál do stromu pokud by počet ukazatelů v kořenu klesl na 1, zmenšujeme výšku stromu Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 0 / 31

Příklad smazání hodnoty s klíčem 3 13 7 3 5 7 11 3 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 1 / 31

Příklad smazání hodnoty s klíčem 3 13 7 5 7 11 3 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 1 / 31

Příklad smazání hodnoty s klíčem 7 13 7 3 5 7 11 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 / 31

Příklad smazání hodnoty s klíčem 7 13 7 3 5 11 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 / 31

Příklad smazání hodnoty s klíčem 7 13 7 3 5 11 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 / 31

Příklad smazání hodnoty s klíčem 7 13 5 3 5 11 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 / 31

Příklad následného smazání hodnoty s klíčem 11 13 5 3 5 11 3 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 3 / 31

Příklad následného smazání hodnoty s klíčem 11 13 5 3 5 3 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 3 / 31

Příklad následného smazání hodnoty s klíčem 11 13 3 5 3 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 3 / 31

Příklad následného smazání hodnoty s klíčem 11 13 13 3 5 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 3 / 31

Příklad následného smazání hodnoty s klíčem 11 3 13 3 5 31 43 13 17 19 3 9 31 37 41 43 47 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 3 / 31

Efektivita B + -stromů vyjádření efektivity: podstatné jsou diskové operace (načítání a ukládání bloků/stránek) ve srovnání s tím nepodstatné: reorganizace uzlů probíhající v paměti cena operací pro modifikaci stromu: pro velké hodnoty n (aspoň n 10) platí: výskyt operací rozdělení a slučování uzlů velmi řídký navíc: obvykle jsou operace omezeny na listy a jejich rodiče cena vyhledávání hodnoty: počet diskových operací = výška stromu implementační optimalizace: první dvě patra stromu jsou v paměti řádová složitost vyhledávání/vkládání/mazání: O(log m) (kde m je velikost stromu počet dvojic klíč/hodnota) Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 4 / 31

Rozšiřitelné hashovací tabulky rozšiřitelná (a perzistentní) verze hashovacích tabulek: funkce h vrací pro každou hodnotu x vyhledávacího klíče hodnotu h(x) h(x) jsou celá čísla (vyjadřovaná v binárním tvaru) s dostatečným rozsahem (typicky čísla typu integer o velikosti 4 B nebo 8 B) význam: h(x) neurčuje index ( jako u hashovacích tabulek v paměti), ale: pomocí h(x) je vypočítán slot obsahující ukazatel na stránku se záznamy (ve stránce může být záznam s klíčem x) počet slotů dynamicky roste, jeho počet je mocnina parametry algoritmu: h (hashovací funkce) i (aktuální délka binárního prefixu, který se používá na nalezení slotu) Fagin R, Nievergelt J, Pippenger N, Strong H R: Extendible hashing a fast access method for dynamic files ACM Transactions on Database Systems 4 (3): 315 344 (1979) Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 5 / 31

Příklad rozšířitelné hashovací tabulky pro parametry: h vracející čísla typu uint3 i = 1 (počáteční hodnota i) 0 1 0001 1 1001 1100 1 význam čísla v hlavičce bloku: číslo i j udává, kolik bitů je použito pro rozlišení záznamů v rámci bloku Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 6 / 31

Vkládání hodnoty: Triviální případ vložení klíče s hashem 0111 : 0 1 0001 1 1001 1100 1 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 7 / 31

Vkládání hodnoty: Triviální případ vložení klíče s hashem 0111 : 0 1 0001 0111 1 1001 1100 1 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 7 / 31

Vkládání hodnoty: Zvětšení počtu slotů vložení klíče s hashem 0101 : 0 1 0001 0111 1 1001 1100 1 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 8 / 31

Vkládání hodnoty: Zvětšení počtu slotů vložení klíče s hashem 0101 : 00 01 10 11 0001 0111 1 1001 1100 1 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 8 / 31

Vkládání hodnoty: Zvětšení počtu slotů vložení klíče s hashem 0101 : 00 01 10 11 0001 0111 1001 1100 1 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 8 / 31

Vkládání hodnoty: Zvětšení počtu slotů vložení klíče s hashem 0101 : 00 01 10 11 0001 0111 0101 1001 1100 1 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 8 / 31

Vkládání hodnoty: Rozdělení bloků bez zvětšení počtu slotů vložení klíče s hashem 1010 : 00 01 10 11 0001 0111 0101 1001 1100 1 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 9 / 31

Vkládání hodnoty: Rozdělení bloků bez zvětšení počtu slotů vložení klíče s hashem 1010 : 00 01 10 11 0001 0111 1001 1100 0101 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 9 / 31

Vkládání hodnoty: Rozdělení bloků bez zvětšení počtu slotů vložení klíče s hashem 1010 : 00 01 10 11 0001 0111 1001 1100 0101 1010 Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 9 / 31

Rozšířitelné hashovací tabulky: Vkládání a mazání vkládání nových záznamů: 1 triviální, pokud má stránka pro vkládání dost místa pokud je stránka plná a j < i, pak: inkrementujeme j a rozdělíme blok na dva rozdělíme záznamy z výchozího bloku do dvou na základě nového j pokusíme se přidat nový záznam (někdy je třeba proces opakovat) 3 pokud je stránka plná a j = i, pak inkrementujeme i a aplikujeme mazání záznamů: obvykle konzervativní výhody/nevýhody: může být rychlejší při vyhledávání než stromy má režii spojenou s reorganizací pole slotů a rozdělováním stránek narozdíl od stromů: nereprezentuje uspořádání Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 30 / 31

Použití zdroje Bayer R, McCreight, E: Organization and maintenance of large ordered indexes Acta Informatica 1 (3): 173 189 (197) Fagin R, Nievergelt J, Pippenger N, Strong H R: Extendible hashing a fast access method for dynamic files ACM Transactions on Database Systems 4 (3): 315 344 (1979) Garcia-Molina H, Ullman J, Widom J: Database Systems: The Complete Book Prentice Hall 008, ISBN 978 013187354 Lehman P, Yao S: Efficient locking for concurrent operations on B-trees ACM Transactions on Database Systems 6 (4): 650 670 (1981) Vychodil V (DAMOL) Indexing structures in RDBMs Nov 8, 013 31 / 31