Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Ζωγραφάκης Ιωάννης
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων What is Derby??? Derby is a relational database implemented completely in Java. It has a small footprint that allows it to be easily embedded into any Java application.
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων History Lesson Cloudscape Inc.founded in 1996 to develop Java database technology The first release called JBMS (1997) Renamed Cloudscape Bought by Informix software Inc.(1999) Bought by IBM (2001),IBM’s Java products and middleware used.
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων History Lesson IBM contributes code to Apache Software Foundation… Renamed DERBY !!! Sun joins the Derby project Sun packaged Derby in the JDK (6/12/2006) as JavaDB IBM announced marketing and support withdrawal for the Cloudscape product (3/2007)
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Derby Advantages Derby has a small footprint– About 2 megabytes for the base engine and embedded JDBC driver. Derby is based on the Java, JDBC, and SQL standards. Derby provides an embedded JDBC driver that lets you embed Derby in any Java-based solution. Derby is easy to install, deploy, and use. Databases are easily transferable to other systems.
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Derby architecture: Embedded
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Derby architecture: Client-server
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων C:\> set DERBY_INSTALL=C:\Apache\db-derby bin C:\> set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;. C:\> cd %DERBY_INSTALL%\bin C:\Apache\db-derby bin\bin> setEmbeddedCP.bat java org.apache.derby.tools.sysinfo Install μέσω... tutorial
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων ij is an interactive SQL scripting tool that comes with Derby IJ
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Example of java example running
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Netbeans-JavaDB
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Netbeans-JavaDB
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων public class University { private static String dbURL = "jdbc:derby://localhost:1527/university2;create=true;user=gianninos;password=*** ***"; private static String tableName = "COURSE"; // jdbc Connection private static Connection conn = null; private static Statement stmt = null; public static void main(String[] args) { createConnection(); insertCourse("EPL323", "Compilers", "P.Trancoso","Computer-Science"); selectCourse(); shutdown(); } Java code
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων private static void insertCourse(String id, String title, String professor,String department) { try { stmt = conn.createStatement(); stmt.execute("insert into " + tableName + " values ('" + id + "','" + title + "','" + professor + "','" + department +"')"); stmt.close(); } catch (SQLException sqlExcept) { sqlExcept.printStackTrace(); } Java code
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων private static void selectCourse() { try { stmt = conn.createStatement(); ResultSet results = stmt.executeQuery("select * from " + tableName); ResultSetMetaData rsmd = results.getMetaData(); int numberCols = rsmd.getColumnCount(); for (int i=1; i<=numberCols; i++) { //print Column Names System.out.print(rsmd.getColumnLabel(i)+"\t\t"); } System.out.println("\n "); while(results.next()) { String id = results.getString(1); String title = results.getString(2); String professor = results.getString(3); String department = results.getString(4); System.out.println(id + "\t\t" + title + "\t\t" + professor + "\t\t" + department ); } results.close(); stmt.close(); } catch (SQLException sqlExcept){ sqlExcept.printStackTrace(); } } Java code
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Test Configuration
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Database Buffer
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Performance Tips Use Prepared Statements Avoid Table Scans
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Performance Evaluation: MySQL, PostgreSQL and Derby
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Database Configurations
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Throughput: TPC-B like load
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Throughput: Single-record Select
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Observations Derby outperforms MySQL on disk-based databases MySQL performs better on small main-memory Databases PostgreSQL performs best on read-only databases, and has lowest throughput on update-intensive databases
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Conclusion Ensure the integrity and recoverability of data Portable Good solution for a programmer
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ370-Αρχιτεκτονική υπολογιστών Thanks for your attention THE END!!!! Any questions???