Návrh a prototypová implementace databáze pro



Podobné dokumenty
SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

1. Webový server, instalace PHP a MySQL 13

INDEXY JSOU GRUNT. Pavel Stěhule

1 Webový server, instalace PHP a MySQL 13

O Apache Derby detailněji. Hynek Mlnařík

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

MBI - technologická realizace modelu

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

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

Architektura softwarových systémů

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

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

Elektronická podpora výuky předmětu Komprese dat

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

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.

Ukázka knihy z internetového knihkupectví

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

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

Paralelní dotazy v PostgreSQL 9.6 (a 10.0)

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

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

SQL injection princip a ochrana

Stěhování aplikací. Michal Tomek, Sales Manager

Optimalizace dotazů a databázové transakce v Oracle

SQL - trigger, Databázové modelování

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Porovnání rychlosti mapového serveru GeoServer při přístupu k různým datovým skladům

TimescaleDB. Pavel Stěhule 2018

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Měření teploty, tlaku a vlhkosti vzduchu s přenosem dat přes internet a zobrazování na WEB stránce

Ukládání a vyhledávání XML dat

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

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

Čteme EXPLAIN. CSPUG, Praha. Tomáš Vondra Czech and Slovak PostgreSQL Users Group

Databázové systémy úvod

PostgreSQL jako platforma pro datové sklady

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

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

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

Nové jazykové brány do Caché. Daniel Kutáč

Zadání maturitní práce ve školním roce 2016/2017

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Experimentální systém pro WEB IR

DETEKCE ANOMÁLNÍHO CHOVÁNÍ UŽIVATELŮ KATASTRÁLNÍCH MAPOVÝCH SLUŽEB

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

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

Databáze II. 1. přednáška. Helena Palovská

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Projekt informačního systému pro Eklektik PRO S EK. Řešitel: Karolína Kučerová

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ v Praze Ú12110 Ústav přístrojové a řídící techniky

Maturitní témata Školní rok: 2015/2016

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

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

Návrh a tvorba WWW stránek 1/14. PHP a databáze

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

RELAČNÍ DATABÁZE ACCESS

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

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

4. lekce Přístup k databázi z vyššího programovacího jazyka

PRODUKTY. Tovek Tools

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Microsoft Access tvorba databáze jednoduše

Formy komunikace s knihovnami

Stručný obsah. K2118.indd :15:27

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Testovací protokol USB Token Cryptomate

Verzování a publikace dat na webu za pomoci PostgreSQL

Reranking založený na metadatech

ÚROVEŇ BEZPEČNOSTI INTERNETOVÝCH APLIKACÍ V ČESKÉ REPUBLICE SECURITY OF INTERNET APPLICATIONS IN THE CZECH REPUBLIC. Petr Zelenka

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

IB111 Programování a algoritmizace. Programovací jazyky

PHP a Large Objecty v PostgreSQL

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

POPIS TECHNICKÉHO ŘEŠENÍ INFORMAČNÍHO SYSTÉMU PRO SBĚR DAT V PROJEKTU SLEDOVÁNÍ DEKUBITŮ JAKO INDIKÁTORU KVALITY OŠETŘOVATELSKÉ PÉČE NA NÁRODNÍ ÚROVNI

Použití databází na Webu

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

manuscriptorium Manuscriptorium v Evropě Manuscriptorium.com

Databáze s tisíci uložených procedur. Pavel Bláhovec, DiS pavel@blahovec.cz

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

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Databázové systémy Cvičení 5.2

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

Analýza a Návrh. Analýza

Prezentace CRMplus. Téma: CRMplus jako nástroj pro kontrolu a vyhodnocení rozpracovanosti dílů na zakázkách

Možnosti aplikace: Copyright 2001, COM PLUS CZ, Praha

Implementace informačního systému pro knihovnu Jiřího Mahena v Brně

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

QAD Business Intelligence

Spark SQL, Spark Streaming. Jan Hučín

PRODUKTY. Tovek Tools

