Kap. 10 Datenbankzugriff und Pufferung

Werbung
Kap. 10 Datenbankzugriff und Pufferung
10.1 Datenbankzugriff in ERP-Systemen
10.2 Pufferung auf Anwendungsebene
10.3 Workshop: ABAP-Programmierung in SAP R/3
– Open SQL
– Native SQL
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 10: Datenbankzugriff & Pufferung – 1
10.1 Datenbankzugriff in ERP-Systemen
G
G
Standard-ERP-Software deckt zwar in den meisten Fällen einen sehr
grossen Teil der benötigten betriebswirtschaftlichen Funktionalität ab,
erfordert aber häufig zusätzliche unternehmensspezifische
Erweiterungen (Eigenentwicklungen)
Die Hersteller von ERP-Systemen bauen für die Implementierung ihrer
Anwendungslogik eine eigene Infrastruktur auf
•
•
•
•
Werkzeuge für die Datenmodellierung
Übersetzung von Anwendungsobjekten zu Datenbankobjekten
Entwicklungsumgebung, Compiler, Debuggingtools
– Eigene Programmiersprache, zumeist mit integriertem Datenbankzugriff
(fourth generatrion language, 4GL)
– Eigene Bibliotheken
Laufzeitumgebung
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 10: Datenbankzugriff & Pufferung – 2
Integrierte Sprachen der vierten Generation
G
Diese Infrastruktur steht meist auch den Entwicklern der
individuellen Erweiterungen zur Verfügung
•
•
•
G
z.B. Baan4GL mit BaanSQL
z.B. SAP R/3 mit Open SQL
z.B. PeopleCode
Die integrierte 4GL-Sprache verwendet dann die in das System
integrierte
•
•
Meta-Datenverwaltung (Data Dictionary) und
Setzt auf der einheitlichen Schnittstelle zur Datenbank
(Datenbank-Abstraktions-Schicht) auf, so dass die Unabhängigkeit
vom Datenbankprodukt gewährleistet ist
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 10: Datenbankzugriff & Pufferung – 3
Erweiterung von ERP Systemen
Client-GUI
Client-GUI
Client-GUI
…
Client-GUI
„Standard“
Individuelle
BetriebsErweiterungen
wirtschaftliche
Betriebswirtschaftliche
Data
AnwendungsAnwendungslogik
Dictionary
logik
Datenbank-Abstraktion
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 10: Datenbankzugriff & Pufferung – 4
Datenbankzugriff am Beispiel von SAP R/3
G
Open SQL
•
•
G
SQL-Dialekt von SAP, datenbankunabhängig
Nutzt SAP-internes Data Dictionary (zur Auflösung von Views,
Überprüfung von Konsistenzbedingungen, etc.) und Tabellenpuffer
(Zwischenspeichern von Datensätzen auf Anwendungsserver-Ebene)
Native SQL
•
•
•
SQL-Dialekt der unterliegenden Datenbank
Anfragen werden –an der DB-Schnittstelle vorbei– direkt an die
Datenbank weitergeleitet
Ohne Verwendung des SAP-internen Data Dictionarys
– Kein Zugriff auf Pool-Tabellen und Cluster-Tabellen,
da die Semantik der Abbildung nicht verfügbar ist
– Nur Zugriff auf Anwendungsdaten möglich
– Umgehung der anwendungsspezifischen betriebswirtschaftlichen
Konsistenzprüfungen
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 10: Datenbankzugriff & Pufferung – 5
Rückblick: Dialog-Workprozess & DB-Schnittstelle
Dialog-Workprozess
Shared Memory
DynPro-Interpreter
ABAP-Interpreter
Native SQL
Open SQL
DatenbankSchnittstelle
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Data
Dictionary
Tabellenpuffer
Kapitel 10: Datenbankzugriff & Pufferung – 6
DB-Zugriff mit Open SQL ...
Data Dictionary
Tabellen-Puffer
Abbildungsregeln,
Constraints, …
Tabelle
KNA1
3
BEGIN
…
SELECT …
…
END
Tabelle
KNA1
7
Native
SQL 4
2
1
SELECT …
6
Datenbankschnittstelle
5
Optimierung- &
Zugriffsmodul
Programm-Puffer
Shared Memory
ABAPInterpreter
Dialog-Workprozess
Objektverwaltung höherer Ordnung (OHO) – SS 2001
DBMS
Kapitel 10: Datenbankzugriff & Pufferung – 7
… DB-Zugriff mit Open SQL
1.
2.
3.
4.
5.
6.
7.
Der ABAP-Interpreter des Workprozesses liest ein
Open SQL-Statement eines ABAP-Programms
Der ABAP-Prozessor reicht das Open SQL-Statement an die
Datenbank-Schnittstelle weiter
Falls die Daten nicht im Puffer sind, generiert die DatenbankSchnittstelle den entsprechenden Native SQL-Befehl.
Ansonsten wird das Datum aus dem Puffer gelesen (Schritt 6)
Die Datenbank-Schnittstelle reicht den Native SQL-Befehl an das
DBMS weiter
Das DBMS liefert Daten zurück
Die Datenbank-Schnittstelle gibt die Daten an den ABAP-Interpreter
Bei Pufferung werden die gelesenen Daten in den Puffer geschrieben
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 10: Datenbankzugriff & Pufferung – 8
Übersetzung von Open SQL nach Native SQL ...
Optimierungsmodul
Query mit BindingVariable in
Native SQL
übersetzen
Native SQL-Query
mit Binding Variable
4
Ausführungsplan
mit Binding Variable
2
1
Open SQLQuery
Erste
Ausführung
der Query
Variablen von
Query trennen
7
5
7
2
Wert zur
Binding Variable
ABAPInterpreter
3
Datenbankschnittstelle
Dialog-Workprozess
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Query-Puffer
Ausführungsplan
mit Binding Variable
6
7
Wiederholte
Ausführung
der Query
7
Zugriffsmodul
DBMS
Kapitel 10: Datenbankzugriff & Pufferung – 9
… Übersetzung Open SQL nach Native SQL
1.
2.
3.
4.
5.
6.
7.
Der ABAP-Interpreter übergibt die Open SQL-Anweisung der
Datenbankschnittstelle
Die Datenbank-Schnittstelle ersetzt im Selektionsprädikat die aktuellen
Werte durch Binding-Variablen
Übersetzung des Open SQL-Statements mit Binding-Variablen
in Native SQL
Das DBMS erstellt einen Ausführungsplan
(für Querytyp wegen der Binding-Variablen)
Der Ausführungsplan wird im DBMS gepuffert
Zur Ausführung der Anfrage werden die Binding-Variablen durch
anfragespezifische Werte ersetzt
Bei erneuter Anfrage kann auf den gepufferten Plan zurückgegriffen
werden (nur neues Füllen der Binding-Variablen nötig)
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 10: Datenbankzugriff & Pufferung – 10
DB-Zugriff mit Native SQL ...
Data Dictionary
Tabellen-Puffer
Tabelle
KNA1
Abbildungsregeln,
Constraints, …
BEGIN
…
EXEC SQL
…
ENDEXEC
…
END
1
EXEC SQL
…
ENDEXEC
3
Datenbankschnittstelle
2
Optimierung- &
Zugriffsmodul
Programm-Puffer
Shared Memory
ABAPInterpreter
Dialog-Workprozess
Objektverwaltung höherer Ordnung (OHO) – SS 2001
DBMS
Kapitel 10: Datenbankzugriff & Pufferung – 11
… DB-Zugriff mit Native SQL
1.
2.
3.
Der ABAP-Interpreter liest den EXEC SQL-Block eines
ABAP-Programmes
Der ABAP-Interpreter reicht den Befehlsblock direkt an das
DBMS weiter, ohne das SAP Data Dictionary zu konsultieren
Das DBMS optimiert den Befehlsblock, generiert einen
Ausführungsplan, führt die Anfrage aus und gibt das Ergebnis
an den aufrufenden ABAP-Interpreter zurück
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 10: Datenbankzugriff & Pufferung – 12
Herunterladen