Vorlesung im Herbsttrimester 2004

Datenbanken I

Mark Minas


Termin: Donnerstag, 10:05 - 11:35 Uhr, Rm. 33/3201
erster Termin:7. Oktober 2004

Pflichtveranstaltung im Studiengang Informatik im 7. Trimester (Praktische Informatik)


Überblick

Datenbanksysteme gehören - neben Textverarbeitungsprogrammen - zu den am weitesten verbreiteten und am häufigsten eingesetzten Standardsoftwarepaketen. Ein Grundverständnis der Konzepte und Komponenten von Datenbanksystemen ist deshalb nicht nur für den Informatiker, sondern auch für Studenten anderer Fakultäten von großer Bedeutung. Die Vorlesung Datenbanken I setzt folgende Schwerpunkte:

  • Grundkonzepte und Schichtenarchitekturen von Datenbanksystemen
  • Datenbankmodelle im überblick (Entity-Relationship-Modell, relationales Modell, Netzwerkmodelle, OO-Modelle)
  • relationaler Datenbankentwurf (funktionale Abhängigkeiten, Normalformen, etc.)
  • relationale Datenbanksprachen (SQL)
  • weiterführende Konzepte (Sichten, Transaktionen, Integritätsbedingungen)

Folien

PDF-Datei mit allen Vorlesungsfolien: [pdf]


Übungen

  • Übung 1 zum Thema Modellierung mit dem Entity-Relationship-Modell [pdf]
  • Übung 2 zum Thema SQL und PostgreSQL [pdf].
    Lesen Sie dazu auch die Information zu PostgreSQL auf dem argonaut

Literatur

  1. ANSI/ISO/IEC International Standard (IS): Database Language SQL, September 1999
  2. A. Heuer, G. Saake, Datenbanken - Konzepte und Sprachen, MITP-Verlag, 2. Nachdruck (1997)
  3. J. Janas. Datenbanksysteme, Vorlesungsskriptum Universität der Bundeswehr München (FT 2001)
  4. G. Matthiessen, M. Unterstein. Relationale Datenbanken und SQL, 2., aktualisierte Auflage, Addison-Wesley 2000
  5. D. Rolland. Datenbanksysteme im Klartext, Prentice Hall / Pearson Studium 2003
  6. R. Elmasri, S.B. Navathe. Grundlagen von Datenbanksystemen, 3., Überarbeitete Auflage, Addison-Wesley / Pearson Studium 2002

Vorlesung im Herbsttrimester 2004

Datenbanken I

PostgreSQL


Für jeden Teilnehmer an der Vorlesung ist auf dem Rechner argonaut.informatik.unibw-muenchen.de (Linux-System> ein Account eingerichtet. Die Zugangsdaten sind jedem per E-Mail zugegangen.

Zum Einloggen in die Homeverzeichnisse

(auf argonaut.informatik.unibw-muenchen.de) wird SSH benötigt. Für Windows eignet sich dieser Client, da er neben dem Terminallogin auch eine Dateitransferumgebung bereitstellt. Für Unix-Systeme bietet sich OpenSSH an.

PostgreSQL

Als Datenbankmanagementsystem steht PostgreSQL zur Verfügung. PostgreSQL kann gleichzeitig mehrere unabhängige Datenbanken verwalten und verschiedene Benutzer unterscheiden. Für jeden Teilnehmer gibt es auf argonaut einen PostgreSQL-Benutzer und eine PostgreSQL-Datenbank. Der verwendete User- und Datenbank-Name ist mit dem Login-Namen identisch.

Die Datenbank kann mit der textuellen Shell psql genutzt werden, d.h., nach dem Einloggen auf argonaut gibt man in der textuellen Shell das Kommando psql ein und befindet sich dann im interaktiven Kommandomodus von psql und damit in der "eigenem" Datenbank. Am Bildschirm ist dann folgendes zu sehen:

db10@argonaut:~" psql

Welcome to psql 7.3.4, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms

 \h for help with SQL commands

 \? for help on internal slash commands

 \g or terminate with semicolon to execute query

 \q to quit

db10=>

Nach dem Prompt (hier db10=>) können SQL-Befehle und administrative Befehle an psql abgesetzt werden.

  • SQL-Befehle können sich über mehrere Zeilen erstrecken, die auch mit der Return umgebrochen werden k?nnen. Ein SQL-Befehl wird erst durch ein (Nicht vergessen!!) Semikolon (und natürlich einem anschließenden Return) abgeschlossen.

  • Die wichtigsten administrativen psql-Befehle werden von psql unmittelbar nach dem Aufruf genannt:

    • Verlassen von psql durch \q

      Nach dem Verlassen von psql bleibt (natürlich) der Datenbankinhalt erhalten, den man durch erneutes Starten von psql also unverändert vorfindet. Sogar die Historie der zuvor abgesetzten Befehle an psql bleibt erhalten. Mit den Cursortasten kann man durch diese hindurchblättern.

    • Auflisten aller psql-Befehle mit \?

    • Auflisten aller SQL-Befehle mit \h

    • Auflisten aller Tabellen etc. mit \d

    • Beschreibung einer Tabelle mit Namen xyz mit \d xyz.

    • Wenn in einer Textdatei file eine Datenbankbeschreibung etc. in Form mehrerer aufeinanderfolgender SQL-Anweisungen enthalten ist, kann mit \i file diese Datei eingelesen werden, wobei die enthaltenen SQL-Befehle unmittelbar ausgeführt werden.

Zuletzt sei noch auf die PostgreSQL-Dokumentation verwiesen, die auch eine ausführlichere Beschreibung von psql, aber natürlich auch den SQL-Sprachumfang von PostgreSQL beinhaltet.