Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Wissensmanagement in der Bioinformatik

Wissensmanagement in der Bioinformatik

Data Warehousing

Übung zur Vorlesung im Sommersemester 2003

Professor Ulf Leser, Jörg Hakenberg



Organisatorisches

Zeit: Mittwoch, von 11-13 Uhr
Ort: RUD 25, 1.011
Sprechzeiten speziell zur Übung: Montag und Dienstag, von 10-12 Uhr (oder nach Vereinbarung) in Raum IV.102 (J.Hakenberg)
sowie Freitag, von 13-15 Uhr in Raum IV.103 (U.Leser)
Abgabe der Lösungen: Jeweils am Dienstag vor der Besprechung der Aufgabe, 16 Uhr
Übungsschein: Voraussetzung für den Erhalt eines Übungsscheines ist die Bearbeitung sämtlicher Aufgaben (in Gruppen) und die Vorstellung mindestens einer Lösung in einer der Übungsstunden (pro TeilnehmerIn).
Seminarschein: Der Übungsschein kann zusammen mit dem Übungsschein für Molekularbiogische Datenbanken in einem Seminarschein umgetauscht werden.

Die Übung wird in Gruppen á 2-3 Personen stattfinden. Es gilt, insgesamt 5 Aufgaben zu lösen. Für die Bearbeitung stehen jeweils 2-3 Wochen zur Verfügung. Der Ablauf wird sich so gestalten, dass in einer Woche die neue Aufgabe gestellt und die alte besprochen wird, in der nächsten gibt es dann eine freie Frage- & Diskussions-Stunde. Zudem stehen weitere Sprechzeiten sämtlichen Gruppen zur freien Verfügung.

Mindestens 3 von den 5 Aufgaben werden konkurrierend zu lösen sein. Die Lösungvorschläge entsprechen einem vorgegebenen Format und werden bewertet nach Effizienz, Rechenzeit, Speicherplatz u.ä. Die Bewertung der übrigen Aufgaben erfolgt rein nach Qualität der Lösung. Für die am Semesterende insgesamt beste Gruppe denken wir uns eine schöne Überraschung aus!

Bei der Besprechung stellt jede Gruppe ihre eigene Lösung kurz vor, jedes Gruppenmitglied sollte im Semester mindestens einmal diese Präsentation übernehmen.

Für die Entwicklung und den Test der eigenen Lösung steht ein dedizierter DualProcessor-Server zur Verfügung, als Datenbank kommt Oracle9i zum Einsatz.


Im Folgenden finden sich kurze Beschreibungen zu den Übungsterminen und in Aufgaben behandelten Themen. Verweise auf das jeweils benötigte Material finden sich zusätzlich im Anhang.

Übung am 23. April

  • Organisatorisches, Einteilung in Gruppen
  • Wdh. DDL/DML, kurze Einführung in PL/SQL, EXPLAIN PLAN
    Folien
  • Vorstellung der Aufgabe 1, Bearbeitungszeit: 3 Wochen
    Thema: Oracle, SQL, PL/SQL, EXPLAIN PLAN, Optimierung
    Programmiersprachen: Java/Perl/C, PL/SQL
    Aufgabenblatt 1

Übung am 30. April

  • Kurze Einführung in JDBC
  • Fragen und Diskussion zur aktuellen Aufgabe

Übung am 7. Mai

  • Fragen und Diskussion zur aktuellen Aufgabe

Übung am 14. Mai

  • Präsentation der Lösungen zu Aufgabe 1
  • Vorstellung von Aufgabe 2, Bearbeitungszeit: 3 Wochen
    Thema: Externe Speicher
    Programmiersprache: Java
    Aufgabenblatt 2

Übung am 21. Mai

  • Fragen und Diskussion zur aktuellen Aufgabe

Übung am 28. Mai

  • Fragen und Diskussion zur aktuellen Aufgabe

Übung am 4. Juni


Übung am 11. Juni

  • Fragen und Diskussion zur aktuellen Aufgabe

Übung am 18. Juni

  • Präsentation der Lösungen zu Aufgabe 3
  • Vorstellung von Aufgabe 4, Bearbeitungszeit: 2 Wochen
    Thema: Physikalisches Tabellenlayout, Index Selection
    Aufgabenblatt 4

Übung am 25. Juni

  • Fragen und Diskussion zur aktuellen Aufgabe

