COGNOS(R) 8
COGNOS(R) 8
COGNOS(R) 8
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>COGNOS</strong> (R) 8<br />
FRAMEWORK MANAGER<br />
Richtlinien für die Erstellung von Metadatenmodellen<br />
01-08-2005<br />
Framework Manager<br />
8.1<br />
Cognos(R) 8 Business Intelligence Readme<br />
RICHTLINIEN FÜR DIE ERSTELLUNG VON METADATENMODELLEN<br />
RICHTLINIEN FÜR DIE<br />
ERSTELLUNG VON<br />
METADATENMODELLEN<br />
THE NEXT LEVEL OF PERFORMANCE TM
Produktinformationen<br />
Dieses Dokument bezieht sich auf Cognos (R)<br />
8 Version 8.1 und möglicherweise auch auf zukünftige Versionen. Jüngere Versionen dieses<br />
Dokuments finden Sie auf der Website des Cognos Support (http://support.cognos.com).<br />
Copyright<br />
Copyright (C) 2005 Cognos Incorporated<br />
Portions of Cognos(R) software products are protected by one or more of the following U.S. Patents: 6,609,123 B1; 6,611,838 B1; 6,662,188<br />
B1; 6,728,697 B2; 6,741,982 B2; 6,763,520 B1; 6,768,995 B2; 6,782,378 B2; 6,847,973 B2; 6,907,428 B2; 6,853,375 B2.<br />
Cognos und das Cognos Logo sind Marken von Cognos Incorporated in the Vereinigten Staaten und/oder anderen Ländern. Alle anderen<br />
genannten Produktnamen sind Marken oder eingetragenen Marken der jeweiligen Firmen.<br />
Wir haben uns bemüht, sicherzustellen, dass die Informationen in diesem Dokument so genau und vollständig wie möglich sind; trotzdem ist<br />
nicht auszuschließen, dass vereinzelt Druckfehler oder inhaltliche Ungenauigkeiten auftreten können. Cognos übernimmt keine Verantwortung<br />
für Verluste, die durch die Verwendung der in diesem Dokument enthaltenen Informationen entstehen.<br />
Dieses Dokument zeigt das Veröffentlichungsdatum. Bei den in diesem Dokument enthaltenen Informationen sind Änderungen vorbehalten.<br />
Alle Veränderungen oder Verbesserungen der Software oder des Dokuments werden in zukünftigen Ausgaben dokumentiert.<br />
Diese Software/dieses Dokument enthält urheberrechtlich geschützte Informationen von Cognos Incorporated. Alle Rechte vorbehalten. Die<br />
Rückentwicklung dieser Software ist nicht gestattet. Diese Software/dieses Dokument oder Teile davon dürfen ohne die vorherige ausdrückliche,<br />
schriftliche Zustimmung von Cognos Incorporated nicht kopiert, reproduziert, in einem Datenabrufsystem gespeichert, in einer beliebigen<br />
Form und mit beliebigen Hilfsmitteln übertragen oder in eine andere Sprache übersetzt werden.
Inhaltsverzeichnis<br />
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen 5<br />
Szenarien 5<br />
Neue Objekte in Cognos 8 6<br />
Determinanten 6<br />
Reguläre Dimension 7<br />
Kennzahldimension 7<br />
Bereichsbeziehung 7<br />
Dimensionales Modellieren relationaler Datenquellen 7<br />
Überprüfen importierter Metadaten 8<br />
Vereinfachen von Modellen anhand von dimensionalen Konzepten 11<br />
Klären nicht eindeutiger Beziehungen 13<br />
Definieren von Dimensionen und Determinanten 17<br />
Erstellen von Sternschemagruppen 24<br />
Aktualisieren von Best-Practices-Modellen von ReportNet 1.x 25<br />
Überprüfen des vorhandenen Modells 26<br />
Aktualisieren des Modells 26<br />
Kapitel 2: Das von Cognos 8 generierte SQL 33<br />
Übersicht über dimensionale Abfragen bei der Verwendung von Best Practices 33<br />
Abfrage einzelner Fakten 33<br />
Abfrage mehrerer Fakten und mehrerer Ebenen von angepassten Dimensionen 34<br />
Modellieren von 1-n-Beziehungen als 1-1-Beziehungen 36<br />
Abfrage mehrerer Fakten und mehrerer Ebenen bei nicht angepassten Dimensionen 37<br />
Auflösen uneindeutig identifizierter Dimensionen und Fakten 40<br />
Auflösen von Abfragen, die nicht geteilt werden sollten 40<br />
Auflösen von Abfragen, die an der falschen Stelle geteilt sind 43<br />
Index 49<br />
Richtlinien für die Erstellung von Metadatenmodellen 3
4 Framework Manager
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Szenarien<br />
Framework Manager ist ein Tool zur Erstellung von Metadatenmodellen. Ein Modell ist eine<br />
unternehmensspezifische Darstellung von Informationen in einer oder mehreren Datenquellen.<br />
Wenn Sie dieser unternehmensspezifischen Darstellung Zugriffsschutz, mehrsprachige Metadaten<br />
und dimensionale Metadaten hinzufügen, kann ein Modell die Anforderungen vieler internationaler<br />
Benutzergruppen an Berichterstellungen, Ad-hoc-Abfragen und Analysen erfüllen.<br />
Ein wichtiges Ziel bei der Vorbereitung von Metadaten für Business Intelligence ist die Nutzung<br />
vorhandener Metadaten während des Hinzufügens von Werten, damit Ihre Benutzer die notwendigen<br />
Informationen finden können.<br />
Cognos 8 aktiviert Business Intelligence für normalisierte und entnormalisierte relationale Datenquellen<br />
sowie eine Vielzahl von OLAP-Datenquellen.<br />
Dieses Dokument behandelt grundlegende Konzepte für die Erstellung von Modellen von relationalen<br />
Datenquellen in Framework Manager und enthält Herstellerempfehlungen zur Erstellung<br />
von Metadatenmodellen für die Verwendung bei Berichterstellungen und Analysen in Unternehmen.<br />
Mit Framework Manager können Sie alle relationalen Datenquellen dimensional modellieren.<br />
Obwohl ein dimensionales Schema nicht zwangsläufig in Cognos 8 verwendet werden muss,<br />
wurden viele Funktionen hinzugefügt, damit Sie die Vorzüge dimensionaler Schemen besser nutzen<br />
und eine logische dimensionale Ansicht nicht dimensionaler Schemen erstellen können.<br />
Die Struktur der Themen in diesem Dokument richtet sich nach den unterschiedlichen Szenarien.<br />
Verwenden Sie das Thema, das mit Ihren Zielen übereinstimmt.<br />
Dimensionales Modellieren relationaler Datenquellen<br />
Das dimensionale Modellieren relationaler Datenquellen ist eine Funktion, die von Cognos 8 Framework<br />
Manager bereitgestellt wird. In ReportNet 1.x konnten Abfragen mit mehreren Fakten<br />
aktiviert und Doppelzählungen vermieden werden. Cognos 8 wiederum führt Funktionen ein, die<br />
ausdrücklich für das dimensionale Modellieren konzipiert wurden. Jetzt ist es möglich, Modelle<br />
von Dimensionen mit Hierarchien und Ebenen zu erstellen und Fakten mit mehreren Kennzahlen<br />
zu besitzen. Anschließend können Sie Beziehungen zwischen Dimensionen und Kennzahlen herstellen,<br />
indem Sie den Bereich im Modell verwenden.<br />
Weitere Informationen finden Sie unter "Dimensionales Modellieren relationaler<br />
Datenquellen" (S. 7).<br />
Aktualisieren von Best-Practices-Modellen von ReportNet 1.x<br />
Wenn Ihr Modell anhand von Best Practices (optimalen Verfahren) in ReportNet 1.x erstellt<br />
wurde, kann ein Großteil der Aktualisierung auf die neuen Funktionen von Cognos 8 in Framework<br />
Manager durchgeführt werden. Der Befehl Verify Model wurde erweitert, damit Sie Objekte<br />
im Modell auswählen und automatisch in Cognos 8-Dimensionen konvertieren können. Dadurch<br />
können die Metadaten genutzt werden, die im vorhandenen Modell bereitstehen. Sie können sich<br />
weiterhin mit Abfragesubjekten beschäftigen und Dimensionsinformationen in ReportNet 1.x in<br />
Determinanten übersetzen lassen, oder Sie können mit den Dimensionen fortfahren. Wenn Sie mit<br />
den Dimensionen fortfahren, werden die vorhandenen Dimensionsinformationen in Ihrem Modell<br />
zum Erstellen der ersten Hierarchie und der ersten Ebenen verwendet.<br />
Weitere Informationen finden Sie unter "Aktualisieren von Best-Practices-Modellen von<br />
ReportNet 1.x" (S. 25).<br />
Richtlinien für die Erstellung von Metadatenmodellen 5
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Neue Objekte in Cognos 8<br />
Determinanten<br />
6 Framework Manager<br />
In ReportNet 1.x wurden für Dimensionsinformationen die Konzepte von Eindeutigkeit und<br />
Dimensionshierarchien kombiniert. In Cognos 8 wurde das Konzept der Dimensionsinformationen<br />
zur Kontrolle von Eindeutigkeit und Granularität aufgeteilt. Diese Kontrolle ist für Abfragesubjekte<br />
erforderlich, die auf Relationen basieren, sowie für explizit adressierte Konzepte von<br />
Hierarchien und Ebenen für dimensionale Objekte, selbst auf relationalen Quellen.<br />
Beim Überprüfen von Dimensionsinformationen müssen Sie verstehen, wie die Dimensionsinformationen<br />
auf das Abfragesubjekt angewendet werden und wie das Abfragesubjekt im Cognos 8-<br />
Modell verwendet wird.<br />
Folgende neue Objekte wurden in Cognos 8 eingeführt:<br />
• Determinanten für Abfragesubjekte<br />
• reguläre Dimensionen<br />
• Kennzahldimensionen<br />
• Bereichsbeziehungen<br />
Determinanten sind nicht mit Ebenen und Hierarchien identisch, können aber eng mit einer einzelnen<br />
Hierarchie verbunden sein. Die Abfragen-Engine wertet Determinanten von der ersten bis zur<br />
letzten aus. Es können ein oder mehrere Determinanten angegeben werden.<br />
Wenn eine reguläre Modelldimension auf einem Abfragesubjekt mit angegebenen Determinanten<br />
basiert, wird empfohlen, dass<br />
• jeder im Abfragesubjekt vorhandenen Determinante eine Ebene entspricht<br />
• die Reihenfolge der Ebenen in der Hierarchie die Reihenfolge der Determinanten widerspiegelt<br />
Das führt zu einem einheitlichen Modell und erleichtert das Aktualisieren des Modells in zukünftigen<br />
Versionen von Cognos-Produkten.<br />
Eine Determinante ist ein Satz von Datenbankspalten (Abfrageelementen), der für die eindeutige<br />
Identifikation eines Datensatzes verwendet werden kann. Determinanten werden auf der Grundlage<br />
von Schlüssel- und Indexinformationen in der Datenquelle importiert. Es wird empfohlen, die<br />
importierten Determinanten immer zu überprüfen.<br />
Mit Determinanten können Sie folgende Aktionen durchführen:<br />
• Hinzufügen von Informationen über Funktionsabhängigkeiten zwischen den Spalten, um<br />
Doppelzählungen zu vermeiden.<br />
• Festlegen der Granularität von entnormalisierten Abfragesubjekten, um bei der Verwendung<br />
von Modelldimensionen Gruppierungen und Doppelzählungen zu steuern.<br />
Z. B. stellen einige Fakten eine Verbindung zur Zeit auf der Grundlage von Monaten, andere<br />
auf der Grundlage von Tagen her. Legen Sie die Zeitdeterminanten fest, um die Funktionsabhängigkeit<br />
zwischen Monat und Tag als Minimum klar zu erfassen. So können Sie die Doppelzählung<br />
dieser Fakten verhindern, die eine Verbindung zum Monatsschlüssel herstellen.<br />
• Eindeutiges Identifizieren der Datenzeile beim Abrufen von Textblob-Daten aus der Datenquelle.<br />
• Überschreiben der aus der Datenquelle importierten Determinanten, bei denen ein Konflikt<br />
mit den Beziehungen besteht, die für die Berichterstellung erstellt wurden.<br />
So sind beispielsweise Determinanten zu zwei Abfragesubjekten für mehrere Spalten vorhanden,<br />
aber die Beziehung zwischen den Abfragesubjekten verwendet nur eine Untermenge dieser<br />
Spalten. Ändern Sie die Determinanteninformationen des Abfragesubjekts, wenn es die<br />
zusätzlichen Spalten in der Beziehung nicht verwenden kann.<br />
Weitere Informationen finden Sie unter "Definieren von Dimensionen und<br />
Determinanten" (S. 17).
Reguläre Dimension<br />
Kennzahldimension<br />
Bereichsbeziehung<br />
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Eine reguläre Dimension enthält beschreibende und Unternehmensschlüsselinformationen und<br />
strukturiert die Informationen in einer Hierarchie von der obersten Granularitätsebene zur untersten.<br />
Sie hat in der Regel mehrere Ebenen und kann über mehrere Schlüsselsegmente für die Definition<br />
einer Ebene verfügen. Außerdem kann sie mehrere Hierarchien haben.<br />
Für eine reguläre Dimension der Datenquelle kann nur eine einzige Hierarchie definiert werden.<br />
Bei angepassten Dimensionen ist die Abfrage mehrerer Fakten möglich.<br />
Eine Kennzahldimension ist eine Zusammenstellung von Fakten.<br />
Sie können für ein oder mehrere Abfragesubjekte mit einer gültigen Beziehung zueinander eine<br />
Kennzahldimension erstellen.<br />
Bereichsbeziehungen bestehen zwischen Kennzahldimensionen und regulären Dimensionen und<br />
definieren die Ebene, auf der die Kennzahlen für die Berichterstellung zur Verfügung stehen.<br />
Bereichsbeziehungen bestimmen die Berichterstellungsgranularität der regulären Dimension für<br />
eine bestimmte Kennzahldimension.<br />
Bereichsbeziehungen sind zwischen Kennzahlen und Dimensionen bei der Berichterstellung obligatorisch.<br />
Wenn keine Bereichsbeziehung vorhanden ist, führt dies zur Laufzeit zu einem Fehler.<br />
Bereichsbeziehungen dienen der Berichterstellung. Sie sind nicht mit Verbindungen identisch und<br />
beeinflussen nicht die Where-Klausel.<br />
Mit Bereichsbeziehungen können Sie die reguläre Dimension in die Sternschemagruppe integrieren<br />
oder daraus ausschließen.<br />
Es können keine Verknüpfungen für Bereichsbeziehungen erstellt werden. Bereichsbeziehungen<br />
können nur zwischen regulären Dimensionen und Kennzahldimensionen vorhanden sein. Außerdem<br />
können Bereichsbeziehungen für Verknüpfungen zu Dimensionsobjekten erstellt werden.<br />
Wenn Verknüpfungen zu Dimensionen verwendet werden, wird der Bereich vom Bereich des<br />
ursprünglichen Objekts abgeleitet, sofern der Bereich nicht ausdrücklich für die Verknüpfungen<br />
definiert wurde.<br />
Dimensionales Modellieren relationaler Datenquellen<br />
Sie müssen eine relationale Datenquelle dimensional modellieren, wenn Sie eine der folgenden<br />
Aktionen durchführen möchten:<br />
• Verwenden von Analysis Studio<br />
• Aktivieren von Drillfunktionen in Berichten<br />
• Verbessern der Steuermöglichkeiten der Abfragegranularität<br />
• Zugreifen auf Mitgliederfunktionen in den Berichterstellungstools<br />
Es wird empfohlen, bei der dimensionalen Modellierung von relationalen Datenquellen dem folgenden<br />
Workflow zu folgen:<br />
❑ Importieren Sie die Metadaten.<br />
❑ Überprüfen Sie die importierten Metadaten (S. 8).<br />
❑ Passen Sie die Metadaten an.<br />
❑ Vereinfachen Sie das Modell anhand von dimensionalen Konzepten (S. 11).<br />
❑ Klären Sie nicht eindeutige Beziehungen (S. 13).<br />
❑ Definieren Sie Dimensionen und Determinanten (S. 17).<br />
❑ Strukturieren Sie das Modell durch Erstellen von unternehmensspezifischen Ansichten.<br />
❑ Erstellen Sie Sternschemagruppen (S. 24).<br />
Richtlinien für die Erstellung von Metadatenmodellen 7
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
8 Framework Manager<br />
❑ Richten Sie Zugriffsschutz ein.<br />
❑ Erstellen Sie Packages, und publizieren Sie Metadaten.<br />
Informationen zu den hier nicht behandelten Themen finden Sie unter "Designing a Project",<br />
"Preparing Relational Metadata for Use in Reports" und "Making Metadata Available to Report<br />
Authors" im Framework Manager User Guide.<br />
Alle Beispiele in diesem Dokument verwenden die Datenbankansicht des normalisierten Modells<br />
"gosales_goretailers" oder die Importansicht des Modells "go_data_warehouse", die in den<br />
Cognos 8-Beispielen enthalten sind.<br />
Überprüfen importierter Metadaten<br />
Nach dem Importieren von Metadaten müssen Sie die importierten Metadaten in den folgenden<br />
Bereichen überprüfen:<br />
• Beziehungen und Kardinalität<br />
• Eigenschaft Usage für Abfrageelemente<br />
• Eigenschaft Regular Aggregate für Abfrageelemente<br />
Hier werden Beziehungen in Verbindung mit Kardinalität diskutiert. Informationen zu den Eigenschaften<br />
Usage und Regular Aggregate finden Sie unter Modifying the Properties of Query Items<br />
im User Guide von Framework Manager.<br />
Kardinalität wird mit Dimensionen kombiniert, um die Art der Generierung von Abfragen zu steuern.<br />
Dadurch können Sie<br />
• Doppelzählungen vermeiden<br />
• Schleifenverbindungen automatisch auflösen<br />
• Faktübergreifende Abfragen für Berichterstellung und Analyse aktivieren<br />
Sie können Modelldimensionen und Datenquellendimensionen erstellen. Modelldimensionen werden<br />
auf der Grundlage von Abfragesubjekten erstellt, die Determinanten und Beziehungen mit<br />
Kardinalität verwenden. Datenquellendimensionen enthalten ihr eigenes SQL und verwenden<br />
Hierarchie- und Ebeneninformationen sowie Beziehungen mit Kardinalität, um die Abfragegranulariät<br />
zu definieren.<br />
Die Kardinalität beeinflusst das Abfrageverhalten, indem sie es ermöglicht, dass Regeln bezüglich<br />
der Granularität von Daten, die von einem einzelnen Objekt zurückgegeben werden, und der Auswirkungen<br />
von Verbindungen zwischen Objekten angewendet werden. Die in der Beziehung zwischen<br />
Abfragesubjekten oder Dimensionen festgelegte Kardinalität gibt an, wie und wann<br />
Cognos 8 zusammengefügte Abfragen generiert. Zusammengefügte Abfragen werden für die<br />
Abfrage mehrerer Fakten in angepassten Dimensionen und verschiedenen Granularitätsebenen<br />
benötigt.<br />
Erkennen von Kardinalitäten aus Datenquellen<br />
Beim Importieren aus einer relationalen Datenquelle wird Kardinalität auf der Grundlage einer<br />
Reihe von Regeln erkannt, die Sie festlegen. Die verfügbaren Optionen sind<br />
• Verwendung von Primär- und Fremdschlüsseln<br />
• Verwendung von übereinstimmenden Abfrageelementnamen, die Spalten mit eindeutigem<br />
Index darstellen<br />
• Verwendung von übereinstimmenden Abfrageelementnamen<br />
Am häufigsten werden Primär- und Fremdschlüssel sowie übereinstimmende Abfrageelemente verwendet,<br />
die Spalten mit eindeutigem Index darstellen. Die Informationen dienen dem Festlegen<br />
einiger Eigenschaften der Abfrageelemente sowie dem Erstellen von Beziehungen.
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Wenn Sie die importierten Index- und Schlüsselinformationen anzeigen möchten, klicken Sie mit<br />
der rechten Maustaste auf ein Abfragesubjekt oder eine reguläre Dimension und anschließend auf<br />
Edit Definition. Bei einem Abfragesubjekt können Sie die Informationen in der Registerkarte<br />
Determinants ändern. Alle regulären Dimensionen sind zunächst Abfragesubjekte. Wenn Sie ein<br />
Abfragesubjekt in eine reguläre Dimension konvertiert haben, beachten Sie, dass die Determinanteninformationen<br />
für das Abfragesubjekt als Ausgangspunkt eingesetzt werden, um die Ebenen<br />
einer einzelnen Hierarchie zu definieren. Es wird empfohlen, die Ebenen und Schlüssel zu prüfen,<br />
die in der Hierarchie der Dimension erstellt wurden.<br />
Optionale Beziehungen, vollständige offene Verbindungen und n-zu-n-Beziehungen können aus<br />
Ihrer Datenquelle importiert werden. Framework Manager führt sie als Abfragen aus.<br />
Reflexive Beziehungen können aus Ihrer Datenquelle importiert werden und werden im Modell<br />
angezeigt. Framework Manager führt sie jedoch nicht als Abfragen aus. Auch wenn Sie die Metadaten<br />
anzeigen können, die die reflexive Beziehung definieren, können Sie eine reflexive Beziehung<br />
in Framework Manager nicht bearbeiten.<br />
Weitere Informationen finden Sie unter "Reflexive und rekursive Beziehungen" (S. 16).<br />
Kardinalitäten in generierten Abfragen<br />
Framework Manager unterstützt sowohl die minimale/maximale Kardinalität als auch die obligatorische/optionale<br />
Kardinalität.<br />
0:1 - 0 ist die minimale Kardinalität, 1 ist die maximale Kardinalität<br />
1:n - 1 ist die minimale Kardinalität, n ist die maximale Kardinalität<br />
Eine Beziehung mit der Kardinalität 1-n kann angegeben werden als 1:1 bis 1:n, wenn die maximalen<br />
Kardinalitäten gelesen werden. Die minimale Kardinalität von 1 ist für optionale Daten auf<br />
0 festgelegt. Daher kann die 1-n-Beziehung auch als 0:1 bis 0:n, 0:1 bis 1:n oder 1:1 bis 0:n<br />
angegeben werden.<br />
Die wichtigsten Regeln für die Verwendung von Kardinalitäten lauten wie folgt:<br />
• Kardinalität wird im Rahmen einer Abfrage verwendet, d. h., es werden nur die Kardinalitäten<br />
von explizit in die Abfrage integrierten Elementen ausgewertet.<br />
• 1-n-Kardinalität bedeutet Fakt auf der Seite n und Dimension auf der Seite 1.<br />
• Ein Abfragesubjekt kann in einer Abfrage als Dimension und in einer anderen als Fakt fungieren.<br />
• Abfragen von mehreren Fakten werden zu einer zusammengefügten Abfrage.<br />
Weitere Informationen finden Sie unter "Abfrage einzelner Fakten" (S. 33) und "Abfrage mehrerer<br />
Fakten und mehrerer Ebenen von angepassten Dimensionen" (S. 34).<br />
Modellieren von 1-n-Beziehungen als 1-1-Beziehungen<br />
Wenn eine 1-n-Beziehung in den Daten vorhanden ist, im Modell jedoch als 1-1-Beziehung dargestellt<br />
wird, können SQL-Traps nicht vermieden werden, weil die von den Metadaten für die<br />
Abfrage-Engine bereitgestellten Informationen nicht ausreichen.<br />
Wenn 1-n-Beziehungen im Modell als 1-1 dargestellt werden, treten sehr häufig folgende Probleme<br />
auf:<br />
• Doppelzählung für Abfragen mehrerer Ebenen wird nicht automatisch vermieden.<br />
Cognos 8 kann keine Fakten finden und anschließend keine zusammengefügte Abfrage erzeugen,<br />
um die Doppelzählung auszugleichen, was beim Umgang mit hierarchischen Beziehungen<br />
und verschiedenen Ebenen der Granularitäten in angepassten Dimensionen auftreten kann.<br />
• Abfragen mehrerer Fakten werden nicht automatisch gefunden.<br />
Cognos 8 verfügt nicht über ausreichend Informationen, um eine Abfrage mit mehreren Fakten<br />
zu finden. Bei Abfragen mehrerer Fakten wird eine geschlossene Verbindung durchgeführt,<br />
und die Schleifenverbindung wird durch Ablegen der letzten ausgewerteten Verbindung<br />
entfernt. In Abhängigkeit von den Dimensionen und Fakten in der Abfrage kann das Ablegen<br />
einer Verbindung zu falschen oder unerwarteten Ergebnissen führen.<br />
Richtlinien für die Erstellung von Metadatenmodellen 9
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
10 Framework Manager<br />
In Report Studio können Sie diese Probleme umgehen, indem Sie zwischen den Abfragen eine<br />
geschlossene oder offene Verbindung erstellen. Dafür benötigt der Berichtsautor detaillierte<br />
Kenntnisse der Daten. In Query Studio oder Analysis Studio können solche Probleme nicht<br />
umgangen werden.<br />
Analysieren von Modellen für Fakten und Dimensionen<br />
Wenn Sie eine relationale Datenbank für faktübergreifende Abfragen und Analysen dimensional<br />
modellieren möchten, müssen Sie das zugrunde liegende Schema und die Adressbereiche untersuchen,<br />
in denen die Rolle eines Objekts als Fakt oder Dimension nicht eindeutig ist. Diese Untersuchung<br />
kann zur Erstellung einer logischen Schicht führen, um die Daten als Sternschema<br />
darzustellen. Möglicherweise nehmen Sie aber auch Änderungen an der physischen Datenquelle<br />
vor, um eine Anwendung mit höherer Leistung bereitzustellen. Physische Änderungen können u. a.<br />
die Konsolidierung von Tabellen mithilfe von Tools zum Extrahieren/Transformieren/Laden oder<br />
die Erstellung von konvertierten Ansichten für häufig verwendete Aggregationen umfassen.<br />
Möglicherweise müssen Sie in einer relationalen Datenquelle, die nicht anhand von Sternschemakonzepten<br />
entnormalisiert wurde, die Kardinalität der importierten Abfragesubjekte vor der<br />
Erstellung von Dimensionen oder der Konvertierung von Abfragesubjekten in Dimensionen analysieren.<br />
Zunächst müssen Sie die Unternehmensanwendungen der zugrunde liegenden Daten sowie<br />
die Art der Generierung von Abfragen in Cognos 8 verstehen.<br />
Im Kontext einer Abfrage kann ein Abfragesubjekt mit einer Kardinalität von n in allen seinen 1n-Beziehungen<br />
mit anderen Abfragesubjekten als Fakt betrachtet werden. Dies bedeutet, dass<br />
mehr Datenzeilen im Faktabfragesubjekt als im verbundenen Abfragesubjekt auf der Seite 1 der<br />
Beziehung vorhanden sind. Alle Abfragesubjekte auf der Seite 1 einer 1-n-Beziehung mit einem<br />
anderen Abfragesubjekt werden als Dimension behandelt.<br />
In den folgenden Beispielen wird veranschaulicht, wie Schemen interpretiert werden können.<br />
In den ersten beiden Beispielen wird gezeigt, dass sich "Sales Staff" direkt auf "Sales Fact", aber<br />
auch über "Sales Branch" auf "Sales Fact" beziehen kann. Mehrere Vertriebsmitarbeiter gehören<br />
zu einem Vertriebsbüro, und die Mitarbeiter können über einen längeren Zeitraum zu verschiedenen<br />
Vertriebsbüros gehören. Damit der Umsatz in einem Büro zu einem bestimmten Zeitpunkt<br />
korrekt bestimmt werden kann, muss "Sales Branch" direkt, und nicht erst über "Sales Staff", mit<br />
"Sales" verbunden werden.<br />
Beispiel 1<br />
In diesem Beispiel sind alle vier Abfragesubjekte in einer Abfrage enthalten. Das Diagramm zeigt,<br />
dass die Abfragesubjekte als Fakten behandelt werden, die nur n Kardinalitäten besitzen. "Sales<br />
Staff" und "Order Details" werden als Fakten behandelt. "Order Header" und "Sales Branch"<br />
werden als Dimensionen behandelt.<br />
Beispiel 2<br />
In diesem Beispiel sind nur drei Abfragesubjekte in einer Abfrage enthalten. "Order Details" wird<br />
in der Abfrage nicht verwendet. "Order Header" wird nun als Fakt behandelt. "Sales Staff" wird<br />
weiterhin als Fakt behandelt.
Beispiel 3<br />
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
In diesem Beispiel werden verschiedene Abfragesubjekte veranschaulicht. Pfeile zeigen auf die<br />
Abfragesubjekte, deren Kardinalität angibt, dass sie immer Fakten sind. Bereiche, in denen das<br />
Verhalten vom Kontext der Abfrage abhängt, sind eingekreist. Alle anderen Abfragesubjekte verhalten<br />
sich als Dimensionen in allen Abfragen.<br />
Weitere Informationen finden Sie unter "Das von Cognos 8 generierte SQL" (S. 33).<br />
Vereinfachen von Modellen anhand von dimensionalen Konzepten<br />
Diese Regeln gelten für die Modellierung mit Abfragesubjekten oder Dimensionen:<br />
• Erstellen Sie eine reguläre Dimension für Gruppen von Abfragesubjekten mit hierarchischen<br />
Beziehungen, die ein einzelnes Unternehmenskonzept darstellen (S. 12).<br />
• Erstellen Sie eine Kennzahldimension für Gruppen von Abfragesubjekten mit Faktdaten, die<br />
viele reguläre Dimensionen gemeinsam nutzen oder die eine Beziehung vom Typ Master/Detail<br />
aufweisen (S. 12).<br />
• Verwenden Sie die Kardinalitätsregeln, um Modellbereiche zu erkennen, in denen die Rolle<br />
eines Objekts als Fakt oder Dimension unklar ist. Weitere Informationen finden Sie unter<br />
"Kardinalitäten in generierten Abfragen" (S. 9).<br />
Das Ergebnis der Vereinfachung des Modells sollte eine Schicht regulärer Dimensionen oder Kennzahldimensionen<br />
sein, durch die die Daten zu den Unternehmenskonzepten klar dargestellt und<br />
eine vorhersehbare Abfragengenerierung sichergestellt wird.<br />
Wenn Ihre Datenquelle Fakt-zu-Fakt-Beziehungen enthält, sollten Sie diese in der Datenquelle verarbeiten.<br />
Richtlinien für die Erstellung von Metadatenmodellen 11
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Erstellen von regulären Dimensionen<br />
12 Framework Manager<br />
Normalisierte bzw. "Schneeflocken"-Datenquellen verfügen oft über verschiedene Tabellen, die<br />
ein einzelnes Unternehmenskonzept beschreiben. Eine normalisierte Darstellung von "Product"<br />
kann z. B. vier Tabellen enthalten, die mit 1-n-Beziehungen verbunden sind. Jede "Product Line"<br />
verfügt über einen oder mehrere "Product Types". Jeder "Product Type" verfügt über ein oder<br />
mehrere "Products". Namen und Beschreibungen von Produkten sind in mehreren Sprachen vorhanden,<br />
weshalb sie in einer Nachschlagetabelle "Product" aufgeführt werden.<br />
Ein Endbenutzer kennt möglicherweise nicht die Beziehungen der einzelnen Abfragesubjekte<br />
untereinander. Zusätzlich ist es für den Endbenutzer aufwändiger, die einzelnen Abfragesubjekte<br />
oder Dimensionen erweitern und Abfragelemente auswählen zu müssen.<br />
Bei der dimensionalen Modellierung können Sie eine reguläre Dimension für "Product" erstellen,<br />
wodurch die Verwendung von "Product" für Ad-hoc-Abfragen und -Berichterstellungen vereinfacht<br />
wird und wodurch die Ebenen der Hierarchie als visuelle Hervorhebung der Beziehung der<br />
Ebenen untereinander dargestellt werden.<br />
Wenn Sie ein ReportNet 1.x-Modell verwalten, können Sie ein Modellabfragesubjekt mit Determinanten<br />
anstatt einer regulären Dimension erstellen. Sie können den Präsentationseffekt der Ebenen<br />
mehrfach nutzen, indem Sie Abfrageelementordner verwenden. Das resultierende Modellabfragesubjekt<br />
kann jederzeit in eine reguläre Dimension konvertiert werden.<br />
Erstellen von Kennzahldimensionen<br />
Datenquellen verfügen häufig über Master/Detail-Tabellen, die Fakten enthalten. Beispiele dafür<br />
sind "Order Header" und "Order Detail". Wenn diese Tabellen zum Einfügen und Aktualisieren<br />
von Daten verwendet werden, ist diese Struktur vorteilhaft. Wenn diese Tabellen zum Erstellen<br />
von Berichten und Analysen verwendet werden, kombinieren Sie sie zur Vereinfachung des<br />
Modells in einem einzigen Unternehmenskonzept.<br />
Erstellen Sie zur Vereinfachung des Modells in diesem Beispiel ein Modellabfragesubjekt, das die<br />
Fremdschlüssel von "Order Header" und "Order Detail" miteinander verbindet und alle Kennzahlen<br />
auf der Ebene "Order Detail" enthält. Sie können eine Kennzahldimension auf der Grundlage<br />
des Modellabfragesubjekts erstellen.
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Nicht eindeutige Dimensionen und Fakten müssen immer aufgelöst werden. Weitere Informationen<br />
finden Sie unter "Das von Cognos 8 generierte SQL" (S. 33).<br />
Klären nicht eindeutiger Beziehungen<br />
Nicht eindeutige Beziehungen treten auf, wenn die von einem Abfragesubjekt oder einer Dimension<br />
dargestellten Daten in mehreren Kontexten oder Rollen angezeigt werden können. Folgende<br />
nicht eindeutige Beziehungen kommen am häufigsten vor:<br />
• mehrere gültige Beziehungen (S. 13)<br />
• reflexive und rekursive Beziehungen (S. 16)<br />
Sie können nicht eindeutige Beziehungen in Framework Manager klären, oder der Datenbankadministrator<br />
kann sie in der Datenquelle korrigieren. Der Datenbankadministrator kann z. B.<br />
zusätzliche Beziehungen entfernen, auch wenn dies nicht praktisch sein mag. Zur Klärung nicht<br />
eindeutiger Beziehungen im Modell gehört auch die Festlegung, welcher Abfragepfad verwendet<br />
werden soll.<br />
Mehrere gültige Beziehungen<br />
Eine Tabelle mit mehreren gültigen Beziehungen zu einer weiteren Tabelle wird als Dimension mit<br />
unterschiedlichen Rollen bezeichnet. Oft bestehen zwischen regulären Dimensionen und Kennzahldimensionen<br />
mehrere gültige Beziehungen. Dies trifft gewöhnlich für Dimensionen wie<br />
"Time" und "Customer" zu.<br />
Der Fakt "Sales" verfügt z. B. über mehrere Beziehungen zur Zeitdimension mit Schlüsseln, wie<br />
z. B. "Order Day", "Ship Day" und "Close Day".<br />
Schritte<br />
1. Lassen Sie alle Beziehungen in der Importansicht unverändert.<br />
2. Erstellen Sie eine Kennzahldimension für den Fakt.<br />
3. Erstellen Sie eine reguläre Dimension für jede einzelne Dimension.<br />
4. Erstellen oder kopieren Sie die reguläre Dimension für die einzelnen Rollen.<br />
5. Benennen Sie die Dimension, Hierarchie, Ebenen und Attribute entsprechend ihrer Verwendung<br />
um.<br />
Richtlinien für die Erstellung von Metadatenmodellen 13
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
14 Framework Manager<br />
6. Stellen Sie sicher, dass eine einzige geeignete Beziehung zwischen den einzelnen regulären<br />
Dimensionen und der Kennzahldimension oder zwischen den zugrunde liegenden Abfragesubjekten<br />
vorhanden ist.<br />
7. Stellen Sie sicher, dass für jede Rolle eine entsprechende Bereichsbeziehung vorhanden ist.<br />
8. Entscheiden Sie, wie Sie diese Rollen mit anderen Fakten verwenden möchten, die nicht dieselben<br />
Konzepte nutzen.<br />
Product Forecast verfügt z. B. über nur einen Zeitschlüssel.<br />
Sie können einen der folgenden Vorgänge ausführen:<br />
• Kennzeichnen Sie eine bestimmte Zeitdimension als angepasste Zeitdimension.<br />
Sie können die gängigste Rolle auswählen, die Sie verwenden werden, und sie eindeutig<br />
als angepasste Dimension bezeichnen. Anschließend können Sie sicherstellen, dass diese<br />
Version der Dimension mit allen Fakten verbunden wird, für die eine Zeitdimension<br />
erforderlich ist.
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
• Sie können "ship day", "order day" und "close day" als austauschbare Zeitdimensionen<br />
mit dem Fakt "Product Forecast" verwenden.<br />
In diesem Fall müssen Sie Verbindungen zwischen den Dimensionen mit unterschiedlichen<br />
Rollen und dem Fakt "Product Forecast" erstellen. Wenn Ihr Bericht Daten enthalten soll,<br />
sollten Sie bei der Abfrage des Fakts "Product Forecast" nur jeweils eine Zeitdimension<br />
verwenden. Beispiel: Month_key=Ship Month Key (200401) und Month key=Close<br />
Month Key (200312).<br />
Richtlinien für die Erstellung von Metadatenmodellen 15
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
16 Framework Manager<br />
Modellobjekte im Vergleich mit Verknüpfungen<br />
Sie können Modellobjekte auf der Grundlage der ursprünglichen Abfragesubjekte erstellen. Diese<br />
Modellobjekte können reguläre Modelldimensionen oder Modellabfragesubjekte sein. Sie können<br />
aber auch Verknüpfungen erstellen.<br />
Verwenden Sie reguläre Modelldimensionen oder Modellabfragesubjekte, wenn Sie benutzerdefinierte<br />
Ansichten desselben Abfragesubjekts erstellen möchten.<br />
Verwenden Sie Verknüpfungen, wenn Sie an mehreren Stellen exakte Kopien einer regulären<br />
Dimension oder eines Abfragesubjekts erhalten möchten.<br />
Eine Verknüpfung, die sich in demselben Verzeichnis wie das Ziel befindet, verhält sich wie ein<br />
Alias oder eine unabhängige Instanz. Eine Verknüpfung, die an anderer Stelle im Modell vorhanden<br />
ist, verhält sich jedoch als Verweis auf das Original. Dieser Ansatz ist aus Sicht der Präsentation<br />
insgesamt weniger flexibel, weil die Umbenennung nur auf Objektebene erfolgen kann.<br />
Reflexive und rekursive Beziehungen<br />
Reflexive und rekursive Beziehungen besitzen zwei oder mehr Granularitätsebenen. Framework<br />
Manager importiert reflexive Beziehungen, verwendet sie aber nicht bei der Ausführung von<br />
Abfragen. Reflexive Beziehungen, die Verbindungen zu sich selbst sind, werden im Modell allein<br />
zum Zweck der Darstellung angezeigt.<br />
Wenn Sie eine funktionsfähige reflexive Beziehung erstellen möchten, müssen Sie einen Alias<br />
erstellen, der entweder eine Verknüpfung zum Abfragesubjekt in demselben Ordner oder ein<br />
Modellabfragesubjekt auf der Grundlage des Abfragesubjekts verwendet. Anschließend erstellen<br />
Sie eine Beziehung zwischen dem Abfragesubjekt und dem Alias. Die Verwendung eines Modellabfragesubjekts<br />
ist dazu tendenziell eher geeignet, weil Sie festlegen können, welche Abfageelemente<br />
in das Abfragesubjekt integriert werden sollen.<br />
Das Abfragesubjekt "Staff" verfügt z. B. über eine rekursive Beziehung zwischen "Staff Key" und<br />
"Manager Key".
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Schritte<br />
1. Erstellen Sie ein Modellabfragesubjekt zum Darstellen der Manager.<br />
2. Wählen Sie aus, welche Elemente für Manager gelten, und geben Sie ihnen einen neuen, aussagekräftigen<br />
Namen.<br />
3. Erstellen Sie eine 1:1- bis 1:n-Beziehung zwischen Mitarbeitern und Manager.<br />
Bei einer einfachen Struktur auf zwei Ebenen unter Verwendung eines Modellabfragesubjekts<br />
für Manager, das auf den Mitarbeitern basiert, sieht das Modell folgendermaßen aus:<br />
4. Wiederholen Sie bei einer rekursiven Hierarchie diese Schritte für jede zusätzliche Ebene in der<br />
Hierarchie.<br />
Wie empfehlen bei einer rekursiven Hierarchie mit vielen Ebenen, dass die Ebenen der Hierarchie<br />
in der Datenquelle reduziert werden und Sie ein Modell dieser reduzierten Hierarchie in<br />
einer einzigen regulären Dimension erstellen.<br />
5. Wählen Sie die Abfragesubjekte aus, klicken Sie mit der rechten Maustaste darauf, und klikken<br />
Sie auf Merge in New Regular Dimension.<br />
Definieren von Dimensionen und Determinanten<br />
Verwenden Sie Dimensionen und Determinanten, um zu gewährleisten, dass die Aggregation in<br />
Berichten korrekt ist und dass Abfragen korrekt generiert werden.<br />
Verwenden Sie reguläre Dimensionen, um beschreibende Informationen zu organisieren und darzustellen<br />
und somit die Endbenutzer effektiv durch die Berichterstellungstools zu führen. Hierarchien<br />
werden von oben nach unten dargestellt, d. h. von der gröbsten Granularitätsebene zur<br />
feinsten.<br />
Die regulären Dimensionen der Datenquelle behandeln Hierarchie- und Ebeneninformationen so,<br />
als wären sie Determinanten.<br />
Reguläre Modelldimensionen erfordern, dass Determinanten für die zugrunde liegenden Abfragesubjekte<br />
angegeben werden.<br />
Verwenden Sie Determinanten, um anzugeben, welche Daten eindeutig sind.<br />
Wenn eine Determinante Attribute definiert, müssen alle Abfrageelemente im Abfragesubjekt entweder<br />
als Schlüssel oder als Attribut definiert werden. Die Verwendung einer Determinante ohne<br />
definierte Attribute ist möglich. Framework Manager verwendet diesen Determinantentyp, um<br />
anzuzeigen, welche Abfrageelemente indiziert sind.<br />
Richtlinien für die Erstellung von Metadatenmodellen 17
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
18 Framework Manager<br />
Verbindungen und Granularität sind die entscheidenden Faktoren der SQL-Generierung. Geben<br />
Sie Granularität für die Objekte an, die über Beziehungen verfügen, indem Sie entweder eine Hierarchie<br />
oder Determinanten für diejenigen Objekte verwenden, zu denen die Verbindung hergestellt<br />
wird.<br />
Sie müssen reguläre Dimensionen und Kennzahldimensionen verwenden, um die Analyse Ihrer<br />
relationalen Datenquelle zu aktivieren. Bei den meisten Datenquellen ist es wahrscheinlich, dass<br />
die regulären Dimensionen, die die beschreibenden Informationen enthalten, von mehr als einer<br />
Kennzahldimension gemeinsam verwendet werden. Reguläre Dimensionen werden häufig als<br />
gemeinsame Dimensionen bezeichnet. Reguläre Dimensionen und Kennzahldimensionen, die als<br />
Cluster organisiert sind, werden oft als Sternschemagruppe bezeichnet, doch können sie auch als<br />
funktionale Gruppe oder Subjektbereichsgruppe bezeichnet werden.<br />
Kennzahldimensionen stehen über die regulären Dimensionen miteinander in Beziehung. Zum<br />
Erstellen von Berichten, die Funktionsbereiche vollständig vergleichen und einander gegenüberstellen,<br />
müssen Sie in einem Bericht eventuell mehr als eine Kennzahldimension verwenden.<br />
Bei der Abfrage in Sternschemata oder Funktionsbereichen müssen Sie die Rolle der Hierarchie bei<br />
der Abfragegenerierung beachten:<br />
• Abfrage mehrerer Fakten und mehrerer Ebenen (S. 18)<br />
• Mehrere Hierarchien (S. 22)<br />
Abfrage mehrerer Fakten und mehrerer Ebenen<br />
Abfragen mehrerer Fakten und mehrerer Ebenen treten auf, wenn Dimensionen auf verschiedenen<br />
Ebenen mit mehreren Faktentabellen verwandt sind. Eine Dimension verfügt normalerweise über<br />
unterschiedliche Ebenen an Attributdaten mit Unternehmensschlüsseln, zwischen denen eine hierarchische<br />
Beziehung besteht. Die Berichterstellungstools aggregieren automatisch zur niedrigsten<br />
gemeinsamen Ebene, die in dem Bericht vorhanden ist. Die hierarchische Beziehung zwischen Ebenenschlüsseln<br />
wird dazu verwendet, Daten auf der untersten im Bericht enthaltenen Ebene zu<br />
aggregieren. Die Gefahr der doppelten Zählung tritt auf, wenn die Gesamtsummen der Spalten<br />
gebildet werden und Daten darin wiederholt vorkommen. Bei korrekter Modellierung der Granularitätsebene<br />
der Daten lässt sich die doppelte Zählung vermeiden.<br />
Hinweis: Sie können einen Bericht mit Daten auf einer Hierarchieebene erstellen, unter der diese<br />
Daten vorhanden sind. Dadurch wiederholen sich zwar die Daten über alle Mitglieder dieser<br />
Ebene, aber die Gesamtsummen sind nicht betroffen.<br />
Dieses Beispiel zeigt zwei Kennzahldimensionen für Datenquellen, nämlich "Sales" und "Product<br />
forecast", die zwei reguläre Dimensionen gemeinsam verwenden: "Time" und "Product".
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Die Dimension "Time" ist der Schwerpunkt der Granularitätsproblematik dieses Beispiels. In der<br />
zugrunde liegenden Datenquelle ist "Sales" mit "Time" am "Day"-Schlüssel verbunden, und<br />
"Product forecast" ist mit "Time" am "Month"-Schlüssel verbunden. Aufgrund der unterschiedlichen<br />
Verbindungsschlüssel müssen mindestens zwei Ebenen eindeutig mit Schlüsseln für die<br />
"Time"-Dimension gekennzeichnet sein.<br />
Datenquellendimensionen<br />
Wir empfehlen Ihnen, beim Verwenden von Datenquellendimensionen alle Ebenen zu erstellen, die<br />
für die Berichterstellung notwendig sein könnten, und nicht nur jene Ebenen, die sofort notwendig<br />
sind.<br />
Die Schlüssel der Ebenen "Month" und "Day" wurden z. B. angegeben. "Day" ist die unterste<br />
Ebene der Hierarchie und das Feld Unique Level ist ausgewählt, weil diese Daten in der zugrunde<br />
liegenden Datenquelle eindeutig sind.<br />
Beispielsweise lauten die Ebenendefinitionen für "Month" wie folgt:<br />
Beispielsweise lauten die Ebenendefinitionen für "Day" wie folgt:<br />
Richtlinien für die Erstellung von Metadatenmodellen 19
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
20 Framework Manager<br />
Die Dimension "Product" hat drei Ebenen: "Product line", "Product type" und "Product". Sie<br />
steht in Beziehung zu beiden Faktentabellen am "Product"-Schlüssel. Alle Verbindungen in den<br />
zugrunde liegenden Tabellen erscheinen am "Product"-Schlüssel, sodass es in dieser Dimension<br />
keine Granularitätsprobleme gibt. Jegliche Hierarchie, die Sie erstellen, dient allein dem Drilling<br />
und der Aufsummierung.<br />
Standardmäßig wird ein Bericht aggregiert, um Datensätze aus jeder Faktentabelle auf der untersten<br />
gemeinsamen Ebene der Granularität abzurufen. Wenn Sie einen Bericht erstellen, der "Quantity"<br />
aus "Sales" verwendet, "Expected volume" aus "Product forecast", "Month_name" aus der<br />
Dimension "Time" und "Product_name" aus der Dimension "Product", ruft der Bericht Datensätze<br />
aus jeder Faktentabelle auf der untersten gemeinsamen Ebene der Granularität ab. In diesem<br />
Beispiel handelt es sich um die Monats- und Produktebenen.<br />
Wenn Sie die Ebenen der Hierarchie nicht ordnungsgemäß in der Dimension "Time" angeben,<br />
kann fehlerhafte Aggregation auftreten. So werden beispielsweise die Werte für "Expected<br />
volume", die sich auf der Ebene "Month" in "Product forecast" befinden, auf Grundlage der tieferen<br />
Zeitebene, d. h. "Days" in der Dimension "Time", aufsummiert. Die Werte für "Expected<br />
volume" werden mit der Anzahl der Tage im Monat multipliziert.<br />
Um eine doppelte Zählung zu verhindern, wenn Daten auf mehreren Granularitätsebenen vorhanden<br />
sind, müssen Sie eine Hierarchie für die Dimension "Time" erstellen und die Ebenen mit den<br />
Schlüsseln korrekt angeben.<br />
Beachten Sie die unterschiedlichen Zahlen in der Spalte "Expected volume". Eine doppelte Zählung<br />
wurde verhindert.
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Reguläre Modelldimensionen und Abfragesubjekte mit Determinanten<br />
Determinanten sind nicht mit Ebenen und Hierarchien identisch, können aber eng mit einer einzelnen<br />
Hierarchie verbunden sein. Die Abfragen-Engine wertet Determinanten von der ersten bis zur<br />
letzten aus. Es können ein oder mehrere Determinanten angegeben werden.<br />
Wenn eine reguläre Modelldimension auf einem Abfragesubjekt mit angegebenen Determinanten<br />
basiert, wird empfohlen, dass<br />
• jeder im Abfragesubjekt vorhandenen Determinante eine Ebene entspricht<br />
• die Reihenfolge der Ebenen in der Hierarchie die Reihenfolge der Determinanten widerspiegelt<br />
Das führt zu einem einheitlichen Modell und erleichtert das Aktualisieren des Modells in zukünftigen<br />
Versionen von Cognos-Produkten.<br />
Wenn Sie Modelldimensionen verwenden, beginnen Sie mit den Abfragesubjekten, die die Basis<br />
der Dimension darstellen. Wir empfehlen, für jede Ebene, die für die Berichterstellung notwendig<br />
sein könnte, eine Determinante zu erstellen, und nicht nur für die Ebenen, die sofort notwendig<br />
sind.<br />
Hier ist z. B. eine Lösung für die Dimension "Time", die eine Alternative zu der weiter oben<br />
beschriebenen Art des Verwendens von Dimensionen darstellt. Für "Month" und "Day" sind<br />
Determinanten festgelegt. Beachten Sie, dass "Day" die unterste Ebene der Hierarchie ist.<br />
Beispielsweise lauten die Determinanten für "Month" wie folgt:<br />
Beispielsweise lauten die Determinanten für "Day" wie folgt:<br />
Richtlinien für die Erstellung von Metadatenmodellen 21
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Mehrere Hierarchien<br />
22 Framework Manager<br />
Das Kontrollkästchen Uniquely Identified ist nur für die unterste Ebene der Hierarchie aktiviert,<br />
da die Daten in dieser Spalte für jede Zeile in der zugrunde liegenden Datenquelle eindeutig sind.<br />
Das Kontrollkästchen Group By ist für alle Ebenen aktiviert, deren Daten nicht eindeutig sind.<br />
Falls eine Aggregation für ein zugehöriges Attribut erforderlich ist, sollte der für die Determinante<br />
definierte Schlüssel in einer Group By-Klausel in der Abfrage verwendet werden. Ebenso gilt: Falls<br />
ein Attribut einer Group By-Ebene in einer Abfrage enthalten ist, kann eine Minimum-Aggregatfunktion<br />
verwendet werden, um zu gewährleisten, dass der Wert in der Abfrage eindeutig ist.<br />
Die Hierarchie für die reguläre Modelldimension wäre identisch mit der hier gezeigten für die<br />
Datenquellendimension.<br />
Informationen über das SQL und die Ergebnisse für dieses Beispiel finden Sie unter "Abfrage mehrerer<br />
Fakten und mehrerer Ebenen von angepassten Dimensionen" (S. 34).<br />
Mehrere Hierarchien treten auf, wenn auf dieselben Daten unterschiedliche Strukturansichten<br />
angewendet werden können. Sie sollten das Modellerstellungsverfahren, das auf einen bestimmten<br />
Fall angewendet wird, in Abhängigkeit von den Hierarchien und den erforderlichen Berichte<br />
bewerten.<br />
In Framework Manager können Sie für reguläre Dimensionen mehrere Hierarchien angeben.<br />
Mehrere Hierarchien für eine reguläre Dimension verhalten sich wie Ansichten derselben Abfrage.<br />
Sie können die verschiedenen Hierarchien einer Dimension nicht in einer einzelnen Berichtsabfrage<br />
verwenden.<br />
Beispielsweise können Vertriebsmitarbeiter nach Manager oder geografischer Region angezeigt<br />
werden. In den Tools zur Berichterstellung sind diese Hierarchien getrennte, aber austauschbare<br />
logische Strukturen, die an dieselbe zugrunde liegende Abfrage gebunden sind.<br />
Nachfolgend sind die Vertriebsmitarbeiter als einzelne Dimension mit zwei Hierarchien abgebildet:
Die Hierarchien sind in Framework Manager wie folgt definiert.<br />
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Wenn Sie mehrere Hierarchien aus einer Dimension in einem Bericht benötigen, z. B. auf gegenüberliegenden<br />
Achsen, müssen Sie für jede Hierarchie eine reguläre Dimension erstellen. Jede reguläre<br />
Dimension muss eine einzelne eindeutige Hierarchie sein. Auf diese Weise können Sie<br />
denselben oder einen leicht unterschiedlichen SQL-Block mehrere Male ausgeben.<br />
Nachfolgend sind für jede Hierarchie separate Dimensionen abgebildet.<br />
Verwenden Sie diesen Ansatz, wenn für jede Hierarchie sehr unterschiedliche Spaltensätze relevant<br />
sind. Für Endbenutzer ist es leichter zu erfassen, wenn die Hierarchien als separate Dimensionen<br />
mit separaten und einfacheren Abfragen modelliert sind.<br />
Richtlinien für die Erstellung von Metadatenmodellen 23
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Erstellen von Sternschemagruppen<br />
24 Framework Manager<br />
Sternschemagruppen können das Modell für Endbenutzer intuitiver machen, indem sie anzeigen,<br />
welche regulären Dimensionen und Kennzahldimensionen miteinander verbunden sind. Sternschemagruppen<br />
können auch das Erstellen von Berichten erleichtern, die mehrere Fakten beinhalten,<br />
indem sie angeben, wie die regulären Dimensionen, die in vielen Kennzahldimensionen vorhanden<br />
sind, verwendet werden. Das Erstellen von Berichten, die mehrere Fakten beinhalten, wird auch<br />
"funktionsübergreifende Berichterstellung" genannt.<br />
Sternschemagruppen stellen auch einen Kontext für Abfragen mit nicht eindeutigen Verbindungen<br />
bereit. Durch das Erstellen von Sternschemagruppen in der Geschäftsansicht des Modells können<br />
Sie klären, welcher Verbindungspfad auszuwählen ist, wenn mehrere Verbindungspfade zur Verfügung<br />
stehen. Dies ist insbesondere hilfreich für Abfragen ohne Fakten.<br />
Mehrere angepasste Sternschemata oder Abfragen ohne Fakten<br />
Es ist sehr wahrscheinlich, dass angepasste reguläre Dimensionen zwischen Kennzahldimensionen<br />
angezeigt werden. Uneindeutige Verbindungen sind dann ein Problem, wenn Sie einen Bericht mit<br />
Elementen aus mehreren Dimensionen erstellen, ohne Elemente aus der Kennzahldimension miteinzubeziehen.<br />
Bei dieser Situation spricht man auch von einer Abfrage ohne Fakten.<br />
"Product" und "Time" sind beispielsweise reguläre Dimensionen, die mit den Kennzahldimensionen<br />
"Product forecast" und "Sales" verwandt sind.<br />
Wie erstellen Sie mithilfe dieser Beziehungen einen Bericht, der lediglich die Elemente "Product"<br />
und "Year" verwendet? Die betriebswirtschaftliche Fragestellung könnte lauten: Der Verkauf welcher<br />
Produkte wurde für 2005 prognostiziert? Oder: Welche Produkte wurden 2005 tatsächlich<br />
verkauft? Obwohl diese Abfrage nur die Dimensionen "Product" und "Time" erfordert, sind die<br />
Dimensionen dennoch durch mehrere Kennzahldimensionen miteinander verbunden. Es gibt keine<br />
Möglichkeit, herauszufinden, welche betriebswirtschaftliche Fragestellung gestellt wird. Sie müssen<br />
den Kontext für die Abfrage ohne Fakten festlegen.<br />
In Bezug auf dieses Beispiel empfehlen wir, dass Sie zwei Namespaces erstellen, wobei der eine<br />
"Product", "Time" und "Product forecast" enthält und der andere "Product", "Time" und<br />
"Sales".
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Verwenden Sie zum Erstellen dieser Namespaces den Create Star Schema Grouping-Assistenten,<br />
um die korrekten Dimensionen für jede Kennzahl auszuwählen, Verknüpfungen für alle Objekte<br />
zu erstellen und die Verknüpfungen in einen neuen Namespace zu verschieben.<br />
Wenn Sie diesen Vorgang bei allen Sternschemata durchführen, lösen Sie die uneindeutigen Verbindungen<br />
durch das Erstellen von Verknüpfungen mit der Kennzahldimension und allen regulären<br />
Dimensionen in einem einzigen Namespace auf. In jedem Namespace sind die Verknüpfungen<br />
für angepasste Dimensionen identisch und stellen Verweise auf das ursprüngliche Objekt dar.<br />
Mit einem Namespace für jedes Sternschema ist dem Endbenutzer nun klar, welche Elemente zu<br />
verwenden sind. Um einen Bericht "Products Sold in 2005" (die 2005 verkauften Produkte) zu<br />
erstellen, verwenden die Benutzer "Product" und "Year" aus dem Namespace "Sales". Die einzige<br />
Beziehung, die in diesem Kontext von Belang ist, ist die Beziehung zwischen "Product", "Time"<br />
und "Sales", und diese wird zum Zurückgeben der Daten verwendet.<br />
Aktualisieren von Best-Practices-Modellen von ReportNet 1.x<br />
Teil der Cognos 8-Installation ist die automatische Aktualisierung aller publizierten Modelle für<br />
die Verwendung in Cognos 8. Um die Berichterstellung zu starten, müssen Sie diese Modelle nicht<br />
ändern. Wenn Sie Änderungen in den Daten oder Metadaten übernehmen oder neue Funktionen<br />
verwenden möchten, müssen Sie das Modell in Framework Manager aktualisieren. Beim Aktualisieren<br />
müssen Sie entscheiden, wann und wo Sie neue Funktionen verwenden möchten. Mit den<br />
Tools in Framework Manager wird das Aktualisieren mit neuen Funktionen basierend auf den<br />
vorhandenen Metadaten im Modell erleichtert.<br />
Wenn Sie für die Erstellung des ReportNet 1.x-Modells die Empfehlungen in Modeling in<br />
Framework Manager for Predictable Queries and Results verwendet haben, die Sie auf der Support-Website<br />
von Cognos (http://support.cognos.com) finden, empfiehlt sich der folgende Workflow:<br />
❑ Überprüfen Sie das vorhandene Modell (S. 26).<br />
❑ Aktualisieren Sie das Modell (S. 26).<br />
❑ Definieren Sie Dimensionen und Determinanten (S. 17).<br />
❑ Erstellen Sie Kennzahldimensionen, oder konvertieren Sie die Fakten in Kennzahldimensionen.<br />
❑ Erstellen und testen Sie Sternschemagruppen (S. 24).<br />
❑ Publizieren Sie die Metadaten neu.<br />
Informationen zu den hier nicht behandelten Themen finden Sie unter "Preparing Relational<br />
Metadata for Use in Reports" und "Making Metadata Available to Report Authors" im Framework<br />
Manager User Guide.<br />
Richtlinien für die Erstellung von Metadatenmodellen 25
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
26 Framework Manager<br />
Alle Beispiele in diesem Dokument verwenden die Datenbankansicht des normalisierten Modells<br />
"gosales_goretailers" oder die Importansicht des Modells "go_data_warehouse", die in den<br />
Cognos 8-Beispielen enthalten sind.<br />
Überprüfen des vorhandenen Modells<br />
In ReportNet 1.x wurden für Dimensionsinformationen die Konzepte von Eindeutigkeit und<br />
Dimensionshierarchien kombiniert. In Cognos 8 wurde das Konzept der Dimensionsinformationen<br />
zur Kontrolle von Eindeutigkeit und Granularität aufgeteilt. Diese Kontrolle ist für Abfragesubjekte<br />
erforderlich, die auf Relationen basieren, sowie für explizit adressierte Konzepte von<br />
Hierarchien und Ebenen für dimensionale Objekte, selbst auf relationalen Quellen.<br />
Beim Überprüfen von Dimensionsinformationen müssen Sie verstehen, wie die Dimensionsinformationen<br />
auf das Abfragesubjekt angewendet werden und wie das Abfragesubjekt im Cognos 8-<br />
Modell verwendet wird.<br />
Vor dem Aktualisieren des Modells auf Cognos 8 sollten Sie das ReportNet 1.x-Modell mithilfe<br />
des Dokuments Modeling in Framework Manager for Predictable Queries and Results überprüfen.<br />
Sie müssen sicherstellen, dass die Dimensionsinformationen korrekt angegeben wurden. Beim<br />
Aktualisierungsprozess werden die Dimensionsinformationen für das Erstellen von Dimensionen<br />
oder Determinanten verwendet. Mit Dimensionen und Determinanten werden in Cognos 8 die<br />
Granularität und die automatische Aggregation gesteuert und Doppelzählungen vermieden.<br />
Es wird dringend empfohlen, dass Sie in ReportNet 1.x den Befehl Verify Model ausführen. Beheben<br />
Sie alle Fehler, und überprüfen Sie alle Warnungen, bevor Sie die Aktualisierung starten.<br />
Aktualisieren des Modells<br />
Nach der automatischen Aktualisierung des Modells in Cognos 8 müssen Sie die neuen Funktionen<br />
manuell überprüfen, da einige das Abfrageverhalten ändern. Die anfängliche automatische<br />
Aktualisierung auf Cognos 8 erzeugt ein Modell, das auf einem Cognos 8-Berichtsserver publiziert<br />
werden kann.<br />
Die meisten Änderungen an Modellkonzepten in Cognos 8 gibt es in den Bereichen von Datentypen,<br />
Dimensionen und Determinanten.<br />
Änderungen an Datentypen<br />
In Cognos 8 wurde die Unterstützung für neue Datentypen hinzugefügt. Dadurch kann es Änderungen<br />
bei der Verknüpfung von Datentypen zwischen Cognos und den Quelldaten beim Metadaten-Import<br />
geben. Die wichtigsten Änderungsbereiche sind:<br />
• nChar<br />
In einigen Fällen wird der Datentyp char zu nChar.<br />
• nVarChar<br />
In einigen Fällen wird der Datentyp varChar zu nVarChar.<br />
• numeric<br />
In einigen Fällen wird der Datentyp decimal zu numeric.<br />
• timestampTZ<br />
In einigen Fällen wird der Datentyp varChar zu timestampTZ.<br />
• IntervalTZ<br />
In einigen Fällen wird der Datentyp varChar zu IntervalTZ.<br />
Die Verknüpfung dieser Datentypen unterscheidet sich nach dem Hersteller der Datenquelle und<br />
kann über den Abschnitt für die Datentypunterstützung auf der Support-Website von Cognos<br />
(http://support.cognos.com) bestätigt werden.<br />
Der Gouverneur Allow enhanced model portability at runtime wird bei der anfänglichen Aktualisierung<br />
ausgewählt. Durch diesen Gouverneur wird die rigorose Erzwingung der Datentypen verhindert,<br />
sodass das Cognos 8-Modell als ReportNet 1.x-Modell verwendet werden kann, bis Sie<br />
die Datentypen in den Metadaten aktualisieren.
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Die neuen Datentypen können nicht basierend auf den vorhandenen, im Modell gespeicherten<br />
Datentypen automatisch ermittelt werden. Verwenden Sie daher die Befehle Verify Model, Verify<br />
Selected Objects oder Update Object, um die Verknüpfung der Datentypen zu aktualisieren.<br />
Dimensionen und Determinanten<br />
In ReportNet 1.x wurden für Dimensionsinformationen die Konzepte von Eindeutigkeit und<br />
Dimensionshierarchien kombiniert. In Cognos 8 wurde das Konzept der Dimensionsinformationen<br />
zur Kontrolle von Eindeutigkeit und Granularität aufgeteilt. Diese Kontrolle ist für Abfragesubjekte<br />
erforderlich, die auf Relationen basieren, sowie für explizit adressierte Konzepte von<br />
Hierarchien und Ebenen für dimensionale Objekte, selbst auf relationalen Quellen.<br />
Beim Überprüfen von Dimensionsinformationen müssen Sie verstehen, wie die Dimensionsinformationen<br />
auf das Abfragesubjekt angewendet werden und wie das Abfragesubjekt im Cognos 8-<br />
Modell verwendet wird.<br />
Die zuvor durch Dimensionsinformationen angegebenen Metadaten bleiben im Modell implizit<br />
erhalten und bestehen für Abfragesubjekte weiter, bis diese Abfragesubjekte repariert werden. Sie<br />
können diese Dimensionsinformationen nicht ändern. Sie können die Dimensionsinformationen<br />
auf reguläre Dimensionen oder Determinanten aktualisieren. Bis zur Aktualisierung des Abfragesubjekts<br />
verwendet die Cognos 8-Abfragegenerierung die zuvor in ReportNet 1.x angegebenen<br />
Dimensionsinformationen.<br />
Der Gouverneur Allow dynamic generation of dimension information wird bei der anfänglichen<br />
Aktualisierung ausgewählt. Mit diesem Gouverneur wird einheitliches Verhalten mit ReportNet<br />
1.x sichergestellt, indem eine Form von Dimensionsinformationen aus den Beziehungen, Schlüsselinformationen<br />
und Indexinformationen in der Datenquelle abgeleitet wird.<br />
Weitere Informationen finden Sie unter "Neue Objekte in Cognos 8" (S. 6).<br />
Überprüfen und Reparieren des Modells<br />
Nach der automatischen Aktualisierung der Metadaten werden Sie von Framework Manager zur<br />
Überprüfung des Modells aufgefordert. Es wird dringend empfohlen, dass Sie diesen Schritt durchführen,<br />
bevor Sie Änderungen am Modell vornehmen.<br />
Übersicht über Warnungen<br />
Beim Überprüfen eines ReportNet 1.x-Modells werden häufig Warnungen mit folgendem Inhalt<br />
angezeigt:<br />
• Neubewertung erforderlich<br />
Diese Meldung bezieht sich meistens auf Änderungen der Datentypen.<br />
Die Mehrzahl der Elemente mit dieser Warnung kann zum Reparieren ausgewählt werden.<br />
Die Reparaturoption führt Sie durch die Optionen für die Auswertung und Aktualisierung<br />
bestimmter Elemente der Metadaten.<br />
Tipp: Sie können ein Abfragesubjekt auch über den Befehl Evaluate Object im Menü Tools<br />
auswerten.<br />
• Der Verbindungsausdruck widerspricht den Determinanteninformationen, die im Abfragesubjekt<br />
definiert sind.<br />
In einigen Fällen besitzen Index- und Schlüsselinformationen, die für ein Abfragesubjekt angegeben<br />
wurden, eine Granularitätsebene, die nicht mit den für ein Abfragesubjekt angegebenen<br />
Beziehungen übereinstimmt. Weitere Informationen finden Sie unter "Definieren von Dimensionen<br />
und Determinanten" (S. 17).<br />
• Für keine Abfrageelemente in dieser Ebene wurde die Caption-Rolle angegeben.<br />
Beim Definieren von Ebenen müssen Sie sicherstellen, dass ein Unternehmensschlüssel und<br />
Caption-Rollen angegeben wurden. Diese Rollen sind für Mitgliederfunktionen in den Tools<br />
zur Berichterstellung wichtig und hilfreich in der mitgliederorientierten Verzeichnisstruktur in<br />
Analysis Studio.<br />
• Eine oder mehrere Determinanten, die die Schlüssel und Attribute des Abfragesubjekts<br />
beschreiben, sollten definiert sein.<br />
Richtlinien für die Erstellung von Metadatenmodellen 27
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
28 Framework Manager<br />
Beim Importieren aus einer relationalen Datenquelle werden Determinanten für alle in der<br />
Datenquelle vorhandenen Indizes und Schlüssel angegeben. Es ist möglich, dass auf einem von<br />
ReportNet 1.x aktualisierten Abfragesubjekt, insbesondere für Modellabfragesubjekte, keine<br />
Determinanten vorhanden sind. Sie sollten Determinanten verwenden, um die Granularität<br />
der Daten im Abfragesubjekt und die Funktionsabhängigkeiten zwischen den Abfrageelementen<br />
ausdrücklich anzugeben. Die Angabe von Determinanten für Abfragesubjekte, die für eine<br />
einzelne Ebene oder Faktdaten stehen, ist jedoch nicht obligatorisch. Determinanten sind<br />
lediglich für Elemente vom Datentyp BLOB erforderlich.<br />
Auswählen und Reparieren von Objekten<br />
Sie können alle Elemente mit Kontrollkästchen auswählen und reparieren. Beim Reparaturprozess<br />
werden alle ausgewählten Elemente zunächst ausgewertet. Die Auswertung löst automatisch Probleme<br />
mit neuen Datentypen und fordert Sie zur Behandlung von Dimensionsinformationen im<br />
Modell auf. Sie sollten die meisten Abfragesubjekte, die Dimensionsinformationen in ReportNet<br />
1.x verwendet haben, auf Dimensionen aktualisieren.<br />
Konvertieren von Abfragesubjekten in Dimensionen<br />
Mithilfe der Dimensionsinformationen im Abfragesubjekt können Sie ein Abfragesubjekt in eine<br />
Dimension konvertieren. Darüber hinaus können Sie jederzeit nach der Aktualisierung eine<br />
Dimension mit Determinanten in ein Abfragesubjekt konvertieren.<br />
Dimensionsinformationen werden wie folgt mit regulären Dimensionen verknüpft.<br />
Dimensionsinformationen Reguläre Dimension<br />
Hierarchien Hierarchien<br />
Ebenen Ebenen<br />
Die erste Ebene der Hierarchie wird automatisch als Ebene<br />
"All" definiert. Sie enthält ein einzelnes Root-Mitglied, das die<br />
oberste Ebene der Hierarchie darstellt.<br />
Die Ebene "All" kann weder gelöscht noch verschoben werden.<br />
Sie können jedoch den Namen, die Beschreibung und den Bildschirm-Tipp<br />
ändern.<br />
Schlüssel _businessKey-Rolle<br />
Eindeutiger Schlüssel Eindeutige Ebene<br />
Erstes Textattribut nach dem<br />
Alphabet<br />
_memberCaption-Rolle<br />
Alle anderen Attribute Können manuell als _memberDescription, benutzerdefinierte<br />
Rolle oder keine Rolle zugewiesen werden<br />
Das Abfragesubjekt "Product" in ReportNet 1.x hat beispielsweise folgende Dimensionsinformationen.
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Wenn Sie dieses Abfragesubjekt in eine reguläre Dimension konvertieren, werden die Dimensionsinformationen<br />
für die Erstellung dieser Hierarchien und Ebenen in Cognos 8 verwendet.<br />
Was Sie überprüfen sollten<br />
Nach der Konvertierung müssen Sie Folgendes überprüfen:<br />
• Eindeutige Ebene<br />
Eine eindeutige Ebene gibt an, dass die Schlüssel der darüber befindlichen Ebenen nicht notwendigerweise<br />
die Mitglieder in dieser Ebene identifizieren.<br />
• memberCaption-Rolle<br />
Um Mitgliederfunktionen zu nutzen und das Ziehen und Ablegen von Ebenen in den<br />
Berichterstellungstools zu ermöglichen, müssen Sie jeder Ebene in einer Dimension eine memberCaption<br />
zuweisen. Da diese Rolle in ReportNet 1.x nicht vorhanden ist, wird sie überall,<br />
wo dies möglich ist, verknüpft. Wenn es für die Ebene keine Attribute gibt, wird das Fehlen<br />
einer Caption-Rolle beim Überprüfen des Modells hervorgehoben.<br />
• Attribute<br />
In der Regel sollten alle anderen Attribute in die Dimension eingefügt und der richtigen Ebene<br />
zugeordnet werden. Standardmäßig werden sie ohne Rolle eingefügt. Sie können benutzerdefinierte<br />
Rollen erstellen oder vorhandenen Rollen Attribute zuweisen.<br />
• Mehrere Hierarchien<br />
Richtlinien für die Erstellung von Metadatenmodellen 29
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
30 Framework Manager<br />
Nur die erste Hierarchie aus einem ReportNet 1.x-Abfragesubjekt wird auf eine Dimension<br />
aktualisiert. Alle anderen Hierarchien müssen Sie neu erstellen.<br />
Beispielsweise können Sie das Abfragesubjekt "Product" nach der Aktualisierung auf eine reguläre<br />
Dimension noch näher festlegen. In diesem Beispiel wird "Product name" jetzt als memberCaption-Rolle<br />
definiert.<br />
Konvertieren von Dimensionsinformationen in Determinanten<br />
Beim Verwalten von Modellen, die nicht vollständig den ReportNet 1.x-Empfehlungen entsprechen,<br />
sollten Sie Abfragesubjekte beibehalten. Dimensionsinformationen werden dann wie folgt<br />
mit Determinanten verknüpft.<br />
Dimensionsinformationen Determinanten<br />
Hierarchien Reihenfolge der Determinanten<br />
Ebenen Determinanten<br />
Uniquely Identified<br />
Group By<br />
"Unique Key" wurde nicht ausgewählt<br />
"Unique Key" wurde ausgewählt<br />
Schlüsselsegmente aus einer höheren Ebene sind im Schlüssel<br />
enthalten.<br />
Nur das Schlüsselsegment bzw. die Segmente für die Ebene<br />
sind im Schlüssel enthalten.<br />
Attribute Attribute<br />
Nicht zugeordnete Attribute werden der letzten Determinante<br />
zugewiesen, die in der Regel der untersten Ebene entspricht.<br />
Beispielsweise sieht in ReportNet 1.x das Abfragesubjekt "Product" mit den Dimensionsinformationen<br />
folgendermaßen aus:
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
Wenn Sie es in ein Abfragesubjekt mit Determinanten konvertieren, sieht es so aus:<br />
Was Sie überprüfen sollten<br />
Nach der Konvertierung müssen Sie Folgendes überprüfen:<br />
• Eindeutig identifiziert<br />
Das Kontrollkästchen Uniquely Identified gibt an, dass eine Determinante eine Zeile im<br />
Datensatz eindeutig identifiziert.<br />
• Gruppieren nach<br />
Mit dem Kontrollkästchen Group By wird eine obligatorische Gruppierung für jede Abfrage<br />
mit dieser Determinanten oder für jedes von ihr ermittelte Element veranlasst. Auf diese Weise<br />
wird die Doppelzählung vermieden, zu der es kommen kann, wenn Dimensionen auf verschiedenen<br />
Schlüsseln auf unterschiedlichen Granularitätsebenen miteinander verbunden werden.<br />
Wenn Attributelemente von einer Determinanten mit ausgewähltem Kontrollkästchen Group<br />
By ermittelt werden, wird auf sie in der Abfrage die Aggregatfunktion Minimum angewendet.<br />
• Mehrere Hierarchien<br />
Determinanten unterstützen nicht explizit das Konzept von Hierarchien und bieten kein Verfahren<br />
für die Darstellung mehrerer Hierarchien. Sind für ein Abfragesubjekt in ReportNet<br />
1.x zwei Hierarchien vorhanden, wird nur die erste Hierarchie auf eine Determinante aktualisiert.<br />
Sie müssen ein zweites Abfragesubjekt erstellen und die Determinanten für die andere<br />
Hierarchie manuell angeben.<br />
Richtlinien für die Erstellung von Metadatenmodellen 31
Kapitel 1: Richtlinien für die Erstellung von Metadatenmodellen<br />
32 Framework Manager<br />
Beispielsweise können Sie das Abfragesubjekt "Product" nach der Aktualisierung zur Verwendung<br />
von Determinanten noch näher festlegen. In diesem Beispiel ist "Product key" jetzt die eindeutige<br />
Indentifizierung und "Product line code" und "Product type code" werden für die Gruppierung<br />
von Abfrageelementen verwendet.<br />
Weitere Informationen finden Sie unter "Definieren von Dimensionen und<br />
Determinanten" (S. 17).
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Das von Cognos 8 generierte SQL wird häufig missverstanden. Dieses Dokument enthält Erklärungen<br />
zu SQL, das häufig verwendet wird.<br />
Übersicht über dimensionale Abfragen bei der Verwendung<br />
von Best Practices<br />
Dimensionale Abfragen werden erstellt, um Abfragen mehrerer Fakten durchführen zu können.<br />
Abfragen mehrerer Fakten haben die folgenden grundlegenden Ziele:<br />
• Beibehaltung von Daten, wenn Faktdaten nicht genau in allgemeinen Dimensionen übereinstimmen,<br />
z. B. wenn mehr Zeilen in den Fakten als in den Dimensionen vorhanden sind.<br />
• Verhindern von Doppelzählungen, wenn Faktdaten auf verschiedenen Granularitätsebenen<br />
vorhanden sind. Dazu muss sichergestellt werden, dass jeder Fakt in einer einzelnen Abfrage<br />
mit der entsprechenden Gruppierung dargestellt wird.<br />
Möglicherweise müssen in manchen Fällen Determinanten für die zugrunde liegenden Abfragesubjekte<br />
erstellt werden.<br />
Abfrage einzelner Fakten<br />
Eine Abfrage in einer Sternschemagruppe führt zu einer Abfrage einzelner Fakten.<br />
Im vorliegenden Beispiel steht "Sales" im Mittelpunkt aller geschriebenen Abfragen. Die Dimensionen<br />
stellen Attribute und Beschreibungen bereit, um die Daten in "Sales" aussagekräftiger zu<br />
gestalten. Alle Beziehungen zwischen Dimensionen und dem Fakt sind 1-n.<br />
Wenn Sie nach Monat und Produkt filtern, erhalten Sie folgendes Ergebnis:<br />
Richtlinien für die Erstellung von Metadatenmodellen 33
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Abfrage mehrerer Fakten und mehrerer Ebenen von angepassten Dimensionen<br />
34 Framework Manager<br />
Eine Abfrage mehrerer Fakten und angepasster Dimensionen berücksichtigt die Kardinalität zwischen<br />
jeder Faktentabelle und ihren Dimensionen und schreibt SQL, um alle Zeilen der jeweiligen<br />
Tabelle zurückzugeben.<br />
Zum Beispiel sind "Sales" und "Product Forecast" Kennzahldimensionen.<br />
Bitte beachten Sie, dass es sich hier um eine vereinfachte Darstellung handelt und nicht um ein Beispiel<br />
dafür, wie die Darstellung in einem Modell aussehen würde, das mit Best Practices von<br />
Cognos erstellt wurde.<br />
Das Ergebnis<br />
Mit Einzelabfragen von "Sales" und "Product Forecast" nach "Month" und "Product" erhalten<br />
Sie folgende Ergebnisse: Die Daten unter "Sales" werden auf Tagesebene gespeichert.<br />
Eine Abfrage nach "Sales" und "Product Forecast" berücksichtigt die Kardinalität zwischen jeder<br />
Faktentabelle und ihren Dimensionen und schreibt SQL, um alle Zeilen der jeweiligen Tabelle<br />
zurückzugeben. Die Faktentabellen werden nach ihren gemeinsamen Schlüsseln, "Month" und<br />
"Product", in Übereinstimmung gebracht und zur niedrigsten gemeinsamen Granularitätsebene<br />
aggregiert. In diesem Fall werden Tage zu Monaten aufaddiert. Für diese Abfrage werden oft Nullen<br />
zurückgegeben, da eine Kombination von dimensionalen Elementen möglicherweise zwar in<br />
einer Faktentabelle existiert, in einer anderen jedoch nicht.
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Beachten Sie, dass es für Februar 2004 zwar eine Prognose für "Course Pro Umbrellas" gab,<br />
jedoch keine tatsächlichen Umsätze. Die Daten in "Sales" und "Product Forecast" befinden sich<br />
auf verschiedenen Granularitätsebenen. Die Daten für "Sales" befinden sich auf Tagesebene, die<br />
für "Product Forecast" auf Monatsebene.<br />
Das SQL<br />
Das von Cognos 8 generierte SQL, das auch als zusammengefügte Abfrage bezeichnet wird, wird<br />
oft missverstanden. Eine zusammengefügte Abfrage verwendet mehrere Unterabfragen, eine für<br />
jeden Stern, die über eine vollständig offene Verbindung auf Grundlage der gemeinsamen Schlüssel<br />
zusammengeführt werden. Das Ziel ist, sämtliche Mitglieder einer Dimension, die auf einer der<br />
beiden Seiten der Abfrage erscheinen, beizubehalten.<br />
Das folgende Beispiel wurde in der Länge bearbeitet und dient als Beispiel, um die Hauptfunktionen<br />
zusammengefügter Abfragen darzustellen.<br />
select<br />
coalesce(D2.MONTH_NAME,D3.MONTH_NAME) as MONTH_NAME,<br />
coalesce(D2.PRODUCT_NAME,D3.PRODUCT_NAME) as PRODUCT_NAME,<br />
D2.EXPECTED_VOLUME as EXPECTED_VOLUME,<br />
D3.QUANTITY as QUANTITY<br />
from (select TIME.MONTH_NAME as MONTH_NAME,<br />
PRODUCT_LOOKUP.PRODUCT_NAME as PRODUCT_NAME,<br />
XSUM(PRODUCT_FORECAST_FACT.EXPECTED_VOLUME for<br />
TIME.CURRENT_YEAR,TIME.QUARTER_KEY,TIME.MONTH_KEY,<br />
PRODUCT.PRODUCT_LINE_CODE, PRODUCT.PRODUCT_TYPE_CODE,<br />
PRODUCT.PRODUCT_KEY ) as EXPECTED_VOLUME<br />
from<br />
(select TIME.CURRENT_YEAR as CURRENT_YEAR,<br />
TIME.QUARTER_KEY as QUARTER_KEY,<br />
TIME.MONTH_KEY as MONTH_KEY,<br />
XMIN(TIME.MONTH_NAME for TIME.CURRENT_YEAR,<br />
TIME.QUARTER_KEY,TIME.MONTH_KEY ) as MONTH_NAME<br />
from TIME_DIMENSION TIME<br />
group by TIME.MONTH_KEY) TIME<br />
join PRODUCT_FORECAST_FACT PRODUCT_FORECAST_FACT<br />
on (TIME.MONTH_KEY = PRODUCT_FORECAST_FACT.MONTH_KEY)<br />
join PRODUCT PRODUCT on (PRODUCT.PRODUCT_KEY =<br />
PRODUCT_FORECAST_FACT.PRODUCT_KEY)<br />
where<br />
(PRODUCT.PRODUCT_NAME in ('Aloe Relief','Course Pro Umbrella')) and<br />
(TIME.MONTH_NAME in ('April 2004','February 2004','February 2006'))<br />
group by<br />
TIME.MONTH_NAME,<br />
PRODUCT_LOOKUP.PRODUCT_NAME<br />
) D2<br />
full outer join<br />
(select TIME.MONTH_NAME as MONTH_NAME,<br />
PRODUCT_LOOKUP.PRODUCT_NAME as PRODUCT_NAME,<br />
XSUM(SALES_FACT.QUANTITY for TIME.CURRENT_YEAR,<br />
TIME.QUARTER_KEY, TIME.MONTH_KEY,<br />
PRODUCT.PRODUCT_LINE_CODE, PRODUCT.PRODUCT_TYPE_CODE,<br />
PRODUCT.PRODUCT_KEY ) as QUANTITY<br />
from<br />
select TIME.DAY_KEY,TIME.MONTH_KEY,TIME.QUARTER_KEY,<br />
TIME.CURRENT_YEAR,TIME.MONTH_EN as MONTH_NAME<br />
from TIME_DIMENSION TIME) TIME<br />
join SALES_FACT SALES_FACT<br />
Richtlinien für die Erstellung von Metadatenmodellen 35
Kapitel 2: Das von Cognos 8 generierte SQL<br />
36 Framework Manager<br />
on (TIME.DAY_KEY = SALES_FACT.ORDER_DAY_KEY)<br />
join PRODUCT PRODUCT on (PRODUCT.PRODUCT_KEY = SALES_FACT.PRODUCT_KEY)<br />
where<br />
(PRODUCT.PRODUCT_NAME in ('Aloe Relief','Course Pro Umbrella')) and<br />
(TIME.MONTH_NAME in ('April 2004','February 2004','February 2006'))<br />
group by<br />
TIME.MONTH_NAME,<br />
PRODUCT.PRODUCT_NAME<br />
) D3<br />
on ((D2.MONTH_NAME = D3.MONTH_NAME) and (D2.PRODUCT_NAME = D3.PRODUCT_NAME))<br />
Was ist eine Coalesce-Anweisung?<br />
Eine Coalesce-Anweisung ist einfach eine effiziente Methode für die Arbeit mit Abfrageelementen<br />
aus angepassten Dimensionen. Sie wird verwendet, um den ersten Wert ungleich null zu akzeptieren,<br />
der von einem der Abfragesubjekte zurückgegeben wird. Diese Anweisung ermöglicht eine<br />
vollständige Schlüsselliste ohne Wiederholungen bei Erstellung einer vollständig offenen Verbindung.<br />
Warum gibt es eine vollständig offene Verbindung?<br />
Eine vollständig offene Verbindung ist notwendig, um sicherzustellen, dass alle Daten aus allen<br />
Faktentabellen abgerufen werden. Eine offene Verbindung gibt nur ein Ergebnis aus, wenn ein<br />
Artikel aus dem Bestand verkauft wurde. Eine rechte offene Verbindung gibt alle Umsätze aus, bei<br />
denen die Artikel im Bestand waren. Eine linke offene Verbindung gibt alle Artikel im Bestand aus,<br />
die tatsächlich umgesetzt wurden. Eine vollständig offene Verbindung ist der einzige Weg, herauszufinden,<br />
was im Lagerbestand vorhanden war und was verkauft wurde.<br />
Modellieren von 1-n-Beziehungen als 1-1-Beziehungen<br />
Wenn die Kardinalität so verändert wurde, dass sie nur 1-1-Beziehungen zwischen Abfragesubjekten<br />
oder Dimensionen verwendet, erzeugt das Ergebnis einer Abfrage für "Product Forecast" und<br />
"Sales" nach "Time" oder "Time" und "Product" eine einzige Select-Anweisung, die eine der<br />
Verbindungen unberücksichtigt lässt, um einen Zirkelbezug zu vermeiden.<br />
Das untenstehende Beispiel zeigt, dass die Abfrageergebnisse nicht korrekt sind, wenn man sie mit<br />
den Ergebnissen von Einzelabfragen von "Sales" oder "Product Forecast" vergleicht.<br />
Die Ergebnisse von Einzelabfragen lauten wie folgt:<br />
Wenn Sie diese Abfragen in einer einzigen Abfrage kombinieren, erhalten Sie folgende Ergebnisse:
Das SQL<br />
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Bei der Betrachtung von SQL zeigt sich, dass Cognos 8 eine der Beziehungen, die für die Vervollständigung<br />
des Verbindungspfades nicht notwendig waren, nicht einbezogen hat, da erkannt<br />
wurde, dass im Modell ein zirkulärer Verbindungspfad vorhanden ist. In diesem Beispiel wurde<br />
die Beziehung zwischen "Time" und "Product Forecast" nicht berücksichtigt.<br />
Ein zirkulärer Verbindungspfad führt nur selten zu einer Abfrage mit brauchbaren Ergebnissen.<br />
select<br />
TIME_.MONTH_NAME as MONTH_NAME,<br />
PRODUCT_LOOKUP.PRODUCT_NAME as PRODUCT_NAME,<br />
XSUM(SALES_FACT.QUANTITY for<br />
TIME_.CURRENT_YEAR, TIME_.QUARTER_KEY, TIME_.MONTH_KEY,<br />
PRODUCT.PRODUCT_LINE_CODE, PRODUCT.PRODUCT_TYPE_CODE,<br />
PRODUCT.PRODUCT_KEY ) as QUANTITY,<br />
XSUM(PRODUCT_FORECAST_FACT.EXPECTED_VOLUME for TIME_.CURRENT_YEAR,<br />
TIME_.QUARTER_KEY, TIME_.MONTH_KEY, PRODUCT.PRODUCT_LINE_CODE,<br />
PRODUCT.PRODUCT_TYPE_CODE, PRODUCT.PRODUCT_KEY ) as EXPECTED_VOLUME<br />
from<br />
(select TIME.DAY_KEY,TIME.MONTH_KEY, TIME.QUARTER_KEY,<br />
TIME.CURRENT_YEAR,TIME.MONTH_EN as MONTH_NAME<br />
from TIME_DIMENSION TIME) TIME<br />
join<br />
SALES_FACT on (TIME_.DAY_KEY = SALES_FACT.ORDER_DAY_KEY)<br />
join<br />
PRODUCT_FORECAST_FACT on (TIME_.MONTH_KEY =<br />
PRODUCT_FORECAST_FACT.MONTH_KEY)<br />
join<br />
PRODUCT (PRODUCT.PRODUCT_KEY = PRODUCT_FORECAST_FACT.PRODUCT_KEY)<br />
where<br />
(PRODUCT.PRODUCT_NAME in ('Aloe Relief','Course Pro Umbrella')) and<br />
(TIME_.MONTH_NAME in ('April 2004','February 2004','February 2006'))<br />
group by<br />
TIME_.MONTH_NAME, PRODUCT.PRODUCT_NAME<br />
Abfrage mehrerer Fakten und mehrerer Ebenen bei nicht angepassten Dimensionen<br />
Wenn der Abfrage eine nicht angepasste Dimension hinzugefügt wird, verändert das die Eigenschaften<br />
des Ergebnisses, das von der zusammengefügten Abfrage ausgegeben wird. Es ist nicht<br />
mehr möglich, Datensätze auf eine niedrigste gemeinsame Granularitätsebene zu aggregieren, da<br />
eine Seite der Abfrage eine Dimensionalität hat, die sie nicht mit der anderen Seite gemeinsam hat.<br />
Das ausgegebene Ergebnis besteht eigentlich aus zwei zusammengeführten Listen.<br />
Richtlinien für die Erstellung von Metadatenmodellen 37
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Das Ergebnis<br />
38 Framework Manager<br />
Die Ergebnisse von Einzelabfragen für die betreffenden Sternschemata sehen folgendermaßen aus:<br />
Die Abfrage derselben Elemente aus beiden Sternschemata führt zu folgendem Ergebnis:
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Bei diesem Ergebnis führt die niedrigere Granularitätsebene für Datensätze aus "Sales" dazu, dass<br />
für jede Monats- und Produktkombination mehr Datensätze ausgegeben werden. Es gibt nun eine<br />
1-n-Beziehung zwischen den Zeilen, die aus "Product Forecast" zurückgegeben wurden, und<br />
denen aus "Sales".<br />
Wenn Sie diese mit dem Ergebnis vergleichen, das im Beispiel für die Abfrage mehrerer Fakten und<br />
mehrerer Ebenen von angepassten Dimensionen ausgegeben wurde, können Sie sehen, dass mehr<br />
Datensätze zurückgegeben wurden und die Ergebnisse für "Expected Volume" über mehrere<br />
Bestellmethoden hinweg wiederholt verwendet wurden. Das Hinzufügen von "Order Method"<br />
zur Abfrage verändert die Beziehung zwischen den Daten "Quantity" und "Expected Volume" zu<br />
einer 1-n-Beziehung. Ein einzelner Wert aus "Expected Volume" kann nicht mehr mit einem einzelnen<br />
Wert aus "Quantity" in Beziehung gesetzt werden.<br />
Das Gruppieren nach dem Schlüssel "Month" zeigt, dass das Ergebnis in diesem Beispiel auf demselben<br />
Datensatz beruht wie das Ergebnis der Abfrage mehrerer Fakten und mehrerer Ebenen,<br />
jedoch mit einem höheren Grad von Granularität.<br />
Das SQL<br />
Das für dieses Beispiel generierte zusammengefügte SQL ist dem SQL sehr ähnlich, das in der<br />
Abfrage mehrerer Fakten und mehrerer Ebenen generiert wurde (S. 34). Der wichtigste Unterschied<br />
ist das Hinzufügen von "Order Method". "Order Method" ist keine angepasste Dimension<br />
und beeinflusst nur die Abfrage aus der "Sales Fact"-Tabelle.<br />
select<br />
D2.QUANTITY as QUANTITY,<br />
D3.EXPECTED_VOLUME as EXPECTED_VOLUME,<br />
coalesce(D2.PRODUCT_NAME,D3.PRODUCT_NAME) as PRODUCT_NAME,<br />
coalesce(D2.MONTH_NAME,D3.MONTH_NAME) as MONTH_NAME,<br />
D2.ORDER_METHOD as ORDER_METHOD<br />
from<br />
(select<br />
PRODUCT.PRODUCT_NAME as PRODUCT_NAME,<br />
TIME.MONTH_NAME as MONTH_NAME,<br />
ORDER_METHOD.ORDER_METHOD as ORDER_METHOD,<br />
XSUM(SALES_FACT.QUANTITY for TIME.CURRENT_YEAR,TIME.QUARTER_KEY,<br />
TIME.MONTH_KEY,PRODUCT.PRODUCT_LINE_CODE,PRODUCT.PRODUCT_TYPE_CODE,PRODUCT<br />
.PRODUCT_KEY,ORDER_METHOD_DIMENSION.ORDER_METHOD_KEY ) as QUANTITY<br />
from<br />
PRODUCT_DIMENSION PRODUCT<br />
join<br />
SALES_FACT SALES_FACT<br />
on (PRODUCT.PRODUCT_KEY = SALES_FACT.PRODUCT_KEY)<br />
join<br />
ORDER_METHOD_DIMENSION ORDER_METHOD<br />
on (ORDER_METHOD.ORDER_METHOD_KEY = SALES_FACT.ORDER_METHOD_KEY)<br />
join TIME_DIMENSION TIME<br />
on ( TIME.DAY_KEY = SALES_FACT.ORDER_DAY_KEY)<br />
Richtlinien für die Erstellung von Metadatenmodellen 39
Kapitel 2: Das von Cognos 8 generierte SQL<br />
40 Framework Manager<br />
where<br />
(PRODUCT.PRODUCT_NAME in ('Aloe Relief','Course Pro Umbrella')) and<br />
( TIME.MONTH_NAME in ('April 2004','February 2004','February 2006'))<br />
group by<br />
PRODUCT.PRODUCT_NAME,<br />
TIME.MONTH_NAME,<br />
ORDER_METHOD.ORDER_METHOD<br />
) D2<br />
full outer join<br />
(select<br />
PRODUCT.PRODUCT_NAME as PRODUCT_NAME,<br />
TIME.MONTH_NAME as MONTH_NAME,<br />
XSUM(PRODUCT_FORECAST_FACT.EXPECTED_VOLUME for TIME.CURRENT_YEAR,<br />
TIME.QUARTER_KEY,<br />
TIME.MONTH_KEY,PRODUCT.PRODUCT_LINE_CODE,PRODUCT.PRODUCT_TYPE_CODE,PRODUCT<br />
.PRODUCT_KEY ) as EXPECTED_VOLUME<br />
from<br />
PRODUCT_DIMENSION PRODUCT<br />
join<br />
PRODUCT_FORECAST_FACT PRODUCT_FORECAST_FACT<br />
on (PRODUCT.PRODUCT_KEY = PRODUCT_FORECAST_FACT.PRODUCT_KEY)<br />
join<br />
(select<br />
TIME.CURRENT_YEAR as CURRENT_YEAR,<br />
TIME.QUARTER_KEY as QUARTER_KEY,<br />
TIME.MONTH_KEY as MONTH_KEY,<br />
XMIN( TIME.MONTH_NAME for TIME.CURRENT_YEAR, TIME.QUARTER_KEY,<br />
TIME.MONTH_KEY ) as MONTH_NAME<br />
from<br />
TIME_DIMENSION TIME<br />
group by<br />
TIME.CURRENT_YEAR,<br />
TIME.QUARTER_KEY,<br />
TIME.MONTH_KEY<br />
) TIME<br />
on ( TIME.MONTH_KEY = PRODUCT_FORECAST_FACT.MONTH_KEY)<br />
where<br />
(PRODUCT.PRODUCT_NAME in ('Aloe Relief','Course Pro Umbrella')) and<br />
( TIME.MONTH_NAME in ('April 2004','February 2004','February 2006'))<br />
group by<br />
PRODUCT.PRODUCT_NAME,<br />
TIME.MONTH_NAME<br />
) D3<br />
on ((D2.PRODUCT_NAME = D3.PRODUCT_NAME) and (D2.MONTH_NAME =<br />
D3.MONTH_NAME))<br />
Auflösen uneindeutig identifizierter Dimensionen und Fakten<br />
Wenn für uneindeutig identifizierbare Dimensionen und Fakten keine Auflösung herbeigeführt<br />
wird, können unvorhersehbare oder fehlerhafte Abfragen die Folge sein. Diese Abfragen können<br />
zu Ergebnissen führen, die Doppelzählungen von Ergebnissen, falsch zugeordnete Ergebnissätze<br />
und ineffiziente Abfragen enthalten. Ferner können Sie fehlerhafte Auswertungen von Abfragen<br />
mit mehreren Fakten enthalten.<br />
In diesem Beispiel müssen Sie die eingekreisten Bereiche klären.
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Sie können die eingekreisten Bereiche klären, indem Sie eine Kombination von Datenquellen- und<br />
Modellabfragesubjekten verwenden. In einigen Fällen kann die Klärung sogar über das Hinzufügen<br />
von Filtern zu Abfragesubjekten erfolgen, die die Kardinalität von n auf 1 ändern. Die Abfragesubjekte,<br />
die Sie erstellen, bilden die Basis eines Dimensionsmodells.<br />
Auflösen von Abfragen, die nicht geteilt werden sollten<br />
Wenn Abfragen geteilt wurden, die nicht geteilt werden sollten, müssen Sie diese Abfragen auflösen.<br />
Abfragesubjekte auf der n-Seite aller Beziehungen werden als Fakten identifiziert. Im folgenden<br />
Beispiel verhalten sich "Order Header" und "Country Multilingual" wie Fakten. Tatsächlich<br />
jedoch enthält das Abfragesubjekt "Country Multilingual" nur beschreibende Informationen und<br />
scheint eine Nachschlagetabelle zu sein. In Hinblick auf die Erstellung eines dimensionalen oder<br />
eines Geschäftsmodells ist "Country Multilingual" eine Erweiterung von "Country".<br />
Warum ist es ein Problem, das Modell so zu belassen?<br />
Testen Sie dieses Modell, indem Sie einen Bericht für die Anzahl von Bestellungen pro Stadt und<br />
pro Land erstellen. Die Verwendung dieses Modells führt zu einem fehlerhaften Ergebnis. Die<br />
Zahlen für die Städte sind korrekt, jedoch werden für einige Städte falsche Länder angegeben.<br />
Hier ist ein Beispiel eines fehlerhaft zugeordneten Ergebnisses.<br />
Richtlinien für die Erstellung von Metadatenmodellen 41
Kapitel 2: Das von Cognos 8 generierte SQL<br />
42 Framework Manager<br />
Wenn Ihnen etwas derartiges auffällt, sollten Sie normalerweise zuerst im SQL nachsehen.<br />
Das SQL<br />
Dies ist ein Beispiel für eine zusammengefügte Abfrage. Eine solche ist sinnvoll, wenn Ihr Modell<br />
mehrere Fakten enthält. Eine zusammengefügte Abfrage ist im Wesentlichen eine Abfrage, die versucht,<br />
mehrere Fakten zusammenzufügen. Sie verwendet die Beziehungen, die die Fakten zueinander<br />
in Bezug setzen, ebenso wie die Determinanten für die angepassten oder allgemeinen, im<br />
Modell festgelegten Dimensionen. Eine zusammengefügte Abfrage kann durch zwei Abfragen mit<br />
einer vollständig offenen Verbindung identifiziert werden Die Wrapper-Abfrage muss eine Coalesce-Anweisung<br />
für die angepassten Dimensionen enthalten.<br />
Bitte beachten Sie die folgenden Probleme im SQL:<br />
• Die Abfrage hat keine Coalesce-Anweisung.<br />
• RSUM zeigt den Versuch an, einen gültigen Schlüssel zu erstellen.<br />
select<br />
D3.COUNTRY as COUNTRY,<br />
D2.CITY as CITY,<br />
D2.number_of_orders as number_of_orders<br />
from<br />
(select<br />
SALES_BRANCH.CITY as CITY,<br />
XCOUNT(ORDER_HEADER.ORDER_NUMBER for SALES_BRANCH.CITY ) as<br />
number_of_orders,<br />
RSUM(1 at SALES_BRANCH.CITY order by SALES_BRANCH.CITY asc local) as sc<br />
from<br />
gosales.gosales.dbo.SALES_BRANCH SALES_BRANCH<br />
join<br />
gosales.gosales.dbo.ORDER_HEADER ORDER_HEADER<br />
on (SALES_BRANCH.SALES_BRANCH_CODE = ORDER_HEADER.SALES_BRANCH_CODE)<br />
group by<br />
SALES_BRANCH.CITY<br />
order by<br />
CITY asc<br />
) D2<br />
full outer join<br />
(select<br />
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,<br />
RSUM(1 at COUNTRY_MULTILINGUAL.COUNTRY order by<br />
COUNTRY_MULTILINGUAL.COUNTRY asc local) as sc<br />
from<br />
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL<br />
group by<br />
COUNTRY_MULTILINGUAL.COUNTRY<br />
order by<br />
COUNTRY asc<br />
) D3<br />
on (D2.sc = D3.sc)<br />
Offensichtlich werden die zusammengefügten Spalten bei jeder Abfrage auf der Grundlage von<br />
Kriterien errechnet, die keinen Bezug zueinander haben. Dies erklärt, weshalb es keinen offensichtlichen<br />
Zusammenhang zwischen den Ländern und den Städten im Bericht gibt.<br />
Warum also sehen wir eine zusammengefügte Abfrage? Um diese Frage zu beantworten, müssen<br />
wir das Modell betrachten.
Kapitel 2: Das von Cognos 8 generierte SQL<br />
In diesem Beispiel kamen die im Bericht verwendeten Abfrageelemente aus verschiedenen Abfragesubjekten.<br />
"Country" kam aus "Country Multilingual", "City" kam aus "Sales Branch", und die<br />
"Number of Orders" kam aus einem Abfragesubjekt zur Zählung von "Order Number" in<br />
"Order Header".<br />
Das Problem ist, dass die Abfrage eine Aufteilung vornimmt, da die Abfrage-Engine dies als eine<br />
Abfrage nach mehreren Fakten betrachtet. Die Aufteilung hat jedoch keinen gültigen Schlüssel für<br />
das Zusammenfügen, da es kein Element gibt, das beide Fakten gemeinsam haben.<br />
Es gibt mehrere Möglichkeiten, dieses Problem zu lösen; ein Verständnis der Daten ist dafür<br />
jedoch unbedingt erforderlich.<br />
Lösung 1<br />
Sie können einen Filter zu "Country Multilingual" hinzufügen, der die Kardinalität der Beziehung<br />
auf 1-1 ändert.<br />
Select *<br />
from [GOSL].COUNTRY_MULTILINGUAL<br />
Where<br />
COUNTRY_MULTILINGUAL."LANGUAGE"=’EN’<br />
Oder Sie können der Beziehung einen Filter hinzufügen, der die Kardinalität auf 1-1 ändert.<br />
COUNTRY.COUNTRY_CODE = COUNTRY_MULTILINGUAL.COUNTRY_CODE and<br />
COUNTRY_MULTILINGUAL.LANGUAGE = ’EN’<br />
Beide Wege führen zu einem Modell, das in dieser Abfrage nur einen einzelnen Fakt enthält.<br />
Lösung 2<br />
Vereinfachen Sie das Modell durch die Konsolidierung der verbundenen Abfragesubjekte. Dieses<br />
Vorgehen bietet den größten Vorteil, da so das Modell vereinfacht wird und mögliche Fehlerquellen<br />
bei der Abfragengenerierung reduziert werden.<br />
Jede Lösung führt zu einem korrekten Abfrageergebnis.<br />
Richtlinien für die Erstellung von Metadatenmodellen 43
Kapitel 2: Das von Cognos 8 generierte SQL<br />
44 Framework Manager<br />
Das SQL ist keine zusammengefügte Abfrage mehr.<br />
select<br />
Country.c7 as COUNTRY,<br />
SALES_BRANCH.CITY as CITY,<br />
XCOUNT(ORDER_HEADER.ORDER_NUMBER for Country.c7,SALES_BRANCH.CITY ) as<br />
number_of_orders<br />
from<br />
(select<br />
COUNTRY.COUNTRY_CODE as c1,<br />
COUNTRY_MULTILINGUAL.COUNTRY as c7<br />
from<br />
gosales.gosales.dbo.COUNTRY COUNTRY<br />
join<br />
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL<br />
on (COUNTRY.COUNTRY_CODE = COUNTRY_MULTILINGUAL.COUNTRY_CODE)<br />
where COUNTRY_MULTILINGUAL.LANGUAGE='EN'<br />
) Country<br />
join<br />
gosales.gosales.dbo.SALES_BRANCH SALES_BRANCH<br />
on (SALES_BRANCH.COUNTRY_CODE = Country.c1)<br />
join<br />
gosales.gosales.dbo.ORDER_HEADER ORDER_HEADER<br />
on (SALES_BRANCH.SALES_BRANCH_CODE = ORDER_HEADER.SALES_BRANCH_CODE)<br />
group by<br />
Country.c7,<br />
SALES_BRANCH.CITY<br />
Auflösen von Abfragen, die an der falschen Stelle geteilt sind<br />
Manchmal löst die Verwendung von 1-n-Kardinalität das Problem zirkulärer Verbindungspfade<br />
nicht. Es werden weiterhin fehlerhafte Ergebnisse ausgegeben, da die zusammengefügte Abfrage<br />
nicht korrekt formuliert wurde.<br />
Das Modell enthält beispielsweise die folgenden Objekte.
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Wenn Sie beispielsweise einen Bericht für "Sales Target" und "Actual Sales", gruppiert nach "Product"<br />
und "Sales Staff", ausführen, ist das Ergebnis fehlerhaft. "Actual Sales" ist etwas zu hoch.<br />
Um das Ergebnis zu prüfen, fragen Sie jeden Fakt einzeln ab.<br />
Dies bestätigt, dass der erste Bericht ein viel höheres Ergebnis für "Actual Sales" anzeigt, als er<br />
sollte.<br />
Das SQL<br />
Beachten Sie die folgenden Probleme, wenn Sie sich mit SQL beschäftigen:<br />
• Nur eine der Dimensionsspalten hat eine Coalesce-Anweisung. Dies zeigt, dass die Abfrage<br />
nicht richtig geteilt worden ist.<br />
• Die Gruppierung für die Seite "Sales Target" der Abfrage ist richtig. Dies erklärt, warum<br />
"Sales Target" korrekt ist.<br />
• Die Seite "Quantity" der zusammengefügten Abfrage ist nur nach "Product" gruppiert, und<br />
daher ist "Actual Sales" zu hoch.<br />
select<br />
coalesce(D2.PRODUCT_NAME,D3.PRODUCT_NAME) as PRODUCT_NAME,<br />
D2.LAST_NAME as LAST_NAME,<br />
D2.SALES_TARGET as SALES_TARGET,<br />
D3.Actual_sales as Actual_sales<br />
from<br />
(select<br />
Product.PRODUCT_NAME as PRODUCT_NAME,<br />
Richtlinien für die Erstellung von Metadatenmodellen 45
Kapitel 2: Das von Cognos 8 generierte SQL<br />
46 Framework Manager<br />
SALES_STAFF.LAST_NAME as LAST_NAME,<br />
XSUM(SALES_TARGET.SALES_TARGET for<br />
Product.PRODUCT_NAME,SALES_STAFF.LAST_NAME ) as SALES_TARGET<br />
from<br />
(select PRODUCT_MULTILINGUAL.PRODUCT_NAME,PRODUCT.PRODUCT_NUMBER from<br />
gosales.gosales.dbo.PRODUCT PRODUCT,<br />
gosales.gosales.dbo.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL where<br />
PRODUCT.PRODUCT_NUMBER = PRODUCT_MULTILINGUAL.PRODUCT_NUMBER) Product<br />
join<br />
gosales.gosales.dbo.SALES_TARGET SALES_TARGET<br />
on (Product.PRODUCT_NUMBER = SALES_TARGET.PRODUCT_NUMBER)<br />
join<br />
gosales.gosales.dbo.SALES_STAFF SALES_STAFF<br />
on (SALES_STAFF.SALES_STAFF_CODE = SALES_TARGET.SALES_STAFF_CODE)<br />
group by<br />
Product.PRODUCT_NAME,<br />
SALES_STAFF.LAST_NAME<br />
) D2<br />
full outer join<br />
(select<br />
Product.PRODUCT_NAME as PRODUCT_NAME,<br />
XSUM(XSUM((ORDER_DETAILS.QUANTITY * ORDER_DETAILS.UNIT_SALE_PRICE) for<br />
Product.PRODUCT_NAME ) at Product.PRODUCT_NAME for Product.PRODUCT_NAME )<br />
as Actual_sales<br />
from<br />
(select PRODUCT_MULTILINGUAL.PRODUCT_NAME,PRODUCT.PRODUCT_NUMBER from<br />
gosales.gosales.dbo.PRODUCT PRODUCT,<br />
gosales.gosales.dbo.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL where<br />
PRODUCT.PRODUCT_NUMBER = PRODUCT_MULTILINGUAL.PRODUCT_NUMBER) Product<br />
join<br />
gosales.gosales.dbo.ORDER_DETAILS ORDER_DETAILS<br />
on (Product.PRODUCT_NUMBER = ORDER_DETAILS.PRODUCT_NUMBER)<br />
group by<br />
Product.PRODUCT_NAME<br />
) D3<br />
on (D2.PRODUCT_NAME = D3.PRODUCT_NAME)<br />
Der Grund für diese Probleme ist, dass in "Order Header" nichts ausgewählt wurde. Dies war<br />
nicht in der Abfrage enthalten, sodass es keine Möglichkeit gab, "Sales Staff" zu "Order Details"<br />
in Beziehung zu setzen. Es war nicht notwendig, "Sales Staff" zu "Order Details" in Beziehung zu<br />
setzen, um alle Tabellen miteinander zu verbinden, da es bereits eine Beziehung zwischen "Sales<br />
Staff" und "Sales Target" gab.<br />
Obwohl Sie dies lösen können, indem Sie ein Element aus "Order Header" in den Bericht übernehmen,<br />
wissen Ihre Benutzer unter Umständen nicht, wie sie verfahren sollen. Wir empfehlen<br />
Ihnen, dies Problem im Modell zu beheben. Dies ist die empfohlene Lösung sowohl für die Erstellung<br />
eines dimensionalen als auch eines Geschäftsmodells. Darüber hinaus ist es mit einem einfacheren<br />
Modell schwieriger, einen Bericht auszuführen, der schlechtes SQL generiert.<br />
Konsolidieren Sie Abfragesubjekte, wenn logische Gruppierungen möglich sind. Kombinieren Sie<br />
in diesem Beispiel die Abfragesubjekte "Order Details" und "Order Header". Die neue Gruppe<br />
von Abfragesubjekten kann nun für die dimensionale Modellierung verwendet werden.
Kapitel 2: Das von Cognos 8 generierte SQL<br />
Wenn Sie diese neue Gruppe von Abfragesubjekten verwenden, sieht Ihr Bericht so aus.<br />
Wenn Sie das SQL betrachten, sehen Sie Folgendes:<br />
select<br />
coalesce(D2.PRODUCT_NAME,D3.PRODUCT_NAME) as PRODUCT_NAME,<br />
coalesce(D2.LAST_NAME,D3.LAST_NAME) as LAST_NAME,<br />
D2.SALES_TARGET as SALES_TARGET,<br />
D3.Actual_sales as Actual_sales<br />
from<br />
(select<br />
Product.PRODUCT_NAME as PRODUCT_NAME,<br />
SALES_STAFF.LAST_NAME as LAST_NAME,<br />
XSUM(SALES_TARGET.SALES_TARGET for<br />
Product.PRODUCT_NAME,SALES_STAFF.LAST_NAME ) as SALES_TARGET<br />
from<br />
(select PRODUCT_MULTILINGUAL.PRODUCT_NAME,PRODUCT.PRODUCT_NUMBER from<br />
gosales.gosales.dbo.PRODUCT PRODUCT,<br />
gosales.gosales.dbo.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL where<br />
PRODUCT.PRODUCT_NUMBER = PRODUCT_MULTILINGUAL.PRODUCT_NUMBER) Product<br />
join<br />
gosales.gosales.dbo.SALES_TARGET SALES_TARGET<br />
on (SALES_TARGET.PRODUCT_NUMBER = Product.PRODUCT_NUMBER)<br />
join<br />
gosales.gosales.dbo.SALES_STAFF SALES_STAFF<br />
on (SALES_STAFF.SALES_STAFF_CODE = SALES_TARGET.SALES_STAFF_CODE)<br />
group by<br />
Product.PRODUCT_NAME,<br />
SALES_STAFF.LAST_NAME<br />
) D2<br />
full outer join<br />
(select<br />
Product.PRODUCT_NAME as PRODUCT_NAME,<br />
SALES_STAFF.LAST_NAME as LAST_NAME,<br />
XSUM((ORDER_DETAILS_ORDER_HEADER.c5 * ORDER_DETAILS_ORDER_HEADER.c8) for<br />
Product.PRODUCT_NAME,SALES_STAFF.LAST_NAME ) as Actual_sales<br />
Richtlinien für die Erstellung von Metadatenmodellen 47
Kapitel 2: Das von Cognos 8 generierte SQL<br />
48 Framework Manager<br />
from<br />
(select PRODUCT_MULTILINGUAL.PRODUCT_NAME,PRODUCT.PRODUCT_NUMBER from<br />
gosales.gosales.dbo.PRODUCT PRODUCT,<br />
gosales.gosales.dbo.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL where<br />
PRODUCT.PRODUCT_NUMBER = PRODUCT_MULTILINGUAL.PRODUCT_NUMBER) Product<br />
join<br />
(select<br />
ORDER_DETAILS.PRODUCT_NUMBER as c4,<br />
ORDER_DETAILS.QUANTITY as c5,<br />
ORDER_DETAILS.UNIT_SALE_PRICE as c8,<br />
ORDER_HEADER.SALES_STAFF_CODE as c14<br />
from<br />
gosales.gosales.dbo.ORDER_DETAILS ORDER_DETAILS<br />
join<br />
gosales.gosales.dbo.ORDER_HEADER ORDER_HEADER<br />
on (ORDER_HEADER.ORDER_NUMBER = ORDER_DETAILS.ORDER_NUMBER)<br />
) ORDER_DETAILS_ORDER_HEADER<br />
on (ORDER_DETAILS_ORDER_HEADER.c4 = Product.PRODUCT_NUMBER)<br />
join<br />
gosales.gosales.dbo.SALES_STAFF SALES_STAFF<br />
on (SALES_STAFF.SALES_STAFF_CODE = ORDER_DETAILS_ORDER_HEADER.c14)<br />
group by<br />
Product.PRODUCT_NAME,<br />
SALES_STAFF.LAST_NAME<br />
) D3<br />
on ((D2.PRODUCT_NAME = D3.PRODUCT_NAME) and (D2.LAST_NAME = D3.LAST_NAME)))
Index<br />
Numerics<br />
1-zu-1-Beziehungen, 9, 36<br />
1-zu-n-Beziehungen, 9, 36<br />
A<br />
Abfrage ohne Fakten, 24<br />
Abfragen<br />
einzelner Fakt, 33<br />
geteilte, 40, 43<br />
mehrere Ebenen, 18<br />
mehrere Fakten, 18, 34, 37<br />
ohne Fakten, 24<br />
zusammengefügte, 8<br />
Abfragen einzelner Fakten, 33<br />
Abfragen mehrerer Ebenen, 18, 34, 37<br />
Abfragen mehrerer Fakten, 18, 34, 37<br />
Abfragesubjekte<br />
Determinanten, 30<br />
Dimensionen, 18<br />
in Dimensionen konvertieren, 28<br />
Sternschemagruppen, 24<br />
aktualisieren<br />
Datentypen, 26<br />
Aktualisieren von Modellen, 26<br />
konvertieren, 28, 30<br />
reparieren, 27<br />
überprüfen, 26<br />
von ReportNet 1.x, 25<br />
Warnungen, 27<br />
Angepasste Dimensionen<br />
mehrere Fakten, 34, 37<br />
angepasste Sternschemagruppen, 24<br />
Attribute, 28, 30<br />
Auflösen<br />
geteilte Abfragen, 40, 43<br />
uneindeutige Objekte, 40<br />
B<br />
Bereichsbeziehungen, 7<br />
Bezeichner<br />
eindeutige, 6<br />
Beziehungen<br />
1-n, 9, 36<br />
Bereich, 7<br />
Granularitätsebenen, 16<br />
mehrere gültige, 13<br />
n-zu-n, 8<br />
überprüfen, 8<br />
C<br />
Copyright, 2<br />
D<br />
Datenquellendimensionen, 18<br />
Datentypen, 26<br />
Determinanten, 6<br />
aktualisieren auf, 27<br />
aus Dimensionsinformationen konvertieren, 30<br />
definieren, 17<br />
Kardinalität, 8<br />
überprüfen, 31<br />
Dimensionale Abfragen, 33<br />
einzelner Fakt, 33<br />
mehrerer Fakten und Ebenen, 34, 37<br />
Dimensionales Modellieren relationaler Metadaten, 7<br />
Dimensionen<br />
Abfragesubjekte, 18<br />
aktualisieren auf, 27<br />
aus Abfragesubjekten konvertieren, 28<br />
Bereichsbeziehungen, 7<br />
Datenquelle, 18<br />
definieren, 17<br />
Hierarchien, 22<br />
identifizieren, 10<br />
Kennzahl, 7, 12, 17<br />
mit unterschiedlichen Rollen, 13<br />
Modell, 18<br />
reguläre, 7, 12, 17, 18<br />
Sternschemagruppen, 24<br />
überprüfen, 29<br />
uneindeutig, 40<br />
Dimensionen mit unterschiedlichen Rollen, 13<br />
Dimensionsinformationen, 28, 30<br />
Dokument<br />
Version, 2<br />
Doppelzählung, 6, 9, 36, 40<br />
E<br />
Ebenen, 7, 28, 30<br />
Eindeutige Bezeichner, 6<br />
Eindeutige Schlüssel, 28, 30<br />
erstellen<br />
Kennzahldimensionen, 12<br />
reguläre Dimensionen, 12<br />
Sternschemagruppen, 24<br />
F<br />
Fakten, 7, 12<br />
identifizieren, 10<br />
uneindeutig, 40<br />
Faktübergreifende Abfragen, 10<br />
Richtlinien für die Erstellung von Metadatenmodellen 49
Index<br />
G<br />
Gemeinsame Dimensionen, 17<br />
Geteilte Abfragen, 40, 43<br />
Granularität, 16<br />
Gültige Beziehungen<br />
mehrere, 13<br />
H<br />
Hierarchien, 7, 17, 18, 28, 30<br />
mehrere, 22<br />
I<br />
Importierte Metadaten<br />
überprüfen, 8<br />
K<br />
Kardinalität<br />
1-1, 36<br />
1-n, 36<br />
Abfragen, 9<br />
Datenquelle, 8<br />
Dimensionen und Fakten, 10<br />
Regeln, 9<br />
Typen, 9<br />
überprüfen, 8<br />
Kardinalitätsregeln, 9<br />
Kennzahldimensionen, 7<br />
definieren, 17<br />
erstellen, 12<br />
mit unterschiedlichen Rollen, 13<br />
M<br />
Master/Detail-Tabellen, 12<br />
Maximale Kardinalität, 9<br />
Mehrere gültige Beziehungen, 13<br />
Mehrere Hierarchien, 22<br />
Minimale Kardinalität, 9<br />
Modelldimensionen, 18<br />
Modelle<br />
aktualisieren, 26<br />
reparieren, 27<br />
überprüfen, 26<br />
N<br />
n-zu-n-Beziehungen, 8<br />
O<br />
Obligatorische Kardinalität, 9<br />
Offene Verbindungen<br />
vollständig, 8<br />
Optionale Beziehungen, 8<br />
Optionale Kardinalität, 9<br />
R<br />
Reflexive Beziehungen, 16<br />
reguläre Dimensionen, 7, 18<br />
erstellen, 12<br />
50 Framework Manager<br />
reguläre Dimensionen (Fortsetzung)<br />
mit unterschiedlichen Rollen, 13<br />
Rekursive Beziehungen, 16<br />
Reparieren von Modellen, 27<br />
S<br />
Schlüssel, 8, 28, 30<br />
SQL, 33<br />
Sternschemagruppen<br />
erstellen, 24<br />
mehrere angepasste, 24<br />
U<br />
Überprüfen von Modellen, 26, 27<br />
Uneindeutige Objekte, 40<br />
V<br />
Verbindungen<br />
vollständig offene, 8<br />
zirkuläre, 43<br />
Vereinfachen von Modellen, 11<br />
Version<br />
Dokument, 2<br />
Vollständig offene Verbindungen, 8<br />
W<br />
Workflows, 7, 25<br />
Z<br />
Zirkuläre Verbindungen, 43<br />
Zusammengefügte Abfragen, 8