[Stand: 28.11.2012]

Vorlesung mit Übung 184.229 (VU 4.0) im WS 2012/2013

Datenbank-basiertes Web Engineering

Beachten Sie auch die Informationen im TISS, insbesonders zur Teilnahmebeschränkung und verpflichtenden Anmeldung: Sie müssen die Lehrveranstaltung zuerst abonnieren und können sich dann in der Liste der abonnierten Lehrveranstaltungen anmelden.

[Ablauf] [Unterlagen] [Übungsteil] [Beurteilung] [Vorbereitung und Fragenkatalog] [Kontakt]

Ablauf

Die Lehrveranstaltung findet geblockt statt und besteht aus zwei Teilen:

  1. Im Vorlesungsteil wird die Theorie erläutert sowie im Zuge interaktiver Hörerbeteiligung erarbeitet und vertieft.
    Vorlesungszeiten: (Block)
    DatumZeit (c.t.)OrtInhalt (siehe Vorbereitung und Fragenkatalog)
    Mi, 07.Nov13:30-17:30EI 1GRUN, ERM
    Fr, 09.Nov13:30-17:30EI 1ERM, REL
    Mi, 14.Nov13:30-17:30EI 1REL, DBE, IMPL
    Fr, 16.Nov13:30-17:30entfällt
    Mi, 21.Nov13:30-17:30EI 1SQL
    Fr, 23.Nov13:30-17:30EI 1DBPR1+2
    Mi, 28.Nov13:30-17:30EI 1Web: HTTP, CGI, Web-DB
    Fr, 30.Nov13:30-16:30EI 1DBPR3
    Fr, 30.Nov16:30-17:30EI 1Laboreinweisung (Anwesenheitspflicht)

  2. Im Übungsteil wird die Theorie in Kleingruppen praktisch umgesetzt und eine Datenbank-basierte Web-Applikation erstellt.
    Die Gruppeneinteilung und Übungseinweisung in die Laborübung sowie die Ausgabe der Beispiele erfolgen am Fr, 30.Nov um 16.30 Uhr (siehe oben). Eine Liste mit den exakten Terminen für die Abgabegespräche wird aufgelegt. Dort besteht auch noch die Möglichkeit des Kennenlernens der Gruppenmitglieder.

Unterlagen

Die Kapitel- und Seitenangaben beziehen sich (sofern nicht explizit anders angegeben) auf die 4.Auflage (2010) des Buches "Datenbanken: Konzepte und Sprachen" von G. Saake, K.-U. Sattler und A.Heuer, erhältlich in technischen Buchhandlungen oder z.B. bei Amazon). Die 3.Auflage (2008) ist inhaltsgleich, abgesehen von ein paar kleineren Fehlern, die in der vierten Auflage korrigiert wurden.

Als weitere Unterlage dient ein Auszug aus dem Buch "Datenbanken kompakt", der mit Genehmigung des Verlages an jene Studierenden ausgegeben wird, die das Biber-Buch besitzen. Darüberhinaus stehen Studienbriefe und Zusatzmaterial zum Download bereit.

In der Vorlesung werden einige der Folien aufgelegt, welche die Autoren des o.a. Buches auf Ihren Webseiten in Rostock und Magdeburg frei zum Download zur Verfügung stellen. Wenn Sie die Vorlesung besuchen, können Sie die Folien als Handouts ausdrucken, für das Selbststudium sind die Folien jedoch weniger geeignet, in diesem Fall empfehle ich das o.a. Buch.

Ein aktuelles Buch zu den verschiedenen Möglichkeiten der Web Programmierung ist: Thomas Walter: "Web Programmierung", Springer, 2008, welches innerhalb der TU Wien sogar online als PDF-Sammlung zur Verfügung steht.

Ein ergänzendes Buch zu den technologischen Grundlagen des World Wide Web ist: Jeffrey C. Jackson: "Web Technologies", Pearson Prentice Hall, 2006, erhältlich z.B. bei Amazon.

Übungsteil

Der Übungsserver

Im Rahmen des Übungsteils werden die Schwergewichtsthemen durch praktische Aufgaben vertieft:

Übungsdurchführung

Die Übungen werden in Kleingruppen zu drei bis vier Personen abgehalten. Es werden im Zuge der Übungseinweisung Angaben und Unterlagen ausgegeben, die im Team diskutiert und mit freier Zeiteinteilung bearbeitet werden können. Die Übung kann von jedem beliebigen Internetanschluß aus durchgeführt werden! Voraussetzung ist nur ein WebBrowser.

