Datenbank Projekt- Die Projektseite - ETLaien

Das ist unsere Projektseite. Hier wird alles stehen, was das Projekt ansich betrifft. Also Teilnehmer, Termine, Links, aber auch Links zu aktuellen Diagrammen und ähnliches.
Anmerkungen, Wünsche, Kritik? Mailt mich an

Teilnehmer

Manuel Scholz Prof. Heinz Schweppe
Jürgen Broß Maximilian Hoeflich
Robert R. Hornschild-Bear Katja Löffler
Yann Michel Arkadi Omeltchenko
Jasmin Opitz Sürec Özcan
Holger Rösch Andreas Thaler
Matthias Thraenhardt Sebastian Weber
Daniel Weichert 

Termine

 31.10.03  
 07.11.03
  • Vortrag: Vergleich unterschiedlicher DWH-Werkzeuge (Yann-Rudolf Michel)
  • Diskussion: GUI-Design
  • Festlegung der GUI Gruppe (verschoben)
  • Vortrag: Einführung in Eclipse (Jasmin Opitz) Shortcut
 14.11.03
  • Fällt aus
 21.11.03
 28.11.03
  • Fällt aus
 05.12.03
  • Auswahl des Namens für das Tool. ETLaien
  • Einteilung der Gruppen
  • Anforderungsspezifikation für den Prototypen
 12.12.03
  • Aufgaben zu dieser Woche:
    • GUI:
      1. Entwurf
      2. Ablaufdiagramm
    • Worker:
      1. Spezifikation der Aufgaben
      2. Syntaxbaum SQL
    • Core und Import/Export:
      1. Spezifikation der Aufgaben
      2. DB Dictionary Zugriffe anschauen (MySQL, Oracle, File)
    • Projektleitung:
      1. Prototypenspezifikation
    • ALLE:
      1. Schnittstellen
 19.12.03
  • Besprechung der Schnittstellen
 09.01.04
  • TODO:
    1. Implementierung und Testen des Prototyps
    2. Schnittstellen (für den Prototyp) sollten bereits abgestimmt sein
    3. mdl. Bericht über aktuellen Stand vorbereiten
    4. es sollten schon einige Sachen des Prototyps funktionieren
  • feststellen des aktuellen Standes der Prototypen
  • Vorstellung Lastenheft
  • Offene Punkte:
    1. Core wird zum Testen gebraucht -- Hardcodiertes InstanceObject bis Montag!
    2. Projektseite in offiziellen Bereich verschieben
    3. CVS Eclipse Versionen
    4. Sachen sollen bis Donnerstag früh fertig sein!
      - Testen für alle Gruppen am Donnerstag möglich
 14.01.04
  • Außerplanmäßiges Treffen der Gruppen um 18 Uhr im Rechnerraum
    - bitte pro Gruppe ein Vertreter
 15.01.04
  • Sachen bis Do früh fertig sein - Testen für alle Gruppen!
 16.01.04
  • Prototyp soll fertig implementiert sein!

  • Status:
    1. I/E:funktioniert soweit alles, Constraints fehlen noch
    2. Core:Parametergeschichten fehlern noch; Abstraktion zur
      nächsten DB/FlatFile
    3. Worker:Joins, Update-Insert Strategien fehlen, Constraints fehlen;
      ansonsten funktioniert alles
    4. GUI:TODO - siehe 23.01.04
  • Einschätzung der bisherigen Implementation:
    1. I/E:
      1. interne Darstellung nur auf Oracle ausgelegt - ändern!
      2. auf anderen DBTypen sollte es sonst keine Probleme geben
    2. Core: Designprobleme ?
      1. Parameter an falscher Entität
      2. MySQL - anders als Oracle
      3. effizienter
      4. Repository Klasse etwas groß - umstrukturieren?
    3. Worker:
      1. Funktionalität erweitern - Performance
      2. Strings (SQL) optimieren
      3. Oracle/MySQL
      4. Joins, Update-Insert Strategien
      5. Fehlerhandling
    4. GUI:
      1. soweit so gut - leicht erweiterbar
      2. Programmstart - Start auch ohne GUI erlauben - Stichwort: crontab
  • Brainstorming
    1. DB-Typen: Oracle, MySQL, Flat Files, (PostgreSQL)
    2. Funktionen: Projektion, Aggregation, Join, user defined Functions
      (nur numerisch)
    3. Tool Tipps
    4. Ansicht der SQL Anweisungen
    5. Insert, Update, Upsert, usw. - wie wird mit Rollback verfahren?
    6. Fehlerbahandlungsstrategie
 23.01.04
  • TODO GUI:
    1. Verbindungslabel statt komplett anzeigen
    2. JDBC-Treiber nicht explizit angeben
    3. @ bei Hostname nicht angeben müssen
    4. CREATE TABLE - nichtbenutzte Felder ausblenden (je nach Datentyp)
    5. Tabelle als Tabellen-Icon (nicht als Ordner)
    6. Spaltenauswahl (nach LF50)
    7. DB-Übertragung von GUI aus (LF60)
    8. garfisch andeuten, wie der Rest funktioniert (Aggregation, Joins, ...)
  • GUI-Verstärkung: Holger
  • TODO Holger: vorläfiges Lastenheft
  • TODO alle: Nacharbeit (wenn nötig), Analyse

  • Vorführung ETLaien (Holger)
  • Besprechung Lastenheft
  • Besprechung Sequenzdiagramme
  • offener Punkt: Plugin CVS

  • Folgende Dinge wurden festgelegt:
    1. SQL-Funktionalitäten:
      • Projektion
      • Aggregation (wie im Lastenheft beschrieben: sum, max, min, avg, count)
      • Join
      • Constraints (where) Es soll eine Auswahlm?glichkeit zwischen Konjunktion
        oder Disjunktion angeboten werden ... kein Mix der beiden in where
        (Operatoren: <, >, =, like)
        Where sollte also folgenderma?en aussehen: column op lit.
        Die Form column op1 lit1 op2 lit2 ist optional, kann also implementiert werden,
        wenn noch Zeit ist!
      • Funktionen (user-defined-functions) sollten nur implementiert werden, wenn
        noch Zeit am Ende ist, da das parsen mit sehr viel Aufwand verbunden ist, der
        Lerneffekt dabei jedoch sehr gering ist!
    2. Generell soll es möglich sein, mehrere Operationen in einem Durchgang ausführen
      zu können. Dies ist im Modellentwurf bereits berücksichtig worden
    3. Strategie: Wir haben uns
      darauf geeinigt, dass der Nutzer sämtliche Entscheidungen trifft um Konflikte in der
      Datenbank zu beseitigen (Rollback oder force). Es soll also auch eine Option "force"
      geben, die jedoch per default deaktiviert ist.
    4. Anforderung an die GUI: auftretende Fehler sollen möglichst genau von dem Modul
      in dem der Fehler auftritt an die GUI gemeldet werden. Die GUI soll dann eine
      möglichst gute Beschreibung des Fehlers an den Nutzer ausgeben (evtl. mit
      Lösungsvorschlägen), um diesem eine schnelle Fehlerbehebung zu ermöglichen.
    5. Testszenario: Die Worker-Gruppe hat die Aufgabe ein Testscenario bis zum
      nächsten Treffen zu entwerfen. Das soll so etwas sein wie: Man hat Kunden- und
      Einkaufs-Daten
      es soll möglich sein zu ermitteln, welche Einkäufe von Kunden unter 30 Jahre
      bzw. über 30 Jahre getätigt werden oder auch genau die von 30jährigen
    6. Lastenheft: Nachdem das Testszenario dann klar ist, kann Holger das Lastenheft
      anpassen und fertig machen und dann mit dem Pflichtenheft beginnen.
 30.01.04
  • Ablauf:
    1. Jasmin präsentiert das Testszenario und ihre Arbeit am Projekt
    2. GUI - vorstellen der GUI / Diskussion
    3. Jürgen erläutert das Worker-Modell
    4. Es muss festgelegt werden, wer die Testdaten für den Abschlusstest "organisiert"

  • Festlegeung auf folgende JDBC-Datentypen:
    1. varchar
    2. integer
    3. character
    4. boolean
    5. date
    6. double
    7. float
    8. time
    9. longvarchar
    Die unteren 5 Datentypen werden vom Import/Export bzgl. der Spezifikation
    angesehen und diese berichten dann nächste Woche, wie sinnvoll es ist, diese
    zu unterstützen (Oracle, MySQL, Files)
 06.02.04
  • TODOs:
    1. Worker: Spezifikation
    2. GUI: bei Aggregation und where-clause nur die Tabellen anzeigen, die auch am Join
      beteiligt sind
    3. GUI: Den riesigen Knopf wegmachen - einen kleineren und bessere Darstellung
    4. GUI: bei group by eine Reihenfolge festlegen, in der man gruppieren will
    5. GUI: bei Mapping Priorität auswählen (stand noch zur Diskussion wie)
    6. I/E: Die unteren 5 Datentypen werden vom Import/Export bzgl. der Spezifikation
      angesehen und diese berichten, wie sinnvoll es ist, diese zu unterstützen (Oracle,
      MySQL, Files)
 13.02.04
  • Implementierung
 20.02.04
  • Implementierung
 23.02.04 -
 27.02.04
  • Blockveranstaltung: Projektabschluss
    1. täglich von 9 (c.t.) - 17 Uhr
    2. 9.15 - ca 9.45: Plenum
    3. 12.30 - 13.00: Mittag
    4. Freitag: 13-14 Uhr: Abschlusspräsentation

