Datenmanagement

Werbung
Datenmanagement
SQL III: Komplexe Abfragen
Datenmanagement WS 09/10
SQL III – Łukasz Lis
Beispieldatenbank – ERM
Datenmanagement WS 09/10
1
SQL III – Łukasz Lis
Beispieldatenbank – Schema
Datenmanagement WS 09/10
2
SQL III – Łukasz Lis
Unterabfragen
Unterabfragen sind Datenbankabfragen, die in eine
andere SQL-Abfrage eingebettet werden (auch: nested
query, subquery)
Unterabfragen werden z. B. benötigt wenn
gleichzeitig über unterschiedliche Attributkombinationen aggregiert
werden muss,
ein numerischer Wert für eine Abfrage (z.B. einen Vergleich) aus
einer Tabelle ermittelt werden muss,
Datensätze einer Tabelle ausgegeben werden sollen, die nicht in
einer anderen Tabelle vorkommen (ohne IS NULL-Operator).
Nachteil: Unterabfragen werden von DBMS meist weniger
gut optimiert und sind dadurch häufig langsamer
Datenmanagement WS 09/10
3
SQL III – Łukasz Lis
Skalarunterabfragen
Eine Skalarunterabfrage wird verwendet, wenn ein
spezifischer Zahlenwert aus einer Tabelle ermittelt
werden soll
Für jede Änderung deren Zeitpunkt und die Abweichung
von der durchschnittlichen Anzahl geänderter Zeichen
ausgeben.
Datenmanagement WS 09/10
4
SQL III – Łukasz Lis
Spaltenunterabfrage
Spaltenunterabfragen geben genau eine Ergebnisspalte
mit n Ergebniszeilen (Datensätzen) zurück. Sie können
für Listenvergleiche mittels IN-Operator eingesetzt
werden.
Alle Änderungen des Nutzers „Bravo“ ausgeben.
Datenmanagement WS 09/10
5
SQL III – Łukasz Lis
Zeilenunterabfrage
Zeilenunterabfragen ermitteln genau einen Datensatz,
jedoch mehrere Attribute dieses Datensatzes.
Wurden in der letzten Änderung die meisten Zeichen
geändert?
Alle Änderungen des Nutzers mit der letzten
Rollenzuweisung ausgeben.
Datenmanagement WS 09/10
6
SQL III – Łukasz Lis
Tabellenunterabfrage
Tabellenunterabfragen ermitteln n Ergebniszeilen
(Datensätze) mit mehreren Attributen. Sie lassen sich
für z. B. Listenvergleiche über Wertekombinationen
einsetzen.
Alle Änderungen ausgeben, die während einer lokalen
Sitzung vorgenommen wurden.
Die durchschnittliche Anzahl der Änderungen eines
Dokuments im System ermitteln (Systemdurchschnitt).
Datenmanagement WS 09/10
7
SQL III – Łukasz Lis
Korellierte Unterabfragen
Korreliert sind solche Unterabfragen, bei denen die
Variablen der äußeren Abfrage in der Unterabfrage
verwendet werden.
Für jedes Dokument die maximale Anzahl an
geänderten Zeichen in einer einzelnen Änderung (die
größte Änderung) finden.
Zusätzlich jeweils den Nutzer ermitteln, der die
Änderung vorgenommen hat.
Datenmanagement WS 09/10
8
SQL III – Łukasz Lis
Views
Views sind Konstrukte, die einmal formulierte SELECTAnweisungen auf Datenbankebene persistieren
CREATE VIEW view_name AS select_expr;
Einmal definiert, können Views in Abfragen wie
originäre Tabellen verwendet werden
CREATE VIEW hallowelt AS SELECT * FROM …;
SELECT * FROM hallowelt;
Mit DROP VIEW können Views wieder gelöscht werden
Das Erstellen von Views erfordert spezielle Zugriffsrechte
Datenmanagement WS 09/10
9
SQL III – Łukasz Lis
Trigger
Trigger sind DML-Anweisungen, die abhängig von
bestimmten Ereignissen durch das DBMS automatisch
ausgeführt werden
CREATE TRIGGER trigger_name
trigger_time -- BEFORE oder AFTER
trigger_event –- INSERT, UPDATE oder DELETE
ON table_name
FOR EACH ROW trigger_statement;
Das Erstellen von Triggern erfordert spezielle Zugriffsrechte
Datenmanagement WS 09/10
10
SQL III – Łukasz Lis
Herunterladen