Datenbanksysteme für neue Anwendungen
Database Systems for New Applications

Das Fachpraktikum 1590: Erweiterbare Datenbanksysteme

Das Lehrgebiet Praktische Informatik IV veranstaltet im Wintersemester 2006/2007 das Fachpraktikum 1590 zum Thema

Erweiterbare Datenbanksysteme

Beschreibung:

Am Lehrgebiet „Datenbanksysteme für neue Anwendungen“ wird seit einigen Jahren ein Prototyp eines erweiterbaren Datenbanksystems, genannt SECONDO, entwickelt. SECONDO implementiert kein festes DBMS-Datenmodell, sondern bietet eine Architektur, einen Systemrahmen und wohldefinierte Schnittstellen für die Realisierung verschiedener Datenmodelle. Als Erweiterungen kann man z.B. Implementierungen von Nicht-Standard-Datentypen (etwa Polygone, Bilder, chemische Formeln), neue Indexstrukturen oder Join-Methoden, Optimierungsregeln oder Kostenfunktionen ins System einbringen. Das Ziel des Praktikums besteht darin, Studierende in diese Forschungsarbeiten
miteinzubeziehen und ein eingehendes Verständnis für die Architektur und Implementierung von Datenbanksystemen und die Möglichkeiten erweiterbarer Systeme zu vermitteln. Absolventen des Praktikums haben eine ausgezeichnete Basis für Abschlußarbeiten (Bachelor, Master, Diplom) in dieser Umgebung.
Im Praktikum sollen kleine Gruppen von jeweils etwa 4 Personen zusammenarbeiten. In einem ersten Praktikumsabschnitt ist eine Reihe kleinerer Aufgaben zu bearbeiten, um SECONDO kennenzulernen. Im zweiten Abschnitt ist eine größere Erweiterungsaufgabe von der Gruppe mit mehr Selbständigkeit und Kreativität zu lösen. Zum Praktikum gehören 3 kurze Präsenzphasen in Hagen zu Anfang, zwischen den beiden Abschnitten, und am Ende des Semesters (3/3/1 Tage; insgesamt 5 Urlaubstage benötigt). Zwischen den Präsenzphasen arbeiten die Teilnehmer miteinander und mit den Betreuern über das Internet zusammen.
Die Programmierung erfolgt im wesentlichen in C++. Bei der Erweiterung oder Konstruktion von Benutzerschnittstellen wird Java verwendet. Wer PROLOG-Kenntnisse besitzt, hat die Chance, Erweiterungen am Optimierer vorzunehmen (optional).
 

Termine:

 

Material:

Die Materialien, die Sie für das Praktikum benötigen, werden Ihnen zugesandt. Darüberhinaus gibt es auch die Möglichkeit, sie hier über die Praktikumsseiten herunterzuladen.

Newsgroup:

Auf dem FernUniversitäts-Newsserver (newsguard.fernuni-hagen.de) steht auch eine Newsgroup mit dem Namen feu.informatik.kurs.1590 für das Praktikum zur Verfügung.
 

Die Teilnehmer

Allgemeines

Während der ersten Präsenzphase hatten wir versucht, die Teilnehmer räumlich zu gruppieren. Dazu sollte jeder Teilnehmer seine Position in eine Karte von Deutschland eintragen. Secondo als erweiterbares Datenbanksystem bietet natürlich auch die Möglichkeit, die Teilnehmer in eine Karte einzutragen. Leider hatten wir die Daten der Teilnehmer bis zu diesem Zeitpunkt nicht entsprechend aufbereitet. Dies haben wir nun nachgeholt. Das Ergebnis können Sie in der nachstehenden pdf-Datei ansehen:

Notwendiges Datenmaterial

Sie haben die Möglichkeit, dies selbst nachzuvollziehen. Dazu benötigen Sie folgende Dateien:

Vorgehensweise

Daten restaurieren
Zunächst wird die Datenbank OpengeoDB restauriert. Nach Öffnen der Datenbank, wird die Teilnehmerliste ebenfalls über einen restore Befehl in der Datenbank abgelegt.
Hintergrund einrichten
Um das Hintergrundbild nutzen zu können, laden Sie dieses im HoeseViewer unter Settings->background->set image und tragen die folgende Box für das Bild ein:
x: 2435611
y: 5190226.5
width: 750730.5
height: 972008.5
Zusätzlich müssen Sie die Gauss-Küger Projektion auswählen.
Query auf der ausführbaren Ebene
Die folgende Query ordnet jedem Teilnehmer seine Position zu:
   query fapra feed {f} PLZ feed {p} hashjoin [Plz_f, plz_p , 900] 
         (Orte feed filter [ (.Staat="DE") or (.Staat="AT")] ) {o} 
         hashjoin [key_p, key_o, 900] sortby[Name_f asc] 
         groupby[ Name_f; pos :  group feed extract[Position_o]] 
       consume
Sie arbeitet wie folgt:
  1. PLZ und fapra werden mittels HashJoin mit Gleichheitbedingung bei den Postleitzahlen zusammengeführt.
  2. Aus den Orten wählen wir solche aus Deutschland oder Österreich.
  3. Über das key Attribut wird das Ergebnis mit dem Ergebnis des ersten Join verbunden.
  4. Die nachfolgende Gruppierung entfernt doppelt vorhandene Positionen mit identischen Postleitzahlen.
Query im Optimierer
Mit einfachen Änderungen am Optimierer, läßt sich diese Query auch in SQL-Syntax formulieren. In der Datei operator.pl, wird dem Optimierer der extract Operator als Aggregationsoperator bekanntgemacht. Dazu fügt man die folgende Zeile in diese Datei ein:
isAggregationOP(extract).
In der Datei opsyntax.pl wird zusätzlich die Syntax dieses Operators erklärt:
secondoOp(extract, postfixbrackets, 2).
Anschließend kann man die gleiche Query wie folgt angeben:
      select  [f:name, f:plz, extract(o:position) as place] 
        from  [fapra as f, plz as p, orte as o] 
        where [(o:staat = "DE") or (o:staat = "AT"), 
                p:key = o:key, f:plz = p:plz] 
      groupby [f:name, f:plz]
Viel Spaß beim Nachmachen.

Auskunft erteilen:

Prof. Dr. Ralf Hartmut Güting, Tel.: (02331) 987-4279, Email: rhg AT fernuni-hagen.de
Dirk Ansorge, Tel.: (02331) 987-4286, Email: dirk.ansorge@fernuni-hagen.de
Thomas Behr, Tel.: (02331) 987-4284, Email: thomas.behr@fernuni-hagen.de
Markus Spiekermann, Tel.: (02331) 987-4285, Email: markus.spiekermann@fernuni-hagen.de

[ Lehrgebiet | Fachbereich Informatik | FernUniversität in Hagen ]


last update: 2006-10-16,