name:
  de: Datenbankprogrammierung mit PL/SQL
 
instructor:
  de: Prof. Dr. Thomas Heimrich
 
id:
  value: Analysis

goal: 
  de: |
      Die Studierenden sollen in der Lage sein,

      * gespeicherte Prozeduren (Stored Procedures) und nutzerdefinierte Funktionen zu erstellen und zu nutzen
      * eigene PL/SQL Funktionen in select-Anfragen anzuwenden
      * Datenbanktrigger zu erzeugen und zu nutzen
      * gespeicherte Prozeduren und Funktionen in Java-Anwendungen zu verwenden

content: 
  de: |
    1. Ausführbare Anweisungen erstellen
      - Lexikalische Einheiten in PL/SQL-Blöcken identifizieren
      - Built In-SQL-Funktionen in PL/SQL verwenden
      - Verschachtelte Blöcke erstellen und Variablen mit Labels kennzeichnen
      - Lesbaren Code mit entsprechender Einrückung erstellen
      - Sequences in PL/SQL-Ausdrücken verwenden
    2. Kontrollstrukturen erstellen
      - IF-Anweisungen erstellen
      - CASE-Anweisungen und CASE-Ausdrücke verwenden
      - Schleifenanweisungen erstellen und identifizieren
      - Richtlinien für bedingte Kontrollstrukturen anwenden
    3. Stored Procedures und Stored Functions erstellen
      - Zwischen anonymen Blöcken und Unterprogrammen unterscheiden
      - Einfache Prozeduren erstellen und mit anonymen Blöcken aufrufen
      - Einfache Funktionen erstellen
      - Einfache Funktionen erstellen, die Parameter annehmen
      - Zwischen Prozeduren und Funktionen unterscheiden
      - Fehlerbehandlung
    <!-- tablebreak -->
    4. Funktionen erstellen
      - Zwischen Prozeduren und Funktionen unterscheiden
      - Verwendungsmöglichkeiten von Funktionen beschreiben
      - Stored Functions erstellen
      - Funktionen aufrufen
      - Funktionen entfernen
    5. Dynamisches SQL
      - Ausführungsablauf von SQL-Anweisungen beschreiben
      - SQL-Anweisungen dynamisch mit nativem dynamischen SQL (NDS) erstellen und ausführen
      - Situationen erkennen, in denen an Stelle von NDS das DBMS_SQL-Package verwendet werden muss, um SQL-Anweisungen dynamisch zu erstellen und auszuführen
    6. Trigger erstellen
      - Datenbank-Trigger und ihre Verwendung beschreiben
      - Verschiedene Trigger-Typen beschreiben
      - Datenbank-Trigger erstellen
      - Regeln für das Auslösen von Triggern beschreiben
      - Datenbank-Trigger entfernen
      - Trigger-Informationen anzeigen
    7. PL/SQL in Java-Anwendungen nutzen
      - Aufruf von Stored Procedures und Functions aus Java mit Konvertierung der In- und Out-Parameter
      - Fehlerbehandlung und und Fehlerweiterleitung zwischen Oracle und Java


form-of-instruction:
  value: { 'lecture': 3, 'pc_lab': 1 }

teaching-material:
  de: |
    Den Studierenden wird zu Beginn der Veranstaltung ein umfangreicher Foliensatz mit weiterführenden Hinweisen zur Verfügung gestellt.

    Darüber hinaus ist folgende Literatur empfehlenswert (jeweils in der neuesten Auflage):

      - Jürgen Sieben: „Oracle PL/SQL: Das umfassende Handbuch für Datenbankentwickler"
      - Boobal Ganesan: „Advaced PLSQL Programming: The Definitive Reference"

author-of-indenture: 
  de: 

used-in:
  de: |
    Das Modul ist im Bachelorstudiengang „Verwaltungsinformatik/E-Government" ein Pflichtmodul, in den Bachelorstudiengängen „Informatik" und „Wirtschaftsinformatik & Digitale Transformation" ein Wahlpflichtmodul.

    Ferner ist eine Verwendung in anderen Studiengängen möglich, in denen vertiefte Kenntnisse zu Datenbanksystemen vermittelt werden müssen.

prerequisites:
  de: |
    Formelle Voraussetzungen bestehen nicht.

    Inhaltliche Voraussetzung ist das Modul „Datenbanksysteme".

workload:
  de: >
    Kontaktzeit/Präsenzstudium: 60 Stunden; Selbststudium: 60 Stunden; Prüfung und Prüfungsvorbereitung: 30 Stunden

credits: 
  value: 5

form-of-exam: 
  value: written
  spec:
    de: "Klausur von 90min"

term:
  value: 4

frequency:
  value: once_per_year

duration:
  value: 1

kind:
  value: compulsory

remarks:
  de: 

notes:
  de: