Uni Göttingen
Institute for Informatics
Databases and Information Systems

dbis

Datenbankpraktikum SQL
Sommer 2020

Veranstalter:
Prof. Dr. Wolfgang May,
Lars Runge, M.Sc., Sebastian Schrage, M.Sc.

Termin

Zulassungsvoraussetzung:

  • Informatiker: Bestehen der Klausur "Datenbanken" sowie des "Allgemeinen Programmierpraktikums".
  • Nebenfach-Studierende: Bestehen der Klausur "Datenbanken", Grundkenntnisse in Programmierung.
  • Studienortwechsler: äquivalente Kenntnisse (nachzuweisen) in Datenbanken und Programmierung.

Anrechenbarkeit:
BSc Angewandte Informatik: 5 ECTS
MSc Angewandte Informatik: 5 ECTS, nur mit Studienplan/Votum des Mentors anrechenbar
BSc Wirtschaftsinformatik: 5 ECTS
BSc/MSc alle anderen (soweit ich weiss - klären Sie das mit Ihrem Studiendekan/Studienberatung): 5 ECTS

Aufbau des SQL-Praktikums:

In dem Praktikum wird SQL in aufeinander aufbauenden Unterrichtseinheiten vermittelt und angewendet. Das Praktikum wird gruppenweise von jeweils 4 Studenten durchgeführt.

Das Praktikum besteht aus 8 "Versuchen". Zu jedem Versuch werden in einer Vorlesungseinheit die entsprechenden SQL-Konzepte vorgestellt und ein Aufgabenblatt ausgegeben. Die Lösungen werden dann gemeinsam mit einem Tutor besprochen. Weitere Termine kann jede Gruppe separat mit ihrem Tutor vereinbaren.

Themen: ER-Modellierung, Schemaerzeugung, Anfragen, Views, Updates, Referentielle Integrität, Komplexe Attribute und Nested Tables, Trigger, PL/SQL, Objekt-relationale Erweiterungen, Indexing, Zugriffskontrolle, Embedded SQL, JDBC/SQLJ (Einbindung in Java), SQLX/XML.

Es wird die Geo-Datenbasis "Mondial" unter Oracle eingesetzt.

SQL-Anfragen an Mondial unter Oracle können hier gestellt werden.

Das Oracle-Web-Interface iSQL*Plus finden Sie hier.

Falls jemand ein eigenes Postgres mit Mondial auf dem eigenen Rechner unter Unix installieren will, gibt es hier eine Beschreibung [falls etwas nicht funktioniert, bitte Mail an mich]

(Voraussichtlicher) Zeitplan

Optionales Test-Online-Meeting
  • Montag, 20.4. 14ct-16 Uhr: Inoffizielles online-Test-Meeting (auf Englisch, es nutzt den Zeitslot der Vorlesung "Semistructured Data and XML") mit dem BBB-Tool (einloggen via StudIP SQL-Praktikum->Meetings->reingehen), bei dem das DBIS-Team anwesend ist und Fragen beantworten kann.
Teil 1: Basics
  • Mi, 22.4.   14 Uhr c.t., Online in BBB, einloggen via StudIP.
    Dieser Termin ist für alle Teilnehmer am Praktikum verbindlich (u.a. Account-Vergabe, Gruppeneinteilung).
    Wir treffen uns in dem BBB-Meetingraum, ausserdem sollen alle Teilnehmer in den Rocket-Chat-Channel "dbis" gehen. Dort machen wir dann auch die Gruppeneinteilung und die Passwortvergabe.
    • Für jede Gruppe gibt es in StudIP unter Meetings einen Raum Diese sind nicht irgendwie privat. Man kann sich also dort auch mit anderen Teilnehmern des SQL-P treffen. Sie können aber mit Meet auch eigene Räume einrichten.
    • Für jede Gruppe ist im RocketChat ein Channel sqlp-gruppen eingerichtet (privat, nur die Gruppenteilnehmer jnd die Betreuer inkl. Gunnar Krull)
    0. Versuch: Einführung
    Einführung in das UNIX/Oracle-System, Vorstellung der MONDIAL-Datenbasis und ihres ER-Modells,

    1. Versuch: Einfache Anfragen.
    Umsetzung in das relationale Modell, ORACLE Data Dictionary, SQL-Anfragebefehle.
    Aufgaben: Anfragen an die MONDIAL-Datenbasis.
    Besprechung bis 8.5.

  • 29.4. - 2. Versuch: Erstellen und Unterhalten einer Datenbank.
    SQL-Befehle zur Schemaerzeugung, Views, Einfügen, Löschen und Verändern von Daten, DATE-Datentyp, Objekttypen: komplexe Attributtypen (Geschachtelte Tabellen: ignore).
    Aufgaben: Ergänzungen zum Datenbankschema, Datentypen.
    Besprechung bis 22.5.
Teil 2: Dies + Das
  • 6.5. - 3. Versuch: Updates, Schemaänderungen, Referentielle Integrität; Mehrbenutzerbetrieb.
    Schemaänderungen, Referentielle Integrität, View Updates; Zugriffskontrolle, Rechtevergabe.
    Besprechung bis 5.6.
  • 13.5. kein Kurstermin
  • 20.5. kein Kurstermin
  • (21.5. Chr. Himmelfahrt)
