Vorlesung Datenbankmanagementsysteme

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Datenbankmanagementsysteme"

Transkript

1 Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-1

2 Themen der Vorlesung Grundlagen Architekturen Modellierung Relationale Datenbanken Relationaler DB-Entwurf SQL zur Datendefinition Sichten, Zugriffskontrolle, Trigger SQL zur Datenabfrage/- manipulation SQL zur Datenanalyse Programmiersprachenanbindung Transaktionsverwaltung Nicht-relationale Inhalte Phys. Datenbankdesign und Zugriffsstrukturen Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-2

3 Wiederholung Gliederung der Vorlesung - Trigger, Sichten, Zugriffsschutz JAVA JDBC API - JDBC als abstrakte DBMS-API für JAVA - Cursor Konzept & ResultSets - Datentyp Abbildungen - Prepared Statements PHP OCI8 API Zusammenfassung Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-3

4 Wiederholung Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-4

5 Trigger in ORACLE Reaktion auf DML-Ereignisse Notation: create or replace trigger <triggername> before/after insert or update or delete on <tablename> REFERENCING NEW AS <newrow> OLD AS <oldrow> for each row/for each statement when (<Bedingung>) DECLARE variablen deklaration BEGIN if (INSERTING/UPDATING/DELETING) then... end if; END <triggername>; Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-5

6 Trigger in ORACLE Beispiel I Beispiel Kein Kundenkonto darf unter 0 absinken create or replace trigger bad_account after insert or update of Kto on KUNDE for each row when (:new.kto < 0) begin raise_application_error(-20221, Nicht unter 0 ); end; Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-6

7 Trigger in ORACLE Beispiel II CREATE OR REPLACE TRIGGER MEINTRIGGER BEFORE INSERT OR UPDATE ON MEINETABELLE REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN IF (INSERTING) THEN SELECT SYSDATE INTO :NEW.CHG_DATE FROM DUAL; SELECT SYSDATE INTO :NEW.CRE_DATE FROM DUAL; ELSIF (UPDATING) THEN SELECT SYSDATE INTO :NEW.CHG_DATE FROM DUAL; END IF; END; / Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-7

8 Trigger in OPRACLE Beispiel III Kein Kundenkonto darf unter 0 absinken create trigger bad_account after update of Kto on KUNDE referencing new as INSERTED when (exists (select * from INSERTED where Kto < 0) ) begin atomic rollback; end ähnlicher Trigger für insert Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-8

9 Sichten Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-9

10 Sichten = Externes Schema Externes Schema 1... Externes Schema n Anfragebearbeitung Konzeptuelles Schema Internes Schema Datendarstellung Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-10

11 Sichten: Definition durch SQL create view <Sichtname> [Schemadeklaration] as <SQL-Anfrage> [with check option] Sichtname: Name der virtuellen Relation Schemadeklaration (optional): Festlegung von Namen für berechnete Spalten SQL-Anfrage: Vorschrift zur Berechnung der Spalten Weitere optionaler Teil: Festlegung, ob Änderungen auch den nicht sichtbaren Teil der Datenbank beeinflussen können Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-11

12 Sichten Beispiele alle Alben aus Genre Rock : create view RockAlben as select Titel, Name, Jahr from Album, Musiker where Album.MNr = Musiker.MNr and Genre = Rock create view NeueMusiker as select Name, Land from Musiker where MNr in (select MNr from Album where Jahr = (select max(jahr) from Album)) Musiker mit Alben aus dem aktuellen Jahr Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-12

13 Projektionssicht MA := π Mitarbeiter,Abteilung (MGA) In SQL mit create view-anweisung: create view MA as select Mitarbeiter, Abteilung from MAG Änderungsanweisung für die Sicht MA: insert into MA values ( Zuse, Info ) Korrespondierende Anweisung auf der Basisrelation MGA: insert into MGA values ( Zuse, null, Info ) Problem der Konsistenzerhaltung, falls Gehalt als not null deklariert! Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-13

14 Selektionssicht MG := σ Gehalt>20 (π Mitarbeiter,Gehalt (MGA)) create view MG as select Mitarbeiter, Gehalt from MGA where Gehalt > 20 Tupelmigration: Ein Tupel MGA( Zuse, 25, Info ) wird aus der Sicht herausbewegt update MG set Gehalt = 15 where Mitarbeiter = Zuse Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-14

15 Kontrolle Tupelmigration create view MG as select Mitarbeiter, Gehalt from MGA where Gehalt > 20 with check option with check option prüft die Einhaltung der where- Klausel beim Einfügen und Ändern Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-15

