Enhanced Entity Relations Diagram (EERD)
Berawal dari tahun 1980-an dimana meningkatkannya kebutuhan akan
aplikasi basis data untuk macam aplikasi yang juga meningkat. Konsep dasar dari
Entity Relationship yang tidak dapat mencukupi untuk aplikasi-aplikasi baru
yang lebih kompleks, sehingga memicu untuk adanya sebuah model yang berdasar
kepada model sematik. Model semantic ini adalah pengembangan lebih lanjut dari
model ER yang sudah ada, yang disebuh sebagai Enhanced Entity Relationship atau
EER. Selanjutnya dari model ini diperkenalkan konsep utama yaitu
spesialisasi/generalisasi dan bagaimana konsep ini digunakan dalam diagram EER
dengan menggunakan UML. Kemudian akan dibahas juga konsep komposisi dan
agregasi yang juga akan direpresentasikan dalam diagram dengan UML.
1.
Spesialisasi/Generalisasi
Konsep
dari spesialisasi/generalisasi dihubungkan dengan tipe entity khusus yang
dikenal dengan superclass dan subclass, dan proses dari attribute inheritance.
- Superclass dan subclass
Dari konsep ER pada umumnya hubungan entitas yang satu dengan yang lain
mempunyai level atau hirarki yang sama, sementara pada konsep superclass dan
subclass, dapat dilihat bias terdapat hirarki pada tipe entitinya.
Superlass adalah tipe entity yang didalamnya terdapat subgroup yang
lebih unik didalam model data. Sedangkan subclass adalah subgroup yang unik
didalam model data. Sebagai contoh, entitas yang terdapat pada entitas staff
terdapat tipe entitas yang ada dibawahnya yaitu Manager, Sales Personel, dan
Secretary. Itu ddapat disimpulkan bahwa entitas staff adalah superclass dan
ketiga entitas dibawahnya adalah subclass
- Superclass/subclass relationship
Setiap entitas dalam subclass juga termasuk kedalam superclass. Dengan
kata lain entitas yang ada dalam subclass ada didalam superclass, tetapi
memiliki peran/fungsi yang berbeda. Hubungan antar superclass dan subclass
adalah satu ke satu (1:1). Dalam hal ini kita dapat menghindari pendefinisan
staf yang berbeda dalam sebuah entitas yang mungkin mempunyai beberapa atribut
yang berbeda. Misalkan didalam entitas staff terdapat atribut sales area dan
car allowance, yang mana atribut tersebut hanya dipergunakan oleh staff dengan
peran sales personnel, bila hal ini diimplementasikan dengan satu jenis entitas
saja maka akan menghasilkan nilai null untuk atribut specific role. Sebenarnya
untuk sales personnel, memiliki atribut yang sama dengan staff kebanyakan yaitu
staffno, name, position, salary, tetapi atribut yang berbeda inilah yang
nantinya akan bermasalah apabila dibuatkan hanya satu model entitas saja.
Perhatikan gambar 1 yang memperlihatkan semua atribut dari staff tanpa melihat
dari posisi. Kosekuensi yang harus diterima adalah ketika membuat strukturnya
menjadi seperti ini adalah ketika atribut (staffno, name, position, salary)
yang merupakan atribut wajib dari staff akan berisi, sedangkan atribut lain
yang berkorespondensi dengan masing-masing posisi tidak selalu berisi.
Gambar 1 Relasi Allstaff dengan atribut dari berbagai subclass nya.
Terdapat dua hal yang menjadi alasan dari superclassdan subclass dalam model ER. Yang
pertama, menghindari pembuatan entitas yang sama untuk posisi yang berbeda,
sehingga membuat ER diagram lebih mudah untuk dibaca dan dipahami. Yang kedua,
lebih memudahkan arti semantiknya. Misalkan “Manager adalah bagian dari
staff” hal inilah yang membuat ER
menjadi lebih berarti.
- Attribute inheritance/Pewarisan Atribut
Seperti yang telah disebutkan sebelumnya, bahwa setiap superclass dapat
dibagi menjai sub class. Disini, atribut dari superclass akan menjadi atribut
juga dari subclass yang ada dibawahnya. Ada pewarisan atribut dari superclass
ke subclass. Misalkan, superclass staff dengan atribut (staffno, name, position
dan salary ) juga akan menjadi atribut bagi member subclass, seperti manager,
secretary, Sales Personnel. Sementara itu atribut – atribut yang sifatnya
spesifik hanya ada pada subclass-subclass nya. Sebuah entitas beserta
subclass-subclas nya disebut dengan hirarki tipe. Terdapat tiga jenis hirarki.
Yang pertama adalah hirarki spesialisasi contoh Manager adalah spesialisasi
dari Staff. Kemudian terdapat hirarki generalisasi, contoh staff adalah
generalisasi dari Manager. Dan hirarki IS-A contoh Manager IS-A anggota dari
Staff. Sebuah subclass dengan banyak superclass dinamakan shared subclass. Sebagai konsekuensinya setiap atribut didalam
superclass merupakan pewarisan dari atribut Shared subclass. Proses seperti ini
dinamakan sebagai multiple inheritance.
- Proses Spesialisasi
Spesialisasi adalah proses yang memaksimalkan perbedaan antara anggota
entitas dengan cara mengidentifikasikan perbedaan karakteristik masing-masing
anggota.
- Proses Generalisasi
Generalisasi adalah proses yang meminimasi perbedaan antara entitas
dengan cara mencari kesamaan –kesamaan yang ada.
Gambar 2 Spesialisasi/ Generalisasi
entitas Staff berdasarkan job roles
|
Gambar
3 Spesialisasi/ Generalisasi entitas Staff berdasarkan job roles dan
contract of employee
|
- Constraint dalam spesialisasi dan generalisasi
Terdapat dua constraint dalam spesialisasi dan generalisasi, yaitu
participation constraint dan disjoint constraint.
Participation Constraint
Participation constraint menentukan apakah
setiap anggota dari superclass harus berpartisipasi dalam setiap member dari
subclass. Dalam participation constraint bisa jadi mandatory atau optional.
Mandatoryà
setiap member dari superclass juga merupakan member dari subclass. Sebagai
contoh, dari gambar 3 contract of employment specialization/generalization
adalah mandatory, berarti setiap member dari staff harus memiliki contract of
employment.
Optionalà
setiap member dari superclass tidak harus menjadi member dari subclass. Contoh,
dari gambar 3 memperlihatkan bahwa setiap staf tidak harus menjadi manager,
sales personnel atau secretaries.
Disjoint Constraint
Disjoint constraint menentukan hubungan antar setiap member dari
subclass dan menunjukkan apakah mungkin sebuah superclass merupakan anggota
dari 1 atau lebih subclass. Disjoint constraint ini hanya digunakan apabila
superclass memiliki lebih dari satu subclass. Dalam Disjoint Participation,
terdapat dua constraint, yaitu Or dan And.
Orà
jika subclassnya disjoint maka membernya hanya menjadi member dari satu
subclass, contoh: seorang staf hanya bisa jadi full time atau part-time saja.
Andà
jika subclassnya non-disjoint maka entitasnya dapat menjadi member dari satu
atau lebih subclass. Contoh: entitas staf menjadi bagian dari member Manager,
Sales Personnel dan Secretary.
Gambar 4
Superclass staff dan subclassnya
Dari gambar 4 diketahui bahwa
participation constraintnya adalah optional, artinya ada staff, supervisor atau
manajer, sedangkan or berarti seorang staf bisa menjadi supervisor atau
manager.
Dari
gambar 5 untuk participation constraintnya mandatory, menyatakan bahwa atribut
dari owner harus merupakan atribut dari private owner dan business owner.
Disjoint participationnya adalah or berarti seorang hanya dapat menjadi private
owner atau business owner.
Gambar
5 superclass owner dan subclassnya private owner dan bsiness owner.
2. Aggregasi
Agregasi
menggambarkan hubungan ‘memiliki’ atau ‘bagian dari’ antar tipe entitasnya,
dimana yang satu menunjukkan seluruh dan yang lain menunjukkan sebagian.
Memperlihatkan hubungan antar entitas dari tingkat hirarki yang sama. Kadang
pada saat kita akan mendefinisikan suatu entitas yang mengidentifikasi entitas
yang besar yang terdiri dari entitas yang lebih kecil. Jenis hubungan seperti
ini disebut agregasi (Booch et al, 1998)
Gambar 6
Contoh agregasi
|
3. Komposisi
Bentuk khusus dari agregasi
yang merepresentasikan asosiasi antar entitas, dimana terdapat kepemilikan yang
kuat antar ‘seluruh’ dan ‘sebagian’.
Gambar 7 contoh komposisi
Sebagai kesimpulan bahwa EERD ini merupakan konsep yang
dikembangkan dari konsep ER sebelumnya dengan mengunakan konsep UML.