Beratung und Hilfestellung durch den Übungsleiter ist über Email und nach Terminvereinbarung auch persönlich möglich.

Anwesenheitspflicht für alle besteht nur beim Abgabegespräch. Bei der Laboreinweisung muß nur mindestens ein Gruppenmitglied anwesend sein, sofern die Gruppenmitglieder untereinander schon Kontakt haben. Ansonsten bietet die Laboreinweisung die Möglichkeit, die anderen Gruppenmitglieder kennen zu lernen sowie eine letzte Gelegenheit Termine oder Gruppen zu tauschen.

Beurteilung

Die Gesamtnote der LVA setzt sich zu gleichen Teilen aus Übungsnote und Vorlesungsnote zusammen. Die Übung wird auf Basis der gelösten Aufgaben, der Implementierung und der schriftlichen Ausarbeitung (Protokoll) im Rahmen eines Abgabegespräches beurteilt. Die Vorlesung wird in der Regel anhand einer mündlichen Prüfung beurteilt. Ein Antreten zur Prüfung ist nur möglich, wenn die Übung positiv beurteilt wurde.

Prüfungsrelevant ist der gesamte Vorlesungsstoff, der u.a. Fragenkatalog dient der Unterstützung der Vorbereitung auf Basis des Buches und der weiteren Unterlagen. Bei der Prüfung werden Theoriefragen und kurze praktische Aufgaben bearbeitet. Es sind keine Unterlagen erlaubt. Für die Zuordnung von Prozenten zur Note gilt die folgende Richtskala: Genügend (4) ab 50%, Befriedigend (3) ab 65%, Gut (2) ab 80%, Sehr Gut (1) ab 91%.

Für die Prüfung gibt es einen Haupttermin im Jänner, dieser wird im Rahmen der Übungseinweisung bekannt gegeben. Im folgenden Sommersemester können Sie die Prüfung jederzeit mündlich nach Terminvereinbarung per Email durchführen. Danach verliert der Übungsteil seine Gültigkeit.

Vorbereitung und Fragenkatalog

Die folgenden Abschnitte aus dem Buch werden im Rahmen der LVA durchgenommen (tlw. mit zusätzlichen Unterlagen). Es wird empfohlen, die u.a. Buchkapitel vor dem jeweiligen Vorlesungstermin als Vorbereitung zu lesen.

Der Fragenkatalog dient der Unterstützung der Vorbereitung auf die Vorlesungsprüfung. Er stellt jedoch keine Stoffeinschränkung dar: Prüfungsrelevant ist der gesamte Vorlesungsstoff.

GRUN: Überblick und Grundlagen

Unterlagen:

Fragen:

  1. Warum braucht man Datenbanken? Erläutern Sie das Problem der Datenredundanz.
  2. Welche Aufgaben hat ein Datenbankmanagementsystem (Regeln von Codd)?
  3. Erläutern Sie die Schema-Architektur und die Arten der Datenunabhängigkeit.
  4. Erläutern Sie die grundlegende System-Architektur von Datenbanksystemen (ANSI-SPARC).
  5. Was ist eine Transaktion? Erläutern Sie die ACID Eigenschaften. Beschreiben Sie anhand eines Beispiels (z.B. Flugbuchung), warum Transaktionen von Bedeutung sind bzw. was ohne Transaktionen bzw. ohne die einzelnen ACID-Eigenschaften passieren könnte.

ERM: Entity Relationship Modell

Unterlagen:

Fragen:

  1. Was ist eine Entity im ER-Modell? Erläutern Sie den Unterschied zwischen Typ und Instanz an einem Beispiel.
  2. Was ist eine Beziehung (Relation) im ER-Modell? Erläutern Sie den Unterschied zwischen Typ und Instanz an einem Beispiel. Gehen Sie dabei auf einfache, typische Kardinalitäten zweistelliger Beziehungen ein.
  3. Was ist ein Attribut im ER-Modell? Welche Unterschiede gibt es zwischen Entity, Attribut und Wert? Erläutern Sie dabei auch die Identifizierung durch Schlüssel.
  4. Wie können komplexe Kardinalitäten bei mehrstelligen Beziehungen eindeutig angegeben werden? Erläutern Sie die daraus resultierenden unterschiedlichen Notationen für Kardinalitäten in zweistelligen Beziehungen.
  5. Erläutern Sie im ER-Modell die funktionale Beziehung.
  6. Erläutern Sie im ER-Modell die "weak entity" Beziehung.
  7. Erläutern Sie im ER-Modell die IST-Beziehung.
  8. Kann man eine dreistellige Beziehung in drei zweistellige Beziehungen umformen? Wenn ja - dann wie? Wenn nein - warum nicht?
  9. Studenten und Mitarbeiter sind Personen. Buch-Exemplare dürfen von Studenten und Mitarbeitern entlehnt werden. Welche Probleme ergeben sich bei der ER-Modellierung und wie können Sie gelöst werden?