16 Verbundsichten I MGAL := MAG AL create view MGAL as select Mitarbeiter, Gehalt, MGA.Abteilung, Leiter from MGA, AL where MGA.Abteilung = AL.Abteilung Änderungsoperationen in der Regel nicht eindeutig übersetzbar insert into MGAL values ( Turing, 30, Info, Zuse ) Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-16

17 Verbundsichten II Transformation der Änderung zu und insert into MGA values ( Turing, 30, Info ) 1. Einfügen in AL insert into AL values ( Info, Zuse ) 2. oder alternativ: Änderung in AL update AL set Abteilung = Info where Leiter = Zuse Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-17

18 Aggregierungssichten create view AS (Abteilung, SummeGehalt) as select Abteilung, sum(gehalt) from MAG group by Abteilung Folgende Änderung ist nicht eindeutig umsetzbar: update AS set SummeGehalt = SummeGehalt where Abteilung = Info Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-18

19 Zusammenfassung der Sichten-Probleme Verletzung der Schemadefinition Vermeidung von Integritätsverletzungen (z.b. durch Einfügen von Nullwerten bei Projektionssichten) Datenschutz Seiteneffekte auf nicht-sichtbaren Teil der Datenbank vermeiden (z.b. Tupelmigration bei Selektionssichten) Auswahlproblem nicht immer eindeutige Transformation Aggregierungssichten keine sinnvolle Transformation möglich Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-19

20 Einschränkungen für Änderungsoperatione auf Sichten änderbar nur Selektions- und Projektionssichten (Verbund und Mengenoperationen nicht erlaubt) 1:1-Zuordnung von Sichttupeln zu Basistupeln: kein distinct in Projektionssichten Arithmetik und Aggregatfunktionen im select-teil sind verboten genau eine Referenz auf einen Relationsnamen im from-teil erlaubt (auch kein Selbstverbund) keine Unteranfragen mit Selbstbezug im where-teil erlaubt (Relationsname im obersten SFW-Block nicht in from-teilen von Unteranfragen verwenden) group by und having verboten Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-20

21 Rechtevergabe Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-21

22 Rechtevergabe in SQL grant <Rechte> on <Tabelle> to <BenutzerListe> [with grant option] In <Rechte>-Liste: all bzw. Langform all privileges oder Liste aus select, insert, update, delete Hinter on: Relationen- oder Sichtname Hinter to: Autorisierungsidentifikatoren (auch public, group) spezielles Recht: Recht auf die Weitergabe von Rechten (with grant option) Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie # Rechtevergabe zur Zugriffskontrolle

23 Authorisierung für public create view MeineAufträge as select * from AUFTRAG where KName = user; grant select, insert on MeineAufträge to public; Jeder Benutzer kann seine Aufträge sehen und neue Aufträge einfügen (aber nicht löschen!). Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-23

24 Zurücknahme von Rechten revoke <Rechte> on <Tabelle> from <BenutzerListe> [restrict cascade ] restrict: Falls Recht bereits an Dritte weitergegeben: Abbruch von revoke cascade: Rücknahme des Rechts mittels revoke an alle Benutzer propagiert, die es von diesem Benutzer mit grant erhalten haben Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-24

25 JDBC zur DBMS-Anbindung von JAVA Bildquellen: Heuer, Saake: Foliensatz Datenbanken I, 7-107; Schneider: Foliensatz Datenbanken Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-25

26 Kopplungsarten zw. DBMS und Programmiersprachen prozedurale bzw. CALL-Schnittstellen (call level interface) Beispiele: SQL/CLI, ODBC, JDBC, Einbettung einer DB-Sprache in Programmiersprachen statische Einbettung Vorübersetzer-Prinzip SQL-Anweisungen zur Übersetzungszeit festgelegt Beispiele: Embedded SQL, SQLJ dynamische Einbettung Konstruktion von SQL-Anweisungen zur Laufzeit Eingebettete Sprachen im DBMS Beispiele: JavaStoredProcedures, PL/SQL, Transact-SQL, PL/pgSQL Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-26

27 JDBC Anwendungsprogrammierschnittstelle (API), die es ermöglicht aus Java Programmen heraus SQL-Anweisungen auszuführen und mit jeder SQL-konformen DB zu interagieren DB-Anwendung kann auf unterschiedlichen Plattformen ausgeführt und mit unterschiedlichen DBS interagieren Entwickelt von JavaSoft, ein Tochterunternehmen von Sun Microsystems. - Handelsmarke von Sun Microsystems kein Akronym - Trotzdem häufig bezeichnet als Java DatabaseConnectivity Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-27

