MIS |
Ein
MIS besitzt als Kern einen sogenannten Datenwürfel.
Dabei handelt es sich um eine mehrdimensionale, Matrix-ähnliche
Struktur. Die einzelnen Dimensionen dieser Struktur sind
typischerweise die Zeit, der Ort, Personen oder Personengruppen,
z.B. Verkäufer(-gruppen), Kunden(-gruppen).
Die Daten, die an den einzelnen Stellen in dem (Hyper-)Würfel,
englisch. hypercube,
gespeichert sind, können im einfachsten Fall einfache Häufigkeiten
sein, im allgemeinen werden aber mehrere unterschiedliche Größen
gespeichert sein: Preis, Menge, ...
In dem zu implementierenden Beispiel sollen Web-Zugriffe
verarbeitet werden. Hier soll ein vereinfachtes Modell
des zu implementierenden System als Veranschaulichung dienen.
Zu einem Web-Dokument sollen folgende Informationen gespeichert
sein: vollständiger Dokumentenname einschließlich Pfad, remote host
und Datum, als einziges Attribut die Anzahl der Zugriffe.
Hier liegt also eine 3-dimensionale Struktur vor mit den Dimensionen
Datum, remote host und Dokumentenname, also wird ein Attribut, eine
Zugriffshäufigkeit durch einen Schlüssel mit 3 Komponenten identifiziert.
Aus relationaler Sicht liegt also eine 4-stellige Relation vor
mit 3 Feldern als Schlüssel und einem numerischen Feld als Attribut.
Zur Visualisierung der Daten in dem Würfel sind Projektionen in
eine zwei- oder eindimensionale Darstellung notwendig. Hierzu gibt es
im wesentlichen zwei Operationen:
- für alle bis auf zwei Dimensionen eine Selektion mit einem
festen Wert, zum Beispiel Selektion auf ein Dokument, auf einen remote host
oder auf ein Datum.
-
für alle bis auf zwei Dimensionen eine Aggregation der Attributwerte,
im Beispiel ein Aufsummieren über die Zeit, über alle Dokumente oder
über alle remote hosts.
Bei diesem Vorgehen werden die entstehenden Matrizen im allgemeinen
in beiden Dimensionen zu viele Werte haben, die Information ist
also noch zu detailiert. Außerdem wird eine solche Matrix häufig
nur dünn besetzt sein. Die einzelnen Dimensionen müssen also noch
vergröbert und komprimiert werden und die Einträge weiter aggregiert
werden, auch cluster-Bildung genannt.
Dazu werden auf den einzelnen Dimensionen Hierarchien definiert, im Beispiel
auf dem Datumsbereich:
Tag --> Monat --> Jahr --> alle,
für die remote hosts die Domänen-Hierarchie:
www.fh-wedel.de --> fh-wedel.de --> de --> alle,
für die Dokumente die Verzeichnishierarchie:
/~si/vorlesungen/java/java.html --> /~si/vorlesungen/java/
--> /~si/vorlesungen/ --> /~si/vorlesungen/ --> /~si/ --> /.
Über die einzelnen Schichten dieser Hierarchien können die Daten
verdichtet und vergröbert werden.
Eine verdichtet Sicht auf einen Datenwürfel wird also
festgelegt durch eine Reihe von Selektionen, eine Reihe von
Aggregationen und zusätzlich Hierarchieebenen für die Vergröberung,
die cluster-Bildung. Für eine Zugriffstatistik für alle Web-Seiten
aus den Java-Vorlesungsunterlagen
für das Jahr 1998 aufsummiert auf Monatsbasis von der Domäne de
wären also folgende Operationen nötig:
- eine Teil-Selektion auf die Dimension remote host mit de
- eine Teil-Selektion auf der Datums-Dimension mit 1998
- eine Teil-Selektion auf den Dokumenten mit /~si/vorlesungen/java/
- eine cluster-Bildung auf der Datums-Dimension auf die Hierarchiestufe Monat
Die entscheidenden Operationen auf dem Datenwürfel,
die sehr effizient auch für große Datenmengen arbeiten müssen,
sind also die Selektion auf einen beliebigen Knoten einer beliebigen
Hierarchie, und die Aggregation von Attributen pro Schlüsselwert
in beliebigen Hierarchien. Standard SQL-Anfragen sind hier aus
Geschwindigkeitsgründen nicht brauchbar.
|
2.Teil |
Eine Präsentationsschicht für beliebige Anfragen auf einem
Datenwürfel. Die Anfragen sollen über einen HTTP-server
laufen können, zum Beispiel über CGI oder die servlet-Schnittstelle des Apache-Servers.
Die Implementierung kann auf 2 Arten gemacht werden:
- reine HTML-Präsentationsschicht mit Ausreizen
der Möglichkeiten von Tabellen, wie Hintergrundfarben, explizite Größenangaben, ...
- mit Java-Applets und Torten- und Balkendiagrammen mit Java-beans,
möglichst mit vorgefertigten beans.
|
Testdaten |
Die Datei log.txt.gz (35705 bytes)
enthält Testdaten für die
Web-Zugriffe (ungefähr 2490). Die Datei ist mit gzip gepackt.
Das Format in dieser Datei ist folgendermaßen
festgelegt: in jeder Zeile steht genau ein Zugriff.
Die einzelnen Felder in einer Spalte sind durch ein
Tabulatorzeichen getrennt.
In der 1. Spalte steht das Datum, in der 2. die Uhrzeit,
in der 3. das Dokument einschließlich search string,
die 4. Spalte enthält den remote host, die 5. den
referer und die 6. den browser.
Die Datei loglong.txt.gz (616147 bytes)
enthält
logging-Daten im gleichen Format, enthält aber 47619 Datensätze,
mit denen ein Massetest durchgeführt werden kann.
|