Uni Wien:Datenbanksysteme VO (Schikuta)

Aus VoWi
Wechseln zu: Navigation, Suche

Daten[Bearbeiten]

Inhalt[Bearbeiten]

Ziele gemäß Studienplan[Bearbeiten]

Die Studierenden erlernen die notwendigen Kenntnisse und Fähigkeiten Datenbanksysteme für die Erstellung von Anwendungssystemen einzusetzen, Datenbanken zu entwerfen und abzufragen und kennen die theoretischen Grundlagen der relationalen Datenbanken.

Themen[Bearbeiten]

Einführung und Motivation[Bearbeiten]

Relationales Modell[Bearbeiten]

  • Begriffe: Oberschlüssel, Schlüssel, Fremdschlüssel
  • ER-Digramm in Relationenschemata transformieren
  • Konzepte der Relationalalgebra
    • Vereinigung, Differenz, Durchschnitt, Division
    • Selektion, Theta-Selection
    • Projektion
    • Natural Join, Theta-Join, Semi-Join
    • Umbenennungsoperator

SQL - Structured Query Language[Bearbeiten]

  • Basic Syntax: SELECT, FROM, WHERE
  • Nested Subqueries: WHERE x (IN | NOT IN | < | >)
  • GROUP BY
  • NULL
  • JOIN-Syntax: INNER JOIN, (LEFT | RIGHT | FULL) OUTER JOIN
  • VIEWS
  • Tabellenmanipulation
    • CREATE, DROP, UPDATE
  • Datensätze einfügen / löschen / bearbeiten
    • INSERT INTO, DELETE FROM, UPDATE

Integrität und Sicherheit[Bearbeiten]

  • Welche Konzepte zur Erhaltung der Integrität gibt es (allgemein und in SQL)?
    • CONSTRAINTS: CHECK, PRIMARAY KEY, UNIQUE KEY, FOREIGN KEY
    • CASCADING: ON (DELETE | UPDATE) (CASCADE | SET NULL | SET DEFAULT)
    • TRANSAKTIONEN: COMMIT, ROLLBACK, BEGIN ATOMIC ... END
    • ASSERTIONS
    • TRIGGER
    • AUTHORISIERUNG, Rollen, Audit Trails

Formaler Datenbankentwurf[Bearbeiten]

  • Was sind Funktionale Abhängigkeiten?
    • volle Funktionale Abhängigkeit
    • prime & nicht-prime Attribute
    • Was ist die Hülle einer fkt. Abhängigkeit?
  • Algorithmus zum ermitteln aller Schlüsselkandidaten
  • Wie findet man die minimale Überdeckung einer Menge v. Funktionalen Abhängigkeiten?
  • Normalformen
    • 1NF, 2NF, 3NF, BCNF
    • Begriffe: Verbundtreu vs. Abhängigkeitstreu
    • 3NF-Synthesealgorithmus
    • Zerlegung in BCNF

Speicher-, File- und Index-Strukturen[Bearbeiten]

  • Wie werden Datenbanken physikalisch gespeichert?
    • Datensatzlänge fix
    • Variable Länge des Datensatzes
      • Fixe Längen-Repräsentation
  • Index-Strukturen
    • Begriffe: dichter Index, dünner Index, Multi-Level-Index
    • Indexmechanismen: Geordnete Indizes, Hash Indizes

Query Abarbeitung[Bearbeiten]

  • Ablauf: Query Parsing - Optimizing - Executing
  • Ablauf Optimierung: Kosten-Minimierung
    • Maße für Query-Kosten
  • einfache Kostenüberlegungen einzelner Operationen
    • SELECT-Operation
      • Linear-Search, Binary-Search,...
    • JOIN-Operationen
      • Nested-Loop-Join
      • Block-Nested-Loop-Join
      • Index-Nested-Loop-Join
      • Merge-Join
      • Hash-Join
  • einfache Kostenüberlegungen für ganze Queries
    • Begriffe: Materialisation Pipelining
    • Ausdruck-Baum abarbeiten

Query Optimierung[Bearbeiten]

  • Wie minimiert man die Kosten eines gegebenen Ausdruck-Baumes?
    • Ausführungsplan generieren
    • statistische Informationen des Datenbanksystems
    • einfache Regeln beachten für heuristische Optimierung

Transaktionen und Recovery[Bearbeiten]

Vorkenntnisse[Bearbeiten]

formale Voraussetzungen[Bearbeiten]

empfehlenswert[Bearbeiten]

  • Wenn man schon mal ein bisschen mit einer Datenbank gearbeitet hat, kann man sich vielleicht besser für die Themen motivieren.

Vortrag[Bearbeiten]

Prof. Schikuta[Bearbeiten]

  • Ja, also wenn man diese Vorlesung besucht, kennt man den Vortragsstil von Prof. Schikuta wahrscheinlich schon von EPROG und ALGODAT, ich kann mich deshalb nur wiederholen:

Wenn Prof. Schikuta die Vorlesung persönlich hält, muss man sich darauf gefasst machen, statt (oder manchmal zwischen) dem Stoff Geschichten aus seinen Erlebnissen in der IT-Branche zu hören, die meist interessant oder witzig sind (sollte man sie nicht schon 2x gehört haben). Für den Stoff bei DBS selbst helfen einem diese Geschichten eher selten weiter. Für die Motivation kann der Besuch dieser VO trotzdem dem einen oder anderen hilfreich sein. Nur nach Hören der Vorlesung von Prof. Schikuta die Prüfung zu machen, würde ich aber nicht empfehlen. Man sollte auf keinen Fall davor zurückschrecken, Fragen den Stoff betreffend zu stellen, da Prof. Schikuta neben seinem Talent zum Geschichtenerzählen ein kompetenter Mann ist und er selbst sagt, dass wir als Studenten viel zu wenig für unseren "Studienbeitrag" fordern.

  • Prof. Schikuta wechselt regelmäßig seine Füllwörter, weshalb man in langweiligen Stunden dazu übergehen kann, diese zu zählen:
    • WS07: "entsprechend" 40x bzw. 65x
      • CERN 23x

Prof. Wanek[Bearbeiten]

  • Aufgrund eines Skiurlaubs ;) von Prof. Schikuta vertrat ihn Prof. Wanek. Er trug Query-Optimierung vor. Wer Prof. Wanek kennt, kennt seine Kompetenzen und wenn man aufpasst, kann man tatsächlich etwas (zum Stoff) lernen. Zu diesem Thema gibt es auch einen sehr guten Thread mit Prof. Wanek in einem Forum (siehe unten).


Übungen[Bearbeiten]

  • Im selben Modul befindet sich eine Übung, die man am Besten gleichzeitig mit der Vorlesung besuchen sollte. Zwingend notwendig ist es nicht, aber sinnvoll, da man das in der VO behandelte praktisch umsetzen lernt.

Prüfung, Benotung[Bearbeiten]

  • Modus: entsprechend den alten Prüfungsangaben
  • Hilfsmittel: Keine.
  • Zeit: 2 Stunden (ausreichend, wenn man gelernt hat)
  • Benotung: In Ordnung
  • Es reicht im Prinzip aus, wenn man einmal die Folien durchgearbeitet hat und die restliche Zeit die alten Prüfungsfragen, die man auf der LV-Plattform findet, durchrechnet.

Zeitaufwand[Bearbeiten]

  • Man kann in 3-5 Tagen zu einem vernünftigem Durcharbeiten des Stoffs und der alten Prüfungsfragen kommen.

Literatur, Lernunterlagen[Bearbeiten]