Share via


Online-Transaktionsverarbeitung im Vergleich zum Decision Support

Viele Anwendungen können einer der beiden Hauptkategorien für Datenbankanwendungen zugeordnet werden:

  • Onlinetransaktionsverarbeitung (OLTP, Online Transaction Processing)

  • Decision Support

Die Besonderheiten dieser Anwendungstypen haben einen entscheidenden Einfluss auf die Überlegungen, die beim Entwurf einer Datenbank angestellt werden müssen.

Onlinetransaktionsverarbeitung

Datenbankanwendungen für die Onlinetransaktionsverarbeitung eignen sich optimal für das Verwalten von veränderlichen Daten. Diese Anwendungen verfügen in der Regel über eine große Anzahl an Benutzern, die gleichzeitig Transaktionen ausführen, durch die Echtzeitdaten geändert werden. Zwar verweisen einzelne Datenanforderungen von Benutzern üblicherweise nur auf wenige Datensätze, aber viele dieser Anforderungen werden gleichzeitig ausgeführt. Typische Beispiele für diese Datenbanktypen sind Buchungssysteme von Fluggesellschaften und Banktransaktionssysteme. Bei diesem Anwendungstyp sind die Parallelität und die Unteilbarkeit von vorrangiger Bedeutung.

Die Parallelitätssteuerung in einem Datenbanksystem stellt sicher, dass nicht mehrere Benutzer dieselben Daten ändern können oder dass ein Benutzer einen Dateneintrag erst dann ändern kann, wenn ein anderer Benutzer die Bearbeitung dieses Dateneintrags abgeschlossen hat. Angenommen, Sie haben sich an einen Angestellten am Ticketschalter einer Fluggesellschaft gewandt und müssen den letzten verfügbaren Platz für einen bestimmten Flug reservieren. Sobald der Mitarbeiter der Fluggesellschaft mit der Reservierung dieses Platzes für Sie begonnen hat, sollten seine Kollegen und Kolleginnen nicht mehr in der Lage sein, einem anderen Reisenden die Auskunft zu geben, dass dieser Platz noch verfügbar ist.

Die Unteilbarkeit gewährleistet, dass alle Schritte in einer Transaktion erfolgreich als Gruppe abgeschlossen werden. Sobald ein Schritt einen Fehler erzeugt, darf kein anderer Schritt mehr abgeschlossen werden. Eine Banktransaktion kann sich z. B. aus zwei Schritten zusammensetzen: dem Abbuchen eines Betrags von Ihrem Girokonto und der Gutschrift dieses Betrags auf Ihrem Sparkonto. Wenn der Schritt, durch den der Betrag vom Girokonto abgebucht wird, erfolgreich abgeschlossen wird, möchten Sie sicherstellen, dass der Betrag tatsächlich Ihrem Sparkonto gutgeschrieben oder aber auf Ihr Girokonto zurückgebucht wird.

Überlegungen zum Entwurf von OLTP-Datenbanken

