Bagikan melalui


kumpulan asosiasi

Kumpulan asosiasi adalah kontainer logis untuk instans asosiasi dari jenis yang sama. Kumpulan asosiasi bukanlah konstruksi pemodelan data; artinya, tidak menggambarkan struktur data atau hubungan. Sebagai gantinya, kumpulan asosiasi menyediakan konstruksi untuk lingkungan hosting atau penyimpanan (seperti runtime bahasa umum atau database SQL Server) untuk mengelompokkan instans asosiasi sehingga mereka dapat dipetakan ke penyimpanan data.

Kumpulan asosiasi didefinisikan dalam kontainer entitas, yang merupakan pengelompokan logis dari kumpulan entitas dan kumpulan asosiasi.

Definisi untuk himpunan asosiasi berisi informasi berikut:

Contoh

Diagram di bawah menunjukkan model konseptual dengan dua asosiasi: PublishedBy, dan WrittenBy. Meskipun informasi tentang kumpulan asosiasi tidak disampaikan dalam diagram, diagram berikutnya menunjukkan contoh kumpulan asosiasi dan kumpulan entitas berdasarkan model ini.

Example model with three entity types

Contoh berikut menunjukkan kumpulan asosiasi (PublishedBy) dan dua kumpulan entitas (Books dan Publishers) 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 mendefinisikan kontainer entitas dengan satu kumpulan asosiasi untuk setiap asosiasi dalam diagram di atas. Perhatikan bahwa nama dan asosiasi untuk setiap kumpulan asosiasi didefinisikan 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>

Dimungkinkan untuk menentukan beberapa kumpulan asosiasi per asosiasi, selama tidak ada dua kumpulan asosiasi yang berbagi kumpulan asosiasi berakhir. CSDL berikut mendefinisikan kontainer entitas dengan dua kumpulan asosiasi untuk asosiasi WrittenBy. Perhatikan bahwa beberapa kumpulan entitas telah ditentukan untuk jenis entitas Book dan Author dan tidak ada kumpulan asosiasi yang berbagi kumpulan asosiasi berakhir.

<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" />
  <EntitySet Name="FictionAuthors" 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>
  <AssociationSet Name="FictionWrittenBy" Association="BooksModel.WrittenBy">
    <End Role="Book" EntitySet="FictionBooks" />
    <End Role="Author" EntitySet="FictionAuthors" />
  </AssociationSet>
</EntityContainer>

Lihat juga