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
- Präsentation der Lösungen zu Aufgabe 2
-
Musterlösung Ca. 2:30 Minuten Partition-Hash Java Code
ErläuterungenGruppe 1 Ca. 0:52 Minuten (!) Partition-Hash mit Binärdarstellung Java Code
ErläuterungenGruppe 2 Ca. 2:03 Minuten
Verbesserte Version: 0:45 MinutenBlocked Nested-Loop mit Komprimierung Java Code (2:03), Java code (0.45), Gemeinsame Klasse Gruppe 3 Ca. 5:00 Minuten Sort-Merge Java Code - Vorstellung von Aufgabe 3, Bearbeitungszeit: 2 Wochen
Thema: Modellierung / Schema Design
Aufgabenblatt 3
Ü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
- Einführung PL/SQL, Explain Plan
- Tabellen: Mitarbeiterverzeichnis
der Fakultät
(URL: http://webmania.rz.hu-berlin.de/statcgi/adr_hubn/telanfr4.sh ) - JDBC-Conntect-String: jdbc:oracle:thin:@141.20.27.142:1521:LEHRE
- Folien: Organisatorisches, Aufgabe 1, Explain Plan, PL/SQL, JDBC
- SQL-Konsolen und -Tools
- Aquafold: www.aquafold.com
- Query Analyzer, Scheme & Script Browser, Table Editor, Query
Results Viewer - kurzum so ziemlich alles, was man so brauchen
kann.
Frei verwendbar für den persönlichen Gebrauch und die Lehre. Erhältlich für Linux, Windows, MacOS X, Solaris, Java (ca. 8-30 MB) - SQL-Tools: www.sqltools.net
- FreeWare. Graphisches Explain Plan, Object View, PL/SQL Editor, Syntax Highlighting, etc. Nur Windows, man braucht eine Oracle Client Installation.
- TORA: www.globecom.se/tora/
- Ein Tool für Windows & Linux. Benötigt den Oracle Client.
- TOAD: www.toadsoft.com/downld.html
- Erhältlich auch in einer FreeWare-Version. Nur Windows, benötigt den Oracle Client.
- Oracle Client Installation: otn.oracle.com
- -> Download -> 9.2.0.1 für Windows oder Linux -> File 92010NT_CLT.zip downloaden (ca. 600 MB)
- Informationen zu PRAGMAS finden sich im PL/SQL User's Guide and Reference, www.csis.gvsu.edu .. oder OTN
- Aufgetretene Probleme und Fragen
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]