-- NorbertRitter -- 11 Apr 2007

Aufgaben

Aufgabe 1

  • Aufgabenstellung: Finden Sie im Web Informationen über frei verfügbare Datenbankverwaltungssysteme, d.h., DBVS, die Sie auf Ihrem Privat-PC installieren könnten. Ermitteln Sie 2 bis 3 solcher Systeme und vergleichen Sie diese ausgehend von den im Web verfügbaren Informationen anhand der in der Vorlesung in Kapitel 2 diskutierten 5 grundlegenden Anforderungen an DBVS. Beachten Sie bitte auch die einzelnen Unterpunkte dieser Anforderungen und begründen Sie jeweils kurz. Wählen Sie eines dieser Systeme aus, um damit in den nachfolgenden Aufgaben eine Anwendungsentwicklung durchzuführen und begründen Sie Ihre Auswahl (ebenfalls) kurz.
  • Abgabe: Schicken Sie eine Email an NorbertRitter mit folgenden Informationen:
    • Zusammensetzung der Übungsgruppe (für diese und alle nachfolgenden Aufgaben),
    • Auflistung der 2-3 betrachteten Systeme mit der geforderten Charakterisierung/Beurteilung,
    • Kurze Begründung Ihrer Auswahl!
  • Bitte beachten: Ihre Email wird beantwortet, um Ihre Systemwahl zu bestätigen. Spätestens dann, wenn mit einer Antwort-Email Ihre Wahl eines DBVS akzeptiert wurde, lassen Sie sich bitte als NatsWiki-Benutzer registrieren. Diese Registrierung wird wiederum durch Email bestätigt. Sobald Sie registriert sind, legen Sie bitte unter Teilnehmer-Beiträge einen Bereich für Ihre Gruppe an, der zur Aufnahme des im Laufe der Bearbeitung der DIS-2007-Aufgaben entstehenden Projektberichts dient. Wählen Sie für diesen Bereich eine Bezeichnung, die sich aus den Namen der Gruppenmitglieder ergibt und die Anforderungen an ein WikiWord erfüllt (Beispiel: 'MenzelRitter'). Als ersten Abschnitt Ihres Projektberichts (Ergebnisse zu Aufgabe 1) fügen Sie anschließend die in der Aufgabe geforderten Systemcharakterisierungen und Auswahlbegründung ein.
  • Verfügbarkeit der IBM DB2 auf den VSIS-Rechnern: Sollte es Ihnen nicht möglich sein, ein DBVS auf einem Privat-PC zu installieren und zu nutzen, können Sie einen Zugang zu der auf den VSIS-Rechnern verfügbaren DB2 erhalten. Teilen Sie uns dies ggf. in Ihrer Email mit. Sie erhalten dann weitere Informationen zur Nutzung der DB2 auf unserem System.
  • Bearbeitungszeit: Ihre Email mit den unter 'Abgabe' angeführten Inhalten wird bis Freitag, 20.04.07, 12:00 Uhr, erwartet. Registrierung und Initialisierung des Projektberichts müssen bis zum 26.04.07 abgeschlossen werden.

Aufgabe 2

  • Aufgabenstellung: Führen Sie für eine Anwendung Ihrer Wahl eine Informations- und Datenmodellierung durch. Nutzen Sie als Informationsmodell das ERM, wie in der Vorlesung eingefuehrt, d.h., stellen Sie die Informationsstrukturen Ihrer Anwendung als ER-Diagramm dar. Bilden Sie dieses ER-Diagramm nach den in der Vorlesung angegebenen Regeln auf ein relationales DB-Schema ab. Erzeugen Sie in dem von Ihnen gewählten DBVS eine Datenbank mit diesem Schema. Bitte beachten Sie:
    • Wählen Sie eine Anwendung angemessener Komplexität, so dass alle wesentlichen Arten von Informationsstrukturen, die im ER-Modell unterstützt werden, in Ihrem ER-Diagramm auftreten. So sollte Ihre Miniwelt mindestens 5 Entity-Mengen, mindestens 2 n:m-Beziehungstypen und mindestens jeweils einen 1:n- und 1:1-Beziehungstyp umfassen. Achten Sie andererseits darauf, dass die gewählte Miniwelt nicht zu komplex ist, um den späteren Aufwand (z.B. zum Laden der Datenbank in der nachfolgenden Aufgabe) im Rahmen zu halten.
    • Nutzen Sie bei der Abbildung auf das (relationale) DB-Schema die Möglichkeiten, die das von Ihnen gewählte DBVS bietet, vollständig aus! Diskutieren Sie insbesondere, inwieweit 'Ihr' DBVS die in der Vorlesung diskutierten Mechanismen zur Kontrolle der referentiellen Integrität unterstützt und inwieweit diese fuer Ihre Anwendung notwendig/sinnvoll sind/wären.
    • Spezifizieren Sie 'Ihr' DB-Schema im Projektbericht als Menge von DDL-Anweisungen in der Spraches 'Ihres' DBVS.
  • Abgabe: Stellen Sie Ihre Ergebnisse, bestehend aus einem ER-Diagramm und dem zugehörigen DB-Schema (als Menge von DDL-Anweisungen in der Sprache des von Ihnen ausgewählten DBVS), als weiteren Abschnitt Ihres NatsWiki-Projektberichts zur Verfügung.
  • Bearbeitungszeit: Ihre Lösung wird bis zum 07.05.07 erwartet.

