Téma 11 Přístup k datům Obsah. Organizace ukládání dat

Rozměr: px
Začít zobrazení ze stránky:

Download "Téma 11 Přístup k datům Obsah. Organizace ukládání dat"

Transkript

1 Téma 11 Přístup k datům Obsah 1. Organizace ukládání dat Záznamy pevné a proměnné délky Sekvenční organizace souborů Organizace "multi-table clustering" 2. Indexování Podstata indexování Hustéa řídkéindexy B+ stromy a jejich vlastnosti 3. Hašování Princip hašování Statické hašování Dynamické rozšiřitelné hašování Organizace ukládání dat Přístup k datům 1 Přístup k datům 2 Databáze a soubory Databáze je uložena jako soustava souborů(files). Každý soubor je posloupnost záznamů(records). Záznam je posloupnost polí(fields), obvykle odpovídajících atributům Základnípřístup Předpoklad: každý záznam má pevnou délku Každý soubor obsahuje záznamy jediného konkrétního typu Každá datová relace je v samostatném souboru Snadná implementace Záznamy pevné délky m bytů i-tý záznam začínána pozici m (i 1) Přístup k záznamům je velmi jednoduchý Viz služba lseekpro práci se soubory Výmaz záznamu i alternativy: i+1,..., nna i,..., n 1 přesuňzáznam n na místo i-tého nepřesouvej nic, ale udržuj seznam smazaných záznamů, tj. volného místa Přístup k datům 3 Seznamy volného místa Ulož adresu prvního smazaného záznamu v záhlaví souboru Použij místo po zrušeném záznamu k uloženíadresy druhého smazaného záznamu, atd. Uložené adresy jsou odkazy (pointery) odkazují na příští zrušený záznam Při vkládání záznamů se použije místo po zrušených záznamech Přístup k datům 4

2 Záznamy s proměnnou délkou Záznamy s proměnnou délkou se používajízřídka. Mohou vzniknout při potřebě uložení různých záznamů v jednom souboru uložení záznamů s poli (atributy) proměnné délky Stránkovanésoubory Soubor = množina stránek(bloků) fixní velikosti Záhlaví stránky obsahuje Počet záznamůve stránce Odkaz na konec volného místa Pozici a délku každého záznamu Záznamy lze uvnitř stránky libovolně přesouvat a šetřit tak místo Odkazy na záznamy v souboru jsou tvořeny dvojicemi (číslo_stránky, číslo_záznamu_ve_stránce). Neodkazujíse přímo záznamy, ale údaje v Délka záznamu Umístění záhlaví stránek Počet zázn. Záhlaví Volno Organizace záznamů v souborech Umísťování záznamů může výrazně ovlivnit přístupové doby zpravidla se vyhledává prostřednictvím klíče(asociativní paměť) Halda záznam se umístív souboru kamkoliv, kde je místo Sekvenční organizace záznamy se ukládají v pořadí daném hodnotou vyhledávacího klíče záznamu Hašování hašovacífunkce počítanáz vhodného atributu záznamu (klíče) určíčíslo bloku v souboru, kam bude záznam umístěn Záznamy každérelace se zpravidla ukládajído samostatných souborů. V organizaci označovanéjako "multi-table clustering" se záznamy různých relací ukládají do jednoho souboru Motivace: ukládej logicky spolu souvisejícízáznamy do jednoho bloku s cílem minimalizace I/O operací Ukazatel na konec volného místa Přístup k datům 5 Přístup k datům 6 Sekvenční organizace souboru Velmi vhodné pro aplikace, kdy se požaduje sekvenční zpracování celé tabulky Záznamy jsou řazeny podle vyhledávacího klíče Uspořádanésekvenčnísoubory umožňujívelmi rychlý přístup k datům Půlení intervalu logaritmická(sub-lineární) složitost Údržba je avšak extrémně obtížná Proto je obvykle ke každému záznamu připojen odkaz na "logicky následující" záznam Sekvenční organizace souboru (pokr.) Výmaz řetězec odkazů přeskočí smazaný záznam Vložení najdi pozici, kam záznam vložit je-li tam volno, vložho tam pokud ne, vložzáznam do tzv. bloku přeplnění V každém případěje nutno aktualizovat řetězec odkazů Reorganizace souboru Čas od času se musísoubor reorganizovat, aby se obnovilo plnésekvenčníuspořádání, a tak bylo používat efektivní (sub-lineární) hledání Přístup k datům 7 Přístup k datům 8

3 Organizace "multi-table clustering" Uložení několika relací v jednom souboru s organizací multi-table clustering Relace depositor a customer uložené v jednom souboru Vhodnépro dotazy typu depositor customera dotazy týkajícíse jednoho zákazníka a jeho účtů Neefektivní, kdyžse dotaz bude týkat jen zákazníka Vede na záznamy s proměnnou délkou Lze téžpřidat řetězce odkazůspojujících záznamy patřící k jedné ze zobrazovaných relací Uložení slovníku dat Slovník dat(data dictionary, system catalog) obsahuje údaje o datech (metadata) Informace o relacích jména relací, jména a typy atributů každé relace, integritní omezení jména a definice pohledů Informace o právech uživatelů, včetně zakódovaných hesel Údaje o fyzické organizaci souborů Jak je která relace uložena (sekvenčně/hašovaná/...) Fyzická lokalizace relace (v kterém souboru,...) Údaje o indexech a dalších strukturách Struktura slovníku dat Relační reprezentace na disku Možná reprezentace soustavou relací(tabulek) podle schémat: Přístup k datům 9 Přístup k datům 10 Základní myšlenka indexace Indexy zrychlují hledání v datech podle klíče např. autorský index v knihovně Indexní soubor sestává ze záznamů ve tvaru Indexace a indexní soubory Přístup k datům 11 Indexní soubory bývají výrazně menší než původní soubory s daty mnohdy se celévejdou do operačnípaměti Dva základní typy indexů: Setříděné indexy: soubor je setříděn podle klíčů Hašovanéindexy: klíče jsou rovnoměrněrozloženy v "blocích" referencovaných hašovací funkcí Měřítka pro hodnocení efektivní organizace indexů Podporované typy vyhledávání, např. záznamy s konkrétníhodnotou klíče (či jiného atributu) versuszáznamy s hodnotou klíče v zadaném intervalu hodnot Doba přístupu Náročnost operací vkládání a výmazu dat Prostorová(paměťová) náročnost (režie) Přístup k datům 12

