Datamodellering en –verwerking 8C020 college 9
Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen
Onderwerpen college week 9 Booleanse regulatie netwerken –Motieven (Motifs) Koppelling SQL met programmeertalen On-line biomedische databases Petri-net tools –Yasper Andere formalismen voor procesmodellering –Promela/Spin Afronding
Motieven (patronen) in netwerken met drie genen (Alon et al.) Bron: publicaties van Uri Alon
Motieven in echte biologische en random netwerken Bron: publicaties van Uri Alon
Types van Feed Forward Loop Netwerken Bron: publicaties van Uri Alon
Tools voor Petri-netten PEP –Misschien de meest populaire gereedschap –Modellering en analyse van systemen Yasper –Ontwikkeld op TUE –Editor en stap-voor-stap simulatie –Gekoppeld met INA (Integrated Network Analysis)
SQL en andere programmeertalen Embedded SQL Dynamic SQL –ODBC (Open Data Base Connectivity) –JDBC (Java Data Base Connectivity) Web technologies, “Data driven sites” –MySQL & php/python, Java scripts
JDBC Model for communicating with the database: Open a connection Create a “statement” object Execute queries using the Statement object to send queries and fetch results Exception mechanism to handle errors
JDBC Code public static void JDBCexample(String dbid, String userid, String passwd) { try { Class.forName ("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( userid, passwd); Statement stmt = conn.createStatement(); … Do Actual Work …. stmt.close(); conn.close(); } catch (SQLException sqle) { System.out.println("SQLException : " + sqle); }
JDBC Code (Cont.) Update to database try { stmt.executeUpdate( "insert into account values ('A-9732', 'Perryridge', 1200)"); } catch (SQLException sqle) { System.out.println("Could not insert tuple. " + sqle); } Execute query and fetch and print results ResultSet rset = stmt.executeQuery( "select branch_name, avg(balance) from account group by branch_name"); while (rset.next()) { System.out.println( rset.getString("branch_name") + " " + rset.getFloat(2)); }
JDBC Code Details Getting result fields: rset.getString(“branchname”) and rset.getString(1) equivalent if branchname is the first argument of select result. Dealing with Null values int a = rset.getInt(“a”); if (rset.wasNull()) Systems.out.println(“Got null value”);
Extensible Markup Language (XML) XML –Een alternatieve manier voor representatie van databases –Handig voor transfer van databases via WWW –Gedefinieerd door de WWW consortium –Afgeleid van HTML –Uitbreidbaar, in tegenstelling tot HTML
Formele Methoden en Model Checking Formele Methoden –Ontwikkeld voor verificatie van parallelle (concurrent) systemen –Hardware en software –Een alternatieve voor de trial and error aanpak Model checking –Geautomatiseerde techniek voor de analyse van software en hardware –Push-button technologie/relatief gemakkelijk te gebruiken –Als er een fout is krijgen we een tegenvoorbeeld - de scenario die tot de fout leidt –Spin – model checker –Promela – Modellering taal, input voor Spin
Wrap-up Data Base Modeling –Entiteit-Relatie Model/UML –Relationeel Model –Implementatie: SQL, QBE, MS Access Process Modeling –Petri Netten –Booleanse networken –Modelleren van biologische netwerken
Wrap-up Wat was helaas niet in de colleges: –Web gebaseerd database applicaties –Combinatie van SQL met programmeer/scripting -talen (b.v. Java, Python)
Wrap-up Toekomst(?): –Meer (geautomatiseerd?) processeanalyse (b.v. Model checking) –Meer biomedische context/applicaties –Meer Microsoft Access of een andere DBMS?