Java Datenbankpersistenz mit OJB
|
|
- Dominik Buchholz
- vor 6 Jahren
- Abrufe
Transkript
1 Mittwoch, 9. November h00, Variohalle 5 J2 EE Java Datenbankpersistenz mit OJB Daniel Blonski SHE Informationstechnologie AG, Ludwigshafen Schlüsselworte: OJB, Java, OR-Mapping Einleitung Zwischen der objektorientierten Welt der Java-Entwicklung und der Struktur relationaler Datenbanksysteme herscht eine Lücke, die verschiedene objektrelationale Mapping-Werkzeuge sich anschicken zu überbrücken. Eines davon, nämlich OJB ist Gegenstand dieses Vortrages. OJB ist ein Open-Source-Werkzeug der Apache Foundation. Außer der technologischen Barriere gibt es auch eine nicht zu unterschätzende kulturelle Barriere zwischen Java-Entwicklern und Datenbankspezialisten. Auch hierfür kann ein der Java-Kultur angepasstes Werkzeug positive Auswirkungen haben. Mapping zwischen Tabellen und Klassen Grundlagen Die Abbildung zwischen Datenbanktabellen und Java-Klassen wird durch eine zentrale XML-Datei beschrieben. Wie das geht sieht man am besten an einem einfachen Beispiel. Wir möchten die Tabelle create table coctail ( coctailid number(10), name varchar2(50), preis number(5,2), alkoholisch number(1), beschreibung clob, bild blob, primary key (coctailid) ); create sequence sq_coctail; auf die Klasse class Coctail { private int coctailid; private String name; private BigDecimal preis; private boolean alkoholisch; private String beschreibung; private byte[] bild; //... Methoden }
2 18. Deutsche ORACLE-Anwenderkonferenz abbilden. In der Mapping-Datei, die standardmäßig repository_user.xml heißt, sieht das dann so aus: <class-descriptor class="ojbtest.coctail" table="coctail" > name="coctailid" column="coctailid" primarykey="true" autoincrement="true" sequence-name= sq_coctail /> name="name" column="name" /> name="preis" column="preis" /> name= akoholisch column="alkoholisch" /> name= beschreibung column= beschreibung jdbc-type="clob"/> name= bild column= bild jdbc-type= BLOB /> </class-descriptor> Forms / J2 EE Application Server Das Beispiel sollte einigermaßen selbsterklärend sein, demonstriert wird auch gleich die Verwendung von Oracle-Sequences. (Damit das funktioniert muss man zusätzlich noch an anderer Stelle den verwendeten Sequence-Manager auf SequenceManagerNextValImpl setzen.) Die LOB-Felder werden von OJB automatisch mitgeladen, so dass dieses Feature wohl eher für kleinere LOBs geeignet ist. Abbildung einer Fremdschlüsselbeziehung Als nächstes soll die Tabelle coctail zusätzlich einen Fremdschlüssel auf die Tabelle coctailgruppe enthalten. Im Java-Programm sollte dann eine Referenz auf ein Objekt der Klasse CoctailGruppe zur Verfügung stehen. (Die Definition dieser Klasse ist hier nicht wiedergegeben.) Dafür erweitern wir die Definition der Klasse um zwei Attribute: private int coctailgruppeid; private CoctailGruppe coctailgruppe; In der Mapping-Datei wird die Fremdschlüsselbeziehung folgendermaßen angegeben: name="coctailgruppeid" column="coctailgruppeid" auto-retrieve= true auto-update= link /> <reference-descriptor name="coctailgruppe" class-ref="ojbtest.coctailgruppe" > <foreignkey field-ref="coctailgruppeid"/> </reference-descriptor> auto-retrieve bedeutet, dass der referenzierte Datensatz automatisch aus der Datenbank geladen wird. Über auto-update kann gesteuert werden, ob der referenzierte Datensatz auch automatisch mit gespeichert werden soll. In unserem Fall ist das nicht erwünscht, die Einstellung link bewirkt jedoch, dass das Attribut coctailgruppeid beim speichern automatisch anhand der Referenz coctailgruppe aktualisiert wird, d.h. wenn man einen Coctail einer anderen Gruppe zuordnen will, muss man die Referenz setzen und nicht die ID.
3 Zu erwähnen wäre auch noch, dass OJB bei Fremdschlüsselfeldern die mit dem primitiven Datentyp int deklariert sind, den Wert 0 automatisch als Datenbank-NULL-Wert speichert. Das automatische Laden der Referenzen ist zwar ungemein praktisch, kann aber natürlich insbesondere bei umfangreichen Abfragen dazu führen, dass viele überflüssige Ladeoperationen ausgeführt werden. (Zur Beruhigung sei aber erwähnt, dass die Referenzen nicht über einzelne Abfragen geladen werden.) Eine Lösung ist es, auto-retrieve= false zu setzen und bei der Verarbeitung einzelner Datensätze über den Aufruf retrieveallreferences() alle Referenzen zu laden. (In Verbindung mit dem auto-update-feature ist jedoch zu beachten, dass retrieveallreferences() auf alle Fälle aufgerufen werden muss, wenn der Datensatz gespeichert werden soll, sonst denkt OJB, die Referenzen wären nicht mehr vorhanden und löscht die Daten aus der Datenbank!) Außerdem gibt es noch die gleichermaßen praktische wie ökonomische Möglichkeit, referenzierte Objekte automatisch on Demand nachzuladen. Dafür wird statt des eigentlichen Objektes nur ein Proxy- Objekt angelegt, das lediglich den Fremdschlüssel enthält. Sobald das Programm versucht auf das Objekt zuzugreifen, wird das eigentliche Objekt aus der Datenbank geladen. Dafür ist es nicht erforderlich mühsam für jede Klasse eine eigene Proxy-Klasse zu definieren, die sämtliche Methoden an die eigentliche Klasse delegiert, OJB realisiert dies mit Hilfe des dynamic-proxy Konzeptes, dass mit dem 1.3er JDK eingeführt wurde. Abbildung einer Master-Detail-Beziehung Als nächstes sollen zu einem Coctail eine Liste mit Zutaten gespeichert werden, diese sollen innerhalb der Coctail-Klasse über eine Collection zugreifbar sein. Dafür erweitern wir die Klasse folgendermaßen: private ArrayList coctailzutaten; Die Tabelle coctail_zutat hat folgenden Aufbau: create table coctail_zutat ( coctailid number(10) references coctail, zutatnr number(2), zutat_text varchar2(100), primary key(coctailid, zutatnr) ); Das Mapping der inversen Fremschlüsselbeziehung innerhalb des Mappings der Coctail-Klasse sieht in der Mapping-Datei folgendermaßen aus: <collection-descriptor name="coctailzutaten" element-class-ref="ojbtest.coctailzutat" auto-retrieve="true" auto-update="object" auto-delete="object" orderby="zutatnr" > <inverse-foreignkey field-ref="coctailid"/> </collection-descriptor> In diesem Fall sollen die Zutaten als untergeordnete Objekte des Coctails angesehen werden und automatisch mit gespeichert und gelöscht werden. Der Parameter orderby sorgt dafür, dass die Zutaten sortiert nach der zutatnr in der Collection erscheinen. Mapping von Klassenhierarchien Für die Abbildung von Klassenhierarchien gibt es drei mögliche Ansätze: Alle Klassen werden auf eine Tabelle abgebildet. Jede Klasse wird auf eine eigene Tabelle abgebildet. Die Attribute der Basisklasse werden für alle abgeleiteten Klassen in einer Tabelle gespeichert. Die zusätzlichen Attribute der abgeleiteten Klasse werden in einer eigenen Tabelle gespeichert und die Daten werden ggf. über einen Join geladen. Alle drei Ansätze werden von OJB unterstützt, die Details würden aber den Rahmen dieses Vortrags sprengen.
4 18. Deutsche ORACLE-Anwenderkonferenz Automatische Generierung des Mappings per Forward- oder Reverse-Engineering Bei einem umfangreichen Datenmodell kann es recht mühsam werden das Datenmodell, das Klassenmodell und die Mapping Datei parallel zu pflegen. OJB bietet hierfür ein XDoclet-Modul an mit dessen Hilfe automatisch die Mapping-Datei generiert wird. Falls gewünscht, können mit Hilfe von Torque auch die Datenbanktabellen automatisch angelegt werden. Das XDoclet-Modul bezieht seine Informationen aus speziellen Javadoc-Kommentaren, die z.b. so aussehen: /** table="coctail */ public class Coctail { /** column="name" * length="100" */ private String name; // Forms / J2 EE Application Server In der Praxis wird man wohl häufig eher das umgekehrte Problem haben, nämlich für ein vorhandenes Datenmodell eine Java-Anwendung zu schreiben. Auch hierfür gibt es ein Werkzeug, das aber wohl nicht mehr so ganz auf dem neuesten Stand ist. Verfügbare APIs Übersicht Für die Programmierung der Datenbankzugriffe bietet OJB gleich drei verschiedene APIs an. PersistenceBroker-API: Dies ist die native API von OJB, die auch die Grundlage für die anderen APIs bildet. ODMG-API: Dies ist eine standardisierte API, der Standard ist aber wohl mittlerweile etwas überholt und wird perspektivisch durch JDO abgelöst. JDO-API: Dies ist die neue Standard-API, die Implementierung befindet sich aber noch im Beta-Stadium. Wir haben uns aus folgenden Gründen für die PersistenceBroker-API entschieden: Gegen die Die ODMG-API sprach, dass diese auch von den Erfindern selbst als veraltet deklariert wurde und es wenig frei verfügbare Dokumentation gibt. Gegen die JDO-API sprach, dass diese von den Autoren noch nicht zum produktiven Einsatz empfohlen wird. Ein weiterer Gesichtspunkt ist, dass wir uns für die Abfragesprache OQL bzw. JDOQL nicht so richtig erwärmen konnten. Bei der PersistenceBroker-API werden Abfragen über Methodenaufrufe zusammengebaut, was für meinen Geschmack die bessere Lösung ist. Auch wenn die PersistenceBroker-API gelegentlich auch als Low-Level-API bezeichnet wird, so ist dies nicht ganz richtig. Es handelt sich durchaus um eine komfortable und intuitiv benutzbare API. Ich werde mich im folgenden auf die PersistenceBroker-API beschränken, weil der Leser über JDO auch an anderer Stelle genügend Informationen findet.
5 PersistenceBroker API Zentraler Einstiegspunkt ist die Klasse PersistenceBroker, die man sich als Kapselung einer Datenbank- Connection vorstellen kann. Hier ein kleines Beispiel zum Speichern eines neuen Objektes: Coctail coctail = new Coctail(); coctail.setname("piña Colada"); //... PersistenceBroker broker = null; try { broker = PersistenceBrokerFactory.defaultPersistenceBroker(); broker.begintransaction(); broker.store(coctail); broker.committransaction(); }catch(persistencebrokerexception e) { if(broker!= null) broker.aborttransaction(); throw new Exception("..."); } finally { if (broker!= null) broker.close(); } Nach dem Speichern des Objektes ist dann auch die neu generierte coctailid gesetzt. Der Aufruf broker.store(objekt) wird auch zum Speichern von vorhandenen Datensätzen verwendet. Kommen wir jetzt zu einem Beispiel für eine Abfrage: Criteria criteria = new Criteria(); criteria.addlessorequalthan("preis", new BigDecimal("3.5"); criteria.addequalto("alkoholisch", new Boolean(true)); QueryByCriteria query = new QueryByCriteria( Coctail.class, criteria); Collection results = broker.getcollectionbyquery(query); Es stehen auch noch zahlreiche andere Ausdrücke zum Zusammenbauen von Abfragen zur Verfügung, hier ist eine Auswahl: Aufbau einer where coctailid in (...)-Abfrage: Collection idliste = new ArrayList(); idlist.add(new Integer(3)); idlist.add(new Integer(5)); criteria.addin("coctailid, idliste); Verwendung von Pfadausdrücken, aus denen automatisch ein Join gebildet wird: criteria.addequalsto("coctailgruppe.name, "Karibik ); Auch Sql-Funktionen können verwendet werden: criteria.addlike("upper(name),"%cola% ); Falls die Möglichkeiten trotzdem mal nicht ausreichen sollten, dann besteht auch die Möglichkeit direkt eine SQL-Bedingung anzuhängen: criteria.addsql("soundex(name) like '%' soundex('golladda')");
6 18. Deutsche ORACLE-Anwenderkonferenz Caching OJB bietet die Konfiguration verschiedener Caching-Strategien an (kann auch auf Tabellenebene konfiguriert werden): kein Cache Globaler Cache: Diese Variante ist mit Vorsicht zu genießen, da sie keinerlei Schutz vor konkurrierenden Zugriffen und keine Transaktionskonsistenz gewährleistet. Diese Variante wird aber defaultmäßig verwendet! Lokaler Cache pro PersistenceBroker: Das kam bei uns zum Einsatz, bei einer Web-Anwendung hat dies aber zur Folge, dass die Lebensdauer des Caches auf den Aufbau einer Webseite beschränkt ist und daher nur wenig gecachet wird. Zweistufiger Cache: Hier werden angeforderte Objekte aus dem globalen Cache zunächst in den lokalen Cache kopiert. Erst beim commit der Transaktion werden diese wieder zurückkopiert in den globalen Cache. Dies ist sicherlich gegenüber dem globalen Cache die wesentlich robustere Variante. Man sollte sich aber Gedanken machen über eine korrekt implementierte copy-semantik für die verwendeten Objekte. Verteilter Cache für Cluster-Konfigurationen Forms / J2 EE Application Server Vergleich mit anderen OR-Mapping-Tools Außer OJB sind auch Hibernate und Toplink (Oracle) verbreitete OR-Mapping-Tools für Java (es gibt aber auch noch zahlreiche andere). Alle drei verfügen im Grunde genommen über relativ ähnliche Features. Toplink glänzt mit einer komfortablen grafischen Benutzeroberfläche. Hibernate hat vermutlich die etwas größere Benutzergemeinde. OJB hat wohl die etwas elegantere, erweiterbarere Architektur. Erfahrungswerte Beim Einsatz in verschiedenen Projekten haben sich folgende Vor/Nachteile herauskristallisiert: Vorteile: Funktioniert sehr zuverlässig. Klassen müssen nicht von bestimmten Superklasen oder Interfaces abgeleitet werden, auch in Bezug auf das Datenmodell ist OJB nicht-invasiv Über zahlreiche Schnittstellen können verschiedene Aspekte an eigene Aspekte angepasst werden. (z.b. spezielles Mapping für eigene Datentypen, eigene Primärschlüsselgenerierung) Nachteile: Die Dokumentation könnte z.t. etwas ausführlicher sein. Die Fehlermeldungen sind manchmal nicht besonders aussagekräftig. Kontaktadresse: Daniel Blonski Donnersbergweg 3 D Ludwigshafen Telefon: +49(0) Fax: +49(0) daniel.blonski@she.net Internet:
Eclipse und EclipseLink
Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als
MehrAnalyse 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
MehrHibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate
Hibernate Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen Nabil janah 1 Hibernate Inhalt Hibernate allgemeines Vorteile von Hibernate Hibernate-Architektur
MehrOO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle
OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO
MehrObjekt-relationales Mapping und Performance-Tuning
Objekt-relationales Mapping und Performance-Tuning Thomas Krüger tkrueger@vanatec.com Agenda Wege um Daten zu lesen Wege um Daten zu modellieren Wege um Datenbanken effizient zu nutzen 2 2 Wege, Daten
Mehr4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)
4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung
Mehr10. Datenbank Design 1
1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation
MehrJava Persistence API 2.x. crud + relationships + jp-ql
Java Persistence API 2.x crud + relationships + jp-ql Grundprinzip 10.02.10 2 Problematik Man muss bei der Persistierung immer das Klassenmodell und dessen Umsetzung im Datenmodell (in der DB) berücksichtigen.
MehrObjektrelationale Datenbanken
Vorlesung Datenbanksysteme vom 26.11.2008 Objektrelationale Datenbanken Konzepte objektrelationaler DBs SQL:1999 OO vs. OR Konzepte objektrelationaler Datenbanken Große Objekte (LOBs: Large Objects) Mengenwertige
MehrGregor Raschke 2008 HIBERNATE. Eine Einführung
1 HIBERNATE Eine Einführung Inhalt 2 Einleitung Beispielkonfiguration Die hibernate.cfg.xml Eine Beispieltransaktion Abfragemöglichkeiten JPA und Hibernate Ressourcen und Quellen Einleitung (1) - Geschichtliches
MehrPersistenz 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)
MehrXML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG
Mittwoch, 9. November 2005 13h00, Bruno-Schmitz-Saal 18. Deutsche ORACLE-Anwenderkonferenz XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG Volker Husemann Thyssen Krupp Stahl
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrSQL structured query language
Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query
MehrTechnische Beschreibung: EPOD Server
EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für
MehrObjektrelationale und erweiterbare Datenbanksysteme
Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler
MehrSoftwareentwicklung mit Enterprise JAVA Beans
Softwareentwicklung mit Enterprise JAVA Beans JPA - JAVA Persistence API Problem In JAVA-programmen arbeitet man mit Hauptspeicherobjekten. Nach Beendigung des Programmes sind diese nicht mehr vorhanden.
MehrObjektorientierte Datenbanken
OODB 11 Slide 1 Objektorientierte Datenbanken Vorlesung 11 Sebastian Iwanowski FH Wedel OODB 11 Slide 2 Wesentliche Eigenschaften von Hibernate Transparente Persistenz Transitive Persistenz (Persistenz
MehrDie folgende Tabelle stellt die Grundbegriffe der objektorientierten und der relationalen Welt gegenüber:
1.Einleitung: Bei der Arbeit mit objektorientierten Programmiersprachen stellt sich häufig die Frage wie Objekte persistiert werden können. Da vor allem relationale Datenbanken sich großer Beliebtheit
MehrLINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering
LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten
MehrHibernate Das Praxisbuch für Entwickler
Sebastian Hennebrüder 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Hibernate Das Praxisbuch für Entwickler Galileo
MehrDatenbank 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......................
MehrWorkshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk
Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit
Mehrpmmda.net 1 Content Ojb.Net NHibernate Gentle.Net Fazit... 4
1 Content 1 Content... 1 2 Ojb.Net... 1 3 NHibernate... 2 4 Gentle.Net... 3 5 Fazit... 4 2 Ojb.Net Dokumentation http://ojb-net.sourceforge.net Ojb.Net ist die Portierung des Apache Projektes ojb. Die
MehrXML in der Oracle Datenbank
XML in der Oracle Datenbank Oracle XML DB Eine kurze Einführung Gruppe A Michaela Geierhos Galina Hinova Maximilian Schöfmann AGENDA Warum XML in einer Datenbank? Was bietet die Oracle XML DB? Unterschiedliche
MehrO/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010
O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational
MehrReferent: Marko Modsching. Vortrag: JPA mit Hibernate. Datum: 04.01.2011. Deutsche Software Engineering & Research GmbH
Referent: Marko Modsching Vortrag: JPA mit Hibernate Datum: 04.01.2011 Deutsche Software Engineering & Research GmbH Steinstraße 11 02826 Görlitz Germany Telefon: +49 35 81 / 374 99 0 Telefax: +49 35 81
MehrSQL 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-
MehrAuf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13
Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel
MehrInhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15
Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................
MehrKapitel 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
Mehr6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung
6 Implementierung komplexer Systeme 6.2 Datenbank-Anbindung Analyse Entwurf Implementierung Test, Integration Wartung Literatur: Balzert LE 24-26, 31 Ambler Kap. 10 Einsatz von Datenbanksystemen Persistente
MehrSQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99
SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:
MehrObject Relational Mapping Layer
Object Relational Mapping Layer Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS PHP (propel) 1/18 Propel - Persistance Layer OR-Mapper für PHP Portierung
MehrIn diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.
1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?
MehrHochschule 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.
Mehr1. C-JDBC für den Remote-Zugriff auf Derby
HOWTO Verwendung von C-JDBC mit Apache Derby Version 0.2 27 November 2004 Autor: Emmanuel.Cecchet@inria.fr Grundsätzlich gibt es zwei Möglichkeiten, C-JDBC mit Apache Derby zu verwenden: Verwendung der
MehrOpen-Source Transparente Persistence (keine Interfaces, keine Ober- Klassen) Caching
1 Was ist Hibernate Hibernate ist ein Open-Source-Java-Persistenz-Framework für relationale Datenbanken Persistenz-Frameworks: kapseln und abstrahiert den Zugriff auf eine Speicherschicht -> Zwischenschicht
MehrXINDICE. 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
MehrInhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung
Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,
MehrJakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen <henning@apache.org>
Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen Henning P. Schmiedehausen Turbine - ein berblick Open Source unter Apache License 100% pure Java, Java 2 (JDK 1.2+) Servlet-basiertes
MehrSODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG
SODA Die Datenbank als Document Store Rainer Willems Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG vs No Anforderungskonflikte Agile Entwicklung Häufige Schema-Änderungen Relationales
MehrJava 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
MehrDie Warenkorbfunktion (workbasket)
Beschreibung der Komponente zur integration eines Warenkorbs in die Anwendung Table of contents 1 Allgemein...2 2 Körbe speichern und laden...3 3 Aufgelöstes XML oder beliebige weitere Metadaten im Korb...
MehrDatenmanagement 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
Mehr4. Objektrelationales Typsystem Kollektionstypen. Nested Table
Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrOracle: 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
MehrVorlesung. Grundlagen betrieblicher Informationssysteme. Prof. Dr. Hans Czap. Email: Hans.Czap@uni-trier.de. Lehrstuhl für Wirtschaftsinformatik I
Vorlesung Grundlagen betrieblicher Informationssysteme Prof. Dr. Hans Czap Email: Hans.Czap@uni-trier.de - II - 1 - Inhalt Kap. 1 Ziele der Datenbanktheorie Kap. 2 Datenmodellierung und Datenbankentwurf
MehrKapitel 7: Referentielle Integrität
Kapitel 7: Referentielle Integrität Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen
MehrPHP + 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
MehrObject Relational Mapping Layer
Object Relational Mapping Layer Dr. Christian Senger ORM & Vererbung 1 create table fortbildung( id number primary key, bezeichnung varchar2(40), datum date ); create table themenblock( id number primary
MehrObjektorientierte Datenbanken
OODB 3 Slide 1 Objektorientierte Datenbanken Vorlesung 3 Sebastian Iwanowski FH Wedel OODB 3 Slide 2 JDO: 1. Teil Entstehungsgeschichte und Ziele von JDO Überblick über den Leistungsumfang von JDO JDO
MehrUm asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.
Technisches Design Inhalt Design Übersicht Menü und DispatcherServlet DWR Servlet Viewer Servlets Controllers Managers Sicherheit Anwendung Architektur Component Diagram Deployment Diagram Komponente Sequence
MehrSo funktioniert s: Affiliate- Daten per API mit dem Content verschmelzen
So funktioniert s: Affiliate- Daten per API mit dem Content verschmelzen Die Nutzung von Affiliate-Programmen und -Netzwerken gehört für viele Webseitenund Portalbetreiber bereits zum Alltag. Grafisch
MehrJava 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
MehrT:\Dokumentationen\Asseco_BERIT\Schulung\BERIT_LIDS7_Basiskurs\Impo rt_export\beritde_lt_do_20120918_lids7.basisschulung_import_export.
LIDS 7 Import/Export Mannheim, 11.02.2013 Autor: Anschrift: Version: Status: Modifiziert von: Ablage: Christine Sickenberger - Asseco BERIT GmbH Asseco BERIT GmbH Mundenheimer Straße 55 68219 Mannheim
MehrProbeklausur Datenbanktechnologie
Probeklausur Datenbanktechnologie Prof. Dr. Ingo Claßen Name: Vorname: MatrNr: Bewertung 1 25 2 15 3 10 4 10 Übung 40 Σ = 100 Punkte Punkte: Note: Notenspiegel 100 95 1,0 94 90 1,3 89 85 1,7 84 80 2,0
MehrDatumsangaben, 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
MehrNachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)
Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der
MehrDATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.
Mehri n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging
Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des
MehrForeign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe
MySQL 4, 5 Kapitel 16: Fremdschlüssel Gliederung 1 Gliederung 1 Fremdschlüssel sichern die Referenzielle Integrität voneinander abhängiger Tabellen. Um Fremdschlüssel definieren zu können, müssen Sie die
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
MehrWhitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz
combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt
MehrPerformance Tuning mit @enterprise
@enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank
Mehr4. Datenbanksprache SQL
4. Datenbanksprache SQL Standard-Sprache für das Arbeiten mit relationalen Datenbanken: Structured Query Language Datendefinition: Anlegen, Ändern und Löschen von Datenbankstrukturen Datenmanipulation:
Mehr4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen
4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet
MehrEinführung in die Informatik II
Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen
MehrLINQ. LANGUAGE INTEGREATED QUERY.net 3.5. Bernhard Grojer BernhardG@ppedv.de
LINQ LANGUAGE INTEGREATED QUERY.net 3.5 Bernhard Grojer BernhardG@ppedv.de Agenda Übersicht LINQ Basistechnologien Verschiedene Arten von LINQ LINQ (to Objects) LINQ TO SQL Übersicht LINQ Aggregationen
MehrÜbersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
MehrOrganisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50
Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine
MehrEinfü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:
MehrObjektorientierte PL/SQL- Programmierung
Objektorientierte PL/SQL- Programmierung Autoren: Andriy Terletskyy und Michael Meyer DOAGNews Q3_2004 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung,
MehrFunktionsübersicht. Beschreibung der zentralen Funktionen von PLOX
Funktionsübersicht Beschreibung der zentralen Funktionen von PLOX Seite 2 Inhaltsverzeichnis 1. Überblick Architektur... 2 2. PLOX-Menüleiste: Eine Toolbox voll nützlicher Werkzeuge... 3 2.1 Login... 3
MehrJava 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
MehrJDO Java Data Objects
JDO Java Data Objects Ralf Degner, Chief Consultant Ralf.Degner@poet.de Agenda POET Motivation Geschichte Einführung Architekturen FastObjects POET Gegründet 1993 Zwei Produktlinien esupplier Solutions:
MehrRelationales Datenbanksystem Oracle
Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information
MehrLogischer Entwurf und Dokumentation objektrelationaler Oracle Datenbanken
Fachhochschule Frankfurt/Main Logischer Entwurf und Dokumentation objektrelationaler Oracle Datenbanken 1 2 Agenda 1. Einleitung und Motivation 2. Fallbeispiel 3. Probleme mit UML Diagrammen 4. Beispielhafte
MehrMySQL, 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
MehrCLICK TO EDIT MASTER TITLE STYLE
CLICK TO EDIT MASTER TITLE STYLE AUTOMATISCHE ERZEUGUNG VON BENUTZEROBERFLÄCHEN UND DATENHALTUNG FÜR DIE KONFIGURATION VON FELDGERÄTEN Diplomverteidigung Betreuer (Firma ubigrate): Dipl.-Inform. Falk Hartmann
MehrÜbungsaufgaben zur Klausurvorbereitung Datenbanken 2, SoSe 2016
Die nachfolgenden Aufgaben sind nach Kategorien geordnet und stellen eine Auswahl von Aufgaben aus alten Klausuren des bisherigen Bachelor-WP-Fachs Datenbank Anwendungsentwicklung dar. Kategorie 1: OR-Mapping
MehrDatenbanktechnologie mit praktischen Übungen in MySQL und PHP
Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de Aufgaben Anmerkungen Best practice: SQL Befehle
MehrProjektbericht 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
MehrDokumentation zur Anlage eines JDBC Senders
Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise
MehrThemen. Web Service - Clients. Kommunikation zw. Web Services
Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur
MehrB Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion
1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrInhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten
1 Einführung... 1 1.1 Was wird vermittelt?... 1 1.2 Hinweise zum Buch... 3 1.3 Hinweise zur Buch-CD... 4 1.4 Hinweise zum Forum... 4 1.5 Allgemeine Hinweise... 5 2 Die Software JGIS... 7 2.1 Start des
MehrCassandra Query Language (CQL)
Cassandra Query Language (CQL) Seminar: NoSQL Wintersemester 2013/2014 Cassandra Zwischenpräsentation 1 Gliederung Basic facts Datentypen DDL/DML ähnlich zu SQL Besonderheiten Basic facts CQL kurz für
MehrTYPO3 und TypoScript
TYPO3 und TypoScript Webseiten programmieren, Templates erstellen, Extensions entwickeln von Tobias Hauser, Christian Wenz, Daniel Koch 1. Auflage Hanser München 2005 Verlag C.H. Beck im Internet: www.beck.de
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrModul 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%
Mehr15 Bilder und Dateien im SQL Server
Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 15 Bilder und Dateien im SQL Server Eines der großen Probleme von Access-Datenbanken ist der vergleichsweise geringe Speicher platz. Sicher,
Mehr7. XML-Datenbanksysteme und SQL/XML
7. XML-Datenbanksysteme und SQL/XML Native XML-DBS vs. XML-Erweiterungen von ORDBS Speicherung von XML-Dokumenten Speicherung von XML-Dokumenten als Ganzes Generische Dekomposition von XML-Dokumenten Schemabasierte
MehrKomplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren
Komplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren Autor: Norbert Bahn, Opitz Consulting DOAGNews Q3_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten
MehrIntroduction to Data and Knowledge Engineering. 6. Übung SQL
Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB
Mehr