Modulbeschreibungen

K0100 – SQL Basics

M0101 – Datenbanktheorie

Dieses Modul führt in die Thematik von Datenbanken und deren grundlegenden Begriffen und Konzepten ein. Es werden Fragen beantwortet, was eine Datenbank ist, aus welchen Komponenten sie besteht, etc. Weiterhin wird auf grundlegende relationale Konzepte eingegangen, wie z.B. Schlüssel (Primär, Fremd), Beziehungen (1:1, 1:n, n:m), Foreign-Key-Constraints, Normalisierung, Transaktionen.

Dauer: 2,00h

 

M0102 – DML + DDL

Dieses Modul behandelt das Erstellen von Datenbankstrukturen (DDL) und weiterhin das Manipulieren von Daten (DML). Themen dabei sind das Erstellen von Tabellen, Constraints, etc. und das Einfügen, Ändern und Löschen von Datensätzen.

Dauer: 7,00h

 

M0103 – Einfache Abfragen erstellen

In diesem Modul werden Abfragen auf eine Tabelle eingeführt. Es wird gezeigt, wie man die Tabelle auswählt (FROM), wie  man Spalten selektiert (SELECT) und Filterbedingungen (WHERE) formuliert. Darüber hinaus wird gezeigt, wie man mit Berechnungen noch  mehr aus seinen Daten rausholen kann. Dabei werden auch verschiedene vordefinierte Funktionen vorgestellt, um Daten zu konvertieren, mit Zeichenketten und Datumsspalten zu arbeiten, etc. Als letztes wird noch gezeigt, wie man die Ergebnisse sortieren kann (ORDER BY). Am Ende dieses Modul kann der Teilnehmer einfache Abfragen auf eine Tabelle erstellen und die Daten mit Hilfe von Berechnungen und Filtern entsprechend aufbereiten.

Dauer: 5,00h

M0104  – Mehrere Tabellen abfragen (Joins)

In der Regel befinden sich die Daten in mehr als einer Tabelle. Damit man diese Daten zusammen auswerten kann, müssen die Tabellen miteinander verknüpft werden. Dort gibt es verschiedene Möglichkeiten (INNER JOIN, OUTER JOIN, FULL JOIN, Kreuzprodukt, …). Diese werden in diesem Modul detailliert vorgestellt. Es stehen zahlreiche Übungen + Aufgaben zur Vertiefung zur Verfügung.

Dauer: 5,00h

 

M0105 – Aggregation & Gruppierung

Manchmal hat man es mit vielen Tausenden oder Millionen Einzeldatensätzen zu tun. Da man diese nur schwer so auswerten kann, werden diese Einzeldatensätze zu einigen wenigen zusammengefasst, man sagt auch aggregiert. Z.B. kann ein Einzelhändler an einem Tag in vielen einzelnen Verkäufen verschiedene Produkte verkauft haben. Er möchte aber nur eine Liste haben, in der jedes Produkt einmal auftaucht mit der Summe der verkauften Stück. Dieses erreicht man über eine Gruppierung und Aggregation. Diese beiden Themen sind der Inhalt dieses Moduls.

Dauer: 5,00h

 

M0106 – Unterabfragen

Mit Hilfe von Unterabfragen ist es möglich, andere Abfragen wieder zu verwenden. Man benötigt diese Technik für komplexe Berechnungen, z.B.

  • Anteil Produktumsatz am Gesamtumsatz
  • Vergleich und Abweichung zwischen Umsätzen zweier Monate
  • Verschachtelte komplexe Berechnungen

Diese Unterabfragen können an verschiedenen Stellen verwendet werden, z.B. als Tabellenersatz in der FROM Klausel, in der WHERE Klausel, im SELECT. Des Weiteren finden Unterabfragen auch DML Operationen ihren Einsatz. Darüber hinaus wird in diesem Modul auch auf das Konzept einer View eingegangen.

Dauer: 8,00h

 

M0107 – Mengenoperationen

Mengenoperationen (SETs) sind angelehnt an die Mengenalgebra der Mathematik. Man nehme zwei Ergebnismengen (d.h. Ergebnisse zweier Abfragen) und wenn diese strukturgleich sind (gleiche Anzahl und Typ der Spalten), kann man folgende Mengenoperationen durchführen:

  • Vereinigungsmenge (UNION & UNION ALL)
  • Schnittmenge (INTERSECT)
  • Differenzmenge (MINUS)

Dauer: 2,00h

 

K0200 – SQL Advanced

M0201 – Analytische Funktionen

