Conceitos da CSDLBI
Importante: este documento está arquivado. Para obter as informações mais recentes, consulte Open Specification [MS-CSDLBI]: Formato de arquivo de definição de esquema conceitual com anotações de Business Intelligence.
A CSDLBI (Linguagem de Definição de Esquema Conceitual com anotações de BI) baseia-se na Estrutura de Dados de Entidade, que é uma abstração para representar dados de modo a permitir que conjuntos de dados discrepantes sejam acessados, consultados ou exportados de modo programático. A CSDLBI é usada para representar modelos de dados criados usando Analysis Services porque dá suporte a relatórios e aplicativos avançados e orientados a dados.
Esta seção explica como a representação CSDLBI é mapeada Analysis Services modelos de dados (tabular e multidimensional), juntamente com exemplos de cada tipo de modelo.
Exemplos obtidos no banco de dados de exemplo AdventureWorks são usados para ilustrar esses conceitos, disponíveis em Codeplex. Para obter mais informações sobre os exemplos, consulte Exemplos do Adventure Works para SQL Server.
Estrutura de um modelo de tabela na CSDLBI
Um documento CSDLBI que descreve um modelo de relatório e seus dados começa com a instrução xsd, seguida pela definição de um modelo.
O modelo é um namespace, que contém as seguintes entidades, associações e propriedades principais:
O EntityContainer lista as tabelas no modelo.
Cada tabela é listada com EntityContainer como um EntitySet.
Cada relação entre duas tabelas é descrita como um AssociationSet que define os pontos de extremidade da relação e as funções de relação.
O elemento EntityType é estendido para o BISM para fornecer detalhes adicionais sobre as tabelas e as colunas neles, incluindo propriedades para fins de classificação e exibição.
O elemento Measure define cálculos que podem ser usados no modelo. Uma medida pode ser transformada em um KPI adicionando um conjunto de atributos de exibição especiais, usando o novo Elemento KPI .
Não há nenhuma representação separada de perspectivas. Colunas e tabelas que não estão incluídas em uma perspectiva estão presentes no CSDL, mas sinalizadas com o atributo Hidden.
Entities, EntitySets e EntityTypes
A noção de uma entidade na Estrutura de Dados de Entidade é estendida para representar colunas e tabelas do modelo de dados. O trecho a seguir mostra a lista de elementos EntitySet em um modelo simples que contém apenas três tabelas.
<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> />
O EntitySet não contém informações sobre colunas ou dados na tabela. A descrição detalhada das colunas e suas propriedades é fornecida no elemento EntityType.
O elemento EntitySet para cada entidade (tabela) inclui uma coleção de propriedades que definem a coluna de chave, o tipo de dados e o comprimento da coluna, a nulidade, o comportamento de classificação e assim por diante. Por exemplo, o trecho CSDL a seguir descreve três colunas da tabela Customer. A primeira coluna é uma coluna oculta especial usada internamente pelo modelo.
<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>
Para limitar o tamanho do documento CSDLBI gerado, as propriedades que aparecem mais de uma vez em uma entidade são especificadas por uma referência a uma propriedade existente, para que a propriedade precise ser listada apenas uma vez para o EntityType. O aplicativo cliente pode obter o valor da propriedade encontrando o EntityType que corresponde ao OriginEntityType.
Relações
No Entity Data Framework, as relações são definidas como associações entre entidades.
As associações sempre têm exatamente duas extremidades, cada uma apontando para um campo ou uma coluna em uma tabela. Portanto, várias relações são possíveis entre duas tabelas, se as relações tiverem pontos de extremidade diferentes. Um nome de função é atribuído aos pontos de extremidade da associação e indica como a associação é usada no contexto do modelo de dados. Um exemplo de um nome de função pode ser ShipTo, quando aplicado a uma ID do cliente relacionada à ID do cliente em uma tabela Orders.
A representação CSDLBI do modelo também contém atributos na associação que determinam como as entidades são mapeadas entre si em termos de multiplicidade da associação. A multiplicidade indica se o atributo ou a coluna no ponto de extremidade de uma relação entre tabelas está em um dos lados de uma relação ou nos vários lados. Não há nenhum valor separado para relações um para um. As anotações da CSDLBI oferecem suporte à multiplicidade 0 (o que significa que a entidade não está associada a nada) ou 0..1 (o que significa uma relação um para um ou um para muitos).
O exemplo a seguir representa a saída da CSDLBI de uma relação entre as tabelas Date e ProductInventory, na qual as duas tabelas são unidas na coluna DateAlternateKey. Observe que, por padrão, o nome do AssociationSet é o nome totalmente qualificado das colunas envolvidas na relação. Porém, você pode alterar esse comportamento ao criar o modelo, para usar um formato de nomenclatura diferente.
<AssociationSet Name="ProductInventory_Date_DateKey" Association="Model.ProductInventory_Date_DateKey">
<End EntitySet="ProductInventory" />
<End EntitySet="Date" />
<bi:AssociationSet />
</AssociationSet>
Propriedades de visualização e navegação
Uma parte importante das anotações da CSDLBI são as propriedades para definição da apresentação na camada de relatório e para navegação nas relações entre entidades. Normalmente, ao criar um modelo de dados, você não considera importante controlar como os dados são ordenados ou agrupados, ou qual pode ser o valor padrão, pressupondo que o aplicativo cliente especificará ordenação e outros detalhes da apresentação. No entanto, Analysis Services modelos de tabela são projetados para integração com o cliente de relatório do Power View e inclui propriedades e atributos que suportam a apresentação de entidades do modelo de dados na superfície de design de relatório.
As extensões de visualização incluem atributos que especificam a agregação padrão a ser usada com dados numéricos, indicam que um campo de texto aponta para a URL de uma imagem ou especificam o campo usado para classificar o campo atual.
Propriedades de nome e convenções de nomenclatura
O esquema da CSDLBI informa que cada entidade tem um nome exclusivo e um identificador que podem ser usados como uma chave. Além disso, algumas entidades podem ter legendas usadas para fins de exibição, e nomes contextuais que são alterados, dependendo do local em que a entidade é usada.
O elemento Documentation fornece a oportunidade para os designers de relatório fornecerem uma descrição da entidade para ajudar os usuários empresariais a entenderem o significado dos dados. Algumas entidades também permitem um ou mais atributos de Anotação, que fornecem metadados extras para consumo pelo aplicativo ou pelos clientes.
Quando você gera um modelo Analysis Services ferramentas, os nomes criados para objetos seguem as convenções Analysis Services de nomeação de objeto e exclusividade de nome. No entanto, como a CSDLBI se baseia no EDF (Entity Data Framework), que exige que os nomes aderam às convenções para identificadores C#, quando o servidor cria a saída CSDLBI para um modelo, o servidor utiliza os nomes usados no esquema Analysis Services e cria automaticamente novos nomes de objeto que estão em conformidade com os requisitos do EDF. A tabela a seguir descreve as operações através das quais os novos nomes são gerados.
Regra | Ação |
---|---|
Nenhum caractere proibido | Os caracteres proibidos são substituídos pelo sublinhado. |
Os nomes devem ser exclusivos | Se duas cadeias de caracteres forem iguais, uma se tornará exclusiva através do acréscimo de um sublinhado e um número |
Aviso
Legendas e qualificadores têm traduções e, em um determinado idioma, um ou outro poderia estar presente. Isso significa que, nos casos em que um qualificador e um nome ou um qualificador e uma legenda são concatenados, as cadeias de caracteres poderiam estar em dois idiomas diferentes.
Adições para oferecer suporte aos modelos multidimensionais
A versão 1.0 das anotações da CSDLBI oferecia suporte apenas a modelos de tabela. Na versão 1.1, foi adicionado suporte para modelos multidimensionais (cubos OLAP) criados usando ferramentas tradicionais de desenvolvimento de BI. Portanto, agora você pode emitir uma solicitação XML para um modelo multidimensional e receber uma definição CSDLBI do modelo, para uso em relatórios.
Cubos: Um SQL Server Analysis Services de tabela pode conter apenas um modo. Em contraposição, cada banco de dados multidimensional pode conter vários cubos e cada banco de dados é associado a um cubo padrão. Desse modo, ao emitir uma solicitação XML em um servidor multidimensional, é necessário especificar o cubo. Caso contrário, o XML do cubo padrão será retornado.
De qualquer forma, a representação de um cubo é muito semelhante a de um banco de dados modelo de tabela. O nome do cubo e o cubo correspondem ao nome do banco de dados de tabela e ao identificador do banco de dados.
Dimensões: Uma dimensão é representada em CSDLBI como uma entidade (tabela) com colunas e propriedades. Observe que, mesmo que não seja incluída em uma perspectiva, uma dimensão incluída no modelo será representada na saída CSDL, marcada como Oculta.
Perspectivas: Um cliente pode solicitar CSDL para perspectivas individuais. Para obter mais informações, consulte DISCOVER_CSDL_METADATA Rowset.
Hierarquias: As hierarquias têm suporte e são representadas em CSDLBI como um conjunto de níveis.
Membros: O suporte para o membro padrão foi adicionado e os valores padrão são adicionados automaticamente à saída CSDLBI.
Membros calculados: Os modelos multidimensionais são suportados por membros calculados para o filho de Todos com um único membro real.
Atributos de dimensão: Na saída do CSDLBI, os atributos de dimensão têm suporte e são marcados automaticamente como não aggregáveis.
Kpis: Havia suporte para KPIs no CSDLBI versão 1.1, mas a representação foi alterada. Antes, um KPI era uma propriedade de uma medida. Na versão 1.1, o elemento KPI pode ser adicionado a uma medida
Novas propriedades: Atributos adicionais foram adicionados para dar suporte a modelos directQuery.
Limitações: Não há suporte para segurança de célula.