TÉMATICKÝ OKRUH Softwarové inženýrství



Podobné dokumenty
Ukládání a vyhledávání XML dat

PRG036 Technologie XML

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

PRG036 Technologie XML

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

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

Využití XML v DB aplikacích

XQuery. Jirka Kosek. Visual FoxPro DevCon června Praha. Copyright 2005 Jiří Kosek

Databázové a informační systémy

Tvorba informačních systémů

MBI - technologická realizace modelu

1 Webový server, instalace PHP a MySQL 13

XML databáze. Přednáška pro kurz PB138 Moderní značkovací jazyky Ing. Petr Adámek

Michal Krátký, Miroslav Beneš

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

Systém elektronického rádce v životních situacích portálu

1. Webový server, instalace PHP a MySQL 13

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Oracle XML DB. Tomáš Nykodým

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek.

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Informační systémy ve zdravotnictví. 6. cvičení

Dotazování nad stromem abstraktní syntaxe

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Databázové a informační systémy Jana Šarmanová

Použití databází na Webu

Profilová část maturitní zkoušky 2017/2018

13. blok Práce s XML dokumenty v databázi Oracle

APLIKACE XML PRO INTERNET

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Java a XML. 10/26/09 1/7 Java a XML

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Předmluva k druhému vydání 13. Úvod 17. ČÁST 2 Vytváření dokumentů XML 65

Úvod do databázových systémů

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Vstupní požadavky, doporučení a metodické pokyny

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Obsah prezentace. Co je to XML? Vlastnosti. Validita

InterSystems Caché Post-Relational Database

KIV/ZIS cvičení 5. Tomáš Potužák

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

Tvorba informačních systémů

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

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

XML terminologie a charakteristiky. Roman Malo

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Základy XML struktura dokumentu (včetně testových otázek)

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

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

Dotazování nad XML daty a jazyk XPath

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

NSWI096 - INTERNET JavaScript

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Ukázka knihy z internetového knihkupectví

4IT218 Databáze. 4IT218 Databáze

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Software602 Form Designer

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Databázové systémy BIK-DBS

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

Business Intelligence

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Databáze SQL SELECT. David Hoksza

Jazyk PL/SQL Úvod, blok

Distanční opora předmětu: Databázové systémy Tématický blok č. 5: Dotazovací jazyk XPath Autor: RNDr. Jan Lánský, Ph.D.

Algoritmizace prostorových úloh

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

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Algoritmizace prostorových úloh

Operátory ROLLUP a CUBE

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

8.2 Používání a tvorba databází

XML a XSLT. Kapitola seznamuje s šablonami XSLT a jejich použití při transformaci z XML do HTML

Práce se soubory opakování

Příklad buňka tabulky

Evidence a správa kanalizace v GIS Kompas 3.2

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Systém souborů (file system, FS)

Úvod do tvorby internetových aplikací

Přizpůsobení JSTL pro Google App Engine Datastore

Geografické informační systémy p. 1

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Publikování map na webu - WMS

Analýza a modelování dat. Přednáška 8

ANOTACE vytvořených/inovovaných materiálů

6. blok část C Množinové operátory

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 4 VY 32 INOVACE

Transkript:

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 Nativní XML databázové systémy 3 Datový model XML 3.1 XML Strom 4 Dotazovací jazyky nad XML daty 4.1 Xpath 4.2 Xquery