Die analytischen Funktionen sind ein sehr mächtiges Werkzeug, welches in modernen Datenbanken zur Verfügung steht und die OLAP-ähnliche Funktionalitäten ermöglicht. Im Prinzip kann man damit pro Abfrage mehrere Funktionen (SUM, AVG, …..) verwenden, für die man jeweils eine Art Gruppierung festlegt. Das heißt man kann z.B. in einer Spalte eine Gesamtsumme berechnen lassen und in einer anderen Spalte die Summe pro Produkt. Dafür benötigt man dann keine Unterabfrage mehr, was zum einen das Statement deutlich kürzer und übersichtlicher werden lässt und zum anderen auch zu einer höheren Performance führt, da nicht mehrfach auf Tabellen zugegriffen werden muss. Darüber hinaus können auch rollierende Fenster definiert werden. Somit kann man mit relativ wenig Code z.B. kumulierte Summen (von Jan bis akt. Monat) berechnen lassen oder zu einem Monatsumsatz immer die Summe der letzten drei Monate. Meiner Meinung nach ist diese Modul das allerwichtigste aus dem Advanced Kurs und gleichermaßen interessant sowohl für ETL-/DWH-Entwickler als auch für Datenanalysten.

Dauer: 10,00h

 

M0202 – Erweiterte Aggregationen

Mit der normalen Gruppierung kann pro Abfrage nur eine Gruppierungsdefinition angegeben werden und somit z.B. auch nur Summen auf einer Ebene definiert werden. Mit Hilfe der erweiterten Gruppierungsmethoden (ROLLUP, CUBE, GROUPING SETS) können innerhalb einer Abfrage auch mehrere Summen auf verschiedenen Gruppierungsebenen generiert werden. Um mit den generierten Summen arbeiten zu können, gibt es noch drei Funktionen Grouping_ID, Grouping und GROUP_ID, die ebenfalls in diesem Modul behandelt werden.

Dauer: 5,00h

 

M0203 – Verschiedenes

Dieses Modul beinhaltet verschiedene kleinere Themen. Dazu gehören die Funktionen PIVOT/UNPIVOT mit denen man aus Zeilen Spalten generieren kann und umgekehrt. Des Weiteren Möglichkeiten, wie man mit regulären Ausdrücken arbeiten kann, hierarchische Abfragen und Subquery-Factoring mit Hilfe des WITH Statements.
Dauer: 2,00h

 

M0204 – Grundlagen Performanceoptimierung

Dieses Modul ist eine Einführung in das Thema Performanceoptimierung von SQL Statements. In einem ersten Abschnitt werden dabei verschiedene Begrifflichkeiten und Konzepte aus dem Themenfeld der Performanceoptimierung vorgestellt, z.B. Optimizer, Kosten, Statistiken, Ausführungspläne, etc. Daneben werden auch grundlegende Möglichkeiten des physischen Designs vorgestellt (Index, Materialized Views, Partitionierung). Zu guter Letzt werden auch Regeln vorgestellt, was man beim Schreiben von SQL Statements nicht machen sollte bzw. unbedingt machen sollte. Das Ganze wird anhand zahlreicher Übungen und Aufgaben vertieft.

Dauer: 5,00h

 

K0300 – MDX Grundlagen

M0301 – Grundlagen MDX & Datenbanken

Dieses Modul stellt verschiedene Begrifflichkeiten und Konzepte aus dem Datenbankenbereich vor. Angefangen bei den Basics, was eine Datenbank ist, worin sich Ansätze wie ROLAP, MOLAP und HOLAP unterscheiden, bis hin zu den MDX spezifischen Begrifflichkeiten, wie z.B. Tupel, Member, Sets, ….

Dauer: 3,00h

M0302 – Selektion der Daten

In diesem Modul lernen Sie, wie Sie Daten mit Hilfe von MDX selektieren können. Das umfasst die Auswahl von Membern (Elemente in einer Dimension), Tupeln (Fakten) und Sets (Zusammenstellung von Membern) sowie die Navigation in Hierarchien. Ein weiteres Thema sind die Erstellung von Berechnungen und Verwendung von Funktionen. Daten zu filtern und zu sortieren stellt den letzten Bereich dieses Modul dar.

Dauer: 8,00h

M0303 – Berechnete Member & Sets

In der MDX ist es möglich Member (Elemente einer Dimension) und Sets (Zusammenstellung von Membern) nicht nur statisch, sondern auch dynamisch zusammenzustellen und zu berechnen. Das wird in diesem Kapitel gezeigt.

