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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ADT STROM Lukáš Foldýna

ADT STROM Lukáš Foldýna ADT STROM Lukáš Foldýna 26. 05. 2006 Stromy mají široké uplatnění jako datové struktury pro různé algoritmy. Jsou to matematické abstrakce množin, kterou v běžném životě používáme velice často. Příkladem

Více

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

Vyvažování a rotace v BVS, všude se předpokládá AVL strom Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce

Více

Paměťový podsystém počítače

Paměťový podsystém počítače Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...

Více

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul

Více

ABSTRAKTNÍ DATOVÉ TYPY

ABSTRAKTNÍ DATOVÉ TYPY Jurdič Radim ABSTRAKTNÍ DATOVÉ TYPY Veškeré hodnoty, s nimiž v programech pracujeme, můžeme rozdělit do několika skupin zvaných datové typy. Každý datový typ představuje množinu hodnot, nad kterými můžeme

Více

TEORIE ZPRACOVÁNÍ DAT

TEORIE ZPRACOVÁNÍ DAT Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky TEORIE ZPRACOVÁNÍ DAT pro kombinované a distanční studium Jana Šarmanová Ostrava 2003 Jana Šarmanová, 2003 Fakulta

Více

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

Lineární datové struktury

Lineární datové struktury Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Lineární datové

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází 1 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Požadavky kreditového systému. Relační datový model, relace, atributy,

Více

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Jiří Dvorský 2 května 2006 Obecné pokyny Celkem je k dispozici 8 zadání příkladů Každý student obdrží jedno zadání Vzhledem k tomu, že odpadly

Více

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

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

Více

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat)

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 62 Databáze a systémy pro uchování

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

5. Vyhledávání a řazení 1

5. Vyhledávání a řazení 1 Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 5 1 Základy algoritmizace 5. Vyhledávání a řazení 1 doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Více

Fyzické uložení dat a indexy

Fyzické uložení dat a indexy Fyzické uložení dat a indexy Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/

Více

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2 Přednáška 2 Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. 1 Systém souborů (FS) I 2 Systém souborů II Logický systém souborů pro běžného uživatele se jeví jako jediná homogenní struktura

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Optimalizace & soft omezení: algoritmy

Optimalizace & soft omezení: algoritmy Optimalizace & soft omezení: algoritmy Soft propagace Klasická propagace: eliminace nekonzistentních hodnot z domén proměnných Soft propagace: propagace preferencí (cen) nad k-ticemi hodnot proměnných

Více

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

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 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 Umíme z minulé hodiny Implementace zásobníku a fronty pomocí

Více

POKROČILÉ POUŽITÍ DATABÁZÍ

POKROČILÉ POUŽITÍ DATABÁZÍ POKROČILÉ POUŽITÍ DATABÁZÍ Barbora Tesařová Cíle kurzu Po ukončení tohoto kurzu budete schopni pochopit podstatu koncepce databází, navrhnout relační databázi s využitím pokročilých metod, navrhovat a

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

Paměti a jejich organizace

Paměti a jejich organizace Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

12 Metody snižování barevného prostoru

12 Metody snižování barevného prostoru 12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom 8 Podklady ředmětu ro akademický rok 2013/2014 Radim Farana Obsah 2 Dynamické datové struktury. Strom. Binární stromy. Vyhledávací stromy. Vyvážené stromy. AVL stromy. Strom 3 Název z analogie se stromy.

Více

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

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů. Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové

Více

4. Databázové systémy

4. Databázové systémy 4. Databázové systémy Osnova 1. 2. 3. 4. Základní pojmy, principy, architektury Ukládání a reprezentace dat, zpracování dotazu, transakce, indexování, hašování, datové modelování Metadata Datové sklady

Více

Algoritmy I, složitost

Algoritmy I, složitost A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??

Více

Dolování asociačních pravidel

Dolování asociačních pravidel Dolování asociačních pravidel Miloš Trávníček UIFS FIT VUT v Brně Obsah přednášky 1. Proces získávání znalostí 2. Asociační pravidla 3. Dolování asociačních pravidel 4. Algoritmy pro dolování asociačních

Více

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky. Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky. Projekt ESF OP VK reg.č. CZ.1.07/2.2.00/28.0209 Elektronické opory a e-learning pro obory výpočtového

Více

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach vlož do fronty kořen opakuj, dokud není fronta prázdná 1. vyber uzel z fronty a zpracuj jej 2. vlož do fronty levého následníka

Více

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky Pokročilé heuristiky jednoduchá heuristika asymetrické stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy pokročilá heuristika symetrické stavový prostor, který vyžaduje řízení 1 2 Paměť pouze

Více

Úvod do databázových systémů. Ing. Jan Šudřich

Úvod do databázových systémů. Ing. Jan Šudřich Ing. Jan Šudřich jan.sudrich@mail.vsfs.cz 1. Cíl předmětu: Úvod do databázových systémů Poskytnutí informací o vývoji databázových systémů Seznámení s nejčastějšími databázovými systémy Vysvětlení používaných

Více

DATABÁZE MS ACCESS 2010

DATABÁZE MS ACCESS 2010 DATABÁZE MS ACCESS 2010 KAPITOLA 5 PRAKTICKÁ ČÁST TABULKY POPIS PROSTŘEDÍ Spuštění MS Access nadefinovat název databáze a cestu k uložení databáze POPIS PROSTŘEDÍ Nahoře záložky: Soubor (k uložení souboru,

Více

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace - 3.1 - Struktura relačních databází Relační algebra n-ticový relační kalkul Doménový relační kalkul Rozšířené operace relační algebry Modifikace databáze Pohledy Kapitola 3: Relační model Základní struktura

Více

Microsoft Office. Excel vyhledávací funkce

Microsoft Office. Excel vyhledávací funkce Microsoft Office Excel vyhledávací funkce Karel Dvořák 2011 Vyhledávání v tabulkách Vzhledem ke skutečnosti, že Excel je na mnoha pracovištích používán i jako nástroj pro správu jednoduchých databází,

Více

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

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody 37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody Využití databázových indexů Databázové indexy slouží ke zrychlení přístupu k datům a měly by se používat

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČNÍ DATABÁZOVÉ SYSTÉMY RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení

Více

24 Uživatelské výběry

24 Uživatelské výběry 24 Uživatelské výběry Uživatelský modul Uživatelské výběry slouží k vytváření, správě a následnému používání tématicky seskupených osob a organizací včetně jejich kontaktních údajů. Modul umožňuje hromadnou

Více

Databázové systémy. Cvičení 6: SQL

Databázové systémy. Cvičení 6: SQL Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi

Více

11. Tabu prohledávání

11. Tabu prohledávání Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více