다음을 통해 공유


AdventureWorks Sales 저장소 스키마(EDM)

EDM(엔터티 데이터 모델)에서 저장소 메타데이터는 SSDL(저장소 스키마 정의 언어)에 정의됩니다. 이 예제에서 SSDL 스키마는 Adventure Works 샘플 데이터베이스에 있는 데이터의 테이블 및 키를 나타냅니다.

SSDL 스키마

다음 예제에는 Adventure Works 데이터베이스의 다섯 개 테이블에 대한 메타데이터가 들어 있습니다. XML 구문을 사용하여 저장소 모델의 구조를 정의합니다. 엔터티 집합은 테이블을 나타냅니다. 엔터티 형식은 행을 나타냅니다. 속성은 행에서 열을 나타냅니다. 연결은 외래 키 관계를 나타냅니다. 연결 집합은 연결의 범위를 논리적으로 정의합니다.

이 스키마는 이전 항목 AdventureWorks Sales 개념 스키마(EDM)에 있는 모델을 저장소에 매핑하는 데 사용됩니다.

전체 SSDL 스키마는 다음 예제에서 확인할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdvWrksSalesModel.Store" Alias="Self"
    Provider="System.Data.SqlClient"
    ProviderManifestToken="2005"
    xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">
  <EntityContainer Name="Person">
    <EntitySet Name="Address" EntityType="AdvWrksSalesModel.Store.Address" />
    <EntitySet Name="Contact" EntityType="AdvWrksSalesModel.Store.Contact" />
    <EntitySet Name="Product" EntityType="AdvWrksSalesModel.Store.Product" Schema="Production" />
    <EntitySet Name="SalesOrderDetail" EntityType="AdvWrksSalesModel.Store.SalesOrderDetail" Schema="Sales" />
    <EntitySet Name="SalesOrderHeader" EntityType="AdvWrksSalesModel.Store.SalesOrderHeader" Schema="Sales" />
    <AssociationSet Name="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID" Association="AdvWrksSalesModel.Store.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID">
      <End Role="SalesOrderHeader" EntitySet="SalesOrderHeader" />
      <End Role="SalesOrderDetail" EntitySet="SalesOrderDetail" />
    </AssociationSet>
    <AssociationSet Name="FK_SalesOrderHeader_Address_BillToAddressID" Association="AdvWrksSalesModel.Store.FK_SalesOrderHeader_Address_BillToAddressID">
      <End Role="Address" EntitySet="Address" />
      <End Role="SalesOrderHeader" EntitySet="SalesOrderHeader" />
    </AssociationSet>
    <AssociationSet Name="FK_SalesOrderHeader_Address_ShipToAddressID" Association="AdvWrksSalesModel.Store.FK_SalesOrderHeader_Address_ShipToAddressID">
      <End Role="Address" EntitySet="Address" />
      <End Role="SalesOrderHeader" EntitySet="SalesOrderHeader" />
    </AssociationSet>
    <AssociationSet Name="FK_SalesOrderHeader_Contact_ContactID" Association="AdvWrksSalesModel.Store.FK_SalesOrderHeader_Contact_ContactID">
      <End Role="Contact" EntitySet="Contact" />
      <End Role="SalesOrderHeader" EntitySet="SalesOrderHeader" />
    </AssociationSet>
  </EntityContainer>
  <EntityType Name="Address">
    <Key>
      <PropertyRef Name="AddressID" />
    </Key>
    <Property Name="AddressID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
    <Property Name="AddressLine1" Type="nvarchar" Nullable="false" MaxLength="60" />
    <Property Name="AddressLine2" Type="nvarchar" MaxLength="60" />
    <Property Name="City" Type="nvarchar" Nullable="false" MaxLength="30" />
    <Property Name="StateProvinceID" Type="int" Nullable="false" />
    <Property Name="PostalCode" Type="nvarchar" Nullable="false" MaxLength="15" />
    <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
    <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
  </EntityType>
  <EntityType Name="Contact">
    <Key>
      <PropertyRef Name="ContactID" />
    </Key>
    <Property Name="ContactID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
    <Property Name="NameStyle" Type="bit" Nullable="false" />
    <Property Name="Title" Type="nvarchar" MaxLength="8" />
    <Property Name="FirstName" Type="nvarchar" Nullable="false" MaxLength="50" />
    <Property Name="MiddleName" Type="nvarchar" MaxLength="50" />
    <Property Name="LastName" Type="nvarchar" Nullable="false" MaxLength="50" />
    <Property Name="Suffix" Type="nvarchar" MaxLength="10" />
    <Property Name="EmailAddress" Type="nvarchar" MaxLength="50" />
    <Property Name="EmailPromotion" Type="int" Nullable="false" />
    <Property Name="Phone" Type="nvarchar" MaxLength="25" />
    <Property Name="PasswordHash" Type="varchar" Nullable="false" MaxLength="128" />
    <Property Name="PasswordSalt" Type="varchar" Nullable="false" MaxLength="10" />
    <Property Name="AdditionalContactInfo" Type="xml" />
    <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
    <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
  </EntityType>
  <EntityType Name="Product">
    <Key>
      <PropertyRef Name="ProductID" />
    </Key>
    <Property Name="ProductID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
    <Property Name="Name" Type="nvarchar" Nullable="false" MaxLength="50" />
    <Property Name="ProductNumber" Type="nvarchar" Nullable="false" MaxLength="25" />
    <Property Name="MakeFlag" Type="bit" Nullable="false" />
    <Property Name="FinishedGoodsFlag" Type="bit" Nullable="false" />
    <Property Name="Color" Type="nvarchar" MaxLength="15" />
    <Property Name="SafetyStockLevel" Type="smallint" Nullable="false" />
    <Property Name="ReorderPoint" Type="smallint" Nullable="false" />
    <Property Name="StandardCost" Type="money" Nullable="false" />
    <Property Name="ListPrice" Type="money" Nullable="false" />
    <Property Name="Size" Type="nvarchar" MaxLength="5" />
    <Property Name="SizeUnitMeasureCode" Type="nchar" MaxLength="3" />
    <Property Name="WeightUnitMeasureCode" Type="nchar" MaxLength="3" />
    <Property Name="Weight" Type="decimal" Precision="8" Scale="2" />
    <Property Name="DaysToManufacture" Type="int" Nullable="false" />
    <Property Name="ProductLine" Type="nchar" MaxLength="2" />
    <Property Name="Class" Type="nchar" MaxLength="2" />
    <Property Name="Style" Type="nchar" MaxLength="2" />
    <Property Name="ProductSubcategoryID" Type="int" />
    <Property Name="ProductModelID" Type="int" />
    <Property Name="SellStartDate" Type="datetime" Nullable="false" />
    <Property Name="SellEndDate" Type="datetime" />
    <Property Name="DiscontinuedDate" Type="datetime" />
    <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
    <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
  </EntityType>
  <EntityType Name="SalesOrderDetail">
    <Key>
      <PropertyRef Name="SalesOrderID" />
      <PropertyRef Name="SalesOrderDetailID" />
    </Key>
    <Property Name="SalesOrderID" Type="int" Nullable="false" />
    <Property Name="SalesOrderDetailID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
    <Property Name="CarrierTrackingNumber" Type="nvarchar" MaxLength="25" />
    <Property Name="OrderQty" Type="smallint" Nullable="false" />
    <Property Name="ProductID" Type="int" Nullable="false" />
    <Property Name="SpecialOfferID" Type="int" Nullable="false" />
    <Property Name="UnitPrice" Type="money" Nullable="false" />
    <Property Name="UnitPriceDiscount" Type="money" Nullable="false" />
    <Property Name="LineTotal" Type="numeric" Nullable="false" Precision="38" Scale="6" StoreGeneratedPattern="Computed" />
    <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
    <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
  </EntityType>
  <EntityType Name="SalesOrderHeader">
    <Key>
      <PropertyRef Name="SalesOrderID" />
    </Key>
    <Property Name="SalesOrderID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
    <Property Name="RevisionNumber" Type="tinyint" Nullable="false" />
    <Property Name="OrderDate" Type="datetime" Nullable="false" />
    <Property Name="DueDate" Type="datetime" Nullable="false" />
    <Property Name="ShipDate" Type="datetime" />
    <Property Name="Status" Type="tinyint" Nullable="false" />
    <Property Name="OnlineOrderFlag" Type="bit" Nullable="false" />
    <Property Name="SalesOrderNumber" Type="nvarchar" Nullable="false" MaxLength="25" StoreGeneratedPattern="Computed" />
    <Property Name="PurchaseOrderNumber" Type="nvarchar" MaxLength="25" />
    <Property Name="AccountNumber" Type="nvarchar" MaxLength="15" />
    <Property Name="CustomerID" Type="int" Nullable="false" />
    <Property Name="ContactID" Type="int" Nullable="false" />
    <Property Name="SalesPersonID" Type="int" />
    <Property Name="TerritoryID" Type="int" />
    <Property Name="BillToAddressID" Type="int" Nullable="false" />
    <Property Name="ShipToAddressID" Type="int" Nullable="false" />
    <Property Name="ShipMethodID" Type="int" Nullable="false" />
    <Property Name="CreditCardID" Type="int" />
    <Property Name="CreditCardApprovalCode" Type="varchar" MaxLength="15" />
    <Property Name="CurrencyRateID" Type="int" />
    <Property Name="SubTotal" Type="money" Nullable="false" />
    <Property Name="TaxAmt" Type="money" Nullable="false" />
    <Property Name="Freight" Type="money" Nullable="false" />
    <Property Name="TotalDue" Type="money" Nullable="false" StoreGeneratedPattern="Computed" />
    <Property Name="Comment" Type="nvarchar" MaxLength="128" />
    <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" />
    <Property Name="ModifiedDate" Type="datetime" Nullable="false" />
  </EntityType>
  <Association Name="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID">
    <End Role="SalesOrderHeader" Type="AdvWrksSalesModel.Store.SalesOrderHeader" Multiplicity="1">
      <OnDelete Action="Cascade" />
    </End>
    <End Role="SalesOrderDetail" Type="AdvWrksSalesModel.Store.SalesOrderDetail" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="SalesOrderHeader">
        <PropertyRef Name="SalesOrderID" />
      </Principal>
      <Dependent Role="SalesOrderDetail">
        <PropertyRef Name="SalesOrderID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_SalesOrderHeader_Address_BillToAddressID">
    <End Role="Address" Type="AdvWrksSalesModel.Store.Address" Multiplicity="1" />
    <End Role="SalesOrderHeader" Type="AdvWrksSalesModel.Store.SalesOrderHeader" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Address">
        <PropertyRef Name="AddressID" />
      </Principal>
      <Dependent Role="SalesOrderHeader">
        <PropertyRef Name="BillToAddressID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_SalesOrderHeader_Address_ShipToAddressID">
    <End Role="Address" Type="AdvWrksSalesModel.Store.Address" Multiplicity="1" />
    <End Role="SalesOrderHeader" Type="AdvWrksSalesModel.Store.SalesOrderHeader" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Address">
        <PropertyRef Name="AddressID" />
      </Principal>
      <Dependent Role="SalesOrderHeader">
        <PropertyRef Name="ShipToAddressID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_SalesOrderHeader_Contact_ContactID">
    <End Role="Contact" Type="AdvWrksSalesModel.Store.Contact" Multiplicity="1" />
    <End Role="SalesOrderHeader" Type="AdvWrksSalesModel.Store.SalesOrderHeader" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Contact">
        <PropertyRef Name="ContactID" />
      </Principal>
      <Dependent Role="SalesOrderHeader">
        <PropertyRef Name="ContactID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
</Schema>

참고 항목

개념

AdventureWorks Sales 개념 스키마(EDM)
AdventureWorks Sales 매핑 스키마(EDM)
AdventureWorks Sales 연결(EDM)