Autor, Název akce
Databázové systémy a SQL
Lekce 12 – Úvod do XML
Daniel Klimeš
Autor, Název akce
XML – Co to je?
•Formát pro přenos strukturovaných dat
•Text se značkami (tagy)
•Připomíná HTML
•Samotný standard specifikuje jen minimum značek
•Položky (uzly - nods)
§Elementy
§Atributy
§…
•Zanořená struktura
§1 kořenový element (root)
§N zanořených elementů
•
Daniel Klimeš, Databázové systémy a SQL
Autor, Název akce
Jak to vypadá?
•Hlavička (Processing Instruction)
§
•Uzly
§Elementy
•data
•Datum narození
§Atributy
•
•
§Komentář
•
•Hierarchie elementů
§Root element
§Zanořené elementy
•
text
•
•
–Datum vyšetření
•
Daniel Klimeš, Databázové systémy a SQL
Speciální znaky
•< místo "<"
•> místo ">"
•& místo "&"
•' místo '
•" místo "
•
Autor, Název akce
Jak pracovat s XML?
•Textový editor – Notepad
•XML editor – XML Spy
•Moderní databáze – POSTGRES, ORACLE
§Nadstavba SQL
•Programovací jazyky
§Parsery
•
Daniel Klimeš, Databázové systémy a SQL
Autor, Název akce
Související technologie
Daniel Klimeš, Databázové systémy a SQL
•XPATH – formát vyhledávacích dotazů do XML dokumentů
•XML schéma – šablona XML dokumentu
•XSLT – transformace XML do jiného formátu (jiné XML, prostý text , HTML)
•Xquery – pokročilé vyhledávání v XML
Autor, Název akce
Zdroje informací o XML
Daniel Klimeš, Databázové systémy a SQL
•Internet
§www.w3.org
§www.w3schools.com
§
Autor, Název akce
Základy XPATH
•
§
Harry Potter
J K. Rowling
2005
29.99
§< /book>
•
Daniel Klimeš, Databázové systémy a SQL
• Uzly (nodes) – elementy, atributy, text, komentář,..
• Parent, children, siblings, ancestors, descendants
Autor, Název akce
XPATH
Daniel Klimeš, Databázové systémy a SQL
Autor, Název akce
XML a POSTGRESQL
•Podpora ukládání XML dat
§Datový typ XML
§CREATE TABLE xmltabulka (
§ a XML
§ )
§INSERT INTO xmltabulka VALUES (
§ XMLPARSE (DOCUMENT 'ManualI'))
§SELECT XPATH('//title/text()', xmltabulka.a) FROM xmltabulka
§
§
§Speciální SQl funkce - skládání XML stromu
•XMLELEMENT
•XMLATTRIBUTES
•XMLAGG
•…
Daniel Klimeš, Databázové systémy a SQL
Autor, Název akce
Generování XML na míru
Daniel Klimeš, Databázové systémy a SQL
SELECT XMLELEMENT (NAME studie, XMLELEMENT (NAME id, study_id), XMLELEMENT (NAME jmeno,
study_name), XMLELEMENT (NAME nazev, study_title)) FROM studies
ØXMLELEMENT
ØXMLATTRIBUTES
Ø XMLAGG
SELECT XMLELEMENT (NAME studie, XMLATTRIBUTES(study_id as"id", study_name as "jmeno"), XMLELEMENT
(NAME nazev, study_title)) FROM studies
SELECT XMLELEMENT (NAME studie, XMLAGG( XMLELEMENT (NAME nazev, XMLATTRIBUTES (study_id as "id"),
study_title))) FROM studies
Autor, Název akce
FUNKCE XPATH, XMLEXISTS
•INSERT INTO…
•SELECT XPATH('//nazev/text()', xmltabulka.a) FROM xmltabulka
•SELECT XPATH('//studie/@jmeno', xmltabulka.a) FROM xmltabulka where XMLEXISTS('//studie[@id="3"]'
PASSING BY REF a )
Daniel Klimeš, Databázové systémy a SQL
Autor, Název akce
ODBC rozhraní
•Přenos dat z databáze do jiné aplikace
•Vyžaduje ODBC ovladač k dané databázi
§psqlodbc_09_03_0400.zip
•Konfigurace propojení (ODBC zdroj)
§c:\Windows\SysWOW64\odbcad32.exe (WIN 7, 8 - 64 bit)
§
§
12
Daniel Klimeš, Letní škola MATBI 2015
Autor, Název akce
ODBC správce zdrojů
13
Daniel Klimeš, Letní škola MATBI 2015
Autor, Název akce
PostgreSQL ODBC driver
14
Daniel Klimeš, Letní škola MATBI 2015
Autor, Název akce
ODBC použití v cílové aplikaci
•MS EXCEL
§DATA->Z jiných zdrojů -> Z Microsoft query
§
15
Daniel Klimeš, Letní škola MATBI 2015
Autor, Název akce
ODBC a R
•library(RODBC)
•conn <-odbcConnect("PostgreSQL30", uid="postgres", pwd="heslo")
•queryResult <- sqlQuery(conn, "SELECT * FROM tabulka")
•odbcClose(conn)
•queryResult
•
•Verze R musí odpovídat ODBC ovladači
§32 x 64 bit
16
Daniel Klimeš, Letní škola MATBI 2015
Autor, Název akce
Datové zdroje ÚZIS
•http://www.uzis.cz/registry
•Schéma registru
Daniel Klimeš, Databázové systémy a SQL
Autor, Název akce
Zkouškové otázky - příklady
•Která studie má nejvíce pacientů? (study_name)
•Do kterých studií se zařazovali pacienti v roce 2008 (study_name)
•Vypište pracoviště, která nezařadila žádného pacienta
•Vypište pracoviště, která se účastní více studií, má nejvíce pacientů
•Vytvořte pohled study_name, počet zařazených pacientů
•Vypište věk pacientů při zařazení do studie XY
•Kumulativní počty náběru pacientů do studie
•Najděte pacienty zařazené do více než jedné studie
Daniel Klimeš, Databázové systémy a SQL
Autor, Název akce
Zápočet
Daniel Klimeš, Databázové systémy a SQL
•