CSDLBI-Konzepte
Wichtig: Dieses Dokument wurde archiviert. Die neuesten Informationen finden Sie unter Open Specification zu [MS-CSDLBI]: Dateiformat für die konzeptuelle Schemadefinition mit Anmerkungen zu Business Intelligence.
Die konzeptionelle Schemadefinitionssprache mit BI-Anmerkungen (CSDLBI) basiert auf Entity Data Framework, einer Abstraktion zum Darstellen von Daten, die es ermöglicht, dass unterschiedliche Datasets programmgesteuert aufgerufen, abgefragt oder exportiert werden können. CSDLBI wird verwendet, um Datenmodelle darzustellen, die mit Analysis Services erstellt wurden, da sie umfangreiche, datengesteuerte Berichte und Anwendungen unterstützt.
In diesem Abschnitt wird erläutert, wie die CSDLBI-Darstellung Analysis Services Datenmodellen (tabellarisch und mehrdimensional) sowie Beispielen für jeden Modelltyp zugeordnet wird.
Die Beispiele zur Veranschaulichung dieser Konzepte wurden aus der Beispieldatenbank AdventureWorks, verfügbar auf CodePlex, entnommen. Weitere Informationen zu den Beispielen finden Sie unter Adventure Works-Beispiele für SQL Server.
Struktur eines tabellarischen Modells in CSDLBI
Ein CSDLBI-Dokument, in dem ein Berichtsmodell und seine Daten beschrieben werden, beginnt mit der xsd-Anweisung, gefolgt von der Definition eines Modells.
Das Modell ist ein Namespace, der die folgenden Hauptentitäten, Zuordnungen und Eigenschaften enthält:
EntityContainer listet die Tabellen im Modell auf.
Jede Tabelle wird mit entityContainer als EntitySet aufgelistet.
Jede Beziehung zwischen zwei Tabellen wird als AssociationSet beschrieben, das die Endpunkte der Beziehung und die Beziehungsrollen definiert.
Das EntityType-Element wird für BISM erweitert, um zusätzliche Details zu den Tabellen und den darin enthaltenen Spalten bereitzustellen, einschließlich Eigenschaften für Sortier- und Anzeigezwecke.
Das Measure-Element definiert Berechnungen, die im Modell verwendet werden können. Ein Measure kann in einen KPI umgewandelt werden, indem mithilfe des neuen KPI-Elements eine Reihe spezieller Anzeigeattribute hinzugefügt wird.
Es gibt keine separate Darstellung von Perspektiven. Spalten und Tabellen, die nicht in einer Perspektive enthalten sind, sind in der CSDL vorhanden, werden jedoch mit dem Hidden-Attribut gekennzeichnet.
Entitäten, EntitySets und EntityTypes
Die Idee einer Entität in Entity Data Framework wird erweitert, um Spalten und Tabellen aus dem Datenmodell darzustellen. Der folgende Auszug zeigt die Liste der EntitySet-Elemente in einem einfachen Modell, das nur drei Tabellen enthält.
<EntityContainer Name="SimpleModel">
<EntitySet Name="DimCustomer"EntityType="SimpleModel.DimCustomer">
<bi:EntitySet />
</EntitySet>
<EntitySet Name="DimDate" EntityType="SimpleModel.DimDate">
<bi:EntitySet />
</EntitySet>
<EntitySet Name="DimGeography" EntityType="SimpleModel.DimGeography">
<bi:EntitySet />
</EntitySet> />
EntitySet enthält keine Informationen zu Spalten oder Daten in der Tabelle. Die ausführliche Beschreibung der Spalten und ihrer Eigenschaften wird im EntityType-Element bereitgestellt.
Das EntitySet-Element für jede Entität (Tabelle) enthält eine Auflistung von Eigenschaften, die die Schlüsselspalte, den Datentyp und die Länge der Spalte, NULL-Zulässigkeit, Sortierverhalten usw. definieren. Im folgenden CSDL-Auszug werden z. B. drei Spalten in der Customer-Tabelle beschrieben. Die erste Spalte ist eine spezielle ausgeblendete Spalte, die intern vom Modell verwendet wird.
<EntityType Name="Customer">
<Key>
<PropertyRef Name="RowNumber" />
</Key>
<Property Name="RowNumber" Type="Int64" Nullable="false">
<bi:Property Hidden="true" Contents="RowNumber"
Stability="RowNumber" />
</Property>
<Property Name="CustomerKey" Type="Int64" Nullable="false">
<bi:Property />
</Property>
<Property Name="FirstName" Type="String" MaxLength="Max" FixedLength="false">
<bi:Property />
</Property>
Um die Größe des generierten CSDLBI-Dokuments einzuschränken, werden Eigenschaften, die in einer Entität mehr als einmal vorkommen, durch einen Verweis auf eine vorhandene Eigenschaft angegeben, sodass die Eigenschaft nur einmal für EntityType aufgeführt werden muss. Die Clientanwendung kann den Wert der -Eigenschaft abrufen, indem sie den EntityType sucht, der mit OriginEntityType übereinstimmt.
Beziehungen
Im Entity Data Framework werden Beziehungen als Zuordnungen zwischen Entitäten definiert.
Zuordnungen haben immer genau zwei Enden, die jeweils auf ein Feld oder eine Spalte in einer Tabelle zeigen. Daher sind mehrere Beziehungen zwischen zwei Tabellen möglich, wenn die Beziehungen verschiedene Endpunkte haben. Den Endpunkten der Zuordnung wird ein Rollenname zugewiesen, der angibt, wie die Zuordnung im Kontext des Datenmodells verwendet wird. Ein Beispiel für einen Rollennamen kann ShipTo sein, wenn er auf eine Kunden-ID angewendet wird, die mit der Kunden-ID in einer Orders-Tabelle verknüpft ist.
Die CSDLBI-Darstellung des Modells enthält auch Attribute für die Zuordnung, die bestimmen, wie die Entitäten im Hinblick auf die Multiplizität der Zuordnung einander zugeordnet werden. Multiplizität gibt an, ob das Attribut oder die Spalte am Endpunkt einer Beziehung zwischen Tabellen auf der 1-Seite oder auf der n-Seite einer 1:n-Beziehung ist. Es gibt keinen separaten Wert für 1:1-Beziehungen. CSDLBI-Anmerkungen unterstützen eine Multiplizität von 0 (das bedeutet, dass die Entität nicht zugeordnet ist) oder 0..1, was entweder eine 1:1-Beziehung oder eine 1:n-Beziehung bedeutet.
Im folgenden Beispiel wird die CSDLBI-Ausgabe für eine Beziehung zwischen den Tabellen "Date" und "ProductInventory" dargestellt, wobei die zwei Tabellen über die DateAlternateKey-Spalte verknüpft sind. Beachten Sie, dass der Name des AssociationSet standardmäßig der vollqualifizierte Name der Spalten ist, die an der Beziehung beteiligt sind. Sie können dieses Verhalten jedoch ändern, wenn Sie das Modell erstellen, und ein anderes Namensformat verwenden.
<AssociationSet Name="ProductInventory_Date_DateKey" Association="Model.ProductInventory_Date_DateKey">
<End EntitySet="ProductInventory" />
<End EntitySet="Date" />
<bi:AssociationSet />
</AssociationSet>
Visualisierungs- und Navigationseigenschaften
Ein wichtiger Teil der CSDLBI-Anmerkungen sind die Eigenschaften zum Definieren der Darstellung auf der Berichtsebene sowie zum Navigieren in den Beziehungen zwischen Entitäten. Wenn Sie ein Datenmodell erstellen, sehen Sie es in der Regel nicht als wichtig an, die Sortierung oder Gruppierung der Daten zu steuern oder einen Standardwert anzugeben, in der Annahme, dass die Clientanwendung die Reihenfolge und andere Details der Darstellung angibt. Analysis Services tabellarischen Modelle sind jedoch für die Integration in den Power View Berichtsclient konzipiert und enthalten Eigenschaften und Attribute, die die Darstellung von Entitäten aus dem Datenmodell auf der Berichtsentwurfsoberfläche unterstützen.
Erweiterungen für Visualisierung umfassen Attribute zum Angeben der Standardaggregation, die mit numerischen Daten verwendet werden soll, zum Angeben, dass ein Textfeld auf eine URL eines Bilds zeigt, oder zum Angeben des Felds, das verwendet wurde, um das aktuelle Feld zu sortieren.
Namenseigenschaften und Namenskonventionen
Das CSDLBI-Schema setzt voraus, dass jede Entität über einen eindeutigen Namen und einen Bezeichner verfügt, die als Schlüssel verwendet werden können. Außerdem können einige Entitäten über zu Anzeigezwecken verwendete Beschriftungen und Kontextnamen verfügen, die sich abhängig davon ändern, wo die Entität verwendet wird.
Das Documentation-Element bietet Berichts-Designern die Möglichkeit, eine Beschreibung der Entität zu erstellen, damit Geschäftsbenutzer die Bedeutung der Daten besser verstehen können. Einige Entitäten lassen auch ein oder mehrere Anmerkungsattribute zu, die zusätzliche Metadaten für die Nutzung durch die Anwendung oder clients bereitstellen.
Wenn Sie ein Modell mit den Analysis Services Tools generieren, entsprechen die Namen, die für Objekte erstellt werden, den Analysis Services Konventionen für Objektbenennung und Namens eindeutigkeit. Da CSDLBI jedoch auf dem Entity Data Framework (CONVENTION) basiert, das erfordert, dass Namen Konventionen für C#-Bezeichner einhalten, verwendet der Server beim Erstellen der CSDLBI-Ausgabe für ein Modell die namen, die innerhalb des Analysis Services Schemas verwendet werden, und erstellt automatisch neue Objektnamen, die den ANFORDERUNGEN von BED entsprechen. In der folgenden Tabelle werden die Vorgänge, durch die die neuen Namen generiert werden, beschrieben.
Regel | Aktion |
---|---|
Keine unzulässigen Zeichen | Unzulässige Zeichen werden durch Unterstriche ersetzt. |
Namen müssen eindeutig sein | Wenn zwei Zeichenfolgen gleich sind, wird an eine ein Unterstrich plus eine Zahl angefügt, um sie eindeutig zu machen |
Warnung
Beschriftungen und Qualifizierer haben beide Übersetzungen, und für eine bestimmte Sprache kann das eine oder das andere vorhanden sein. Das bedeutet, dass in Fällen, wo ein Qualifizierer und ein Name oder ein Qualifizierer und eine Beschriftung verkettet sind, die Zeichenfolgen in zwei verschiedenen Sprachen vorliegen können.
Ergänzungen zur Unterstützung mehrdimensionaler Modelle
In Version 1.0 der CSDLBI-Anmerkungen wurden nur tabellarische Modelle unterstützt. Version 1.1. wurde durch die Unterstützung mehrdimensionaler Modelle (OLAP-Cubes) erweitert, die mithilfe herkömmlicher BI-Entwicklungstools erstellt wurden. Daher können nun zur Berichterstellung XML-Anforderungen für ein mehrdimensionales Modell ausgeben werden und eine CSDLBI-Definition des Modells kann empfangen werden.
Cubes: Eine SQL Server Analysis Services tabellarische Datenbank kann nur einen Modus enthalten. Im Gegensatz dazu kann jede mehrdimensionale Datenbank mehrere Cubes enthalten, wobei jede Datenbank einem Standardcube zugeordnet ist. Wenn Sie eine XML-Anforderung für einen mehrdimensionalen Server ausgeben, muss daher der Cube angegeben werden; andernfalls wird das XML für den Standardcube zurückgegeben.
Die Darstellung eines Cubes ähnelt ansonsten sehr stark der einer tabellarischen Modelldatenbank. Der Cubename und der Cube entsprechen dem Namen und dem Bezeichner der tabellarischen Datenbank.
Dimensionen: Eine Dimension wird in CSDLBI als Entität (Tabelle) mit Spalten und Eigenschaften dargestellt. Beachten Sie, dass selbst wenn sie nicht in einer Perspektive enthalten ist, eine Dimension, die im Modell enthalten ist, in der CSDL-Ausgabe dargestellt wird, die als Ausgeblendet markiert ist.
Perspektiven: Ein Client kann CSDL für einzelne Perspektiven anfordern. Weitere Informationen finden Sie unter DISCOVER_CSDL_METADATA Rowset.
Hierarchien: Hierarchien werden in CSDLBI als eine Reihe von Ebenen unterstützt und dargestellt.
Mitglieder: Die Unterstützung für das Standardmember wurde hinzugefügt, und der CSDLBI-Ausgabe werden automatisch Standardwerte hinzugefügt.
Berechnete Elemente: Mehrdimensionale Modelle unterstützen berechnete Elemente für untergeordnete Elemente von Alle mit einem einzelnen echten Element.
Dimensionsattribute: In der CSDLBI-Ausgabe werden Dimensionsattribute unterstützt und automatisch als nicht aggregierbar markiert.
Kpis: KPIs wurden in CSDLBI Version 1.1 unterstützt, aber die Darstellung wurde geändert. Bisher war ein KPI eine Eigenschaft eines Measures. In Version 1.1 kann das KPI-Element einem Measure hinzugefügt werden.
Neue Eigenschaften: Zur Unterstützung von DirectQuery-Modellen wurden zusätzliche Attribute hinzugefügt.
Einschränkungen: Die Zellensicherheit wird nicht unterstützt.