Vyhodnocování dotazů slajdy k přednášce NDBI001. Jaroslav Pokorný MFF UK, Praha
|
|
- Pavel Kříž
- před 8 lety
- Počet zobrazení:
Transkript
1 Vyhodnocování dotazů slajdy k přednášce NDBI001 Jaroslav Pokorný MFF UK, Praha pokorny@ksi.mff.cuni.cz
2 Časová a prostorová složitost Jako dlouho trvá dotaz? CPU (cena je malá; snižuje se; těžko odhadnutelná) Disk (hlavní složka ceny, # I/O operací) Kolik n-tic je třeba přenést? Jaké statistiky je třeba udržovat? Dotazovací jazyky 2
3 Statistiky Statistiky pro každou relaci: n R V(A,R) p R b R M l(a,r) Značení: buffer R počet n-tic relace R počet prvků R[A] počet stránek k uložení R blokovací faktor počet stránek volného prostoru v RAM počet úrovní indexového souboru pro A v R celistvý počet stránek pro R v RAM (neuvažujeme caching) #1 #2 #3 b R #n R Dotazovací jazyky 3
4 Indexace B + -stromy: Pro atribut A relace R: f A,R : průměrný počet následníků ve vnitřním uzlu (~50-100) I(A,R): # úrovní indexu (~2-3) ~ log(v(a,r))/log(f A,R ) p R,A : # listových stránek l(a,r) Značení: A místo R.A p R,A Dotazovací jazyky 4
5 Metody pro výpočet selekce select * from R where A = a Případy: A je primární klíč, A je sekundární (alternativní) klíč k A existuje index - obyčejný nebo typu CLUSTER A je hašovaný klíč Předpoklady: rovnoměrné rozložení hodnot A v R[A] n R(A=a) = n R /V(A,R) Dotazovací jazyky 5
6 Metody pro výpočet selekce Sekvenční vyhledávání p R /*nejhorší případ*/ p R /2 /* průměrně, je-li A primární klíč*/ #1 #2 #3 b R #n R Dotazovací jazyky 6
7 Metody pro výpočet selekce Binární vyhledávání, je-li R uspořádaná podle A log 2 (p R ) /*je-li A primární klíč */ log 2 (p R ) + n R(A=a) /b R /*je-li A libovolný atribut */ #1 #2 #3 b R #n R Dotazovací jazyky 7
8 Metody pro výpočet selekce Vyhledávání, existuje-li pro A index l(a) + 1 /*je-li A primární klíč*/ l(a) + n R(A=a) /b R /*je-li index pro A typu CLUSTER*/ l(a) + n R(A=a) /*není-li index pro A typu CLUSTER*/ Vyhledávání, je-li A hašovaný atribut 1 přístup... #1 #2 #3 b R #n R Dotazovací jazyky 8
9 Metody pro výpočet selekce select * from R where A < a Sekvenční vyhledávání p R /* nejhorší případ*/ p R (a min A )/(max A min A ) /*je-li R setříděná dle A*/ Vyhledávání, existuje-li index l(a) + p R /2 /*je-li R setříděná dle A*/ l(a) + p R,A /2 + n R /2 /* je-li index pro A, A je sekundární klíč*/ Dotazovací jazyky 9
10 Příklad Rezervace(č_zák, č_letu, datum, pozn) n Rezervace = b Rezervace = 20 V(č_zák, Rezervace) = 500 V(č_letu, Rezervace) = 50 f č_letu,r = 20 Dotaz: Najdi zákazníky s číslem letu = 77 Dotazovací jazyky 10
11 Příklad Sekvenční hledání: cena dotazu: 500 diskových přístupů Klastrovaný index pro č_letu: cena dotazu = l(č_letu) + n R(č_letu=a) /b R l(a): 50 hodnot f A = 20 l(a)=2 Zdůvodnění: (log(50)/log(20) 2 n R(A=a) = n R /V(A,r) = 10,000/50 = 200 n-tic n R(A=a) /b R = 200/20 = 10 stránek cena dotazu = 2+10= 12 Dotazovací jazyky 11
12 Metody pro výpočet spojení R(K,A,...) N:1 Dva typy implementace: nezávislé relace S(A,...) s ukazateli (Starbrust, Winbase, ) Základní metody: hnízděné cykly (varianty s indexováním, vyhledáváním) setřídění-slévání hašované spojení Předpoklady: spojovací atribut A, p R p S, u varianty s ukazateli R S Pz.: speciální případ - kartézský součin Dotazovací jazyky 12
13 Hnízděné cykly - binárně naivní algoritmus for each r R for each s S if (r,s) then begin u:= r [ ] s; WRITE(u) end po stránkách menší relaci jako vnější! M=3 p R + p R p S čtení (n R n S /V(A,S))/b RS zápisů (zdůvodni!) Vylepšení: - vnitřní relace se čte ušetří se 1 čtení na začátku (konci) Dotazovací jazyky 13
14 Hnízděné cykly - binárně Varianty: M velké, pak rozdělení: M-2, 1, 1 vnější vnitřní výsledek p R + p S p R /(M-2) čtení R ve vnitřní paměti p R + p S čtení s ukazateli, M=3 p R + n R čtení Dotazovací jazyky 14
15 Hnízděné cykly - binárně index na S.A (B + -strom) Předpoklady: R setříděná v R.A, S.A primární p R + l(a,s) + p S,A + V(A,R) S hašovaná dle S.A Předpoklady: R setříděná v R.A, S.A primární čtení p R + V(A,R) čtení se selekcí (pomocí vyhledávání), Př.: SELECT * FROM R,S WHERE R.A=S.A AND R.B=12 Předpoklady: R.B primární klíč (indexovaný), S.A sekundární klíč (klastr. Index, n-tice s S.A=a v jedné stránce) l(a,s) + l(b,r) + 2 čtení Dotazovací jazyky 15
16 Hnízděné cykly - binárně spojovací index SI(A R,A S ) S(A,...) R(A,...) Dotazovací jazyky 16
17 Hnízděné cykly - více relací M = M 1 + M M n < M R i rozděleny na l i podrelací velikostí M i, tj. l i = p i /M i, (1 i n) cenová funkce [Kim84] C = p 1 + [M 2 +(p 2 -M 2 ) p 1 /M 1 ]+...+[M n +(p n -M n ) p 1 /M 1... p n-1 /M n-1 ] problém hledání celočíselných M i, aby C minimální heuristika: (1) Srovnej n relací do cyklů algoritmu tak, že p 1 p 2... p n ; (2) Pro R n alokuj 1 stránku, M - 1 rozděl rovnoměrně; (3) (M - 1)/(n-1) necelé then přiděl větší M i menším relacím; Dotazovací jazyky 17
18 Hnízděné cykly - více relací Struktura základního algoritmu (zde pro tři relace): for j:=1 to L 1 do begin přečti R 1j do buffer M1 ; for k:=1 to L 2 do begin přečti R 2k do buffer M2 ; for s:=1 to L 3 do begin přečti R 3s do buffer M3 ; vytvoř spojení buffer Mi, 1 i 3; zapiš výsledek end end end Dotazovací jazyky 18
19 Hnízděné cykly - více relací Př.: a) p 1 = 7, p 2 = 14, p 3 = 21, M = 11 dělení M = <5, 5, 1> b) p 1... p 5, M = 16 dělení M = <4, 4, 4, 3, 1> Dotazovací jazyky 19
20 Setřídění-slévání Idea: třídění, slévání (dvoufázový algoritmus) Vhodnost: jsou-li R a S setříděné R(...,A,...) min. M = 3, 2.fáze vyžaduje p R + p S čtení potřebuje pomocný prostor pro třídění výsledek je setříděný S(,A,...) Dotazovací jazyky 20
21 Setřídění-slévání M = 3 (s použitím externího třídění) ~ 2p R log(p R ) + 2p S log(p S ) + p R + p S bez zápisu výsledku M p S (dvoufázový algoritmus) (1) Vytvářejí se setříděné běhy velikosti 2M stránek (pomocí prioritní fronty) a ukládají na disk; velikost běhu je 2 p S pro S jich je nejvýše p S /2 p S,pro R také ne více než p S /2 p S celkem nejvýše p S (2) Pro každý běh se alokuje v paměti stránka a souběžně se slévá; 3(p R + p S ) bez zápisu výsledku Dotazovací jazyky 21
22 Princip prioritní fronty buffer I KONTEJNER buffer O 1. Naplní se K a buffer I n-ticemi z R. 2. Z K se vybírají n-tice u takové, že u.a v.a, v ve bufferu O (1) a řadí se ve vzestupném pořadí podle hodnoty A. 3. Uvolněné místo v K se zaplní novou n-ticí ze bufferu I. Je-li bufferu I =, načte se nová stránka R. Je-li buffer O plný, na vnější paměti se prodlouží daný běh. Jestliže žádná n-tice z kontejneru nevyhovuje (1), je současný stav bufferu O poslední stránkou vytvářeného běhu. Tímto způsobem lze vytvořit běhy dlouhé v průměru 2M stránek. Dotazovací jazyky 22
23 Setřídění-slévání varianta s ukazateli R se setřídí podle ukazatelů S se čte pouze jednou, nemusí být setříděna 3p R + p S bez zápisu výsledku Porovnání: p R - p S velké lepší jsou hnízděné cykly p R - p S malé lepší je setřídění-slévání omezující selekce lepší pomocí vyhledávání Dotazovací jazyky 23
24 Hašovaná spojení Vhodnost: nejsou-li dostupné indexy pro R.A a S.A nemusí-li být výsledek setříděn dle A klasické hašování GRACE algoritmus jednoduché hašování rekurzivní rozdělení relací hybridní hašování Dotazovací jazyky 24
25 Spojení klasickým hašováním Předpoklad: R se vejde do M stránek M = p R *F , kde F je koeficient větší než 1 (1) Zahašuj R do vnitřní paměti; (2) Čti S sekvenčně; Hašuj s.a a přímým přístupem najdi r R; (3) if s.a = r.a then begin u:= r * s; WRITE(u) end p R + p S čtení Dotazovací jazyky 25
26 Spojení s rozdělováním relací Předpoklad: R se nevejde do M stránek Idea: R a S se rozdělí na disjunktní podmnožiny tak, že se spojují JEN ty korespondující. Dvoufázový algoritmus: (1) Rozděl R a S; (2) Zahašuj část R (části R) do M-2 stránek; Čti odpovídající část S; Hašuj s.a a přímým přístupem najdi n-tice r R; Generuj výsledek; Dotazovací jazyky 26
27 Příklad: S(A) R(A) K mod 3 R 0 S R 1 S R 2 S R*S Dotazovací jazyky 27
28 GRACE algoritmus školní verze Datové struktury: n-tice R a S, kapsy ukazatelů HR i, HS i, i {0,1,,m-1} hašovací funkce h: dom(a) <0,m-1> Algoritmus: for k:=1 to n R do begin i :=h(r[k].a); HR i := HR i {k} end for k:=1 to n S do begin i :=h(s[k].a); HS i := HS i {k} end for i:=0 to m-1 do begin POM R := ; POM S := ; foreach j HR i do begin r:=r[j]; POM R :=POM R {r} end; foreach j HS i do begin s:=s[j]; POM S :=POM S {s} end; Dotazovací jazyky 28
29 GRACE algoritmus foreach s POM S do /* ve vnitřní paměti */ end begin foreach r POM R do end begin if s.a = r.a then begin u:= r * s; WRITE(u) end end p R + p S + n R + n S vhodnost: když p R /m + p S /m < M čtení Dotazovací jazyky 29
30 GRACE s ukládáním rozdělených relací M (p R *F) (1) Zvol h tak, že R lze rozdělit do m = (p R *F) částí; (2) Čti R a hašuj do (výstupních) buffer i, (0 i m-1); if buffer i je plný then WRITE(buffer i ); (3) Proveď (2) pro S; (4) for i :=0 to m-1 do begin (4.1) Čti R i a hašuj do paměti velikosti (p R *F); (4.2) Čti s S i a hašuj s.a. Existuje-li r R i a s.a = r.a, generuj výsledek. end Dotazovací jazyky 30
31 GRACE s ukládáním rozdělených relací Zdůvodnění 4.1: předpoklad - R i stejné velké p R /m = p R / (p R *F) = (p R /F) R i vyžaduje prostor F (p R /F) = (p R *F) 3(p R + p S ) I/O operací vhodnost: když p R /m + p S /m < M poznámky: S i mohou být libovolně velké. Vyžadují 1 stránku paměti; problém, když V(A,R) je malý; vhodné v situacích, když R(K, ), S(K 1,K, ); nevejde-li se R i resp. S i do M-2 stránek rekurze tj. R i se rozdělí na R i0, R i1,...,r i(k-1) stránek; Dotazovací jazyky 31
32 Jednoduché hašování Předpoklad: p R *F > M-2, A je UNIQUE Idea: speciální případ GRACE, kdy R R 1, R 2 Algoritmus: repeat begin zvol h; Čti R a hašuj r.a; M-2 bufferů tvoří R 1, ostatní n-tice do R 2 na disk; until R 2 ; Čti S a hašuj s.a; if h(s.a) padne do prostoru R 1 then begin if s.a = r.a then generuj výsledek end else ulož s do S 2 na disk; R:=R 2 ; S:= S 2 end Dotazovací jazyky 32
33 Hybridní hašování Idea: kombinace GRACE a jednoduchého hašování, R se dělí na části R 1, R 2,, R k, R 0 tak, že R 0 se vejde do vnitřní paměti. Rozdělení M-2 stránek: buffer i =1 (1 i k), buffer 0 =p R0 Algoritmus: (1) Zvol h; (2) Čti R a hašuj r.a; tvoř R i (0 i k); /*R 0 je v buffer 0 */ (3) Čti S a hašuj s.a; tvoř S i (1 i k); if h(s.a) padne do prostoru S 0 then realizuj spojení; (4) for i:=1 to k do realizuj spojení podle GRACE; Dotazovací jazyky 33
34 Porovnání algoritmů Předpoklady: M > p S pro setřídění-slévání M > p R pro hašování Značení: alg1 >> alg2 alg1 je lepší než alg2 Setříděníslévání GRACE jednoduché hašování GRACE >> >> (pro menší M) jednoduché hašování hybridní hašování >> >> (pro vetší M) >> >> >> hybridní hašování Dotazovací jazyky 34
35 Dělení Df.: R a S se schématy 1 resp. 2 1 T = R -. S = R[ 1-2 ] - ((R[ 1-2 ] S) - R)[ 1-2 ] Př.: R A B S B po setřídění A B Dotazovací jazyky 35 R T A 3
36 Dělení-hašováním Idea: vytvoří se kapsy HS i pro hodnoty z S.B a do nich se ukládají hodnoty z R.A. Hodnoty z HS i přispívají do výsledku. Algoritmus: (prvky hašovací tabulky jsou např. typu array nebo set, reprezentují kapsy) (1) Čti S, spočti h(s.b) a označ prostor (kapsu) HS s.b foreach s.b do HS s.b := ; (2) for j:=1 to n R do begin r:=r[j]; if existuje kapsa pro h(r.b) then HS r.b := HS r.b {r.a} end (3) foreach HS s.b do sort(hs s.b ); /*není nutné*/ (4) Vytvoř HS i a generuj T; Dotazovací jazyky 36
37 Další operace GROUP BY index pro A - přes index se získají skupiny setřídění podle R.A hašováním (jako u dělení) foreach a R[A] do vytvoř kapsu + proměnná pro výpočet agregační funkce; DISTINCT také pomocí hašování Dotazovací jazyky 37
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íce8. 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íce6. 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íceJ. 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íceTest prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
VíceNPRG030 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íceOptimalizace dotazů slajdy k přednášce NDBI001
Optimalizace dotazů slajdy k přednášce NDBI001 Jaroslav Pokorný MFF UK, Praha pokorny@ksi.mff.cuni.cz Kontext v SŘBD Jde o klíčový modul SŘBD cíl: učinit optimalizaci nezávislou na strategii zápisu dotazu
VíceAlgoritmizace 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íceVyhledá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íceOptimalizace dotazů slajdy k přednášce DBI006
Optimalizace dotazů slajdy k přednášce DBI006 Jaroslav Pokorný Kontext v SŘBD Jde o klíčový modul SŘBD cíl: učinit optimalizaci nezávislou na strategii zápisu dotazu protipříklady: navigační jazyky, interprety
VíceStromy, 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Č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íceObecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012
Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18
VíceVyhledá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íceAdresní 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íceKapitola 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íceNá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íceReprezentace 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íceAlgoritmizace 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íceKMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d
KMA/PDB Prostorové spojení Karel Janečka Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d Obsah Prostorové spojení pomocí hnízděných cyklů. Prostorové spojení pomocí R-stromů.
VíceOperá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íceTechnické 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íceZákladní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy 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í
VíceÚvod do programování
Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal
VíceTÉ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íceV každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
VíceA4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.
A4B33ALG 2010/05 ALG 07 Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated Quicksort Stabilita řazení 1 Selection sort Neseřazeno Seřazeno Start T O U B J R M A K D Z E min
VícePrioritní 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íce1. 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íceTGH07 - 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íceIAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {
Vyhledání extrému v poli použito v algoritmech řazení hledání maxima int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) // nikoli 0 if (Pole[i] > max) max = pole[i];
VíceDobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3
DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),
VíceDynamické datové typy a struktury
.. a Programovací techniky doc. Ing. Jiří Rybička Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Programovací techniky a 2 / 18 Uchovávají adresu v paměti Programovací techniky a 2 / 18 Uchovávají
VíceRekurze. Pavel Töpfer, 2017 Programování 1-8 1
Rekurze V programování ve dvou hladinách: - rekurzivní algoritmus (řešení úlohy je definováno pomocí řešení podúloh stejného charakteru) - rekurzivní volání procedury nebo funkce (volá sama sebe přímo
VíceKapitola 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Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C
Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat
VíceDigitální učební materiál
Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_147_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
VíceProgramová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íce2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
VíceBinární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
Více04 - 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íceStromy. 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íceAVL 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íceTGH07 - Chytré stromové datové struktury
TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 5. dubna 2017 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním
VíceSlož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íceInovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat Autor:
VíceSII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:
SII - Informatika Způsob vyhodnocení: Při vyhodnocení budou za nesprávné odpovědi strhnuty body. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: a) sekundární klíč b)
VíceDatabá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íceAlgoritmy 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íceDynamické programování
Dynamické programování 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íceStromové 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íceNORMALIZACE Část 2 1
NORMALIZACE Část 2 1 Úprava relačního schématu databáze NORMALIZACE Eliminaci aktualizačních anomálií zajišťujeme převedením relačního schématu do 3NF, resp. BCNF. (Normalizovat lze pomocí) DEKOMPOZICE
VíceDatové 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ícePříklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1
Výraz - syntaxe i sémantika podobné jako v matematice - obsahuje proměnné, konstanty, operátory, závorky, volání funkcí - všechny operátory nutno zapisovat (nelze např. vynechat znak násobení) - argumenty
VíceNPRG030 Programování I, 2018/19 1 / :25:37
NPRG030 Programování I, 2018/19 1 / 26 24. 9. 2018 10:25:37 Čísla v algoritmech a programech 10 26 Poloměr vesmíru 2651 studujících studentů MFF UK 3.142857... Ludolfovo číslo 10 16 stáří vesmíru v sekundách!!!
VíceRelač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íceImplementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
VíceFakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná
ZKOUŠKOVÉ TESTY Leden 2010 souhrn Červené dobře (nejspíš), modré možná Pomocí kterého databázového objektu je implementován ATRIBUT z konceptuálního modelu? sloupec referenční omezení index tabulka Omezení
VíceStandardní 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íceAlgoritmy na ohodnoceném grafu
Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus
VíceBiná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íceDatabázové systémy BIK-DBS
Databázové systémy BIK-DBS Ing. Ivan Halaška katedra softwarového inženýrství ČVUT FIT Thákurova 9, m.č. T9:311 ivan.halaska@fit.cvut.cz Kapitola Relační model dat 1 3. Relační model dat (Codd 1970) Formální
VíceB3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]
VícePascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
VíceZákladní pojmy teorie množin Vektorové prostory
Základní pojmy teorie množin Přednáška MATEMATIKA č. 1 Katedra ekonometrie FEM UO Brno kancelář 69a, tel. 973 442029 email:jiri.neubauer@unob.cz 7. 10. 2010 Základní pojmy teorie množin Základní pojmy
Víceá ář á ř ř Č ř áč ě řá ú á ř č á á á á á ú ů ř ř Č á ř á á á Š ž č ě ř č ý ů á á ř ř ú á ř ž ý ý á á ž á ř č ů á á ů ř ý ý áš á ěř á ž á á ěř á á ř ž á ě ě á á žá á ů ý ř žá ř ě č ě á ě á ř ž ú ů ř ř ž
VíceB3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8] count=0 for i in range(1,len(data)):
VíceČinnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.
Přiřazovací příkaz V := E, V jednoduchá nebo indexovaná proměnná, E výraz, jehož typ je kompatibilní podle přiřazení s typem proměnné V. 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.
VíceGrafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
VíceGrafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
VíceOrganizace 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íceAlgoritmy 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íceAlgoritmy 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íceProfilová čá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íceZáklady algoritmizace. Hašování
Základy algoritmizace Hašování Problematika hašování Hašování - nástroj na jednoduchý způsob "zakódování vstupních dat. Vstupní data jsou zpracována hašovací funkcí jsou jistým způsobem komprimována. Relativně
Vícebfs, 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íceAnotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj
Anotace Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj Direktivy překladače Překladač kontroluje plno věcí, například: zda nekoukáme za konec
VíceLabView jako programovací jazyk II
LabView jako programovací jazyk II - Popis jednotlivých funkcí palety Function II.část - Funkce Numeric, Array, Cluster Ing. Martin Bušek, Ph.D. Práce s daty typu NUMERIC Numerické funkce obsahuje funkce
VíceKomprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky
Komprese dat Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Statistické metody Jan Outrata (Univerzita Palackého v Olomouci) Komprese dat Olomouc, únor březen 2016 1 / 23 Tunstallův
Vícebfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 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Úvod do teorie grafů
Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí
VíceIB111 Ú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íceDigitální učební materiál
Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_145_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
VíceUklá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íceDatabá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íceTřídění a vyhledávání Searching and sorting
Třídění a vyhledávání Searching and sorting Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 33 Vyhledávání Třídění Třídící algoritmy 2 / 33 Vyhledávání Searching Mějme posloupnost (pole)
VíceIB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)
IB108 Sada 1, Příklad 1 ( ) Složitost třídícího algoritmu 1/-Sort je v O n log O (n.71 ). Necht n = j i (velikost pole, které je vstupním parametrem funkce 1/-Sort). Lehce spočítáme, že velikost pole předávaná
VíceZákladní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
VíceALG 09. Radix sort (přihrádkové řazení) Counting sort. Přehled asymptotických rychlostí jednotlivých řazení. Ilustrační experiment řazení
ALG Radix sort (přihrádkové řazení) Counting sort Přehled asymptotických rychlostí jednotlivých řazení Ilustrační experiment řazení Radix sort Neseřazeno Řaď podle. znaku Cbb DaD adb DCa CCC add DDb adc
VíceNPRG030 Programování I, 2017/18 1 / :22:16
NPRG030 Programování I, 2017/18 1 / 26 20. 10. 2017 11:22:16 Ordinální typy standardní: integer, char, boolean Vlastnosti ordinálních typů: 1. hodnot je konečný počet a hodnoty jsou uspořádány 2. ke každé
VíceZdů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íceKapitola 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íceProgramová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ícePoslední aktualizace: 14. října 2011
Lexikální analýza Překladače, přednáška č. 2 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 14. října 2011 Symboly Co je to
VíceModely 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íceKapitola 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íceDotazovací jazyk pro řazená data
Dotazovací jazyk pro řazená data NDBI006 2011 Martin Chytil Motivace - dotazy závislé na pořadí Úvod do jazyka AQuery Datový model Algebra Transformace dotazů - optimalizace Výsledky experimentů Podobné
VíceTé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íceSpojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur 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
VíceRekurzivní algoritmy
Rekurzivní algoritmy 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) ZS
Více