- Ausführliche Betrachtung von NULL
- NULL und die dreiwertige Logik, TRUE, FALSE, UNKNOWN
- NULLs sind gleich, NULLs sind nicht gleich
- NULL und COALESCE
- Die Restriktion, WHERE-Klausel
- Die Projektion, DISTINCT
- Die weiterführenden Join-Operationen LEFT OUTER, RIGHT OUTER, FULL OUTER
- Operationen mit UNION, INTERSECT, EXCEPT bzw. MINUS (Oracle)
- Die Summarize-Operation, Varianten der Implementierung und Performance
- Die Relationale Division, die performante Implementierung ohne EXISTS-Subqueries
- Hierarchische und Rekursive Queries
Strukturiertes Schreiben von SELECT-Anweisungen
- Nested Table Expression
- Common Table Expression / Subquery Factoring Clause
- Die WITH-Klausel
Die SELECT-Anweisung und Subqueries:
- Nicht korrelierte und korrelierte Subqueries
- Subquery und WHERE-Klausel ohne bzw. mit IN bzw. mit EXISTS
- Subquery und SELECT-Klausel
- Subquery und FROM-Klausel
- CROSS APPLY bzw. OUTER APPLY (Microsoft SQL Server, ORACLE)
- INNER JOIN TABLE bzw. LEFT OUTER JOIN TABLE (DB2)
Transaktion und Concurrency
- Die ACID Eigenschaften einer Transaktion
- Atomicity, Consistency, Isolation, Durability
- Concurrency und der Isolation-Level
- READ UNCOMMITED, READ COMMITED, REPEATABLE READ, SERIALIZABLE
- Der schmutzige Read
- Die inkonsistente Analyse
- Der verlorene Update
- Warum ist Ihr Ergebnis nicht korrekt?
Performancebetrachtungen
- Warum ist Ihre SELECT-Anweisung nicht performant?
- Möglichkeiten der Optimierung
- Welcher Index muss generiert werden?
- Vermeiden Sie Expressions in der WHERE-Klausel!
- Logisch äquivalente SELECT-Anweisungen, aber ihre Performance ist verschieden!
- Wie schlau ist der Optimizer Ihres Systems?
- Welche Variante ist performanter?
Fallstudie zur Summarize-Operation mit COUNT und SUM
- Eine fachliche Anforderung und acht verschiedene Lösungen
- Welche der Lösungen ist die performanteste?
- Welche der Lösungen liefert in 8 Sekunden, welche in 80 Sekunden?
Fallstudie zur Summarize-Operation mit MAX
- Eine fachliche Anforderung und viele verschiedene Lösunge
- Welche der Lösungen ist die performanteste?
- Unter gewissen Voraussetzugen liefern die Lösungen mit TOP 1 bzw. FETCH FIRST 1 ROW ONLY in 10 Millisekunden und nicht in 2000 Millisekunden
Ausblick
MethodeVortrag, Demonstration, Diskussion, Praktikum am System. Für das Praktikum, in dem Sie das Erlernte ausprobieren und festigen können, stehen als Datenbanksysteme wahlweise DB2, Oracle und SQL Server zur Verfügung.