This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Dynamic SQL
• Preparing a query:EXEC SQL PREPARE <query-name>
FROM <text of the query>;• Executing a query:EXEC SQL EXECUTE <query-name>;• “Prepare” = optimize query.• Prepare once, execute many times.
Jeffrey D. Ullman - CS145 - Herbst 2004 - Stanford University, bezogen von www.odbms.org
– Generell ist eine Webanwendung für die korrekte Prüfung der Eingabedaten verantwortlich. Geeignete Schutzmaßnahmen sind in erster Linie dort zu implementieren.
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Vorläufiger ScheduleNr. Datum Vorlesung Übung
1 20.10.2006 Einführung, Vorstellung der Themen keine Übung
15 09.02.2007 Reserve Ausblicke und Zusammenfassung
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
CLI – Call Level Interface
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Definition
• Das Call Level Interface (kurz CLI) ist eine Datenbankschnittstellen-Spezifikation für den Zugriff auf RDBMS (baut auf SQL auf) aus anderen Anwendungen heraus.
• Weitere Details unter: http://www.opengroup.org/products/publications/catalog/c451.htm
– PDF des Technical Standards von 1995! ~320 Seiten
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Nebel im Akronym Dschungel
2) CLI - Calling Line Identification
3) CLI - Clear Interrupt Flag
4) CLI - Client Library Interface
5) CLI - Command Line Interface
6) CLI - Command Line Interpreter
7) CLI - Common Language Interface
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
• Bei CLI handelt es sich um so genannte Middleware, mit deren Hilfe aus beliebigen Anwendungen auf beliebige relationale Datenbanken zugegriffen werden kann.
• Ähnlich wie Gerätetreiber zum Ansteuern der Hardware wird die CLI-Implementierung zum Ansteuern von Datenbanken genutzt.
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Anwendung 1
Elementare Zugriffs-
operationen
Anwendung 2
Elementare Zugriffs-
operationen
Anwendung 3
Elementare Zugriffs-
operationen
Datenbank- Management-
system (DBMS)
Datenbank (DB)
DBS
Anwendung 1 Zugriffsoperation
en in Progr.-Sprache enthalten
Anwendung 2 Zugriffsoperation
en in Progr.-Sprache enthalten
Anwendung 3 Zugriffsoperation
en in Progr.-Sprache enthalten
Datenbank- Management-
system (DBMS)
Datenbank (DB)
DBS
Call Level Interface
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Vorteile CLI zu ESQL
• Kein Precompiler nötig.• Vorteil für Client/Server Architektur, da unabhägig
von Zieldatenbank
Anwendung 1
Anwendung 2
Anwendung 3
Oracle
Datenbank (DB)
Call Level Interface
IBM DB2
Datenbank (DB)
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Zum Selberlesen …
• Die CLI-Implementierung bildet die Befehlssätze verschiedener DBMS auf eine immer gleiche Funktionsbibliotek ab. für das Programm an sich ist es unwichtig, mit
welcher Datenbank es arbeitet. • Das CLI hat also die Funktion eines
Übersetzers, der Programmaufrufe in eine „Sprache“ übersetzt, die die Datenbank versteht und umgekehrt Daten, die von der Datenbank zurückgeliefert werden, so formatiert, dass sie vom Programm verarbeitet werden können.
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
• Programmierschnittstellen, die das CLI-Konzept umsetzen (CLI-Implementierungen), sind:– Open Database Connectivity (ODBC),– Java Database Connectivity (JDBC).
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
ODBC
• Von Microsoft – erste Umsetzung des CLI• Anfangs entwickelt für C und C++• Entwickelt für Microsoft OS – aber geht
auch unter UNIX, …• ODBC Data Source Administrator unter
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
ODBC für Java?
• ODBC ist für C entwickelt, entspricht daher nicht den Java (OO) Paradigmen
• Plattformunabhägigkeit kann mit ODBC nicht gewährleistet werden (nur Windows, eingeschränkt UNIX)– Zugriff bei ODBC erfolgt über OS
• Konkurenz zwischen Microsoft (ODBC) und SUN (JDBC)
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Java Database Connectivity
• JDBC 1.0 (Januar 1997)– jdbc.sql.* als optionales Paket– Basierend auf SQL92
• JDBC 2.0– java.sql.* in JSE2* (batch-updates, SQL3-Datentypen)– javax.sql.* (optional ab Java 1.3 fest) enthält Data-
Source, Connection-Pooling, verteilte Transaktionen– JDBC 2.0 Treiber sind für die fast alle (bekannteren)
RDBMS vorhanden
*Java 2 Standard Edition (JSE2) – auch Java2
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Java Database Connectivity• JDBC 3.0
– Teil von Java 1.4 - neu unter anderem:• Savepoints in Transaktionen, • Wiederverwendung von PreparedStatements,• JDBC-Datentypen BOOLEAN und DATALINK,• Abrufen automatisch generierter Keys,• Änderungen von LOBs (Large Objects) und • mehrere gleichzeitig geöffnete ResultSets
• JDBC 4.0– Teil von Java 1.6 – neu hier:
• Annotationen für SQL-Queries, Treiber werden – wenn vorbereitet – automatisch angemeldet, XMLDatentypen aus SQL:2003, Zugriff auf die SQL ROWID
– Noch sehr neu und kaum zu finden!
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
Java Database Connectivity
• JDBC eigens für Java entwickelt– Folgt den Java Paradigmen– „Write once run anywhere“
• Über JDBC-ODBC Bridge können auch ODBC Datenbanken (falls JDBC nicht vom DBMS unterstützt wird)
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
JDBC-Treiber-Typen
• Ein JDBC-Typ-1-Treiber kommuniziert ausschließlich über einen JDBC-ODBC-Bridge-Treiber. Damit ist ein Typ-1-Treiber abhängig von einem installierten ODBC-Treiber. Der JDBC-ODBC-Bridge-Treiber wandelt JBDC- in ODBC-Anfragen um.
• Ein Typ-1-Treiber wird dann verwendet, wenn es zu der Datenbank keine eigenständigen JDBC-Treiber gibt.
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
JDBC-Treiber-Typen
• Ein Typ-2-Treiber kommuniziert über eine plattformspezifische Programmbibliothek mit dem Datenbankserver. Das bedeutet, dass für jede Betriebssystem-Plattform zu dem Typ-2-Treiber eine zusätzliche Programmbibliothek benötigt wird.
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
JDBC-Treiber-Typen
• Mittels des Typ-3-Treibers werden die JDBC-API-Befehle in DBMS-Befehle des Datenbankservers übersetzt und (über ein Netzwerkprotokoll) an einen Middleware-Treiber an den Datenbankserver übertragen. Ein Typ-3-Treiber benötigt damit keine plattformspezifischen Bibliotheken und muss auch nichts über den verwendeten Datenbankserver wissen.
• Typ-3-Treiber eignen sich sehr gut für Internet-Protokolle im Zusammenhang mit Firewalls.
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle
JDBC-Treiber-Typen
• Diese Variante kommuniziert wie der Typ-3-Treiber. Allerdings wird die Kommunikation direkt mit dem Datenbankserver aufgenommen. Ein Middleware-Treiber wird dabei nicht verwendet. Damit kann ein Typ-4-Treiber schneller als ein Typ-3-Treiber sein, ist aber weniger flexibel.
• Typ-4-Treiber eignen sich gut für Intranet-Lösungen, die schnelle Netzprotokolle nutzen wollen.