Bagikan melalui


kumpulan entitas

Kumpulan entitas adalah kontainer logis untuk instans jenis entitas dan instans dari jenis apa pun yang berasal dari jenis entitas tersebut. (Untuk informasi tentang jenis turunan, lihat Model Data Entitas: Warisan.) Hubungan antara jenis entitas dan kumpulan entitas dianalogikan dengan hubungan antara baris dan tabel dalam database relasional: Seperti baris, jenis entitas menjelaskan struktur data, dan, seperti tabel, kumpulan entitas berisi instans struktur tertentu. Kumpulan entitas bukanlah konstruksi pemodelan data; ini tidak menjelaskan struktur data. Sebagai gantinya, kumpulan entitas menyediakan konstruksi untuk lingkungan hosting atau penyimpanan (seperti runtime bahasa umum atau database SQL Server) untuk mengelompokkan instans jenis entitas sehingga dapat dipetakan ke penyimpanan data.

Kumpulan entitas ditentukan dalam kontainer entitas, yang merupakan pengelompokan logis kumpulan entitas dan kumpulan pengaitan.

Agar instans jenis entitas ada dalam kumpulan entitas, elemen berikut harus dipenuhi:

  • Jenis instans sama dengan jenis entitas yang menjadi dasar kumpulan, atau jenis instans adalah subjenis dari jenis entitas.

  • Kunci entitas untuk instans bersifat unik dalam kumpulan entitas.

  • Instans tidak ada di kumpulan entitas lain.

    Catatan

    Beberapa kumpulan entitas dapat ditentukan menggunakan jenis entitas yang sama, tetapi instans dengan jenis entitas tertentu hanya boleh berada dalam satu kumpulan entitas.

Anda tidak perlu menentukan kumpulan entitas untuk setiap jenis entitas dalam model konseptual.

Contoh

Diagram berikut menunjukkan model konseptual dengan tiga jenis entitas: Book, Publisher, dan Author.

Example model with three entity types

Diagram berikut menunjukkan dua kumpulan entitas (Books dan Publishers) dan kumpulan pengaitan (PublishedBy) berdasarkan model konseptual yang ditunjukkan di atas. Bi dalam kumpulan entitas Books mewakili instans jenis entitas Book saat runtime. Demikian pula, Pj mewakili instans Publisher dalam kumpulan entitas Publishers. BiPj mewakili instans pengaitan PublishedBy dalam kumpulan pengaitan PublishedBy.

Screenshot that shows a Sets example.

ADO.NET Entity Framework menggunakan bahasa khusus domain (DSL) yang disebut bahasa definisi skema konseptual (CSDL) untuk mendefinisikan model konseptual. CSDL berikut menentukan kontainer entitas dengan satu kumpulan entitas untuk setiap jenis entitas dalam model konseptual yang ditunjukkan di atas. Perhatikan bahwa nama dan jenis entitas untuk setiap kumpulan entitas ditentukan menggunakan atribut XML.

<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>

Beberapa kumpulan entitas dapat ditentukan per jenis (MEST). CSDL berikut menentukan kontainer entitas dengan dua kumpulan entitas untuk jenis entitas Book:

<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>

Lihat juga