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 •dataDatum narození §Atributy • §Komentář • •Hierarchie elementů §Root element §Zanořené elementy • textDatum 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 •