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.

190 Kapitel 10 Implementierung<br />

realisiert. Anschließend werden alle Level rekursiv geladen, sodass kein erneutes<br />

Laden von Level notwendig ist.<br />

Im Falle des Aufrufens der Kinder einer Dimension muss hier beachtet werden,<br />

dass bei der Verwendung von ADOMD.NET Hierarchien <strong>und</strong> nicht Level als<br />

Kinder geliefert werden.<br />

MUSTANG Für die MUSTANG-Anbindung muss der Abruf von Kind-Elementen nur<br />

für Dimensionen, Level <strong>und</strong> Nodes implementiert werden. Da Kennzahlengruppen<br />

in MUSTANG nicht explizit behandelt werden, kann es nicht vorkommen, dass<br />

ein Measure-Objekt Kinder hat.<br />

Hier kann problemlos auf die Funktionen der zugr<strong>und</strong>e liegenden MUSTANG-<br />

Klassen zurückgegriffen werden. Die Ergebnisse müssen lediglich in neue Objekte<br />

der Abstraktionsschicht verpackt werden.<br />

10.5.2 Abrufen kompatibler Elemente<br />

Innerhalb eines Datenwürfels kann es möglich sein, dass bestimmte Kennzahlen nicht<br />

zu allen Dimensionen kompatibel sind. Eine Abfrage trotz Inkompatibilität würde<br />

ein ungültiges Ergebnis zurückliefern. Um dieses zu vermeiden, liefert die Methode<br />

GetCompatibles alle Kennzahlen <strong>und</strong> Dimensionen, welche zu den übergebenen<br />

Kennzahlen <strong>und</strong> Dimensionen kompatibel sind.<br />

ADOMD.NET Bei Instanziierung der ADOMD.NET-Implementierung wird direkt ein<br />

Dictionary mit Kennzahlen <strong>und</strong> ihren kompatiblen Dimensionen erstellt. Die<br />

Abfrage der Kompatibilität wird mit Hilfe von Metadaten des Datenwürfels,<br />

welche im XML-Format vorliegen, durchgeführt. Anschließend wird das XML-<br />

Dokument geparst <strong>und</strong> das Dictionary kann gefüllt werden. In der Methode<br />

GetCompatibles werden bei Aufruf mit Language Integrated Query (LINQ) die<br />

passenden Daten herausgesucht (s. Listing 10.2).<br />

1 ...<br />

2 else if ( olapObject .OLAPTyp == OLAPType . Dimension )<br />

3 {<br />

4 // Durchsuche das Dictionary nach kompatiblen Kennzahlen<br />

5 var adomdMeasures = (from i in measureDimensionRelations<br />

6 where i.Value.Contains ( olapObject .Data as Adomd.Dimension<br />

)<br />

7 select i.Key). Distinct ().ToList ();<br />

8 ...<br />

Listing 10.2: LINQ-Statement zum Auffinden kompatibler Kennzahlen für eine Dimension

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!