4 Setříděné indexy Při setříděných indexechjsou položky indexního souboru setříděny a uloženy podle hodnot prohledávacího klíče Např. autorský katalog v knihovně Index může být prohledáván iterovaným půlením Primárníindex: index určujícípořadízáznamův sekvenčně organizovaném souboru Prohledávací klíč primárního indexu je obvykle (i když ne nutně) primárním klíčem relace POZOR: Nejde-li o primární klíč relace, může k jedné hodnotě prohledávacího klíče existovat více datových záznamů Sekundárníindex(y)určujípořadíjiné, nežje určeno primárním indexem Vhodnépro setříděnévýpisy či prohledáváníodlišnéod primárního indexu Index-sekvenčnísouboroznačuje setříděný datový soubor s primárním indexem a vše je spojeno do jediného diskového souboru Husté a řídké indexy Hustý indexobsahuje záznamy pro všechny hodnoty prohledávacího klíče Řídké indexy obsahují odkazy pouze na některé hodnoty klíčů Použitelné jen když datové záznamy jsou setříděné podle stejného klíče Řídké vs. husté indexy Menšía méněrežie spojené s rušením a vkládáním záznamů Obecněpomalejšínežhustéindexy při vyhledávání Výhodnéa nejčastějšíužití:řídký index s položkami odkazujícími na prvnízáznam podle klíče v každém alokačním bloku datového souboru Přístup k datům 13 Přístup k datům 14 Víceúrovňové indexy Pokud se primárníindex nevejde do paměti, vyhledávánízačne být nákladné Řešení: považuj primárníindex uložený na disku za sekvenčnísoubor a vybuduj k němu řídký index vnějšíindex = řídký index primárního indexu vnitřníindex = primárníindex k datům Je-li i pak vnějšíindex příliš velký, vytvoř další úroveň, atd. Problém: Při vkládání či mazání záznamůje nutno aktualizovat všechny nadřazené úrovně indexů Přístup k datům 15 Aktualizace indexů Mazánízáznamů Pokud mazaný záznam je jediný záznam s danou hodnotou prohledávacího klíče, pak je nutno smazat i příslušnou indexní položku Výmaz při jednoúrovňových indexech: Husté indexy analogické výmazu datového záznamu Řídké indexy jestliže hodnota prohledávacího klíče mazaného záznamu v řídkém indexu je, dojde k vymazání náhradou této hodnoty další hodnotou klíče jestliže dalšíhodnota prohledávacího klíče jižv řídkém indexu existuje, pak místo náhrady jen klíč vymaž Vloženízáznamu Jednoúrovňové indexy: Pomocí stávajícího indexu najdi, kam má vkládaný záznam přijít Hustéindexy není-li vkládanáhodnota prohledávacího klíče v indexu, vlož ji Řídké indexy(případ, kdy index odkazuje první záznam v alok. bloku) je-li v indexu položka pro blok, kam se nový záznam umístí, nenínutnážádná úprava, pokud se nevytváří další blok je-li nutno vytvořit dalšíblok, pak prvníhodnota v novém bloku se musívložit do indexu Rušenía vkládánízáznamůpři víceúrovňových indexech je rekurzívním zobecněním jednoúrovňových operací Přístup k datům 16

5 Sekundární indexy Často chceme nalézt všechny záznamy, jejichžhodnota určitého atributu (ne nutněprimárního klíče) splňujedanou podmínku Příklad 1: V relaci accountuloženésekvenčněpodle čísla účtu chceme najít všechny účty v dané pobočce Příklad 2: stejnějako v předešle, avšak navíc chceme najít jen účty s určitým konkrétním zůstatkem či dokonce se zůstatkem v zadaném rozmezí Můžeme budovat sekundárníindexy s položkami pro jiné než primární klíče Sekundárníindexy musíbýt husté(proč?) Indexní záznam ukazuje na skupinu obsahující reference na všechny záznamy s určitou hodnotou sekundárního prohledávacího klíče Primárnía sekundárníindexy vlastnosti Indexy přinášejíjasnévýhody při hledánízáznamůpodle hodnot prohledávacích klíčů Avšak: Aktualizace indexůpůsobírežijnínáklady při aktualizaci databází jakmile je změněn obsah datového souboru, musíbýt modifikovány všechny indexy přidružené k těmto datům Sekvenčníprohlíženípodle primárního indexu je velmi efektivní, ale prohlíženídle sekundárního indexu je mnohem nákladnější každý přístup k záznamu může znamenat nahránínového alokačního bloku souboru z disku nahrání bloku potřebuje řádově milisekundy oproti řádově ns při přístupu do hlavnípaměti Přístup k datům 17 Přístup k datům 18 Indexní soubory s B+ stromy Indexy s B+ stromyjsou alternativou k index-sekvenčním souborům Nevýhody index-sekvenčních souborů Jak soubory rostou, degraduje se jejich účinnost přílišmnoho bloků přeplnění => nutnost periodické reorganizace souborů Výhoda indexůs B+ stromy Automatickáreorganizace při malých, lokálních, změnách způsobených vkládáním a rušením jednotlivých záznamů Reorganizace celého souboru za účelem zachovánívýkonnosti není nutná (Menší) nevýhoda B+ stromů vyšší režie při vkládání a rušení záznamů větší paměťové(prostorové) nároky Výhody výrazně převyšují nevýhody B + -stromy se používajívelmi často Indexy s B+stromy B+ strom je stromová datová struktura reprezentující uspořádaná data a respektující existenci bloků dat Umožňuje efektivní vyvolávání, vkládání a rušení záznamů identifikovaných klíčem Jde o dynamický víceúrovňový stromověorganizovaný index, přičemž existují omezení na maximální a minimální počet klíčů v každém uzlu stromu B+ strom má následující vlastnosti Všechny cesty od kořene k listu stromu jsou stejnědlouhé Každý vnitřníuzel stromu mámezi n/2 a nnásledníky, kde n se nazývá řád stromu(též faktor větvení) nzávisína velikosti klíče a velikosti alokačního bloku souboru; n 100 List stromu obsahuje (n 1)/2 až n 1 hodnot klíčů Výjimky: K3 K5 Pokud kořen nenílistem, máaspoň2 následníky Je-li kořen zároveň listem (tj., strom nemá vnitřníuzly), může obsahovat 0 až(n 1) hodnot B+ strom při n=3 K1 K2 K3 K4 K5 K6 K7 Přístup k datům 19 d 1 d 2 d 3 d 4 d 5 d 6 d 7 Přístup k datům 20

