Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Model Data Entitas (EDM) menggunakan tiga konsep utama untuk menjelaskan struktur data: jenis entitas, jenis asosiasi, dan properti. Ini adalah konsep paling penting dalam menjelaskan struktur data dalam implementasi EDM apa pun.
Jenis Entitas
Jenis entitas adalah blok penyusun dasar untuk menjelaskan struktur data dengan Model Data Entitas. Dalam model konseptual, jenis entitas dibangun dari properti dan menjelaskan struktur konsep tingkat atas, seperti pelanggan dan pesanan dalam aplikasi bisnis. Dengan cara yang sama seperti definisi kelas dalam program komputer adalah templat untuk instans kelas, jenis entitas adalah templat untuk entitas. Entitas mewakili objek tertentu (seperti pelanggan atau pesanan tertentu). Setiap entitas harus memiliki kunci entitas unik dalam kumpulan entitas. Set entitas adalah kumpulan instans dari jenis entitas tertentu. Kumpulan entitas (dan set asosiasi) dikelompokkan secara logis dalam kontainer entitas.
Pewarisan didukung dengan jenis entitas: yaitu, satu jenis entitas dapat berasal dari yang lain. Untuk informasi selengkapnya, lihat Model Data Entitas: Pewarisan.
Tipe Asosiasi
Jenis asosiasi (juga disebut asosiasi) adalah blok penyusun dasar untuk menjelaskan hubungan dalam Model Data Entitas. Dalam model konseptual, asosiasi mewakili hubungan antara dua jenis entitas (seperti Pelanggan dan Pesanan). Setiap asosiasi memiliki dua akhir asosiasi yang menentukan jenis entitas yang terlibat dalam asosiasi. Setiap akhir asosiasi juga menentukan multiplikasi akhir asosiasi yang menunjukkan jumlah entitas yang dapat berada di akhir asosiasi tersebut. Perkalian akhir asosiasi dapat memiliki nilai satu (1), nol atau satu (0,.1), atau banyak (*). Entitas pada salah satu ujung asosiasi dapat diakses melalui properti navigasi, atau melalui kunci asing jika diekspos pada tipe entitas. Untuk informasi selengkapnya, lihat foreign key property.
Dalam aplikasi, instans asosiasi mewakili asosiasi tertentu (seperti hubungan antara instans Pelanggan dan instans Pesanan). Instans asosiasi dikelompokkan secara logis dalam kumpulan asosiasi. Set asosiasi (dan set entitas) dikelompokkan secara logis dalam kontainer entitas.
Harta benda
Jenis entitas berisi properti yang menentukan struktur dan karakteristiknya. Misalnya, jenis entitas Pelanggan mungkin memiliki properti seperti CustomerId, Nama, dan Alamat.
Properti dalam model konseptual dianalogikan dengan properti yang ditentukan pada kelas dalam program komputer. Dengan cara yang sama properti pada kelas menentukan bentuk kelas dan membawa informasi tentang objek, properti dalam model konseptual menentukan bentuk jenis entitas dan membawa informasi tentang instans jenis entitas.
Properti dapat berisi data primitif (seperti string, bilangan bulat, atau nilai Boolean), atau data terstruktur (seperti jenis kompleks). Untuk informasi selengkapnya, lihat Model Data Entitas: Jenis Data Primitif.
Representasi dari Model Konseptual
Model konseptual adalah representasi spesifik dari struktur beberapa data sebagai entitas dan hubungan. Salah satu cara untuk mewakili model konseptual adalah dengan diagram. Diagram berikut mewakili model konseptual dengan tiga jenis entitas (Book
, , Publisher
dan Author
) dan dua asosiasi (PublishedBy
dan WrittenBy
):
Representasi ini, bagaimanapun, memiliki beberapa kekurangan dalam hal menyampaikan beberapa detail tentang model. Misalnya, jenis properti dan informasi kumpulan entitas tidak disampaikan dalam diagram. Kekayaan model konseptual dapat disampaikan lebih jelas dengan bahasa khusus domain (DSL). Kerangka Kerja Entitas ADO.NET menggunakan DSL berbasis XML yang disebut bahasa definisi skema konseptual (CSDL) untuk menentukan model konseptual. Berikut ini adalah definisi CSDL dari model konseptual dalam diagram di atas:
<Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm"
xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration"
xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator"
Namespace="BooksModel" Alias="Self">
<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>
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>
<EntityType Name="Publisher">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Type="Int32" Name="Id" Nullable="false" />
<Property Type="String" Name="Name" Nullable="false" />
<Property Type="String" Name="Address" Nullable="false" />
<NavigationProperty Name="Books" Relationship="BooksModel.PublishedBy"
FromRole="Publisher" ToRole="Book" />
</EntityType>
<EntityType Name="Author">
<Key>
<PropertyRef Name="Name" />
<PropertyRef Name="Address" />
</Key>
<Property Type="String" Name="Name" Nullable="false" />
<Property Type="String" Name="Address" Nullable="false" />
<NavigationProperty Name="Books" Relationship="BooksModel.WrittenBy"
FromRole="Author" ToRole="Book" />
</EntityType>
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
</Association>
<Association Name="WrittenBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Author" Role="Author" Multiplicity="*" />
</Association>
</Schema>