Teil_4 Flashcards
Was sind Prepared Statements?
Prepared Statements sind vorkompilierte SQL-Statements mit Platzhaltern für Werte, die später ausgeführt werden.
- Sie verhindern SQL-Injection.
- Sie verbessern die Performance, da sie nur einmal kompiliert werden.
Welche Vorteile bieten Prepared Statements?
- Schutz vor SQL-Injection.
- Verbesserung der Performance, da das Statement nur einmal kompiliert wird.
- Wiederverwendbarkeit mit unterschiedlichen Daten.
Wie werden Prepared Statements ausgeführt?
- Ein Prepared Statement wird mit Platzhaltern erstellt (z.B.
SELECT * FROM users WHERE name = ?
). - Bei der Ausführung werden die Platzhalter durch tatsächliche Werte ersetzt (z.B.
EXECUTE statement('matthias')
).
Was sind Stored Procedures?
Stored Procedures sind Funktionen, die direkt in der Datenbank mit SQL und prozeduraler Programmierung ausgeführt werden.
- Reduziert die Netzwerklast.
- Effiziente Datenverarbeitung auf dem Server.
- Zugriff auf Schleifen, Variablen, Bedingungen und Ausnahmen.
Welche Rückgabewerte gibt es bei Stored Procedures?
-
RETURN
: Gibt den Wert der Expression zurück. -
RETURN NEXT
: Fügt eine neue Zeile zur Ergebnisliste hinzu. -
RETURN QUERY
: Gibt das Ergebnis einer Query zurück.
Was sind Trigger?
Trigger sind spezielle Stored Procedures, die automatisch bei bestimmten Ereignissen (INSERT, UPDATE, DELETE) ausgeführt werden.
- Sicherstellung der Datenintegrität.
- Automatisierung von Prozessen (z.B. Aggregation von Werten).
Welche Arten von Triggern gibt es?
- BEFORE: Vor der auslösenden Operation (z.B. Datenvalidierung).
- AFTER: Nach der auslösenden Operation (z.B. Aktualisierung redundanter Daten).
- INSTEAD OF: Ersetzt die auslösende Operation.
Was sind die Eigenschaften von PL/pgSQL Trigger-Funktionen?
- Keine Eingabeparameter.
- Rückgabetyp ist
trigger
. - Zugriff auf Spezialvariablen:
NEW
(neue Zeile) undOLD
(alte Zeile).
Was ist SQL Injection?
SQL-Injection tritt auf, wenn Benutzereingaben direkt in SQL-Abfragen übernommen werden, ohne sie zu validieren. Dadurch können schädliche Befehle ausgeführt werden.
Wie kann man SQL Injection verhindern?
- Verwendung von Prepared Statements.
- Immer die Eingaben validieren (First Line of Defense).
- Vermeiden, SQL-Quelltext direkt an den Server zu senden.
Welche vier Integritätsbedingungen gibt es in Datenbanken und wie werden sie sichergestellt?
Bereichsintegrität:
* Attribute sind nur gültig, sofern sie einen bestimmten Wertebereich haben.
* Sicherstellung: Datentypen der Attribute.
Entitätsintegrität:
* Jeder Datensatz ist eindeutig definiert.
* Sicherstellung: Primärschlüssel.
Referentielle Integrität:
* Beziehungen zwischen Tabellen müssen synchronisiert bleiben.
* Sicherstellung: Fremdschlüssel.
Benutzerdefinierte Integrität:
* Benutzerdefinierte Regeln müssen eingehalten werden.