6 Struktura uzlů B+ stromu Typický uzel stromu P 1 K 1 P 2 K 2 P n-1 K n-1 P n K i jsou hodnoty prohledávacího klíče P i jsou odkazy (ukazatele) na následníky (pro nelistovéuzly) nebo odkazy na datové záznamy (či jejich skupiny) pro listy Klíče v uzlu jsou uspořádány K 1 < K 2 < K 3 <...< K n 1 Nelistovéuzly tvořívíceúrovňový řídký index listových uzlů. Pro nelistovéuzly s modkazy platí, že podstrom odkazovaný P 1 obsahuje klíče s hodnotou K 1, pro 2 i n 1 platí, že podstromy odkazované P i majíklíče s hodnotami λ,kde K i 1 λ< K i, a uzel referencovaný P n obsahuje hodnoty > K n 1 Pro listy platí Pro i= 1, 2,..., n 1, ukazatel P i buďodkazuje přímo datový záznam s klíčem K i, nebo odkazuje skupinu dalších ukazatelůna více datových záznamůs klíčem K i. Druhý případ je nutný, pokud nejde o primárníklíč, kdy v datech je více záznamů se stejným prohledávacím klíčem V listech L i a L j při i < jplatí, klíče v L i jsou menšínežklíče v L j P n ukazuje na následujícílist To umožňuje uspořádané výpisy bez procházení stromu Přístup k datům 21 Příklad B+ stromu pro primární index A-102 A-249 Datové záznamy B+ strom pro soubor s relací account s primárním klíčem account_id při n = 3 Přístup k datům 22 Příklad B+ stromu pro neprimární index B+ strom pro soubor s relací account s neprimárním klíčem account_city při n = 3 Skupiny ukazatelů pro neprimární index. Bude nutná realizace záznamy proměnné délky! Poznatky o B+ stromech Protože vazby mezi uzly jsou realizovány ukazateli, logicky blízké bloky nemusí být blízké fyzicky oddělení logiky od implementace může ale snížit efektivitu Nelistové uzly tvoří hierarchii řídkých indexů B+ stromy jsou poměrně"mělké" majímalý počet úrovnía od kořene k listu vede krátkácesta V úrovni pod kořenem je minimálně2* n/2 hodnot klíčů Dalšíúroveňobsahuje aspoň2* n/2 * n/2 hodnot... atd. Je-liv datovém souboru Khodnot prohledávacího klíče, pak hloubka stromu nenívětšínež log n/2 (K) pro K= a n=100 je hloubka maximálně log 50 ( ) = 4 Vkládánía výmazy záznamůz datového souboru jsou relativněrychléa mohou být prováděny v logaritmickém čase Přístup k datům 23 Přístup k datům 24

