Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
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