REL: Relationenmodell und SQL Kern

Unterlagen:

Fragen:

  1. Erläutern Sie das Grundkonzept des Relationenmodells (Schema, Instanz, Attribut, Tupel,...). Was ist der Unterschied zwischen Tabelle und Relation?
  2. Geben Sie die Integritätsbedingungen (lokal und global) im Relationenmodell an. Geben Sie dabei die Fremdschlüsselbedingung exakt und vollständig an!
  3. Was ist der Unterschied zwischen ER-Modell und Relationenmodell. Warum braucht man überhaupt zwei verschiedene Modelle?
  4. Welche Basisoperationen bietet die relationale Algebra und wie unterscheiden sich diese vom SQL-Kern?
  5. Erläutern Sie das Grundprinzip des SFW-Blocks von SQL-Anfragen anhand eines Beispieles. Was bewirkt die Auflistung mehrerer Relationen in der from-Klausel ohne weitere Einschränkungen?
  6. Erläutern Sie die verschiedenen Arten von Verbunden anhand von Beispielen.
  7. Erläutern Sie die Möglichkeiten der select-Klausel. Was bedeutet dabei distinct?
  8. Erläutern Sie die Möglichkeiten der where-Klausel anhand von Beispielen. Gehen Sie dabei auch auf Verbundbedingungen ein.

DBE: Datenbankentwurf

Unterlagen:

Fragen:

  1. Worin besteht die Entwurfsaufgabe einer Datenbank? Welche Eigenschaften muss der Entwurfsprozess aufweisen (formal und informell)?
  2. Welche Phasen sind beim Datenbankentwurf von Bedeutung? Beschreiben Sie die wichtigsten Punkte der einzelnen Phasen.
  3. Erläutern Sie die Anforderungsanalyse und den konzeptionellen Entwurf. Beschreiben Sie jene Konflikte, die auftreten können, wenn im Rahmen des konzeptionellen Entwurfes die modellierten Sichten der verschiedenen Anwender in eine Gesamtsicht integriert werden sollen.
  4. Was bedeuten vertikale und horizontale Fragmentierung beim Relationenmodell und was muss man dabei beachten?
  5. Was bedeutet bei der Transformation vom ER-Modell ins Relationenmodell die Forderung nach Erhaltung der Informationskapazität? Geben Sie je ein Beispiel für eine kapazitätserhöhende und eine kapazitätsvermindernde Abbildung an.
  6. Formen Sie eine zweistellige n:m-Beziehung vom ER-Diagramm in das relationale Schema um. Diskutieren Sie mögliche Varianten.
  7. Formen Sie eine zweistellige 1:n-Beziehung vom ER-Diagramm in das relationale Schema um. Diskutieren Sie mögliche Varianten.
  8. Formen Sie eine zweistellige 1:1-Beziehung vom ER-Diagramm in das relationale Schema um. Diskutieren Sie mögliche Varianten.
  9. Formen Sie die IST-Beziehungen vom ER-Diagramm in das relationale Schema um. Diskutieren Sie mögliche Varianten.

IMPL: Relationaler Entwurf und Implementierung

Unterlagen:

Fragen:

  1. Formen Sie die einen Selbstbezug (Vorlesung und Voraussetzung) vom ER-Diagramm in das relationale Schema um. Diskutieren Sie mögliche Varianten.
  2. Formen Sie eine dreistellige n:m-Beziehung vom ER-Diagramm in das relationale Schema um. Diskutieren Sie mögliche Varianten.
  3. Formen Sie die Beziehung "Buch hat Stichwort" in das relationale Schema um. Diskutieren Sie mögliche Varianten.
  4. Implementieren Sie das relationale Schema "Buchexemplar von Buch" mittels SQL.
  5. Implementieren Sie das relationale Schema "Professor hat Lehrstuhl" mittels SQL.
  6. Implementieren Sie das relationale Schema "Vorlesung und Voraussetzung" mittels SQL.
  7. Implementieren Sie das relationale Schema "Professor IST Mitarbeiter IST Person" mittels SQL.
  8. Was sind Änderungs-Anomalien? Geben Sie Beispiele an und erläutern Sie die wichtigsten Eigenschaften der ersten und dritten Normalform.
  9. Erläutern Sie Abhängigkeitstreue und Verbundtreue anhand von Beispielen.
  10. Erklären Sie die SQL Anweisungen "drop table" und "alter table".