7 Prohledávání B+ stromů Najdi všechny záznamy s hodnotou klíče = k 1. Node root 2. repeat 1. Hledej v Nodenejmenšíklíč K i > k 2. Pokud takováhodnota v Nodeexistuje Node P i [krok ve stromu dolů] 3. Jinak k K n 1 a pak Node P n [krok ve stromu "vodorovně"] until Node je list stromu 3. Prohledej list stromu 1. Pokud pro nějaké iplatí K i = k, použij ukazatel P i a přejdi na hledaný záznam nebo skupinu záznamů 2. V opačném případě záznam s klíčem k neexistuje Velikost uzlu je obvykle shodná s velikostí bloku souboru typicky 4 KiBa nje obvykle okolo 100 ( 40 bytůna položku) Je-li hodnot klíče 1 milión a n = 100, pak do paměti budou nahrány nejvýše log 50 ( ) = 4 uzly (bloky) a budou prohledány Pokud by byly použity klasickévyváženébinárnístromy, potřebovali bychom binárnístrom s hloubkou 20 a tedy 20 přístupůna disk A každý přístup na disk je v řádu 10 ms Vkládání do B+ stromů Základní algoritmus 1. Najdi list, kam by vkládaný záznam měl patřit 2. Pokud hodnota klíče užv listu existuje 1. jde-li o index k primárnímu klíči => CHYBA 2. přidej záznam do dat a je-li to třeba, přidej ukazatel do skupiny 3. Neexistuje-li hodnota klíče v listu, pak 1. přidej záznam do dat a případně vytvoř skupinu ukazatelů 2. Je-li v listu místo, přidej pár (klíč, ukazatel) 3. Není-li místo, vzniká problém: Uzel je třeba rozdělit na dva Rozdělení listového uzlu Vezmi n párů(klíč, ukazatel), včetně nově vkládaného, a setřiď je. Prvních n/2 vloždo původního uzlu a zbytek umísti do bloku tvořícího nový uzel Nechťukazatel na nový uzel je pa kje nejmenšíklíčv novém uzlu. Vlož(k, p) do uzlu nadřazeného rozdělovanému listu Je-li nadřazený uzel plný, je nutno propagovat rozdělování směrem ke kořeni, dokud nenínalezen uzel, v němžje volno V nejhorším případěje nutno rozdělit kořenový uzel a zvětšit hloubku stromu o 1 Přístup k datům 25 Přístup k datům 26 Úprava B+-stromu: příklad vložení B+ strom před a po vloženízáznamu s klíčem A-118 Výmazy z B+-stromů Najdi rušený záznam Vymažho z datového souboru a popř. ze skupiny ukazatelů Jestliže skupina ukazatelůje prázdná(nebo vůbec neexistuje), odstraň pár (klíč, ukazatel) z listového uzlu Má-li list po odstraněnípáru přílišmálo položek a jeho "horizontální" soused jich takénemádostatek, je nutno spojit dva "horizontálně" sousední uzly v jeden: Vložpáry z obou uzlůdo prvního a zrušdruhý uzel Vymažpár (K i 1, P i ),kde P i je ukazatel na smazaný uzel v nadřazeném uzlu; rekurzívně aplikuj tuto proceduru směrem ke kořeni Má-li list po odstraněnípáru přílišmálo položek a jeho "horizontální" soused jich mádost, pak přerozděl položky v sousedních uzlech Přerozděl položky tak, aby oba uzly měly přibližně stejně položek Aktualizuj odpovídající klíč v nadřazeném uzlu Rušeníuzlůmůže kaskádněpropagovat, dokud nenínalezen uzel mající aspoň n/2 položek V krajním případěse zlikviduje celý strom a zbude samotný kořen neobsahující žádnou položku (prázdný index) Přístup k datům 27 Přístup k datům 28

8 Úprava B + -stromu: příklad výmazu B+-strom před a po zrušení záznamu s klíčem A-357 Indexy s B-stromy B-stromy jsou podobné B+-stromům, avšak hodnoty klíčů se neopakují eliminace redundantního ukládání klíčů Hodnoty klíče, kterése nacházejív nelistových uzlech, užse nevyskytují nikde níže v podstromech V nelistových uzlech je však nutno přidat další ukazatele Výhody B-stromových indexů: Mohou potřebovat méně uzlů než odpovídající B+-strom Občas lze najít záznam bez nutnosti projít aždo listu Nevýhody B-stromových indexů: Položky nelistových uzlů jsou větší, takže uzel má méně následníků, což může způsobit nutnost větší hloubky stromu Aktualizace při vkládánía mazánízáznamůjsou komplikovanější než u B+-stromů Typicky, výhody B-stromů nepřevažují nad nevýhodami Přístup k datům 29 Přístup k datům 30 Příklad indexu s B-stromem Bromfield Palo Alto B-strom pro soubor s relací account (n=3) Přístup k datům 31 Přístup přes několik klíčů Příklad: select account_number from account where branch_name = Benešov and balance = 1000 Možné strategie s použitím klíčů dle jednotlivých atributů 1. Použij index pro branch_namea najdi záznamy pro "Benešov"; pak testuj na balance = Použij index pro balance k nalezení účtů se zůstatkem 1000; pak testuj branch_name = "Benešov". 3. Použij index pro branch_name k nalezeníukazatelůna záznamy z benešovsképobočky. Podobněpoužij index pro balance. Závěrem urči průnik obou množin získaných ukazatelů Indexy podle vícenásobných klíčů Složenéprohledávacíklíčejsou klíče tvořenévíce nežjedním atributem Např. (branch_name, balance) U složených klíčů je problém s porovnáváním a řazením Nejčastějšíje lexikografickéřazení: (a 1, a 2 ) < (b 1, b 2 ), pokud a 1 < b 1, nebo a 1 = b 1 a a 2 < b 2 Přístup k datům 32

9 Hašování Statické hašování Sekce(bucket= kýbl, koreček)je paměťovájednotka obsahující jeden či několik záznamů typicky je to jeden alokačníblok diskového souboru Při hašovanéorganizaci souboruzískáme číslo sekce obsahující záznam s daným klíčem přímo jako funkční hodnotu hašovací funkce Hašovacífunkce hje funkcínad množinou hodnot prohledávacího klíče B = h(k), kde kje hodnota klíče a Bje adresa (číslo) sekce Hašovacífunkce se užívák lokalizaci záznamůpři vyvolávání, vkládání i mazání záznamů Záznamy s různými klíči mohou být hašovací funkcí mapovány do téže sekce, kteráse pak musíprohledávat sekvenčně Přístup k datům 33 Přístup k datům 34 Příklad hašované organizace souboru Soubor account s klíčem branch_name Máme10 sekcí Binární reprezentace znaku je chápána jako celé číslo Hašovací funkce vrací jako svoji funkční hodnotu součet binárních reprezentací znaků modulo 10 Např. h(perryridge) = 5 h(roundhill) = 3 h(brighton) = 3 Hašovací funkce Nejhoršíhašovacífunkce mapuje všechny hodnoty klíče do téže sekce nemá žádný přínos vše se prohledává sekvenčně Ideální hašovací funkce rozděluje klíče rovnoměrně Všem sekcím je přiřazen stejný počet záznamůpro všechny možné hodnoty klíče Ideální hašovací funkce by měla být náhodná, protože každá sekce máobsahovat přibližněstejný počet záznamůbez ohledu na aktuální rozložení hodnot klíče v souboru Náhodnáfunkce je však nereprodukovatelnáa tedy nepoužitelná Typické hašovací funkce počítají s vnitřní binární reprezentací klíčů Viz předchozí příklad Přístup k datům 35 Přístup k datům 36