UML-Diagramme

  1. Core / Import/Export (1.7 MB!)
  2. GUI - Start
  3. GUI - Welcome
  4. GUI - Mapping
  5. GUI - Import
  6. GUI - Connection
  7. Worker
  8. Klassendiagramm Worker (NEU!)

Gruppeneinteilung

  1. Meta Modell: Yann Michel, Matthias Thränhardt, Sebastian Weber
  2. GUI: Arkadi Omeltchenko, Daniel Weichert, (Holger - Verstärkung)
  3. Transform / Worker: Jasmin Opitz, Robert R. Hornschild-Bear, Jürgen Broß
  4. Import / Export: Maximilian Hoeflich, Andreas Thaler
  5. Projektleitung: Katja Löffler, Holger Rösch

Hinweise

  1. CVS Repository:
    Host: lin210.inf.fu-berlin.de
    Path: /home/datsche/dbpr/repo
    Benutzername: FU-Login
    Passwort: FU-Passwort
    Connection: extssh2 [Plug-In-Download]
    Modul: DWH
  2. Oracle Zugangsdaten:
    Repository Account: User: DBP01
    Source/Target: User: DBP02
    Source/Target: User: DBP03
    SID: DBS
    Host: kuh.inf.fu-berlin.de
    Port: 1521

Coding Standarts

  1. Interface-Klassen müssen neben dem eigentlichen Klassennamen noch
    den Beisatz "Interface" haben, damit die Klasse auf den ersten Blick als
    Interfaceklasse zu identifizieren ist.

Links / Material

  1. Durchstichprototyp:
  2. UML Plugin für Eclipse
  3. Datenbanken
  4. Entwicklungsumgebungen
  5. Sonstiges

send me a letter...