Dauer: 3,00h

M0304 – Verschiedenes

Dieses Modul beinhaltet verschiedene fortgeschrittenere Techniken. Dazu gehören die sog. Mengenoperationen (UNION, INTERSECT, MINUS), semiadditive Measures und das Kreuzen von Member Sets.

Dauer: 4,00h

M0305 – Ergänzungen & Kursworkshop

Dieses Kapitel beinhaltet noch viele weitere Übungen zu allen anderen Modulen, außerdem eine große Fallstudie, die auch nochmal alle vorgestellten Datenmodell wiederholt.

Dauer: 4,00h

 

K0400 – Datenmodellierung

M0401 – Grundlagen Datenmodellierung

In diesem Modul werden Begrifflichkeiten und Grundlagen vermittelt, die notwendig sind, um die verschiedenen Datenmodellierungstechniken zu verstehen und anwenden zu können. Dabei wird grundlegend erst einmal der Softwareentwicklungsprozess im Datenbankumfeld definiert und Begrifflichkeiten wie Beziehungen, Kardinalitäten, Schlüssel, etc. Weiterhin wird noch vertieft auf das Thema Anforderungen eingegangen, da gute Anforderungen die wichtigste Voraussetzung für gute Datenmodelle sind.

Dauer: 4,00h

M0402 – Relationales Modell (3NF)

Dieses Modul vermittelt das Wissen, um ein sog. Relationales Datenbankmodell erstellen zu können. Dieser Modeltyp ist quasi der Standard für operative Systeme (OLTP), d.h. für Datenbanken, in denen direkt Daten eingegeben werden (Buchhaltung, Verwaltungsprogramme, Warenwirtschaft, etc.). Im Rahmen dessen werden verschiedene Modellierungsebenen beschrieben (konzeptionell, logisch, physisch), der Normalisierungsprozess wird erklärt und überhaupt wie man konkret von einer Anforderung zu einem Modell in 3. Normalform (3NF) kommt. Dieses Modul ist empfehlenswert für alle, die noch über keinerlei Wissen im Bereich Datenbankmodellierung verfügen.

Dauer: 8,00h

M0403 – Star Schema

Ein Star Schema ist ein spezielles Modell, das vor allem im Datawarehouse & Reporting Umfeld verwendet wird, um die Erstellung von Berichten zu vereinfachen und zu optimieren. Dieses Modul beschreibt zunächst die Unterschiede im Vergleich zum relationalen Modell und die Vorteile dieses Modells für bestimmte Anwendungsfälle. Grundlegende Begriffe wie z.B. Dimensionen, Fakten, Datamart, etc. werden vorgestellt. Es werden alle relevanten Askpekte dieses Modeltyps gezeigt (Faktentabellentypen, Historisierung, Bridge Tabellen, Abbildung von n:m Beziehungen, Rekursive Hierarchien). Darüber hinaus wird auch auf spezielle Aspekte wie z.B. JUNK-Dimensions, Outtrigger-Dimensions, etc. eingegangen.

Dauer: 12,00h

M0404 – Data Vault

Ein relativ neuer Modellierungsansatz ist das sog. Data Vault Modell. Dieses ist so entworfen worden, dass es sehr leicht erweiterbar ist und das Tabellenbefüllungen gut parallelisiert werden können. Deshalb findet man dieses Modell vor allem im Bereich von Integrations-Datenbanken oder Core DWH Datenbanken. Es werden zunächst Unterschiede zu den anderen Modellen herausgearbeitet. Danach werden die Modellierungskonzepte (Hubs, Satellites, Links & References) dargestellt und an vielen Beispielen und Aufgaben geübt. Zu guter Letzt werden noch Beladungsgrundsätze und -strategien vorgestellt.

Dauer: 4,00h

M0405 – Ergänzungen & Kursworkshop

Dieses Kapitel beinhaltet noch viele weitere Übungen zu allen anderen Modulen, außerdem eine große Fallstudie, die auch nochmal alle vorgestellten Datenmodell wiederholt.

Dauer: 4,00h

 

K0500 – NoSQL Grundlagen

M0501 – NoSQL Grundlagen & Theorie

Dieses Modul beschreibt die grundlegenden Konzepte und Begrifflichkeiten im Bereich der NoSQL Datenbanken. Außerdem wird beschrieben, worin die Unterschiede zu den weit verbreiteten relationalen Datenbanken liegen. Weitere Konzepte/Begrifflichkeiten, die in diesem Modul beschrieben sind folgende: CAP Theorem, Replication, Sharding, Map Reduce Algorithmen, etc.

