Concetti di CSDLBI
Importante: Questo documento è archiviato. Per le informazioni più recenti, vedere Open Specification [MS-CSDLBI]: Conceptual Schema Definition File Format with Business Intelligence Annotations (Specifica aperta [MS-CSDLBI]: formato del file di definizione dello schema concettuale con annotazioni di Business Intelligence).
Il linguaggio CSDL (Conceptual Schema Definition Language) con annotazioni Business Intelligence (CSDLBI) è basato su Entity Data Framework, ovvero un'astrazione per la rappresentazione di dati in modo da rendere possibile l'accesso, l'esecuzione di query o l'esportazione di set di dati diversi a livello di programmazione. CSDLBI viene usato per rappresentare i modelli di dati creati Analysis Services perché supporta applicazioni e report complessi e guidati dai dati.
In questa sezione viene illustrato il mapping della rappresentazione CSDLBI Analysis Services modelli di dati tabulari e multidimensionali, insieme a esempi di ogni tipo di modello.
Gli esempi utilizzati per illustrare questi provengono dal database di esempio AdventureWorks, disponibile su Codeplex. Per altre informazioni sugli esempi, vedere Adventure Works Samples for SQL Server.
Struttura di un modello tabulare in CSDLBI
Un documento CSDLBI che descrive un modello di report e i relativi dati inizia con l'istruzione xsd, seguito dalla definizione di un modello.
Il modello è uno spazio dei nomi che contiene le seguenti entità, associazioni e proprietà principali:
EntityContainer elenca le tabelle nel modello.
Ogni tabella è elencata con EntityContainer come EntitySet.
Ogni relazione tra due tabelle viene descritta come AssociationSet che definisce gli end point della relazione e i ruoli della relazione.
L'elemento EntityType viene esteso per BISM per fornire dettagli aggiuntivi sulle tabelle e sulle colonne in esse incluse, incluse le proprietà per l'ordinamento e la visualizzazione.
L'elemento Measure definisce i calcoli che possono essere usati nel modello. Una misura può essere trasformata in un indicatore KPI aggiungendo un set di attributi di visualizzazione speciali, usando il nuovo elemento KPI .
Non sono disponibili rappresentazioni di prospettive distinte. Le colonne e le tabelle non incluse in una prospettiva sono presenti nel file CSDL, ma contrassegnate con l'attributo Hidden .
Entità, EntitySet ed EntityType
La nozione di un'entità in Entity Data Framework viene estesa per rappresentare colonne e tabelle del modello di dati. L'estratto seguente illustra l'elenco di elementi EntitySet in un modello semplice contenente solo tre tabelle.
<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 non contiene informazioni sulle colonne o sui dati nella tabella. La descrizione dettagliata delle colonne e delle relative proprietà viene fornita nell'elemento EntityType.
L'elemento EntitySet per ogni entità (tabella) include una raccolta di proprietà che definiscono la colonna chiave, il tipo di dati e la lunghezza della colonna, il supporto dei valori Null, il comportamento di ordinamento e così via. Ad esempio, nell'estratto di CSDL seguente vengono descritte tre colonne nella tabella Customer. La prima colonna è una colonna nascosta speciale utilizzata internamente dal modello.
<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>
Per limitare le dimensioni del documento CSDLBI generato, le proprietà visualizzate più di una volta in un'entità vengono specificate da un riferimento a una proprietà esistente, in modo che la proprietà sia elencata una sola volta per EntityType. L'applicazione client può ottenere il valore della proprietà individuando l'elemento EntityType che corrisponde a OriginEntityType.
Relazioni
In Entity Data Framework le relazioni sono definite come associazioni tra entità.
Le associazioni dispongono sempre esattamente di due endpoint, ognuno dei quali punta a un campo o una colonna in una tabella. Tra due tabelle sono pertanto possibili più relazioni, se queste ultime dispongono di endpoint diversi. Agli endpoint dell'associazione viene assegnato un nome di ruolo, che indica come viene utilizzata l'associazione nel contesto del modello di dati. Un esempio di nome di ruolo potrebbe essere ShipTo, se applicato a un ID cliente correlato all'ID cliente in una tabella Orders.
La rappresentazione CSDLBI del modello contiene anche attributi sull'associazione che determinano il modo in cui le entità vengono mappate tra loro in termini di molteplicità dell'associazione. La molteplicità indica se l'attributo o la colonna corrispondente all'endpoint di una relazione tra tabelle si trova sul lato uno o sul lato molti di una relazione. Non sono presenti valori distinti per le relazioni uno-a-uno. Le annotazioni CSDLBI supportano una molteplicità pari a 0 (ovvero l'entità non è associata ad alcun elemento) oppure 0..1, per indicare una relazione uno-a-uno o uno-a-molti.
Nell'esempio seguente viene rappresentato l'output di CSDLBI per una relazione tra le tabelle Date e ProductInventory di cui è stato creato un join alla colonna DateAlternateKey. Si noti che, per impostazione predefinita, il nome di AssociationSet è il nome completo delle colonne coinvolte nella relazione. È tuttavia possibile modificare questo comportamento quando si progetta il modello, in modo da utilizzare un formato di denominazione diverso.
<AssociationSet Name="ProductInventory_Date_DateKey" Association="Model.ProductInventory_Date_DateKey">
<End EntitySet="ProductInventory" />
<End EntitySet="Date" />
<bi:AssociationSet />
</AssociationSet>
Proprietà di visualizzazione e navigazione
Una parte importante delle annotazioni CSDLBI sono le proprietà per la definizione della presentazione nel livello del report e per la navigazione all'interno delle relazioni tra entità. In genere, quando si crea un modello di dati non si considera importante controllare la modalità di ordinamento o raggruppamento dei dati o quale potrebbe essere il valore predefinito, supponendo che l'ordinamento e gli altri dettagli di presentazione verranno specificati dall'applicazione client. Tuttavia, Analysis Services modelli tabulari sono progettati per l'integrazione con il client di report di Power View e includono proprietà e attributi che supportano la presentazione di entità dal modello di dati nell'area di progettazione del report.
Nelle estensioni per la visualizzazione sono inclusi attributi che consentono di specificare l'aggregazione predefinita da utilizzare con i dati numerici, di indicare che un campo di testo punta all'URL di un'immagine o di specificare il campo utilizzato per l'ordinamento del campo corrente.
Proprietà dei nomi e convenzioni di denominazione
Lo schema CSDLBI indica che ogni entità dispone di un nome univoco e un identificatore che può essere utilizzato come una chiave. Alcune entità possono inoltre disporre di didascalie utilizzate a fini della visualizzazione e di nomi contestuali che vengono modificati a seconda della posizione in cui viene utilizzata l'entità.
L'elemento Documentation consente ai progettisti di report di fornire una descrizione dell'entità, per consentire agli utenti aziendali di comprendere il significato dei dati. Alcune entità consentono anche uno o più attributi Annotation , che forniscono metadati aggiuntivi per l'utilizzo da parte dell'applicazione o dei client.
Quando si genera un modello con gli strumenti Analysis Services, i nomi creati per gli oggetti seguono le convenzioni Analysis Services per la denominazione degli oggetti e l'univocità dei nomi. Tuttavia, poiché CSDLBI è basato su Entity Data Framework (EDF), che richiede che i nomi siano conformi alle convenzioni per gli identificatori C#, quando il server crea l'output CSDLBI per un modello, il server accetta i nomi usati all'interno dello schema Analysis Services e crea automaticamente nuovi nomi di oggetto conformi ai requisiti EDF. Nella tabella seguente vengono descritte le operazioni tramite le quali vengono generati i nuovi nomi.
Regola | Azione |
---|---|
Nessun carattere non consentito | I caratteri non consentiti vengono sostituiti da caratteri di sottolineatura. |
I nomi devono essere univoci | Se due stringhe sono uguali, una viene resa univoca aggiungendovi un carattere di sottolineatura più un numero |
Avviso
Sono presenti traduzioni sia per didascalie che per qualificatori e, per un determinato linguaggio, potrebbe essere presenti le une o gli altri. Ciò significa che nei casi in cui siano concatenati un qualificatore e un nome o un qualificatore e una didascalia, è possibile che le stringhe siano in due linguaggi diversi.
Aggiunte per supportare modelli multidimensionali
La versione 1.0 delle annotazioni CSDLBI supporta solo i modelli tabulari. Nella versione 1.1, è stato aggiunto il supporto per i modelli multidimensionali (cubi OLAP) creati utilizzando gli strumenti di sviluppo tradizionali di Business Intelligence. Pertanto, è ora possibile generare una richiesta XML a un modello multidimensionale e ricevere una definizione CSDLBI del modello da utilizzare nella creazione di rapporti.
Cubi: Un SQL Server Analysis Services database tabulare può contenere una sola modalità. Ciascun database multidimensionale, invece, può contenere più cubi, ogni database associato a un cubo predefinito. Pertanto quando si invia una richiesta XML a un server multidimensionale, è necessario specificare il cubo; in caso contrario, sarà restituito l'XML per il cubo predefinito.
La rappresentazione di un cubo è molto simile a quella di un database modello tabulare. Il nome del cubo e il cubo corrispondono all'identificatore del database e al nome del database tabulare.
Dimensioni: Una dimensione è rappresentata in CSDLBI come entità (tabella) con colonne e proprietà. Si noti che anche se non è inclusa in una prospettiva, una dimensione inclusa nel modello verrà rappresentata nell'output CSDL, contrassegnata come Hidden.
Prospettive: Un client può richiedere CSDL per prospettive singole. Per altre informazioni, vedere Set DISCOVER_CSDL_METADATA set di righe.
Gerarchie: Le gerarchie sono supportate e rappresentate in CSDLBI come set di livelli.
Membri: È stato aggiunto il supporto per il membro predefinito e i valori predefiniti vengono aggiunti automaticamente all'output CSDLBI.
Membri calcolati: I modelli multidimensionali supportano i membri calcolati per gli elementi figlio di All con un singolo membro reale.
Attributi della dimensione: Nell'output CSDLBI gli attributi della dimensione sono supportati e contrassegnati automaticamente come non aggregabili.
Kpi: Gli indicatori KPI sono supportati in CSDLBI versione 1.1, ma la rappresentazione è stata modificata. Prima, un indicatore KPI era la proprietà di una misura. Nella versione 1.1, l'elemento KPI può essere aggiunto a una misura
Nuove proprietà: Sono stati aggiunti attributi aggiuntivi per supportare i modelli DirectQuery.
Limitazioni: La sicurezza delle celle non è supportata.