Aufgabe 3

  • Aufgabenstellung: Schreiben Sie ein Ladeprogramm für Ihre in Aufgabe 3 erzeugte Datenbank. Nutzen Sie dazu eine Aufrufschnittstelle (z.B. JDBC) für das von Ihnen gewählte DBVS. Bitte beachten Sie:
    • Sehen Sie für jede Relation Ihres DB-Schemas, die eine Entity-Menge Ihres ER-Modells repräsentiert, eine Sektion in Ihrem Programm vor, die beliebig viele Tupel (bzw. die zugehörigen Attributwerte) vom Bildschirm einlesen und jeweils in die Datenbank speichern kann.
    • Realisieren Sie jede dieser Sektionen als eine Transaktion, so dass (pro Programmlauf) die '(Gesamt-)Menge aller Einfügungen auf einer solchen Relation' ganz oder gar nicht in die Datenbank gelangt. Sehen Sie vor der Beendigung einer jeden dieser Sektionen eine Abfrage an den Benutzer vor, ob die Menge der Einfügungen übernommen oder rückgängig gemacht werden soll, und führen Sie in Abhängigkeit von der Benutzerantwort ein Commit bzw. ein Rollback aus.
    • Achten Sie auf die konsistente Einfügung von Beziehungen, d.h., insbesondere auf die Belegung von Fremdschlüsselwerten und das Füllen von Relationen, die n:m-Beziehungstypen abbilden.
    • Testen Sie Ihr Programm (nutzen Sie dabei auch die eingebauten Rollback-Möglichkeiten).
    • Nutzen Sie Ihr Programm, um Ihre Datenbank mit einem kleinen, überschaubaren Datenbestand zu laden.
  • Abgabe: Stellen Sie Ihre Ergebnisse, bestehend aus dem Quell-Code Ihres Transaktionsprogramms und einer kurzen Erläuterung, als dritten Abschnitt Ihres NatsWiki-Projektberichts zur Verfügung.
  • Bearbeitungszeit: Ihre Lösung wird bis zum 25.05.07 erwartet.

