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: Entitás adatmodellje: Öröklés.) 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.
Feljegyzé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
.
Az alábbi ábra két entitáskészletet (Books
és ) és Publishers
egy társítási csoportot (PublishedBy
) mutat be a fent bemutatott fogalmi modell alapján. Az entitáskészlet bi értéke az Books
Book
entitástípus egy példányát jelöli futásidőben. Hasonlóképpen, a Pj egy példányt Publisher
jelöl 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 ADO.NET Entity Framework egy tartományspecifikus nyelvet (DSL) használ, amelyet fogalmi sémadefiníciós nyelvnek (CSDL) hívunk a fogalmi modellek meghatározá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>