10 Přeplnění sekcí Přeplnění sekcí vzniká kvůli nedostatečnému počtu sekcí nerovnoměrnosti v distribuci záznamů. To má dva důvody: více záznamů má stejné hodnoty klíče zvolená hašovací funkce nerovnoměrně mapuje klíče Přeplnění sekcí lze redukovat, nikoliv eliminovat Řeší se pomocí sekcí přeplnění Je-li zapotřebí více sekcí, Sekce sekce přeplnění dané hlavní 0 sekce jsou zřetězeny Sekce 1 Sekce 2 Sekce přeplněnísekce 1 Nedostatky statického hašování Statickáhašovacífunkce hmapuje hodnoty klíče do pevnémnožiny čísel (adres) sekcí. Databáze v čase rostou nebo se zmenšují Kdyžje na počátku zvolen malý počet sekcía soubor roste, účinnost rychle klesne kvůli velkému množství přeplnění Je-li alokován velký prostor s ohledem na očekávaný růst, mrhá se kapacitou paměti a sekce jsou nevyužité Když se databáze zmenší, opět se bude plýtvat prostorem Potenciálnělze čas od času soubor reorganizovat za použití jiné hašovací funkce Nákladné a narušuje normální operace s databází po dobu reorganizace nelze k datům přistupovat Lepšířešení: počet sekcíse bude měnit dynamicky podle potřeby Sekce 3 Přístup k datům 37 Přístup k datům 38 Dynamické hašování Vhodnépro databázovésoubory, jejichžvelikost se výrazně mění Umožňuje dynamickou modifikaci hašovací funkce Rozšiřitelné(extendible)hašování jedna z forem dynamického hašování Hašovacífunkce generuje hodnoty ve velkém rozsahu typicky b-bitová celá čísla (uvažujme b = 32) Pouze několik bitůzleva (prefix) se používájako index do tabulky s čísly (adresami) sekcí Nechťdélka prefixu je ibitů, 0 i 32. Tabulka adres sekcímádélku = 2 i. Na počátku i= 0 Hodnota i roste a klesá podle velikosti databázového souboru Několik položek v tabulce adres může ukazovat na tutéž sekci Tudížskutečný počet sekcíje < 2 i Počet sekcí se též dynamicky mění v důsledku spojování či rozdělování sekcí Obecná struktura rozšiřitelného hašování hašovací prefix i tabulka adres sekcí i 1 i 2 i 3 sekce 1 sekce 2 sekce 3 j-tápoložka tabulky adres sekcíobsahuje hodnotu i j Všechny položky tabulky ukazující na tutéž sekci mají shodných prvních i j bitů K nalezenísekce obsahujícízáznam s daným klíčem K j je třeba Určit X= h(k j ) a použít prvních ibitů Xjako index do tabulky adres sekcí a následovat ukazatel na příslušnou sekci Přístup k datům 39 Přístup k datům 40

11 Užití rozšiřitelného hašování vkládání Při vkládánízáznamu s klíčem K j Najdi sekci j, kam mázáznam přijít Je-li tam místo, vložzáznam; jinak sekce musíbýt rozdělena a vložení se opakuje Rozdělenísekce jpři vkládánízáznamu s klíčem K j : Pokud i> i j (více nežjeden ukazatel na sekci j) alokuj novou sekci za nastav i j = i z = (i j + 1) Aktualizuj druhou část položky v tabulce adres sekcí, původně ukazující na jtak, aby ukazovala na z vyjmi záznamy ze sekce j a vložje zpět (do jnebo z) urči znovu adresu sekce pro K j a vložzáznam Když i = i j (jen jeden ukazatel na sekci j) Inkrementuj i a zdvojnásob velikost tabulky adres sekcí Nahraď každou položku v tabulce dvěma položkami ukazujícími na tutéž sekci Nyní i > i j, takže se užije předchozípřístup Rozšiřitelné hašování jednoduchý příklad Kapacita sekce = 1 záznam Prvnídva záznamy s klíči k 1 a k 2 h(k1 ) = h(k 2 ) = Třetízáznam s k 3 dává h(k 3 ) = Záznam4 s k 4 má h(k 4 ) = , cožzpůsobí, že se sekce A přeplní a musí být rozdělena na A a D. Pokus o znovu-vložení záznamu s k 4 do D způsobíopět přeplněnía D se dále dělína D a E za současného přidánídalšího bitu k prefixu délka prefixu= 1 délka prefixu = 2 tabulka adres sekcí délka prefixu = sekcea sklíčem k 2 sekceb s klíčemk 1 sekce A s klíčem k 2 sekce B s klíčem k 1 sekce C s klíčem k 3 sekce A bez klíče sekce B s klíčem k 1 sekce C s klíčem k 3 sekce D s klíčem k 2 sekce E s klíčem k 4 sekce A může být zrušena Přístup k datům 41 Přístup k datům 42 Užití rozšiřitelného hašování výmaz Výmaz záznamu s daným klíčem najdi záznam v sekci a vymažho Je-li sekce prázdná, zrušji (za současnéaktualizace tabulky adres) Sekce mohou být spojeny v jednu Lze spojit jen sekce majícístejné i j asoučasněexistuje prefix i j 1 Lze též zmenšit tabulku adres sekcí Je to ale náročnáa draháoperace a másmysl ji dělat jen kdyžse počet sekcívýraznězmenšíanebo narážíme na problémy s kapacitou paměťového média Porovnání indexace a hašování Jednoznačnévýhody nejsou u žádného ze způsobů. Vše závisína ceně periodické reorganizace souborů a indexů relativní frekvenci vkládání a rušení záznamů Je důležitéoptimalizovat průměrnou dobu přístupu i za cenu podstatného prodloužení přístupové doby v nejhorším případě? Očekávané typy dotazů: Hašováníje obecnělepšípři vyvolávánízáznamůs přesnou hodnotou klíče Jsou-li častédotazy na interval hodnot klíče, pak indexace je výhodnější Praxe: PostgreSQL podporuje hašované indexy, avšak jejich použití se nedoporučuje kvůli špatné efektivitě Oracle podporuje statické hašování, ale ne hašované indexy Microsoft SQLServer podporuje jen B+ stromy... Přístup k datům 43 Přístup k datům 44