!!! Kapitola 1 a 2 jsou jen informativní!!! 1. Úvod o XML (extensible Markup Language) Je obecný značkovací jazyk, který byl vyvinut a standardizován konsorciem W3C. Umožňuje snadné vytváření konkrétních značkovacích jazyků pro různé účely a široké spektrum různých typů dat. výhody a přínosy XML význam dat je nedílnou součástí dat XML dokumenty nepotřebují externí logiku, která by ozřejmovala co který blok dat vyjadřuje. Vše je součástí XML dokumentu. podpora internacionalizace Jazyk XML je od počátku navržen pro mezinárodní použití a podporuje standard Unicode. univerzální datový formát Relační databázové systémy jsou vhodné pro data, která je možno nenásilně ukládat do tabulek. Neumí si však adekvátně poradit s komplexními dokumenty a hodně hierarchickými strukturami, což v praktickém životě není nic vzácného Snadná konverze do jiných formátů - Rodina jazyků XSL (extensible Stylesheet Language) Ta umožňuje dokument různě upravovat a transformovat Textově orientovaný formát lze zpracovávat bez specializovaných nástrojů 2. Vztah XML a databáze Lze XML a související technologie považovat za systém řízení báze dat? Systém řízení báze dat je programový systém umožňující práci s databází. Takže ano. XML technologiích totiž najdeme charakteristiky, na které jsme zvyklí z databázových systémů úložiště dat (XML dokument) schéma struktury dat (DTD, XML Schéma, Relax NG, ) databázové jazyky (XPath, XQuery, Xupdate, ) rozhraní pro programátory (SAX, DOM, ) Na druhou stranu lze ale nalézt i oblasti, kvůli kterým nelze XML zařadit mezi soudobé plnohodnotné systémy řízení báze dat. ukládání dat není tak efektivní bezpečnost indexování dat transakce víceuživatelský přístup provádění databázových operací nad více XML dokumenty XML dokumenty z principu je možné použít jakožto úložiště pro velké objemy dat. Ve srovnání se současnými (často téměř k dokonalosti dovedenými) databázovými systémy se však k tomuto účelu XML jeví jako nevhodné. Hlavní oblasti kde je vhodné XML použít jsou ukládání dokumentů a univerzální formát

pro přenos dat. 2.1 Databázové systémy s podporou XML Databázové systémy s podporou XML (anglicky XML Enabled DBS ) jsou databázové systémy, které obsahují rozšíření své funkcionality o přenos dat mezi XML dokumentem a svou databází. V současné době lze tímto termínem označit velkou skupinu (převážně relačních) databázových systémů, které s postupným rozšířením XML obohatily svou funkcionalitu. Příkladem jsou známe databázové systémy Microsoft SQL Server 2000, Microsoft Access 2002, Oracle 8i, Oracle 9i, IBM DB2 či Sybase ASE 12.5. 2.2 Nativní XML databázové systémy Nativní XML databázové systémy jsou databázové systémy specializované na ukládání XML dokumentů. Stejně jako ostatní databázové systémy (relační, objektové, ) i tyto podporují transakce, bezpečnost, víceuživatelský přístup, databázové jazyky, atd Jako nativní XML je označujeme proto, poněvadž při ukládání dat vnitřně pracují s datovým modelem XML. (Na rozdíl od databázových systémů s podporou XML, které sice také umožňují ukládat XML dokumenty, ale vnitřně je mapují do jiného datového modelu - např. do relačního modelu.) Tři základní charakteristiky NXDBS (nativní XML DB): systém řízení báze dat pracuje s datovým modelem XML základní minimální jednotka uložení dat je XML dokument logická forma v jaké jsou uložena data databáze není podstatná, může být libovolná Příklady NXDBS: Tamino XML Server, Xindice, Infonyte DB, Db4XML 3. Datový model XML Pojem datový model XML označuje logickou i fyzickou strukturu obecného XML dokumentu. V datovém modelu XML lze najít některé prvky shodné s jinými známými databázovými modely. Svou strukturou je podobný hierarchickému modelu dat, liší se však od něj například tím, že na jedné úrovni v hierarchii nemusí být všechny uzly stejného typu. Pomocí určitého mechanismu (odkazů typu IDREF) lze datový model XML rozšířit na model podobný síťovému modelu dat. Porovnání XML a relačního datového modelu Datový model XML je velice jednoduchý a abstraktní. XML je díky tomu možno považovat za základnu, na které bývají posléze vystavěny složitější datové modely. XML dokument si lze představit jako linearizaci stromové struktury. Linearizace je ekvivalentní zápis stromové struktury pomocí posloupnosti znakových údajů (dat).v každém uzlu tohoto stromu se nachází několik textových řetězců. Informační obsah XML dokumentu je tedy tvořen touto stromovou strukturou a textovými řetězci uvnitř této struktury. Některé znaky jsou v XML dokumentu pouze kvůli vyjádření linearizace, jiné již tvoří vlastní informační obsah XML

