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.
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