Inhaltsverzeichnis:
Video: Datenbanken und SQL Tutorial #1 - Einführung 2025
PL / SQL ist die Sprache, die beim Schreiben von Code verwendet werden soll, der sich in der Datenbank befindet. Im folgenden Artikel werden Sie verschiedene Situationen kennenlernen, in denen Sie PL / SQL nützlich finden.
Verwendung von Datenbanktriggern
Ein Trigger ist ein Ereignis innerhalb des DBMS, das dazu führen kann, dass Code automatisch ausgeführt wird. Es gibt vier Typen von Datenbankauslösern:
- Auslöser auf Tabellenebene können eine Aktivität vor oder nach einem INSERT-, UPDATE- oder DELETE-Ereignis auslösen. Diese werden am häufigsten verwendet, um Verlaufsinformationen und Datenbankänderungen zu verfolgen, redundante Daten synchronisiert zu halten oder die Sicherheit zu erhöhen, indem bestimmte Vorgänge verhindert werden.
- View-Level-Trigger sind sehr nützlich. Eine Ansicht ist eine gespeicherte SQL-Anweisung, die Entwickler so abfragen können, als wäre sie selbst eine Datenbanktabelle. Durch das Platzieren von INSTEAD OF-Triggern in einer Ansicht können die Befehle INSERT, MODIFY und DELETE unabhängig von ihrer Komplexität auf die Ansicht angewendet werden, da der INSTEAD OF-Trigger definiert, was mit der Ansicht geschehen kann.
- Trigger auf Datenbankebene können beim Starten und Herunterfahren aktiviert werden. Wenn Sie beispielsweise die Datenbank starten, sollten Sie die Verfügbarkeit anderer Datenbanken oder Webservices testen. Vor dem Herunterfahren der Datenbank möchten Sie möglicherweise andere Datenbanken und Webdienste benachrichtigen, dass die Datenbank offline geschaltet wird.
- Auslöser auf Sitzungsebene können zum Speichern spezifischer Informationen verwendet werden. Wenn sich ein Benutzer beispielsweise an- oder abmeldet, möchten Sie möglicherweise Code ausführen, der die Präferenzen des Benutzers enthält, und sie für einen schnellen Zugriff in den Speicher laden. Wenn die Sitzung geschlossen wird, kann ein Trigger die Einstellungen für die zukünftige Verwendung speichern.
Scripting mit der Geschwindigkeit
Beim Schreiben von Code ist die Möglichkeit nützlich, einen Teil des Codes einzugeben und auszuführen, ohne ihn vorher in der Datenbank zu speichern. Oracle bietet diese Fähigkeit, die von allen PL / SQL-IDEs unterstützt wird.
Code-Server-seitig halten
Der Großteil des PL / SQL-Codes wird als Programmeinheit im Server gespeichert. Eine typische Anwendung hat viele Codezeilen.
Einige Programmierer, insbesondere webbasierte Entwickler, arbeiten im J2EE oder. NET-Umgebungen versuchen, den größten Teil ihres Codes auf dem Anwendungsserver in Java (für J2EE-Entwickler) oder VB zu schreiben. NET (für.NET-Entwickler). Das ist keine gute Übung. In einer Datenbankanwendung ist ein Großteil der Logik dem Abrufen und Aktualisieren von Informationen gewidmet. Wenn sich der Code zum Ausführen dieser Aufgabe in einem Anwendungsserver befindet, muss er eine Anforderung über ein Netzwerk an die Datenbank senden. Dann muss die Datenbank die Anforderung verarbeiten und die Informationen über das Netzwerk zurücksenden, damit die Anwendung verarbeitet werden kann.Da Netzwerke und Computer jetzt sehr schnell sind, könnten Sie denken, dass dies nur Bruchteile einer Sekunde dauern würde. Obwohl dies bei einer einzelnen Anforderung der Fall ist, kann eine sehr komplexe Anwendung Millionen oder sogar Hunderte von Millionen von Interaktionen mit der Datenbank erfordern. Die Anzahl der Interaktionen kann sogar in Sekundenbruchteilen mit einer sehr schlechten Leistung multipliziert werden.
Selbst relativ einfache Vorgänge, die nur wenige Datenbankanforderungen erfordern, können problematisch sein, wenn Hunderte, Tausende oder Zehntausende von Benutzern gleichzeitig auf die Anwendung zugreifen. Es ist sehr viel schwieriger, eine datenbankintensive Anwendung ohne serverseitige Codierung zu erstellen, als den gesamten Code in einen Anwendungsserver zu schreiben.
Eines der Argumente gegen das Schreiben von serverseitigem Code ist, dass die Anwendung nicht portabel ist (nicht von einer Plattform auf eine andere verschoben werden kann). Die meisten Organisationen, die Oracle verwenden, verwenden es jedoch seit sehr langer Zeit (zehn oder mehr Jahre) und erwägen keinen Wechsel zu einer anderen Plattform. Außerdem befindet sich die Webentwicklung derzeit in einem schnellen Wandel. Organisationen wechseln häufig zwischen. NET, J2EE und andere Umgebungen für ihre Web-basierte Anwendungsentwicklung.
Sowohl die. NET- und J2EE-Umgebungen sind ebenfalls im Fluss. In der J2EE-Umgebung war der Industriestandard für die Web-Entwicklung vor etwa einem Jahr die Erstellung von JavaServer-Seiten (JSPs). Derzeit ist der Industriestandard in der JSP / Struts-Umgebung zu arbeiten. Im nächsten Jahr werden JavaServer Faces (JSFs) wahrscheinlich zum Industriestandard werden. Daher ist Code, der in der Middle-Tier geschrieben ist, ein hohes Risiko, dass er in der Zukunft neu geschrieben werden muss.
Serverseitiger Code läuft schneller, ist einfacher zu warten und zu testen und ist weniger anfällig für Änderungen als Code in der mittleren Ebene. Daher ist das Erstellen von signifikanten Teilen einer Anwendung in der Datenbank ein besserer Ansatz.
Es gibt eine Reihe von Stellen, an denen Sie Code schreiben können, den Ihre Anwendungen verwenden können:
- Teile von Anwendungen: PL / SQL-Programmeinheiten können eine Reihe von Werten (Funktionen) oder PL / SQL-Routinen zurückgeben kann Datenbankoperationen (Prozeduren) durchführen. Diese Funktionen und Prozeduren können von anderen Funktionen und Prozeduren oder (bei Funktionen) aufgerufen werden, die in SQL-Anweisungen verwendet werden. PL / SQL-Routinen können so groß und komplex sein, wie Sie sie benötigen. Einige komplexe Routinen können Tausende von Codezeilen enthalten. Ganze Systeme können Millionen von Codezeilen enthalten.
- In Ansichten eingebetteter PL / SQL-Code: Mit Oracle können Sie Code in Datenbankansichten einbetten. Der Code kann sich tatsächlich an einem von zwei Orten in der Ansicht befinden. Erstens können Sie korrekt gestaltete Funktionen platzieren, die einen Wert im SELECT-Teil einer SQL-Anweisung zurückgeben, um zusätzliche Informationen abzurufen, die möglicherweise Teil der abgefragten Tabellen sind oder nicht. Sie können PL / SQL auch in INSTEAD OF-Auslösern in einer Ansicht einbetten. Mit diesen Triggern können INSERT-, UPDATE- und DELETE-Vorgänge für komplexe Ansichten ausgeführt werden, wobei PL / SQL programmgesteuert verarbeitet, wie diese Operationen behandelt werden sollten.
- Batch-Routinen: Batch-Routinen führen Code aus, der eine große Anzahl von Datensätzen gleichzeitig verarbeitet. Die Erstellung von Rechnungen für jeden Kunden in einem System oder die Verarbeitung von Abrechnungsprüfungen für eine gesamte Organisation sind Beispiele für Batch-Routinen. Diese Routinen sind normalerweise groß, komplex und datenbankintensiv. Diese Art von Routine sollte sicher in PL / SQL geschrieben sein.