11. Datenbankschnittstellen
|
|
- Katarina Gehrig
- vor 5 Jahren
- Abrufe
Transkript
1 11. Datenbankschnittstellen
2 Inhalt 11.1 Motivation 11.2 Eingebettetes SQL 11.3 Open Database Connectivity (ODBC) 11.4 Java Database Connectivity (JDBC) 11.5 Objekt-Relationale Abbildung (ORM) 2
3 11.1 Motivation Datenbankschnittstellen ermöglichen den Zugriff auf die gespeicherten Daten aus einer externen Anwendung DBMS und Anwendung laufen oft auf unterschiedlichen Rechnern, so dass Netzwerkkommunikation nötig ist Zwei Zielgruppen von Datenbankschnittstellen Endbenutzer, die Daten mit bekannten oder einfach zu bedienenden Anwendungen lesen bzw. ändern möchten Entwickler, die aus Code der entwickelten Anwendung auf die Daten zugreifen möchten 3
4 Anwendungsbeispiele Anwendungsbeispiele von Datenbankschnittstellen: Webapplikation (z.b. ein Content-Management-System), welche mit Java Server Pages implementiert wurde, greift auf eine Datenbank (z.b. MS SQL Server) zu Mitarbeiterin erstellt Serienbrief mit MS Word, der an alle Kunden geschickt werden soll; die Kundendaten liegen in einer Datenbank (z.b. MS SQL Server) Applikation auf Smartphone speichert ihre internen Daten in einer eingebetteten Datenbank (z.b. SQLite), die auf dem gleichen Endgerät läuft 4
5 Anforderungen Anforderungen an Datenbankschnittstellen sind u.a. Portabilität, d.h. kann das verwendete RDBMS oder die Programmiersprache einfach ausgetauscht werden Fehleranfälligkeit, d.h. werden Fehler (z.b. inkorrektes SQL) bereits bei der Entwicklung oder erst beim Einsatz erkannt Wartbarkeit, d.h. erfordert Änderung (z.b. des Schemas) weitreichende Modifikationen des zugreifenden Codes Transparenz, d.h. bleiben die Spezifika des RDBMS bzw. der Datenbank (z.b. Schema) verborgen 5
6 Historisches Call-Level Interfaces (CLIs) als früher Ansatz, bei dem Hersteller sprachspezifische (z.b. für C oder Fortran) Schnittstellen für bestimmtes Datenbanksystem in Form von Bibliotheken zur Verfügung stellen Eingebettetes SQL erweitert Wirtssprache (z.b. C) um SQL-Kommandos, die vor Compilierung in Befehle der Wirtssprache (z.b. CLI-Aufrufe) übersetzt werden SQL/CI als standardisierte Schnittstelle in SQL:1999, die die Grundlage für Open Database Connectivity darstellt 6
7 Historisches Open Database Connectivity (ODBC) entkoppelt Programmiersprache und Datenbanksystem durch Verwendung von Treibern Java Database Connectivity (JDBC) als moderne objektorientierte Standardschnittstelle für Anwendungen in Java Frameworks für objekt-relationale Abbildung (z.b. Java Persistence und Hibernate) bilden Objekte mit Attributen auf Tabellen mit Spalten ab; die Datenbank kann den Entwicklern dabei verborgen bleiben, so dass keine SQL-Kenntnisse notwendig sind 7
8 11.2 Eingebettetes SQL Eingebettetes SQL erweitert eine Wirtssprache (z.b. C) um SQL-Kommandos für den Datenbankzugriff Erweiterungen sind keine eigentlichen Kommandos der Wirtssprache, so dass Code vor der eigentlichen Compilierung durch einen Präcompiler transformiert werden muss Präcompiler übersetzt die erweiterten Kommandos in eigentliche Kommandos der Wirtssprache (z.b. CLI-Aufrufe für Datenbankzugriff) 8
9 Eingebettetes SQL Präcompiler kann Korrektheit der SQL-Kommandos, auch ob sie kompatibel mit dem Schema sind, überprüfen Eingebettetes SQL oft auf statische SQL-Kommandos beschränkt, d.h. die Kommandos müssen zur Übersetzungszeit bereits feststehen Eingebettetes SQL spielt heute eine geringere Rolle SQLJ für Java Embedded SQL für C/C++ 9
10 SQLJ für Java SQL-Kommandos werden mit #sql ausgezeichnet und in Java-Code eingebettet Erweiterter Code muss mittels Präcompiler sqlj in echten, für den Java-Compiler verständlichen, Code umgewandelt werden Präcompiler überprüft, ob SQL-Kommandos korrekte Syntax haben, ob sie mit dem Schema übereinstimmen und die Typkompatibilität für den Datenaustausch Generierter Code greift per JDBC auf Datenbank zu 10
11 SQLJ für Java SQL-Kommandos werden mit #sql ausgezeichnet und in Java-Code eingebettet 1 #sql {INSERT INTO Studenten (MatrNr, Name, Vorname) 2 VALUES (23781, Max, Mü ller )} Wirtsvariablen erlauben Datenaustausch zwischen Java-Code und SQL-Kommandos 1 long matrnr = 23781; 2 #sql {DELETE FROM Studenten WHERE MatrNr = :matrnr}; 11
12 SQLJ für Java Iteratoren zum Lesen eines Anfrageergebnis in Java müssen vor Verwendung deklariert werden 1 #sql iterator StudentIter (long matrnr, String vorname, String name); hierdurch wird eine Klasse StudentIter generiert Definition einer Instanz der Klasse StudentIter und Ausführung der zugehörigen Anweisung 1 StudentIter iter; 2 #sql iter={ SELECT MatrNr, Name, Vorname FROM Studenten }; 12
13 SQLJ für Java Navigation durch das Anfrageergebnis 1 while (iter.next()) { 2 System.out.println(iter.matrnr() + " " + 3 iter.vorname() + " " + iter.name()); 4 } SQLJ-Code wird in Dateien mit Endung.sqlj abgelegt, um ihn von regulärem Java-Code zu unterscheiden SQLJ unterstützt, mit Einschränkungen, dynamisches SQL: SQL-Kommandos können parametrisiert werden und somit erst zur Laufzeit genau definiert sein 13
14 SQLJ für Java 1 import java.sql.*; 2 import sqlj.runtime.ref.defaultcontext; 3 import oracle.sqlj.runtime.oracle; 4 5 #sql iterator StudentIter (long matrnr, String vorname, String name); 6 7 public class StudentExample 8 { 9 public static void main (String args[]) throws SQLException 10 { 11 // Verbindung zur Datenbank herstellen 12 Oracle.connect 13 (" jdbc: oracle: " user", " password"); // Iterator definieren 16 StudentIter iter; 17 #sql iter={ SELECT MatrNr, Name, Vorname FROM Studenten }; // Datensä tze lesen 20 while (iter.next()) { 21 System.out.println 22 (iter.matrnr() + " " + iter.vorname() + " " + iter.name()); 23 } 24 } 25 } 14
15 Embedded SQL für C 1 # include <string.h> 2 # include <stdio.h> 3 # include <ctype.h> 4 5 // Variablen von SQL- Communication Area einbinden 6 EXEC SQL INCLUDE SQLCA; 7 8 int main(int argc, char **argv) { 9 10 // Deklaration von Variablen 11 EXEC SQL BEGIN DECLARE SECTION; 12 VARCHAR uid[80]; 13 VARCHAR pwd[20]; 14 VARCHAR db[20]; 15 VARCHAR vorname[30]; 16 VARCHAR name[20]; 17 EXEC SQL END DECLARE SECTION; 18 // Verbindungsdaten setzen 15
16 Embedded SQL für C 19 // Verbindungsdaten setzen 20 strcpy(uid.arr," user"); 21 uid.len = strlen(uid.arr); 22 strcpy(pwd.arr," password"); 23 pwd.len = strlen(pwd.arr); 24 strcpy(db.arr," hochschule"); 25 db.len = strlen(db.arr); // Verbindung zur Datenbank herstellen 28 EXEC SQL CONNECT :uid IDENTIFIED BY :pwd USING :db; // Anfrage an Datenbank schicken 31 EXEC SQL SELECT Name, Vorname 32 FROM Studenten 33 INTO :name, :vorname 34 WHERE MatrNr = 23786; // Name und Vorname ausgeben 37 printf(" Der Student heisst %s %s", vorname, name); } 16
17 11.3 Open Database Connectivity (ODBC) Open Database Connectivity (ODBC) in den 1990ern von Microsoft entwickelt und Grundlage für den von der SQL Access Group (SAG) entworfenen Standard SQL/CLI Portabilität als Ziel von ODBC, d.h. Anwendung soll unabhängig vom verwendeten RDBMS (oder allgemein: Datenquelle) sein und deren Austausch soll einfach erfolgen können 17
18 Treibermanager und Treiber ODBC erreicht Portabilität durch Verwendung von Treiber als Vermittler zwischen Anwendung und Datenquelle (vgl. Druckertreiber und Office-Anwendungen) Anwendung kommuniziert mit Treibermanager über Aufrufe von festgelegten ODBC-Funktionen (z.b. SQLConnect zum Aufbau einer Verbindung) Datenquellen (z.b. Datenbank oder.csv-datei) sind beim Treibermanager registriert Treiber übersetzt ODBC-Funktionsaufrufe für die jeweilige Datenquelle um 18
19 Treibermanager und Treiber Anwendung Treibermanager Treiber RDBMS Treiber CSV RDBMS CSV 19
20 Treibermanager und Treiber Abhängig von der Art der ODBC-Datenquelle muss der Treiber selbst mehr oder weniger leisten, z.b. bei einem mächtigen RDBMS (z.b. MS SQL Server) können die SQL-Kommandos an das RDBMS unverändert weitergereicht werden bei einer einfachen Datenquelle (z.b. CSV-Dateien) muss der Treiber selbst sich um die Ausführung von SQL-Kommandos kümmern, d.h. intern ein DBMS (z.b. mit Selektion, Projektion und Join) implementieren 20
21 ODBC-Funktionen ODBC definierte drei Ebenen von Funktionen (API-levels) Core-Level Funktionen z.b. SQLConnect zum Aufbau einer Verbindung zu einem Treiber SQLAllocStmt zum Anlegen eines SQL-Kommandos Level-1 Funktionen z.b. SQLGetInfo zum Erfragen von Informationen über den Treiber SQLGetTypeInfo zum Erfragen unterstützter Datentypen Level-2 Funktionen z.b. SQLColumnPrivilege zum Erfragen verfügbarer Spalten SQLPrimaryKeys zum Erfragen von Primärschlüsselattributen 21
22 SQL-Unterstützung in ODBC ODBC kennt drei Ebenen (levels) der SQL-Unterstützung Minimale SQL-Grammatik CREATE TABLE und DROP TABLE INSERT, SELECT und UPDATE keine Gruppierung und Aggregation, keine Funktionen nur Datentyp CHAR Core SQL zusätzlich z.b. ALTER TABLE, CREATE INDEX, CREATE VIEW vollständiges INSERT, SELECT und UPDATE Datentypen z.b. VARCHAR, DECIMAL, NUMERIC, SMALLINT 22
23 SQL-Unterstützung in ODBC Extended SQL auch OUTER JOIN in SELECT skalare Funktionen wie SUBSTRING oder ABS zusätzliche Datentypen z.b. DATE und TIME Stapelverarbeitung von SQL-Kommandos Anlegen gespeicherter Prozeduren Portabilität und Performanz der Anwendung hängt von verwendetem API-Level und SQL-Unterstützung ab; ein höherer API-Level und eine höhere SQL-Unterstützung führen zu besserer Performanz, aber eben auch zu geringerer Portabilität 23
24 Datenbankzugriff mittels ODBC aus C 1 # include " SQL.H" 2 3 int main(int argc, char **argv) { 4 5 // Umgebungs - Handle belegen SQLAllocConnect( henv, & hdbc ); 6 SQLAllocEnv( &henv ); 7 8 // Verbindungs - Handle belegen 9 rc = SQLConnect( hdbc, server, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS ); // Verbindung aufbauen, Abbruch bei Fehler 12 if( rc!= SQL_SUCCESS && rc!= SQL_SUCCESS_WITH_INFO ) 13 return( print_err( hdbc, SQL_NULL_HSTM )); // Speicherplatz für SQL- Befehle belegen 16 SQLAllocStmt( hdbc, &hstmt ); // SQL- Kommando zum Anlegen einer Tabelle in String 19 szsql = " CREATE TABLE Studenten 20 ( MatrNr INTEGER, Vorname VARCHAR(30), Name VARCHAR(30))"; 21 // SQL- Kommando ausführen, Abbruch bei Fehler 24
25 Datenbankzugriff mittels ODBC aus C // SQL- Kommando ausführen, Abbruch bei Fehler 23 if( SQLExecDirect( hstmt, szsql, SQL_NTS )!= SQL_SUCCESS ) 24 return( print_err( hdbc, hstmt ); // Anlegen der Tabelle mit COMMIT abschließen 27 SQLTransact( hdbc, SQL_COMMIT ); // Ressourcen wieder freigeben und Verbindung schließen 30 SQLFreeStmt( hstmt, SQL_DROP ); 31 SQLFreeConnect( hdbc ); 32 SQLFreeEnv( henv ); return 0; 35 } 25
26 Datenbankzugriff mittels ODBC aus Excel ODBC hat sich als Standardschnittstelle etabliert und wird von Standardsoftware (z.b. MS Office) unterstützt; dies erlaubt u.a. folgende Anwendungsszenarien MS Excel und MS Access können als Frontend zum Lesen und Ändern von in einem RDBMS gespeicherter Daten verwendet werden Serienbriefe können in MS Word mittels Zugriff auf in RDBMS gespeicherter Daten generiert werden MS Excel kann als ODBC-Datenquelle dienen, d.h. Datenblätter können mittels SQL angefragt werden 26
27 Zusammenfassung Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Portabilität als wichtige Anforderung, d.h. RDBMS oder Programmiersprache soll leicht austauschbar sein Call-Level Interfaces als Schnittstellen für bestimmtes RDBMS und bestimmte Programmiersprache Open Database Connectivity (ODBC) erreicht Entkopplung durch Verwendung von Treibern 27
28 Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme Eine Einführung, De Gruyter Oldenbourg, 2015 (Kapitel 4) [2] G. Saake, K.-U. Sattler und A. Heuer: Datenbanken - Konzepte und Sprachen, mitp Professional, 2013 (Kapitel 13) 28
11. Datenbankschnittstellen
11. Datenbankschnittstellen Inhalt 11.1 Motivation 11.2 Eingebettetes SQL 11.3 Open Database Connectivity (ODBC) 11.4 Java Database Connectivity (JDBC) 11.5 Objekt-Relationale Abbildung (ORM) 2 11.1 Motivation
MehrKapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1
Kapitel 9 Embedded SQL Vorlesung Datenbanken 1 Embedded SQL (siehe auch [Date00]) Arbeitsweise ähnlich PL/SQL, allerdings: Normale Programmiersprache mit eingestreuten SQL-Befehlen und anderen Befehlen
MehrGrundlagen 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
MehrKapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1
Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit
MehrDatenbanksysteme 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,
MehrWebbasierte Informationssysteme
SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)
Mehr11 Anwendungsprogrammierung
11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:
MehrWS 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,
MehrSQLJ. 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
MehrDatenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung
Rückblick Datenbankschnittstellen erlauben Zugriff auf Datenbank aus einer externen Anwendung Portabilität als wichtige Anforderung, d.h. RDBMS oder Programmiersprache soll leicht austauschbar sein Call-Level
Mehr9. Sicherheitsaspekte
9. Sicherheitsaspekte Motivation Datenbanken enthalten häufig sensible Daten (z.b. personenbezogene oder unternehmenskritische) Vielzahl verschiedener Benutzer hat Zugriff (z.b. Anwendungen, Mitarbeiter,
MehrPHP- Umgang mit Datenbanken (1)
PHP- Umgang mit Datenbanken (1) Weitere Funktionen zum Umgang mit Datenbanken (Erzeugen, Löschen) und Tabellen (Erzeugen, Löschen) Zum Beispiel für das Erzeugen einer neuen Datenbank $dbname= blumendb
Mehr10. Programmieren in SQL
10. Programmieren in SQL Inhalt 10.1 Motivation 10.2 Prozedurale Erweiterungen von SQL 10.3 Gespeicherte Prozeduren 10.4 Benutzerdefinierte Funktionen 10.5 Verwendung anderer Programmiersprachen 2 10.1
MehrDatenbanksysteme I Übung: JDBC. Jana Bauckmann
Datenbanksysteme I Übung: JDBC Jana Bauckmann Wo reicht SQL alleine nicht? 2 Web-Anwendungen Daten übersichtlich und schön präsentieren Komplizierte Fragestellungen Sind sich 2 Tupel ähnlich? Duplikaterkennung
MehrWebbasierte Informationssysteme
SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)
MehrKapitel 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
MehrKapitel 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
MehrKurzeinführung ODBC. 1 Codebeispiele. 1.1 Embedded SQL
Kurzeinführung ODBC ODBC (Open Database Connectivity) ist eine von Microsoft entworfene Anwendungsschnittstelle (Application Programming Interface, API), welche in der Lage ist, auf alle gebräuchlichen
Mehr2. 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
MehrCursor erlauben eines zeilenweise Verarbeitung einer Tabelle oder eines Anfrageergebnisses in Transact-SQL
Cursor Cursor erlauben eines zeilenweise Verarbeitung einer Tabelle oder eines Anfrageergebnisses in Transact-SQL Cursor sind grob vergleichbar mit Iteratoren in modernen Programmiersprachen wie Java;
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:
MehrDatenbanksysteme 2011
Datenbanksysteme 2011 Anfang von Kapitel 10: Datenbankapplikationen Vorlesung vom 06.06.2011 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen ODBC MS Visio MS Access
MehrJava 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
MehrEmbedded SQL in PostgreSQL
7. Dezember 2010 Michael Meskes Seit 1993 Freie Software Seit 1994 Linux Seit 1995 Debian GNU/Linux Seit 1998 PostgreSQL Michael Meskes 1992-1996 Promotion 1996-1998 Projektleiter 1998-2000 Niederlassungsleiter
MehrJDBC. 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
MehrDatenbankprogrammierung 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
MehrKlausur Datenbanken II
Klausur Datenbanken II 8.3.2001 Name Vorname Semester Matrikelnr Aufgabe Punkte maximal 1 8 2 8 3 3 4 3 5 4 6 6 7 6 8 6 9 [Zusatz] [4] Summe 44 Punkte erreicht Bitte geben Sie die Lösungen möglichst direkt
Mehrseit 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
MehrOracle & Java HOW TO
Oracle & Java HOW TO Helge Janicke, Niels-Peter de Witt, Karsten Wolke 21. Januar 2002 Inhaltsverzeichnis 1 Java-Anbindung an Oracle-DB 2 2 Benötigte Programme und Daten 2 3 Einbinden der Klassen 2 4 Aufbau
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......................
MehrDas diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
MehrJava 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
MehrDatenbanksysteme 2011
Datenbanksysteme 2011 noch Kapitel 10: Datenbankapplikationen Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen MS Visio MS Access Embedded SQL im C-Programm JDBC /
MehrJDBC. Java DataBase Connectivity
JDBC Java DataBase Connectivity JDBC-Schichten JDBC besteht aus 2 Teilen, 1. aus Datenbanktreibern, die den Anschluß von Java-Anwendungen an Datenbanksysteme wie Sybase, DB/2, Oracle, MS ACCESS oder Mini
MehrEnterprise 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,
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.
MehrRückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung
Rückblick SQL bietet viele Möglichkeiten zur Anfrageformulierung mathematische Funktionen (z.b. ABS(A) und SIGN(A)) Aggregatfunktionen (z.b. MIN(A) und SUM(A)) Boole sche Operatoren (AND, OR, EXCEPT) Verknüpfungen
MehrDatenbanken (WS 2015/2016)
Datenbanken (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde
MehrKapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken
Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen
MehrTeil VIII. Weitere Datenbanksprachen
Teil VIII Weitere Datenbanksprachen Weitere Datenbanksprachen 1 Programmiersprachenanbindung 2 QBE 3 Änderungen in QBE 4 Anfragen in Access Sattler / Saake Datenbanksysteme Wintersemester 2010/11 8 1 Programmiersprachenanbindung
MehrSoftwareentwicklung 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
MehrInhalt. Einbettungstechniken für SQL. 1. Datenbank-Programmierung. Statische Einbettung
Vorbemerkungen Inhalt Einbettungstechniken für SQL 1. Datenbankprogrammierung auf der Client-Seite: Embedded SQL, JDBC und SQLJ 2. Datenbankprogrammierung auf der Server-Seite: Stored Procedures 3. Erweiterbarkeit
Mehrvs. Fehler zur Übersetzungszeit
Client-Server-Architektur, Anbindung von Programmiersprachen, Call-Level-Schnittstellen: /, JDBC, :, J, gespeicherte Prozeduren, prozedurale Erweiterungen: /PSM, PL/. IPD, Forschungsbereich Systeme der
MehrSQL (Structured Query Language) Schemata Datentypen
2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente
MehrArchitekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131
Architekturen Von der DB basierten zur Multi-Tier Anwendung DB/CRM (C) J.M.Joller 2002 131 Lernziele Sie kennen Design und Architektur Patterns, welche beim Datenbankzugriff in verteilten Systemen verwendet
MehrUniversitä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: -
MehrUNIVERSITÄ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 //
MehrDatenbanken. Autor Rainer Colgen (0171)
Autor Rainer Colgen (0171)8004088 - 2 - Inhaltsübersicht 1...3 2. SQL IN ENTWICKLUNGSUMGEBUNGEN...3 1. 2.1 EMBEDDED SQL...3 2.1.1 Einführung...3 2.1.2 Präprozessor...3 2.1.3 Statisches SQL...4 2.1.4 Dynamisches
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
MehrWillkommen. Datenbanken und Anbindung
Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein
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
MehrJava: MySQL-Anbindung mit JDBC.
Java: MySQL-Anbindung mit JDBC Vorarbeiten Wir brauchen: - MySQL-Server - JDBC-Treiber - (Import java.sql.*) Vorarbeiten MySQL-Server in unserem Falle: WAMP (= Apache) (runterladen, installieren, starten)
MehrProzedurale 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.
MehrDie Anweisung create table
SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl
MehrKap. 9 IS-Anwendungsentwicklung
Kap. 9 IS-Anwendungsentwicklung 9.1 Überblick Aufgabenteilung: Anwendungsfunktionalität im Client oder Server? Thin- / Thick Client? Wieviel soll der Client machen? Präsentation Anwendungsfunktionalität
MehrKapitel 4 Dynamisches SQL
Kapitel 4 Dynamisches SQL Flien zum Datenbankpraktikum Wintersemester 2010/11 LMU München 2008 Thmas Bernecker, Tbias Emrich unter Verwendung der Flien des Datenbankpraktikums aus dem Wintersemester 2007/08
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-
MehrDaten Bank. 4. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012
Daten Bank 4. Vorlesung Dr. Karsten Tolle PRG2 SS 2012 Beispiel Datum Buch verliehen an (0,1) (0,n) Entleiher BuchNr Titel Autor Nummer Name BUCH (BuchNr, Titel, Autor) ENTLEIHER (Nummer, Name) VERLIEHEN_AN(BuchNr,
MehrObjektorientierte Programmierung
C++ Objektorientierte Programmierung Erweiterung von selbstdefinierten Datentypen (struct) zu Klasse. Eine Klasse besteht dann aus - Attributen (Untertypen wie struct) und zusätzlich - aus Methoden (Funktionen
MehrAufgabenstellung. Bekannte Lösungsansätze. Die Idee. Native Informix Architektur
Herbert Birkenbach 28.03.2000 CSS Open Database Architecture CSS Open Database Architecture Die Firma CSS GmbH erstellt und vertreibt kaufmännische Standard-Software. Die Entwicklung basierte datenbankseitig
MehrEntwicklungsumgebung für die Laborübung
Entwicklungsumgebung für die Laborübung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung
MehrWie 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?
MehrFunktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion
Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert
Mehr[ SQL] Wissen, das sich auszahlt
[www.teia.de SQL] Wissen, das sich auszahlt INHALT SEITE 12 [I] 1] Einführung in SQL und relationale Datenbanken 12 14 16 18 11 1.1 1.2 Einführung Die Structured Query Language (SQL) Tabellen Mehrere Tabellen
MehrPraktische SQL-Befehle 2
Praktische SQL-Befehle 2 Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Functions Views Triggers Voraussetzung: Laptop + MySQL/ MariaDB + Workbench! DB1 WS2018 2 Airport
MehrSemantische 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
MehrKonzeption und Implementierung eines Datenbank-Agenten für die Bereitstellung von Daten aus dem Verkehr
Konzeption und Implementierung eines Datenbank-Agenten für die Bereitstellung von Daten aus dem Verkehr Andreas Walter, Universität Karlsruhe Studienarbeit am IPD Seite 1 Szenario 2. Anfrage an OVID-Netz
MehrDatenbanksysteme 2015
Datenbanksysteme 2015 Kapitel 09: Datenbankapplikationen Oliver Vornberger Institut für Informatik Universität Osnabrück Datenbankapplikationen ODBC MS Visio MS Access Embedded SQL JDBC Application SQLJ
MehrKapitel 2 Anwendungsprogrammierschnittstelle und Anfrageverarbeitung
Kapitel 2 Anwendungsprogrammierschnittstelle und Anfrageverarbeitung Inhalt Kopplung von DB- und Programmiersprache Eingebettetes statisches SQL, SQL/PSM, Dynamisches SQL Call-Level-Interface (CLI), ODBC,
MehrDas diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
MehrAndroid Programmierung. Studiengang MI
Android Programmierung mit Java Studiengang MI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel.
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?
MehrKopplung (1) Kopplung (3) Kopplung (2) Eingebettetes statisches SQL (1) Kopplung (4) 8. Anwendungsprogrammierschnittstelle
Kopplung () Übersicht 8. Anwendungsprogrammierschnittstelle Kopplung Inhalt Kopplung von DB- und Programmiersprache Eingebettetes statisches SQL Wirtsspracheneinbettung und Übersetzung SQL/PSM Dynamisches
MehrDatenbanken. Anwendungsentwicklung in Datenbanken: Prozedurale Spracherweiterung von SQL (z.b. PL/SQL bei Oracle)
Anwendungsentwicklung in Datenbanken: Unter Anwendungsentwicklung in Datenbanken versteht man die Entwicklung von Anwendungen, die über die Adhoc-Abfrage mit SQL hinausgeht. Es gibt verschiedene Möglichkeiten,
MehrDynamisches 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
MehrTeil I: Existierende Infrastruktur heterogener und verteilter Informationssysteme
Kapitel 1: Vorlesung TP-Lite 1 Teil I: Existierende Infrastruktur heterogener und verteilter Informationssysteme 1. Infrastruktur durch erweiterte Datenbankfunktionalität ( TP-Lite ) 2. Middleware-Infrastruktur
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
MehrDBS: Anwendungsprogrammierung
Bisher: Grundlagen / Theorie DBS: Anwendungsprogrammierung Daten Schema Datenbank 1 Daten Schema Datenbank 2 DBMS Benutzer 1 Benutzer 2 Benutzer n Hier: Idee der Praxis Datenbanksysteme Benutzer Anwendungskontrollkomponenten
Mehr5.8 Bibliotheken für PostgreSQL
5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9
Mehr10. 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:
MehrSQLJ SQLJ. SQL-Klauseln. Embedded SQL für Java. Einbettungsprinzip. Host-Variablen. SQLJ ist in 3 Teile gegliedert: Stefan Böttcher Sven Groppe
Datenbanken und Informationsysteme I Stefan Böttcher Sven Groppe Universität Paderborn ist in 3 Teile gegliedert: Part 0: Embedded SQL für Java ANSI-Standard Baut auf die JDBC API auf Part 1: Java Stored
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
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
MehrDatenbankentwurf & 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
MehrDatenbanken & Informationssysteme (WS 2016/2017)
Datenbanken & Informationssysteme (WS 2016/2017) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de) 0. Organisatorisches Dozenten Klaus Berberich (klaus.berberich@htwsaar.de)
MehrSQL und MySQL. Kristian Köhntopp
SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)
MehrIn diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.
In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann. All diese Befehle werden unter dem Begriff SQL DLC Data Control Language zusammengefasst.
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
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
MehrEinbettung 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
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrC++ Anwendungskurs Tag 4: Datenbanken Daniela Horn Institut für Neuroinformatik Real-time Computer Vision
C++ Anwendungskurs Tag 4: Datenbanken Daniela Horn Institut für Neuroinformatik Real-time Computer Vision 15. März 2018 C++ Anwendungskurs 15. März 2018 Daniela Horn 1 Übersicht 1 Motivation 2 Relationale
MehrAndreas 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
MehrSchnellübersichten. SQL Grundlagen und Datenbankdesign
Schnellübersichten SQL Grundlagen und Datenbankdesign 5 Datenbanken 2 6 Tabellen erstellen und verwalten 3 7 Daten einfügen, aktualisieren, löschen 4 8 Einfache Datenabfragen 5 9 Schlüsselfelder und Indizes
MehrDatenschutz: Zugriffsrechte in SQL
12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten
Mehr3 Embedded SQL. 3.1 Theorie. 3.1.1 Was ist Embedded SQL?
3 Embedded SQL 3.1 Theorie 3.1.1 Was ist Embedded SQL? Nachdem bisher alle SQL-Anweisungen über den CLP abgewickelt wurden, sollen diese Anweisungen nun in eine Host-Sprache eingebettet werden. Wir werden
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
MehrDatenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 21 Datenbanken SQL JDBC 2 / 21 Relationale Datenbanken Ein Datenbanksystem ist ein System zur Speicherung von (großen) Datenmengen:
MehrRelationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL
Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene
Mehr