<< XML & Relationale DB >>

Größe: px
Ab Seite anzeigen:

Download "<< XML & Relationale DB >>"

Transkript

1 XML & DB << XML & Relationale DB >> 1

2 XML & DB - RDBMS Das Problem: XML RDBMS 2 XML Daten sind als Bäume strukturiert. RDBMS sind tabellenorientiert. RDBMS können nur sehr aufwendig Bäume speichern.

3 Einsatz von RDBMS & XML XML & DB - RDBMS XML jdbc RDB index index Direkte Speicherung von XML Daten in eine Zelle (z.b. als CLOB) ist nicht immer die beste Idee. Man verliert die Möglichkeit gezielt nach gewissen Daten zu suchen. 3 Aufwendige Indexierung und Verwendung von speziellen DB Tools wären die Folge.

4 Einsatz von RDBMS & XML XML & DB - RDBMS xsl jdbc XML Mapping RDB index index Besserer Ansatz ist es die XML Daten in Tabellenform zu bringen (z.b. mit XSLT) so dass es die Rel. DB direkt speichern kann. 4 Bei der Umwandlung werden die Strukturdaten auf die Tabellen und deren Spalten gemappt.

5 XML & DB - RDBMS Mapping von XML auf RDBMS Tabellen Tabelle Tupels Feld Tabelle Feld Tupels XML RDBMS Eine Tabelle kann höchstens eine 3 stufige Hierarchie abbilden (Idealfall). 5

6 XML & DB - RDBMS Mapping von XML auf RDBMS Tabellen Tabelle Tabelle Tupels Feld 1:n PK FK RDBMS Bei grösseren Hierarchien müssen verknüpfte Tabellen (Relationen) eingesetzt werden 6 Das Einteilen von mehreren XML Teilstrukturen auf Tabellen wird shredding genannt.

7 XML & DB - RDBMS XML Speicherung in RDBMS Beispiel <?xml version="1.0"?> <catalog country="usa"> <cd> <title>empire Burlesque</title> <artist>bob Dylan</artist> <price>10.90</price> </cd>... </catalog>??? RDBMS 7

8 XML Schema des Beispielkatalogs XML & DB - RDBMS 8 <xs:schema xmlns:xs=" <xs:element name= catalog"> <xs:attribute name="country" type="xs:string"/> <xs:complextype> <xs:element name="cd"> <xs:complextype> <xs:sequence> <xs:element name="titel" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="price" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:complextype> </xs:element> </xs:schema> country title catalog cd artist Relationen price

9 XML Schema versus DB Model XML & DB - RDBMS t_catalog PK id XML Schema <xs> 1:n country PK t_cd id FK1 titel author preis catalog_id Das XML Schema ist in RDBMS dem Datenmodell gleich zusetzen 9

10 XML Schema versus DB Model XML & DB - RDBMS t_catalog XML Schema <xs> PK id country PK FK1 t_cd id titel author preis catalog_id DB Model XML Instanz <xml> 1 USA 1 xxxxxxx2 eeeeeee yyyyyyyy eeeeeee zzzzzzzzz eeeeee 33 Tabellen mit Records 10

11 Beispiel, fertig abgefüllte Tabellen XML & DB - RDBMS tcatalog id country 1 USA 2 AU. t_catalog PK id country tcd id title author price catalog_id 1 Empire Burlesque Bob Dylan 2 My World Anastasia PK FK1 t_cd id titel author preis catalog_id 11

12 Probleme XML & RDBMS: XML & DB - RDBMS XML Struktur muss ebenfalls in der Datenbank gespeichert werden (oder hardcodiert in Logik): Ist Inhalt der Spalte ein Attribute oder Element? Reihenfolge der Elemente? XML Strukturen können schnell und einfach ändern. Datenbankmodelle hingegen sind oft sehr aufwendig anzupassen Relationen, Migrationen m:n Relationen lassen sich in XML nur mit Hilfe von zusätzlichen Id s und Referenzen (Attribute) abbilden Constraints, XML Schema 12

13 XML & DB - RDBMS Fazit, Einsatz von RDBMS zur Speicherung von XML: Ein RDBMS zur Speicherung hierarchisch strukturierter XML-Dokumente einzusetzen ist ungefähr so effizient, wie ein Auto abends nach Feierabend in seine Einzelteile zu zerlegen, um es morgens für die Fahrt zur Arbeit wieder zusammenzubauen. Solange Relationale DB verbreitet sind, lohnt es sich XML nur als Datenaustauschformat zu betrachten, jedoch nicht als primärer Datenspeicher 13