12 Dotazy Přístup k datům 45

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

Kapitola 11: Indexování a hešování. Základní představa - 11.1 - Kapitola 11: Indexování a hešování Základní představa Řazené indexy (ordered indices) B+-strom indexový soubor B-strom indexový soubor Hešování Porovnání řazených indexů a hešování Definice indexů

Více

Téma 10 Přístup k datům

Téma 10 Přístup k datům 1 Téma 10 Přístup k datům Obsah 1. Dokončení SQL dotazů 2. Organizace ukládání dat Záznamy pevné a proměnné délky Sekvenční organizace souborů Organizace "multi-table clustering" 3. Indexování Podstata

Více

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

6. Fyzická (interní) úroveň databázového systému 6. Fyzická (interní) úroveň databázového systému 6.1. Struktura databázového systému... 2 6.2. Přístup k datům v databázi... 3 6.3. Struktura souborů... 4 6.4. Správa vyrovnávací paměti... 8 6.5. Podstata

Více

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

6. Fyzická (interní) úroveň databázového systému 6. Fyzická (interní) úroveň databázového systému 6.1. Struktura databázového systému... 2 6.2. Přístup k datům v databázi... 3 6.3. Struktura souborů... 4 6.4. Správa vyrovnávací paměti... 8 6.5. Podstata

Více

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

TÉMATICKÝ OKRUH Počítače, sítě a operační systémy TÉMATICKÝ OKRUH Počítače, sítě a operační systémy Číslo otázky : 12. Otázka : Metody fyzické organizace dat Obsah : 1.Úvod 2.Vnější paměti 3.Sekvenční soubory 3.1 Setříděné sekvenční soubory 4.Zřetězené

Více

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

1. Databázové systémy (MP leden 2010) 1. Databázové systémy (MP leden 2010) Fyzickáimplementace zadáníaněkterářešení 1 1.Zkolikaajakýchčástíseskládáčasprovstupněvýstupníoperaci? Ze tří částí: Seektime ječas,nežsehlavadiskudostanenadsprávnou

Více

Definice. B-stromu. B-strom řádu m je strom, kde každý uzel má maximálně m následníků a ve kterém platí:

Definice. B-stromu. B-strom řádu m je strom, kde každý uzel má maximálně m následníků a ve kterém platí: B-Strom Definice B-stromu B-strom řádu m je strom, kde každý uzel má maximálně m následníků a ve kterém platí: 1. Počet klíčů v každém vnitřním uzlu, je o jednu menší než je počet následníků (synů) 2.

Více

Standardní algoritmy vyhledávací.

Standardní algoritmy vyhledávací. Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární

Více

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy

Více

Stromové struktury v relační databázi

Stromové struktury v relační databázi Stromové struktury v relační databázi Stromové struktury a relační databáze Zboží Procesory Paměti Intel AMD DDR DIMM Pentium IV Celeron Duron Athlon http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-databazich/

Více

Vyhodnocování dotazů slajdy k přednášce NDBI001. Jaroslav Pokorný MFF UK, Praha

Vyhodnocování dotazů slajdy k přednášce NDBI001. Jaroslav Pokorný MFF UK, Praha Vyhodnocování dotazů slajdy k přednášce NDBI001 Jaroslav Pokorný MFF UK, Praha pokorny@ksi.mff.cuni.cz Časová a prostorová složitost Jako dlouho trvá dotaz? CPU (cena je malá; snižuje se; těžko odhadnutelná)

Více

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

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce) 13. Metody vyhledávání. Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce). Asociativní vyhledávání (sekvenční, binárním půlením, interpolační, binární vyhledávací

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu

Více

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

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

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

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Stromové struktury v relační databázi

Stromové struktury v relační databázi Stromové struktury v relační databázi Stromové struktury a relační databáze Zboží Procesory Intel Pentium IV Celeron Paměti AMD Duron DDR DIMM Athlon http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-databazich/

Více

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

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky

Více

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

Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 1. Vymezení pojmů Strom: Strom je takové uspořádání prvků - vrcholů, ve kterém lze rozeznat předchůdce - rodiče a následovníky - syny.

Více

04 - Databázové systémy

04 - Databázové systémy 04 - Databázové systémy Základní pojmy, principy, architektury Databáze (DB) je uspořádaná množina dat, se kterými můžeme dále pracovat. Správa databáze je realizována prostřednictvím Systému pro správu

Více

vyhledávací stromové struktury

vyhledávací stromové struktury vyhledávací algoritmy Brute Force Binary Search Interpolation Search indexové soubory Dense index, Sparse index transformační funkce Perfect Hash, Close Hash Table, Open Hash Table vyhledávací stromové

Více

SQL tříhodnotová logika

SQL tříhodnotová logika SQL tříhodnotová logika Jmeno Prijmeni Student Jaroslav Novák true Josef Novotný false Jiří Brabenec SELECT * FROM OSOBA WHERE Student!= true Jaký bude výsledek? SQL tříhodnotová logika Jmeno Prijmeni

Více

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

Složitosti základních operací B + stromu Složitosti základních operací B + stromu Radim Bača VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky ŠKOMAM 2010-1- 28/1/2010 Složitosti základních operací B +

Více

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

autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury) definice ( tree) autoři: Rudolf Bayer, Ed McCreight vyvážený strom řádu m ( ) každý uzel nejméně a nejvýše m potomků s výjimkou kořene každý vnitřní uzel obsahuje o méně klíčů než je počet potomků (ukazatelů)

