Datenbank-Views in SAP NetWeaver AS ABAP 7.50: Eine Tiefenanalyse

Datenbank-Views sind ein zentraler Bestandteil von SAP NetWeaver AS ABAP 7.50 und ermöglichen die flexible Abfrage und Darstellung von Daten aus einer oder mehreren Basistabellen. Eine Datenbank-View ist im Wesentlichen eine generische Sicht, die bei der Aktivierung im ABAP Dictionary als SQL-View auf der Datenbank angelegt wird. Dies erlaubt den Zugriff über Open SQL sowie Native SQL und bietet ABAP-Programmen die Möglichkeit, auf die definierten Strukturtypen mittels TYPE zuzugreifen.

Grundlagen und Erstellung von Datenbank-Views

Basistabellen und ihre Rolle

Die Grundlage jeder Datenbank-View bilden transparente Tabellen. Diese müssen vorhanden sein, damit die SQL-View auf die Daten zugreifen kann. Die eigentliche Join-Operation, die Daten aus mehreren Tabellen zusammenführt, wird direkt auf der Datenbankebene ausgeführt. Dies gewährleistet eine hohe Performance. Es ist wichtig zu verstehen, dass eine Datenbank-View auch dann im ABAP Dictionary aktiviert werden kann, wenn ihre Basistabellen noch nicht auf der Datenbank existieren. In einem solchen Fall wird die View jedoch erst dann auf der Datenbank angelegt, wenn die Basistabellen verfügbar sind.

View-Felder: Flexibilität bei der Datenauswahl

Als View-Felder können einzelne Felder von Basistabellen oder auch alle Felder einer Basistabelle über einen Include-Mechanismus verwendet werden. Bei der Auswahl einzelner Felder besteht die Möglichkeit, dem View-Feld einen anderen Namen zu geben als in der Basistabelle. Dieser Name darf maximal 30 Zeichen lang sein, den Namenskonventionen für Komponentennamen von Strukturen folgen und darf kein reservierter Name sein. Für die Übernahme aller Felder wird das Sternchen-Symbol (*) verwendet. Wenn beispielsweise alle Felder einer Basistabelle übernommen werden sollen, aber bestimmte Felder ausgeschlossen werden sollen, kann das Minuszeichen (-) verwendet werden, um diese Felder zu kennzeichnen. Eine Änderung der Struktur einer Basistabelle, von der alle Felder übernommen wurden, wirkt sich automatisch auch auf die Struktur des Views aus.

Weiterlesen >>  AutoCAD 2007 auf 64-Bit Systemen: Ein Leitfaden für Entwickler und Anwender

Join-Bedingungen: Präzise Datenverknüpfung

Die Join-Bedingungen für den Inner Join können durch Gleichheitsbeziehungen zwischen beliebigen Feldern der Basistabellen formuliert werden. Der Inner Join fügt Zeilen aus den beteiligten Basistabellen zu einer Ergebnismenge zusammen, die alle Kombinationen von Zeilen enthält, deren Spalten die Join-Bedingungen erfüllen. Besteht zwischen zwei Basistabellen eine Fremdschlüsselbeziehung, kann diese im ABAP Dictionary als Vorschlag für die Definition der Join-Bedingungen genutzt werden. Dies vereinfacht die Einrichtung komplexer Joins.

Pflegestatus und Datenmanipulation

Der Pflegestatus einer Datenbank-View bestimmt, welche Operationen über diese View zulässig sind.

Nur Lesen

In diesem Modus können Daten über die Datenbank-View ausschließlich mit Open SQL gelesen werden. Änderungen, Einfügungen oder Löschungen sind nicht möglich.

Lesen, Ändern, Löschen und Einfügen

Wenn eine Datenbank-View nur eine einzige Basistabelle enthält, können Daten über Open SQL auch geändert werden. Hierbei sind die Anweisungen INSERT und MODIFY relevant. Für die Felder, die nicht in der View enthalten sind, gelten besondere Regeln:

  • Ist ein Tabellenfeld auf der Datenbank als NOT NULL definiert und besitzt keinen Initialwert, ist ein Einfügen nicht möglich und führt zu einem Datenbankfehler.
  • Es wird empfohlen, Daten über eine View nur einzufügen, wenn für alle nicht in der View enthaltenen Tabellenfelder das Kennzeichen für Initialwerte gesetzt ist.
  • Das Ändern von bestehenden Datensätzen ist unproblematisch, sofern die Datenbank-View alle Schlüsselfelder der Tabelle umfasst.

Bei Datenbank-Views mit mehreren Basistabellen ist ein schreibender Zugriff über Open SQL nicht möglich.

SAP-Pufferung und Performance-Optimierung

Ähnlich wie bei Datenbanktabellen kann auch für Datenbank-Views gesteuert werden, ob die Daten im SAP-Puffer zwischengespeichert werden. Die gleichen Pufferungsarten wie bei Tabellen können definiert werden. Die Behandlung der SAP-Pufferung in Open SQL verhält sich bei Views wie bei Datenbanktabellen. Ein wichtiger Unterschied besteht jedoch bei der Puffersynchronisation: Bei Datenänderungen in einer der Basistabellen wird unabhängig von der Pufferungsart der gesamte Puffer der View invalidiert. Bei mandantenabhängigen Views betrifft dies nur die Inhalte des aktuellen Mandanten.

Weiterlesen >>  Photoshop 6.0 auf Windows 10: Eine Anleitung zur Wiederherstellung – Kein Download nötig!

Voraussetzungen für die Pufferung von Views

Damit eine Datenbank-View gepuffert werden kann, müssen folgende Voraussetzungen erfüllt sein:

  • Eine Basistabelle darf in maximal 9 gepufferten Datenbank-Views vorkommen.
  • Sind alle Felder der Datenbank-View Schlüsselfelder, müssen diese auch Schlüsselfelder der Basistabellen sein.

Beispiel: DEMO_SCARR_SPFLI

Die Datenbank-View DEMO_SCARR_SPFLI veranschaulicht die Verknüpfung von Feldern aus den Tabellen SCARR (Fluggesellschaften) und SPFLI (Flugpläne) mit teilweise abweichenden Feldnamen in der View. Der entsprechende SQL-Code zur Erstellung dieser View zeigt, wie die Tabellen über die Felder MANDT und CARRID verknüpft werden. Der Zugriff auf diese View mittels Open SQL ist anschließend unkompliziert, wie das folgende Beispiel mit einer SELECT-Anweisung demonstriert.