Dauer: 8,00h

M0502 – Key-/Value-Stores (Redis)

In diesem Modul werden die Key-Value-Datenbanken detaillierter am Beispiel von REDIS betrachtet. Anhand von Beispielen werden die grundlegenden CRUD Operationen demonstriert (Datensätze anlegen, verändern, löschen, etc.). Danach wird auf das Thema Map Reduce eingegangen und wie Daten auf mehreren Servern verteilt werden können. Außerdem werden mögliche Anwendungsszenarien für Key-Value-Datenbanken aufgezeigt.

Dauer: 8,00h

M0503 – Spaltenorientierte DBs (HBase)

In diesem Modul werden die spaltenorientierten Datenbanken detaillierter am Beispiel von HBase betrachtet. Anhand von Beispielen werden die grundlegenden CRUD Operationen demonstriert (Datensätze anlegen, verändern, löschen, etc.). Danach wird auf die Themen Column Families und Arbeiten mit sehr großen Datenmengen eingegangen. Außerdem werden mögliche Anwendungsszenarien für Key-Value-Datenbanken aufgezeigt.

Dauer: 8,00h

M0504 – Document DBs (MongoDB)

In diesem Modul werden die Dokumenten Datenbanken detaillierter am Beispiel von MongoDB vorgestellt. Anhand von Beispielen werden wieder die grundlegenden CRUD Operationen demonstriert (Datensätze anlegen, verändern, löschen, etc.). Danach wird auf die Themen JavaScript & JSON, Indexing, Grouping, MapReduce, GeoSpatial und GridFS eingegangen. Außerdem werden mögliche Anwendungsszenarien für Dokumenten Datenbanken aufgezeigt.

Dauer: 8,00h

M0505 – Graph DBs (Neo4J)

In diesem Modul werden die Graphen Datenbanken detaillierter am Beispiel von Neo4J betrachtet. Anhand von Beispielen werden wieder die grundlegenden CRUD Operationen demonstriert (Datensätze anlegen, verändern, löschen, etc.). Danach wird auf die Themen Graphen, Groovy und Fancy Algorithmen eingegangen. Außerdem werden mögliche Anwendungsszenarien für Graphen Datenbanken aufgezeigt.

Dauer: 8,00h

M0506 – Zusammenfassung & Workshop

Dieses ist das letzte Modul aus dem Kurs NoSQL und dient vor allem einer Zusammenfassung und abschließender Bewertung der einzelnen NoSQL Datenbanken. Es wird auf Vor- und Nachteile eines jeden einzelnen Systems und möglicher Anwendungsfälle eingegangen. Der Begriff polyglotte Persistenz spielt bei den NoSQL Datenbanken eine große Rolle und beschreibt, wie ein Zusammenspiel verschiedener Datenbanken aussehen kann. Das wird an einem modulübergreifenden Workshop noch einmal dargestellt.

Dauer: 8,00h

 

K0600 – SQL Tuning (Oracle)

M0601 – SQL Tuning Grundlagen & Theorie

Dieses Modul behandelt grundlegende Konzepte und Begrifflichkeiten über Datenbanken und Tuning. Dabei wird die Oracle Architektur (Tablespaces, Blöcke, SGA, PGA, …) vorgestellt und Tuning Begriffe (Optimizer, Kosten, Ausführungspläne, Zugriffsarten, Join-Methoden, Statistiken, Hints, …). Abgeschlossen wird dieses Modul mit der Beschreibung eines grundlegenden Ablaufs für das SQL Tuning.

Dauer: 4,00h

M0602 – Ausführungspläne

In diesem Modul beschäftigen Sie sich sehr detailliert mit Ausführungsplänen. Es wird erklärt, was genau in einem Ausführungsplan steht und wie man ihn liest. Außerdem lernen sie verschiedene Methoden kennen, um an die relevanten Ausführungspläne zu gelangen (Autotrace, TKProf, v$SQL View, …).

Dauer: 6,00h

M0603 – Statistiken

Dieses Modul erklärt im Detail, was Statistiken sind, wozu sie benötigt werden und wie man diese generiert. Außerdem wird an konkreten Beispielen gezeigt, was passiert, wenn die Statistiken nicht mehr aktuell sind. Darüber hinaus wird noch auf Histogramme und das Manipulieren von Statistiken und die Auswirkungen eingegangen.

Dauer: 6,00h

M0604 – DB Konstrukte zur Performancesteigerung