Více

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

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky 25 Pole Datová struktura kolekce elementů (hodnot či proměnných), identifikovaných jedním nebo více indexy, ze kterých

Více

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

Algoritmizace Hashing II. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Hashing II Jiří Vyskočil, Marko Genyg-Berezovskyj 010 Srůstající hashování (coalesced hashing) Znám předem počet prvků (odhad) Z důvodů efektivity nechci ukazatele (mezi prvky). Na jednu pozici tabulky

Více

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

George J. Klir Vilem Vychodil (Palacky University, Olomouc) State University of New York (SUNY) Binghamton, New York 13902, USA 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,

Více

Dynamické datové struktury IV.

Dynamické datové struktury IV. Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra

Více

Organizace a zpracování dat I

Organizace a zpracování dat I DBI007 Organizace a zpracování dat I Index-sekvenční a indexovaný soubor 4. přednáška RNDr. Michal Žemlička, Ph.D. Index-sekvenční soubor Přístup k záznamům je možný jak sekvenčně, tak i přímo Části: primární

Více

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

PA152. Implementace databázových systémů PA152 Implementace databázových systémů RAID level 1 zrcadlení disku výpočet MTTF 2 stejné disky, MTTF 3 roky výměna vadného 3,5 dne výpadek oba disky během 3,5 dne p(výpadku disku za rok) = 1/6 p(výp.

Více

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5 CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................

Více

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

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE

Více

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

Databáze I. 5. přednáška. Helena Palovská Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma

Více

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

Programování v C++, 2. cvičení

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

Více

Databázové systémy Tomáš Skopal

Databázové systémy Tomáš Skopal Databázové systémy Tomáš Skopal fyzická implementace relačních databází Osnova správa disku, stránkování, buffer manager organizace databázových souborů indexování jednoatributové indexy B + -strom, bitové

Více

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Algoritmy výpočetní geometrie

Algoritmy výpočetní geometrie Algoritmy výpočetní geometrie prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)

Více

Dynamické datové struktury III.

Dynamické datové struktury III. Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované

Více

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10

Více

OZD. 2. ledna 2013. Logický (Objekty, atributy,...) objekty stejného typu.

OZD. 2. ledna 2013. Logický (Objekty, atributy,...) objekty stejného typu. OZD 2. ledna 2013 1 Paměti Hierarchie: Registry Cache (nejsou viditelné) Primární pamět (RAM) Pamět druhé úrovně (Disky, trvalá úložiště), pomalá Pamět třetí úrovně (CD, pásky) 1.1 Paměti druhé úrovně

Více

Systém souborů (file system, FS)

Systém souborů (file system, FS) UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je

Více

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů: Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.

Více

NPRG030 Programování I, 2018/19 1 / :03:07

NPRG030 Programování I, 2018/19 1 / :03:07 NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování

Více

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

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double

Více

Prohledávání do šířky = algoritmus vlny

Prohledávání do šířky = algoritmus vlny Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé

Více

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Prioritní fronta, halda

Prioritní fronta, halda Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje

Více

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í

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í Stromy 2 AVL AVL stromy jména tvůrců stromů: dva Rusové Adelson-Velskii, Landis vyvážené binární 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

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Vyhledávání, vkládání, odstraňování Vyhledání hodnoty v nesetříděném poli Vyhledání hodnoty v setříděném poli Odstranění hodnoty z pole Vkládání hodnoty do pole Verze pro akademický

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Souborové systémy a logická struktura dat (principy, porovnání, příklady).

Souborové systémy a logická struktura dat (principy, porovnání, příklady). $TECH 13 Str. 1/5 Souborové systémy a logická struktura dat (principy, porovnání, příklady). Vymezení základních pojmů Soubor První definice: označuje pojmenovanou posloupnost bytů uloženou na nějakém

Více

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

Pole a kolekce. v C#, Javě a C++ Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java

Více

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

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média - 10.1 - Kapitola 10: Diskové a souborové struktury Přehled fyzických ukládacích médií Magnetické disky RAID (Redundant Array of Inexpensive Disks) Terciární úložiště Přístup k médiu Souborové organizace

Více

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Metody přidělování paměti Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Důležitá hlediska jazykových konstrukcí: Dynamické typy Dynamické

Více

Návrh designu: Radek Mařík

Návrh designu: Radek Mařík Návrh designu: Radek Mařík 1. Hashovací (=rozptylovací) funkce a) převádí adresu daného prvku na jemu příslušný klíč b) vrací pro každý klíč jedinečnou hodnotu c) pro daný klíč vypočte adresu d) vrací

Více

TÉMATICKÝ OKRUH TZD, DIS a TIS