Transkript:

Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin Bc. Ondřej Čečák Fakulta elektrotechnická České vysoké učení technické v Praze 10. června 2011

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 1/11 Obsah 1 Obsah 2 Zadání a účel práce 3 Návrh řešení 4 Realizace a testování 5 Zhodnocení a závěr

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 2/11 Stručné zadání práce Zadané části práce: 1 návrh a implementace datových struktur potřebných pro databázi struktur nukleových kyselin 2 importy dat z veřejné databáze PDB obohacených analýzou programem 3DNA 3 návrh a prototypová implementace webové aplikace pro příjemné dotazování nad daty 4 zobrazení výsledků s použitím grafické aplikace JMol

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 3/11 Motivace cíl a účel aktuální téma, studium struktury pro pochopení funkce a interakce biomakromolekul v organizmech přímo nezpracovaná oblast, v současné době neexistuje podobný nástroj pro rychlé zpracování dotazů nad požadovanými daty cíl je zpracovat analyzovaná data struktur pro snadné použití vyhledávání aplikace má sloužit zejména výzkumníkům a studentům VŠCHT v Praze

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 4/11 Návrh Návrh a následně pracovní postup: 1 nastudování problematiky, rešerše existujících řešení 2 import dat z veřejné databáze PDB 3 analýza struktur programem 3DNA 4 databáze struktur a souvisejících parametrů v PostgreSQL 5 funkční prototyp aplikace pro dotazování 6 vizualizace v grafickém appletu JMol 7 testování importu

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 5/11 Import dat jazyk Python exaktní analýza mmcif dat externí knihovnou mmlib výpočet strukturních dat externím programem 3DNA 2.0 uložení získaných dat do databáze

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 6/11 PostgreSQL databáze mělká struktura vazba přes identifikátor biomolekuly, data organizovaná v tabulkách podle typu dat B-tree indexy, vyhledávání se složitostí O(log n) uživatelské datové typy po úvodní rešerši zamítnuty PostgreSQL sekvence a transakce podpora pro paralelní zpracování dat nenašel jsem podobnou práci, nejbĺıže je návrh zpracování PDB dat PDB-SQL pro ukládání a vyhledávání alpha uhĺıkových pozic do MySQL

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 7/11 Funkční prototyp webové aplikace jazyk PHP Java Applet JMol jazyk JavaScript uložení získaných dat do databáze

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 8/11 Realizace komponenty implementovány dle návrhu

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 9/11 Testování import všech struktur obsahující RNA nebo DNA 5316 souborů mmcif, cca 7 GB organizovaného textu, nejstarší z roku 1978 3 pracovní procesy na CPU Intel Quad 9400 2,66 GHz cca 13 hodin čistého procesorového času kontrolní skript v BASHi sledující výstup importního skriptu 95,96 % dat importováno, zbytek označen jako chyba analýzy mmview nebo 3DNA

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 10/11 Testování komponent aplikace 5.101 struktur, 4.303.860 základních jednotek, 36.071.202 atomů 12.600.746 strukturních parametrů cca 1,9 GB čistých textových dat v SQL dumpu dotazy na strukturu průměrně do 6 sekund výsledek zobrazen se zvýrazněnými detaily včetně prezentace výsledné části struktury v JMol testování použitelnosti na poučených uživateĺıch PC v pořádku

10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin 11/11 Zhodnocení zadání splněno, určené části databáze pro snadnější práci se strukturami nukleových kysel jsem plně vypracoval pod licencí GNU/GPL a otestoval importem všech známých struktur s DNA a RNA vlastní diplomová dokumentuje v angličtině úvodní rešerši, návrh a detaily implementace závěr komplexní data jako strukturální parametry makrobiomolekul mohou být pomocí relační databáze vyhledávány velmi rychle cíl splněn, aplikace pomůže pracovníkům a studentům VŠCHT v Praze při výzkumu a studiu další možné pokračování vylepšení webové aplikace, knihovny mmlib nebo programu pro analýzu 3DNA

