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.

Slides:



Advertisements
Podobné prezentace
Zpracování SQL Lubomír Andrle 5. přednáška
Advertisements

A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Microsoft Office Access
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Fakulta elektrotechniky a informatiky
D ATABÁZE N VID D ATABÁZE N VID N OVÁ SPECIALIZOVANÁ ONLINE SLUŽBA SPOLEČNOSTI O VID PRO OŠETŘOVATELSTVÍ A DALŠÍ NELÉKAŘSKÉ ZDRAVOTNICKÉ.
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
ADT Strom.
Martin Kirschbaum 4.A,  určitá uspořádaná množina informací (dat) uložená na paměťovém médiu  Databázový program - umožňuje tvořit, editovat,
Databáze Jiří Kalousek.
Analýza dat Jiří Slabý Nástroje pro analýzu dat SQL SERVER - součást Small Business serveruSQL SERVER - součást Small Business serveru Kontingenční tabulkyKontingenční.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databázové systémy Štěpán Šípal.
NET Genium software pro výstavbu a provoz informačního portálu Martin Vonka
Adresářová služba Active directory
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Relační databáze.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Excelent v EKOSu Ing. Daniela Dufková. Excelent v EKOSu Ing. Daniela Dufková.
XML Schema Irena Mlýnková. Obsah XML – úvod, příklad, základní pojmy DTD – přehled XML Schema – podrobně.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Informatika II PAA DOTAZOVACÍ JAZYKY
Access Vysvětlení pojmu databáze - 01
Databáze teorie.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Aplikační a programové vybavení
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
XML data na disku jako databáze Kamil Toman
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Webové služby pro komunikaci s informačním systémem eQuip Martin Širajch.
Vícerozměrný přístup pro indexování XML dat
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ změna měřítka odkaz.
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ odkaz na další lišty.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský
Perzistence XML dat Kamil Toman
24 Používání relačních databází (základní pojmy a principy z oblasti relačních databází, struktura databáze,oblasti použití relačních databází, vkládání.
David Gešvindr MCT | MSP | MCITP | MCPD. Jak se zpracovává dotaz? Když norma nestačila Práce s XML Geografická data CTE Zpracování hierarchií a grafů.
Úvod do databází zkrácená verze.
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
Základní škola T. G. Masaryka a Mateřská škola Poříčany, okr. Kolín VY_32_INOVACE_ICT_04 ORGANIZACE DAT V PC Zpracovala: Mgr. Květoslava Štikovcová Číslo.
Vytvoření jednoduchého databázového dotazu Access (7)
Datové typy MS Access (3). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro tělesně.
Databázové systémy přednáška 6 – Indexy
Databázové systémy a SQL
Budování Integrovaného informačního systému Národního památkového ústavu Petr Volfík, NPÚ ÚP
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
Optimalizace SQL dotazů
Databázové systémy a SQL
Přednáška 7 SQL – JOIN.
Přednáška 9 Triggery.
Algoritmizace a datové struktury (14ASD)
Databázové systémy a SQL
WORDPRESS AFFILIATE DATA V XML.
Transkript prezentace:

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

DBI026 -DB Aplikace - MFF UK 2 Komunikace aplikace s okolím Databázová aplikace potřebuje často komunikovat s dalšími informačními systémy –Export podkladů z IS pro externí účetnictví –B2G (business-to-government) Export výkazů pro státní správu –B2B (business-to-business) Import údajů z IS jiných firem Elektronické objednávky –SOA service-oriented architecture Komunikace mezi jednotlivými komponentami

DBI026 -DB Aplikace - MFF UK 3 Komunikace aplikace s okolím Pro komunikaci se ve stále větší míře používá XML formát dat  Čitelný i pro lidskou obsluhu aplikací  Strukturovaný  Snadno parsovatelný –Velký objem dat –Přímé dotazování nad XML daty vyžaduje zcela odlišné nástroje a datové struktury, než relační databází

DBI026 -DB Aplikace - MFF UK 4 XML a relační databáze Pro komunikaci databázové aplikace s okolím je proto často potřebné –Exportovat uložená relační data do XML –Získat informace uložené v uzlech XML stromu a uložit je do relačních tabulek –Ukládat původní XML dokumenty, získané od obchodních partnerů –Vyhledávat XML dokumenty obsahující dané informace

DBI026 -DB Aplikace - MFF UK 5 Adresování dat v XML - XPath XPath je jedním z často používaných dotazovacích jazyků nad XML Výsledkem dotazu je množina uzlů či atributů, které vyhovují zadané podmínce Dokument je chápán jako strom, obsahující –Kořenový uzel (není součástí dokumentu) –Elementy –Atributy –Textové uzly (listy, odpovídají volnému textu mezi uzly) –… (komentáře, jmenné prostory, instrukce pro zpracování)

DBI026 -DB Aplikace - MFF UK 6 Adresování dat v XML - XPath Cesta je základním prostředkem pro adresaci uzlu či uzlů ve stromě –Absolutní začínají znakem ’/’ –Relativní –Zapisuje se jako seznam kroků, oddělených lomítky.

DBI026 -DB Aplikace - MFF UK 7 Adresování dat v XML - XPath Příklady Xpath dotazů –/knihy/kniha/nazev seznam všech elementů nazev, které jsou přímým potomkem elementu kniha, který je přímým potomkem kořenového elementu knihy. –//nazev seznam všech elementů nazev v XML stromu, nacházejících se na libovolných cestách

DBI026 -DB Aplikace - MFF UK 8 Adresování dat v XML - XPath Příklady Xpath dotazů –/knihy/*/nazev na druhém kroku cesty může být libovolný element –/knihy/kniha[1]/autor[2] druhý autor první knihy v seznamu –/knihy/kniha[autor=’Pokorný J.’]/titul tituly všech knih od J. Pokorného

DBI026 -DB Aplikace - MFF UK 9 Adresování dat v XML - XPath Osy v XPath –self:: - aktuální uzel –parent::, child:: - přímý rodič/potomci aktuálního uzlu –ancestor::, descendand:: - všichni předci/potomci, včetně nepřímých –descendand-or-self::, ancestor -or-self:: –following::, preceding:: - uzly před/za aktuálním uzlem a všemi jeho předky –following-sibling::, preceding-sibling:: - sourozenci –attribute:: - atributy aktuálního uzlu child:: tvoří defaultní osu, nemusí se uvádět

DBI026 -DB Aplikace - MFF UK 10 Adresování dat v XML - XPath preceding::following::

DBI026 -DB Aplikace - MFF UK 11 Adresování dat v XML - XPath Obvykle se využívají zkrácené notace –jméno_uzlu místo child::jméno_uzlu místo attribute:: jméno_atributu –’.’ pro aktuální uzel –’..’ pro rodičovský uzel

DBI026 -DB Aplikace - MFF UK 12 Adresování dat v XML - XPath Příklady dotazů –Názvy všech knih /knihy/kniha/nazev/text() –První kniha v seznamu /knihy/kniha[1] … …

DBI026 -DB Aplikace - MFF UK 13 Indexování dat v XML Problémem je efektivita vyhodnocování XPath dotazů, případně dotazů v jiných dotazovacích jazycích nad XML –Data mohou být v relační databázi uložena po částech, a využity standardní nástroje (spojení, indexy)  Použitelné v libovolné relační databázi  Nutná znalost struktury ukládaných dokumentů (DTD, XMLSchema) –Data mohou být uložena nativně v podobě textu  Nutná podpora speciálních typů indexů

DBI026 -DB Aplikace - MFF UK 14 Ukládání XML do relačních databází Pokud je potřeba ukládat XML dokumenty, platné vzhledem ke konkrétnímu DTD, je možné použít několik variant uložení Nástin jednoho z možných řešení: –Předpokládá dostatečně jednoduché DTD, nebo vytvoření jednoduššího DTD’, které je méně striktní, než DTD původní, tj.: platnost v DTD  platnost v DTD’ Elementy jmenují jiné elementy ve svém obsahu nejvýše jednou Obsažený element může být nepovinný (?) nebo opakující se (*) Obsažené elementy jsou oddělené pouze čárkou, ne ’|’ Na pořadí elementů nezáleží

DBI026 -DB Aplikace - MFF UK 15 Ukládání XML do relačních databází Pro takto zjednodušené DTD je možné vytvořit –Seznam možných cest v XML stromu –Pro každý element je E vytvořena tabulka, obsahující sloupce pro jednotlivé atributy E(DocID,ElemID,ParID,PathID,atributy) Id dokumentu, Id elementu,sloupce pro uchování atributů, Id rodičovského elementu, Id cesty na které element leží

DBI026 -DB Aplikace - MFF UK 16 Ukládání XML do relačních databází Kniha(DocID,ElemID,ParID,PathID,ISBN) Titul(DocID,ElemID,ParID,PathID,PCDataId) Autor(DocID,ElemID,ParID,PathID,PCDataId) PCData(DocID,ElemID,Data)

DBI026 -DB Aplikace - MFF UK 17 Ukládání XML do relačních databází Dotazy v XPath jsou přeformulovány na SQL Často je nutné spojovat velké množství tabulek. Jejich počet je možné snížit např. tím, že pro podstromy, ve kterých se nemůže vyskytovat opakující se element, se vytvoří jediná tabulka obsahující element a všechny podelementy

DBI026 -DB Aplikace - MFF UK 18 Ukládání XML do relačních databází Kniha( DocID,ElemID, ISBN, TitulPCDataId, AutorPCDataId, ParID,PathID) PCData(DocID,ElemID,Data)

DBI026 -DB Aplikace - MFF UK 19 Ukládání XML do relačních databází Pokud se autor může vícekrát opakovat, je nutné jej uložit do samostatné tabulky, titul ale může být sloučen Kniha( DocID,ElemID,ISBN,TitulPCDataId,ParID,PathID) Autor(DocID,ElemID,ParID,PathID,PCDataId) PCData(DocID,ElemID,Data)

DBI026 -DB Aplikace - MFF UK 20 Indexace XML dat DataGuide index –obsahuje strom cest, vyskytujících se v XML dokumentu –Každá cesta je vněm uložena právě jednou –Uzly obsahují metainformace o uzlech, které dané cestě odpovídají –Je možné jej uložit v XML formátu

DBI026 -DB Aplikace - MFF UK 21 Indexace XML dat Index cest v XML –Obdoba DataGuide indexu –V uzlech obsahuje přímo množiny odkazů na jednotlivé elementy, které cestě odpovídají –Výrazně urychluje odpovědi na dotazy ve formě cest bez použití // –Přispívá pro vyhodnocení dotazů, které alespoň začínají absolutní cestou, a // obsahují ve větší hloubce

DBI026 -DB Aplikace - MFF UK 22 Indexace XML dat Lore Index –VIndex (Value index) - indexuje textové hodnoty uzlů a atributů –TIndex (Term index) - indexuje slova v hodnotách elementů –LIndex - index pro nalezení otců pro jednotlivé uzly –PIndex (Path index) - indexuje cesty a udržuje pro ně množiny odpovídajících uzlů

DBI026 -DB Aplikace - MFF UK 23 Indexace XML dat Lore Index pomocí VIndexu se naleznou atributy stat s hodnotou ”CZ”, pro ně se bottom-up postupem přes LIndex ověří cesta

DBI026 -DB Aplikace - MFF UK 24 Uložení XML dat – MS SQL Nativní datový typ XML –CREATE TABLE XmlTab( ID NUMERIC CONSTRAINT XmlTabPk PRIMARY KEY, Dok XML ); –INSERT INTO XmlTab VALUES( 1, ’ b1 ’ );

DBI026 -DB Aplikace - MFF UK 25 Export tabulky do XML – MS SQL MS SQL pro export dat z tabulek do XML podoby používá konstrukci SELECT … FOR XML {RAW|AUTO|EXPLICIT|PATH} [,XMLDATA][,ELEMENTS][BINARY BASE64] [ROOT(’korenovy_element’)] RAW generuje pro každou řádku jeden element row, hodnoty jsou obsažené v atributech elementu, názvy atributů odpovídají názvům sloupců (aliasů) v dotazu

DBI026 -DB Aplikace - MFF UK 26 Export tabulky do XML – MS SQL MS SQL pro export dat z tabulek do XML podoby používá konstrukci SELECT … FOR XML {RAW|AUTO|EXPLICIT|PATH} [,XMLDATA][,ELEMENTS][BINARY BASE64] RAW generuje pro každou řádku jeden element row, hodnoty jsou obsažené v atributech elementu, názvy atributů odpovídají názvům sloupců (aliasů) v dotaz

DBI026 -DB Aplikace - MFF UK 27 Export tabulky do XML – MS SQL AUTO generuje pro každou tabulku v použitém dotazu jeden element. Struktura odpovídá spojení. Názvy elementů odpovídají názvům tabulek

DBI026 -DB Aplikace - MFF UK 28 Export tabulky do XML – MS SQL Modifikátor ELEMENTS zajistí, že hodnoty atributů jsou uloženy jako podelementy, nikoli jako atributy King 4560 Scott...

DBI026 -DB Aplikace - MFF UK 29 Indexování XML dat – MS SQL MS SQL dovoluje nad sloupcem typu XML vytvořit tři typy indexů –Nejprve je nutné vytvořit primární XML index CREATE PRIMARY XML INDEX XmlIdx ON XmlTab(Dok) –Následně lze vytvořit hodnotový index, index cest a index vlastností CREATE XML INDEX jm ON XmlTab(Dok) USING XML INDEX XmlIdx FOR {VALUE|PATH|PROPERTY}

DBI026 -DB Aplikace - MFF UK 30 Získání dat z XML Pokud je k dispozici XML dokument s požadavkem na databázovou aplikaci, je potřebné získat z něj potřebné údaje a požadavek vyřídit, nebo data uložit do relační databáze

DBI026 -DB Aplikace - MFF UK 31 Získání dat z XML – MS SQL Využívá XPath pro adresaci jednotlivých elementů a jejich množin, případně Xquery pro konstrukci výsledného XML z XML zdrojového xml.Query(dotaz) –Vrací fragment, obsahující elementy, vyhovující dotazu –Dok.Query(’/kniha/autor’) xml.Exist(dotaz) –Vrací 1, pokud ex. alespoň jeden uzel, odpovídající dotazu. Jinak vrací 0 xml.Value(dotaz,typ) –Vrací hodnotu odpovídajícího uzlu

DBI026 -DB Aplikace - MFF UK 32 Získání dat z XML – MS SQL SELECT dok.Query(’/kniha/autor’) FROM knihy; – Pokorný J. – Král J. SELECT dok.Value(’/kniha/autor’,’varchar(30)’) FROM knihy; –Pokorný J. –Král J.

DBI026 -DB Aplikace - MFF UK 33 Aktualizace XML - MS SQL Metoda xml.Modify(’XQuery’) UPDATE Knihy SET seznam=seznam.Modify( ’delete /knihy/kniha[autor=”Kopecký M.”]’ ) WHERE … UPDATE Knihy SET seznam=seznam.Modify( ’insert … … into /knihy’) WHERE...

DBI026 -DB Aplikace - MFF UK 34 Zpřístupnění XML dat – MS SQL Pomocí nástroje „IIS Virtual Directory Management for SQL Server “ lze definovat v IIS 5 a vyšším adresář, pomocí kterého lze XML data publikovat na webu // * FROM KNIHY FOR XML AUTO&root=knihy