Vyhodnocovanie výrazov relačnej algebry v odpovedníkoch IS

Size: px
Start display at page:

Download "Vyhodnocovanie výrazov relačnej algebry v odpovedníkoch IS"

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

Databázové systémy. SQL Window functions

Databá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 information

Registrácia účtu Hik-Connect

Registrá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 information

Databázy (1) Prednáška 11. Alexander Šimko

Databá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 information

Aplikačný dizajn manuál

Aplikač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 information

1 Komplexný príklad využitia OOP

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

Riešenia a technológie pre jednotnú správu používateľov

Rieš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 information

Jazyk SQL. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

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

1 Vytvorenie tabuľky

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

Poradové a agregačné window funkcie. ROLLUP a CUBE

Poradové 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 information

kucharka exportu pro 9FFFIMU

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

Obsah. SOA REST REST princípy REST výhody prest. Otázky

Obsah. 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 information

Databázy (1) Prednáška 08. Alexander Šimko

Databá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 information

Recipient Configuration. Štefan Pataky MCP, MCTS, MCITP

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

Copyright 2016 by Martin Krug. All rights reserved.

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

VYLEPŠOVANIE KONCEPTU TRIEDY

VYLEPŠ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 information

Anycast. Ľubor Jurena CEO Michal Kolárik System Administrator

Anycast. Ľ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 information

Constraint satisfaction problems (problémy s obmedzujúcimi podmienkami)

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

Základná(umelecká(škola(Jána(Albrechta Topoľčianska(15

Zá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 information

Databázy (2) Prednáška 08. Alexander Šimko

Databá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 information

2.1 DATA MODELS, SCHEMAS, AND INSTANCES

2.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 information

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

REPORT DESIGNER 1 VYTVORENIE A ÚPRAVA FORMULÁRA. úprava formulárov v Money S4 / Money S Vytvorenie formulára

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

Ochrana 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. 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 information

Vzory, rámce a webové aplikácie

Vzory, 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 information

Tvorba informačných systémov. 4. prednáška: Návrh IS

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

Fuzzy teoria a jazyk SQL

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

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

Manuál k programu FileZilla

Manuá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 information

DATABÁ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.

DATABÁ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 Ž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 information

Testovanie bieleho šumu

Testovanie bieleho šumu Beáta Stehlíková FMFI UK Bratislava Opakovanie z prednášky Vygenerujeme dáta Vygenerujeme dáta: N

More information

Platforma průmyslové spolupráce

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

Problé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 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 information

Normalizácia a normálne formy

Normalizá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 information

Spôsoby zistenia ID KEP

Spô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 information

Desatinné čí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. 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.

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

Databá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 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 information

Jeden z variantov príkazu priradenia nám umožňuje zadať za sebou aj viacej vstupných hodnôt, ako napríklad

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

obsahuje 5 príkladov, spolu 29>25 bodov skupina:

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

VLSM a CIDR. CCNA2 Kapitola Cisco Systems, Inc. All rights reserved. Cisco Public 1

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

Výučbové nástroje pre relačné a objektové databázy

Vý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 information

UNIVERZITA 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. 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 information

Mesačná kontrolná správa

Mesač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 information

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY

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

Rý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.

Rý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 information

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

VYSOKÉ 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 information

Aplikácia k určovaniu rastlín pre platformu ios

Apliká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 information

Systém pre podporu výuky teórie programovacích jazykov

Systé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 information

Textový formát na zasielanie údajov podľa 27 ods. 2 písm. f) zákona

Textový 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 information

SYNTAKTICKÁ ANALÝZA VNORENÝCH

SYNTAKTICKÁ 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 information

Mesačná kontrolná správa

Mesač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 information

Kapitola 8 Začíname s programom Base

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

Ochrana proti DDoS za použitia open-source software. Katarína Ďurechová

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

POKROČILÉ C++ Marian Vittek

POKROČ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 information

WEBOVÁ PLATFORMA PRE TVORBU HIER WEB PLATFORM FOR GAME DEVELOPMENT

WEBOVÁ 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 information

NÁVRH A REALIZÁCIA WEBOVEJ APLIKÁCIE FINANCOVANIE POLITICKÝCH STRÁN

NÁ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 information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ 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 information

Entity Framework: Úvod

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

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

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

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

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

Coordinates ordering in parallel coordinates views

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ 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 information

Normalizácia relačných databáz (Bakalárska práca)

Normalizá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 information

D.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 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 information

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia

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

6. Riadenie chodu programu

6. 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 information

WEBOVÝ MODUL NA SPRÁVU DOVOLENKY

WEBOVÝ 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 information

IMPLEMENTACE MODULÁRNÍ ARITMETIKY DO OBVODŮ FPGA A ASIC

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

Server pre systém na detekciu indikátorov kompromitácie

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

Relational Model, Relational Algebra, and SQL

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

XML databázy. Jana Dvořáková Pokročilé databázové technológie, FIIT STU

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

Xamarin písanie Android a ios aplikácií v C#

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

Relational Algebra and SQL

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

Ian Kenny. November 28, 2017

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

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

Superstrict mód pre Javascript

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

Portál pre odborné publikovanie ISSN

Portá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 information

SYSTÉM NA EVIDENCIU A KATEGORIZÁCIU

SYSTÉ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 information

UNIVERZITA 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. 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 information

UNIVERZITA KARLOVA V PRAZE MATEMATICKO-FYZIKÁLNÍ FAKULTA. Katedra softwarového inženýrství

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

Interpreter UNITY DIPLOMOVÁ PRÁCA

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

systemove programovanie win32 programovanie

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

Programovanie v jazyku Python. Michal Kvasnica

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

BÁZA ZNALOSTÍ A ZRUČNOSTÍ ŠTUDENTOV

BÁ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 information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ 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 information

JAVA. Sieťové programovanie

JAVA. 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 information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ 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 information

E-LEARNING PRE PREDMET AOS

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

Aplikácia na monitorovanie prípravy obhajoby dizertácie MARTIN BIES

Apliká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 information

KONFERENČNÍ A ŽURNÁLOVÝ REDAKČNÍ SYSTÉM S MODULÁRNÍ ARCHITEKTUROU

KONFERENČ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 information

MOŽNOSTI VYUŽITIA ĽUDSKÉHO POSTUPU PRE NÁVRH

MOŽ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 information

Aplikácia na prezentovanie multimediálneho obsahu na TV

Apliká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 information

Obrázok č. 1 Byte. Obrázok č. 2 Slovo

Obrá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 information

Vnorené SQL. Autor prezentácie: Peter Šípoš

Vnorené 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 information

BAKALÁŘSKÁ PRÁCE. Generátor testovacích XML dat

BAKALÁŘ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