Příloha 10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin Diskuze: Oponentský posudek I. Otázka 1 Čím je způsobeno, že u struktur např. 3kuy, 2vju, 1kx3 a dalších se zobrazují neúplné seznamy nukleotidů a případně žádné jejich další parametry, přestože program 3DNA generuje čisté a bezchybné výstupní soubory? Všechny tyto struktury (a několik dalších) mají záporné indexy jednotlivých residuí, se kterým se nástroj pro import nevyrovná správně kvůli příliš širokému regulárnímu výrazu (znaménko u celého čísla tak bylo oříznuto).

Příloha 10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin Diskuze: Oponentský posudek I. demonstrace Původní výraz: conversionarray... = int(re.sub(r?\d, "", numberbuilder... Opravená verze: conversionarray... = int(re.sub(r [^-0-9]*, "", numberbuilder...

Příloha 10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin Diskuze: Oponentský posudek II. Otázka 2 Zajímaly by mě bližší důvody, čím je způsobena značná prodleva při dotazu browse database z webového rozhraní. Stránka browse database provádí výpočet statistik databáze, 14 zavolá dotaz SELECT COUNT(*) pro všechny relevantní tabulky a vypočítá výsledek. V našem případě databázový stroj zavolá logický ekvivalent scan převedený na fyzické operace exekutoru, Seq Scan. Operace Seq Scan nemá žádnou podřízenou operaci data získává voláním storage manageru, který má na starosti plnění a správu obsahu datové cache. Když není konkrétní databáze nějakou dobu využívána, cache na výsledek Seq Scan se vyprázdní a data se tedy musí znovu získat fyzickým procházením dat na disku, které je časově náročné.

Příloha Diskuze: Oponentský posudek II. demonstrace Prováděcí plán dotazu typu SELECT COUNT(*) s daty v cache: EXPLAIN ANALYZE SELECT COUNT(*) FROM structureparameter; QUERY PLAN -------------------------------------------------------- Aggregate (cost=6646.39..6646.40 rows=1 width=0) (actual time=46.124..46.124 rows=1 loops=1) -> Seq Scan on structureparameter (cost=0.00..5919.51 rows=290751 width=0) (actual time=0.007..26.099 rows=235766 loops=1) Total runtime: 46.157 ms Pokud by se v reálném použití ukázalo, že tento typ dotazu zpomaluje práci, bude nejlepší řešení data vhodně předpočítat pro snadné získání, například pomocí databázového TRIGGERu. 10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin

Příloha 10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin Diskuze: Oponentský posudek III. Otázka 3 Jak je databáze zabezpečena z hlediska využití kombinace HTML formulářových poĺı, skriptovacího jazyka PHP a přístupu do databáze? Nehrozí neoprávněný přístup a spuštění SQL příkazů typu DROP DATABASE name; skrze formulářová pole webového rozhraní? nasazení není předpokládáno v nepřátelském prostředí (běžný uživatel může importem dat by-design smazat celou databázi), bezpečnost je zajištěna na úrovni práv uživatele databáze HTML vstupy jsou přesto ošetřeny před útoky typu SQL injection na úrovní PHP kódu

Příloha 10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin Diskuze: Oponentský posudek III. demonstrace PHP kód: $where = ""; $where.= $ POST["detailSelect"]. " "; $where.= "= ". $ POST["detail"]. " "; $query = "SELECT biomoleculeid FROM biomoleculedata WHERE $where;"; $result = pg exec($link, $query); Výsledný SQL dotaz s ošetřeným útokem typu SQL injection: SELECT biomoleculeid FROM biomoleculedata WHERE name = \ ; DROP TABLE biomolecule; -- ;

Příloha 10. června 2011 Návrh a prototypová implementace databáze pro snadnější práci se strukturami nukleových kyselin Diskuze: Oponentský posudek IV. Připomínka Za nevhodný považuji název projektu Nucleic Acids Database, protože téměř koliduje s názvem celosvětově uznávaného zdroje strukturních dat nukleových kyselin Nucleic Acid Database (http://ndbserver.rutgers.edu/). Název aplikace byl myšlen zkratkou NADB. S panem oponentem souhlasím, po obhajobě práce bude projekt přejmenován na NASQYT Nucleic Acids Structure QuerY Tool. Děkuji za připomínku.