dokumentu. 3.1 XML Strom Strom, který XML dokument vyjadřuje čítá několik různých typů uzlů: Element - Stromovou strukturu XML tvoří zejména elementy. Ty jediné totiž mohou obsahovat děti (potomky). Ostatní uzly stromu vždy tvoří listy stromu. Element může obsahovat množini atributů Dokument - Jedná se o speciální případ elementu. Neobsahuje žádné atributy, může však obsahovat URL, které odkazuje na specializovaný datový model XML určený pro tento uzel a jeho děti. pokud první výraz v XML dokumentu není <!doctype > pak má dokument anonymní kořen. Instrukce pro zpracování (processing instruction) - Takovýto uzel je vždy listem stromu. Obsahuje pouze instrukci i. Instrukce je posloupnost nula či více znaků bez jakýchkoliv omezení (nesmí začínat znaky xml ). Instrukce se v XML dokumentech používají pro potřeby aplikací (například pro XML parser, což je program, který kontroluje správnost XML dokumentu). Komentář - Komentáře jsou na rozdíl od instrukcí určeny pro potřeby lidí (programátorů, uživatelů, ). Obvykle se do nich vepisují vysvětlení elementů, atributů, a různé poznámky. Datový uzel - Datové uzly jsou listy stromu. Jejich účel je jediný obsahují vlastní data. Vše co v XML dokumentu není uzavřeno mezi znaky < a > je pokládáno za data. Atributy atributy jsou součástí elementu. 4. Dotazovací jazyky nad XML daty 4.1 XPath (http://www.w3schools.com/xpath/default.asp) Jazyk XPath vyvíjený konsorciem W3C slouží k adresování, výběru částí XML dokumentu (navigace mezi elementy a atributy v xml dokumentu). Podobné cestám ve file systému. Pro každý XML dokument je tedy v paměti počítače vytvořen strom, nad kterým XPath vyhodnocuje své výrazy. Mezi uzly stromu se lze pohybovat po různých osách. Následující obrázek znázorňuje aktuální uzel a dostupné osy k okolním uzlům:

Př: /bookstore/book[price>35.00] /bookstore/book/title //price (všechny bookstore/book/title a elemnty price na urovni dokumentu ) child::* všchny (děti aktuálního uzlu) (je používán po XSLT transformace) Popis od Běhálka: XPath je jazyk používaný pro identifikaci uzlů v XML dokumentu. Pravděpodobně nejdůležitějším rysem jazyka XPath je možnost vyjádření relativní cesty od uzlu k jinému uzlu či atributu. Připomíná dotazovací jazyk SQL, zejména dík tomu, že na základě podmínky vrátí jeden nebo množinu výrazů (nebo žádný) odpovídající vstupní podmínce. Výběr z XPath rodič/potomek rodič//potomek rodič/* Pokud lomítko umístíme na začátek výrazu, jako počáteční uzel se bere kořen dokumentu. Jinak se nalezne uzel potomek v uzlu rodič aktuálního uzlu Potomek nemusí být přímým následníkem rodiče - může se vyskytovat hlouběji ve struktuře. Pokud se nachází dvě lomítka na začátku výrazu (//rodič), naleznou se všechny výskyty elementu rodič v celém dokumentu vybere všechny uzly uzlu rodič v aktuálním uzlu. vybere aktuální uzel.. pohyb na element o úroveň výše @postup [ ] podmínka rodič/potomek[ @atribut="3"] vybere atribut (zde atribut postup) aktuálního uzlu vybere všechny elementy potomek z elementu rodič aktuálního uzlu, jejichž atributy atribut odpovídají podmínce (zde jsou tedy rovny 3) XPath umožňuje rovněž použití funkcí. Zkráceně si některé vypíšeme: position(), last(), count() vrací pozici aktuálního uzlu, posledního uzlu, počet uzlů v daném kontextu name(), local-name(), namespace-uri(), úplné jméno, název aktuálního uzlu, název jmenného prostoru string(), number(), boolean() převod objektu na typ string, number, boolean contains(), substring-before(), substring-after(), string-length()... práce s řetězci 4.2 Xquery (http://www.w3schools.com/xquery/default.asp) XQuery je postaven na výrazech. Příkaz v XQuery lze považovat za výraz, kterému lze určit jeho hodnotu. XQuery příkaz (skript) může být zapsán např. uvnitř nějaké HTML (XML) stránky -

stejným způsobem jakým bývají psány dynamické WWW stránky (JSP Java Server Pages, ASP Active Server Pages,...). Nejběžnější výrazy v XQuery jsou tzv. FLWR výrazy (vyslovuje se jako anglické slovo flower ). Tyto výrazy jsou obdobou příkazu SELECT-FROM-WHERE z databázového jazyka SQL Výrazem FLWOR se myslí dotazovací výraz složený z klíčových slov: FOR primární výběr uzlů generující seznam (používá se výraz XPath), LET definice (přiřazení) proměnných pro každý prvek seznamu posloupnosti, WHERE tvorba logické podmínky filtrující prvky seznamu, ORDER BY seřazení vybraných a odfiltrovaných prvků, RETURN generování výstupu pro každý vybraný a odfiltrovaný prvek, FLWR výrazy Například tento jednoduchý FLWR výraz vrátí mužské zaměstnance for $zam in doc( zamestnanci.xml )//zamestnanci where $zam/pohlavi= muž return $zam Do proměnné $zam jsou postupně načítány jednotlivé uzly se zaměstnanci. Funkce doc() slouží k načtení dat (uzlů) z XML dokumentu. Podmínka where omezuje výběr na zaměstnance, kteří mají obsah dětského elementu pohlaví roven slovu muž. Vyhovující uzly jsou poté vráceny jako výsledek, k tomu slouží příkaz return. Výsledné získané uzly by vypadaly takto: <zamestnanec> <jmeno>pepyk</jmeno> <prijmeni>molnár</prijmeni> <pohlavi>muž</pohlavi> </zamestnanec>... další zaměstnanci-muži Řazení K seřazení výsledku slouží klauzule order by, která se provede předtím než je zpracována instrukce return. for $zam in doc( zamestnanci.xml )//zamestnanci order by $zam/prijmeni, $zam/jmeno descending return $zam Eliminování duplicit K vyřazení duplicitních hodnot z výsledku slouží funkce distinct-values(). Za duplicitní uzly se považují uzly, jejichž struktura je shodná, a které obsahují stejné obsahy podelementů. for $zam in distinct-values(doc( zamestnanci.xml )//zamestnanci) Seskupeni datových zdrojů V praxi často potřebujeme spojovat data z různých datových zdrojů. V teorii relačních databázových systémů se jedná o kartézský součin, který vyjadřujeme operací join. V XQuery žádný operátor join neexistuje. Spojení dvou zdrojů dat v XQuery provedeme stejným způsobem jakým ho můžeme provést i v relačních databázových systémech, totiž přes podmínku v sekci where.

for $nazev in doc( knihy.xml )//nazev, $recenze in doc( recenze.xml )//recenze where $nazev = $recenze/nazev_knihy return $recenze Tento dotaz vypíše recenze pouze těch knih, které existují v XML dokumentu knihy.xml. XQuery umožňuje v současné verzi (1.0) provádět pouze výběrové operace. Pracuje se však na rozšíření, které bude obsahovat i možnost provádět modifikační (vkládání, aktualizace, mazání) a definiční operace (měnit strukturu XML dokumentu).