Datenbank und Informationssysteme von Rami Swailem pdfauthor

Werbung
Datenbank und Informationssysteme
Inhaltsverzeichnis
1 Programmierung von Datenbankzugriffen
1.1 Architektur des SQL/CLI am Beispiel JDBC . . . . .
1.2 Anfragen und Ergebnismengen in JDBC . . . . . . . .
1.3 Metainformationen und adaptives Programmieren . . .
1.4 Architektur von ADO.NET . . . . . . . . . . . . . . .
1.5 Speicherresidente Datenbankstrukturen mit ADO.NET
1.6 Objekt-Relationales Mapping am Beispiel Hibernate .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
4
6
6
6
6
6
2 Transaktionen und Nebenläufigkeitskontrolle
2.1 Eigenschaften und Verwendung von Transaktionen
2.2 Serialisierbarkeit und Nebenläufigkeitskontrolle . .
2.3 Isolationslevel in SQL-Datenbanksystemen . . . . .
2.4 Strategien der Nebenläufigkeitskontrolle . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
6
6
.
.
.
.
.
6
6
6
6
6
6
4 Datenbanksicherheit und Autorisierung
4.1 Autorisierung und Zugriffskontrolle . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Techniken zum Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
7
7
5 Datenanalyse zur Entscheidungsfindung
5.1 Data-Warehouses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Data-Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
7
3 Verteilte Datenbanken
3.1 Architektur verteilter Datenbanken . . . . .
3.2 Datenspeicherung in verteilten Datenbanken
3.3 Verteilte Anfragen . . . . . . . . . . . . . .
3.4 Änderung verteilter Daten und Replikation
3.5 Verteilte Transaktionen . . . . . . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Rami Swailem
FH Gießen-Friedberg
6 Neue Datenbanktechnologien
6.1 XML und Datenbanken . .
6.2 Temporale Datenbanken . .
6.3 Geografische Datenbanken .
6.4 Logik-basierte Datenbanken
DB2_Mitschrift.tex,v,1.1,October 19, 2006 at 11:30:11 CET
WS 06/07
DB2
Mitschrift
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
7
7
Seite 2
Rami Swailem
FH Gießen-Friedberg
DB2
Mitschrift
1 Programmierung von Datenbankzugriffen
Situation:
*S
Backend
Frontend
Anwendung
DB-Server
SQL
myProg
*C
Ergebnismengen
DBMS
Daten
*R
Beispiel 1.1 Die Grundstruktur des Datenbankzugriffs mit JDBC besteht in sechs Schritten.
Listing 1: JDBC-Abfrage
1
import j a v a . s q l . ∗ ;
3
public c l a s s BasicJDBC {
5
7
public s t a t i c void main ( S t r i n g [ ] a r g s ) {
Connection con = null ;
Statement stmt = null ;
R e s u l t S e t r s = null ;
9
try {
11
/∗∗ S c h r i t t 1 : Treiber r e g i s t r i e r e n ∗/
C l a s s . forName ( " sun . j d b c . odbc . JdbcOdbcDriver " ) ;
13
/∗∗ S c h r i t t 2 : Connection zur Datenbank h e r s t e l l e n ∗/
15
con = DriverManager . g e t C o n n e c t i o n ( " j d b c : odbc : azamon" ,
" d i s " , " ∗∗∗∗∗ " ) ;
17
DB2Mitschrift.tex,v,1.1,October 19, 2006 at 11:30:11 CET
/∗∗ S c h r i t t 3 : Satement erzeugen ∗/
19
stmt = con . c r e a t e S t a t e m e n t ( ) ;
21
/∗∗ S c h r i t t 4 : Anweisung d i r e k t ausfuehren ∗/
r s = stmt . executeQuery ( " s e l e c t author , t i t l e from Books " ) ;
23
/∗∗ S c h r i t t 5 : Ergebnis verwenden ∗/
25
27
while ( r s . next ( ) ) {
System . out . p r i n t l n ( r s . g e t S t r i n g ( " a u t h o r " ) + " "
+ rs . getString (" t i t l e ") );
}
29
} catch ( E x c e p t i o n e ) {
WS 06/07
Seite 3
Rami Swailem
FH Gießen-Friedberg
DB2
Mitschrift
31
}
finally {
try {
33
35
/∗∗ S c h r i t t 6 : Nicht mehr benoetigte Resourcen f r e i g e b e n ∗/
37
i f ( r s != null ) r s . c l o s e ( ) ;
i f ( stmt != null ) stmt . c l o s e ( ) ;
i f ( con != null ) con . c l o s e ( ) ;
39
} catch ( E x c e p t i o n e ) {
}
41
}
43
}
45
}
Rest folgt · · ·
1.1 Architektur des SQL/CLI am Beispiel JDBC
Zwei grundlegende Techniken des Zugriffs:
1. SLI: Statement Level Interface (embedded/eingebettetes SQL)
2. CLI: Call LevelInterface
SLI am Beispiel SQLJ
Prinzip:
2
s t r i n g i s b i n = new s t r i n g ( " 3 − 4 5 8 . . . " ) ; . . .
#s q l {SELECT author , t i t l e INTO : a u t h o r : t i t l e
FROM Books WHERE i s b n =: i s b n }
Statisches SQL Erstellen des Zugriffsplan des DBMS zur Compilierzeit.
Dynamisches SQL Erstellen des Zugriffsplans des DBMS zur Ausführungszeit.
DB2_Mitschrift.tex,v,1.1,October 19, 2006 at 11:30:11 CET
CLI: Call Level Interface
Beispiel:
ODBC ,
C/C++
JDBC ,
Java
ADO.NET
C#
sind Implementierungen von SQL/CLI = Teil des SQL-Standards.
WS 06/07
Seite 4
Rami Swailem
FH Gießen-Friedberg
DB2
Mitschrift
Java-Anwendung
SQL
java.sql.*
Ergebnismengen
DBMS-unabhängig
JDBC (Treibermanager)
JDBCTreiber
Oracle
JDBCTreiber
mySQL
JDBCTreiber
DB2
DBMS-spezifisch
DBServer
DBServer
DBServer
Oracle
mySQL
DB2
4 Arten von JDBC-Treibern:
Typ 1: JDBC-ODBC-Bridge (sun.jdbc.odbc.JdbcOdbcDriver)
Typ 2: Native API-Treiber
Typ 3: JDBC-Net-Treiber
Typ 4: Nativer Protokoll-Treiber
Treibermanager
• Registrieren und Laden von Treibern
• Herstellen der Verbindung zur DB
• Konfiguration der Verbindung
• Delegation an JDBC-Treiber
1. Registrieren und Laden von Treibern
DB2_Mitschrift.tex,v,1.1,October 19, 2006 at 11:30:11 CET
Methode 1: Explizites Laden der Treiberklasse: Class.forName(org.postgres.Driver)
Methode 2: properties-Datei: jdbc.drivers=org.postgres.Driver,· · ·
Methode 3: Systemeigenschaft (Parameter beim Aufruf): java-D jdbc.drivers=· · ·
MyClass
Methode 4: (neu in JDBC 4.0) automatisches Laden bei getConnection
2. Herstellen der Verbindung zur Datenbank
Methode 1: DriverManager.getConnection(url,uid,pwd)
Rest folgt am WE
WS 06/07
Seite 5
Rami Swailem
FH Gießen-Friedberg
DB2
Mitschrift
1.2 Anfragen und Ergebnismengen in JDBC
1.3 Metainformationen und adaptives Programmieren
1.4 Architektur von ADO.NET
1.5 Speicherresidente Datenbankstrukturen mit ADO.NET
1.6 Objekt-Relationales Mapping am Beispiel Hibernate
2 Transaktionen und Nebenläufigkeitskontrolle
2.1 Eigenschaften und Verwendung von Transaktionen
2.2 Serialisierbarkeit und Nebenläufigkeitskontrolle
2.3 Isolationslevel in SQL-Datenbanksystemen
2.4 Strategien der Nebenläufigkeitskontrolle
3 Verteilte Datenbanken
3.1 Architektur verteilter Datenbanken
3.2 Datenspeicherung in verteilten Datenbanken
3.3 Verteilte Anfragen
3.4 Änderung verteilter Daten und Replikation
3.5 Verteilte Transaktionen
4 Datenbanksicherheit und Autorisierung
DB2_Mitschrift.tex,v,1.1,October 19, 2006 at 11:30:11 CET
x
WS 06/07
Seite 6
Rami Swailem
FH Gießen-Friedberg
DB2
Mitschrift
4.1 Autorisierung und Zugriffskontrolle
4.2 Techniken zum Recovery
5 Datenanalyse zur Entscheidungsfindung
5.1 Data-Warehouses
5.2 Data-Mining
6 Neue Datenbanktechnologien
6.1 XML und Datenbanken
6.2 Temporale Datenbanken
6.3 Geografische Datenbanken
6.4 Logik-basierte Datenbanken
DB2_Mitschrift.tex,v,1.1,October 19, 2006 at 11:30:11 CET
WS 06/07
Seite 7
Herunterladen