SQL: SQL Queries

Unterlagen:

Fragen:

  1. Erläutern Sie das folgende SQL-Statement: select Titel from Bücher where ISBN in (select ISBN from Empfiehlt).
    Wie funktioniert in SQL die Schachtelung von Anfragen ohne Verzahnung?
  2. Erläutern Sie das folgende SQL-Statement:
    select Nachname from Personen
    where 1.0 in (select Note from Prüft where PANr = Personen.PANr)
    .
    Wie funktioniert in SQL die Schachtelung von Anfragen mit Verzahnung?
  3. Liegt bei dem folgenden Statement eine Verzahnung vor?
    select Matrikelnummer from Prüft
    where PANr in (select PANr from Prüft where Matrikelnummer = '8625510')
    .
    Was bedeutet dieses Statement?
  4. Formen Sie die folgende mittels in-Prädikat geschachtelte Anfrage in einen Verbund um:
    select X.PANr from Prüft X
    where X.PAnr in (select Y.PANr from Prüft Y where X.Matrikelnummer <> Y.Matrikelnummer)
    .
  5. Erläutern Sie das exists-Prädikat anhand eines Beispiels.
  6. Simulieren Sie den Allquantor mithilfe des exists-Prädikates anhand eines Beispiels, etwa die ISBN und Titel all jener Bücher, von denen alle Exemplare entlehnt sind.
  7. Erläutern Sie die Mengenoperationen in SQL.
  8. Erläutern Sie Quantoren, Mengenvergleiche und Tupelbildung in SQL. Was bedeutet dabei die folgende Abfrage:
    select Note from Prüft where Matrikelnummer ='8625510'
    and Note >= all (select Note from Prüft where Matrikelnummer ='8625510')
    .
  9. Wir wollen in einer Anfrage jene Bücher ermitteln, die die Autoren Vossen und Witt gemeinsam geschrieben haben. Was liefert select * from Buch_Autor where Autor='Vossen' and Autor='Witt'? Geben Sie eine bessere Lösung an und erläutern Sie dabei den Selbstverbund.
  10. Erläutern Sie das Grundprinzip der Aggregatfunktionen. Was bedeuten die folgenden Statements:
    select avg(all Note) from Prüft where V_Bezeichnung='Datenbanken'
    select Matrikelnummer from Prüft where Note < (select avg (all Note) from Prüft).
    Wie wird bei Aggregatfunktionen mit Nullwerten verfahren?
  11. Erläutern Sie die Möglichkeit der Gruppierungen. Welche Einschränkungen gibt es dabei? Was bedeuten die folgenden Statements:
    select count(*), PANr from Ausleihe
    group by PANr having count(*)>1
    .
    select Matrikelnummer from Prüft
    group by Matrikelnummer having avg(Note) < (select avg(Note) from Prüft)
    .
  12. Wie kann man Wertemengen zählen? Geben Sie Varianten mit Aggregatfunktionen und Selbstverbund für das folgende Beispiel an:
    select X.PANr from Prüft X
    where X.PAnr in (select Y.PANr from Prüft Y where X.Matrikelnummer <> Y.Matrikelnummer)
    .
  13. Erläutern Sie die order by Klausel und ihre Einschränkungen.
  14. Wie werden Nullwerte in skalaren bzw. logischen Ausdrücken und in Aggregatfunktionen behandelt?
  15. Erläutern Sie die Änderungsoperationen insert, update und delete anhand von Beispielen. Unterscheiden Sie dabei zwischen Eintupel- und Mehrtupel-Operationen.
  16. Wie funktioniert die graphische Abfrageschnittstelle von MS Access? Welches Grundprinzip liegt hier zugrunde?
  17. Kann man in SQL92 rekursive Probleme lösen (Beispiel Flugverbindungen)? Erläutern Sie, wie rekursive Probleme in regelbasierten Sprachen und ab SQL:1999 auch in RDBMS gelöst werden können.
  18. Erläutern Sie den Einsatz von künstlichen Schlüsseln und Sequenzgeneratoren.