28 JAVA JDK Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-28

29 JDBC-API Integrierter Bestandteil der Sprache Java Enthalten in J2SE-und J2EE-Releases - Package java.sql - Package javax.sql Anwendung kann unabhängig vom DBS implementiert werden - Write Once, Run Anywhere - SQL-Anweisungen werden als Strings übertragen - JDBC-Treiber transformieren JDBC-SQL in DBMS-SQL DBMS-Anbieter implementieren und erweitern den Standard mit ihren eigenen JDBC-Treibern - JDBC Driver API zum Implementieren von Treibern! Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-29

30 JDBC Architektur Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-30

31 JDBC Treiberkonzept Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-31

32 JDBC Client-Server Szenario Eine Java-Anwendung hat n JDBC Verbindungen Eine Datenbank kann m JDBC-Clients verarbeiten Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-32

33 JDBC Cursor Konzept Problem bei Kopplung von SQL und Programmiersprachen: Unterschiedliche Datenstrukturkonzepte Relation vs. Tupel Impedance mismatch Lösung durch abstrakte Sichtweise auf Relation Realisierung der Relation als Liste Cursor als Iterator über dieser Liste von Tupeln Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-33

34 JDBC Überblick Datenbankzugriffsschnittstelle für Java abstrakte, datenbankneutrale Schnittstelle Low-Level-API: direkte Nutzung von SQL import java.sql.*: DriverManager Connection Statement, PreparedStatement ResultSet ResultSetMetadata SQLException Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-34

35 Struktur der JDBC-API Nutzung Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-35

36 JDBC Ablauf 1. Aufbau einer Verbindung zur Datenbank Angabe der Verbindungsinformationen Auswahl und Laden des Treibers 2. Senden einer SQL-Anweisung Definition der Anweisung Belegung von Parametern 3. Verarbeiten der Anfrageergebnisse Navigation über Ergebnisrelation Zugriff auf Spalten Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie # Datenbankzugriff mit JDBC und SQLJ

37 JDBC Verbindungsaufbau 1. Treiber laden Class.forName("com.company.DBDriver"); 2. Verbindung herstellen Connection con; String url = "jdbc:subprotocol:datasource"; con = DriverManager.getConnection(url, "scott", "tiger"); <protocol>:<sub-protocol>:<datasource> JDBC-URL Beispiele - - Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-37

38 JDBC Anfrageausführung Anweisungsobjekt (Statement) erzeugen Statement stmt = con.createstatement(); Anweisung ausführen String query = "SELECT MNr, Land from Musiker; ResultSet rset = stmt.executequery (query); Klasse java.sql.statement - Ausführung von Anfragen (SELECT) mit executequery - Ausführung von Änderungsanweisungen (DELETE, INSERT, UPDATE) mit executeupdate 102 Kanada 103 Finnland 104 Deutschland 105 Deutschland 106 Deutschland Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie # Datenbankzugriff mit JDBC und SQLJ

39 Verarbeitung JDBC-ResultSet 102 Kanada 103 Finnland 104 Deutschland 105 Deutschland 106 Deutschland next() == true next() == true next() == true next() == true next() == true next() == false while (res1.next()) { int id = res1.getint( MNr ); String land = res1.getstring(2); System.out.println( MNr.: +id+ Land: +land); } getxxx() Methoden für alle primitiven Java-Datentypen - getstring() funktioniert immer! getxxx(int pos): schneller, inkompatibel getxxx(string spalte): langsamer, kompatibel Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-39

40 Abbildung der Datentypen JDBC steht zwischen den Objekttypen aus Java und den unterschiedlichen Typen aus SQL Spezifikation der direkten Abbildungen, jedoch keine Zwang, welche Formate in Java für die SQL-Daten genutzt werden müssen Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-40

41 Prepared Statement Vorübersetzte Anfragen, die Parameter enthalten String multq = SELECT * FROM Vorlesung WHERE SWS =? AND DozentIn LIKE? ; PreparedStatement pstat1=conn1.preparestatement(multq); pstat1.setint(1,80); pstat1.setstring(2, Lange ); ResultSet res3=pstat1.executequery(); /* Verarbeite Result Set */ int i = 16 pstat1.setint(1,i); pstat1.setstring(2, Schneider ); ResultSet res3=pstat1.executequery(); /* Verarbeite Result Set */ pstat1.clearparameters(); Sehr gut bei Mehrfachausführung von Anfragen: Laufzeitverbesserung Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-41

