Vyhodnocovanie výrazov relačnej algebry v odpovedníkoch IS
|
|
- Marvin Floyd
- 6 years ago
- Views:
Transcription
1 MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Vyhodnocovanie výrazov relačnej algebry v odpovedníkoch IS Bakalárska práca Brno 2012 Roman Mačor
2 Prehlasujem, že táto práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní používal alebo z nich čerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj. V Brne dňa Roman Mačor Vedúci práce: RNDr. Vlastislav Dohnal,Ph.D.
3 Poďakovanie: Moje poďakovanie si určite zaslúži pán RNDr. Vlastislav Dohnal, Ph.D., vedúci mojej bakalárskej práce, za jeho návrhy, pripomienky a cenné rady. Tiež sa chcem poďakovať svojej rodine a priateľom, ktorý mi dodávali silu a motiváciu, keď som už nevládal.
4 Zhrnutie: V tejto práci je implementovaná Java aplikácia na prevod dotazov relačnej algebry do SQL, ktorá je integrovaná s odpovedníkmi IS MU. Ďalej je implementované webové rozhranie na správu, editáciu a testovanie uložených otázok. Bližšie je rozobraná relačná algebra a jej najdôležitejšie operácie. Práca tiež popisuje prevod dotazov relačnej algebry do SQL. Časť práce sa venuje definícií a ukážke gramatiky, ktorá popisuje syntax relačnej algebry. Nakoniec práca stručne popisuje vytvorené webové rozhranie. Kľúčové slová: Transformácia, Relačná algebra, SQL, formálna gramatika, databáza, ANTLR, odpovedníky, IS MU, Java
5 Obsah 1 Úvod RDBMS Relačná algebra Cieľ Výsledok Rozdelenie práce Relačná Algebra Základné operácie Selekcia Projekcia Spájanie operátorov relačnej algebry Zjednotenie Množinový rozdiel Karteziánsky súčin Premenovanie Pravidlá skladania výrazov relačnej algebry Dodatočné operácie relačnej algebry Množinový prienik Prirodzené spojenie Theta spojenie Vonkajšie spojenie Analýza výrazov Gramatika Lexikálna analýza Syntaktická analýza ANTLR Alternatívna syntax relačnej algebry Priorita operátorov Gramatika relačnej algebry Rozšírenie gramatiky
6 4 Transformácia do SQL Základy SQL Transformácia Webové rozhranie Záver Literatúra Príloha
7 1 Úvod Databáza je organizovaná kolekcia dát, uložená v digitálnej podobe spôsobom, ktorý umožňuje jednoduchý prístup k uloženým informáciám a efektívne vkladanie nových dát. Relačný model je najpoužívanejším modelom dát, ktoré sú spracovávané rozličnými aplikáciami. Relačná databáza sa skladá z kolekcie tabuliek (relácií), z ktorých každá má unikátne meno. Každý stĺpec tabuľky reprezentuje atribút tabuľky a každý riadok reprezentuje vzťah medzi hodnotami. Atribút popisuje špecifickú vlastnosť v tabuľke. Napríklad atribút ulica obsahuje názvy ulíc. Relácia je podmnožinou Karteziánskeho súčinu definičných oborov všetkých atribútov. Inými slovami, relácia je množina n-tíc, ktorá zahrňuje niektoré, alebo všetky kombinácie atribútov. Keďže je to množina, na poradí n-tíc nezáleží. Databázová schéma je logický návrh databázy, ktorý hovorí aké relácie sa v databáze budú nachádzať. Relačná schéma je logický návrh relácie a popisuje mená a poradie atribútov v relácií. 1.1 RDBMS RDBMS (Relational Database Management System, slovensky systém pre správu relačnej databázy) je systém, ktorý umožňuje tvorbu, údržbu a používanie databázy. Hlavným cieľom RDBMS je poskytnúť pohodlný a efektívny spôsob ako ukladať dáta a pristupovať k dátam. RDBMS sú založené na SQL základe. Jedným z takýchto systémov je PostgreSQL, ktorý v tejto práci využívam. Jedná sa o open-source systém, ktorý okrem iného umožňuje používanie vnorených select klauzúl, čo je pre transformáciu SQL do relačnej algebry veľmi dôležité. Nevýhodou PostgreSQL je, že v niektorých prípadoch vyžaduje premenovanie [4]. Tejto problematike sa budem venovať nižšie. 8
8 1.2 Relačná algebra Dotazovací jazyk je jazyk, pomocou ktorého si užívateľ môže vyžiadať informácie z databázy. Tieto jazyky sa dajú rozdeliť na procedurálne a neprocedurálne. V procedurálnych jazykoch užívateľ zadáva konkrétne kroky, ktoré sa majú vykonať aby bol vypočítaný požadovaný výsledok. V neprocedurálnych jazykoch užívateľ iba popíše výsledok, ktorý chce z databázy dostať [1]. Relačná algebra je syntakticky jednoduchý, procedurálny, dotazovací jayk. Relačná algebra sa používa predovšetkým na vysvetlenie základných relačných operácií a princípov. Keď pochopíme tieto princípe, je jednoduchšie pochopiť SQL (Structured Query Language, slovensky štruktúrovaný dotazovací jazyk), pretože relačná algebra tvorí základ pre SQL [1]. 1.3 Cieľ Cieľom práce bolo vytvoriť Java aplikáciu na vyhodnocovanie výrazov relačnej algebry a integrovať ju s odpovedníkmi v IS MU (Informačný systém Masarykovej Univerzity). Vedúci práce určil, že rozsah operácií, ktoré bude aplikácia podporovať bude v rozmedzí látky preberanej v predmete PB154 (Základy databázových systémov) [7], aby mohla byť aplikácia použitá pri vyučovaní tohto predmetu. Táto práca naviazala na prácu L. Molkovej [2], ktorú rozšírila o operáciu agregácie (group by) a nové podmienky v selekcií. 1.4 Výsledok Výsledkom mojej práce je aplikácia, ktorá prevádza dotazy relačnej algebry do SQL. Prepojenie s odpovedníkmi IS MU, je realizované implementáciou webovej služby do pripraveného rámca na komunikáciu s odpovedníkmi IS MU. Dotaz zadaný študentom a odpoveď zadaná učiteľom sa prevedú do SQL a následne sú porovnané pomocou aplikácie, implementovanej v práci F. Hudka [6], ktorá porovnáva dva SQL dotazy. Webová služba je rozšírená správu uložených otázok. 9
9 1.5 Rozdelenie práce Práca je rozdelená do niekoľkých plynule nadväzujúcich častí. V prvej časti vysvetľujem základy relačnej algebry a najdôležitejšie operácie. V druhej časti hovorím o analýze výrazov, rozoberám pôvodnú gramatiku a dôvody, prečo ju bolo treba úplne prerobiť. Tiež popisujem novú gramatiku a stručne vysvetlím alternatívnu syntax relačnej algebry. V tretej časti vysvetľujem základné princípy prevodu relačnej algebry do SQL a načrtnem problémy, ktoré sa pri prevode vyskytujú. V štvrtej časti stručne popisujem vytvorené webové rozhranie. 10
10 2 Relačná Algebra Relačná algebra je procedurálny dotazovací jazyk [1]. Je tvorená operáciami, ktoré dostanú na vstup jednu alebo dve relácie a ako výsledok vracajú novú reláciu. Relačná algebra má šesť základných operácii: selekcia, projekcia, zjednotenie, karteziánsky súčin, množinový rozdiel a premenovanie a niekoľko dodatočných operácii ako sú prienik, spojenie (join), delenie a ďalšie. Zložitejšie dotazy môžu byť vyjadrené kombináciou základných operácií. 2.1 Základné operácie Selekcia, projekcia a premenovanie sú prefixové unárne operácie, čo znamená že na vstup berú jednu reláciu, ktorá je umiestnená za operáciou. Karteziánsky súčin, zjednotenie a množinový rozdiel sú infixové binárne operátory. Znamená to že na vstup berú dve relácie, ktoré sú umiestnené naľavo a napravo od operácie Selekcia Operácia selekcia vracia n-tice, ktoré spĺňajú danú podmienku. Označuje sa malým gréckym písmenom sigma (σ), podmienka sa umiestňuje do dolného indexu a názov relácie píšeme do zátvoriek za výraz. Majme jednoduchú reláciu zobrazenú v tabuľke
11 učo meno Priemer 2535 Lucia 2,5 545 Emil 3,4 654 Lucia 1,1 321 Gregor 1,9 254 Cyril 3,1 Tabuľka 2.1 Relácia študent Ak chceme zobraziť študentov, ktorých priemer je maximálne 3, môžeme použiť dotaz: Výsledkom bude relácia: učo meno Priemer 2535 Lucia 2,5 654 Lucia 1,1 321 Gregor 1,9 Tabuľka 2.2: Výsledok dotazu. Výrazy v podmienke môžeme kombinovať. Napríklad: učo meno Priemer 2535 Lucia 2,5 545 Emil 3,4 654 Lucia 1,1 321 Gregor 1,9 Tabuľka 2.3: Výsledok dotazu. 12
12 V podmienke selekcie môžeme porovnávať atribút a konštantu alebo dva atribúty pomocou =,, <,,, > a môžeme kombinovať viacero podmienok pomocou spojok: konjunkcia ( ), disjunkcia ( ) a negácia ( ) Projekcia Operácia projekcia nám umožňuje vynechať niektoré atribúty z relácie. Označuje sa veľkým Gréckym písmenom pi (Π), atribúty, ktoré chceme zobraziť píšeme ako dolný index Π a názov relácie píšeme do zátvoriek. Pri vynechaní niektorých argumentov môžu vzniknúť duplicity (dva identické riadky). Keďže relácia je množina, tieto riadky sú zahodené (ponechá sa iba jeden z nich). Majme jednoduchú reláciu: učo meno priemer 2535 Lucia 2,5 545 Emil 3,4 654 Lucia 1,1 321 Gregor 1,9 254 Cyril 3,1 Tabuľka2.4: Relácia študent Ak chceme vypísať zoznam mien bez uča a priemeru z relácie študent, môžeme použiť dotaz: Výsledná relácia je zobrazená v tabuľke 2.5. Meno Lucia sa v prvej relácii nachádza 2 krát, ale vo výslednej už iba raz, aby sa zabránilo duplicite. 13
13 Meno Lucia Emil Gregor Cyril Tabuľka 2.5: Výsledok dotazu Spájanie operátorov relačnej algebry Vďaka tomu, že výsledok relačných operácii je relácia, môžeme kombinovať viacero operácií do zložitejších výrazov. Napríklad z relácie študent chceme vypísať meno a učo študentov, ktorý majú lepší priemer ako 3, ale konkrétny priemer už vypisovať nechceme. Využijeme kombináciu projekcie a selekcie. Výsledný výraz bude vyzerať takto: učo meno 2535 Lucia 654 Lucia 321 Gregor Tabuľka 2.6: Výsledok dotazu. Projekcia dostala ako argument namiesto názvu relácie selekciu, ktorá sa vyhodnotí na reláciu. Obecne môžeme povedať, že keďže každá relačná operácia vracia reláciu a preto ju môžeme použiť v inej operácií namiesto názvu relácie Zjednotenie Zjednotenie je binárna operácia, čo znamená že ako argument berie dve relácie a vracia reláciu. Vo výslednej relácií sa objavia n-tice, ktoré sa nachádzajú v jednej alebo oboch reláciách v argumente. 14
14 Zjednotenie sa označuje znakom a názvy relácií sa umiestnia naľavo a napravo od. Ako argumenty zjednotenia nemôžeme použiť akékoľvek relácie. Aby bola operácia platným výrazom, musia byť splnené dve podmienky: 1. Relácie r a s musia mať rovnaký počet atribútov. 2. Doména n-tého atribútu r musí byť rovnaká ako doména n-tého atribútu s, pre všetky n. Ako príklad môžeme použiť vyššie zmienenú reláciu študent a reláciu učiteľ. učo meno priemer 2535 Lucia 2,5 545 Emil 3,4 654 Lucia 1,1 321 Gregor 1,9 učo meno 23 Libor 545 Emil 654 Lucia 254 Cyril 3,1 Tabuľka 2.7: Relácia študent a relácia učiteľ. Nemôžeme priamo napísať, pretože tieto dve relácie nespĺňajú vyššie uvedené podmienky, nemajú rovnaký počet atribútov. Preto si najprv musíme upraviť reláciu študent. Výsledkom bude relácia s atribútmi učo a meno. Keďže n-tica Emil sa nachádza v oboch reláciách, jeden výskyt sa zahodí aby nevznikla duplicita. Výsledok sa nachádza v tabuľke
15 učo meno 2535 Lucia 545 Emil 654 Lucia 321 Gregor 254 Cyril 23 Libor Tabuľka 2.8: Výsledok dotazu Množinový rozdiel Vďaka operácií množinový rozdiel môžeme nájsť n-tice, ktoré sa nachádzajú v prvej relácií, ale nenachádzajú sa v druhej. Označuje sa znakom mínus ( ). Výraz r s vracia všetky n-tice, ktoré sa nachádzajú v relácií r ale nenachádzajú sa v relácií s. Pre atribúty množinového rozdielu platia rovnaké podmienky ako pre atribúty zjednotenia. Relácie r a s musia mať rovnaký počet atribútov a doména n-tého atribútu r musí byť rovnaká ako doména n-tého atribútu s, pre všetky n. Povedzme, že chceme zoznam všetkých študentov, okrem tých ktorý sú zároveň učiteľmi. Použijeme relácie študent a učiteľ, ale reláciu študent upravíme aby mala rovnaké atribúty ako učiteľ. Tieto relácie sú zobrazené v tabuľke
16 učo Meno 2535 Lucia 545 Emil 654 Lucia 321 Gregor učo meno 23 Libor 545 Emil 654 Lucia 254 Cyril Tabuľka 2.9: Relácia a relácia učiteľ. Na výpis študentov, ktorý nie sú zároveň učiteľmi použijeme dotaz: Výsledkom bude: učo meno 2535 Lucia 321 Gregor 254 Cyril Tabuľka 2.10: Výsledok dotazu Karteziánsky súčin Karteziánsky súčin nám umožňuje kombinovať informácie z akýchkoľvek dvoch relácií. Označuje sa krížom ( ) a relácie, ktoré chceme kombinovať píšeme naľavo a napravo od kríža. Atribútmi výslednej relácie sú všetky atribúty z relácie r plus všetky atribúty z relácie s. Môže nastať situácia, že relácie r a s majú niektoré atribúty rovnako pomenované. Aby bolo možné jednoznačne určiť o ktorý atribút sa jedná, meno relácie sa pridáva pred meno atribútu (napríklad r.meno). Ak sa atribút nachádza iba v jednej relácií, prefix sa môže vynechať. 17
17 Kvôli tejto konvencií pomenovania, musia byť argumenty Karteziánskeho súčinu rozdielne pomenované. Problém vzniká napríklad vtedy, keď chceme vykonať Karteziánsky súčin relácie so sebou samou. Riešenie ponúkne ďalšia kapitola, ktorá sa venuje premenovaniu. Ešte je dôležité povedať aké n-tice sa nachádzajú vo výsledku. Sú to všetky možné kombinácie n-tíc z relácie r s n-ticami z relácie s. Majme relácie z predchádzajúcich príkladov študent a učiteľ: učo meno priemer 2535 Lucia 2,5 545 Emil 3,4 654 Lucia 1,1 321 Gregor 1,9 254 Cyril 3,1 učo meno 23 Libor 545 Emil 654 Lucia Tabuľka 2.11: Relácia študent a relácia učiteľ. Ak chceme zobraziť všetky kombinácie študentov a učiteľov môžeme použiť dotaz Výsledok tohto dotazu sa nachádza v tabuľke
18 študent.učo študent.meno priemer učiteľ.učo učiteľ.meno 2535 Lucia 2,5 23 Libor 2535 Lucia 2,5 545 Emil 2535 Lucia 2,5 654 Lucia 545 Emil 3,4 23 Libor 545 Emil 3,4 545 Emil 545 Emil 3,4 654 Lucia 654 Lucia 1,1 23 Libor 654 Lucia 1,1 545 Emil 654 Lucia 1,1 654 Lucia 321 Gregor 1,9 23 Libor 321 Gregor 1,9 545 Emil 321 Gregor 1,9 654 Lucia 254 Cyril 3,1 23 Libor 254 Cyril 3,1 545 Emil 254 Cyril 3,1 654 Lucia Tabuľka 2.12: Výsledok dotazu. Môžeme si všimnúť že výsledkom Karteziánskeho súčinu je obrovská relácia. Konkrétne, počet n-tíc vo výsledku je súčin počtu n-tíc prvej a počtu n-tíc druhej relácie. V našom prípade 15 (5*3). Je dôležité uvedomiť si, že výsledok neobsahuje žiadne ďalšie informácie okrem tých, ktoré už sú zahrnuté v jeho parametroch, ale pritom zaberá oveľa viac pamäte ako jeho atribúty. 19
19 2.1.7 Premenovanie Operácia premenovanie slúži, ako napovedá názov, na zmenu názvu relácie a jej atribútov, pričom obsah sa nemení. Môžeme meniť mená už pomenovaných relácií alebo pomenovať výsledky relačných operácií, ktoré dovtedy nemajú meno. Premenovanie sa označuje malým Gréckym písmenom rho (ρ), nové meno relácie a mená atribútov sa píšu do dolného indexu, pričom mená atribútov sú v zátvorke oddelené čiarkou. Meno relácie ktorú premenúvame, píšeme do zátvoriek na koniec výrazu. Počet nových mien atribútov v zátvorke musí byť rovnaký ako počet atribútov v pôvodnej relácií. Existuje aj zjednodušená verzia, ktorá premenováva iba názov relácie, pričom mená atribútov zostávajú nezmenené. V príklade premenujeme reláciu študent aj jej atribúty. nučo nmeno npriemer 2535 Lucia 2,5 545 Emil 3,4 654 Lucia 1,1 321 Gregor 1,9 254 Cyril 3,1 Tabuľka 2.13: Výsledok dotazu. 20
20 2.1.8 Pravidlá skladania výrazov relačnej algebry Bežné výrazy relačnej algebry sú zložené z menších výrazov [1]. Nech sú a výrazy relačnej algebry, potom sú výrazmi relačnej algebry aj výrazy:, kde P je podmienka na atribútoch, kde S je zoznam niektorých alebo všetkých atribútov, kde x je nové meno výsledku výrazu 2.2 Dodatočné operácie relačnej algebry Základné operácie relačnej algebry sú dostačujúce na vyjadrenie akéhokoľvek dotazu, ale pri zložitejších dotazoch vznikajú veľmi dlhé výrazy. Preto definujeme dodatočné výrazy, ktoré zjednodušujú zápis zložitých dotazov. Je dôležité poznamenať že nijako nerozširujú možnosti relačnej algebry a dajú sa zapísať prostredníctvom základných operácií. V tejto kapitole si definujeme najdôležitejšie z nich [1] Množinový prienik Prienik je binárna operácia, ktorá sa označuje znakom. Slúži na zobrazenie n-tíc, ktoré sa nachádzajú v oboch reláciách. Relácie r a s musia byť kompatibilné podľa rovnakých podmienok ako pri operácií zjednotenie. Definícia prieniku pomocou základných operácií vyzerá takto: 21
21 2.2.2 Prirodzené spojenie Operácia prirodzené spojenie (natural-join) sa označuje znakom, a má podobný význam ako Karteziánsky súčin. Ak relácie r a s neobsahujú žiadne totožné atribúty platí: Pokiaľ ale existujú atribúty, ktoré sa vyskytujú v relácií r aj v relácií s, výsledná relácia bude obsahovať iba páry n-tíc, ktoré majú rovnaké hodnoty v spoločných atribútoch oboch relácií a každý atribút sa vo výsledku bude nachádzať iba raz. Je to teda kombinácia operácií projekcia, selekcia a Karteziánsky súčin. Kde R je množina atribútov r, S je množina atribútov s a { } Theta spojenie Theta spojenie (Theta join) je rozšírením operácie prirodzené spojenie, ktoré nám umožňuje kombinovať operácie selekciu a Karteziánsky súčin. Označuje sa ako, znak θ v dolnom indexe je nahradený podmienkou selekcie Vonkajšie spojenie Vonkajšie spojenie (Outer-join) je ďalším rozšírením operácie prirodzené spojenie. Rieši problém s chýbajúcimi informáciami, ktorý nastáva pri prirodzenom spojení tým, že hodnoty ktoré by boli stratené doplní hodnotou null (prázdna hodnota). Existujú tri typy: ľavé vonkajšie spojenie ( ), pravé vonkajšie spojenie ( ) a plné vonkajšie spojenie ( ). Ľavé vonkajšie spojenie všetky n-tice z ľavej relácie, ktoré sa nezhodovali so žiadnou n-ticou z pravej relácie, doplní hodnotami null a pridá ich k výsledku prirodzeného spojenia. { } Kde R je množina atribútov r, S je množina atribútov s a konštantná relácia { } je na schéme, čo znamená že má rovnaký počet atribútov ako počet atribútov unikátnych pre S. 22
22 Pravé vonkajšie spojenie všetky n-tice z pravej relácie, ktoré sa nezhodovali so žiadnou n-ticou z ľavej relácie doplní hodnotami null a pridá ich k výsledku prirodzeného spojenia. { } Kde konštantná relácia { } je na schéme. Plné vonkajšie spojenie urobí obe tieto operácie. 23
23 3 Analýza výrazov Keď dostaneme výraz, potrebujeme stanoviť či je to platný výraz daného jazyka, v našom prípade relačnej algebry. K tomu je potrebné zadefinovať gramatiku, ktorá bude popisovať všetky platné výrazy daného jazyka. Proces rozpoznávania jazyka pomocou gramatiky sa nazýva syntaktická analýzy. 3.1 Gramatika Gramatika je štruktúra, ktorá popisuje jazyk. Je definovaná štvoricou (N,, P, S) [3], kde N je neprázdna, konečná množina neterminálnych symbolov. je konečná množina terminálnych symbolov. P je konečná množina pravidiel. Pravidlo (α, β) obvykle zapisujeme v tvare (a čítame α prepíš na β)., S je špeciálny počiatočný neterminál Termináli sú základné elementy, z ktorých sa skladá jazyk a nie je možné ich rozdeliť na menšie časti. Neterminály sa v jazyku nevyskytujú, ale pomocou pravidiel sa prepisujú na terminály, netermináli, alebo kombináciu týchto dvoch. Pravidlá popisujú spôsob, akým sa generujú slová v jazyku. Symbol na ľavej strane pravidla môže byť prepísaný na symbol na pravej strane pravidla. Počiatočný symbol je špeciálny neterminál ktorým začína generovanie slov. 3.2 Lexikálna analýza Lexikálna analýza je proces, v ktorom sa text (postupnosť znakov) rozdelí na najmenšie rozlíšiteľné elementy, ktoré majú v danej gramatike definovaný význam. Program alebo metóda, ktorá vyko- 24
24 náva lexikálnu analýzu sa nazýva lexer. Takto rozdelené elementy potom dostane na vstup Syntaktická analýza. 3.3 Syntaktická analýza Syntaktická analýza je proces, ktorý na vstup dostane postupnosť elementov, vytvorených v Lexikálnej analýze. Jeho úlohou je určiť či daná postupnosť patrí do jazyka definovaného gramatikou a odvodiť gramatickú štruktúru danej postupnosti. Výsledkom tejto analýzy je produkčný graf. Ak sa podarí vytvoriť produkčný graf znamená to, že postupnosť je platným výrazom daného jazyka. Program, ktorý vykonáva syntaktickú analýzu sa nazýva parser. 3.4 ANTLR ANTLR (Another Tool for Language Recognition, slovensky ďalší nástroj na rozpoznávanie jazyka) [5] je nástroj, ktorý poskytuje rámec (framework) na generovanie syntaktickej analýzy. Používa syntaktický analyzátor LL, čo je analýza typu zhora nadol. Stačí vytvoriť bezkontextovú formálnu gramatiku a ANTLR vygeneruje lexer a parser. ANTLR podporuje množstvo programovacích jazykov: Java, C, C#, javascript, Objective-C, Perl, Python, Ada95, ActionScript a Ruby. ANTLR tiež umožňuje pridať do gramatiky akcie prostredníctvom kódu, v našom prípade Java kódu, ktoré umožňujú prevod do iného jazyka, v našom prípade do SQL. ANTLR má veľmi dobré zotavovanie sa po chybách, čo znamená, že ak napríklad dostane neplatný znak, preskočí ho a pokračuje v analýze bez vyvolania výnimky (iba vypíše že našiel neplatný znak). Toto je užitočné pri vývoji, ale keď už máme program hotový, väčšinou nechceme aby prijímal neplatné vstupy. Aby sme zmenili toto pôvodné správanie, je potrebné prekryť niektoré generované metódy. 25
25 3.5 Alternatívna syntax relačnej algebry Syntax relačnej algebry, ktorá bola vysvetlená vyššie je nevhodná na písanie na klávesnici. Hlavný problém tvoria Grécke písmená a dolné indexy. V bakalárskej práci L. Molkovej [2] je navrhnutá alternatívna syntax, ktorá je intuitívna a jednoduchá na zapamätanie. V tejto práci využijeme túto syntax bez zmeny. Všetko čo sa pôvodne nachádzalo v dolnom indexe sa v novej syntaxi píše do hranatých zátvoriek. Značenie sa snaží využívať podobnosti medzi operáciami relačnej algebry a matematickými operáciami. Operátor RA Alternatívna syntax Zjednotenie r1 + r2 Prienik r1 ^ r2 Rozdiel r1 R2 Prirodzené spojenie r2 Ľavé spojenie r1 ~@ r2 Pravé spojenie r2 Karteziánsky súčin r1 * r2 Selekcia σ $ [podmienka] (r1) Projekcia Π # [zoznam atribútov] (r1) Premenovanie relácie ρ %[r2] (r1) Premenovanie relácie ρ % [r2] (zoznam atribútov) (r1) a atribútov Konjunkcia & cond1 & cond2 alebo cond1 && cond2 Disjunkcia cond1 cond2 alebo cond1 cond2 Negácia!!cond1 Tabuľka 3.1: Alternatívna syntax relačnej algebry 26
26 3.6 Priorita operátorov Ak je vo výraze viac operátorov, priorita operátorov rozhoduje v akom poradí sa vyhodnotia. Samozrejme ak sú uzavreté v zátvorkách, najprv sa vyhodnocuje výraz v zátvorke. Najvyššiu prioritu majú projekcia, selekcia, premenovanie a operácia agregácie (GROUP BY), potom nasledujú prirodzené spojenie, ľavé spojenie, pravé spojenie a karteziánsky súčin, a najnižšiu prioritu majú rozdiel, prienik a zjednotenie. Ak máme vo výraze viacero operátorov s rovnakou prioritou vyhodnocujú sa zľava doprava. Majme príklad: Teraz je potrebné rozhodnúť, či sa najskôr vykoná prienik medzi table1 a table2, alebo sa najskôr vykoná karteziánsky súčin medzi table2 a table3, potom sa aplikuje prienik medzi výsledkom a table1. Karteziánsky súčin má vyššiu prioritu, preto sa vyhodnotí prvý. Ak by sme chceli, aby sa najprv vyhodnotil prienik, je potrebné použiť zátvorky: Aj logické operátori majú odlišnú prioritu. Najvyššiu prioritu má negácia, nasleduje konjunkcia a najnižšiu prioritu má disjunkcia. Pokiaľ sa vo výraze nachádzajú operátori s rovnakou prioritou, vyhodnocujú sa zľava doprava. 3.7 Gramatika relačnej algebry V tejto práci použijem základ gramatiky vytvorenej v bakalárskej práci L. Molkovej [2], ktorú ale bolo nutné výrazne prerobiť. Gramatiku rozširujem o operáciu GROUP BY a nové podmienky v selekcií. Nižšie je uvedená pôvodná gramatika. Výraz naľavo od bodkočiarky môže byť nahradený výrazom napravo. Malými písmenami sú označované neterminály, veľkými termináli. Znak ( ) znamená, že ľavý výraz má viac možností nahradenia. Pravidlo je ukončené bodkočiarkou. 27
27 exp : exp INTERSECTION exp exp UNION exp exp SET_DIFFERENCE exp exp NATURAL_JOIN exp exp LEFT_JOIN exp exp RIGHT_JOIN exp exp CARTESIAN_PRODUCT exp SELECTION [ condlist ] ( exp ) PROJECTION [ attrlist ] ( exp ) RENAME [ name ( attrlist ) ] ( exp ) RENAME [ name ] ( exp ) ( exp ) relation ; attrlist : attribute attribute, attrlist ; condlist : condlist OR condlist condlist AND condlist NOT condlist ( condlist ) compared comp compared; comp : <>!= = == >= <= < > ; compared : attribute data; relation : NAME; attribute : NAME fullname; fullname : NAME. NAME; data : NUMBER STRING_VALUE; Túto gramatiku bolo nutné kompletne prerobiť z troch dôvodov: rozšírenie gramatiky, ANTLR nepodporuje ľavú rekurziu, v ANTLR nie je možné implicitne zadať prioritu pravidiel. Jediný spôsob, ktorý v ANTLR umožňuje stanoviť prioritu pravidiel je, že sa pravidlá budú navzájom volať. Vysvetlíme si to na príklade. Majme jednoduchý jazyk, ktorý umožňuje zápis aritmetických operácií sčítanie, odčítanie a násobenie. Potrebujeme zabezpečiť, aby násobenie malo väčšiu prioritu ako sčítanie a odčítanie. 28
28 Gramatika, ktorá tento jazyk popisuje bude vyzerať takto: operand : expr1; term: INTEGER; expr2 expr1 : term ('*'term)*; : expr2 (('+' '-') expr2)*; INTEGER:'0'..'9'+; Čím vyššie je pravidlo umiestnené v tejto gramatike, tým má vyššiu prioritu. Znak (*) znamená, že výraz pred týmto znakom sa v pravidle nemusí vyskytovať vôbec, alebo sa tam môže opakovať viac krát. Znak (+) znamená, že výraz pred týmto znakom sa v pravidle musí nachádzať aspoň raz, a môže sa opakovať viac krát. Znak (?), ktorý sa v tejto gramatike nenachádza znamená, že výraz pred týmto znakom sa v pravidle nemusí nachádzať alebo sa musí v pravidle nachádzať práve jeden krát Rozšírenie gramatiky Gramatiku potrebné rozšíriť o operáciu GROUP BY a podmienky v selekcií IS NULL, IS NOT NULL, LIKE a ESCAPE. Taktiež umožňujeme zadávať výrazy pomocou syntaxe navrhnutej v bakalárskej práci L. Molkovej ale aj slovne, pretože je to jednoduchšie na zapamätanie. Takže platným výrazom je: aj výraz Výsledná gramatika je bez ľavej rekurzie, s dodatočnými operáciami a podmienkami, s prioritou operátorov vyzerá takto: evaluator: exp EOF; term: relation '('exp')'; exp1: (('SELECT' '$') '['condlist']' ('PROJECT' '#') '['attrlist']' '['attrlist']' ('PROJECTION' '#') '['attrlist']' 29
29 ('RENAME' '%') '['NAME'('attrlist')'']' ('RENAME' '%') '['NAME']' )? term; exp2: exp1 ( ('NATURAL_JOIN' '@') exp1 ('LEFT_JOIN' '~@') exp1 ('RIGHT_JOIN' '@~') exp1 ('CARTESIAN_PRODUCT' '*') exp1 )* ; exp: exp2 ( ('INTERSECTION' '^') exp2 ('UNION' '+') exp2 ('SET_DIFFERENCE' '-') exp2 )* ; conterm: compared '('condlist')'; negation: (('NOT' '!'))* conterm; condlist1: negation (comp negation 'IS NULL' 'IS NOT NULL' 'LIKE'STRING_VALUE ('ESCAPE'STRING_VALUE)? 'ILIKE' STRING_VALUE ('ESCAPE' STRING_VALUE)? )* ; and: condlist1 (('AND' '&' '&&') condlist1)* ; condlist: and (('OR' ' ' ' ') and )* ; comp: COMP; COMP: ('<>' '=' '>=' '<=' '<' '>'); attrlist: at1= attribute (','attribute)* ; compared: attribute data ; relation: NAME ; attribute : NAME fullname ; fullname: NAME'.'NAME ; 30
30 data: NUMBER STRING_VALUE ; NAME: ('a'..'z' 'A'..'Z' '_') ('a'..'z' 'A'..'Z' '_' '0'..'9')* ('"'.* '"'); STRING_VALUE: '\''.* '\''; NUMBER : '0'..'9'+; WS : (' ' '\t' '\n' '\r' '\f')+ ; Ešte je potrebné dodať, že terminál WS (whitespaces, slovensky biele znaky), len určuje že biele znaky sa majú pri syntaktickej analýze ignorovať. 31
31 4 Transformácia do SQL 4.1 Základy SQL SQL (Structured Query Language, slovensky štruktúrovaný dotazovací jazyk) je dotazovací jazyk používaný na prácu s dátami, ktoré sú uložené v relačnej databáze. Aj keď sa nazýva dotazovacím jazykom, umožňuje oveľa viac ako len vyberať dáta s databázy [1]. SQL môže modifikovať dáta v databáze, definovať štruktúru dát a špecifikovať bezpečnostné obmedzenia. Všetky dotazy v relačnej algebre sa dajú prepísať do SQL. Základný blok v SQL vyzerá takto: Klauzula SELECT má rovnaký význam ako projekcia. Používame ju k špecifikovaniu atribútov, ktoré chceme vidieť vo výsledku. Pokiaľ za touto klauzulou nasleduje znak (*), znamená to že chceme vo výsledku vidieť všetky atribúty. Klauzula FROM zodpovedá vstupnej relácií operácie relačnej algebry. Umožňuje nám vypísať zoznam relácií z ktorých sa bude vyhodnocovať výraz [1]. Klauzula WHERE má rovnaký význam ako selekcia v relačnej algebre. Obsahuje podmienku, v ktorej sa môžu nachádzať atribúty z relácií, ktoré sa nachádzajú v klauzule FROM. Vo výslednej tabuľke sa potom nachádzajú iba n-tice, ktoré splňujú túto podmienku. Klauzulu WHERE je možné v niektorých prípadoch vynechať. Ďalej budeme potrebovať klauzulu AS, ktorá slúži na premenovanie. Použitie je jednoduché: SQL nerozoznáva veľké a malé písmená, takže platnými výrazmi sú: aj 32.
32 4.2 Transformácia Je dôležité uvedomiť si, že relácie v relačnej algebre sú množiny n-tíc a teda sa tam nemôže vyskytovať jedna n-tica viac krát, ale vo výsledku dotazu SQL sa môžu nachádzať identické n-tice. Keďže prevádzame relačnú algebru na SQL musíme zamedziť tomu, aby sa jedna n-tica vo výsledku nachádzala viac krát. Toto sa dá dosiahnuť použitím klauzule SELECT DISTINCT namiesto klauzule SELECT. Teraz si ukážeme ako sa základné operácie relačnej algebry prevádzajú do SQL. Relačná algebra SQL SELECT DISTICT zoznam atribútov FROM r SELECT * FROM r WHERE podmienka SELECT * FROM r UNION SELECT * FROM u SELECT * FROM r INTERSECT SELECT * FROM s SELECT * FROM r, s SELECT * FROM r EXCEPT SELECT * FROM s SELECT * FROM r NATURAL JOIN s SELECT * FROM r NATURAL LEFT JOIN s SELECT * FROM r NATURAL RIGHT JOIN s SELECT * FROM r AS s SELECT * FROM r AS s(zoznam atribútov) Tabuľka 4.1: Transformácia základných operácií relačnej algebry do SQL Prevod základných operácií relačnej algebry je celkom priamy, zložitejšia situácia nastáva, keď sa kombinuje viac operácií. Teraz si vysvetlíme ako prebieha transformácia v našej aplikácií. Vďaka tomu že ANTLR umožňuje vkladať kód priamo do gramatiky, transformácia do SQL môže prebiehať pri syntaktic- 33
33 kej analýze. Funguje to takým spôsobom, že každý neterminál vracia návratovú hodnotu, čo je daný výraz prevedený do SQL. Pokiaľ teda pri syntaktickej analýze dostaneme na vstup výraz, ktorý vracia mená študentov, ktorý sú zároveň učiteľmi: # [ meno ] (student ^ teacher) Produkčný graf vyzerá takto: Obrázok 4.1: Produkčný graf výrazu: # [ meno ] (student ^ teacher) V tomto prípade dostane projekcia ako reláciu prienik relácie student a teacher, čoho výsledok v SQL je SELECT * FROM student INTERSECT SELECT * FROM teacher. A teda konečný výsledok bude: SELECT DISTINCT meno FROM ( SELECT * FROM student INTERSECT SELECT * FROM teacher). Problém je ale v tom, že PostgreSQL vyžaduje, aby niektoré SELECT klauzule boli premenované [4]. Teda výsledok vyššie uvedeného výrazu bude: 34
34 SELECT DISTINCT meno FROM ( SELECT * FROM student INTERSECT SELECT * FROM teacher) AS foo1 Vytvoriť toto premenovanie nie je problémom, ale komplikácie nastávajú, pretože premenovanie sa deje bez vedomia používateľa aplikácie. Majme reláciu zapis na schéme (uco, kod). Ak by sme chceli vypísať zoznam študentov, ktorý majú zapísaný nejaký predmet, a vo výsledku chceme vidieť meno študenta a kód predmetu, dotaz v relačnej algebre bude vyzerať takto: #[student.meno, zapis). Prevod tohto výrazu do SQL je nasledovný: SELECT DISTINCT student.meno, zapis.kod FROM ( SELECT * FROM student NATURAL JOIN SELECT * FROM zapis) AS foo1 Tento výraz je ale neplatný, pretože nastalo premenovanie a celé meno atribútov už nie je možné použiť v pôvodnom stave. Správne by muselo byť použité SELECT DISTINCT foo1.meno, foo1.kod... ale užívateľ o premenovaní nevie. Táto práca neprináša úplné riešenie tohto problému, ale výrazne ho zmierňuje tým, že generuje čo najmenej select klauzulí, čím znižuje nutnosť premenovania. Funkčná verzia problematického výrazu, bez nadbytočných select klauzulí vyzerá takto: SELECT DISTINCT student.meno, zapis.kod FROM student NATURAL JOIN zapis 35
35 5 Webové rozhranie Prepojenie s odpovedníkmi IS MU je realizované tak, že je implementovaná webová služba do pripraveného rámca pre komunikáciu s odpovedníkmi. Kontrola správnosti odpovede prebieha tak, že zadaný dotaz aj správny dotaz (uložený v databáze) sú prevedené do SQL a následne porovnané pomocou aplikácie implementovanej v práci F. Hudeka [6]. Webové rozhranie umožňuje správu uložených otázok. Je možné vkladať nové otázky, pričom sa zadáva znenie otázky, typ otázky, správna odpoveď a možnosť penalizácie za nesprávnu odpoveď. Ďalej rozhranie umožňuje editáciu uložených otázok a možnosť otestovať otázku, teda zistiť či otázka prijíma správne odpovede. Pri tvorbe rozhrania som využil webové stránky implementované v práci F. Hudeka [6], ktoré bolo potrebné rozšíriť a upraviť pre potreby tejto práce. Zjednodušený dátový model v ktorom sú ukladané otázky a odpovede v práci F. Hudeka vyzerá takto: odpovede sú uložené v tabuľke answers (answer_id, id, answer), otázky sú uložené v tabuľke questions (id, type, question). Tieto tabuľky sú prepojené atribútom id. Keď sa potom vyhodnocuje odpoveď, porovná sa zadaná odpoveď s odpoveďou v stĺpci answer. Ja tabuľku answers rozširujem o stĺpec answer_in_relag. Pri vkladaní otázok sa odpoveď v relačnej algebre prevedie do SQL a uloží sa do atribútu answer, a odpoveď v relačnej algebre sa uloží do atribútu answer_in_relag. Vďaka tomu je editácia otázok príjemnejšia, pretože užívateľ vidí odpoveď, ktorú zadal a nie SQL dotaz. Zároveň môže porovnávanie prebiehať rovnakým spôsobom, lebo základ pôvodnej schémy sa nezmenil. Ďalej bolo potrebné skryť možnosti, ktoré nie sú relevantné pre relačnú algebru a pridať pohodlnejší spôsob testovania. Posledná zmena spočíva v jednoduchšom testovaní otázok. Pôvodná verzia vyžadovala id otázky, čo bolo dosť nepraktické. Po úprave je možné testovanie otázok pri editácií. 36
36 Náhľad webového rozhrania: Obrázok 5.1: Webové rozhranie 37
37 6 Záver Táto práca naplnila zadanie, ktoré bolo implementovať prevod relačnej algebry do SQL, integrácia s odpovedníkmi IS MU a tvorba webového rozhrania na správu uložených otázok. Ako prvé bolo potrebné vytvoriť gramatiku, ktorá by popisovala syntax relačnej algebry. Na prevedenie transformácie je potrebné vykonať syntaktickú analýzu aby sa preverilo, či sa jedná o platný výraz relačnej algebry. Počas syntaktickej analýzy prebieha aj preklad do SQL. Najproblematickejšia časť prevodu do SQL je premenovanie, ktoré je nutné vykonávať bez vedomia užívateľa. Táto práca neposkytuje úplné riešenie tohto problému, ale zmierňuje jeho dôsledky tým, že generuje čo najmenej SELECT klauzulí, čo má za dôsledok menší počet potrebných premenovaní. Vďaka tomu je v jednoduchších dotazoch možné používať celé meno atribútov. Ešte je možné odporučiť užívateľom, aby sa plným menám skúsili vyhýbať a pokiaľ nastáva dvojzmyselnosť, je lepšie atribúty premenovať. Prepojenie s odpovedníkmi IS MU prebieha prostredníctvom pripraveného rámca na komunikácie s odpovedníkmi, do ktorého bola implementovaná webová služba. Kontrola správnej odpovede sa potom vykoná tak, že zadaná odpoveď aj správna odpoveď sa prevedú do SQL a následne porovnajú. 38
38 Literatúra [1] Silberschatz, Abraham, Korth, Henry F., Sudarshan, S. Database system concepts. 5th ed. Boston : McGraw-Hill, xxvi, ISBN [2] Lucie Molková. Vyhodnocování výrazů v relační algebře. Bakalárska práca, FI MU [3] I. Černá, M. Křetínský a A. Kučera: Automaty a formální jazyky I, FI MU Materiál ku kurzu IB005, doporučený i k IB102. [cit. 17. Mája 2012]. Dostupné na: < [4] Susan Douglas. PostgreSQL: a comprehensive guide to building, programming, and administering PostgreSQL databases. Sams Publishing, [5] Parr, T. The definitive ANTLR reference : building domain-specific languages. Raleigh, N.C. : Pragmatic Bookshelf, [6] Ferdinand Hudek. Vyhodnocování příkazů jazyka SQL v odpovědnících IS. Bakalárska práca, FI MU [7] PB154 Základy databázových systémů, predmet vyučovaný na Fakulte informatiky Masarykovej univerzity. [cit. 17. Mája 2012]. Dostupné informácie na: < 39
39 Príloha Príloha obsahuje zdrojové kódy aplikácie na prevod relačnej algebry do SQL a zdrojové kódy webovej aplikácie vo formáte zip a jar. Tiež sú priložené potrebné knižnice. Webová aplikácia beží na < Aplikácia na prevod relačnej algebry do SQL potrebuje knižnicu antlr-3.3-complete.jar. Webová aplikácie potrebuje knižnice antlr-3.3-complete.jar, RelationalAlgebraGrammar.jar, SQLEvaluator.jar, commons-dbcp jar, commons-pool jar, jsqlparser.jar a postgresql jdbc4.jar. V tejto časti popíšem postup nasadenia webovej aplikácie na server. Najprv je nutné zabezpečiť aby bol na stroji nainštalovaný systém riadenia bázy dát PostgreSQL (verzia 8 alebo vyššia) a aplikačný server Tomcat (verzia 6). Ďalej je potrebné nastaviť pripojenie k databáze v projektoch SQLEvaluator a RopotsService. V oboch projektoch je potrebné nastaviť v súbore config.properties: host (host), port (port), meno databázy (dbname), meno užívateľa (user) a heslo (password). Teraz už stačí vytvoriť potrebné schémy: questions a test_tables. Schémy, spolu s potrebnými tabuľkami sa vytvoria spustením aplikácie SQLEvaluator (pokiaľ schémy už existujú, vymažú sa a vytvoria sa nové). Teraz je možné RopotsService zkompilovať a nasadiť na server. Stačí spustiť administratívnu stránku administračného serveru Tomcat, prihlásiť sa a vybrať súbor RopotsService.war. 40
Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)
Spájanie tabuliek Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Úvod pri normalizácii rozdeľujeme databázu na viacero tabuliek prepojených cudzími kľúčmi SQL umožňuje tabuľky opäť spojiť
More informationDatabázové systémy. SQL Window functions
Databázové systémy SQL Window functions Scores Tabuľka s bodmi pre jednotlivých študentov id, name, score Chceme ku každému doplniť rozdiel voči priemeru 2 Demo data SELECT * FROM scores ORDER BY score
More informationRegistrácia účtu Hik-Connect
Registrácia účtu Hik-Connect Tento návod popisuje postup registrácie účtu služby Hik-Connect prostredníctvom mobilnej aplikácie a webového rozhrania na stránke www.hik-connect.comg contents in this document
More informationDatabázy (1) Prednáška 11. Alexander Šimko
Databázy (1) Prednáška 11 Alexander Šimko simko@fmph.uniba.sk Contents I Aktualizovanie štruktúry databázy Section 1 Aktualizovanie štruktúry databázy Aktualizácia štruktúry databázy Štruktúra databázy
More informationAplikačný dizajn manuál
Aplikačný dizajn manuál Úvod Aplikačný dizajn manuál je súbor pravidiel vizuálnej komunikácie. Dodržiavaním jednotných štandardov, aplikácií loga, písma a farieb pri prezentácii sa vytvára jednotný dizajn,
More information1 Komplexný príklad využitia OOP
1 Komplexný príklad využitia OOP Najčastejším využitím webových aplikácií je komunikácia s databázovým systémom. Komplexný príklad je preto orientovaný práve do tejto oblasti. Od verzie PHP 5 je jeho domovskou
More informationRiešenia a technológie pre jednotnú správu používateľov
Riešenia a technológie pre jednotnú správu používateľov Radovan Semančík Agenda Úvod: Identity Crisis Technológie správy používateľov Postup nasadenia Záver Súčasný stav IT Security Nekonzistentné bezpečnostné
More informationJazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)
Jazyk SQL Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c) 2011-2016 Jazyk SQL - Structured Query Language SQL je počítačový jazyk určený na komunikáciu s relačným SRBD neprocedurálny (deklaratívny) jazyk
More information1 Vytvorenie tabuľky
Základy jazyka SQL (Structured Query Language) - vyvinula IBM začiatkom 70-tych rokov - je to deklaratívny jazyk (popisuje čo urobiť, nie ako) - je súčasťou veľkých databázových systémov (Informix, Oracle,
More informationPoradové a agregačné window funkcie. ROLLUP a CUBE
Poradové a agregačné window funkcie. ROLLUP a CUBE 1) Poradové a agregačné window funkcie 2) Extrémy pomocou DENSE_RANK(), TOP() - Príklady 3) Spriemernené poradia 4) Kumulatívne súčty 5) Group By a Datepart,
More informationkucharka exportu pro 9FFFIMU
požiadavky na export kodek : Xvid 1.2.1 stable (MPEG-4 ASP) // výnimočne MPEG-2 bitrate : max. 10 Mbps pixely : štvorcové (Square pixels) rozlíšenie : 1920x1080, 768x432 pre 16:9 // výnimočne 1440x1080,
More informationObsah. SOA REST REST princípy REST výhody prest. Otázky
REST Peter Rybár Obsah SOA REST REST princípy REST výhody prest Otázky SOA implementácie WEB (1990) CORBA (1991) XML-RPC (1998) WS-* (1998) SOAP RPC/literal SOAP Document/literal (2001) REST (2000) SOA
More informationDatabázy (1) Prednáška 08. Alexander Šimko
Databázy (1) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Subqueries (poddopyty) konštrukcia WITH Section 1 Subqueries (poddopyty) Subquery (poddopyt) Použitie SELECTu na mieste, kde sme
More informationRecipient Configuration. Štefan Pataky MCP, MCTS, MCITP
Recipient Configuration Štefan Pataky MCP, MCTS, MCITP Agenda Mailbox Mail Contact Distribution Groups Disconnected Mailbox Mailbox (vytvorenie nového účtu) Exchange Management Console New User Exchange
More informationCopyright 2016 by Martin Krug. All rights reserved.
MS Managed Service Copyright 2016 by Martin Krug. All rights reserved. Reproduction, or translation of materials without the author's written permission is prohibited. No content may be reproduced without
More informationVYLEPŠOVANIE KONCEPTU TRIEDY
VYLEPŠOVANIE KONCEPTU TRIEDY Typy tried class - definuje premenné a metódy (funkcie). Ak nie je špecifikovaná inak, viditeľnosť členov je private. struct - definuje premenné a metódy (funkcie). Ak nie
More informationAnycast. Ľubor Jurena CEO Michal Kolárik System Administrator
Anycast Ľubor Jurena CEO jurena@skhosting.eu Michal Kolárik System Administrator kolarik@skhosting.eu O nás Registrátor Webhosting Serverové riešenia Správa infraštruktúry Všetko sa dá :-) Index Čo je
More informationConstraint satisfaction problems (problémy s obmedzujúcimi podmienkami)
I2AI: Lecture 04 Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami) Lubica Benuskova Reading: AIMA 3 rd ed. chap. 6 ending with 6.3.2 1 Constraint satisfaction problems (CSP) We w
More informationZákladná(umelecká(škola(Jána(Albrechta Topoľčianska(15
Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15 851(01(Bra@slava Titl.: Ján(Hrčka Bohrova(11 851(01(Bra@slava V(Bra@slave(21.11.2013 Vec:(Odpoveď(na(informácie(ohľadom(mandátnej(zmluvy(na(základe(Zákona(č.(211/2000(Zb.
More informationDatabázy (2) Prednáška 08. Alexander Šimko
Databázy (2) Prednáška 08 Alexander Šimko simko@fmph.uniba.sk Contents I Funkcie Zložené typy PL/pgSQL Agregačné funkcie Funkcie Section 1 Funkcie Funkcie PostgreSQL umožňuje vytvoriť si vlastné databázové
More information2.1 DATA MODELS, SCHEMAS, AND INSTANCES
Sémantika význam; valid platný; integrita celistvosť a konzistentnosť dôslednosť bez protirečení, anomálií; 2.1 DATA MODELS, SCHEMAS, AND INSTANCES A data model - is the description of the structure of
More informationBGP - duálne prepojenie AS. (primary + backup spoj), s IBGP, cez virtuální L2 linky
BGP - duálne prepojenie AS (primary + backup spoj), s IBGP, cez virtuální L2 linky Peter Jašica Abstrakt: Cieľom tohto projektu je zhotoviť a otestovať funkčnosť BGP s dvojitým prepojením Autonómnych systémov.
More informationREPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára
REPORT DESIGNER úprava formulárov v Money S4 / Money S5 Informačný systém Money S4/S5 umožňuje upraviť tlačové zostavy tak, aby plne vyhovovali potrebám používateľa. Na úpravu tlačových zostáv slúži doplnkový
More informationOchrana koncových staníc pomocou Cisco Security Agent 6.0. Ľubomír Varga.
Ochrana koncových staníc pomocou Cisco Security Agent 6.0 Ľubomír Varga lubomir.varga@lynx.sk Agenda CSA 6.0 refresh Vybrané vlastnosti CSA 6.0 Application Trust levels Notify User Rule Actions User Justifications
More informationVzory, rámce a webové aplikácie
Vzory, rámce a webové aplikácie Jakub Šimko jakub.simko@stuba.sk Návrhové vzory (načo slúžia?) 1. Dobré zvyky v programovaní 2. Riešia často sa opakujúce problémy praxou overeným spôsobom 3. Pomôžu nám
More informationTvorba informačných systémov. 4. prednáška: Návrh IS
Tvorba informačných systémov 4. prednáška: Návrh IS Návrh informačného systému: témy Ciele návrhu ERD DFD Princípy OOP Objektová normalizácia SDD Architektonické pohľady UML diagramy Architektonické štýly
More informationFuzzy teoria a jazyk SQL
Fuzzy teoria a jazyk SQL Jazyk SQL používa Booleovu algebru, čo prináša jeden veľký problém. V otázke typu A and B and C and... Z, je nesprávnosť z uhla pohľadu v tom, že otázke nevyhovujú údaje, ktoré
More informationTP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca
TP-LINK 150Mbps Wireless AP/Client Router Model TL-WR743ND Rýchly inštalačný sprievodca Obsah balenia TL-WR743ND Rýchly inštalačný sprievodca PoE injektor Napájací adaptér CD Ethernet kábel Systémové požiadavky
More informationManuál k programu FileZilla
Manuál k programu FileZilla EXO TECHNOLOGIES spol. s.r.o. Garbiarska 3 Stará Ľubovňa 064 01 IČO: 36 485 161 IČ DPH: SK2020004503 support@exohosting.sk www.exohosting.sk 1 Úvod EXO HOSTING tím pre Vás pripravil
More informationDATABÁZOVÉ SYSTÉMY. Databázová technológia je pojem, ktorý sa zaoberá riadením veľkého množstva perzistentných (stály), spoľahlivých a zdieľaných dát.
LITERATÚRA: Jaroslav Pokorný Databázová abeceda Všetky manuály: POSTGRE SQL 7.2 C.J.Date an introduction to database systems Someber A. databázové systémy, 1988 DATABÁZOVÉ SYSTÉMY Databáza súbor informácií,
More informationŽILINSKÁ UNIVERZITA V ŽILINE
ŽILINSKÁ UNIVERZITA V ŽILINE Fakulta riadenia a informatiky Spracovanie dát v rozsiahlych databázach Dizertačná práca Študijný program: Pracovisko: Školiteľ: 9.2.9 Aplikovaná Informatika Žilinská Univerzita
More informationTestovanie bieleho šumu
Beáta Stehlíková FMFI UK Bratislava Opakovanie z prednášky Vygenerujeme dáta Vygenerujeme dáta: N
More informationPlatforma průmyslové spolupráce
Platforma průmyslové spolupráce CZ.1.07/2.4.00/17.0041 Název CEP portál pro simulaci Popis a využití komplexní zpracování událostí (CEP) aplikace pro spouštění CEP pravidel a sledování výstupů na předpřipraveném
More informationProblém Big Data a ako ho riešiť pomocou NoSQL. Ján Zázrivec Softec
Problém Big Data a ako ho riešiť pomocou NoSQL Ján Zázrivec Softec Dáta dnešného sveta Oblasti kde sa spracováva veľké množstvo dát: Internet Web vyhľadávače, Sociálne siete Veda Large Hadron Collider,
More informationNormalizácia a normálne formy
Normalizácia a normálne formy normalizácia je proces, pomocou ktorého sa dá databáza zbaviť štrukturálnych vád normalizácie je súhrnom niekoľkých tzv. normálnych foriem - množín pravidiel, ktoré hovoria
More informationSpôsoby zistenia ID KEP
Spôsoby zistenia ID KEP ID KEP (kvalifikovaný elektronický podpis) je možné zistiť pomocou napr. ovládacieho panela, prostredíctvom prehliadača Internet Expolrer, Google Chrome alebo Mozilla Firefox. Popstup
More informationDesatinné čísla #1a. Decimal numbers #1b. How much larger is 21,8 than 1,8? Desatinné čísla #2a. Decimal numbers #2b. 14 divided by 0,5 equals...
Desatinné čísla #1a Mravec išiel 5,5 cm presne na sever, potom 3,4 cm na východ, 1,8 cm na juh, 14,3 cm na západ, 1,3 cm na sever a 10,9 cm na východ. Najmenej koľko cm musí teraz prejsť, aby sa dostal
More informationĎakujem pánovi RNDr. Tomášovi Skopalovi Ph.D. za odborné vedenie, za ochotu a čas, ktorý mi venoval počas písania tejto bakalárskej práce.
Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Viliam Sabol Demonstrační aplikace vyhodnocování dotazu v relačním kalkulu Katedra softwarového inženýrství Vedoucí bakalářské
More informationDatabázové systémy. 10. prednáška. NoSQL databázy Viktor Škultéty, ESTEN s.r.o.
Databázové systémy 10. prednáška NoSQL databázy 26.4.2016 Viktor Škultéty, ESTEN s.r.o. 1 Prečo doteraz SQL a zrazu NoSQL? NoSQL - Not Only SQL znamená, že relačné systémy sú síce osvedčená technológia
More informationJeden z variantov príkazu priradenia nám umožňuje zadať za sebou aj viacej vstupných hodnôt, ako napríklad
Príkaz priradenia Príkaz priradenia slúži na priradenie hodnoty premennej. Má tvar premenná = výraz, kde premenná je identifikátor, znak = sa číta priraď a vyhodnotením výrazu sa získa hodnota určitého
More informationobsahuje 5 príkladov, spolu 29>25 bodov skupina:
Midterm 2013, verzia A Meno a priezvisko: obsahuje 5 príkladov, spolu 29>25 bodov skupina: 1A) [8 bodov] Zistite, čo počíta nasledujúca rekurzívna funkcia foo pre n>=0. Hint: foo(2013) = 6. static long
More informationVLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1
VLSM a CIDR CCNA2 Kapitola 6 1 Trošku histórie Pred rokom 1981 IP adresy používali na špecifikáciu siete len prvých 8 bitov Rok1981, RFC 791 Zaviedol adresný priestor s tromi triedami adries Polovica 90
More informationVýučbové nástroje pre relačné a objektové databázy
Slovenská technická univerzita v Bratislave FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Študijný program: Informatika Gabriel Tekeľ Výučbové nástroje pre relačné a objektové databázy Bakalársky projekt
More informationUNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU.
UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY VÝUKOVÁ WEBOVÁ APLIKÁCIA NA PROGRAMOVANIE GPU Diplomová práca 2017 Bc. Denis Spišák UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA
More informationMesačná kontrolná správa
Mesačná kontrolná správa Štrukturálna štúdia dec.16 nov.16 okt.16 sep.16 aug.16 júl.16 jún.16 máj.16 apr.16 mar.16 feb.16 jan.16 Internetová populácia SR 12+ 3 728 988 3 718 495 3 718 802 3 711 581 3 700
More informationUNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY
UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY PREVÁDZKA PORTÁLU PROJEKTOV VÝUKOVEJ ROBOTIKY CENTROBOT Bakalárska práca 2015 Denis Spišák UNIVERZITA KOMENSKÉHO V BRATISLAVE
More informationRýchlosť Mbit/s (download/upload) 15 Mbit / 1 Mbit. 50 Mbit / 8 Mbit. 80 Mbit / 10 Mbit. 10 Mbit / 1 Mbit. 12 Mbit / 2 Mbit.
Fiber 5 Mbit ** 5 Mbit / Mbit 5,90 Fiber 50 Mbit * 50 Mbit / 8 Mbit 9,90 Fiber 80 Mbit * 80 Mbit / Mbit 5,90 Mini Mbit* Mbit / Mbit 9,90 Klasik 2 Mbit* 2 Mbit / 2 Mbit Standard 8 Mbit* 8 Mbit / 3Mbit Expert
More informationPx Framework v for Delphi Programers to Asp.Net application. Px Framework v.1.07 for ASP.NET Komponenty pre rýchlu prácu z databázou
Px Framework v.1.07.02 for Delphi Programers to Asp.Net application Px Framework v.1.07 for ASP.NET Komponenty pre rýchlu prácu z databázou OBSAH 1.Základné komponenty Px Frameworku (Px Controls), stručný
More informationVYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULITMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND
More informationAplikácia k určovaniu rastlín pre platformu ios
Mendelova univerzita v Brně Provozně ekonomická fakulta Aplikácia k určovaniu rastlín pre platformu ios Bakalárska práca Vedúci práce: Ing. Dita Dlabolová Jakub Kozák Brno 2014 Na tomto mieste by som
More informationSystém pre podporu výuky teórie programovacích jazykov
Mendelova univerzita v Brně Provozně ekonomická fakulta Systém pre podporu výuky teórie programovacích jazykov Diplomová práca Vedúci práce: doc. Ing. Dr. Jiří Rybička Bc. Petra Pavlačičová Brno 2012 Ďakujem
More informationTextový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona
Popis textového formátu a xsd schémy na zasielanie údajov podľa 27 ods. 2 písm. f) zákona (formu na zaslanie údajov si zvolí odosielateľ údajov) Textový formát na zasielanie údajov podľa 27 ods. 2 písm.
More informationSYNTAKTICKÁ ANALÝZA VNORENÝCH
UNIVERZITA KOMENSKÉHO, BRATISLAVA FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY SYNTAKTICKÁ ANALÝZA VNORENÝCH PROGRAMOVACÍCH JAZYKOV DIPLOMOVÁ PRÁCA 2015 Bc. Tomáš Belan UNIVERZITA KOMENSKÉHO, BRATISLAVA FAKULTA
More informationMesačná kontrolná správa
Mesačná kontrolná správa Štrukturálna štúdia mar.18 feb.18 jan.18 dec.17 nov.17 okt.17 sep.17 aug.17 júl.17 jún.17 máj.17 apr.17 mar.17 Internetová populácia SR 12+ 3 904 509 3 802 048 3 870 654 3 830
More informationKapitola 8 Začíname s programom Base
Začíname s programom LibreOffice 4.2 Kapitola 8 Začíname s programom Base Vytváranie vstavanej plochej databázy Autorské práva Tento dokument je duševným vlastníctvom dokumentačného tímu LibreOffice Copyright
More informationOchrana proti DDoS za použitia open-source software. Katarína Ďurechová
Ochrana proti DDoS za použitia open-source software Katarína Ďurechová katarina.durechova@nic.cz 30.11.2013 Distributed Denial of Service odopretie služby dosiahnutím limitu pripojenia sieťovej karty CPU
More informationPOKROČILÉ C++ Marian Vittek
POKROČILÉ C++ Marian Vittek vittek@fmph.uniba.sk O predmete Pôvodne seminár Teraz normálna prednáška so skúškou/testom Predmetom kurzu je detailnejší pohľad na jazyk C++ a občasné porovnanie s inými programovacími
More informationWEBOVÁ PLATFORMA PRE TVORBU HIER WEB PLATFORM FOR GAME DEVELOPMENT
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS WEBOVÁ PLATFORMA
More informationNÁVRH A REALIZÁCIA WEBOVEJ APLIKÁCIE FINANCOVANIE POLITICKÝCH STRÁN
Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky NÁVRH A REALIZÁCIA WEBOVEJ APLIKÁCIE FINANCOVANIE POLITICKÝCH STRÁN Bakalárska práca 2017 Tomáš Sláma Univerzita Komenského v
More informationVYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS IMPLEMENTACE
More informationEntity Framework: Úvod
Entity Framework: Úvod Martin Macák Fakulta informatiky, Masarykova univerzita, Brno 29. 9. 2016 Osnova prednášky 1. Základy Entity Frameworku 2. Návrh databázy (detailnejšie Code First prístup) 3. Migrácie
More informationFAKULTA INFORMAČNÍCH TECHNOLOGIÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SIMULACE CHOVÁNÍ
More informationUniverzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky. Interaktívna výuková webová aplikácia na riešenie úloh o pravdepodobnosti
Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Interaktívna výuková webová aplikácia na riešenie úloh o pravdepodobnosti Bakalárska práca 2016 Zuzana Majeríková Univerzita
More informationÚtoky typu Cross-Site Scripting
Masarykova univerzita Fakulta informatiky Útoky typu Cross-Site Scripting Bakalárska práca Oliver Chorvát Brno, jar 2010 Prehlásenie Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom,
More informationCoordinates ordering in parallel coordinates views
Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Coordinates ordering in parallel coordinates views Bratislava, 2011 Lukáš Chripko Univerzita Komenského v Bratislave Fakulta
More informationVYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND
More informationNormalizácia relačných databáz (Bakalárska práca)
Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava Normalizácia relačných databáz (Bakalárska práca) Martin Vlčák Vedúci: Dr. Tomáš Plachetka Bratislava, 2009
More informationD.Signer prostriedok pre vytváranie zaručeného elektronického podpisu. Inštalačná príručka
D.Signer prostriedok pre vytváranie zaručeného elektronického podpisu Inštalačná príručka Obsah 1 Predpoklady pre inštaláciu D.Signer... 3 1.1 Inštalácia.NET Framework... 3 1.1.1 Windows 8, 8.1... 4 1.1.2
More informationMicrosoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia
Microsoft Azure platforma pre Cloud Computing Juraj Šitina, Microsoft Slovakia m Agenda Cloud Computing Pohľad Microsoftu Predstavujeme platformu Microsoft Azure Benefity Cloud Computingu Microsoft je
More information6. Riadenie chodu programu
6. Riadenie chodu programu 6.1. Výrazový príkaz 6.2. Prázdny príkaz 6.3. Bloky. 6.4. Oblasť platnosti identifikátora 6.5. Podmienený príkaz if-else. 6.6. Prepínač 6.7. Cykly Cyklus while Cyklus for Cyklus
More informationWEBOVÝ MODUL NA SPRÁVU DOVOLENKY
WEBOVÝ MODUL NA SPRÁVU DOVOLENKY Róbert Lanák Ústav informatizácie, automatizácie a matematiky Oddelenie informatizácie a riadenia procesov Fakulta chemickej a potravinárskej technológie Slovenská Technická
More informationIMPLEMENTACE MODULÁRNÍ ARITMETIKY DO OBVODŮ FPGA A ASIC
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF
More informationÚRAD VEREJNÉHO ZDRAVOTNÍCTVA SLOVENSKEJ REPUBLIKY Trnavská cesta 52 P.O.BOX Bratislava
ÚRAD VEREJNÉHO ZDRAVOTNÍCTVA SLOVENSKEJ REPUBLIKY Trnavská cesta 52 P.O.BOX 45 826 45 Bratislava Úrad verejného zdravotníctva Slovenskej republiky upozorňuje na výskyt nebezpečných výrobkov farby na tetovanie
More informationServer pre systém na detekciu indikátorov kompromitácie
Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Server pre systém na detekciu indikátorov kompromitácie Bakalárska práca 2016 Michal Fikar Univerzita Komenského v Bratislave
More informationRelational Model, Relational Algebra, and SQL
Relational Model, Relational Algebra, and SQL August 29, 2007 1 Relational Model Data model. constraints. Set of conceptual tools for describing of data, data semantics, data relationships, and data integrity
More informationXML databázy. Jana Dvořáková Pokročilé databázové technológie, FIIT STU
XML databázy Jana Dvořáková 3.12.2010 Pokročilé databázové technológie, FIIT STU Obsah XML a XML databáza Design XML databázy Dotazovanie nad XML databázou Typy XML databáz Zhrnutie a diskusia XML a XML
More informationXamarin písanie Android a ios aplikácií v C#
www.dotnetcollege.cz Xamarin písanie Android a ios aplikácií v C# Roman Jašek Software Architect, Riganti s.r.o. MSP, MCP roman.jasek@riganti.cz Xamarin vs. Xamarin Forms ios C# UI Android C# UI Windows
More informationRelational Algebra and SQL
Relational Algebra and SQL Relational Algebra. This algebra is an important form of query language for the relational model. The operators of the relational algebra: divided into the following classes:
More informationIan Kenny. November 28, 2017
Ian Kenny November 28, 2017 Introductory Databases Relational Algebra Introduction In this lecture we will cover Relational Algebra. Relational Algebra is the foundation upon which SQL is built and is
More informationLL LED svietidlá na osvetlenie športovísk. MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám.
LL LED svietidlá na osvetlenie športovísk MMXIII-X LEADER LIGHT s.r.o. Všetky práva vyhradené. Uvedené dáta podliehajú zmenám. LL SPORT LL SPORT je sofistikované vysoko výkonné LED svietidlo špeciálne
More informationSuperstrict mód pre Javascript
Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Superstrict mód pre Javascript Bakalárska práca 2016 Matej Krajčovič Univerzita Komenského v Bratislave Fakulta matematiky, fyziky
More informationPortál pre odborné publikovanie ISSN
1 Portál pre odborné publikovanie ISSN 1338-0087 16. Matlab 2D grafy Foltin Martin MATLAB/Comsol 25.09.2009 Silnou stránkou prostredia Matlab je grafika. Grafika je nástroj na prehľadné zobrazovanie výsledkov,
More informationSYSTÉM NA EVIDENCIU A KATEGORIZÁCIU
FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO BRATISLAVA Bakalárska práca SYSTÉM NA EVIDENCIU A KATEGORIZÁCIU ŠTANDARDIZAČNÝCH MATERIÁLOV Eva Porvazníková vedúci bakalárskej práce: Doc.
More informationUNIVERZITA KOMENSKÉHO FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY. Katedra Informatiky DIPLOMOVÁ PRÁCA. Branislav Belas Programové a počítačové systémy
UNIVERZITA KOMENSKÉHO FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Katedra Informatiky DIPLOMOVÁ PRÁCA Meno: Odbor: Vedúci dipl. práce: Branislav Belas Programové a počítačové systémy RNDr. Ján Šturc, CSc.
More informationUNIVERZITA KARLOVA V PRAZE MATEMATICKO-FYZIKÁLNÍ FAKULTA. Katedra softwarového inženýrství
UNIVERZITA KARLOVA V PRAZE MATEMATICKO-FYZIKÁLNÍ FAKULTA BAKALÁŘSKÁ PRÁCE Jaroslav Pastorek Informační systém pro obchodníka s cennými papíry Katedra softwarového inženýrství VEDOUCÍ BAKALÁŘSKÉ PRÁCE:
More informationInterpreter UNITY DIPLOMOVÁ PRÁCA
Interpreter UNITY DIPLOMOVÁ PRÁCA Autor práce: Michal Šuster UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY FYZIKY A INFORMATIKY KATEDRA INFORMATIKY Vedúci záverečnej práce: RNDr. Damas Gruska,
More informationsystemove programovanie win32 programovanie
systemove programovanie win32 programovanie zakladny princip uzivatel interaguje so systemom klavesnicou, mysou tym generuje udalosti, ktore sa radia do,,message queue" (front sprav) aplikacia vytahuje
More informationProgramovanie v jazyku Python. Michal Kvasnica
Programovanie v jazyku Python Michal Kvasnica Organizačné detaily Prednášky aj cvičenia v 638 Povinná účasť na cvičeniach Hodnotenie: priebežné odovzdávanie zadaní (40% známky) záverečný projekt na skúške
More informationBÁZA ZNALOSTÍ A ZRUČNOSTÍ ŠTUDENTOV
SLOVENSKÁ TECHNICKÁ UNIVERZITA Fakulta informatiky a informačných technológií BÁZA ZNALOSTÍ A ZRUČNOSTÍ ŠTUDENTOV (Tímový projekt) Dokumentácia k projektu Tím č.10 ČERNÉ OFCE: Bc. Martin Macko Bc. Martin
More informationVYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS KONSTRUKCE NEDETERMINISTICKÝCH
More informationJAVA. Sieťové programovanie
JAVA Sieťové programovanie Sieťové programovanie Sieťová knižnica jazyka JAVA bola vytvorená podľa súborovej knižnice Zapúzdrovanie pripojení do streamov Multithreading Identifikácia počítača Každý počítač
More informationVYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND
More informationE-LEARNING PRE PREDMET AOS
Žilinská univerzita v Žiline Elektrotechnická fakulta Katedra experimentálnej elektrotechniky E-LEARNING PRE PREDMET AOS Lukáš PACULÍK 2008 E-learning pre predmet AOS BAKALÁRSKA PRÁCA LUKÁŠ PACULÍK ŽILINSKÁ
More informationAplikácia na monitorovanie prípravy obhajoby dizertácie MARTIN BIES
Aplikácia na monitorovanie prípravy obhajoby dizertácie MARTIN BIES 2008 Aplikácia na monitorovanie prípravy obhajoby dizertácie BAKALÁRSKA PRÁCA Martin Bies UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA
More informationKONFERENČNÍ A ŽURNÁLOVÝ REDAKČNÍ SYSTÉM S MODULÁRNÍ ARCHITEKTUROU
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS
More informationMOŽNOSTI VYUŽITIA ĽUDSKÉHO POSTUPU PRE NÁVRH
MOŽNOSTI VYUŽITIA ĽUDSKÉHO POSTUPU PRE NÁVRH ALGORITMOV NA RIEŠENIE ŤAŽKÝCH PROBLÉMOV DIPLOMOVÁ PRÁCA Matej Lučenič UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY KATEDRA INFORMATIKY
More informationAplikácia na prezentovanie multimediálneho obsahu na TV
Masarykova univerzita Fakulta informatiky Aplikácia na prezentovanie multimediálneho obsahu na TV Diplomová práca Bc. Marián Varaga Brno, jar 2017 Namiesto tejto stránky vložte kópiu oficiálneho podpísaného
More informationObrázok č. 1 Byte. Obrázok č. 2 Slovo
C++ pod lupou Nie som ortodoxným prívržencom nijakého dnes používaného jazyka, poznám ich už riadnu kôpku, ale najbližšie mám práve k C++. Prečo, o tom by sa dalo diskutovať donekonečna, nie je to však
More informationVnorené SQL. Autor prezentácie: Peter Šípoš
Vnorené SQL Autor prezentácie: Peter Šípoš Literatúra Programmatic SQL od Pearson Ed Embedded SQL: http://download.oracle. com/docs/cd/b10501_01/appdev.920/a97269/pc_06sql.htm Oracle Dynamic SQL: http://download.oracle.
More informationBAKALÁŘSKÁ PRÁCE. Generátor testovacích XML dat
Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Jakub Michalko Generátor testovacích XML dat Katedra softwarového inženýrství Vedoucí bakalářské práce: RNDr. Irena Mlýnková, Ph.D.
More information