Leseprobe
2.1 Datenbankmanagementsysteme für SAP
DBMS dienen der Verwaltung aller Daten einer Anwendung. Im Detail haben sie folgende Aufgaben:
- Daten speichern
- Daten den Anwendungen zur Verfügung stellen
- Änderungen an Daten ermöglichen und in sogenannten Datenbank-Logs protokollieren
- Daten bei zeitgleichen Zugriffen verschiedener Anwender sperren und entsperren
- Die Korrektheit (auch Datenintegrität genannt) gespeicherter Daten sicherstellen
- Die Beziehungen zwischen den Daten verwalten (sogenannte Metadatenbank)
Noch vor wenigen Jahren gab es ausschließlich traditionell relationale DBMS wie Informix, MaxDB, Oracle, DB4, SQL-DB etc., die für die Verwaltung von Daten in SAP-Systemen eingesetzt wurden. Erst seit 2010 stellte die SAP mit der HANA-DB eine neue Generation von DBMS zur Verfügung.
Diese neue HANA-DB beinhaltet zwei zuvor in keinem bisher verwendeten DBMS vorhandene Funktionen:
- In-Memory-Datenspeicherung
- Erweiterung der bisherigen zeilenorientierten Datenspeicherung um eine spaltenorientierte Datenspeicherung
Beide Aspekte haben Auswirkungen auf die Performance beim Speichern, Lesen und Ändern von Daten in SAP-Systemen. Mit der HANA-DB können auch größere Datenmengen in einer – für den Anwender – vertretbaren Zeit bearbeitet werden. In den beiden folgenden Abschnitten werden diese Funktionen eingehender erläutert.
2.1.1 In-Memory-Datenspeicherung der HANA-Datenbank
Mit der neuen Datenbanktechnologie ändern sich insbesondere der schreibende und der lesende Zugriff auf die im Programm benötigten Daten. Der Begriff »In-Memory-Datenbank« beschreibt die Fähigkeit eines DBMS, die für eine Anwendung erforderlichen Daten für einen schnelleren Zugriff im Hauptspeicher vorzuhalten statt, wie bisher, auf den erheblich langsameren Festplatten eines Rechners. Das bedeutet, dass beim Datenzugriff die Daten nicht mehr aufwendig von den Festplatten gelesen werden müssen. Der wesentlich schnellere Datenzugriff wird über den Hauptspeicher des Rechners realisiert.
Hauptspeicher von Rechnern sind flüchtige Speicher. Das bedeutet, dass z.B. bei einem Stromausfall alle Daten aus dem Hauptspeicher verloren gehen. Um diesem Verlust vorzubeugen, werden die Daten zusätzlich auf Festplatten persistent (also dauerhaft) gespeichert. Diese Aufgabe übernimmt die HANA-Persistenzschicht. Anhand von Änderungslogs werden die Daten in regelmäßigen zeitlichen Abständen (im Standard alle 5 Minuten) dauerhaft auf die Festplatte geschrieben. Die Änderungszeitpunkte nennt man auch Savepoints.
Das HANA-Speichermodell kann wie in Abbildung 2.2 skizziert werden.
Abbildung 2.2: Das HANA-In-Memory-Speichermodell
Bei einem schreibenden Zugriff auf den Tabelleninhalt werden die Daten zunächst in den Delta-Speicher geschrieben. Dieser Speicher ist für schreibende Zugriffe optimiert.
Die neuen, gelöschten oder geänderten Daten im Delta-Speicher werden für den Hauptspeicher in kurzen Perioden komprimiert und für lesende Zugriffe optimiert (sog. Delta-Merge-Operation).
Bei lesenden Zugriffen werden die Daten sowohl aus dem Delta-Speicher als auch aus dem Hauptspeicher gelesen, um auch Aktualsierungen, die nur im Delta-Speicher liegen, zu berücksichtigen.
Um möglichst viele Daten im Hauptspeicher vorzuhalten, werden aufwendige und schnelle Kompressionsalgorithmen während der Delta-Merge-Operation eingesetzt.
2.1.2 Spalten- versus zeilenorientierte Datenspeicherung
Die HANA-DB ist, wie die traditionellen DBMS, ein relationales Datenbankmanagementsystem. Die Daten werden tabellenartig in Zeilen und Spalten gespeichert. Während traditionell relationale DBMS nur die zeilenorientierte Datenspeicherung kennen, beherrscht das HANA-DBMS sowohl die zeilenorientierte als auch die spaltenorientierte Option.
Der Unterschied zwischen der Spalten- und der Zeilenorientierung macht sich erst beim Speichern der Daten durch das DBMS auf den physikalischen Festplatten bzw. im Hauptspeicher bemerkbar (siehe Abbildung 2.3).
Abbildung 2.3: Zeilen- versus Spaltenorientierung
Bei einer zeilenorientierten Datenspeicherung werden die Daten einer Zeile hintereinander gespeichert. Wird in der zeilenorientierten Datenbank ein Datensatz gelesen, so stehen alle Daten dieser Zeile im Programm zur Verfügung.
Bei einer spaltenorientierten Datenspeicherung werden die Daten einer Spalte hintereinander gespeichert. Stünde nun in einer Spalte z.B. der Umsatz eines Kunden, dann könnte bei einer spaltenorientierten Speicherung sehr schnell der Gesamtumsatz über alle Kunden ermittelt werden.
Je nach Art des Datenbank-Zugriffs haben beide Alternativen Vor- und Nachteile:
Vorteile der zeilenorientierten Datenspeicherung:
- Schnelleres Lesen der Daten z.B. bei Änderungen für einen Geschäftspartner (sprich: Online Transaction Prozessing, kurz OLTP)
- Schnellere lesende Zugriffe auf die Datenbank im Vergleich zur spaltenorientierten Datenspeicherung
Vorteile der spaltenorientierten Datenspeicherung:
- Bei Analyseaufgaben werden im Regelfall nur die Inhalte weniger Spalten benötigt (sprich: Online Analytical Prozessing, kurz OLAP)
- Schnellere schreibende Zugriffe auf die Datenbank im Vergleich zur zeilenorientierten Datenspeicherung
Durch die Einführung der HANA-DB konnte die bis dato bestehende Unabhängigkeit des Data Dictionary vom darunter liegenden DBMS nicht durchgehend eingehalten werden. Im Wesentlichen handelt es sich bei diesen Änderungen um:
- die technischen Einstellungen von Tabellen im Data Dictionary (vgl. Abbildung 2.10),
- die Verwendung von Datenbank-Indizes sowie
- den lesenden Zugriff auf die Datenbanktabellen.
Auf diese Änderungen beim Einsatz der HANA-DB wird in den folgenden Abschnitten zum Data Dictionary hingewiesen.
Alle Inhalte. Mehr Informationen. Jetzt entdecken.
et.training - Ihre Lernplattform für SAP-Software
- Zugriff auf alle Lerninhalte1
- Regelmäßige Neuerscheinungen
- Intelligenter Suchalgorithmus
- Innovatives Leseerlebnis
- Maßgeschneidere Lernpfade
- Zertifikate & QA-Tests2
1 Sie erhalten Zugriff auf alle Lerninhalte. Online-Trainings, Zertifikate sind NICHT Teil der Flatrate.
2 Weitere Informationen auf Anfrage.