DBPR1: Datenbankprogrammierung - Teil 1 (Persistenz)

Unterlagen:

Fragen:

  1. Welches Grundproblem gibt es bei der Abbildung objektorientierter auf relationale Strukturen? Welche strukturellen Ansätze kennen Sie diesbezüglich?
  2. Geben Sie einen Überblick über verschiedene Persistenz-Ansätze und vergleichen Sie diese qualitativ.
  3. Welche Gemeinsamkeiten und Unterschiede gibt es zwischen ER und UML?
  4. Erläutern Sie das Cursor-Prinzip.
  5. Erläutern Sie das Grundprinzip der Call-Level-Schnittstelle (CLI) und geben Sie Beispiele an. Wie unterscheidet sich CLI von "dynamic embedded SQL"?
  6. Was versteht man unter "static embedded SQL"? Erläutern Sie das Prinzip des Präcompilers (Vorübersetzers).
  7. Zeigen Sie den Einsatz der Cursor-Technik bei static embedded SQL anhand eines Beispiels.
  8. Was versteht man unter "stored procedures"? Erläutern Sie den Einsatz der Cursor-Technik anhand von PL/SQL.

DBPR2: Datenbankprogrammierung - Teil 2 (JDBC und ORM)

Unterlagen:

Fragen:

  1. Erläutern Sie die prinzipiellen Schritte, die in JDBC notwendig sind um eine SQL Anfrage durchzuführen. Beschreiben Sie weiters den Aufbau einer JDBC URL.
  2. Erläutern Sie die Bedeutung und Verwendungsweise der drei Arten von Statements in JDBC.
  3. Welche Möglichkeiten der Transaktionssteuerung gibt es in JDBC und wie werden Sie verwendet.
  4. Auf welche Arten kann eine Vererbungshierarchie auf das relationale Modell abgebildet werden?
  5. Welche drei Zustände kann ein Objekt typischerweise in einem Persistenzframework einnehmen?
  6. Erklären Sie den Unterschied zwischen den drei Abfragesprachen HQL, Criteria Queries, und native SQL.
  7. Wo ist der Unterschied zwischen uni- und bidrektionalen Assoziationsabbildungen beim Persistenzmapping?
  8. Auf welche Arten kann ein Mapping bei Hibernate definiert werden?

WEB: Grundlagen des WWW: HTML, HTTP, URI, Backend

Unterlagen:

Fragen:

  1. Was ist ein URL und aus welchen Elementen besteht er?
  2. Was ist das Hypertext Transfer Protokoll und welche Grundeigenschaft besitzt es? Wieso ist diese Eigenschaft ein Problem für Datenbankanwendungen?
  3. Wie funktioniert beim HTTP die Basic Authentication? Geben Sie auch alternative Authentifizierungsmöglichkeiten und deren Funktionsweise an.
  4. Welche Mängel besitzt ein User-Interface welches nur auf HTML basiert? Wie kann man diese Nachteile umgehen?
  5. Erklären Sie das Prinzip des Common Gateway Interfaces. Welche Alternativen gibt es zu CGI und werden heute primär verwendet? Was sind deren Vor- und Nachteile?

DBPR3: Datenbankprogrammierung - Teil 3 (Web-DB und Servlet/JSP)

Unterlagen:

Fragen:

  1. Welche Anforderungen ergeben sich aus der Sicht der Datenbankanwendung für die Webanbindung?
  2. Erläutern Sie den Lebenszyklus eines Java Servlets und beschreiben Sie dessen API. Gehen Sie im speziellen auf HTTP-Servlets ein.
  3. Welche Techniken können Sie verwenden um von einem Servlet auf eine Datenbank zuzugreifen damit Sie die Ergebnisse in eine Webseite einbauen können? Überlegen Sie, an welchen Stellen Sie am günstigsten die Datenbankverbindung auf- und abbauen.
  4. Erklären Sie den Unterschied zwischen JSP und Servlets. Welche Einbettungskonstrukte gibt es in JSP? Erklären Sie diese.
  5. Welche Möglichkeiten der Zustandsrealisierung gibt es?

Kontakt

Vorlesung: Dr. Karl. M. Göschka
Sprechstunde: Unmittelbar nach der Vorlesung oder nach Vereinbarung per E-Mail.

Übung: Dr. Jürgen Falb
Sprechstunde: Unmittelbar nach der Vorlesung oder nach Vereinbarung per E-Mail.
















































































This space is left blank intentionally.