Show TOC Anfang des Inhaltsbereichs

Datenbankzugriffe des NetWeaver AS ABAP  Dokument im Navigationsbaum lokalisieren

Der NetWeaver AS ABAP legt langlebige Daten in einer zentralen relationalen Datenbanktabelle ab. Im relationalen Datenmodell wird die reale Welt durch Tabellen abgebildet. Eine Tabelle ist eine zweidimensionale Matrix, die aus Zeilen und Spalten (Felder) besteht. Jede kleinstmögliche Kombination von Feldern, die jede Zeile einer Tabelle eindeutig identifizieren kann heißt Schlüssel. Für jede Tabelle muss es mindestens einen Schlüssel geben und pro Tabelle wird ein Schlüssel als Primärschlüssel festgelegt. Die Beziehungen zwischen Tabellen werden durch Fremdschlüssel realisiert.

Standard SQL

SQL (Structured Query Language) ist eine weitgehend standardisierte Sprache für den Zugriff auf relationale Datenbanken. Standard SQL läßt sich in drei Anteile unterteilen:

·        DML-Anteil (Data Manipulation Language)

Anweisungen zum Lesen und Ändern von Daten in Datenbanktabellen.

·        DDL-Anteil (Data Definition Language)

Anweisungen zum Anlegen und Verwalten von Datenbanktabellen.

·        DCL-Anteil (Data Control Language)

Anweisungen für Berechtigungsüberprüfungen und Konsistenzkontrolle.

Zu jeder Datenbank gehört eine Programmierschnittstelle, die den Zugriff auf die Datenbank über SQL-Anweisungen erlaubt. Die SQL-Anweisungen dieser Programmierschnittstellen sind nicht vollständig einheitlich, sondern weisen herstellerspezifische Eigenheiten auf. Um auf ein bestimmtes Datenbanksystem zugreifen zu können, muss man auf die Dokumentation dieses Systems zurückgreifen, um eine Liste der vorhandenen SQL-Anweisungen und ihrer Syntax zu erhalten.

Die Datenbankschnittstelle

Um Unverträglichkeiten zwischen verschiedenen Datenbanktabellen zu vermeiden und den NetWeaver AS ABAP unabhängig vom verwendeten Datenbanksystem zu machen, enthält jeder Workprozess auf einem ABAP-Applikationsserver eine Datenbankschnittstelle. Der NW AS kommuniziert ausschließlich über die Datenbankschnittstelle mit der Datenbank. Die Datenbankschnittstelle verwandelt alle Anforderungen des NW AS in herstellerspezifische Standard SQL-Anweisungen. Hierfür enthält die Datenbankschnittstelle eine datenbankabhängige Komponente, welche die Unterschiede zwischen den Datenbanksystemen vor dem Rest der Datenbankschnittstelle verbirgt. Diese Komponente wird bei der Installation des NetWeaver AS ABAP entsprechend der verwendeten Datenbank ausgewählt.

Diese Grafik wird im zugehörigen Text erklärt

ABAP-Programme haben zwei Möglichkeiten auf die Datenbankschnittstelle zuzugreifen, nämlich Open SQL und Native SQL.

Open SQL

Die Anweisungen von Open SQL sind eine vollständig in ABAP integrierte Untermenge von Standard SQL. Sie erlauben den ABAP-Programmen einen einheitlichen Zugriff auf Daten, unabhängig vom installierten Datenbanksystem. Open SQL umfasst den DML-Anteil (Data Manipulation Language) des Standards, erlaubt es also Daten zu lesen (SELECT) und zu verändern (INSERT, UPDATE, DELETE).

Open SQL geht aber auch über den Standard hinaus, indem es einige Anweisungen anbietet, die im Zusammenhang mit den übrigen ABAP-Elementen, bestimmte Zugriffe vereinfachen oder beschleunigen können. Zusätzlich bietet Open SQL die Möglichkeit, bestimmte Tabellen auf dem Applikationsserver zu puffern und dadurch Datenbankzugriffe einzusparen. Dabei übernimmt die Datenbankschnittstelle die Kontrolle über die Abgleichung der Puffer mit der Datenbank. Die Puffer sind teilweise im Arbeitsspeicher des aktuellen Workprozesses und teilweise im gemeinsamen Speicher aller Workprozesse eines Anwendungsservers abgelegt. Bei SAP-Systemen, die auf mehrere Anwendungsserver verteilt sind, werden die Daten in den verschiedenen Puffern durch das Puffer-Management in festgelegten Zeitabschnitten synchronisiert. Bei der Datenbankpufferung muss man also in Kauf nehmen, dass die Daten in den Puffern nicht immer aktuell sind. Deshalb wendet man Datenbankpufferung eher bei wenig veränderlichen Daten an. Ob eine Tabelle gepuffert wird, wird im ABAP Dictionary bei ihrer Definition festgelegt.

Native SQL

Native SQL ist nur sehr lose in ABAP eingebunden und erlaubt Zugriff auf den gesamten Umfang der Funktionalität, der von der Programmierschnittstelle des Datenbanksystems zur Verfügung gestellt wird. Native SQL Anweisungen werden im Gegensatz zu Open SQL nicht geprüft und übersetzt, sondern direkt an das Datenbanksystem gereicht. Im Falle von Native SQL ist die Funktionalität der datenbankabhängigen Schicht nur minimal. Ein Programm, das Native SQL verwendet, ist abhängig vom installierten Datenbanksystem. Bei der Entwicklung von allgemeingültigen ABAP-Anwendungen sollte auf den Einsatz von Native SQL weitestgehend verzichtet werden.In einigen Komponenten des SAP-Systems wird Native SQL verwendet, z.B.: im ABAP Dictionary zum Anlegen oder Ändern von Tabellen.

Das ABAP Dictionary

Das Werkzeug ABAP Dictionary der ABAP Workbench dient dem Anlegen und Verwalten von Datenbanktabellen. Die Anweisungen von Open SQL enthalten nicht den DDL-Anteil von Standard SQL. Normale Anwendungsprogramme sollen keine Datenbanktabellen anlegen oder die Struktur von Datenbanktabellen ändern.

Das Werkzeug ABAP Dictionary erzeugt bzw. ändert Datenbanktabellen über Native SQL-Anweisungen (DDL-Anteil). Gleichzeitig verwaltet das Werkzeug ABAP Dictionary das gleichnamige ABAP Dictionary auf der Datenbank. Das ABAP Dictionary enthält eine zentrale Metabeschreibung aller Datenbanktabellen des NetWeaver AS ABAP. Nur Datenbanktabellen, die mit dem Werkzeug ABAP Dictionary erzeugt werden, sind im ABAP Dictionary eingetragen und Open SQL-Anweisungen können nur auf solche Datenbanktabellen zugreifen.

Berechtigungen und Konsistenzprüfungen

Der DCL-Anteil von Standard SQL spielt in ABAP-Programmen keine Rolle. Die Workprozesse der ABAP-Applikationsserver sind als Benutzer mit allen Berechtigungen beim Datenbanksystem angemeldet. Die Berechtigungen von Programmen oder Programmbenutzern, Datenbanktabellen zu lesen oder zu ändern, werden durch das Berechtigungskonzept gehandhabt. Ebenso müssen Transaktionen mit Hilfe des SAP-Sperrkonzepts selbst für konsistente Daten auf der Datenbank sorgen. Mehr Informationen dazu finden sich unter Datenkonsistenz.

Ende des Inhaltsbereichs