entitáskészlet

Az entitáskészlet egy logikai tároló egy entitástípus példányai és az adott entitástípusból származtatott bármilyen típusú példányok számára. (A származtatott típusokkal kapcsolatos információkért lásd : Entity Data Model: Inheritance.) Az entitástípus és az entitáskészlet közötti kapcsolat hasonló a relációs adatbázisban lévő sorok és táblák közötti kapcsolathoz: Az entitástípus a sorhoz hasonlóan az adatstruktúrát írja le, és egy entitáskészlethez hasonlóan egy adott struktúra példányait is tartalmazza. Az entitáskészletek nem adatmodellezési szerkezetek; nem írja le az adatok szerkezetét. Az entitáskészletek ehelyett egy üzemeltetési vagy tárolási környezet (például a közös nyelvi futtatókörnyezet vagy egy SQL Server-adatbázis) szerkezetét biztosítják az entitástípus-példányok csoportosításához, hogy leképezhetők legyenek egy adattárra.

Egy entitáskészlet egy entitástárolóban van definiálva, amely az entitáskészletek és a társítási csoportok logikai csoportosítása.

Ahhoz, hogy egy entitástípus-példány létezni lehessen egy entitáskészletben, a következőknek igaznak kell lenniük:

  • A példány típusa megegyezik azzal az entitástípussal, amelyen az entitáskészlet alapul, vagy a példány típusa az entitástípus altípusa.

  • A példány entitáskulcsa egyedi az entitáskészleten belül.

  • A példány nem létezik más entitáskészletekben.

    Megjegyzés:

    Több entitáskészlet is definiálható ugyanazzal az entitástípussal, de egy adott entitástípus példánya csak egy entitáskészletben létezhet.

Nem kell definiálnia egy entitáskészletet az egyes entitástípusokhoz egy fogalmi modellben.

példa

Az alábbi ábrán egy három entitástípussal rendelkező fogalmi modell látható: Book, Publisherés Author.

Példamodell három entitástípussal

Az alábbi ábra két entitáskészletet (Books és ) és Publishersegy társítási csoportot (PublishedBy) mutat be a fent bemutatott fogalmi modell alapján. A Bi az Books entitáskészletben az Book entitástípus egy példányát jelöli futásidőben. Hasonlóképpen, a Pj egy Publisher példányként szerepel az Publishers entitáskészletben. A BiPj a PublishedBy társítás egy példányát jelöli a PublishedBy társításkészletben.

A Sets példát bemutató képernyőkép.

A ADO.NET Entity Framework egy tartományspecifikus nyelvet (DSL) használ, amelyet fogalmi sémadefiníciós nyelvnek (CSDL) nevezünk a fogalmi modellek definiálásához. Az alábbi CSDL egy entitástárolót határoz meg, amelynek minden entitástípusához egy entitás van beállítva a fent látható elméleti modellben. Vegye figyelembe, hogy az egyes entitáskészletek neve és entitástípusa XML-attribútumokkal van definiálva.

<EntityContainer Name="BooksContainer" >
  <EntitySet Name="Books" EntityType="BooksModel.Book" />
  <EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
  <EntitySet Name="Authors" EntityType="BooksModel.Author" />
  <AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Publisher" EntitySet="Publishers" />
  </AssociationSet>
  <AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Author" EntitySet="Authors" />
  </AssociationSet>
</EntityContainer>

Típusonként (MEST) több entitáskészlet is definiálható. A következő CSDL egy entitástárolót határoz meg két entitáskészlettel az Book entitástípushoz:

<EntityContainer Name="BooksContainer" >
  <EntitySet Name="Books" EntityType="BooksModel.Book" />
  <EntitySet Name="FictionBooks" EntityType="BooksModel.Book" />
  <EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
  <EntitySet Name="Authors" EntityType="BooksModel.Author" />
  <AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Publisher" EntitySet="Publishers" />
  </AssociationSet>
  <AssociationSet Name="BookAuthor" Association="BooksModel.BookAuthor">
    <End Role="Book" EntitySet="Books" />
    <End Role="Author" EntitySet="Authors" />
  </AssociationSet>
</EntityContainer>

Lásd még