Übung am 2. Juli

  • Präsentation der Lösungen zu Aufgabe 4
  • Gruppe Query Costs Zeit Strategie
    1 1 154 00.01 (!) index a4(orderDate, orderStatus)
    1 2 81 00.05 bitmap index a4(orderStatus, customerNation)
    1 3 168 00.44 index a4(customerNation, customerAcctBal, customerName, customerAddress, orderID)
    index a4(customerNation, orderDate, customerAcctBal, customerName)
    1 4 3 00.00 (.) index a4(customerName, partName, orderTotalPrice, orderID)
    2 1 443 00.02 index a4(orderDate)
    2 2 394 00.02 (!) index a4()
    2 3 2019 00.36 (!) index a4(customerNation, orderDate, customerName)
    index a4(customerNation, customerAcctBal)
    2 4 18 00.00 (.) index a4(customerName, orderTotalPrice)
    3 1 3094 03.57 index a4()
    3 2 1732 41.91 index a4()
    3 3 6243 09.06 index a4()
    3 4 3091 03.53 index a4()
  • Vorstellung von Aufgabe 5, Bearbeitungszeit: 2 Wochen
    Thema: Materialized Views, Query Rewrite
    Aufgabenblatt 5
    Erläuterungen zu Materialized Views

Übung am 9. Juli

  • Fragen und Diskussion zur aktuellen Aufgabe

Übung am 16. Juli

  • Präsentation der Lösungen zu Aufgabe 5
  • Gruppe Query Costs Zeit Plan
    1 1 18 (!) 00.04 (!) HJ, IR, TAF MV-1
    1 2 15 00.62 (!) TAF MV-1
    1 3 138 00.75 (!) IF MV-3
    1 4 4 (!) 00.05 (!) SORT, IR MV-2
    1 5 32 00.48 (!) SORT, HJ, PR, IFF MV-1, TAF MV-1
    2 1 132 00.26 HJ, TAF MV-1, IFF
    2 2 15 00.70 TAF MV-1
    2 3 9 (!) 00.94 TAF MV-3
    2 4 17 00.08 SG, HJ, I, IR, TAF MV-2
    2 5 26 (!) 00.50 HJ, TAF MV-2, TAF MV-1
    3 1 77 00.10 InlIt, I MV-1, IR MV-1
    3 2 35 00.76 HJ, TAF MV-3, TAF MV-2
    3 3 e e e
    3 4 980 00.91 SG, NL, NL, I, IUS, IFF, I MV-1
    3 5 2543 09.06 SG, HJ, TAF MV-3, HJ, TAF MV-2, HJ, TAF, TAF MV-1
    Gruppe Mat.View 1 Mat.View 2 Mat.View 3
    1 1.568.229 1.595.946 896.008
    2 1.568.229 908.004 896.008
    3
  • Abschluss, Preisverleihung


Material für die Übung

Im Verzeichnis $HOME/DATEN/ auf Eurem Gruppenaccount findet Ihr die für die jeweilige Aufgabe benötigten Dateien. Dies sind z.B. SQL-Skripte zum Erstellen und Auslesen der plan_table oder Coderümpfe z.B. für die Benutzung von JDBC.

Aufgabe 1


Aufgabe 2

  • benötigte Textdateien: data1 und data2
    Liegen auf dem Server morawetz unter: $HOME/DATEN/Exercise02/data?
  • Aufgetretene Probleme und Fragen

Aufgabe 3

  • SQL-Skripte zur formatierten Ausgabe der plan_table:
    siehe Einführung zu Explain Plan, Abschnitt Ausgabe
    oder Material zur Aufgabe 1: $HOME/DATEN/Exercise01/*.sql

Aufgabe 4

  • Die Tabelle a4_order findet sich im Schema des Oracle-Users muster der Datenbank lehre auf morawetz.
  • Rahmenskript zur Einbettung der eigenen Anfragen, Start von der UNIX-Konsole mit
          morawetz> sqlplus name/passwort@lehre @query
    
  • Die Tabelle plan_table legt das Skript create_plantable an.

Aufgabe 5

  • Erläuterungen zu Materialized Views
  • Die Statistiken einer Tabelle lassen sich ansehen mit dem Skript stat_view.sql - ein Beispiel findet sich in statistics.log
    - Das Skript fragt zunächst nach Eurem Benutzernamen (gruppeX) und dann nach dem Namen der Tabelle. Gebt hier nur Namen von Tabellen an, die zuvor analysiert wurden, sonst gibt es eine Fehlermeldung! Einfach RETURN für alle Tabellen wie angegeben funktioniert in den meisten Fällen nicht!
    - Die Ergebnisse werden zusätzlich in der Datei statistics.log abgelegt.
  • Verwendet wird in der Aufgabe das TPC-H - Schema von www.tpc.org
  • Das Schema im Überblick sowie die Tabellendefinitionen
    - Zu beachten sind die auch bei uns gültigen Benennungen der Spalten. Diese bestehen (zusätzlich zum Tabellennamen) aus einer Abkürzung für den Tabellennamen, einem Unterstrich, und dann erst dem eigentlichen Namen des Attributes.
    CUSTOMER.C_NAME gibt z.B. den Namen eines Kunden aus der Kundentabelle an
    - Der Scale-Factor SF beträgt bei uns 0.3
  • Näheres findet Ihr bei Interesse in der Dokumentation (150 Seiten!)
  • Es gibt zu Oracle9i einen Data Warehousing Guide, der sich u.a. mit materialisierten Views beschäftigt.


Last modified: [jh 2003-06-24]