TÉMATICKÝ OKRUH TZD, DIS a TIS TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 13. Otázka : Základní datové struktury (pole, zásobník, binární strom atd.), datové struktury vhodné pro fyzickou implementaci relačních dat v SŘBD (hašovací

Více

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti. Seznamy a stromy Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti. Klíčové pojmy: Seznam, spojový seznam, lineární seznam, strom, list, uzel. Úvod

Více

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný

Více

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2. 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste

Více

Přidělování paměti II Mgr. Josef Horálek

Přidělování paměti II Mgr. Josef Horálek Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování

Více

Systém souborů Mgr. Josef Horálek

Systém souborů Mgr. Josef Horálek Systém souborů Mgr. Josef Horálek Systém souborů = Pro většinu uživatelů je systém souborů nejviditelnější součástí operačního systému = provádí mechanismy pro on-line ukládání a přístup k programům a

Více

Návrh Designu: Radek Mařík

Návrh Designu: Radek Mařík 1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1

Více

B Organizace databáze na fyzické úrovni u serveru Oracle

B Organizace databáze na fyzické úrovni u serveru Oracle B Organizace databáze na fyzické úrovni u serveru Oracle B.1. Základní koncepty... 2 B.2. Možnosti rozšíření prostoru databáze... 9 B.3. Indexování a shlukování... 12 Literatura... 16 J. Zendulka: Databázové

Více

Analýza a modelování dat 6. přednáška. Helena Palovská

Analýza a modelování dat 6. přednáška. Helena Palovská Analýza a modelování dat 6. přednáška Helena Palovská Historie databázových modelů Jak je řešena temporalita? Temporalita v databázích Možnosti pro platnost faktu (valid time): platí nyní, je to aktuální

Více

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost Amortizovaná složitost. Prioritní fronty, haldy binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost 1. Asymptotické odhady Asymptotická složitost je deklarována na základě

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ

Více

TGH07 - Chytré stromové datové struktury

TGH07 - Chytré stromové datové struktury TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 1. dubna 2014 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním

Více

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

Ukládání a vyhledávání XML dat

Ukládání a vyhledávání XML dat XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání

Více

Operátory ROLLUP a CUBE

Operátory ROLLUP a CUBE Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor

Více

Základy umělé inteligence

Základy umělé inteligence Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v

Více

IB111 Úvod do programování skrze Python

IB111 Úvod do programování skrze Python Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově

Více

Principy operačních systémů. Lekce 7: Souborový systém

Principy operačních systémů. Lekce 7: Souborový systém Principy operačních systémů Lekce 7: Souborový systém Souborový systém Souborový systém (anglicky file system) je označení pro způsob organizace dat ve formě souborů (a většinou i adresářů) tak, aby k

Více

Databáze Bc. Veronika Tomsová

Databáze Bc. Veronika Tomsová Databáze Bc. Veronika Tomsová Databázové schéma Mapování konceptuálního modelu do (relačního) databázového schématu. 2/21 Fyzické ik schéma databáze Určuje č jakým způsobem ů jsou data v databázi ukládána

Více

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

Algoritmy II. Otázky k průběžnému testu znalostí Algoritmy II Otázky k průběžnému testu znalostí Revize ze dne 19. února 2018 2 Lineární datové struktury 1 1. Vysvětlete co znamená, že zásobník představuje paměť typu LIFO. 2. Co je to vrchol zásobníku?

Více

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání Select sort: krok 1: výběr klíče z n prvků vyžaduje 1 porovnání krok 2: výběr klíče z 1 prvků vyžaduje 2 porovnání krok 3: výběr klíče z 2 prvků vyžaduje 3 porovnání atd. celkem porovnání Zlepšení = použít

Více

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

Binární vyhledávací stromy pokročilé partie Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald

Více

Kapitola 6: Omezení integrity. Omezení domény

Kapitola 6: Omezení integrity. Omezení domény - 6.1 - Omezení domény Referenční integrita Aserce Spouštěče (Triggers) Funkční závislosti Kapitola 6: Omezení integrity Omezení domény Omezení integrity zabraňují poškození databáze; zajišťují, že autorizované

Více

Vyhledávací stromy. Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání.

Vyhledávací stromy. Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání. Vyhledávací stromy Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání. Vytvářejí se vždy nad již existující datovou strukturou (zpravidla tabulkou). Vyhledávací stromy můžeme rozdělit

Více

Operační systémy. Přednáška 7: Správa paměti I

Operační systémy. Přednáška 7: Správa paměti I Operační systémy Přednáška 7: Správa paměti I 1 Správa paměti (SP) Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který

Více

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

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty.   pary/pa152/ Pavel Rychlý Technické informace PA152 Implementace databázových systémů Pavel Rychlý pary@fi.muni.cz Laboratoř zpracování přirozeného jazyka http://www.fi.muni.cz/nlp/ http://www.fi.muni.cz/ pary/pa152/ přednáška

Více

Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)

Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading) Správa paměti (SP) Operační systémy Přednáška 7: Správa paměti I Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který

Více

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

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

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

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu

Více

Programování v C++ 1, 16. cvičení

Programování v C++ 1, 16. cvičení Programování v C++ 1, 16. cvičení binární vyhledávací strom 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené

Více

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

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)

Více

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1 8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11

Více

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

Stromy. Jan Hnilica Počítačové modelování 14 Stromy Jan Hnilica Počítačové modelování 14 1 Základní pojmy strom = dynamická datová struktura, složená z vrcholů (uzlů, prvků) propojených hranami hrany chápeme jako orientované, tzn. vedou z uzlu A

Více

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, dfs, fronta, zásobník, prioritní fronta, halda bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 20. září 2016 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší

Více

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087 Databázové a informační systémy Informační systém prodejny nábytku Jakub Kamrla, KAM087 1. část Funkční a nefunkční požadavky 1. K čemu má systém sloužit Jedná se o informační systém pro jednu nejmenovanou

Více

Maturitní téma: Programovací jazyk JAVA

Maturitní téma: Programovací jazyk JAVA Maturitní téma: Programovací jazyk JAVA Insert Sort (třídění vkládáním) 1. Jako setříděnou část označíme první prvek pole. Jako nesetříděnou část označíme zbytek pole. 2. Vezmeme první (libovolný) prvek

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Třídění, vyhledávání Daniela Szturcová

Více

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace Programování: základní konstrukce, příklady, aplikace IB111 Programování a algoritmizace 2011 Připomenutí z minule, ze cvičení proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady:

Více

Časová a prostorová složitost algoritmů

Časová a prostorová složitost algoritmů .. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová

Více

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu 8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11

Více