14 Relationale DB Produkte: XML & DB - RDBMS Open Source mysql ( ) PostgreSQL ( Commerical Oracle Sybase MS SQL Server MS Access 14

15 Einsatz von RDBMS & XML XML & DB - RDBMS <xml> <xml> App <xml> <xml> RDBMS komplexe Strukturen einfache Strukturen 15 Wer dennoch XML nahe an der DB einsetzen will, so empfiehlt es sich dort nur einfache Strukturen zu verwenden. z.b. nur zwei Hierarchiestufen

16 XML & DB << XML & Objekt Orientierte DB >> 16

17 Was sind Objekt Orientiere DB s? XML & DB - OODB OODB dienen zur Speicherung und Verwaltung von Komplexen Objekten Komplexe Objekte können weitere Objekte enthalten Speicherung von Objekthierarchien Unterstützung von gängigen OO Eigenschaften, wie einfache Typen, Klassen, Kapselung, Vererbung, Polymorphie 17 OODB müssen eine Abfragesprache für Objekte unterstützen, Objekt Query Language (OQL) ODMG-OQL (

18 Einsatz von OODB & XML XML & DB - OODBMS marshalling API XML Objekte OODB index index Bei Objektorientierten DB werden aus dem XML zuerst Objekte generiert, diese kann dann die DB direkt speichern. 18 Den Vorgang um aus XML Objekte zu generieren wird marshalling genannt

19 Objektorientierte DB Produkte: Open Source Ozone ( XML & DB - OODB Commercial Cache FastObjects, Poet ObjectStore 19

20 XML & DB - Marshalling Prinzip Object Marshalling XML z.b. xml schema Mapping Mapping Definition Definition Java Java classes classes <xml> <xml> Marshalling Framework Objekte 20 Damit aus XML Objekte erzeugt werden können muss zuerst eine Mapping Definition erstellt werden.

21 XML Marshalling Frameworks: XML & DB - Marshalling Open Source JAXB ( java.sun.com) Castor ( Digester ( jakarta.apache.org) JiBX ( jibx.sourceforge.net) 21

22 Einsatz von OODB & XML XML & DB - OODBMS parsing API XML DOM Objekte OODB index index Theoretisch kann man aus XML durch parsen direkt ein DOM erzeugen generisches Objektmodel 22 Performance ist jedoch schlecht und in der DB möchte man direkt nach Daten suchen können

23 XML & DB - Links W3C XPath: W3C XQuery: W3C XQueryX: W3C XQL: W3C XML-QL: Object Data Management Group (ODMG): XML:DB: Xindice: exist: Castor: JiBX: 23

24 XML & DB << XML & JDBC >> 1

25 Was ist JDBC? JDBC = Java Database Connectivity JDBC ist ein API um Relationale DB unter Java zu verwenden. JDBC ist schon seit Java 1.3 integriert. Package java.sql Um JDBC zu verwenden ist der Java Treiber der jeweiligen DB nötig. Standardmässig wird nur gerade der Java ODBC Treiber mitgeliefert. 2 JDBC unterstützt mehrere Treiberarten. Durchgesetzt hat sich der Thin Standard, welcher direkt auf die DB zugreifen kann.

26 Prinzip von der Verwendung von JDBC App 1 JDBC API JDBC Driver mysql DB mysql Java Applikation Die Applikation verwendet intern die JDBC API, diese kommuniziert dann mit dem Treiber zur DB. Features der DB sind nicht unterstützt 3 Um JDBC zu verwenden muss der jeweilige Treiber für die DB im Classpath befinden

27 Die wichtigsten Klassen von java.sql : 4 DriverManager Herstellen einer Verbindung zw. Applikation und DB - Treiber Connection Repräsentiert eine DB Verbindung zur Laufzeit. Wird vom DriverManager erstellt. Statement Erstellen und Ausführen von SQL Statements. Wird über Connection erstellt. ResultSet Repräsentiert die zurückgelieferten Datensätze eines SQL Statements.

28 Verwendung von JDBC Driver Driver Manager Manager 1. driver driver.class.class Connection Connection Statement Statement sql sql Resultset Resultset Daten 5 1. Driver registrieren bzw. vom CLASSPATH laden 2. Verbindung zur DB über DriverManager herstellen, erzeugt Connection Objekt 3. Statement Objekt über Connection erzeugen 4. SQL Abfrage ausführen, Resultat ist ein ResultSet Objekt 5. Über die Datensätze im ResultSet iterieren und einzelne Zellen extrahieren einfache Java Objekte 6. Ressourcen schliessen (ResultSet, Statement, Connection)

29 6 Beispiel Nutzung JDBC mit mysql Driver Ausführen einer SQL Abfrage (1/2) import java.sql.*; public class RunJDBCExample { public static void main( String args[] ) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); Statement stm = con.createstatement();...

30 7 Fortsetzung Beispiel Nutzung JDBC Ausführen einer SQL Abfrage (2/2) } ResultSet rs = stm.executequery("select * FROM tpersonen"); while ( rs.next() ) { } String sname = rs.getstring("name"); String svorname = rs.getstring("vorname"); int ialter = rs.getint("alter"); rs.close(); stm.close(); con.close(); } catch( Exception ex ){ ex.printstacktrace();} } 6. 5.

31 Klasse java.sql.resultset (1/3) Mit stm.executequery() werden Tupels (Datensätze) in einer Tabelle als ResultSet -Objekt zurückgeliefert. Mit ResultSet.next() kann über die einzelnen Tupels iteriert werden. Es kann daher immer nur gerade ein Tupel abgefragt werden. 8 back() next() akt. Tupel Name Vorname Alter Note Egloff Mark Trachsler Andreas Fabbri Reto 32 5 Büchler Peter Urech Roger 28 4

32 Klasse java.sql.resultset (2/3) Die Klasse ResultSet besitzt für alle gängigen Datentypen eine getxxx Methode. Der Driver versucht dann die Daten der Datenzelle in den jeweiligen gewünschten Datentyp zu überführen. getboolean() boolean, java.lang.boolean getbyte() / getbytes() byte, java.lang.byte getdate() / gettime() java.sql.date, java.sql.time getdouble() / getfloat() double, float, java.lang.double, java.lang.float getshort() / getint() / getlong() short,int,long, java.lang.short etc. 9 getstring() java.lang.string

33 Klasse java.sql.resultset (3/3) ResultSet unterstützt auch das auslesen von Streamdaten und Objekten. Somit können auch grosse Textdaten sequentiell aus der DB ausgelesen werden. Der Driver muss dies allerdings unterstützen. getclob() / getblob() java.sql.clob, java.sql.blob getcharacterstream() java.io.reader getasciistream() java.io.inputstream getbinarystream() java.io.inputstream getobject() java.lang.object 10

34 Was ist mit XML & JDBC? JDBC unterstützt noch keine XML Anwendung. Dies muss also von Hand selber codiert werden. Um XML mittels JDBC in ein RDBMS zu speichern gibt es 2 Möglichkeiten: Speicherung von XML als Text direkt in die jeweilige Tabellenzelle XML Shredding, Mapping auf DB Struktur 11

35 << Beispiel XML Speicherung als Ganzes in RDBMS >> 12

36 Prinzip von XML Speicherung als Ganzes bei RDBMS <xml> <xml> sql sql JDBC DB mysql <xml> <xml> Java Applikation Die XML Daten wird als ganze Datei in die DB abgelegt. Hierbei wird ein SQL Anweisung erzeugt welche als Eingabe einen Stream verwendet. Dieser Stream wird dann in die DB in eine Zelle geschrieben (z.b. als CLOB) 13

37 Was ist CLOB, BLOB? CLOB = Character Large Object BLOB = Binary Large Object CLOB und BLOB sind Datentypen um grosse Menge an Daten als Einheit zu verwalten Mit LOB Datentypen kann nur über Streams kommuniziert werden. Daten werden sequentiell geschrieben und gelesen mittels Buffer 14 z.b. Clob clb = rs.getclob("textcolumn"); Reader r = clb.getcharacterstream(); while(r.read(buffer)!=-1){... };

38 mysql Datentypen für Textdaten MySQL Data Types CHAR mysql unterstützt verschiedene Datentypen die für Textdaten verwendet werden können. Wichtig ist es die maximale Grösse der Daten zu kennen VARCHAR, TINYTEXT, TINYBLOB maximale grösse bis 255 Bytes, fixe Grösse bis 255 Bytes TEXT, BLOB bis 65,535 Bytes (2 16 ) MEDIUMTEXT, MEDIUMBLOB bis 16 MB (2 24 ) LARGETEXT, LARGEBLOB bis 4 GB (2 32 ) 15

39 mysql und CLOB mysql hat anstelle von CLOB den TEXT Datentyp. Der mysql Treiber unterstütz die automatische Konvertierung in die jeweiligen Java Datentypen MySQL Data Types CHAR, VARCHAR, BLOB, TEXT, ENUM, SET automatisch konvertierbar in java.lang.string, java.io.inputstream, java.io.reader, java.sql.blob, java.sql.clob 16

40 Wann CLOB wann Stream, wann String? Oft bieten die DB Treiber an ein CLOB als String, Stream oder als LOB handzuhaben z.b. String s = rs.getstring("textcolumn"); Reader r = rs.getcharacterstream("textcolumn"); Clob clb = rs.getclob("textcolumn"); Leider ist je nach Driver Hersteller die Unterstützung des CLOB Datentyps anders. So z.b. ist die Handhabung als String oft auf bestimmte Grösse limitiert oder direkte Streams werden nicht unterstützt. mysql kennt da zum Glück keine Probleme 17

41 Beispiel Speicherung von XML als Ganzes Das folgende Beispiel zeigt die Handhabung eines CLOB einmal als Stream und einmal als LOB. Die Handhabung als Stream ist wesentlich einfacher mysql Tabelle mit LONGTEXT Spalte CREATE TABLE myxmltable ( id tinyint(3) unsigned NOT NULL auto_increment, xmlcolumn longtext, PRIMARY KEY (id) ) TYPE=MyISAM; 18

42 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels Stream (1/2) import java.sql.*; import java.io.*; public class RunWriteXMLStreamStorage { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); 19...

43 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels Stream (2/2) // Stream zur XML Datei erzeugen File f = new File("myDoc.xml"); FileReader fr = new FileReader(f); // Statement vorbereiten PreparedStatement ps = con.preparestatement ("INSERT INTO myxmltable (xmlcolumn) VALUES (?)"); ps.setcharacterstream(1,fr,(int)f.length()); // execute SQL statement ps.execute(); ps.close(); con.close(); fr.close(); 20 } catch( Execption ex) { ex.printstacktrace(); } }}

44 Vorgang Handhabung als CLOB bei mysql ein CLOB Objekt kann nicht direkt in Java z.b. mittels new CLOB() erstellt werden Lösung hierzu ist: 1. Über SQL Insert Statement ein leeres CLOB von der DB erzeugen zu lassen. 2. Über ein SELECT Statement das neue CLOB Objekt auslesen 3. Von CLOB Objekt den Stream erzeugen 4. In Stream die Daten schreiben 5. CLOB und ResultSet zurückschreiben 21

45 22 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels CLOB (1/4) import java.sql.*; import java.io.*; public class RunWriteXMLClobStorage { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); Statement stm = con.createstatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

46 23 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels CLOB (2/4) // Stream zur XML Datei erzeugen FileReader fr = new FileReader("myDoc.xml"); // leeres CLOB in DB erzeugen stm.execute("insert INTO myxmltable (xmlcolumn) VALUES ('')"); // dieses neue CLOB aus DB holen und davon Stream öffnen // letzter Eintrag holen ResultSet rs = stm.execute("select max(id) FROM myxmltable"); if (!rs.next()) throw new Exception("insert didn t work"); int maxid = rs.getint("id");

47 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels CLOB (3/4) // ResultSet zu dem Eintrag holen rs = stm.executequery("select id,xmlcolumn FROM myxmltable WHERE id = " + maxid); if (!rs.next()) throw new Exception("no data!"); // CLOB aus dem ResultSet holen Clob clb = rs.getclob("xmlcolumn"); // InputStream von Clob erzeugen, Stream soll bei erster // Position beginnen, Inhalt der Zelle wird dabei // überschrieben Writer cw = clb.setcharacterstream(1); 24

48 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels CLOB (4/4) // Inhalt der Datei sequentiell in CLOB schreiben int size = 0; char[] buffer = new char[4096]; while ((size = fr.read(buffer))!= -1) { cw.write(buffer,0,size); } cw.flush(); cw.close(); // CLOB in DB zurückschreiben rs.updateclob("xmlcolumn",clb); rs.updaterow(); // Ressourcen schliessen, freigeben rs.close(); stm.close(); con.close(); 25 }} } catch(exception ex) { ex.printstacktrace(); }

49 Beispiel Speicherung von XML als ganzes Resultat in mysql DB 26

50 27 Beispiel Auslesen von XML als ganzes XML Daten aus DB auslesen mittels Stream (1/2) import java.sql.*; import java.io.*; public class RunReadXMLStreamStorage { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver");... Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); Statement stm = con.createstatement();

51 28 Beispiel Auslesen von XML als ganzes XML Daten aus DB einlesen mittels Stream (2/2) // ResultSet holen und Stream öffnen ResultSet rs = stm.executequery("select xmlcolumn FROM myxmltable WHERE id = 2"); if (!rs.next()) throw new Exception("no data!"); Reader r = rs.getcharacterstream("xmlcolumn"); // Stream mittels Buffer auslesen und ausgeben BufferedReader br = new BufferedReader(r); String line = ""; while((line = br.readline())!= null ) { System.out.println(line); } rs.close(); stm.close(); con.close(); catch(...){...}}}

52 << Beispiel XML Shredding zur Speicherung in RDBMS >> 29

53 XML Speicherung in RDBMS Beispiel <?xml version="1.0"?> <catalog country="usa"> <cd> <title>empire Burlesque</title> <artist>bob Dylan</artist> <price>10.90</price> </cd>... </catalog>??? RDBMS 30

54 Prinzip von XML Shredding bei RDBMS <xml> <xml> sql sql JDBC DB mysql Objekte Java Applikation Die XML Daten werden durch parsen (DOM oder SAX) in einzelne Objekte zerlegt. Danach wird anhand den gewonnen Daten das SQL erzeugt und mit JDBC ausgeführt. 31

55 Beispiel Datenbankmodell tcatalog id country 1 USA 2 AU. t_catalog PK id country tcd id title artist price catalog_id 1 Empire Burlesque Bob Dylan 2 My World Anastasia PK FK1 t_cd id titel author preis catalog_id 32

56 Beispiel Shredding von XML in RDBMS mysql Tabellen CREATE TABLE tcatalog ( id int(10) unsigned NOT NULL auto_increment, country varchar(100) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM; 33 CREATE TABLE tcd ( id int(10) unsigned NOT NULL auto_increment, title varchar(100) NOT NULL default '', artist varchar(100) NOT NULL default '', price varchar(100) NOT NULL default '', catalog_id int(10) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM;

57 Beispiel Shredding von XML in RDBMS XML Datei in DB einlesen (1/4) import java.sql.*; import java.io.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.apache.xpath.*; public class RunWriteXMLStorageShredded { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); 34

58 Beispiel Shredding von XML in RDBMS XML Datei in DB einlesen (2/4) // DOM von XML Datei erzeugen DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); Document doc = builder.parse(new File("cdcatalog.xml")); // SQL Statements vorbereiten PreparedStatement pscatalog = con.preparestatement("insert INTO tcatalog (id,country) VALUES(?,?)"); PreparedStatement pscd = con.preparestatement("insert INTO tcd (title,artist,price,catalog_id) VALUES(?,?,?,?)"); 35

59 36 Beispiel Shredding von XML in RDBMS XML Datei in DB einlesen (3/4) // XML Shredding mittels XPath und in DB speichern NodeList nlcatalog = XPathAPI.selectNodeList(doc,"//catalog"); // Cataloge lesen und speichern for(int i=0; i<nlcatalog.getlength(); i++) { Element ecatalog = (Element)nlCatalog.item(i); String country = ecatalog.getattribute("country"); // Statement vorbereiten pscatalog.setint(1,i+1); pscatalog.setstring(2,country); // execute SQL statement pscatalog.execute();

60 37 Beispiel Shredding von XML in RDBMS XML Datei in DB einlesen (4/4) // Cd aus Catalog Elemente auslesen und in DB Speichern NodeList nlcd = XPathAPI.selectNodeList(eCatalog,"cd"); for(int j=0; j < nlcd.getlength(); j++) { Element ecd = (Element) nlcd.item(j); pscd.setstring(1,xpathapi.selectsinglenode(ecd, "title/text()").getnodevalue()); pscd.setstring(2,xpathapi.selectsinglenode(ecd, "artist/text()").getnodevalue()); pscd.setstring(3,xpathapi.selectsinglenode(ecd, "price/text()").getnodevalue()); pscd.setint(4,i+1); pscd.execute(); } // end for 2 } // end for 1 pscatalog.close(); pscd.close(); con.close();... }

61 Beispiel Shredding von XML in RDBMS Resultat in mysql DB 38

62 Prinzip von XML Assembling bei RDBMS sql sql DB mysql JDBC ResultSet ResultSet <xml> <xml> Objekte Java Applikation Die Daten werden mit einer SQL Abfrage aus der DB geholt. Aus dem bekommene ResultSet werden dann die Daten ausgelesen und mittels DOM oder SAX zu einem XML Dokument zusammengestellt. 39

63 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (1/6) import java.sql.*; import java.io.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.apache.xml.serialize.*; public class RunReadXMLStorageAssembling { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); 40

64 41 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (2/6) // neues DOM erzeugen DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); Document doc = builder.newdocument(); // XML root element erzeugen Element eroot = doc.createelement("catalogs"); doc.appendchild(eroot); // Statements vorbereiten PreparedStatement pscatalog = con.preparestatement("select id,country FROM tcatalog"); PreparedStatement pscd = con.preparestatement("select title,artist,price FROM tcd WHERE catalog_id =?");

65 42 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (3/6) // Catloge holen ResultSet rscatalog = pscatalog.executequery(); while(rscatalog.next()) { // Catalog Element erzeugen String id = rscatalog.getstring("id"); String country = rscatalog.getstring("country"); Element ecatalog = doc.createelement("catalog"); ecatalog.setattribute("country",country); eroot.appendchild(ecatalog); // cd's zum Catalog holen pscd.setstring(1,id); ResultSet rscd = pscd.executequery();

66 43 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (4/6) while(rscd.next()) { Element ecd = doc.createelement("cd") ecatalog.appendchild(ecd); Element etitle = doc.createelement("title"); Text ttitle = doc.createtextnode(rscd.getstring("title")) etitle.appendchild(ttitle); ecd.appendchild(etitle); Element eartist = doc.createelement("artist"); Text tartist = doc.createtextnode(rscd.getstring("artist")); eartist.appendchild(tartist); ecd.appendchild(eartist);

67 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (5/6) Element eprice = doc.createelement("price"); Text tprice = doc.createtextnode(rscd.getstring("price")); eprice.appendchild(tprice); ecd.appendchild(eprice); }// end while 2 rscd.close(); }// end while 1 rscatalog.close(); pscatalog.close(); pscd.close(); con.close(); 44

68 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (6/6) // DOM auf Standardoutput serialisieren SerializerFactory sfactory = SerializerFactory.getSerializerFactory("xml"); OutputFormat format = new OutputFormat(); format.setencoding("iso "); format.setindent(4); format.setindenting(true); Serializer serializer = sfactory.makeserializer(format); serializer.setoutputbytestream(system.out); serializer.asdomserializer().serialize(doc); } catch(exception ex){ex.printstacktrace();} 45 } }

69 Beispiel XML Assembling aus RDBMS Resultat auf Standardoutput 46

70 Fazit, XML Shredding & Assembling <xml> <xml> XSLT <xml> <xml> JDBC DB mysql Objekte komplexe Strukturen einfache Strukturen Java Applikation 47 Es ist extrem aufwendig XML Shredding und Assembling zu verwenden. Wenn dann empfiehlt es sich nur für einfache Strukturen zu betreiben. XSLT einsetzen um komplexe Strukturen zu reduzieren oder zu erzeugen

71 << Beispiel: generische XML Erzeugung aus einer SQL Abfrage >> 48

72 Was ist ein Generisches XML? Ein generisches XML besitzt einen allgemeinen Aufbau der unabhängig der eigentlichen Daten ist. z.b. Tags haben einen allgemeinen Namen und sagen nichts über den Inhalt aus. Daten können so in einem generischen Format beschrieben werden welches dann als Standard über alle Applikationen hinweg gilt. z.b. <element> <element>bob Dylan</element> <element>9.90</element> </element> 49

73 Was ist ein Generisches XML? Applikationen müssen dann anhand von zusätzlichen Metainformationen die Datensätze aus der generischen Struktur extrahieren Metainformationen können separat z.b. als Logik oder direkt im XML z.b. als Attribute vorkommen z.b. <element type="cd"> <element type="artist">bob Dylan</element> <element type="price">9.90</element> </element> 50

74 Beispiel Generisches XML für CD Catalog 51 <?xml version="1.0" encoding="iso "?> <catalog> <cd> <?xml version="1.0" encoding="iso "?> <title>empire Burlesque</title> <element type="catalog"> <artist>bob Dylan</artist> <element type="cd"> <price>10.90</price> <element>empire Burlesque</element> </cd> <element>bob Dylan</element> <cd> <element>10.90</element> <title>hide your heart</title> </element> <artist>bonnie Tyler</artist> <element type="cd"> <price>9.90</price> <element>hide your heart</element> </cd> </catalog> <element>bonnie Tyler</element> <element>9.90</element> </element> </element>

75 JDBC ResultSet MetaData Ein ResultSet symbolisiert eine Tabelle. Sie besteht aus Reihen welche in Spalten unterteilt ist. JDBC bietet eine Klasse ResultSetMetaData welche Meta-Informationen zum jeweiligen ResultSet beinhaltet. z.b. Anzahl Spalten, SpaltenNamen etc. 52 z.b. // Meta Daten des ResultSets holen ResultSet rs = statement.executequery(); ResultSetMetaData rsmd = rs.getmetadata(); // Anzahl Spalten, erster SpaltenNamen holen int count = rsmd.getcolumncount(); String columname = rsmd.getcolumnname(1);

76 Generische XML Struktur eines JDBC ResultSets z.b.: <resultset> <row> <column name="title">empire Burlesque</column> <column name="artist">bob Dylan</column> <column name="price">10.90</column> </row> <row> <column name="title">hide your heart</column> <column name="artist">bonnie Tyler</column> <column name="price">9.90</column> </row> </resultset> 53

77 54 Beispiel generisches XML Assembling aus ResultSet Utility Klasse, die aus ResultSet XML erzeugt (1/3) public class JDBCUtils { public static Document todocument(resultset rs) throws Exception { // neues DOM erzeugen DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); Document doc = builder.newdocument(); // Root Element erzeugen Element results = doc.createelement("resultset"); doc.appendchild(results); // Meta Daten des ResultSets holen ResultSetMetaData rsmd = rs.getmetadata();

78 Beispiel generisches XML Assembling aus ResultSet Utility Klasse, die aus ResultSet XML erzeugt (2/3) // Anzahl Spalten des ResultSets ermitteln int colcount = rsmd.getcolumncount(); // durch ResultSet iterieren und XML erzeugen while (rs.next()) { // Row Element erzeugen Element row = doc.createelement("row"); results.appendchild(row); 55 // durch Spalten iterieren und Werte auslesen for (int i=1; i<=colcount; i++) { String columnname = rsmd.getcolumnname(i); Object value = rs.getobject(i);

79 Beispiel generisches XML Assembling aus ResultSet Utility Klasse, die aus ResultSet XML erzeugt (3/3)... // Spalten Element erzeugen Element column = doc.createelement("column"); column.setattribute("name",columnname); Text t = doc.createtextnode(value.tostring()); column.appendchild(t); row.appendchild(column); } // end for } // end while return doc; 56 }

80 57 Beispiel generisches XML Assembling aus ResultSet Client public class RunGenericXMLAssembling { public static void main(string args[]) { try {... // DB Verbindung initialisieren Statement stmt = conn.createstatement(); ResultSet rs = stmt.executequery("select title,artist,price from tcd"); } } Document doc = JDBCUtils.toDocument(rs);... // weitere verarbeitung rs.close(); stmt.close(); } catch (Exception e){ e.printstacktrace();}

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008 Programmieren II Datenbanken Dr. Klaus Höppner SQL Hochschule Darmstadt SS 2008 JDBC 1 / 20 2 / 20 Relationale Datenbanken Beispiele für RDBMS Ein Datenbanksystem ist ein System zur Speicherung von (großen)

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

Mehr

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Datenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21

Datenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 21 Datenbanken SQL JDBC 2 / 21 Relationale Datenbanken Ein Datenbanksystem ist ein System zur Speicherung von (großen) Datenmengen:

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 20. November 2015 Betriebssysteme / verteilte

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

SQL und MySQL. Kristian Köhntopp

SQL und MySQL. Kristian Köhntopp SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)

Mehr

6.9 Java Server Pages

6.9 Java Server Pages DocumentCollection dc = db.ftsearch(abfrage); Document d = dc.getfirstdocument(); while (d!= 0) { String Name = db.gettitle(); out.println(name + ""); d = dc.getnextdocument(); catch (NotesException

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D. 1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme

Mehr

XINDICE. The Apache XML Project 3.12.09. Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de

XINDICE. The Apache XML Project 3.12.09. Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de 3.12.09 HKInformationsverarbeitung Kurs: Datenbanken vs. MarkUp WS 09/10 Dozent: Prof. Dr. M. Thaller XINDICE The Apache XML Project Inhalt Native

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Jörg Liedtke, Oracle Consulting Vortrag zum Praxis-Seminar B bei der KIS-Fachtagung 2007, Ludwigshafen Agenda

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 14. September 2017 Betriebssysteme / verteilte

Mehr

Klausur Interoperabilität

Klausur Interoperabilität Klausur 21. Juni 2012 9.30 11.00 Uhr Workflow Systems and Technology Group Fakultät für Informatik Universität Wien Univ.-Prof. Dr. Stefanie Rinderle-Ma Allgemeine Hinweise: Die Bearbeitungszeit beträgt

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................

Mehr

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen Datenbankentwurf & Datenbankzugriff mit JDBC Georg Köster Sven Wagner-Boysen 6. November 2007 Gliederung 2 Datenbankentwurf für ProminentPeople.info ER-Modell Relationaler Entwurf Normalisierung Datenbankzugriff

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Angewandte Softwareentwicklung Serialisierung

Angewandte Softwareentwicklung Serialisierung Angewandte Softwareentwicklung Serialisierung WS 2014/2015 Markus Berg Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik markus.berg@hs-wismar.de http://mmberg.net

Mehr

Allgemeines zu Datenbanken

Allgemeines zu Datenbanken Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Unsere Webapplikation erweitern

Unsere Webapplikation erweitern Unsere Webapplikation erweitern Um die Webapplikation zu benutzen: 1. Starten Sie den Server, indem Sie das Hauptprogramm in der Klasse ImdbServer starten. 2. Laden Sie im Browser die Seite http://localhost:8080/html/index.html.

Mehr

Aufgaben zu XPath und XQuery

Aufgaben zu XPath und XQuery Aufgaben zu XPath und XQuery Dr. Arno Schmidhauser Letzte Revision: März 2005 Email: arno.schmidhauser@sws.bfh.ch Webseite: http://www.sws.bfh.ch/db Inhalt 1 XPath... 2 2 XQuery... 2 3 XPath/SQL Umsetzung...

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

Willkommen. Datenbanken und Anbindung

Willkommen. Datenbanken und Anbindung Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

1 Software Engineering 1

1 Software Engineering 1 1 Software Engineering 1 XML 1.1 XML Extensible Markup Language Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten Wird für den Datenaustausch/Speicherung benutzt

Mehr

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Hochschule für Technik, Wirtschaft und Kultur Leipzig 06.06.2008 Datenbanken II,Speicherung und Verarbeitung großer Objekte

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

desk.modul : WaWi- Export

desk.modul : WaWi- Export desk.modul : WaWi- Export Die Schnittstelle besteht aus einem Programm, welches die Daten aus der OfficeLine ausliest und in eine XML-Datei exportiert. Die Schnittstelle ist als ein eigenständiges Programm

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Aufgabe 2 + 3: Datenbanksysteme I import java.sql.*; import oracle.jdbc.driver.*;

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note:

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note: 1 Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007 Name: Note: Nr. Aufgaben Max. Punkte Erreichte Punkte 1 Grundlagen ~ 10% Vgl. Hinweis unten 2 Integrität, Procedures, Triggers, Sichten ~ 20%

Mehr

Einführung in JDBC. IFIS Universität zu Lübeck 18.04.2007

Einführung in JDBC. IFIS Universität zu Lübeck 18.04.2007 Einführung in JDBC IFIS Universität zu Lübeck 18.04.2007 1 Was ist JDBC Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Beispiel 1: Filmdatenbank

Beispiel 1: Filmdatenbank Beispiel 1: Filmdatenbank Die Filmdatenbank hat drei Tabellen (ACTOR, MOVIE, PLAYED) Aufgabe 1: Erstelle mit Hilfe der SQL-DDL die drei Tabellen und die Datenbank (MOVIEDB) ACTOR (ActorID, Name, Birthday,

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Ho Ngoc Duc IFIS - Universität zu Lübeck

Ho Ngoc Duc IFIS - Universität zu Lübeck Ho Ngoc Duc IFIS - Universität zu Lübeck 16.04.2003 1 Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle (Java-API)

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Bedienungsanleitung Anlassteilnehmer (Vereinslisten) Bedienungsanleitung Anlassteilnehmer Dieses Programm ist speziell für Vereine entworfen. Es ist lizenzfrei verwendbar und gratis. Das Programm ist mit Excel 2010 erstellt worden und enthält VBA Programmierungen,

Mehr

MySQL Installation. AnPr

MySQL Installation. AnPr Name Klasse Datum 1 Allgemeiner Aufbau Relationale Datenbank Management Systeme (RDBMS) werden im Regelfall als Service installiert. Der Zugriff kann über mehrere Kanäle durchgeführt werden, wobei im Regelfall

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Wie gestaltet man Online-Umfragen mit SurveyMonkey?

Wie gestaltet man Online-Umfragen mit SurveyMonkey? Wie gestaltet man Online-Umfragen mit SurveyMonkey? 1. Auf www.surveymonkey.com gehen. Zu allererst muss man sich registrieren. Auf der linken Seite auf Join now for free klicken. 2. Maske ausfüllen und

Mehr

2004-2006, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de

2004-2006, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de XML und Java Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Was ist XML? Müller Hans Ulmenweg 22 70565

Mehr

MySQL, phpmyadmin & SQL. Kurzübersicht

MySQL, phpmyadmin & SQL. Kurzübersicht MySQL, phpmyadmin & SQL Kurzübersicht Referenzen MySQL Documentation: http://dev.mysql.com/doc PHP 5 / MySQL5. Studienausgabe. Praxisbuch und Referenz (Kannengießer & Kannengießer) 2 Datenbank anlegen

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Kurzanleitung RACE APP

Kurzanleitung RACE APP Kurzanleitung RACE APP Inhalt Leistungsumfang... 1 Erst Registrierung... 2 Benutzung als Fahrer... 2 Benutzung als Veranstalter... 3 Benutzung als Administrator... 5 Leistungsumfang Bei dem RACE APP handelt

Mehr

Datenbanken SQL-Grundlagen JDBC SQL-Constraints. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Datenbanken SQL-Grundlagen JDBC SQL-Constraints. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 Datenbanken 2 SQL-Grundlagen 3 JDBC 4 SQL-Constraints Relationale Datenbanken Ein Datenbanksystem ist ein System zur Speicherung

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Kurzanleitung zur Erweiterung der htdig

Kurzanleitung zur Erweiterung der htdig Kurzanleitung zur Erweiterung der htdig Inhaltsverzeichnis 1. Einleitung...3 2. Kompilieren des Projektes...3 3. Erweiterung der htdig...4 3.1 Erweiterung der Konfigurationsdatei htdig.conf...4 3.2 XML-Export...4

Mehr

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Wie kann ein PDF File angezeigt werden? kann mit Acrobat-Viewern angezeigt werden auf jeder Plattform!! (Unix,

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133. Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht

Mehr

Projektseminar Texttechnologische Informationsmodellierung

Projektseminar Texttechnologische Informationsmodellierung Projektseminar Texttechnologische Informationsmodellierung XQuery Ziele der Sitzung Nach dieser Sitzung sollten Sie: XQuery als wesentlichen Standard zur Abfrage von in XML kodierten Daten kennen Mit Hilfe

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing. PHP + MySQL Die MySQL-Datenbank Zusammenspiel Apache, PHP, PHPMyAdmin und MySQL PHPMyAdmin Verwaltungstool Nutzer Datei.php oder Datei.pl Apache HTTP-Server PHP Scriptsprache Perl Scriptsprache MySQL Datenbank

Mehr

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Die Textvorlagen in Microsoft WORD und LibreOffice Writer Die Textvorlagen in Microsoft WORD und LibreOffice Writer Liebe Teilnehmer(-innen) am Landeswettbewerb Deutsche Sprache und Literatur Baden- Württemberg, Diese Anleitung soll Ihnen helfen Ihren Wettbewerbsbeitrag

Mehr

Universität Stuttgart Abteilung Anwendersoftware 01.07.2002. - Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Universität Stuttgart Abteilung Anwendersoftware 01.07.2002. - Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures SQLJ Basics Universität Stuttgart Abteilung Anwendersoftware 01.07.2002 Was ist SQLJ? SQLJ Part 0: - Steht für Embedded SQL in Java SQLJ Part 1: - Java-Methoden als SQL Stored-Procedures SQLJ Part 2: -

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Kurzanleitung zu XML2DB

Kurzanleitung zu XML2DB Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse Übung 05: Arrays Abgabetermin: xx.xx.xxxx Name: Name, Vorname Matrikelnummer: 0XXXXXX Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

Mehr

Oracle SQL Tutorium - Wiederholung DB I -

Oracle SQL Tutorium - Wiederholung DB I - Oracle SQL Tutorium - Wiederholung DB I - (Version 2.6 vom 24.2.2015) Einleitung Im Folgenden sind zur Wiederholung eine Reihe von SQL-Übungsaufgaben zu lösen. Grundlage für die Aufgaben ist die Mondial

Mehr