Transaktionsverarbeitende Systemdatenbanken sollten so aufgebaut sein, dass sie Folgendes fördern:

  • Sinnvolle Verteilung der Daten

    Aufgrund der Anzahl der Benutzer, die Daten in allen Bereichen der Datenbank ändern, können E/A-Engpässe ein großes Problem für OLTP-Systeme darstellen. Ermitteln Sie beim Entwerfen einer Datenbank die wahrscheinlichsten Zugriffsmuster für die Daten, und platzieren Sie Daten zusammen, auf die häufig zugegriffen wird. Verwenden Sie Dateigruppen und Systeme mit redundanten Datenträgerarrays (RAID, Redundant Array of Independent Disks), um die sinnvolle Verteilung zu unterstützen.

  • Kurze Transaktionen, sodass die Anzahl lang andauernder Sperren minimiert und die Parallelität erhöht wird

    Vermeiden Sie Benutzerinteraktionen während der Transaktionen. Führen Sie, sofern dies möglich ist, eine einzige gespeicherte Prozedur aus, um die gesamte Transaktion zu verarbeiten. Die Reihenfolge, in der innerhalb von Transaktionen auf Tabellen verwiesen wird, kann die Parallelität beeinflussen. Platzieren Sie Verweise auf Tabellen, auf die häufig zugegriffen wird, am Ende der Transaktion, um den Zeitraum zu minimieren, für den diese Tabelle mit einer Sperre belegt wird.

  • Onlinesicherung

    OLTP-Systeme zeichnen sich häufig durch fortlaufende Operationen aus, für die die Downtime auf das absolute Minimum reduziert wird. Das heißt, sie laufen 24 Stunden am Tag und an allen sieben Wochentagen. Obwohl Sie in SQL Server Database Engine (Datenbankmodul) eine Datenbank während des Verwendens sichern können, sollten Sie einen Zeitplan für den Sicherungsvorgang festlegen, damit die Datenbank zu Zeiten geringer Aktivität gesichert wird. Auf diese Weise können die Auswirkungen für die Benutzer minimiert werden.

  • Hohe Normalisierung der Datenbank

    Reduzieren Sie redundante Informationen, um die Geschwindigkeit von Aktualisierungen und die Parallelität zu erhöhen. Durch das Reduzieren von Daten kann zudem die Geschwindigkeit von Sicherungen erhöht werden, da weniger Daten gesichert werden müssen.

  • Wenige oder keine Vergangenheitsdaten oder aggregierte Daten

    Daten, auf die kaum verwiesen wird, können in separaten Datenbanken archiviert oder von häufig aktualisierten Tabellen hin zu Tabellen verschoben werden, die nur Vergangenheitsdaten enthalten. Tabellen bleiben somit so klein wie möglich, wodurch die Sicherungszeit verkürzt und die Abfrageleistung verbessert wird.

  • Sorgfältige Verwendung von Indizes

    Indizes müssen jedes Mal aktualisiert werden, wenn eine Zeile hinzugefügt oder geändert wird. Verwenden Sie schmale Indizes, um eine übermäßige Indizierung häufig aktualisierter Tabellen zu vermeiden. Verwenden Sie zum Entwerfen Ihrer Indizes den Datenbankmodul-Optimierungsratgeber.

  • Optimale Hardwarekonfiguration, um die große Anzahl gleichzeitiger Benutzer zu verarbeiten, und schnelle Reaktionszeiten, die von einem OLTP-System benötigt werden

Decision Support

Decision Support-Datenbankanwendungen eignen sich optimal für Datenabfragen, durch die keine Daten geändert werden. Ein Unternehmen könnte z. B. in regelmäßigen Abständen die Verkaufsdaten nach Datum, Verkaufsregion oder Produkt zusammenfassen und diese Informationen in einer eigenen Datenbank speichern, damit diese vom Vorstand zu Analysezwecken verwendet werden kann. Um Geschäftsentscheidungen treffen zu können, muss es den Benutzern möglich sein, Verkaufsentwicklungen schnell zu ermitteln, indem sie die Daten basierend auf unterschiedlichen Kriterien abfragen. Diese Daten müssen jedoch nicht geändert werden. Die Tabellen in Decision Support-Datenbanken sind vielfach indiziert, die Rohdaten sind häufig schon verarbeitet und so strukturiert, dass die unterschiedlichen verwendeten Abfragen unterstützt werden. Da die Daten nicht von den Benutzern geändert werden, spielen Parallelitäts- und Unteilbarkeitsfragen keine Rolle. Die Daten werden nur durch regelmäßige Massenaktualisierungen geändert, die außerhalb der normalen Arbeitszeit vorgenommen werden, wenn die Datenbank nur wenig beansprucht wird.

Überlegungen zum Entwurf von Decision Support-Datenbanken

Decision Support-Systemdatenbanken sollten so aufgebaut sein, dass sie Folgendes fördern:

  • Verwendung unterschiedlichster Indizes

    Decision Support-Systeme (DSS) stellen nur geringe Anforderungen an die Aktualisierung, verfügen jedoch über große Mengen an Daten. Verwenden Sie viele Indizes, um die Abfrageleistung zu verbessern.

  • Denormalisierung der Datenbank

    Nehmen Sie vorab aggregierte oder zusammengefasste Daten auf, um häufig anfallende Abfrageanforderungen zu erfüllen und die Reaktionszeiten für Abfragen zu verkürzen.

  • Verwendung eines Stern- oder Schneeflockenschemas, um die Daten innerhalb der Datenbank zu organisieren.