Dieses Modul behandelt verschiedene Datenbankobjekte, die in erster Linie zur Verbesserung der Performance eingesetzt werden. Dazu zählen:

  • Index (B-Tree, Bitmap, Functional, Bitmap Join, …)
  • Materialized Views (und View Logs)
  • Partitionierung (Range, List, Hash, Interval)

Es wird gezeigt, welche Konstrukte, in welchen Situationen helfen und wie man diese dann erstellt.

Dauer: 8,00h

M0605 – SQL Tuning

Das ist das eigentliche Herzstück dieses Kurses. Es wird gezeigt, in welchen Schritten zu performanten und ressourcenschonenden SQL Abfragen gelangt. Angefangen mit der Analyse des Ausführungsplans bis hin zur Umsetzung konkreter Maßnahmen wird in diesem Kapitel der gesamte Prozess beschrieben und an vielen praktischen Beispielen geübt.

Dauer: 12,00h

M0606 – Ergänzungen & Tuning Workshop

Dieses ist das letzte und abschließende Modul. Es werden noch kleinere Ergänzungen zu verschiedenen Themen geliefert und vor allem wird alles noch einmal an einem modulübergreifen Tuning Workshop geübt.

Dauer: 4,00h

 

K0700 – PL/SQL (Oracle)

M0701 – Einführung Datenbanken

Dieses Modul erklärt grundlegende Begriffe und Konzepte aus dem Umfeld von Datenbanken, SQL, PL/SQL und Programmiersprachen. Es dient als Einführung für Teilnehmer, die bisher noch nicht viel mit Datenbanken zu tun hatten.

Dauer: 3,00h

M0702 – Grundlagen PL/SQL

In diesem Modul werden die grundlegenden Konstrukte der Programmiersprache PL/SQL vorgestellt. Dazu gehören Grundlagen wie Variablen, Schleifen, Verzweigungen (If-Then-Else Konstrukte), Datentypen, Rechnen, Programmstruktur und Kompilieren/Ausführen von PL/SQL Programmen.

Dauer: 12,00h

M0703 – Stored Procedures & Funktionen

Dieses Modul beschreibt, wie man in PL/SQL Prozeduren, Funktionen und Packages erstellt. Dabei relevante sind verschiedene Arten der Parameterübergabe und -rückgabe. Außerdem wird noch erläutert, wie man Funktionen und Prozeduren aus eigenen SQL Abfragen aufrufen kann.

Dauer: 6,00h

M0704 – Cursor

Ein Cursor ist eine Datenstruktur, mit der man Datensätze eines Abfrageergebnisses durchlaufen kann. Cursor werden somit ständig in PL/SQL Programmen definiert und verwendet. Dieses Modul beschreibt alle Details dazu.

Dauer: 6,00h

M0705 – Exception Handling

Das Modul Exception Handling beschreibt, wie man mit Hilfe bestimmter Befehle Fehler abfangen kann und so behandeln kann, dass die PL/SQL Programme nicht einfach so abstürzen. Exception Handling gehört zu jeder modernen Programmiersprache und ist somit auch in PL/SQL Routinen anwendbar.

Dauer: 4,00h

M0706 – Trigger

Dieses Modul ist eine Erweiterung des Moduls M0703 – Stored Procedures & Funktionen. Trigger sind Proceduren, die an Tabellen definiert werden und bei Auftreten bestimmter Ereignisse (Insert, Update, Delete, …) ausgeführt werden.

Dauer: 6,00h

M0707 – Vordefinierte Packages

Oracle liefert in seinen Datenbanken verschiedene PL/SQL Packages mit, um den Entwickler bei verschiedenen Aufgabenstellungen zu unterstützen. In diesem Modul lernen sie wichtige Packages und die Möglichkeiten, die diese bieten, kennen. Folgende Packages werden behandelt:

  • UTL_FILE
  • DBMS_SCHEDULER
  • DBMS_JOB
  • DBMS_LOB
  • DBMS_ERRLOG

Dauer: 6,00h

M0708 – Typen von Arrays in PL/SQL

Dieses Modul behandelt weitergehende Datenstrukturen, z.B. Arrays, Nested Tables und VArrays. Außerdem werden noch fortgeschrittene Funktionen wie die Table-Functions und Pipelined Table-Functions vorgestellt.

Dauer: 6,00h

M0709 – Ergänzungen und Workshop

Dieses Modul stellt den Abschluss des Kurses dar. Es werden noch verschiedene kleinere Ergänzungen behandelt und ein modulübergreifender Workshop bereitgestellt.

Dauer: 5,00h