42 Result Set Meta Data Abfrage von Beschreibungen eines ResultSet-Objektes ResultSetMetaData rsmd1 = res1.getmetadata(); int nofcolumns = rsmd1.getcolumncount(); String columnname1 = rsmd1.getcolumnname(1); String suggestedtitle1 = rsmd1.getcolumnlabel(1); int columnsqltype1 = rsmd1.getcolumntype(1); String columndbtype1 = rsmd1.getcolumntypename(1); Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-42

43 Änderungsoperationen mit JDBC DDL- und DML-Operationen mittels executeupdate liefert Anzahl der betroffenen Zeilen (für DML-Operationen) Liefert 0 für DDL-Operationen Statement stmt = con.createstatement(); int rows = stmt.executeupdate( "UPDATE Album " + "SET Preis = Preis * 0.9 " + "WHERE ANr = 1014"); Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-43

44 JDBC Fehlerbehandlung Fehlerbehandlung mittels Exception-Mechanismus SQLException für alle SQL- und DBMS-Fehler try { // Aufruf von JDBC-Methoden... } catch (SQLException exc) { System.out.println("SQLException: "+ exc.getmessage()); } Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-44

45 JDBC: Manuelle Ressourcenfreigabe! Ressourcen von JDBC Objekten manuell freigeben! - ResultSet - Statement - Connection Connection con = DriverManager.getConnection(<url>,<userId>,<password>); Statement sta = conn.createstatement(); ResultSet rs = sta.executequery(<sql>); /* result set verarbeitung*/ ss.close(); sta.close(); con.close(); Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-45

46 JDBC Transaktionssteuerung Methoden von Connection commit() rollback() Auto-Commit-Modus implizites Commit nach jeder Anweisung Transaktion besteht nur aus einer Anweisung Umschalten mittels setautocommit(boolean) Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-46

47 OCI8, ADOdb zur DBMS-Anbindung von PHP Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-47

48 PHP Einführung Einbindung von Code in HTML über Pseudo-Tags <?php Quelltext?> <H1> <?php print( Hello World. );?> </H1> <H1> Hello World. </H1> Web-Server Web-Browser Sprachüberblick Variablen mit $ eingeleitet Datentypen integer, double, string, boolean, array, object Operatoren Kontrollstrukturen if, switch, while, do, for, foreach Funktionen function Name (Parameter) {Anweisungen} Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-48

49 PHP Datenbankschnittstellen Weitreichende Datenbankunterstützung Ausschnitt unterstützter DBS (jeweils eine Funktionsbibliothek) - MySQL, Oracle, DB2 - ODBC, Schrittweiser Datenbankzugriff 1. Aufbau einer DB-Verbindung 2. Senden eines SQL-Statements 3. Verarbeiten der Ergebnisse 4. Abbau der DB-Verbindung Datenbankabstraktion z.b. mit ADOdb durch - Automatische Verbindungsaufnahme - Speicherung der Zugriffsparameter - Verbergen der datenbankspezifischen Eigenschaften Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-49

50 OCI8 als Oracle Schnittstelle Properitäre API (funktioniert nur für ORACLE) Einkompilierung in Apache-PHP Module -./configure --with-oci8=shared,instantclient,/path/to/instant/client/lib Schnelle Erfolge für einfache Web-Applikationen Umfangreiche Dokumentation: Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-50

51 PHP Datenbankzugriff mit OCI8 <?php $connection = 0; $connection = ocilogon($user, $pass, $host) or die; if ($connection) { $query = "SELECT name, firstname FROM users"; $stmt = OCIParse($connection, $query) or die; OCIExecute($stmt); print("<table>"); while(ocifetch($stmt)) { $data1 = trim(ociresult($stmt, 0)); $data2 = trim(ociresult($stmt, 1)); print("<tr><td>$data1</td><td>$data2</td><td></td></tr>"); } print("</table>"); OCIFreeStatement($stmt); } OCILogoff($connection);?> Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-51

52 PHP Datenbankzugriff mit ADOdb <?php include("/inc/adodb.inc.php"); $db = &ADONewConnection("oracle"); $db->connect("localhost","user","passwd","db"); $result = $db->execute("select name, firstname FROM users"); print("<table>"); if ($result) while ($data = $result->fetchrow()) print("<tr><td>$data[0]</td><td>$data[1]</td><td></td></tr>"); print("</table>"); $result->close(); $db->close();?> Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-52

53 PHP Fazit Einfach und leicht erlernbar Plattformunabhängig Zuverlässige Zusammenarbeit mit Apache Web-Server Umfangreiche Funktionsbibliothek, z.b. DB, XML, PDF, Grafiken Verwaltung von Benutzersitzungen durch Session- Unterstützung Nachteil unzureichende Trennung von Präsentation und Code Vielzahl und Unübersichtlichkeit verfügbarer Module Performance nimmt mit zunehmender Komplexität schnell ab Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-53

54 Zusammenfassung JDBC API als Teil des JAVA-JDK API Interfaces durch Treiber Implementiert -> DBMS spezifisch Cursor-Konzept, ResultSet Datentypabbildungen Einführung PHP - Sprache für WebAnwendungen - Datenbankkopplung über ADOdb und ORACLE OCI8 Vorlesung Datenbankmanagementsysteme Programmiersprachenanbindung M. Lange, S. Weise Folie #11-54

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme Trigger, Sichten und Zugriffskontrolle (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme Trigger, Sichten und Zugriffskontrolle M. Lange, S. Weise Folie #10-1

Mehr

11 Anwendungsprogrammierung

11 Anwendungsprogrammierung 11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:

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

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Sichten II logische Datenunabhängigkeit (Sichten stabil bei Änderungen der Datenbankstruktur) Beschränkung von Zugriffen (Datenschutz) Definition

Mehr

vs. Fehler zur Übersetzungszeit

vs. Fehler zur Übersetzungszeit Client-Server-Architektur, Anbindung von Programmiersprachen, Call-Level-Schnittstellen: /, JDBC, :, J, gespeicherte Prozeduren, prozedurale Erweiterungen: /PSM, PL/. IPD, Forschungsbereich Systeme der

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

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

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

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

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

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

10 Anwendungsprogrammierung

10 Anwendungsprogrammierung 10 10 10.1 Programmiersprachenanbindung 10.2 10.3 PL/SQL 169 10 Teil X 0 Programmiersprachenanbindung 1 2 3 LINQ Sattler / Saake Datenbanksysteme Letzte Änderung: 11.10.2011 10 1 Programmiersprachenanbindung

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

JDBC Datenzugriff aus Java ETIS SS04

JDBC Datenzugriff aus Java ETIS SS04 JDBC Datenzugriff aus Java ETIS SS04 Gliederung Motivation Bestandteile Fehlerbehandlung Metadaten Zusammenfassung JDBC 2 Motivation(I) Standard für Zugriff auf Datenquellen aus Java- Anwendungen RDBs,

Mehr

2. Datenbank-Programmierung

2. Datenbank-Programmierung 2. Datenbank-Programmierung SQL ist eingeschränkt bezüglich der algorithmischen Mächtigkeit, z.b. Berechnung einer transitiven Hülle ist in Standard-SQL nicht möglich. Die Einschränkung ist von Bedeutung

Mehr

Wie kommen die Befehle zum DBMS

Wie kommen die Befehle zum DBMS Wie kommen die Befehle zum DBMS Dr. Karsten Tolle Datenbanken und Informationssysteme Wie kommen die Befehle zum DBMS Bisher gesehen: SQL direkt zum DBMS Workbench Kommandozeile IBM Query Tool Weitere?

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.

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

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

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter SQLJ Standardisierte Java-DB DB-Schnittstelle Spezifikationen Part 0: Embedded SQL für Java (ANSI-Standard; Object Language Binding) Statische Einbettung von SQL-Anweisungen in Java-Quelltext Part 1: Java

Mehr

Datenbankzugriff mit JDBC

Datenbankzugriff mit JDBC Java: Kapitel 8 Datenbankzugriff mit JDBC Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 8 Einführung in SQL und JDBC Verbindung zur Datenbank

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

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

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4) Vorlesung #6 SQL (Teil 4) Fahrplan Besprechung der Übungsaufgaben Einschub: Self Joins (relevant fürs Praktikum) Dynamische Intergritätsbedingungen, das Trigger - Konzept von Oracle Prozedurale Erweiterungen,

Mehr

Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann

Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann Datenbanksysteme I Datenbankprogrammierung 15.6.2009 Felix Naumann SQL mit einer Programmiersprache verbinden 2 Embedded SQL Kombiniert SQL mit 7 Programmiersprachen ADA, C, Cobol, Fortran, M, Pascal,

Mehr

Klausur zur Vorlesung Datenbanksysteme I

Klausur zur Vorlesung Datenbanksysteme I Prof. Dr. W. Kießling 30.01.2002 Lehrstuhl für Datenbanken und Informationssysteme Universität Augsburg Klausur zur Vorlesung Datenbanksysteme I Wintersemester 2001/2002 Name Vorname Matrikelnummer Aufgabe

Mehr

Datenbankprogrammierung 1

Datenbankprogrammierung 1 Datenbankprogrammierung 1 Die Folien basieren auf: Datenbanken: Konzepte und Sprachen, Andreas Heuer und Gunter Saake, mitp-verlag, 2. Auflage, 2000, http://wwwiti.cs.uni-magdeburg.de/biber/ Datenbanken

Mehr

Datenbankanwendungen (JDBC)

Datenbankanwendungen (JDBC) Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau

Mehr

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement Funktion definieren Gibt Summe der Gehälter zurück Aufruf in einem SQL-Statement Dr. Christian Senger Einführung PL/SQL 1 Procedures & Transaktionen CREATE OR REPLACE PROCEDURE write_log ( log_code IN

Mehr

Modifikation der Datenbank

Modifikation der Datenbank Modifikation der Datenbank Löschen Einfügen Änderungen Änderungen von Sichten 71 Löschen Wir haben bereits gesehen, dass wir den gesamten Inhalt einer Tabelle r löschen können durch das Kommando: delete

Mehr

Wie kommen die Befehle zum DBMS

Wie kommen die Befehle zum DBMS Wie kommen die Befehle zum DBMS Dr. Karsten Tolle Datenbanken und Informationssysteme Wie kommen die Befehle zum DBMS Bisher gesehen: SQL direkt zum DBMS MySQL Workbench / HeidiSQL Kommandozeile Weitere?

Mehr

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Grundlagen: Datenbankprogrammierung Literatur T. Kudraß (Hrsg.): Taschenbuch Datenbanken, Hanser, 2007 DB-Programmierung-2 Einbettungstechniken Einbettung in 3GL Embedded

Mehr

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren DB-Programmierung Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele static SQL verstehen Build-Prozess / Art des Datenzugriffs Host-Variablen Vor- / Nachteile dynamic SQL verstehen

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

10. Anwendungsprogrammierung. Client-Server-Architektur

10. Anwendungsprogrammierung. Client-Server-Architektur 10. Anwendungsprogrammierung Client-Server-Architektur Anbindung von Programmiersprachen Call-Level-Schnittstellen: SQL/CLI, JDBC Einbettung: Embedded SQL, SQLJ Gespeicherte Prozeduren Prozedurale Erweiterungen:

Mehr

Einführung in die Informatik II

Einfü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

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Praktikum Datenbanksysteme

Praktikum Datenbanksysteme Praktikum Datenbanksysteme Herbstsemester 2012 Dr. Andreas Geppert Platform Architecture Technology Infrastructure Services Credit Suisse geppert@acm.org Herbstsemester 2012 Slide 1 Themenübersicht konzeptueller

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

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt Andreas Heuer Gunter Saake Kai-Uwe Sattler Datenbanken kompakt Inhaltsverzeichnis Vorwort v 1 Was sind Datenbanken 1 1.1 Warum Datenbanken 1 1.2 Datenbanksysteme 4 1.3 Anforderungen: Die Codd'schen Regeln

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Sommersemester 2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 10. Java: Datenhaltung mit Datenbanken 1 Datenbank-Programme Derby (Hersteller: Apache

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

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

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

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

Internetanbindung von Datenbanken

Internetanbindung von Datenbanken Internetanbindung von Datenbanken http://galahad.informatik.fh-kl.de/~miesel/index.html PHP -1 Gliederung Einführung PHP3 Datenbankanbindung mit PHP3 Sicherheitsprobleme Realisierung mit PHP3 Probleme

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

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL als Anfrage- und Datenmanipulationssprache (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL als DQL und DML M. Lange, S. Weise Folie #8-1 Themen

Mehr

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Datenbanken SQL-Grundlagen JDBC SQL-Constraints 2 / 26 Relationale Datenbanken Ein Datenbanksystem ist ein System zur

Mehr

Datenbankprogrammierung 2

Datenbankprogrammierung 2 Datenbankprogrammierung 2 JDBC Java Database Connectivity Call Level Interface Schnittstelle zwischen DBMS und Applikation JDBC API ist seit JDK1.1 inkludiert Ermöglicht Zugriff aus Java-Applikationen

Mehr

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und 8. PHP Prof. Dr.-Ing. Wolfgang Lehner Diese Zeile ersetzt man über: Einfügen > Kopf- und PHP PHP (Hypertext Preprocessor) Serverseitige Skriptsprache (im Gegensatz zu JavaScript) Hauptanwendungsgebiet:

Mehr

Datenbanken 1 für Mediennformatiker WS 06. 4. ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme

Datenbanken 1 für Mediennformatiker WS 06. 4. ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme Datenbanken 1 für Mediennformatiker WS 06 4. ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme Der letzte Schritt Diese grafische Oberfläche mit der Ebay-Datenbank verbinden... Anwendungen

Mehr

6. Datenintegrität. Integritätsbedingungen

6. Datenintegrität. Integritätsbedingungen 6. Integritätsbedingungen dienen zur Einschränkung der Datenbankzustände auf diejenigen, die es in der realen Welt tatsächlich gibt. sind aus dem erstellten Datenmodell ableitbar (semantisch) und können

Mehr

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten. Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist Herstellerabhängig

Mehr

embedded SQL Embedded SQL wurde erstmals im SQL92- Standard definiert.

embedded SQL Embedded SQL wurde erstmals im SQL92- Standard definiert. embedded SQL Embedded SQL (abgekürzt: ESQL) ist eine Spracherweiterung von SQL, mit der es möglich ist, SQL-Anweisungen innerhalb einer strukturierten oder objektorientierten Programmiersprache (der Hostsprache)

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

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

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

3.17 Zugriffskontrolle

3.17 Zugriffskontrolle 3. Der SQL-Standard 3.17. Zugriffskontrolle Seite 1 3.17 Zugriffskontrolle Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man

Mehr

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock Übung Datenbanksysteme I JDBC Thorsten Papenbrock Motivation: Grenzen von SQL 2 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten hat 2. Darstellung

Mehr

Java und Datenbanken

Java und Datenbanken Java und Datenbanken Benutzerschnittstelle DB-Client Client Benutzerschnittstelle CORBA, HTTP,... DB-Client Anwendungslogik DB-Schnittstelle JDBC, SQLJ Anwendungslogik DB-Schnittstelle Anwendungs- Server

Mehr

Zugriff auf die Datenbank. Ulf Leser Wissensmanagement in der Bioinformatik

Zugriff auf die Datenbank. Ulf Leser Wissensmanagement in der Bioinformatik Zugriff auf die Datenbank Ulf Leser Wissensmanagement in der Bioinformatik Wie komme ich an die Datenbank? Alternativen Alles in Java machen JDBC Treiber von Oracle herunterladen Java programmieren Java-basierte

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 Transaktionsverarbeitung Teil 2 SQL copyright W. G. Spruth,

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

MySQL mit MyLinux. boehm@2xp.de. 2/2003 boehm@2xp.de Java unter Linux

MySQL mit MyLinux. boehm@2xp.de. 2/2003 boehm@2xp.de Java unter Linux Bild: www.carsten-lehmann.de MySQL mit MyLinux boehm@2xp.de 1 MySQL mit MyLinux Überblick über MySQL & Co Überblick über MySQL MySQL in 5 Minuten JDBC mit MySQL Ende 2 Überblick über MySQL & Co 3 Datenbanken

Mehr

Konstante Relationen

Konstante Relationen Konstante Relationen values-syntax erzeugt konstante Relation values ( [, Konstante] * )[, ( [, Konstante] * )]* Beispiel values (1, eins ), (2, zwei ), (3, drei ); Resultat ist eine

Mehr

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock Übung Datenbanksysteme I JDBC Thorsten Papenbrock Motivation: Grenzen von SQL 2 1. Bedingte Anweisungen Erhöhe das Gehalt eines Arbeitsnehmers um 2%, falls er eine Belobigung erhalten hat 2. Darstellung

Mehr

Kurzübersicht JDBC. Marc Monecke. monecke@informatik.uni-siegen.de. 15. Januar 2003

Kurzübersicht JDBC. Marc Monecke. monecke@informatik.uni-siegen.de. 15. Januar 2003 Kurzübersicht JDBC Marc Monecke monecke@informatik.uni-siegen.de 15. Januar 2003 Zusammenfassung Über JDBC-Schnittstellen können Anwendungsprogramme auf Datenbanken zugreifen, ohne daß dabei hersteller-

Mehr

Einbettung in SQL. Zwei Prinzipien: (1) Statische Einbettung

Einbettung in SQL. Zwei Prinzipien: (1) Statische Einbettung Einbettung in SQL Zwei Prinzipien: (1) Statische Einbettung - Vorübersetzer-Prinzip (Pre-Compiler) - In Programmcode integrierte SQL-Anweisungen werden durch den Precompiler übersetzt, d.h. in Prozeduraufrufe

Mehr

Übung: Data Warehousing und Data Mining

Übung: Data Warehousing und Data Mining Übung: Data Warehousing und Data Mining Sebastian Wandelt 20. Oktober 2011 wandelt@informatik.hu-berlin.de Überblick Organisatorisches Kurze Einführung JDBC PL/SQL 1. Aufgabenblatt Ablauf des Semesters

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Seminarunterlage Version: 12.05 Version 12.05 vom 29. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt-

Mehr

Inhalt. 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 - 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,

Mehr

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung Informa=onssysteme Sommersemester 2015 6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema

Mehr

Vorlesung Datenbankmanagementsysteme. Vorlesung Datenbankmanagementsysteme Überblick M. Lange, S. Weise Folie #0-1

Vorlesung Datenbankmanagementsysteme. Vorlesung Datenbankmanagementsysteme Überblick M. Lange, S. Weise Folie #0-1 Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme Überblick M. Lange, S. Weise Folie #0-1 Vorlesung Datenbankmanagementsysteme Überblick M. Lange, S. Weise Folie #0-2 Bioinformatik:

Mehr

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel 4.14.3 Bedingungen über Werte 4.14.4 Statische Integrität Zu jeder Tabelle werden typischerweise ein Primärschlüssel und möglicherweise weitere Schlüssel festgelegt (UNIQUE-Klausel). In jeder Instanz zu

Mehr

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java)

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java) 3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Institut für Programmstrukturen und Datenorganisation (IPD) Kommunikation und Datenhaltung Datenbankanwendungsentwicklung Institut für Programmstrukturen und Datenorganisation (IPD) Überblick über den

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist herstellerabhängig

Mehr

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration 3.5.2004. JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven

JSP, Tomcat, JDBC. Agenda. Übung Informationsintegration 3.5.2004. JSP & Tomcat JDBC. l Syntax. l Implizite Objekte. l Direktiven JSP, Tomcat, JDBC Übung Informationsintegration 03.05.2004 Agenda JSP & Tomcat Syntax Impizite Objekte Direktiven JDBC 2 Java Server Pages - JSP Was ist eine JSP? Bietet die Mögichkeit, dynamischen Inhat

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

NoSQL mit Postgres 15. Juni 2015

NoSQL mit Postgres 15. Juni 2015 Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste

Mehr

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale 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

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

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Terminierungs-Analyse von SQL-Triggern. Sommersemester 05 T. Jahn Seminar Intelligente Datenbanken SQL-Trigger: Terminierungs-Analyse 1

Terminierungs-Analyse von SQL-Triggern. Sommersemester 05 T. Jahn Seminar Intelligente Datenbanken SQL-Trigger: Terminierungs-Analyse 1 Terminierungs- von SQL-Triggern T. Jahn Seminar Intelligente Datenbanken SQL-Trigger: Terminierungs- 1 Terminierungs- von SQL-Triggern Seminar Intelligente Datenbanken Prof. Dr. R. Manthey Andreas Behrend

Mehr

5. Datendefinition in SQL

5. Datendefinition in SQL Datendefinition 5. Datendefinition in SQL Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle

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

Udo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik

Udo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik Udo Matthias Munz Datenbanken und SQL mit Einführung Informationstechnik Zugriff auf eine Datenbank... 2 ODBC... 2 Eine DSN einrichten... 3 Verbindung zu einer Datenbank... 4 Datenbank... 4 Metadaten der

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

Mehr

PL/pgSQL. VU Datenbanksysteme. Reinhard Pichler

PL/pgSQL. VU Datenbanksysteme. Reinhard Pichler PL/pgSQL VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung Einführung

Mehr

Teil VIII Transaktionen, Integrität und Trigger

Teil VIII Transaktionen, Integrität und Trigger page.1 Teil VIII Transaktionen, Integrität und Trigger page.2 Transaktionen, Integrität und Trigger Transaktionen, Integrität und Trigger 1 Grundbegriffe 2 Transaktionsbegriff 3 Transaktionen in SQL 4

Mehr

Studienarbeit im Fach. Datenbanken

Studienarbeit im Fach. Datenbanken Studienarbeit im Fach Datenbanken Hochschule Landshut, Fachbereich Betriebswirtschaft European Business Studies (EBS) Hansjörg Behrens-Ramberg Matrikelnummer: 950262 Datenbanken, 7.Semester Vorgelegt bei:

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