Implementace XML signatur
|
|
- Ondřej Macháček
- před 8 lety
- Počet zobrazení:
Transkript
1 MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY #ris m p Implementace XML signatur BAKALÁŘSKÁ PRÁCE Petr Neděla Brno, podzim 2005
2 Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Vedoucí práce: Ing. Petr Adámek 11
3 Poděkování Děkuji svému vedoucímu bakalářské práce Ing. Petrovi Adámkovi za četné konzultace, cenné rady a připomínky. Také bych chtěl poděkovat Šárce Grigarčíkové za gramatickou a stylistyckou korekturu. m
4 Shrnutí K ukládání a výměně informací se často využívá jazyk XML. Dokument v XML jazyku tvoří stromovou strukturu uzlů. Při některých způsobech vyhledávání je třeba tuto strukturu zohlednit. Signatury stromu jsou jednou z metod indexování struktury XML dokumentu, umožňující okamžitě vyhodnocovat strukturální vztahy mezi uzly stromu. Cílem práce je implementovat standardní a rozšířené signatury v systému XIQE a porovnat jejich vzájemnou efektivitu. IV
5 Klíčová slova XML, XML Tree Signatures, standardní signatury, rozšířené signatury, indexování, Dietzovo schéma, XIQE v
6 Obsah 1 Úvod 1 2 Standardy rodiny XML Jazyk XML Historie jazyka XML Syntaxe dokumentu XML Well formed dokument Model XML dokumentu Navigace ve stromu XML dokumentu Syntaxe jazyka XPath Rozhraní přístupu ke XML dokumentu Rozhraní SAX Rozhraní DOM Přístup ke XML databázím 7 3 Indexování struktury XML dokumentu Dietzovo kódovací schéma Signatury XML stromu Standardní signatury Osa ancestor Osa preceding Osa descendant Osa following Osa parent Osa child Osa preceding-sibling Osa following-sibling Osa self Osa ancestor-or-self Osa descendant-or-self Rozšířené signatury Osa ancestor Osa preceding Osa descendant Osa following Osa parent Osa child Osa preceding-sibling Osa following-sibling Osy self, ancestor-or-self a descendant-or-self Editace signatur Standardní signatury 15 vi
7 Přidání přímého potomka Přidání před kontextový uzel Odebrání uzlu Rozšířené signatury Přidání přímého potomka Přidání před kontextový uzel Odebrání uzlu Dynamické signatury 17 4 Implementace Použité technologie Programovací jazyk JAVA Balíkjava.nio Subversion Maven Jakarta Commons JUnit Systém XIQE Struktura systému Fungování systému Důležité třídy a rozhraní Třídy signatur XML stromu Funkční rozhraní signatur Struktura signatury Generování signatury Použití signatur 23 5 Testování efektivity Způsob testování XMark XPathMark Systém ExEx Experimenty Testovací konfigurace Prováděné experimenty Výsledky testů Vyhodnocení experimentů 27 6 Závěr 28 Bibliografie 29 vii
8 Kapitola 1 Úvod Nasazování nových výpočetních systémů a propojení počítačových sítí díky internetu způsobuje, že množství dat, které jsou zpracovávány a vyměňovány elektronicky, neustále roste. Hojně rozšířeným formátem pro ukládání a výměnu informací je také jazyk XML. Tento formát je oblíben zejména pro jeho otevřenost, rozšiřitelnost a snadné zpracování. Jazyk XML přidává k datům sémantiku a hierarchicky rozčleňuje dokument. S rostoucím objemem dat uložených v XML roste i potřeba efektivního vyhledávání v těchto datech, ale i v struktuře XML dokumentu. K tomuto účelu jsou využívány různé indexační metody, které kompaktně zachycují strukturu XML dokumentu a efektivně vyhodnocují strukturální vztahy mezi uzly XML dokumentu. Tato práce se zabývá indexováním XML dokumentů pomocí signatur XML stromu. Nejprve je představen jazyk XML a jsou zmíněny jeho hlavní rysy s ohledem na indexování. Dále jsou popsány signatury XML stromu, jejich struktura a princip fungování. Také je prezentován systém XIQE (XML Indexing and Querying Engine) vyvíjený na fakultě informatiky, který má za cíl porovnávat různé indexační metody. Cílem práce je popsat indexování XML dokumentu pomocí standardních a rozšířených signatur XML stromu, implementovat tuto metodu indexování v systému XIQE a zhodnotit efektivitu signatur pomocí vhodné sady experimentů. 1
9 Kapitola 2 Standardy rodiny XML Tato kapitola je zaměřena na základní popis jazyka XML a to především na strukturální vztahy uzlů. Popisuje model XML dokumentu jako strukturu uspořádaného stromu. Nastiňuje problém adresace jednotlivých uzlů dokumentu a seznamuje se syntaxí navigačního jazyka XPath. 2.1 Jazyk XML XML je hojně používaným značkovacím standardem. Používá se zejména v prostředí internetu jako vhodný formát pro výměnu informací. XML je populární hlavně pro možnost definování vlastních značek a pro oddělení sémantiky dat od jejich vizuální podoby v různých prostředích Historie jazyka XML XML (Extensible Markup Language) neboli rozšiřitelný značkovací jazyk, je metajazyk, který říká, jak vytvářet značkovací jazyky vhodné pro tvorbu dokumentů obsahujících strukturovaná data. Jedná se o standard konsorcia W3C, který se vyvinul z jazyka SGML (Standard Generalized Markup Language) jako jeho omezení a zjednodušení. Využívá se jako vhodný formát pro ukládání a výměnu informací, zejména pro jeho dobrou čitelnost pro člověka a snadné strojové zpracování Syntaxe dokumentu XML Dokumenty jazyka XML mají textový formát, jsou tvořeny textovými daty a značkami (tags). Značky přidávají k dokumentu dodatečné informace, hierarchicky člení dokument a určují sémantiku dat. Jsou pro ně rezervovány znaky lomených závorek, do kterých jsou uzavřeny. Nejpoužívanější typy značek jsou: komentáře: <! text komentáře > - umožňují vkládat do textu vlastní poznámky, které nejsou dále interpretovány; instrukce pro zpracování: <?identif ikator data? >-přidává k dokumentu informace pro aplikace, například analyzátory, XSLT procesory atd.; 2
10 2.1. JAZYK XML počáteční a koncová značka elementu: < jmenoelementu> a </jmenoelementu> - párová značka, nejdůležitější značka, dává sémantiku obsahu vyskytujícímu se mezi těmito značkami, vytváří strukturu; prázdný element: < jmenoelementu/> - jedná se jen o zkrácený zápis elementu, který neobsahuje žádný element ani textový uzel. Počáteční značka elementu může obsahovat i definici atributů, které přidávají k elementu dále nestrukturované informace. Atribut je řetězec tvaru nazevatributu="hodnota", například: <auto objemmotoru="l, 9" barva="modrá">. XML klade na strukturu a syntaxi dokumentu mnohé požadavky. Například koncové značce elementu musí předcházet koncová značka vnořeného elementu. XML určuje i znaky, které se smí vyskytovat v názvu elementu Well formed dokument Dokument splňující všechna obecná pravidla XML se označuje jako well formed. Ukázku well formed dokumentu je možno vidět v příkladu Podle pravidel jazyka XML lze vytvářet obrovské množství dokumentů. Pro aplikace je však vhodné tuto množinu omezit a zpracovávat dokumenty jen určitých typů, u kterých aplikace ví, jak data interpretovat. K tomuto účelu se používá DTD (Document Type Definition), která svými pravidly umožňuje omezit množinu názvů elementů, kontext jejich výskytu, či určit přípustné hodnoty atributů. Použití DTD v XML dokumentu se deklaruje značkou <!DOCTYPE jmenoelementu ID-ExternihoDTD [InterniDTD]>. Řetězec jmenoelementu je názvem elementu na nejvyšší úrovni. Tento element se nazývá kořenový (root element) a musí být v dokumentu jediný. ID-ExternihoDTD je jméno souboru obsahující pravidla DTD. InterniDTD jsou pravidla vepsaná přímo do značky DTD. Ve značce nemusí být interní nebo externí část obsažena. Dokument splňující DTD se nazývá valid. <?xml version="l.0"?> <adresa> <ulice>mlýnská</ulice> <cislopopisne>2 9K/cislopopisne> <obec>velké Hoštice</obec> <psc>7473k/psc> </adresa> <! Nějaký komentář > Příklad 2.1.1: Ukázka well formed XML dokumentu 3
11 2.2. MODEL XML DOKUMENTU 2.2 Model XML dokumentu Na well formed dokumenty lze z logického hlediska pohlížet jako na uspořádané stromy, které jsou tvořeny několika typy uzlů. Kořenem tohoto stromu je abstraktní uzel označo vaný jako uzel dokumentu. Přímo na uzlu dokumentu je zavěšen kořenový element a uzly hlavičky dokumentu. Ukázku stromu XML dokumentuje možno vidět na obrázku 2.1. <^Nějaký komentář^ Obrázek 2.1: Model XML dokumentu Ve stromech se převážně vyskytují uzly těchto typů: elementy (elements); atributy (attributs); instrukce pro zpracování (processing instructions); komentáře (comments); textové uzly (text nodes); entity (entities); CDATA. Nejdůležitějším typem uzlů jsou elementy, které jako jediné mohou obsahovat další uzly a tvořit tak hierarchickou strukturu. Ostatní typy uzlů tvoří ve stromě listy. 4
12 2.3 Navigace ve stromu XML dokumentu 2.3. NAVIGACE VE STROMU XML DOKUMENTU Při práci s XML dokumenty je potřeba vybírat části dokumentu, odkazovat na jednotlivé uzly, zpracovávat některé atributy. Pro adresování uzlů dokumentu je určen jazyk XPath. XPath není plnohodnotným dotazovacím jazykem, neboť není schopen vybírat uzly z více dokumentů nebo je dále zpracovávat. Jedná se však o mocný nástroj k navigaci XML dokumentem, a proto se využívá i v mnoha dalších jazycích, jako jsou XQuery, XPoitner, XSLT, Schematron Syntaxe jazyka XPath XPath výraz se skládá z jednotlivých kroků. Kroky jsou tvořeny osou, testem uzlu a predikátem. Obecně se zapisují: osa: : testuz lu [predikát ]. Osa specifikuje množinu, ve které se bude uzel vyhledávat. TestUzlu určuje jméno nebo typ uzlu, který má být vybrán a predikát umožňuje zúžit výběr uzlů pomocí testu na některou vlastnost. Například výraz: child: : auto [@barva= "modrá" ], vybere elementy se jménem auto, které mají atribut barva s hodnotou rovnající se řetězci modrá. Jednotlivé kroky se dají skládat dohromady, jako oddělovač kroků slouží znak lomítko. Jednotlivé kroky se vyhodnocují zleva doprava a aplikují se na již dříve vybranou množinu uzlů. Výraz začínající lomítkem je absolutní a vyhodnocuje se vzhledem k uzlu dokumentu. Pokud úvodní lomítko chybí, začíná se s vyhodnocováním od kontextového uzlu. Ve výrazech jazyka XPath je možno setkat se s použitím dvou lomítek za sebou. Znamená to, že při vyhledávání odpovídajících uzlů lze přeskočit libovolné množství úrovní směrem do hloubky stromu dokumentu. To má však stejný význam, jako by se hledalo na ose descendant Pro tvorbu XPath výrazů je možné používat tyto osy: child - množina přímých potomků kontextového uzlu; descendant - množina všech potomků kontextového uzlu; descendant-or-self - množina všech potomků kontextového uzlu plus kontextový uzel; parent - množina obsahující rodiče kontextového uzlu; ancestor - množina všech předků kontextového uzlu; ancestor-or-self - množina všech předků kontextového uzlu plus kontextový uzel; selí- množina obsahující kontextový uzel; following - množina všech uzlů nacházejících se za kontextovým uzlem; following-sibling - množina všech sourozeneckých uzlů nacházejících se za kontextovým uzlem; 5
13 2.4. ROZHRANÍ PŘÍSTUPU KE XML DOKUMENTU preceding - množina všech uzlů nacházejících se před kontextovým uzlem mimo předků kontextového uzlu; preceding-sibling - množina všech sourozeneckých uzlů nacházejících se před kontextovým uzlem; attribute - množina atributů kontextového uzlu; namespace - množina uzlů jmenných prostorů deklarovaných pro daný uzel. Výchozí osou je osa child. Pokud se tedy v definici kroku osa vynechá, použije se osa child. Zpracování XPath výrazu po výběru množiny uzlů podle specifikované osy dále pokračuje vyhodnocením testu uzlu. Výběr uzlu lze omezit těmito funkcemi: * - vybere všechny uzly základního typu dané osy 1 ; nodeq - vybere všechny uzly dané předchozím výběrem; textq - vybere jen textové uzly; jmenoelementu - vybere elementy se zadaným jménem; commentq - vybere komentáře. Posledním omezením na výběr uzlů, které lze v jednotlivém kroku uplatnit, je predikát. Jedná se o libovolný výraz jazyka XPath, jehož vyhodnocením se získá pravdivostní hodnota. Tato hodnota určuje, zdali bude testovaný uzel zahrnut do výběru, či nikoliv. Predikát je uzavřen v hranatých závorkách. V XPath výrazech je možné narazit i na predikáty navracející přirozené číslo. V takovémto případě se jedná o test na pořadí uzlů, který se interpretuje jako position () = hodnotavyrazu. Například dojde-li k vyhodnocení výrazu /kniha/kapitola [5], bude navrácen uzel páté kapitoly knihy. 2.4 Rozhraní přístupu ke XML dokumentu Pro zpracovávání XML dokumentů aplikacemi existují dvě základní rozhraní nazývané SAX (Simple Api to XML) a DOM (Document Object Model). Jsou velice užitečná a každé má své výhody i nevýhody Rozhraní SAX SAX funguje na principu procházení souboru dokumentu a jeho analyzování. Pokaždé, když SAX rozpozná v dokumentu některý z uzlů dokumentu, zašle aplikaci zprávu o rozpoznaném uzlu a jeho hodnotě. Aplikace pak může vhodně reagovat a jednotlivé uzly zpracovávat. 1. Na ose attribute vybere atributy, na ose namespace vybere jmenné prostory. Na ostatních osách vybere elementy. 6
14 2.4. ROZHRANÍ PŘÍSTUPU KE XML DOKUMENTU Výhodou SAX je hlavně jeho rychlost a jednoduchost, avšak klade větší nároky na samotnou aplikaci, která si musí pamatovat hodnoty jednotlivých uzlů a určovat závislosti mezi uzly Rozhraní DOM Naproti tomu stojí rozhraní DOM, to vytvoří podle dokumentu objektový model a předá ho aplikaci. Pro sestavování stromu dokumentu využívá DOM události generované SAX analyzátorem. Jedná se tedy o jakousi nadstavbu rozhraní SAX. Vytvářením objektové struktury celého dokumentu roste paměťová náročnost, zato však DOM poskytuje příjemnější práci s XML dokumentem Přístup ke XML databázím Rozhraní SAX a DOM jsou však využitelná spíše k přístupu k jednotlivým souborům. Při práci s kolekcemi dokumentů nebo v oblasti nativních XML databází, se jeví značně neefektivní procházet celý dokument a vytvářet objektové modely při každé operaci nad dokumentem. V těchto případech je vhodné dokumenty zpracovat jen jednou a to při vkládání do databáze nebo kolekce a rozdělit je na data a strukturu. Data lze uložit zvlášť za pomocí standardních metod užívaných v relačních databázích. Pro strukturu je důležité zvolit některou indexační metodu, strukturu dokumentu indexovat a vhodně uložit. Pak je možné dotazy efektivně vyhodnocovat nad daným indexem a přistupovat jen k uzlům, které je nezbytně nutné zpracovat. 7
15 Kapitola 3 Indexování struktury XML dokumentu Procházení objektové struktury stromu při vyhledávání v XML dokumentech se nejeví moc efektivní. Proto se hledají metody, jak vhodně a kompaktně zachytit stromovou strukturu a urychlit tím vyhledávání v XML dokumentech. Existuje více způsobů, jak vhodně strukturu dokumentu zakódovat. Například lze využít invertovaný index cest, kódovací schéma UID, SCIF, či prvočíselné číslovací schéma. Tyto metody jsou popsány v [ ]. Efektivním způsobem zachycení strukturálních vztahů jsou i signatury XML stromu. Tato kapitola ukazuje způsob indexování a popisuje vyhledávání pomocí signatur XML stromu. Při tvorbě této kapitoly bylo čerpáno převážně z [1] a [6]. 3.1 Dietzovo kódovací schéma Princip signatur je založen na Dietzově kódovacím schématu, které na určení strukturálních vztahů využívá sekvencí preorder a postorder. Obě tyto sekvence lze získat tak, že při průchodu stromem dokumentu do hloubky dochází k postupnému zařazování uzlů do sekvence. V případě preorder se zařazují při vstoupení do uzlu, který se v sekvenci ještě nevyskytuje. U sekvence postorder se uzly umisťují do sekvence až při jejich opouštění, tedy poté co dojde k zpracování všech potomků daného uzlu. Preorder tak odpovídá množině počátečních značek elementů a postorder je tvořen množinou koncových značek elementů, a to ve stejném pořadí v jakém se vyskytují v dokumentu. Na základě těchto sekvencí se přiřadí každému uzlu ve stromu elementů dokumentu dvojice čísel, která vyjadřují pozici uzlu v sekvenci preorder a v sekvenci postorder. Získá se tak indexovaný strom, ten je vidět na obrázku 3.1. Z takto indexovaného stromu lze již lehce určovat vzájemnou pozici dvou libovolných uzlů a to za využití vlastností sekvencí preorder a postorder. Nechť pozice uzlu a v sekvenci preorder je označena jako pre(a) a pozice uzlu a v sekvenci postorder jako post(a). Dále nechť k je kontextovým uzlem, tedy uzlem, ke kterému je vyhodnocení vztaženo. Pak při porovnání pozic v sekvencích dochází k následujícím situacím: pre(a) < pre(k): uzel a předkem nebo předchůdcem kontextového uzlu Je; pre(a) > pre(k): uzel a potomkem nebo následníkem kontextového uzlu Je; post(a) < post(k): uzel a předchůdcem nebo potomkem kontextového uzlu Je; 8
16 3.2. SIGNATURY XML STROMU Obrázek 3.1: Strom indexovaný Dietzovým kódovacím schématem post(a) > post(k): uzel a předkem nebo následníkem kontextového uzlu k. Je tedy zřejmé, že současné porovnání pozic v sekvenci preorder a postorder kontextového uzlu k a libovolného uzlu a daného stromu, jednoznačně určí základní osu jazyka XPath na které se uzel a, vzhledem ke kontextovému uzlu k, nachází. Příslušnost uzlu a k osám kontextového uzlu k je dána následujícími vztahy: pre(a) < pre(k) & post(a) < post(k): uzel a je prvkem osy preceding kontextového uzlu k; pre(a) < pre(k) & post(a) > post(k): uzel a je prvkem osy ancestor kontextového uzlu k) pre(a) > pre(k) & post(a) < post(k): uzel a je prvkem osy descendant kontextového uzlu k; pre(a) > pre(k) & post(a) > post(k): uzel a je prvkem osy following kontextového uzlu k. Tyto vlastnosti lze jednoduše zachytit v grafu, viz obrázek 3.2. Na jedné ose je vyneseno pořadí v sekvenci preorder, na druhé pak pořadí v sekvenci postorder. Rovnoběžky s osami, které jsou vedeny přes kontextový uzel, rozdělí graf na sektory uzlů základních os. Pro názornost byly do grafu vyneseny uzly ze stromu z obrázku 3.1. Jako kontextový uzel byl zvolen uzel e. 3.2 Signatury XML stromu Strom XML dokumentu opatřený Dietzovým kódovacím schématem je vhodnou strukturou pro vyhodnocování vztahů dvou uzlů stromu, ale neumožňuje již tak snadno určit všechny 9
17 3.2. SIGNATURY XML STROMU postorder f Předci Následníci Předchůdci Potomci 0 preorder Obrázek 3.2: Sektory základních os kontextového uzlu e uzly dané osy vzhledem ke kontextovému uzlu. Tuto vlastnost však mají signatury stromu (XML Tree Signatures), které vhodně linearizují stromovou strukturu Dietzova stromu a tím získávají informaci, kde uzly dané osy hledat. Nejedná se o jedinou přínosnou vlastnost sig natur. Signatury se dají použít i k efektivnímu vyhledávání vzorů ve struktuře dokumentu. Touto problematikou se důkladně zabývá [6] Standardní signatury Struktura standardní signatury je tvořena polem dvojic (jmenouzlu, postorder), kde jmenouzlu udává název uzlu a postorder je pozice uzlu v sekvenci postorder. Tyto dvojice jsou v poli uspořádány podle pozice uzlu v sekvenci preorder (dále označována jako hodnota preorder). Pro ilustraci struktury signatury je na obrázku 3.3 zachycena signatura k Dietzově stromu z obrázku 3.1. K identifikaci jednotlivých uzlů v signatuře se používá přímo hodnota preorder. a:lo b;3 C!1 d!2 e;7 f!4 g!5 h!6 i 9 j 8 Obrázek 3.3: Struktura signatury Uspořádání uzlů podle hodnoty preorder se jeví jako velice vhodné. Z pozice kontex tového uzlu lze totiž predikovat, kde se nacházejí uzly jednotlivých os. Toto uspořádání způsobuje, že před libovolným uzlem se mohou vyskytovat pouze jeho předci nebo před chůdci a za uzlem se nacházejí nejdříve všechny uzly potomků a za nimi uzly následníků daného uzlu. Základní osy názorně ilustruje obrázek 3.4. K získání všech uzlů dané osy tak stačí procházet signaturu od kontextového uzlu da ným směrem a řídit se pravidly, které jsou uvedeny v následujících odstavcích. 10
18 3.2. SIGNATURY XML STROMU Předci Potomci k Předchůdci Kontextový uzel Následníci Obrázek 3.4: Poloha os v signatuře Osa ancestor Uzly předků se nacházejí před kontextovým uzlem. Mezi nimi se však mohou vyskytovat uzly předchůdců. Uzly předků a předchůdců se od sebe navzájem odlišují hodnotou postorder, která je u předků vyšší než postorder kontextového uzlu a u předchůdců je nižší než postorder kontextového uzlu. Celá osa ancestor se tedy získá procházením signatury od kontextového uzlu k počátku signatury a vybráním jen těch uzlů splňujících podmínku: post(a) > post(k), kde a je právě testovaný uzel a k je kontextový uzel. Tímto postupem je získána celá osa ancestor ve vhodném uspořádání Osa preceding Stejně jako u osy ancestor se uzly osy preceding nalézají před kontextovým uzlem. Je třeba projít všechny uzly před kontextovým uzlem a vybrat jen ty, které splňují opačnou pod mínku než u osy ancestor. Pro předchůdce tedy platí post(a) < post(k). Procházení je zapo čato v uzlu, který předchází kontextovému uzlu a končí v uzlu kořenového elementu. Ten již není třeba testovat, protože leží na ose ancestor Osa descendant Všechny uzly osy descendant jsou umístěny v souvislém bloku, který začíná bezprostředně za kontextovým uzlem. Všechny uzly osy descendatje tak možno získat průchodem signa turou od kontextového uzlu směrem ke konci signatury. Vyberou se všechny uzly, dokud se nenarazí na prvního následníka nebo na konec signatury. Tedy dokud bude platit podmínka post(a) <post(k) A Osa following Uzly této osy se také nacházejí za kontextovým uzlem a to v souvislé oblasti od posledního potomka do konce signatury. Takže je nejdříve nutné nalézt uzel prvního následníka. Tento uzel lze najít procházením od kontextového uzlu směrem ke konci signatury a testováním uzlů na podmínku post(a) > post(k). První uzel, který tuto podmínku splní, je hledaným uz lem prvního následníka. Dalšími uzly osy following jsou všechny uzly následující za tímto uzlem až do konce signatury. 11
19 3.2. SIGNATURY XML STROMU Druhou možností, jak tuto osu získat, je procházení signatury od konce signatury po uzel posledního potomka. Do výběru patří všechny uzly splňující podmínku post(a) > post(k). Tento způsob výběru je obecně efektivnější, neboť nedochází k procházení potomků. Získaná osa však má obrácené pořadí uzlů Osa parent Tato osa obsahuje vždy pouze jediný uzel. Jediná výjimka nastává, pokud je kontextovým uzlem kořenový element. To jest v případě pre(k) = 1. Tento uzel nemá žádného předka a osa zůstává prázdná. V ostatních případech se hledaný uzel odhalí procházením signatury od kontextového uzlu k počátku. První uzel, který vyhovuje podmínce post(a) > post(k), je hledaným uzlem Osa child Osa child je podmnožinou osy descendant Prohledávaná oblast je ohraničena kontextovým uzlem a uzlem prvního následníka. Prvním uzlem na ose child je uzel bezprostředně za kontextovým uzlem. Musí ale splňovat podmínku post(a) < post(k), jinak nemá kontextový uzel žádné potomky. Zbylé uzly osy chlid vyhovují podmínce post(a) > post(ch), kde post(a) je postorder právě testovaného uzlu a post(ch)je postorder posledního nalezeného uzlu osy child Osa preceding-sibling Jedná se o podmnožinu osy preceding. V signatuře se uzly této osy vyskytují mezi kontextovým uzlem a uzlem jeho předka. Pro stanovení této osy je třeba nejdříve nalézt předka p kontextového uzlu k. Od uzlu p se postupuje ke kontextovému uzlu k. Používá se přitom metoda získání osy child pro uzel p. Prohledávání končí při dosažení uzlu k. Z vymezené oblasti je tedy vybrán uzel bezprostředně za uzlem p a dále všechny uzly a splňující podmínku post(a) > post(ps), kde ps je poslední získaný uzel osy preceding-sibling Osa following-sibling U této osy je také potřeba nejdříve nalézt předka p kontextového uzlu k. Poté se postupuje od uzlu k až po prvního následníka uzlu p. Tedy dokud platí post(a) < post(p). Jako první uzel osy following-sibling je vybrán uzel a, pro který platí post(a) > post(k). Pro zbylé uzly osy following-sibling platí post(a) > post(fs), kde fs je poslední získaný uzel osy followingsibling Osa self Získání této osy je triviální. Jedná se o jednoprvkovou osu obsahující kontextový uzel k. 12
20 3.2. SIGNATURY XML STROMU Osa ancestor-or-self Nejdříve se vybere kontextový uzel Je. Zbylé uzly této osy se získají jako u osy ancestor Osa descendant-or-self Počátečním uzlem této osy je kontextový uzel. Za ním následují všechny uzly získané pomocí algoritmu pro osu descendant Rozšířené signatury Při procházení standardních signatur je často potřeba vyhledávat rodičovský uzel a vyhledat rozhraní mezi potomky a následníky. Pro zrychlení vyhledání jednotlivých os byly navrženy rozšířené signatury (extended signatures). Struktura rozšířené signatury je tvořena, podobně jako u standardních signatur, polem uzlů uspořádaných podle preorder, avšak uzly signatury jsou již tvořeny čtveřicí (jmenouzlu, postorder, first following, first ancestor). Atributy jmenouzlu a postorder mají stejný význam jako u standardních signatur. Atribut first following je ukazatelem na prvního následníka a first ancestor ukazuje na rodičovský uzel kontextového uzlu. Hodnota first following pro uzel kořenového elementu je definována jako 0. Uzly nemající následníky, mají hodnotu ukazatele na prvního následníka nastavenu na: first ancestor = length + 1, kde proměnná length obsahuje počet uzlů v signatuře. Přidání dvou nových ukazatelů výrazně urychluje určování uzlů jednotlivých os. Toto zrychlení je však vykoupeno větší paměťovou náročností, kdy každý uzel signatury zabírá dvojnásobné místo. Rozšíření signatur o nové ukazatele mění i způsob určování os jazyka XPath. Nové algoritmy jsou popsány v následujících odstavcích Osa ancestor V případě této osy bude urychlení velice výrazné. Ukazatel first ancestor totiž odkazuje přímo na rodiče uzlu. Jako první uzel osy ancestor je vybrán 1 uzel na pozici preorder = first ancestor. Dále je vždy vybrán uzel, na který odkazuje first ancestor posledně vybraného uzlu. Takto se postupuje, dokud se nenarazí na uzel kořenového elementu, který je vždy posledním uzlem na ose ancestor Osa preceding Nejdříve jsou vybrány všechny uzly od kontextového uzlu po uzel rodiče kontextového uzlu. Pak jsou postupně vybrány všechny uzly, které se nacházejí mezi sousedními předky kontextového uzlu. 1. Pokud kontextovým uzelem není kořenový element. 13
21 3.2. SIGNATURY XML STROMU Osa descendant Ukazatel first following shora ohraničuje oblast, ve které se vyskytují všechny uzly potomků. Získání osy descendant tedy spočívá ve vybrání všech uzlů od kontextového uzlu k prvnímu následníkovi. Uzel následníka a kontextový uzel se do výběru samozřejmě nezahrnují Osa following Pokud kontextový uzel má nějaké následníky, tedy platí first following < length, pak je jako první vybrán uzel, na který odkazuje first following. Poté jsou vybrány všechny následující uzly až do konce signatury Osa parent Je-li kontextový uzel zároveň i kořenovým elementem, je tato osa prázdná. Jinak obsahuje jediný uzel a to uzel, na který odkazuje first ancestor Osa child Osa child ke kontextovému uzlu je prázdná, pokud first following odkazuje na uzel následující ihned za kontextovým uzlem. Jinak je prvním uzlem osy child uzel bezprostředně za kontextovým uzlem. Na další uzel osy child odkazuje vždy ukazatel first following posledně vybraného uzlu. Posledním uzlem této osy je uzel a, pro který platí ffoll(a) = ffoll(k), ffoll(a) je označení pro ukazatel first following uzlu a Osa preceding-sibling Tato osa je získána procházením oblasti od kontextového uzlu až k rodiči kontextového uzlu. Vybrány jsou jen uzly, pro které platí fanc(a) = fanc(k). Kde fanc(a) je rodič uzlu a. V některých případech je efektivnější získávání této osy v reverzním směru. Prvním uzlem této osy je uzel bezprostředně následující za uzlem rodiče kontextového uzlu. Na další uzel vždy odkazuje ukazatel first following posledně vybraného uzlu dokud ffoll(a) < k Osa following-sibling Nejdříve se získají rodiče kontextového uzlu, protože jeho ukazatel first following uzavírá oblast, kde se mohou uzly osy following-sibling vyskytovat. Prvním uzlem je uzel, na který odkazuje ukazatel first following kontextového uzlu. Na další uzel vždy odkazuje ukazatel first following posledně vybraného uzlu dokud ffoll(a) < ffoll(fanc(v)). 14
22 3.3. EDITACE SIGNATUR Osy self, ancestor-or-self a descendant-or-self U osy self nedochází k žádné změně. Osy ancestor-or-self a descendant-or-self jsou osy získané pomocí postupu pro osu ancestor respektive descendant, na jejichž počátek je přidán kontextový uzel. 3.3 Editace signatur XML databáze nejsou jen statické systémy, které zodpovídají dotazy nad množinou dokumentů, ale většina z nich také poskytuje funkce pro úpravu dokumentů. Umožňují do jednotlivých dokumentů vkládat uzly, či je z nich korektně odebírat. Nebylo by vhodné při každé takové změně, znovu generovat indexační strukturu pro daný dokument, proto je vhodné, aby i indexační metoda byla schopna editace. Signatury XML stromu jsou schopny přidávat a odebírat jednotlivé uzly XML dokumentu. V Následujících odstavcích jsou popisovány způsoby vkládání a odebírání uzlů a změny, které v signatuře nastanou. Pro editaci signatur jsou definovány tři základní operace. Jedná se o vložení nového uzlu před kontextový uzel, dále o vložení nového uzlu jako posledního přímého potomka kontextového uzlu a nakonec o odebrání kontextového uzlu. Aby nedošlo k narušení stromové struktury dokumentu, není dovoleno vkládat nový uzel před uzel kořenového elementu. Při odstraňování uzlu se odstraní i všechny uzly jeho potomků Standardní signatury Při editaci standardních signatur je potřeba opravit preorder a postorder některých uzlů. Pořadí preorder se mění odsunutím bloku uzlů. Změna postorder je řešena přičtením nebo odečtením celého čísla vyjadřujícího počet přidaných nebo odebraných uzlů ke všem měněným uzlům Přidání přímého potomka Přidání nového uzlu x, jako posledního přímého potomka kontextového uzlu Je, se děje následujícím způsobem. Nejdříve je potřeba určit pozici nového uzlu v signatuře, tedy pre(x). Pozice nového uzlu bude odpovídat poloze prvního následníka kontextového uzlu ve staré signatuře. První následník kontextového uzlu se nalezne při procházení signatury od kontextového uzlu směrem ke konci signatury. První uzel a, který splňuje post(a) > post(k), je hledaným prvním následníkem. Jako hodnota postorder nového uzlu bude použita hodnota post(k). Na pozici prvního následníka se vloží nový uzel (post(k),x), přičemž uzel na této pozici a uzly za ním následující jsou odsunuty o jednu pozici vpravo. Předchozí úpravy však nevytvoří správnou signaturu. Aby byla signatura korektní a odpovídala provedené operaci, je potřeba opravit postorder všech předků a následníků nového uzlu. K postorder těchto uzlů musí být přičtena hodnota 1. V situaci kdy kontextový uzel nemá následníky, bude nový uzel přidán na konec signatury. Jako hodnota postorder nového uzlu bude také použita hodnota post(k). Po přidání 15
PRG036 Technologie XML
PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu
VíceXML databáze. Přednáška pro kurz PB138 Moderní značkovací jazyky Ing. Petr Adámek
XML databáze Přednáška pro kurz PB138 Moderní značkovací jazyky 22. 4. 2003 Ing. Petr Adámek xadamek2@fi.muni.cz http://www.bilysklep.cz/petr/ XML databáze Proč XML databáze Efektivní ukládání a vyhledávání
VíceVyužití XML v DB aplikacích
Využití XML v DB aplikacích Michal Kopecký Výběr ze slajdů k 7. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK Komunikace aplikace s okolím Databázová aplikace potřebuje často komunikovat s
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2006 2007 Michal Krátký Tvorba informačních systémů 1/37 Obsah 8.
VíceUkládání a vyhledávání XML dat
XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání
VíceRelační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky
Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci
Více24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.
24. XML Úvod Značkovací jazyk XML (extensible Markup Language) vznikl ze staršího a obecnějšího jazyku SGML (Standard Generalized Markup Language). XML byl vyvinut konsorciem W3C, aby poskytl standardní
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
VíceRozhraní pro práci s XML dokumenty. Roman Malo
Rozhraní pro práci s XML dokumenty Roman Malo Práce s XML dokumenty Datově a dokumentově orientované XML dokumenty Problém preference elementů a atributů Strom elementů Strom uzlů Základní zpracování dokumentů
VíceSystém elektronického rádce v životních situacích portálu www.senorady.cz
Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML
VíceSystém souborů (file system, FS)
UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je
VíceDistanční opora předmětu: Databázové systémy Tématický blok č. 5: Dotazovací jazyk XPath Autor: RNDr. Jan Lánský, Ph.D.
Distanční opora předmětu: Databázové systémy Tématický blok č. 5: Dotazovací jazyk XPath Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 XPath 1.1 Cesta 1.2 Osy 1.3 Test uzlu 1.4 Podmínka 1.5 Vestavěné
VíceMBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 23. Otázka : Datový model XML, dotazovací jazyky nad XML daty Obsah : 1 Úvod o XML 2 Vztah XML a databáze 2.1 Databázové systémy s podporou XML 2.2
VíceJazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.
Jazyk XSL - rychlá transformace dokumentů 9. prosince 2010 Osnova 1 Jazyk XSL Úvod Princip zpracování pomocí stylů Formátování dokumentu pomocí XSL FO Osnova 1 Jazyk XSL Úvod Princip zpracování pomocí
VíceMaturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
VíceXQuery. Jirka Kosek. Visual FoxPro DevCon 21. 23. června 2005. Praha. Copyright 2005 Jiří Kosek
XQuery Jirka Kosek Visual FoxPro DevCon 21. 23. června 2005 Praha úvod do XQuery základy XPath 2.0 FLWOR výrazy typový systém implementace XQuery Agenda 2 / 38 Úvod 3 / 38 Proč potřebujeme XQuery? XML
VíceSyntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)
XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2009/10/01 19:46:33 $ Obsah Základy syntaxe... 3 Elementy a atributy... 4 Znakový model XML... 5 Komentáře... 6 Instrukce
VíceSemestrální práce 2 znakový strom
Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového
VícePRODUKTY. Tovek Tools
jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.
VícePRODUKTY. Tovek Tools
Analyst Pack je desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních
VíceStručně o XML (výhody, nevýhody) Proč komprimovat XML? Metody komprese XML XMill. Optimalizace komprese XML. Závěr
Pavel Hruška Stručně o XML (výhody, nevýhody) Proč komprimovat XML? Metody komprese XML XMill Představení, princip, výsledky Analýza XML (možná úskalí) Optimalizace komprese XML Přeskládání kontejnerů
VíceJazyky pro popis dat
Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Jazyky pro popis dat Pavel
VícePodpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek. http://www.kosek
Podpora XML v.net Podpora XML v.net Jirka Kosek nezávislý publicista http://www.kosek kosek.cz Co nás čeká? Co nás čeká?! podpora XML ve VisualStudio.NET! architektura System.Xml! čtení XML dokumentů!
VíceVývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz
Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem
VíceZákladní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
VíceAlgoritmy a datové struktury
Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu
Více1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
VíceKomprese a dotazování nad XML dokumenty
Komprese a dotazování nad XML dokumenty Prezentace diplomové práce Lukáš Skřivánek České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů květen 2007 Vedoucí práce: Ing. Miroslav
VíceExperimentální systém pro WEB IR
Experimentální systém pro WEB IR Jiří Vraný Školitel: Doc. RNDr. Pavel Satrapa PhD. Problematika disertační práce velmi stručný úvod WEB IR information retrieval from WWW, vyhledávání na webu Vzhledem
VíceXML terminologie a charakteristiky. Roman Malo
XML terminologie a charakteristiky Roman Malo XML extensible Markup Language (rozšiřitelný značkovací jazyk) Verze 1.0, 1.1 http://www.w3.org/xml Rozdíly v podpoře různých znakových sad a práci s řídícími
Více3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
VíceNOVÁ STROMOVÁ STRUKTURA VE VÝROBĚ
NOVÁ STROMOVÁ STRUKTURA VE VÝROBĚ Obsah Popis základních změn... 2 1.1 Nové tabulky... 2 1.2 Změny stávajících tabulek... 2 1.3 Ostatní databázové změny... 3 1.4 Nová struktura busines objektů... 4 1.4.1
VícePHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
VíceTento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.
13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny
VíceDatové typy a struktury
atové typy a struktury Jednoduché datové typy oolean = logická hodnota (true / false) K uložení stačí 1 bit často celé slovo (1 byte) haracter = znak Pro 8-bitový SII kód stačí 1 byte (256 možností) Pro
VíceMichal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů
Tvorba informačních systémů 1/18 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/18 Úvod
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
VíceDynamicky vázané metody. Pozdní vazba, virtuální metody
Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:
VícePříklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!
Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného
VíceZáklady XML struktura dokumentu (včetně testových otázek)
Základy XML struktura dokumentu (včetně testových otázek) Otakar Čerba Oddělení geomatiky Katedra matematiky Fakulta aplikovaných věd Západočeská univerzita v Plzni Přednáška z předmětu Počítačová kartografie
VíceKolekce, cyklus foreach
Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro
VíceZpráva o zhotoveném plnění
Zpráva o zhotoveném plnění Aplikace byla vytvořena v souladu se Smlouvou a na základě průběžných konzultací s pověřenými pracovníky referátu Manuscriptorium. Toto je zpráva o zhotoveném plnění. Autor:
VíceOracle XML DB. Tomáš Nykodým
Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových
VíceDolování v objektových datech. Ivana Rudolfová
Dolování v objektových datech Ivana Rudolfová Relační databáze - nevýhody První normální forma neumožňuje vyjádřit vztahy A je podtypem B nebo vytvořit struktury typu pole nebo množiny SQL omezení omezený
VíceSoftware602 Form Designer
Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID
VíceInstalace a konfigurace web serveru. WA1 Martin Klíma
Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/
Více1. Webový server, instalace PHP a MySQL 13
Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
VíceZáklady algoritmizace. Pattern matching
Základy algoritmizace Pattern matching 1 Pattern matching Úloha nalézt v nějakém textu výskyty zadaných textových vzorků patří v počítačové praxi k nejfrekventovanějším. Algoritmy, které ji řeší se používají
VíceOperační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit
Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti
Více8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
VíceMetody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka
Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce
VíceTovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje
jsou souborem klientských desktopových aplikací určených k indexování dat, vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci s velkým objemem textových
VíceSprávnost XML dokumentu
Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Správnost XML dokumentu Správně
Více8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
VícePrezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:
Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Definice vzhledu Prezentace
VíceDatové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
VíceVýčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
Více1. Dědičnost a polymorfismus
1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář
VíceDotazování nad XML daty a jazyk XPath
4 TVEZEWXYHMNR LSTVSKVEQY-RJSVQEXMOENITSHTSVSZ RETVSNIOXIQRERGSZER Q ^)ZVSTWO LSWSGM PR LSJSRHYEVS^TS XYLPEZR LSQ WXE4VEL] 4VELE)9-RZIWXYNIQIHSZE% FYHSYGRSWXM Dotazování nad XML daty a jazyk XPath BI-TWA
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2006 2008 Michal Krátký Tvorba informačních systémů 1/17 Úvod XML
VíceLineární datové struktury
Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Lineární datové
VíceDotazování nad stromem abstraktní syntaxe
Fakulta jaderná a fyzikáln inºenýrská ƒeské vysoké u ení technické v Praze 3.6.2010 Osnova while 1 Reprezentace programu 2 AST a Java 3 Vyhledávání v AST 4 Aplikace body if expr Jak reprezentovat program
VíceDynamické datové struktury IV.
Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra
VíceKnihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny
Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny 1 TXV 003 63.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá XmlLib_v13 Říjen 2012 2 Druhé vydání,
VíceDalší XML technologie
XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2012/05/17 18:58:55 $ Obsah Odkazy... 3 Odkazy v rámci jednoho dokumentu... 4 XLink (XML Linking Language)... 5 XLink
VíceAutor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech
Adresářová služba X.500 a LDAP Autor Martin Lasoň Abstrakt Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech vedla ke vzniku specializovaných databází adresářů.
VíceJava a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
Více14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
VíceKapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů
- 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa
VíceReprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)
VíceZáklady algoritmizace. Hašování
Základy algoritmizace Hašování Problematika hašování Hašování - nástroj na jednoduchý způsob "zakódování vstupních dat. Vstupní data jsou zpracována hašovací funkcí jsou jistým způsobem komprimována. Relativně
VícePřednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského
VícePokročilé techniky tvorby sestav v Caché. ZENové Reporty
Pokročilé techniky tvorby sestav v Caché ZENové Reporty Úvodem Jednoduché sestavy Pokročilé sestavy Ladění Historie ZEN reporty sdílejí podobný princip definování obsahu jako ZENové stránky Byly uvedeny
VíceVýměnný formát XML DTM DMVS PK
Výměnný formát XML DTM DMVS PK Představení partnerským krajům Praha 8. 2. 2016 Krajský úřad Plzeňského kraje Odbor informatiky Koncept etapizace tvorby výměnného formátu XML aktualizačních zakázek Digitální
VíceVyhledávač datových referencí. Dokumentace
Dokumentace goshoom 18.8.2010 OBSAH Obsah... 1 Základní informace... 2 Podporované verze Microsoft Dynamics AX... 2 Podporované jazyky... 2 Instalace... 3 Uživatelská příručka... 4 Jak používat Vyhledávač
VíceObsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody
Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který
VíceVYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ
Úvod do problematiky VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ Databáze je uspořádaná množina velkého množství informací (dat). Příkladem databáze je překladový slovník, seznam PSČ nebo telefonní seznam. Databáze
VíceWindows Server 2003 Active Directory
Windows Server 2003 Active Directory Active Directory ukládá informace o počítačích, uživatelích a ostatních objektech v síti. Zpřístupňuje tyto zdroje uživatelům. Poskytuje komplexní informace o organizaci,
VícePole a kolekce. v C#, Javě a C++
Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java
VíceMINISTERSTVO PRO MÍSTNÍ ROZVOJ Č.j. 7022/ R O Z H O D N U T Í č. 19/2016. ministryně pro místní rozvoj. ze dne
MINISTERSTVO PRO MÍSTNÍ ROZVOJ Č.j. 7022/2016-56 R O Z H O D N U T Í č. 19/2016 ministryně pro místní rozvoj ze dne 18. 2. 2016 o Pravidlech správy otevřených dat Ministerstva pro místní rozvoj S účinností
VíceKnihovna XmlLib TXV 003 63.01 první vydání prosinec 2010 změny vyhrazeny
Knihovna XmlLib TXV 003 63.01 první vydání prosinec 2010 změny vyhrazeny 1 TXV 003 63.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá XmlLib_v13 OBSAH 1 Úvod...3 2
VíceCílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.
Seznamy a stromy Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti. Klíčové pojmy: Seznam, spojový seznam, lineární seznam, strom, list, uzel. Úvod
VíceKnihovna RecDBXLib ZÁZNAMY V DATABOXU TXV 003 49.01
PROGRAMOVATELNÉ AUTOMATY Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV 003 49.01 KNIHOVNA RecDBXLib DATABÁZE V DATABOXU 2. vydání řijen 2008 OBSAH 1. ÚVOD...3 2. KNIHOVNA RecDBXLib DATABÁZE V DATABOXU...4
Více13. blok Práce s XML dokumenty v databázi Oracle
13. blok Práce s XML dokumenty v databázi Oracle Studijní cíl Tento blok je věnován práci s XML dokumenty, možnostmi jejich uložení a práce s nimi v databázi Oracle a datovému typu XMLType. Doba nutná
VíceZápadočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc
Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Dokumentace k programu MMDoc Vypracoval: Petr Dvořák Datum: 15.prosince 2005 1. Úvod 1.1. Účel tohoto dokumentu
VíceGTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
VíceStřední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U
Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní
VíceO Apache Derby detailněji. Hynek Mlnařík
O Apache Derby detailněji Hynek Mlnařík Agenda Historie Vlastnosti Architektura Budoucnost Historie 1997 Cloudscape Inc. - JBMS 1999 Informix Software, Inc. odkoupila Cloudscape, Inc. 2001 IBM odkoupila
VíceADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
VíceAPLIKACE XML PRO INTERNET
APLIKACE XML PRO INTERNET Jaroslav Ráček Fakulta Informatiky, Masarykova Universita Brno Abstrakt Text je věnován možnostem využití XML technologie pro prezentaci dokumentů pomocí Internetu. V úvodu je
VíceProgramovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
VíceStromové struktury v relační databázi
Stromové struktury v relační databázi Stromové struktury a relační databáze Zboží Procesory Intel Pentium IV Celeron Paměti AMD Duron DDR DIMM Athlon http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-databazich/
VíceAlgoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
VíceModely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.
Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové
VíceMaturitní projekt do IVT Pavel Doleček
Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování
VíceIS pro podporu BOZP na FIT ČVUT
IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod
Více