Aufgabe 4

  • Aufgabenstellung: Nach der Bearbeitung von Aufgabe 3 steht Ihnen eine (eigene) Datenbank zur Verfügung, die Sie bitte zum Einüben von SQL-Anweisungen benutzen. Führen Sie auf Ihrer Datenbank Insert-, Delete-, Update- und Select-Anweisungen aus, bis alle Gruppenmitglieder die Anfragesprache SQL beherrschen. Üben Sie insbesondere folgende Möglichkeiten der Select-Anweisung ein: einfache Anfragen auf einer Relation; Anfragen über mehreren Relationen in geschachtelter Notation; Join-Anfragen über mehreren Relationen (symmetrische Notation), auch unter Einbeziehungen von Relationen, die (n:m)-Beziehungstypen Ihres ER-Modells repräsentieren; falls möglich, Nutzung derselben Relation in verschiedenen Rollen im Rahmen einer symmetrischen Join-Anweisung; Nutzung von Aggregationsfunktionen; Nutzung von Gruppierung (und Having); Nutzung sortierter Ausgabe. Üben Sie darüber hinaus anhand Ihres DB-Schemas die Formulierung von Relationenalgebra-Ausdrücken, die mindestens die relationalen Operatoren Selektion, Projektion und Join umfassen. Spezifizieren Sie weiter eine relationen-übergreifende Integritätsbedingung (Assertion) auf Ihrem Schema und stellen Sie fest, inwieweit das von Ihnen gewählte DBVS diesbezüglich eine Unterstützung bietet.
  • Bearbeitungszeit: bis 15.06.07.
  • Abgabe: Die Ergebnisse dieser Aufgabe müssen nicht notwendigerweise in Ihrem Projektbericht auf den NatsWiki-Seiten beschrieben werden. Gerne können Sie jedoch Ihre Vorgehensweise, Ihre Assertion (inkl. Hinweise der Unterstützung von Assertions durch das von Ihnen genutzte DBVS) und Ihre Testanfragen (jeweils in Prosa und in SQL) freiwillig dokumentieren, um Ihren Bericht abzurunden. Eine Erfolgskontrolle zu dieser Aufgabe wird, wie in der Vorlesung angekündigt, stattfinden, in dem die Gruppen jeweils zu einem Besprechungstermin erscheinen; in dieser Besprechung wird die jeweilige Modellierung und Abbildung besprochen und die Gruppenmitglieder müssen Ihre Relationenalgebra- und SQL-Kenntnisse anhand von Beispielanfragen auf Ihrem eigenen Schema unter Beweis stellen. Die Termine werden in der Woche vom 11. bis 15. Juni an dieser Stelle bekannt gemacht.

Aufgabe 5

  • Aufgabenstellung: Diskutieren Sie für die in Aufgabe 2 gewählte Anwendung die Möglichkeiten zur Einbindung der Daten in ein Data Warehouse und den dadurch zu erwartenden Nutzen. Gehen Sie dabei insbesondere auf folgende Fragestellungen ein:
    • Mit welchen (fiktiven) Datenbanken sollte Ihre Datenbank zusammengeführt werden? Warum?
    • Welche (gemeinsamen) Dimensionen existieren zwischen den angegebenen Datenbanken?
    • In welchen zeitlichen Abständen müssen die Daten im Warehouse aktualisiert werden?
    • Mit welchen Problemen beim Import der Daten muss gerechnet werden? Welche Hilfsmittel erscheinen Ihnen zur Lösung der Probleme erforderlich?
  • Entwerfen Sie ein Datenbankschema für Ihr Data Warehouse und diskutieren Sie Ihren Entwurf vor allem im Hinblick auf einen effizienten Datenzugriff. Geben Sie hierzu eine Reihe typischer Anfragen zur Datenanalyse an.
  • Abgabe: Bis zum 26.06.2006 im Wiki.

Aufgabe 6

  • Aufgabenstellung: Gegeben ist eine Datensammlung, die aus den (realen) Prüfungsergebnissen einer P1-Klausur der letzten Jahre besteht. Die Daten können Sie hier herunterladen. Jeder Datensatz besteht aus zehn Attributen (Merkmalen), die die in der jeweiligen Aufgabe erreichten Punkte angeben.
    • Überprüfen Sie, ob in den Daten Ausreißertupel enthalten sind. Bewerten Sie die Zuverlässigkeit Ihrer Testmethode.
    • Die Prüfung hat bestanden, wer mindestens 50% der maximalen Punktzahl (100) erreicht hat. Ermitteln Sie, welche Attribute zur Vorhersage des Erfolgs der Prüfung besonders gut geeignet sind. Vergleichen Sie zwei verschiedene Verfahren zur Dimensionalitätsreduktion.
  • Abgabe: Bis zum 3.7.2006 im Wiki.

Aufgabe 7

  • Aufgabenstellung:
    • Definieren Sie für Ihr Datenbankschema aus Aufgabe 2 eine XML-DTD.
    • Diskutieren Sie die Unterschiede zwischen den im Datenbankschema und in der XML-DTD enthaltenen Informationen,
    • Geben Sie ein Beispieldokument für Ihre DTD an und validieren Sie es mit einem entsprechenden Werkzeug.
    • Formulieren Sie Ihre SELECT-Anweisungen aus Aufgabe 4 als XPath-Anfragen. Welche Beschränkungen von XPath fallen Ihnen auf?
  • Abgabe: Bis zum 10.7.2005 im Wiki.

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback