Datenbanken und Internet

Werbung
Klausur-Termin?
• 120 Minuten Bearbeitungszeit
• Mögliche Termine (unter Vorbehalt):
– Freitag 16.02.
– Montag 19.02. – 10:00 – 12:00 Uhr
– Dienstag 20.02. – 10:00 – 12:00 Uhr
– ???
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Persistenz
• Persistenz = dauerhafte Speicherung (DB, Datei,
…)
• Frage 1:
Warum reden wir darüber?
• Frage2:
Zusätzliche Anforderungen/Probleme bei
persistenter Speicherung?
• Frage 3:
Wie speichere ich die Objekte meiner OOProgrammiersprache (z.B. Java)?
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Warum reden wir darüber?
• Die Daten sind wichtig, sie bilden die
Grundlage des Geschäftes und machen
einen großen Teil des Geschäftvermögens
aus!  daher Anforderung für fast jeder
Unternehmensanwendung
• Die Speicherung ist einer der größten
Geschwindigkeitsbegrenzer für
Unternehmensanwendungen!
• Die Realisierung meist teuer!
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Anforderungen/Probleme
• Zuverlässigkeit – Speichermedien können versagen
(Haltbarkeit)
• Transport – bei der Übertragung vom Hauptspeicher
zum Speichermedium kann es zu Fehlern kommen
(generell)
• Zugriffsschutz – persistente Daten müssen vor
unbefugtem Zugriff geschützt werden
• Mehrbenutzerzugriff – konkurrierende Zugriffe,
insbesondere bei Updates
• Transaktionen – Während eines Schreibvorgangs
können Fehler auftreten
• Performanz – Festplatten und Netzwerke sind
langsamer als Hauptspeicher
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Beispiel: Java Objekt
public class Person {
String name;
ArrayList nummern = new ArrayList();
public Person(String name) {
this.name = name;
}
public void addNummer(String num) {
this.nummern.add(num);
}
public static void main(String[] args) {
// first create the Object
Person p = new Person("Karsten");
p.addNummer("12345");
p.addNummer("67890");
System.out.println(p.getNummernListe());
}
}
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Ansätze für Persistenz
• Ohne DBMS – Speicherung in einer Datei
• Nutzung eines ODBMS
• Nutzung von RDBMS
– JDBC oder SQLJ
– EJB
– JDO
– Frameworks (z.B. Hibernate)
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Serialisieren von Objekten in
Java
• Objekte werden von Java in einer Datei
gespeichert und können wieder geladen
werden.
• Alle relevanten Objekte müssen das
Interface “java.io.Serializable”
implementieren.
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Serialize - Deserialize
• Referenzierende Objekte werden
automatisch mit gespeichert (serialize)
und auch mit geleaden (deserialize).
A
B
class A implements Serializable {
private B b;
public A() {
b = new B();
}
}
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Beispiel: Java Serialize
public class Person implements Serializable {
String name;
ArrayList nummern = new ArrayList();
…
}
class PersTest {
public static void main(String[] args) {
…
Person a = new Person(“Fred”);
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(“filename”);
os.writeObject(a);
os.close;
…
ObjectInputStream is = new ObjectInputStream(new FileInputStream(“filename”);
Person b = (Person)is.readObject();
is.close();
…
}
}
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Nutzung eines DBMS
• Vorteile:
– Auch für große Datenmengen
– Anforderungen wie: Mehrbenutzer,
Indexverwaltungen, Zugriffsschutz, … sind bereits
integriert.
• Probleme:
– Mögliche Lizenzgebühren
– Aufwendigere Umsetzung (Datentypen, Strukturen –
abhängig vom jeweiligen DBMS)
• ODBMS – zu geringe Verbreitung (auf ODBMS gehen wir in dieser Vorlesung
nicht wirklich ein!-)
• RDBMS – Abbildung von Objekten auf Tabellen nötig
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Nutzung von SQLJ oder JDBC
• O/R-Mapping ist Aufgabe des
Programmierers
– Zeitaufwendig – jedes mal das Gleiche
– Schlecht zu warten – andere Programmierer
müssen sich erst einarbeiten
– Performance abhängig vom Geschick des
Programmierers
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Beispiel Teil 1
public class Person {
String name;
ArrayList nummern = new ArrayList();
…
ID
Name
Nummern
1
Test
{1,2,34}
…
…
…
Möglichkeit 1
ID
Name
Nummern
1
Test
1
1
Test
2
1
Test
34
WS2006/2007
Möglichkeit 2
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Beispiel Teil 2
ID
1
Name
Test
Möglichkeit 3
Forein Key Constraint
ID
1
1
1
WS2006/2007
Nummern
1
2
34
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
EJB – Enterprise Java Bean
• Standardisierte Komponente
innerhalb J2EE (Java 2 Enterprise
Edition  Java EE 5)
• Zurzeit ist EJB 3.0 aktuell
• Entwickelt vorwiegend von SUN
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
EJB – Enterprise Java Bean
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
EJB – Enterprise Java Bean
• Session Bean
– stateful
– stateless
• Message Driven Bean
– zur asynchrone Kommunikation
• Entity Bean
– Bean Managed Persistenz
– Container Managed Persistenz
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
EJB – Enterprise Java Bean
• Entity Beans sind persistent (2 Typen),
• Erlauben Zugriff von mehreren Clients,
– Typically, the EJB container provides transaction
management.
• Besitzen einen “primary keys” (Identität),
• Können Beziehungen zu anderen Entity
Beans haben.
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
EJB – CMP
• EJB Container kümmert sich um DB-Zugriffe
Container Managed Persistenz
• Kein SQL in der EJB  unabhägig vom
DBMS einfachere Portierung
• Klare Trennung von Geschäftslogik und
Speicherlogik
• Im Deployment Descriptor, wird “abstract
schema” definiert, welches die Persistenten
Felder und Beziehungen beschreibt.
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
EJB – Deployment Descriptor
<entity>
<ejb-name>Person</ejb-name>
…
<persistence-type>Container</persistence-type>
<cmp-version>2.x</cmp-version>
…
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
</cmp-field>
<primkey-field>id</primkey-field>
…
</entity>
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
EJB - BMP
• Programmierer kümmert sich um Persistenz 
Bean Managed Persistenz
• Wissen über DBMS und die Abbildung auf die
Speicherstruktur ist während des
Programmierens nötig.
• Flexibler!!!!
– Bei komplexen Joins, Legacy Systemen etc.
unumgänglich
– Performance Optimierung möglich
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
JDO – Java Data Objects
• Spezifikation für ein Framework zur
persistenten Speicherung von Java
Objekten
• JDO gibt keine Vorgaben für physikalische
Speicherung – (O/R)DBMS oder andere
 Zwischenebene, Programmierer (-ung)
ist unabhängig vom DBMS
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
JDO – Ziele
• Anwendung getrennt vom
Persistierungprozess
• Sicht auf das Persistierungsmedium
abstrahiert
• Unabhängikeit vom Persistierungsmedium
• Unabhängigkeit von der Laufzeitumgebung
– JDO ist unabhängig von J2EE
• Austauschbarkeit der JDO-Implementierung
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
JDO – Java Data Objects
• Erste Version 2001 unter anderem von
SUN, IBM, Apple, …
• Referenzimplementierung von SUN
• JDO 2 wurde im Mai 2006 verabschiedet
• JDO wurde von SUN an Apache
abgegeben
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Hibernate
• Open Source Projekt
(Lizenz: LGPL – GNU Lesser General Public
License siehe: http://www.gnu.org/copyleft/lesser.html)
• Java (und .NET) persistenz für relationale DBMS
 .NET = NHibernate
• Zitat von Hibernate Web Seite:
“Hibernate is a Professional Open Source
project and a critical component of the JBoss
Enterprise Middleware System (JEMS) suite of
products. JBoss, a division of Red Hat, offers a
range of 24x7 Professional Support, Consulting,
and Training services to assist you with
Hibernate.”
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Hibernate
• Hibernate (engl. für „Winterschlaf halten“)
• KEIN Standard
• Keine graphische Oberfläche
• Homepage: http://www.hibernate.org/
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Hibernate
• Abbildung auf Relationen erfolgt mittels
einer XML-Datei
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="hibernate.pojo.Person" table="PERSONS">
……… <!– Mappings für die Eigenschaften der Klasse -->
</class>
</hibernate-mapping>
POJO ist eine Abkürzung für Plain Old Java Object, also ein „ganz normales“ Objekt in der Programmiersprache Java.
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Es folgt ein Auszug aus:
Persistenz von Objekten
von
Dr. Serge Shumilov
Universität Bonn
http://www.odbms.org/download/016.01%20Shumilov%20Persistenz%20von%20Objekten%20September%202004.PDF
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
IBM – Software testen …
• http://www-306.ibm.com/software/data/db2/express/
kostenfreie DB Version
• http://www-128.ibm.com/developerworks/offers/sek/
kostenfreie Software aus verschiedenen
Bereichen (inkl. Rational, DB, WebSphere)
WS2006/2007
Vorlesung: Datenbanken und Internet
Copyright 2006 – DBIS/Dr. Karsten Tolle
Herunterladen