Teil 3: Prozedurale Konzepte, Objektrelationale Features, Anbindung an Programmiersprachen
  • 27.5. - 4. Versuch: PL/SQL, Prozeduren, Funktionen, Trigger.
    PL/SQL, Prozeduren, Funktionen, Trigger.
    Besprechung bis 19.6.
  • 10.6. - 5. Versuch: Objektorientierung in Oracle
    Objektrelationale und Objektrelationale Features in SQL, Objekt-Views.
    Besprechung bis 3.7.
  • 17.6. kein Kurstermin
  • 24.6. - 6. Versuch: Einbettung in Java.
    JDBC, SQLJ: Datenbankzugriff mit Java.
    Besprechung bis 17.7.
  • 3.7. kein Kurstermin
  • Anmeldung in FlexNow bis ???
SQL und XML (freiwillig).
  • 8.7. - 7. Versuch: SQLX: SQL und XML-Datentypen
    (in dem Kurs wird eine kurze Einführung in XML gegeben, und gezeigt, wie XML-Daten mit relationalen Daten kombiniert und innerhalb von SQL verarbeitet werden können).
    Besprechung optional.
  • Vorlesungsende: 17.7.2020

Dokumente

Einführung in SQL

  • 22.4.: SQL-Anfragen
  • 29.4.: Schemaerzeugung, Views, Einfügen, Löschen und Ändern von Daten, DATE-Datentyp, Oracle-8-Objekttypen: komplexe Attributtypen und geschachtelte Tabellen.
  • 6.5.: Schemaänderungen, Referentielle Integrität und View Updates; Zugriffskontrolle, Zugriffsrechte, Optimierung.
  • 27.5.: PL/SQL: Prozeduren, Funktionen, Trigger.
  • 10.6.: Objekt-Relationale Features.
  • 24.6.: Embedded SQL, JDBC.
  • 8.7.: zu SQLX gibt es kein Skript.

Folien

  • 22.4.: Einführung
  • 22.4.: Abbildung des ER-Modells auf das relationale Modell
  • 22.4.: SQL-Anfragen
  • 29.4.: Schemaerzeugung, Views, Einfügen, Löschen und Ändern von Daten, DATE-Datentyp, Oracle-8-Objekttypen: komplexe Attributtypen und geschachtelte Tabellen.
  • 6.5.: Schemaänderungen, Referentielle Integrität und View Updates; Zugriffskontrolle, Zugriffsrechte, Optimierung.
  • 27.5.: PL/SQL: Prozeduren, Funktionen, Trigger.
  • 27.5.: Non-deterministic functions in constrains.
  • 10.6.: Objekt-relationale Features.
  • 24.6.: Embedded SQL, JDBC, SQLJ.
  • optional: 4.7.: XML und SQLX.

Beispielprogramme (siehe Folien)

Aufgaben

Links

Software

  • Das Datenbanksystem Oracle und zugehörige Client-Software kann auf verschiedenen Betriebssystemen installiert werden.
  • Oracle Instant Client: SQL*Plus und JDBC.
  • SQL Developer auf dem eigenen Rechner installieren: Download, Konfiguration wie unten für den CIP-Pool beschrieben.
  • SQL Developer im CIP-Pool:
    (man sollte sich nicht von zuhause im CIP-Pool einloggen und dort den Developer starten und per X-forwarding aufs heimische Linux schicken, das ist sehr langsam)
       /afs/informatik.uni-goettingen.de/group/dbis/public/sqldeveloper/sqldeveloper.sh  
    aufrufen (oder in den Pfad legen).
    Wenn Nachfragen wegen "migrate ..." oder so kommen: yes und ok.
    Im linken Fenster erscheint "Connections". Maus drauf, rechte Maustaste, "New Connections".
    Jetzt kann man entweder mit den Voreinstellungen spielen (oracle.informatik.uni-goettingen.de, Port: 1521, sid: dbis), einen (beliebigen) connection name setzen, username und passwd eingeben.
    Oder -einfacher- auf TNS klicken, Pull-down Menu "Network Alias" öffnen, "DBIS" benutzen; (beliebigen) connection name setzen, username und passwd eingeben.

Literatur

  • Klassiker zu SQL-2:
    • Lehrbuch zu SQL (In Deutsch):
      Matthiessen, Günter; Unterstein, Michael: Relationale Datenbanken und SQL: Konzepte der Entwicklung und Anwendung. Addison-Wesley, 2003.
    • Das Buch zum SQL-92 Standard:
      H. Darwen and C. Date: SQL - Der Standard. Addison-Wesley, 1998.
  • Zu Oracle:
    • U. Hohenstein, V. Pleßer: Oracle 9i: Effiziente Anwendungsentwicklung mit objektrelationalen Konzepten. dpunkt-Verlag, 2002.
  • JDBC:
    • S. White, M. Fisher, R. Cattell, G. Hamilton, M. Hapner: JDBC API Tutorial and Reference: Universal Data Access for the Java 2 Platform. Addison-Wesley, 1999.