19.01.2015 Aufrufe

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

10.5 Datenbankanbindung 189<br />

Zu beachten ist, dass sowohl MUSTANG als auch ADOMD.NET bereits einige<br />

Funktionen, beispielsweise für bestimmte Datenbankabfragen, bieten. Damit diese<br />

auch weiterhin verwendet werden können, haben die Objekte der Online Analytical<br />

Processing-Abstraktionsschicht ein Data Property vom Typ object. Dieses könnte<br />

im Falle einer Dimension beispielsweise ein DimensionVO von MUSTANG oder eine<br />

ADOMD.NET-Dimension aufnehmen. Operationen auf einem OlapObjekt müssen<br />

daher fast immer durch die entsprechende Implementierung der Datenbankanbindung<br />

vorgenommen werden. So wird gewährleistet, dass sich die Objekte der Abstraktionsschicht<br />

nicht voneinander unterscheiden, selbst wenn unterschiedliche Datenbanken<br />

verwendet werden.<br />

10.5.1 Abrufen von Kind-Elementen<br />

Die Online Analytical Processing-Datenbank ist in einer komplexen hierarchischen<br />

Struktur aufgebaut. Werden die Kinder eines Elements angefordert, so werden diese ggf.<br />

durch die Datenbankimplementierung nachgeladen. Dies geschieht durch einen Aufruf<br />

der Methode GetChildren (s. Listing 10.1).<br />

1 private List < HierarchicalOLAPObject > _Children ;<br />

2<br />

3 public override List < HierarchicalOLAPObject > Children<br />

4 {<br />

5 get<br />

6 {<br />

7 // ueberpruefe , ob bereits Kind - Elemente geladen worden sind<br />

8 if ( _Children == null)<br />

9 {<br />

10 // falls nicht , fordere sie von der Datenbank an<br />

11 _Children = DatabaseFactory . getDBInstance (). GetChildren (this);<br />

12 }<br />

13 return _Children ;<br />

14 }<br />

15 ...<br />

16 }<br />

Listing 10.1: Das Abrufen von Kind-Elementen wird ggf. an die Datenbankinstanz delegiert<br />

Beide Implementierungen unternehmen zuerst eine Überprüfung zu dem übergebenen<br />

Datentyp, um diesen korrekt behandeln zu können. Handelt es sich bei dem Argument<br />

der GetChildren-Methode um ein OlapObject, das nie Kinder haben kann (z. B. einen<br />

Cube), wird eine leere Liste als Ergebnis geliefert.<br />

ADOMD.NET Beim Abruf der Kind-Elemente eines Level muss in diesem Falle<br />

zunächst eine Prüfung auf den ADOMD.NET-Datentyp vorgenommen werden,<br />

da zusätzlich Hierarchie aus ADOMD.NET als Level behandelt werden. Da der<br />

Aufruf der Level einer Hierarchie alle Level, unabhängig von der Tiefe im Baum,<br />

zurück liefert, müssen diese vorerst in eine hierarchische Struktur umgewandelt<br />

werden. Dies wird mit Hilfe einer Sortierung auf die Eigenschaft LevelNumber

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!