Schéma des métadonnées de stockage (SSDL)
Le schéma des métadonnées de stockage est une description formelle de la base de données qui rend persistantes les données d'une application générée sur le modèle EDM (Modèle de données d'entité). Les entités et les associations déclarées dans ce schéma constituent la base du mappage d'entités et d'associations dans le schéma conceptuel aux entités correspondantes dans le modèle de stockage.
Une entité déclarée en langage SSDL (Store Schema Definition Language) est très semblable à une entité en langage CSDL (Conceptual Schema Definition Language). La différence est principalement dans les types de données utilisés dans les déclarations SSDL. Les types de données des propriétés déclarées dans les fichiers SSDL sont ceux du modèle de stockage. Les types de données dans les fichiers CSDL sont des types simples définis par le modèle EDM. Le mappage entre ces types est l'une des fonctions du modèle EDM. Pour plus d'informations sur les types de données utilisés dans les langages CSDL et SSDL, voir Types simples (EDM).
Métadonnées et mappage
Le nom d'espace de noms et le conteneur d'entités déclarés dans le schéma SSDL sont des métadonnées utilisées par la spécification de mappage pour connecter les tables dans le stockage aux entités dans le schéma CSDL.
Remarque |
---|
Les espaces de noms SSDL sont différents des espaces de noms XML. Les espaces de noms SSDL sont utilisés pour qualifier complètement les noms des types d'entités et les noms des associations. Par exemple, lorsque le langage MSL (Mapping Specification Language) fait référence à des types d'entités, le nom complet doit être fourni. SSDL se trouve dans l'espace de noms XML |
Les lignes suivantes dans le schéma SSDL Human Resources déclarent un espace de noms pour les métadonnées contenues par ce schéma. Le nom d'espace de noms sera utilisé par le langage MSL (Mapping Specification Language).
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">
Le schéma SSDL inclut un élément EntityContainer qui sera également utilisé par la spécification de mappage. Le segment SSDL ci-dessous montre la déclaration du conteneur d'entités.
<EntityContainer Name="HumanResources">
<EntitySet Name="Department" EntityType="Self.Department" />
<EntitySet Name="Employee" EntityType="Self.Employee" />
<EntitySet Name="EmployeeAddress" EntityType="Self.EmployeeAddress" />
<EntitySet Name="EmployeeDepartmentHistory"
EntityType="Self.EmployeeDepartmentHistory" />
<EntitySet Name="EmployeePayHistory"
EntityType="Self.EmployeePayHistory" />
<EntitySet Name="JobCandidate" EntityType="Self.JobCandidate" />
<EntitySet Name="Shift" EntityType="Self.Shift" />
<AssociationSet Name="FK_Employee_Employee_ManagerID"
Association="Self.FK_Employee_Employee_ManagerID">
<End Role="Employee" EntitySet="Employee" />
<End Role="Employee63" EntitySet="Employee" />
</AssociationSet>
<AssociationSet Name="FK_JobCandidate_Employee_EmployeeID"
Association="Self.FK_JobCandidate_Employee_EmployeeID">
<End Role="Employee" EntitySet="Employee" />
<End Role="JobCandidate" EntitySet="JobCandidate" />
</AssociationSet>
</EntityContainer>
Les entités et les associations dans les métadonnées SSDL spécifient des tables et des colonnes dans le modèle de stockage. Ces métadonnées sont nécessaires pour le mappage entre des entités dans le schéma CSDL et dans le stockage.
Les éléments EntityContainerdans le schéma conceptuel et dans le schéma de stockage sont indépendants de l'élément Schema, bien qu'ils soient contenus par l'élément Schema. L'élément EntityContainerMapping dans le langage MSL mappe l'élément EntityContainer du fichier SSDL à un élément EntityContainer dans le fichier CSDL sans références aux noms d'espaces de noms déclarés dans chaque schéma : edm:CdmEntityContainer="HumanResources"``edm:StorageEntityContainer="HumanResources"
.
Le titre MSL suivant illustre le mappage entre le conteneur d'entités HumanResources dans le schéma conceptuel, référencé ici sous le nom de CdmEntityContainer, et les métadonnées de stockage, référencées sous le nom de StorageEntityContainer.
<?xml version="1.0" encoding="utf-8"?>
<Mapping edm:Space="C-S"
xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
< EntityContainerMapping
CdmEntityContainer="HumanResources"
StorageEntityContainer="HumanResources">
La syntaxe SSDL utilisée dans les exemples fournis dans cette rubrique est décrite plus en détails dans les rubriques suivantes :
Élément EntityContainer (SSDL)